(svn r24691) -Codechange: Add resolver classes for vehicles.

This commit is contained in:
alberth
2012-11-10 20:45:04 +00:00
parent e087503fd6
commit 69e07c3e00
4 changed files with 143 additions and 159 deletions

View File

@@ -18,6 +18,37 @@
#include "vehicle_type.h"
#include "engine_type.h"
#include "gfx_type.h"
#include "newgrf_spritegroup.h"
struct VehicleScopeResolver : public ScopeResolver {
const struct Vehicle *v;
EngineID self_type;
bool info_view; ///< Indicates if the item is being drawn in an info window
VehicleScopeResolver(ResolverObject *ro, EngineID engine_type, const Vehicle *v, bool info_view);
void SetVehicle(const Vehicle *v) { this->v = v; }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
/* virtual */ uint32 GetTriggers() const;
/* virtual */ void SetTriggers(int triggers) const;
};
struct VehicleResolverObject : public ResolverObject {
VehicleScopeResolver self_scope;
VehicleScopeResolver parent_scope;
VehicleScopeResolver relative_scope;
byte cached_relative_count;
VehicleResolverObject(EngineID engine_type, const Vehicle *v, bool info_view = false,
CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0);
/* virtual */ ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, byte relative = 0);
/* virtual */ const SpriteGroup *ResolveReal(const RealSpriteGroup *group) const;
};
static const uint TRAININFO_DEFAULT_VEHICLE_WIDTH = 29;
static const uint ROADVEHINFO_DEFAULT_VEHICLE_WIDTH = 32;