diff src/train_cmd.cpp @ 8706:20434584b743 draft

(svn r12380) -Fix: update train acceleration and max speed after setting cached value to ensure the correct max speed is used with disabled real acceleration
author glx <glx@openttd.org>
date Mon, 17 Mar 2008 22:13:00 +0000 (2008-03-17)
parents 7de4aaf3564a
children d087f1604050
line wrap: on
line diff
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -291,7 +291,10 @@
 	/* recalculate cached weights and power too (we do this *after* the rest, so it is known which wagons are powered and need extra weight added) */
 	TrainCargoChanged(v);
 
-	if (IsFrontEngine(v)) InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
+	if (IsFrontEngine(v)) {
+		UpdateTrainAcceleration(v);
+		InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
+	}
 }
 
 enum AccelType {
@@ -792,7 +795,6 @@
 			}
 
 			TrainConsistChanged(v);
-			UpdateTrainAcceleration(v);
 			UpdateTrainGroupID(v);
 
 			if (!HasBit(p2, 1)) { // check if the cars should be added to the new vehicle
@@ -1247,7 +1249,6 @@
 			TrainConsistChanged(src_head);
 			UpdateTrainGroupID(src_head);
 			if (IsFrontEngine(src_head)) {
-				UpdateTrainAcceleration(src_head);
 				/* Update the refit button and window */
 				InvalidateWindow(WC_VEHICLE_REFIT, src_head->index);
 				InvalidateWindowWidget(WC_VEHICLE_VIEW, src_head->index, VVW_WIDGET_REFIT_VEH);
@@ -1261,7 +1262,6 @@
 			TrainConsistChanged(dst_head);
 			UpdateTrainGroupID(dst_head);
 			if (IsFrontEngine(dst_head)) {
-				UpdateTrainAcceleration(dst_head);
 				/* Update the refit button and window */
 				InvalidateWindowWidget(WC_VEHICLE_VIEW, dst_head->index, VVW_WIDGET_REFIT_VEH);
 				InvalidateWindow(WC_VEHICLE_REFIT, dst_head->index);
@@ -1434,10 +1434,7 @@
 					NormaliseTrainConsist(first);
 					TrainConsistChanged(first);
 					UpdateTrainGroupID(first);
-					if (IsFrontEngine(first)) {
-						InvalidateWindow(WC_VEHICLE_REFIT, first->index);
-						UpdateTrainAcceleration(first);
-					}
+					if (IsFrontEngine(first)) InvalidateWindow(WC_VEHICLE_REFIT, first->index);
 				}
 
 
@@ -1503,7 +1500,6 @@
 				NormaliseTrainConsist(first);
 				TrainConsistChanged(first);
 				UpdateTrainGroupID(first);
-				if (IsFrontEngine(first)) UpdateTrainAcceleration(first);
 				InvalidateWindow(WC_VEHICLE_REFIT, first->index);
 			}
 		} break;