# HG changeset patch # User yexo # Date 2010-08-05 12:04:33 # Node ID b17629bb1837108ef3fe19b1d9b04718c03c2149 # Parent 450ce9deeabd54c6015ef4d8bccc94da03da05bd (svn r20371) -Codechange: add general function to call text callbacks for airports diff --git a/src/newgrf_airport.cpp b/src/newgrf_airport.cpp --- a/src/newgrf_airport.cpp +++ b/src/newgrf_airport.cpp @@ -349,3 +349,17 @@ uint16 GetAirportCallback(CallbackID cal 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); + if (group == NULL) return STR_UNDEFINED; + + return GetGRFStringID(as->grf_prop.grffile->grfid, 0xD000 + group->GetResult()); +} diff --git a/src/newgrf_airport.h b/src/newgrf_airport.h --- a/src/newgrf_airport.h +++ b/src/newgrf_airport.h @@ -117,4 +117,6 @@ uint GetNumAirportsInClass(AirportClassI void BindAirportSpecs(); const AirportSpec *GetAirportSpecFromClass(AirportClassID aclass, uint airport); +StringID GetAirportTextCallback(const AirportSpec *as, byte layout, uint16 callback); + #endif /* NEWGRF_AIRPORT_H */