From 10ab24a5f149955f3af71ba152609a4be676b795 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Wed, 23 Apr 2008 21:55:24 +0000 Subject: (svn r12856) -Fix: Taking r12377 further, ensure that prop 25 is set for all vehicles in the consist before other properties. --- src/train_cmd.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/train_cmd.cpp') diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 84ad087c9..681f369cc 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -203,12 +203,24 @@ void TrainConsistChanged(Vehicle *v) /* Check the v->first cache. */ assert(u->First() == v); - if (!HasBit(EngInfo(u->engine_type)->misc_flags, EF_RAIL_TILTS)) train_can_tilt = false; - /* update the 'first engine' */ u->u.rail.first_engine = v == u ? INVALID_ENGINE : first_engine; u->u.rail.railtype = rvi_u->railtype; + /* Set user defined data to its default value */ + u->u.rail.user_def_data = rvi_u->user_def_data; + } + + for (Vehicle *u = v; u != NULL; u = u->Next()) { + /* Update user defined data (must be done before other properties) */ + u->u.rail.user_def_data = GetVehicleProperty(u, 0x25, u->u.rail.user_def_data); + } + + for (Vehicle *u = v; u != NULL; u = u->Next()) { + const RailVehicleInfo *rvi_u = RailVehInfo(u->engine_type); + + if (!HasBit(EngInfo(u->engine_type)->misc_flags, EF_RAIL_TILTS)) train_can_tilt = false; + if (IsTrainEngine(u)) first_engine = u->engine_type; /* Cache wagon override sprite group. NULL is returned if there is none */ @@ -217,9 +229,6 @@ void TrainConsistChanged(Vehicle *v) /* Reset color map */ u->colormap = PAL_NONE; - /* Set user defined data (must be done before other properties) */ - u->u.rail.user_def_data = GetVehicleProperty(u, 0x25, rvi_u->user_def_data); - if (rvi_u->visual_effect != 0) { u->u.rail.cached_vis_effect = rvi_u->visual_effect; } else { -- cgit v1.2.3-54-g00ecf