(svn r26388) -Codechange: Move resolving of Action 3 into ResolverObject constructor.
This commit is contained in:
@@ -33,7 +33,7 @@ struct CanalScopeResolver : public ScopeResolver {
|
||||
struct CanalResolverObject : public ResolverObject {
|
||||
CanalScopeResolver canal_scope;
|
||||
|
||||
CanalResolverObject(const GRFFile *grffile, TileIndex tile,
|
||||
CanalResolverObject(CanalFeature feature, TileIndex tile,
|
||||
CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0);
|
||||
|
||||
/* virtual */ ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, byte relative = 0)
|
||||
@@ -115,16 +115,17 @@ CanalScopeResolver::CanalScopeResolver(ResolverObject &ro, TileIndex tile) : Sco
|
||||
|
||||
/**
|
||||
* Canal resolver constructor.
|
||||
* @param grffile Grf file.
|
||||
* @param feature Which canal feature we want.
|
||||
* @param tile Tile index of canal.
|
||||
* @param callback Callback ID.
|
||||
* @param callback_param1 First parameter (var 10) of the callback.
|
||||
* @param callback_param2 Second parameter (var 18) of the callback.
|
||||
*/
|
||||
CanalResolverObject::CanalResolverObject(const GRFFile *grffile, TileIndex tile,
|
||||
CanalResolverObject::CanalResolverObject(CanalFeature feature, TileIndex tile,
|
||||
CallbackID callback, uint32 callback_param1, uint32 callback_param2)
|
||||
: ResolverObject(grffile, callback, callback_param1, callback_param2), canal_scope(*this, tile)
|
||||
: ResolverObject(_water_feature[feature].grffile, callback, callback_param1, callback_param2), canal_scope(*this, tile)
|
||||
{
|
||||
this->root_spritegroup = _water_feature[feature].group;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -135,8 +136,8 @@ CanalResolverObject::CanalResolverObject(const GRFFile *grffile, TileIndex tile,
|
||||
*/
|
||||
SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile)
|
||||
{
|
||||
CanalResolverObject object(_water_feature[feature].grffile, tile);
|
||||
const SpriteGroup *group = SpriteGroup::Resolve(_water_feature[feature].group, object);
|
||||
CanalResolverObject object(feature, tile);
|
||||
const SpriteGroup *group = object.Resolve();
|
||||
if (group == NULL) return 0;
|
||||
|
||||
return group->GetResult();
|
||||
@@ -153,11 +154,8 @@ SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile)
|
||||
*/
|
||||
static uint16 GetCanalCallback(CallbackID callback, uint32 param1, uint32 param2, CanalFeature feature, TileIndex tile)
|
||||
{
|
||||
CanalResolverObject object(_water_feature[feature].grffile, tile, callback, param1, param2);
|
||||
const SpriteGroup *group = SpriteGroup::Resolve(_water_feature[feature].group, object);
|
||||
if (group == NULL) return CALLBACK_FAILED;
|
||||
|
||||
return group->GetCallbackResult();
|
||||
CanalResolverObject object(feature, tile, callback, param1, param2);
|
||||
return object.ResolveCallback();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user