diff options
author | rubidium <rubidium@openttd.org> | 2008-07-06 11:08:40 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-07-06 11:08:40 +0000 |
commit | b2479212ef407b9228ace5d04fb234bfd223f2da (patch) | |
tree | 7a34f2cdc4f3963847cbcad8729e0ccfa69bc724 /src/vehicle.cpp | |
parent | ba22744899931a20f54d61757471474f0cf63a09 (diff) | |
download | openttd-b2479212ef407b9228ace5d04fb234bfd223f2da.tar.xz |
(svn r13678) -Fix (r13677): electric trains from pre elrail savegames would get stopped on load.
Diffstat (limited to 'src/vehicle.cpp')
-rw-r--r-- | src/vehicle.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp index bda5efefd..ff904aeb9 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -275,17 +275,8 @@ void AfterLoadVehicles(bool clear_te_id) } FOR_ALL_VEHICLES(v) { - assert(v->first != NULL); + assert(v->First() != NULL); - if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) { - if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed - TrainConsistChanged(v); - } else if (v->type == VEH_ROAD && IsRoadVehFront(v)) { - RoadVehUpdateCache(v); - } - } - - FOR_ALL_VEHICLES(v) { switch (v->type) { case VEH_ROAD: v->u.road.roadtype = HasBit(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD; @@ -321,6 +312,19 @@ void AfterLoadVehicles(bool clear_te_id) } } +void InitializeVehicleCaches() +{ + Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) { + if (IsFrontEngine(v)) v->u.rail.last_speed = v->cur_speed; // update displayed train speed + TrainConsistChanged(v); + } else if (v->type == VEH_ROAD && IsRoadVehFront(v)) { + RoadVehUpdateCache(v); + } + } +} + Vehicle::Vehicle() { this->type = VEH_INVALID; |