changeset 8271:359d451c24ef draft

(svn r11835) -Fix: mark depot, viewports, vehicle lists and vehicle details dirty when a train crashes
author smatz <smatz@openttd.org>
date Sun, 13 Jan 2008 14:42:28 +0000
parents 5613b863190d
children 5abd257ad893
files src/train_cmd.cpp
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -2779,12 +2779,19 @@
 
 	v->u.rail.crash_anim_pos++;
 
-	Vehicle *u = v;
+	InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
+	InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
+
+	if (v->u.rail.track == TRACK_BIT_DEPOT) {
+		InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
+	}
+
+	RebuildVehicleLists();
+
 	BEGIN_ENUM_WAGONS(v)
 		v->vehstatus |= VS_CRASHED;
+		MarkAllViewportsDirty(v->left_coord, v->top_coord, v->right_coord + 1, v->bottom_coord + 1);
 	END_ENUM_WAGONS(v)
-
-	InvalidateWindowWidget(WC_VEHICLE_VIEW, u->index, STATUS_BAR);
 }
 
 static uint CountPassengersInTrain(const Vehicle* v)