summaryrefslogtreecommitdiff
path: root/engine.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-11-14 20:53:34 +0000
committerdarkvater <darkvater@openttd.org>2004-11-14 20:53:34 +0000
commit051e094921f208f48f3239622f96078c528ef734 (patch)
tree59aacf7c4093a50c5115327628415a4024e35a21 /engine.c
parentec434b208e6e67f98f7795f1a9d6154df888c6b2 (diff)
downloadopenttd-051e094921f208f48f3239622f96078c528ef734.tar.xz
(svn r611) -newgrf: Change GetCustomEngineSprite() calling convention (invisible to users of GetCustomVehicle*() wrappers). Needed for deterministic spritegroups support (pasky).
Diffstat (limited to 'engine.c')
-rw-r--r--engine.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/engine.c b/engine.c
index 70914ae9c..7e6944f5d 100644
--- a/engine.c
+++ b/engine.c
@@ -243,14 +243,26 @@ void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group)
_engine_custom_sprites[engine][cargo] = *group;
}
-int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo,
- byte loaded, byte in_motion, byte direction)
+int GetCustomEngineSprite(byte engine, Vehicle *v, byte direction)
{
- struct SpriteGroup *group = &_engine_custom_sprites[engine][cargo];
+ struct SpriteGroup *group;
struct RealSpriteGroup *rsg;
+ uint16 overriding_engine = -1;
+ byte cargo = CID_PURCHASE;
+ byte loaded = 0;
+ byte in_motion = 0;
int totalsets, spriteset;
int r;
+ if (v != NULL) {
+ overriding_engine = v->type == VEH_Train ? v->u.rail.first_engine : -1;
+ cargo = _global_cargo_id[_opt.landscape][v->cargo_type];
+ loaded = ((v->cargo_count + 1) * 100) / (v->cargo_cap + 1);
+ in_motion = !!v->cur_speed;
+ }
+
+ group = &_engine_custom_sprites[engine][cargo];
+
if (overriding_engine != 0xffff) {
struct SpriteGroup *overset;