diff options
author | rubidium <rubidium@openttd.org> | 2009-05-23 09:10:56 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-05-23 09:10:56 +0000 |
commit | 6237fe146228e84761c6aba14bf7acf6c359f061 (patch) | |
tree | 0ff89de7f14a652d59d972e949761819642296a4 /src/openttd.cpp | |
parent | da5661a0c8870c532c393ec3d330c3fbb44eb8ac (diff) | |
download | openttd-6237fe146228e84761c6aba14bf7acf6c359f061.tar.xz |
(svn r16394) -Codechange: move (NewGRF) cache variables into a separate struct so (some vehicle related) NewGRF cache 'desyncs' can be tested easier.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r-- | src/openttd.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 5268de747..0758bf29b 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1119,8 +1119,11 @@ void StateGameLoop() switch (v->type) { case VEH_ROAD: { - extern byte GetRoadVehLength(const RoadVehicle *v); - if (GetRoadVehLength((RoadVehicle *)v) != ((RoadVehicle *)v)->cached_veh_length) { + RoadVehicle *rv = (RoadVehicle *)v; + RoadVehicleCache cache = rv->rcache; + RoadVehUpdateCache(rv); + + if (memcmp(&cache, &rv->rcache, sizeof(RoadVehicleCache)) != 0) { DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber); } } break; @@ -1149,9 +1152,10 @@ void StateGameLoop() case VEH_AIRCRAFT: { Aircraft *a = (Aircraft *)v; - uint speed = a->cached_max_speed; + AircraftCache cache = a->acache; UpdateAircraftCache(a); - if (speed != a->cached_max_speed) { + + if (memcmp(&cache, &a->acache, sizeof(AircraftCache)) != 0) { DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber); } } break; |