--- a/src/train_cmd.cpp Mon Apr 14 20:31:21 2008 +0000
+++ b/src/train_cmd.cpp Mon Apr 14 20:48:17 2008 +0000
@@ -1811,8 +1811,7 @@
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
}
- /* set reversed flag on all parts */
- for (Vehicle *u = v; u != NULL; u = u->Next()) ToggleBit(u->u.rail.flags, VRF_TOGGLE_REVERSE);
+ ToggleBit(v->u.rail.flags, VRF_TOGGLE_REVERSE);
ClrBit(v->u.rail.flags, VRF_REVERSING);
--- a/src/vehicle.cpp Mon Apr 14 20:31:21 2008 +0000
+++ b/src/vehicle.cpp Mon Apr 14 20:48:17 2008 +0000
@@ -2188,8 +2188,7 @@
if (!IsFrontEngine(v)) v = v->First();
UpdateSignalsOnSegment(v->tile, INVALID_DIAGDIR, v->owner);
v->load_unload_time_rem = 0;
- /* Reset reversed flag */
- for (Vehicle *u = v; u != NULL; u = u->Next()) ClrBit(u->u.rail.flags, VRF_TOGGLE_REVERSE);
+ ClrBit(v->u.rail.flags, VRF_TOGGLE_REVERSE);
TrainConsistChanged(v);
break;
--- a/src/vehicle_base.h Mon Apr 14 20:31:21 2008 +0000
+++ b/src/vehicle_base.h Mon Apr 14 20:48:17 2008 +0000
@@ -139,7 +139,7 @@
/* used to mark that electric train engine is allowed to run on normal rail */
VRF_EL_ENGINE_ALLOWED_NORMAL_RAIL = 6,
- /* used for vehicle var 0xFE bit 8 (toggled each time the train is reversed) */
+ /* used for vehicle var 0xFE bit 8 (toggled each time the train is reversed, accurate for first vehicle only) */
VRF_TOGGLE_REVERSE = 7,
};