diff options
author | darkvater <darkvater@openttd.org> | 2004-11-14 20:53:34 +0000 |
---|---|---|
committer | darkvater <darkvater@openttd.org> | 2004-11-14 20:53:34 +0000 |
commit | 051e094921f208f48f3239622f96078c528ef734 (patch) | |
tree | 59aacf7c4093a50c5115327628415a4024e35a21 /engine.c | |
parent | ec434b208e6e67f98f7795f1a9d6154df888c6b2 (diff) | |
download | openttd-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.c | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -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; |