summaryrefslogtreecommitdiff
path: root/src/water_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/water_cmd.cpp')
-rw-r--r--src/water_cmd.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp
index a692e53a6..3034f98cd 100644
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -798,18 +798,20 @@ static void FloodVehicle(Vehicle *v)
switch (v->type) {
default: NOT_REACHED();
- case VEH_TRAIN:
- if (IsFrontEngine(v)) {
+ case VEH_TRAIN: {
+ Train *t = Train::From(v);
+ if (t->IsFrontEngine()) {
pass += 4; // driver
/* FreeTrainTrackReservation() calls GetVehicleTrackdir() that doesn't like crashed vehicles.
* In this case, v->direction matches v->u.rail.track, so we can do this (it wasn't crashed before) */
- v->vehstatus &= ~VS_CRASHED;
- FreeTrainTrackReservation(Train::From(v));
- v->vehstatus |= VS_CRASHED;
+ t->vehstatus &= ~VS_CRASHED;
+ FreeTrainTrackReservation(t);
+ t->vehstatus |= VS_CRASHED;
}
- Train::From(v)->crash_anim_pos = 4000; // max 4440, disappear pretty fast
+ t->crash_anim_pos = 4000; // max 4440, disappear pretty fast
InvalidateWindowClassesData(WC_TRAINS_LIST, 0);
break;
+ }
case VEH_ROAD:
if (IsRoadVehFront(v)) pass += 1; // driver