changeset 17128:e71b7d776112 draft

(svn r21865) -Fix (r21862): don't perform savegame conversion when reinitialising some vehicle structures due to NewGRF changes
author rubidium <rubidium@openttd.org>
date Thu, 20 Jan 2011 09:35:16 +0000
parents 1e96a453989d
children 703380c6e064
files src/saveload/vehicle_sl.cpp
diffstat 1 files changed, 24 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/saveload/vehicle_sl.cpp
+++ b/src/saveload/vehicle_sl.cpp
@@ -296,31 +296,33 @@
 		}
 	}
 
-	if (IsSavegameVersionBefore(105)) {
-		/* Before 105 there was no order for shared orders, thus it messed up horribly */
-		FOR_ALL_VEHICLES(v) {
-			if (v->First() != v || v->orders.list != NULL || v->previous_shared != NULL || v->next_shared == NULL) continue;
+	if (part_of_load) {
+		if (IsSavegameVersionBefore(105)) {
+			/* Before 105 there was no order for shared orders, thus it messed up horribly */
+			FOR_ALL_VEHICLES(v) {
+				if (v->First() != v || v->orders.list != NULL || v->previous_shared != NULL || v->next_shared == NULL) continue;
 
-			v->orders.list = new OrderList(NULL, v);
-			for (Vehicle *u = v; u != NULL; u = u->next_shared) {
-				u->orders.list = v->orders.list;
+				v->orders.list = new OrderList(NULL, v);
+				for (Vehicle *u = v; u != NULL; u = u->next_shared) {
+					u->orders.list = v->orders.list;
+				}
 			}
 		}
-	}
 
-	if (IsSavegameVersionBefore(157)) {
-		/* The road vehicle subtype was converted to a flag. */
-		RoadVehicle *rv;
-		FOR_ALL_ROADVEHICLES(rv) {
-			if (rv->subtype == 0) {
-				/* The road vehicle is at the front. */
-				rv->SetFrontEngine();
-			} else if (rv->subtype == 1) {
-				/* The road vehicle is an articulated part. */
-				rv->subtype = 0;
-				rv->SetArticulatedPart();
-			} else {
-				NOT_REACHED();
+		if (IsSavegameVersionBefore(157)) {
+			/* The road vehicle subtype was converted to a flag. */
+			RoadVehicle *rv;
+			FOR_ALL_ROADVEHICLES(rv) {
+				if (rv->subtype == 0) {
+					/* The road vehicle is at the front. */
+					rv->SetFrontEngine();
+				} else if (rv->subtype == 1) {
+					/* The road vehicle is an articulated part. */
+					rv->subtype = 0;
+					rv->SetArticulatedPart();
+				} else {
+					NOT_REACHED();
+				}
 			}
 		}
 	}
@@ -360,7 +362,7 @@
 	}
 
 	/* Stop non-front engines */
-	if (IsSavegameVersionBefore(112)) {
+	if (part_of_load && IsSavegameVersionBefore(112)) {
 		FOR_ALL_VEHICLES(v) {
 			if (v->type == VEH_TRAIN) {
 				Train *t = Train::From(v);