summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2008-03-06 10:39:26 +0000
committerfrosch <frosch@openttd.org>2008-03-06 10:39:26 +0000
commit068952448150b774ea369e20a13a71a3e846ee30 (patch)
treee5d3a86938a2ac6a3c1821661d029ca596a598ae /src
parentfe4a6985b2991277ca777e8f32d071370a9761db (diff)
downloadopenttd-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.cpp32
-rw-r--r--src/group.h2
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,
};