summaryrefslogtreecommitdiff
path: root/newgrf_engine.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-06-22 21:15:27 +0000
committerpeter1138 <peter1138@openttd.org>2006-06-22 21:15:27 +0000
commit3753d0b602cc8bc13db9e4022e6b4b97fbfd161c (patch)
tree4762f0c461eb14f87e356bff742e769215de191f /newgrf_engine.c
parent84deeb78476cf8247c14e13c0276925167ee2e45 (diff)
downloadopenttd-3753d0b602cc8bc13db9e4022e6b4b97fbfd161c.tar.xz
(svn r5336) - NewGRF: draw custom helicopter rotor sprites in vehicle info window, ensuring the correct direction is used (inspiration from mart3p)
Diffstat (limited to 'newgrf_engine.c')
-rw-r--r--newgrf_engine.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/newgrf_engine.c b/newgrf_engine.c
index 577d53c34..442614df9 100644
--- a/newgrf_engine.c
+++ b/newgrf_engine.c
@@ -660,7 +660,7 @@ static uint32 VehicleGetVariable(const ResolverObject *object, byte variable, by
case 0x1C: return v->y_pos;
case 0x1D: return v->y_pos & 0xFF;
case 0x1E: return v->z_pos;
- case 0x1F: return v->direction;
+ case 0x1F: return object->info_view ? DIR_W : v->direction;
case 0x28: return v->cur_image;
case 0x29: return v->cur_image & 0xFF;
case 0x32: return v->vehstatus;
@@ -799,6 +799,8 @@ static inline void NewVehicleResolver(ResolverObject *res, const Vehicle *v)
res->u.vehicle.self = v;
res->u.vehicle.parent = (v != NULL && v->type == VEH_Train) ? GetFirstVehicleInChain(v) : v;
+ res->info_view = false;
+
res->callback = 0;
res->callback_param1 = 0;
res->callback_param2 = 0;
@@ -842,7 +844,7 @@ SpriteID GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction dire
}
-SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v)
+SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v, bool info_view)
{
const SpriteGroup *group;
ResolverObject object;
@@ -855,6 +857,8 @@ SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v)
NewVehicleResolver(&object, v);
+ object.info_view = info_view;
+
group = heli_rotor_custom_sprites[engine - AIRCRAFT_ENGINES_INDEX];
group = Resolve(group, &object);
@@ -862,7 +866,7 @@ SpriteID GetRotorOverrideSprite(EngineID engine, const Vehicle *v)
if (v == NULL) return group->g.result.sprite;
- return group->g.result.sprite + (v->next->next->u.air.state % group->g.result.num_sprites);
+ return group->g.result.sprite + (info_view ? 0 : (v->next->next->u.air.state % group->g.result.num_sprites));
}