diff options
author | peter1138 <peter1138@openttd.org> | 2006-04-27 19:53:58 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-04-27 19:53:58 +0000 |
commit | 7aaedf038522579b2210d91234beb0e3cb919960 (patch) | |
tree | 4ca30a240de71e8e2740d19c74db62d34bec9182 /newgrf_spritegroup.h | |
parent | 3ac1832fd1c901a82851556b3503b320f20f783d (diff) | |
download | openttd-7aaedf038522579b2210d91234beb0e3cb919960.tar.xz |
(svn r4594) - NewGRF: introduce the basic sprite group resolver. This code isn't used yet.
Diffstat (limited to 'newgrf_spritegroup.h')
-rw-r--r-- | newgrf_spritegroup.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/newgrf_spritegroup.h b/newgrf_spritegroup.h index bd03f00a8..36680f451 100644 --- a/newgrf_spritegroup.h +++ b/newgrf_spritegroup.h @@ -154,4 +154,39 @@ struct SpriteGroup { SpriteGroup *AllocateSpriteGroup(void); void InitializeSpriteGroupPool(void); + +typedef struct ResolverObject { + byte callback; + uint32 callback_param1; + uint32 callback_param2; + + byte trigger; + uint32 last_value; + uint32 reseed; + VarSpriteGroupScope scope; + + union { + struct { + const struct Vehicle *self; + const struct Vehicle *parent; + } vehicle; + struct { + TileIndex tile; + const struct Station *st; + const struct StationSpec *statspec; + } station; + }; + + uint32 (*GetRandomBits)(const struct ResolverObject*); + uint32 (*GetTriggers)(const struct ResolverObject*); + void (*SetTriggers)(const struct ResolverObject*, int); + uint32 (*GetVariable)(const struct ResolverObject*, byte, byte); + uint32 (*ResolveReal)(const struct ResolverObject*, uint, uint, bool*); +} ResolverObject; + + +/* Base sprite group resolver */ +const SpriteGroup *Resolve(const SpriteGroup *group, ResolverObject *object); + + #endif /* NEWGRF_SPRITEGROUP_H */ |