summaryrefslogtreecommitdiff
path: root/src/newgrf_airporttiles.h
diff options
context:
space:
mode:
authoralberth <alberth@openttd.org>2012-11-10 20:42:19 +0000
committeralberth <alberth@openttd.org>2012-11-10 20:42:19 +0000
commit37605108e1471e18521bd2be30cecb39c4719ef9 (patch)
tree4696da5d8b0d4dcbde8872356e33105cd4c16771 /src/newgrf_airporttiles.h
parent82e6001451f0dcfd5f85427a1f3a843656292f1e (diff)
downloadopenttd-37605108e1471e18521bd2be30cecb39c4719ef9.tar.xz
(svn r24686) -Codechange: Add resolver classes for airport tiles.
Diffstat (limited to 'src/newgrf_airporttiles.h')
-rw-r--r--src/newgrf_airporttiles.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/newgrf_airporttiles.h b/src/newgrf_airporttiles.h
index 61b0a2b1c..0e9644ecf 100644
--- a/src/newgrf_airporttiles.h
+++ b/src/newgrf_airporttiles.h
@@ -16,6 +16,35 @@
#include "station_map.h"
#include "newgrf_animation_type.h"
#include "newgrf_commons.h"
+#include "newgrf_spritegroup.h"
+
+struct AirportTileScopeResolver : public ScopeResolver {
+ struct Station *st; ///< Station of the airport for which the callback is run, or \c NULL for build gui.
+ byte airport_id; ///< Type of airport for which the callback is run.
+ TileIndex tile; ///< Tile for the callback, only valid for airporttile callbacks.
+
+ AirportTileScopeResolver(ResolverObject *ro, const AirportTileSpec *ats, TileIndex tile, Station *st);
+
+ /* virtual */ uint32 GetRandomBits() const;
+ /* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
+};
+
+struct AirportTileResolverObject : public ResolverObject {
+ AirportTileScopeResolver tiles_scope;
+
+ AirportTileResolverObject(const AirportTileSpec *ats, TileIndex tile, Station *st,
+ CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0);
+
+ /* virtual */ ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, byte relative = 0)
+ {
+ switch (scope) {
+ case VSG_SCOPE_SELF: return &tiles_scope;
+ default: return &this->default_scope; // XXX return ResolverObject::GetScope(scope, relative);
+ }
+ }
+
+ /* virtual */ const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const;
+};
/**
* Defines the data structure of each indivudual tile of an airport.