summaryrefslogtreecommitdiff
path: root/newgrf_spritegroup.h
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-04-27 19:53:58 +0000
committerpeter1138 <peter1138@openttd.org>2006-04-27 19:53:58 +0000
commit2f3401b4877921a6cac394eb37ae4f8603becc34 (patch)
tree4ca30a240de71e8e2740d19c74db62d34bec9182 /newgrf_spritegroup.h
parent187013b6a3962af91479d8837f04b82095b7059f (diff)
downloadopenttd-2f3401b4877921a6cac394eb37ae4f8603becc34.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.h35
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 */