summaryrefslogtreecommitdiff
path: root/src/saveload
diff options
context:
space:
mode:
authorterkhen <terkhen@openttd.org>2010-11-06 13:03:17 +0000
committerterkhen <terkhen@openttd.org>2010-11-06 13:03:17 +0000
commit25d1b2f54b9cac01e2737848c208f6d8096a4a92 (patch)
tree37860a84857248e929612d7ed018a4e2065d31cd /src/saveload
parentc8a56f17f82be7d4a8e935fc514c86a313dc7d15 (diff)
downloadopenttd-25d1b2f54b9cac01e2737848c208f6d8096a4a92.tar.xz
(svn r21098) -Codechange: Ships now store their max speed in the cache instead of recalculating it every time.
Diffstat (limited to 'src/saveload')
-rw-r--r--src/saveload/vehicle_sl.cpp34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp
index 6da47fee4..7817e81ba 100644
--- a/src/saveload/vehicle_sl.cpp
+++ b/src/saveload/vehicle_sl.cpp
@@ -313,20 +313,32 @@ void AfterLoadVehicles(bool part_of_load)
FOR_ALL_VEHICLES(v) {
assert(v->first != NULL);
- if (v->type == VEH_TRAIN) {
- Train *t = Train::From(v);
- if (t->IsFrontEngine() || t->IsFreeWagon()) {
- t->tcache.last_speed = t->cur_speed; // update displayed train speed
- t->ConsistChanged(false);
+ switch (v->type) {
+ case VEH_TRAIN: {
+ Train *t = Train::From(v);
+ if (t->IsFrontEngine() || t->IsFreeWagon()) {
+ t->tcache.last_speed = t->cur_speed; // update displayed train speed
+ t->ConsistChanged(false);
+ }
+ break;
}
- } else if (v->type == VEH_ROAD) {
- RoadVehicle *rv = RoadVehicle::From(v);
- if (rv->IsRoadVehFront()) {
- RoadVehUpdateCache(rv);
- if (_settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL) {
- rv->CargoChanged();
+
+ case VEH_ROAD: {
+ RoadVehicle *rv = RoadVehicle::From(v);
+ if (rv->IsRoadVehFront()) {
+ RoadVehUpdateCache(rv);
+ if (_settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL) {
+ rv->CargoChanged();
+ }
}
+ break;
}
+
+ case VEH_SHIP:
+ Ship::From(v)->UpdateCache();
+ break;
+
+ default: break;
}
}