(svn r24679) -Codechange: Add resolver classes for towns.
This commit is contained in:
@@ -13,11 +13,37 @@
|
||||
#define NEWGRF_TOWN_H
|
||||
|
||||
#include "town_type.h"
|
||||
#include "newgrf_spritegroup.h"
|
||||
|
||||
/* Currently there is no direct town resolver; we only need to get town
|
||||
* variable results from inside stations, house tiles and industries,
|
||||
* and to check the town's persistent storage. */
|
||||
* and to check the town's persistent storage.
|
||||
* XXX Remove the functions. */
|
||||
uint32 TownGetVariable(byte variable, uint32 parameter, bool *available, Town *t, const struct GRFFile *caller_grffile);
|
||||
void TownStorePSA(Town *t, const struct GRFFile *caller_grffile, uint pos, int32 value);
|
||||
|
||||
struct TownScopeResolver : public ScopeResolver {
|
||||
Town *t;
|
||||
bool readonly;
|
||||
|
||||
TownScopeResolver(ResolverObject *ro, Town *t, bool readonly);
|
||||
|
||||
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
|
||||
virtual void StorePSA(uint reg, int32 value);
|
||||
};
|
||||
|
||||
struct TownResolverObject : public ResolverObject {
|
||||
TownScopeResolver town_scope;
|
||||
|
||||
TownResolverObject(const struct GRFFile *grffile, Town *t, bool readonly);
|
||||
|
||||
/* virtual */ ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, byte relative = 0)
|
||||
{
|
||||
switch (scope) {
|
||||
case VSG_SCOPE_SELF: return &town_scope;
|
||||
default: return &this->default_scope; // XXX return ResolverObject::GetScope(scope, relative);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* NEWGRF_TOWN_H */
|
||||
|
Reference in New Issue
Block a user