|
@@ -214,46 +214,46 @@ static void NewAirportResolver(ResolverO
|
|
|
|
|
|
const AirportSpec *as = AirportSpec::Get(airport_id);
|
|
|
res->grffile = (as != NULL ? as->grf_prop.grffile : NULL);
|
|
|
}
|
|
|
|
|
|
SpriteID GetCustomAirportSprite(const AirportSpec *as, byte layout)
|
|
|
{
|
|
|
const SpriteGroup *group;
|
|
|
ResolverObject object;
|
|
|
|
|
|
NewAirportResolver(&object, INVALID_TILE, NULL, as->GetIndex(), layout);
|
|
|
|
|
|
group = SpriteGroup::Resolve(as->grf_prop.spritegroup, &object);
|
|
|
group = SpriteGroup::Resolve(as->grf_prop.spritegroup[0], &object);
|
|
|
if (group == NULL) return as->preview_sprite;
|
|
|
|
|
|
return group->GetResult();
|
|
|
}
|
|
|
|
|
|
uint16 GetAirportCallback(CallbackID callback, uint32 param1, uint32 param2, Station *st, TileIndex tile)
|
|
|
{
|
|
|
ResolverObject object;
|
|
|
|
|
|
NewAirportResolver(&object, tile, st, st->airport.type, st->airport.layout);
|
|
|
object.callback = callback;
|
|
|
object.callback_param1 = param1;
|
|
|
object.callback_param2 = param2;
|
|
|
|
|
|
const SpriteGroup *group = SpriteGroup::Resolve(st->airport.GetSpec()->grf_prop.spritegroup, &object);
|
|
|
const SpriteGroup *group = SpriteGroup::Resolve(st->airport.GetSpec()->grf_prop.spritegroup[0], &object);
|
|
|
if (group == NULL) return CALLBACK_FAILED;
|
|
|
|
|
|
return group->GetCallbackResult();
|
|
|
}
|
|
|
|
|
|
StringID GetAirportTextCallback(const AirportSpec *as, byte layout, uint16 callback)
|
|
|
{
|
|
|
const SpriteGroup *group;
|
|
|
ResolverObject object;
|
|
|
|
|
|
NewAirportResolver(&object, INVALID_TILE, NULL, as->GetIndex(), layout);
|
|
|
object.callback = (CallbackID)callback;
|
|
|
|
|
|
group = SpriteGroup::Resolve(as->grf_prop.spritegroup, &object);
|
|
|
group = SpriteGroup::Resolve(as->grf_prop.spritegroup[0], &object);
|
|
|
if (group == NULL) return STR_UNDEFINED;
|
|
|
|
|
|
return GetGRFStringID(as->grf_prop.grffile->grfid, 0xD000 + group->GetResult());
|
|
|
}
|