diff options
author | frosch <frosch@openttd.org> | 2008-03-06 10:39:26 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-03-06 10:39:26 +0000 |
commit | 068952448150b774ea369e20a13a71a3e846ee30 (patch) | |
tree | e5d3a86938a2ac6a3c1821661d029ca596a598ae /src | |
parent | fe4a6985b2991277ca777e8f32d071370a9761db (diff) | |
download | openttd-068952448150b774ea369e20a13a71a3e846ee30.tar.xz |
(svn r12346) -Fix [FS#1748, FS#1825](r9874, r11872): Remove duplicated and inconsistent code wrt. autoreplace with rules in both vehicles' group and ALL_GROUP.
Diffstat (limited to 'src')
-rw-r--r-- | src/autoreplace_cmd.cpp | 32 | ||||
-rw-r--r-- | src/group.h | 2 |
2 files changed, 5 insertions, 29 deletions
diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index 6f1b65cb2..2eafe9812 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -140,18 +140,9 @@ static CommandCost ReplaceVehicle(Vehicle **w, byte flags, Money total_cost) char *vehicle_name = NULL; CargoID replacement_cargo_type; - /* If the vehicle belongs to a group, check if the group is protected from the global autoreplace. - * If not, chek if an global auto replacement is defined */ - new_engine_type = (IsValidGroupID(old_v->group_id) && GetGroup(old_v->group_id)->replace_protection) ? - INVALID_ENGINE : - EngineReplacementForPlayer(p, old_v->engine_type, ALL_GROUP); - - /* If we don't set new_egnine_type previously, we try to check if an autoreplacement was defined - * for the group and the engine_type of the vehicle */ - if (new_engine_type == INVALID_ENGINE && !IsAllGroupID(old_v->group_id)) { - new_engine_type = EngineReplacementForPlayer(p, old_v->engine_type, old_v->group_id); - } - + /* Check if there is a autoreplacement set for the vehicle */ + new_engine_type = EngineReplacementForPlayer(p, old_v->engine_type, old_v->group_id); + /* if not, just renew to the same type */ if (new_engine_type == INVALID_ENGINE) new_engine_type = old_v->engine_type; replacement_cargo_type = GetNewCargoTypeForReplace(old_v, new_engine_type); @@ -345,22 +336,7 @@ CommandCost MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs) // check if the vehicle should be replaced if (!w->NeedsAutorenewing(p) || // replace if engine is too old w->max_age == 0) { // rail cars got a max age of 0 - /* If the vehicle belongs to a group, check if the group is protected from the global autoreplace. - If not, chek if an global auto remplacement is defined */ - if (IsValidGroupID(w->group_id)) { - if (!EngineHasReplacementForPlayer(p, w->engine_type, w->group_id) && ( - GetGroup(w->group_id)->replace_protection || - !EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP))) { - continue; - } - } else if (IsDefaultGroupID(w->group_id)) { - if (!EngineHasReplacementForPlayer(p, w->engine_type, DEFAULT_GROUP) && - !EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP)) { - continue; - } - } else if (!EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP)) { - continue; - } + if (!EngineHasReplacementForPlayer(p, w->engine_type, w->group_id)) continue; } /* Now replace the vehicle */ diff --git a/src/group.h b/src/group.h index ca34556eb..2693523ac 100644 --- a/src/group.h +++ b/src/group.h @@ -12,7 +12,7 @@ enum { ALL_GROUP = 0xFFFD, - DEFAULT_GROUP = 0xFFFE, + DEFAULT_GROUP = 0xFFFE, ///< ungrouped vehicles are in this group. INVALID_GROUP = 0xFFFF, }; |