(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.
authorfrosch
Thu, 06 Mar 2008 10:39:26 +0000
changeset 9176 676d04b1e38a
parent 9175 5e67fb92d4d6
child 9177 657401e13c0f
(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.
src/autoreplace_cmd.cpp
src/group.h
--- a/src/autoreplace_cmd.cpp	Wed Mar 05 22:05:22 2008 +0000
+++ b/src/autoreplace_cmd.cpp	Thu Mar 06 10:39:26 2008 +0000
@@ -140,18 +140,9 @@
 	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 @@
 			// 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 */
--- a/src/group.h	Wed Mar 05 22:05:22 2008 +0000
+++ b/src/group.h	Thu Mar 06 10:39:26 2008 +0000
@@ -12,7 +12,7 @@
 
 enum {
 	ALL_GROUP     = 0xFFFD,
-	DEFAULT_GROUP = 0xFFFE,
+	DEFAULT_GROUP = 0xFFFE, ///< ungrouped vehicles are in this group.
 	INVALID_GROUP = 0xFFFF,
 };