summaryrefslogtreecommitdiff
path: root/src/newgrf_engine.cpp
diff options
context:
space:
mode:
authorterkhen <terkhen@openttd.org>2010-12-14 21:33:53 +0000
committerterkhen <terkhen@openttd.org>2010-12-14 21:33:53 +0000
commit48b7916458de4b2cdbc226a4a6ab078db4c77e73 (patch)
treec3a49ca7a91890042ca56765574bc40a54c15f96 /src/newgrf_engine.cpp
parenta93944e765776c6e9a2bd556457cd93748068da6 (diff)
downloadopenttd-48b7916458de4b2cdbc226a4a6ab078db4c77e73.tar.xz
(svn r21521) -Codechange: Unify some cached values that were present in both road vehicles and trains.
Diffstat (limited to 'src/newgrf_engine.cpp')
-rw-r--r--src/newgrf_engine.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp
index 22eca8844..76c5572f0 100644
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -439,10 +439,8 @@ static uint8 LiveryHelper(EngineID engine, const Vehicle *v)
if (v == NULL) {
if (!Company::IsValidID(_current_company)) return 0;
l = GetEngineLivery(engine, _current_company, INVALID_ENGINE, NULL, LIT_ALL);
- } else if (v->type == VEH_TRAIN) {
- l = GetEngineLivery(v->engine_type, v->owner, Train::From(v)->tcache.first_engine, v, LIT_ALL);
- } else if (v->type == VEH_ROAD) {
- l = GetEngineLivery(v->engine_type, v->owner, RoadVehicle::From(v)->rcache.first_engine, v, LIT_ALL);
+ } else if (v->IsGroundVehicle()) {
+ l = GetEngineLivery(v->engine_type, v->owner, v->GetGroundVehicleCache()->first_engine, v, LIT_ALL);
} else {
l = GetEngineLivery(v->engine_type, v->owner, INVALID_ENGINE, v, LIT_ALL);
}
@@ -794,7 +792,7 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
switch (variable - 0x80) {
case 0x62: return t->track;
case 0x66: return t->railtype;
- case 0x73: return t->tcache.cached_veh_length;
+ case 0x73: return t->gcache.cached_veh_length;
case 0x74: return t->gcache.cached_power;
case 0x75: return GB(t->gcache.cached_power, 8, 24);
case 0x76: return GB(t->gcache.cached_power, 16, 16);
@@ -909,14 +907,15 @@ static const SpriteGroup *GetVehicleSpriteGroup(EngineID engine, const Vehicle *
} else {
cargo = v->cargo_type;
- if (v->type == VEH_TRAIN) {
- /* We always use cached value, except for callbacks because the override spriteset
+ if (v->IsGroundVehicle()) {
+ /* For trains we always use cached value, except for callbacks because the override spriteset
* to use may be different than the one cached. It happens for callback 0x15 (refit engine),
* as v->cargo_type is temporary changed to the new type */
- group = use_cache ? Train::From(v)->tcache.cached_override : GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, Train::From(v)->tcache.first_engine);
- if (group != NULL) return group;
- } else if (v->type == VEH_ROAD) {
- group = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, RoadVehicle::From(v)->rcache.first_engine);
+ if (use_cache && v->type == VEH_TRAIN) {
+ group = Train::From(v)->tcache.cached_override;
+ } else {
+ group = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, v->GetGroundVehicleCache()->first_engine);
+ }
if (group != NULL) return group;
}
}