Mercurial > hg > openttd
diff src/vehicle.cpp @ 9625:b55686de084c draft
(svn r13681) -Revert (r13678, r13677): the fixes didn't work in all cases (assertions on savegame loads).
-Fix [FS#2102]: but now in a hopefully beter way.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Tue, 08 Jul 2008 15:10:23 +0000 (2008-07-08) |
parents | 6db124593633 |
children | a05d108fe78f |
line wrap: on
line diff
--- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -275,8 +275,17 @@ } 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; @@ -312,19 +321,6 @@ } } -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;