File diff r21298:c09c5ce22fcd → r21299:8973364c4b52
src/newgrf_airporttiles.cpp
Show inline comments
 
@@ -214,12 +214,13 @@ static uint32 GetAirportTileIDAtOffset(T
 
 * @param callback_param2 Second parameter (var 18) of the callback.
 
 */
 
AirportTileResolverObject::AirportTileResolverObject(const AirportTileSpec *ats, TileIndex tile, Station *st,
 
		CallbackID callback, uint32 callback_param1, uint32 callback_param2)
 
	: ResolverObject(ats->grf_prop.grffile, callback, callback_param1, callback_param2), tiles_scope(*this, ats, tile, st)
 
{
 
	this->root_spritegroup = ats->grf_prop.spritegroup[0];
 
}
 

	
 
/**
 
 * Constructor of the scope resolver specific for airport tiles.
 
 * @param ats Specification of the airport tiles.
 
 * @param tile %Tile for the callback, only valid for airporttile callbacks.
 
@@ -234,16 +235,13 @@ AirportTileScopeResolver::AirportTileSco
 
	this->tile = tile;
 
}
 

	
 
uint16 GetAirportTileCallback(CallbackID callback, uint32 param1, uint32 param2, const AirportTileSpec *ats, Station *st, TileIndex tile, int extra_data = 0)
 
{
 
	AirportTileResolverObject object(ats, tile, st, callback, param1, param2);
 
	const SpriteGroup *group = SpriteGroup::Resolve(ats->grf_prop.spritegroup[0], object);
 
	if (group == NULL) return CALLBACK_FAILED;
 

	
 
	return group->GetCallbackResult();
 
	return object.ResolveCallback();
 
}
 

	
 
static void AirportDrawTileLayout(const TileInfo *ti, const TileLayoutSpriteGroup *group, byte colour, StationGfx gfx)
 
{
 
	const DrawTileSprites *dts = group->ProcessRegisters(NULL);
 

	
 
@@ -272,13 +270,13 @@ bool DrawNewAirportTile(TileInfo *ti, St
 
		}
 

	
 
		if (draw_old_one) DrawFoundation(ti, FOUNDATION_LEVELED);
 
	}
 

	
 
	AirportTileResolverObject object(airts, ti->tile, st);
 
	const SpriteGroup *group = SpriteGroup::Resolve(airts->grf_prop.spritegroup[0], object);
 
	const SpriteGroup *group = object.Resolve();
 
	if (group == NULL || group->type != SGT_TILELAYOUT) {
 
		return false;
 
	}
 

	
 
	const TileLayoutSpriteGroup *tlgroup = (const TileLayoutSpriteGroup *)group;
 
	AirportDrawTileLayout(ti, tlgroup, Company::Get(st->owner)->colour, gfx);