changeset 8696:d26cb5ed3133 draft

(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
author smatz <smatz@openttd.org>
date Sat, 15 Mar 2008 19:24:13 +0000
parents 9ee0730039f4
children d930064ffbf5
files src/settings.cpp src/train.h src/train_cmd.cpp
diffstat 3 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -1195,6 +1195,17 @@
 	return 0;
 }
 
+static int32 RealisticAccelerationChanged(int32 p1)
+{
+	Vehicle *v;
+
+	FOR_ALL_VEHICLES(v) {
+		if (v->type == VEH_TRAIN && IsFrontEngine(v)) UpdateTrainAcceleration(v);
+	}
+
+	return 0;
+}
+
 /**
  * Check for right TownLayout usage in editor mode.
  * The No Road mode is not desirable since towns have to be
@@ -1395,7 +1406,7 @@
 
 	/***************************************************************************/
 	/* Vehicle section of the GUI-configure patches window */
-	SDT_BOOL(Patches, realistic_acceleration,        0, 0, false,                    STR_CONFIG_PATCHES_REALISTICACCEL,       NULL),
+	SDT_BOOL(Patches, realistic_acceleration,        0, 0, false,                    STR_CONFIG_PATCHES_REALISTICACCEL,       RealisticAccelerationChanged),
 	SDT_BOOL(Patches, forbid_90_deg,                 0, 0, false,                    STR_CONFIG_PATCHES_FORBID_90_DEG,        NULL),
 	SDT_BOOL(Patches, mammoth_trains,                0,NN,  true,                    STR_CONFIG_PATCHES_MAMMOTHTRAINS,        NULL),
 	SDT_BOOL(Patches, gotodepot,                     0, 0,  true,                    STR_CONFIG_PATCHES_GOTODEPOT,            NULL),
--- a/src/train.h
+++ b/src/train.h
@@ -274,6 +274,7 @@
 
 int CheckTrainInDepot(const Vehicle *v, bool needs_to_be_stopped);
 int CheckTrainStoppedInDepot(const Vehicle *v);
+void UpdateTrainAcceleration(Vehicle* v);
 
 /**
  * This class 'wraps' Vehicle; you do not actually instantiate this class.
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -467,7 +467,7 @@
 	}
 }
 
-static void UpdateTrainAcceleration(Vehicle* v)
+void UpdateTrainAcceleration(Vehicle* v)
 {
 	assert(IsFrontEngine(v));