(svn r12332) -Fix (r12331): Invalidate cached data and update image after setting flag.
authorpeter1138
Mon, 03 Mar 2008 21:42:37 +0000
changeset 9163 79101c0c3bc9
parent 9162 ec5f2f4eee15
child 9164 04e2cc7a00e6
(svn r12332) -Fix (r12331): Invalidate cached data and update image after setting flag.
src/train_cmd.cpp
--- a/src/train_cmd.cpp	Mon Mar 03 20:56:30 2008 +0000
+++ b/src/train_cmd.cpp	Mon Mar 03 21:42:37 2008 +0000
@@ -1786,14 +1786,17 @@
 		InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
 	}
 
-	/* update all images */
-	for (Vehicle *u = v; u != NULL; u = u->Next()) {
-		ToggleBit(u->u.rail.flags, VRF_TOGGLE_REVERSE);
-		u->cur_image = u->GetImage(u->direction);
-	}
+	/* set reversed flag on all parts */
+	for (Vehicle *u = v; u != NULL; u = u->Next()) ToggleBit(u->u.rail.flags, VRF_TOGGLE_REVERSE);
 
 	ClrBit(v->u.rail.flags, VRF_REVERSING);
 
+	/* recalculate cached data */
+	TrainConsistChanged(v);
+
+	/* update all images */
+	for (Vehicle *u = v; u != NULL; u = u->Next()) u->cur_image = u->GetImage(u->direction);
+
 	/* update crossing we were approaching */
 	if (crossing != INVALID_TILE) UpdateLevelCrossing(crossing);