32 case 0x43:
return _date;
33 case 0x44:
return HZB_TOWN_EDGE;
45 const Town *t =
nullptr;
47 t = Depot::GetByTile(this->
tile)->town;
55 DEBUG(grf, 1,
"Unhandled road type tile variable 0x%X", variable);
106 assert(rtsg < ROTSG_END);
108 if (rti->
group[rtsg] ==
nullptr)
return 0;
112 if (group ==
nullptr || group->GetNumResults() == 0)
return 0;
114 if (num_results) *num_results = group->GetNumResults();
116 return group->GetResult();
128 if (grffile ==
nullptr)
return roadtype;
130 const std::vector<RoadTypeLabel> *list = RoadTypeIsRoad(roadtype) ? &grffile->
roadtype_list : &grffile->tramtype_list;
131 if (list->size() == 0)
return roadtype;
137 if (index >= 0)
return index;
std::vector< RoadTypeLabel > roadtype_list
Roadtype translation table (road)
Interface to query and set values specific to a single VarSpriteGroupScope (action 2 scope)...
ResolverObject & ro
Surrounding resolver object.
RoadTypeSpriteGroup
Sprite groups for a roadtype.
Functions related to dates.
uint8 GetReverseRoadTypeTranslation(RoadType roadtype, const GRFFile *grffile)
Perform a reverse roadtype lookup to get the GRF internal ID.
Functions related to debugging.
A tile with road (or tram tracks)
Interface for SpriteGroup-s to access the gamestate.
uint32 GetTerrainType(TileIndex tile, TileContext context)
Function used by houses (and soon industries) to get information on type of "terrain" the tile it is ...
RoadTypeResolverObject(const RoadTypeInfo *rti, TileIndex tile, TileContext context, RoadTypeSpriteGroup rtsg, uint32 param1=0, uint32 param2=0)
Resolver object for road types.
static uint TileX(TileIndex tile)
Get the X component of a tile.
Base for all depots (except hangars)
TileContext context
Are we resolving sprites for the upper halftile, or on a bridge?
Set when using the callback resolve system, but not to resolve a callback.
uint32 GetRandomBits() const
Get a few random bits.
byte num_loaded
Number of loaded groups.
RoadType
The different roadtypes we support.
const SpriteGroup * group[ROTSG_END]
Sprite groups for resolving sprites.
static const uint TILE_SIZE
Tile size in world coordinates.
uint32 GetVariable(byte variable, uint32 parameter, bool *available) const
Get a variable value.
Date build_date
Date of construction.
const SpriteGroup * root_spritegroup
Root SpriteGroup to use for resolving.
Town * ClosestTownFromTile(TileIndex tile, uint threshold)
Return the town closest (in distance or ownership) to a given tile, within a given threshold...
static const RoadTypeInfo * GetRoadTypeInfo(RoadType roadtype)
Returns a pointer to the Roadtype information for a given roadtype.
virtual const SpriteGroup * Resolve(ResolverObject &object) const
Base sprite group resolver.
static bool IsTileType(TileIndex tile, TileType type)
Checks if a tile is a given tiletype.
const SpriteGroup ** loaded
List of loaded groups (can be SpriteIDs or Callback results)
SpriteID GetCustomRoadSprite(const RoadTypeInfo *rti, TileIndex tile, RoadTypeSpriteGroup rtsg, TileContext context, uint *num_results)
Get the sprite to draw for the given tile.
Definition of base types and functions in a cross-platform compatible way.
A number of safeguards to prevent using unsafe methods.
static bool IsRoadDepotTile(TileIndex t)
Return whether a tile is a road depot tile.
NewGRF handling of road types.
const SpriteGroup ** loading
List of loading groups (can be SpriteIDs or Callback results)
TileIndex tile
Tracktile. For track on a bridge this is the southern bridgehead.
const SpriteGroup * ResolveReal(const RealSpriteGroup *group) const
Get the real sprites of the grf.
HouseZonesBits GetTownRadiusGroup(const Town *t, TileIndex tile)
Returns the bit corresponding to the town zone of the specified tile.
#define DEBUG(name, level,...)
Output a line of debugging information.
byte num_loading
Number of loading groups.
const GRFFile * grffile
GRFFile the resolved SpriteGroup belongs to.
uint32 SpriteID
The number of a sprite, without mapping bits and colourtables.
uint32 TileIndex
The index/ID of a Tile.
static bool IsLevelCrossingTile(TileIndex t)
Return whether a tile is a level crossing tile.
static uint TileY(TileIndex tile)
Get the Y component of a tile.
static uint GB(const T x, const uint8 s, const uint8 n)
Fetch n bits from x, started at bit s.
static uint CountBits(T value)
Counts the number of set bits in a variable.
Resolver object for road types.
RoadTypeScopeResolver(ResolverObject &ro, TileIndex tile, TileContext context)
Constructor of the roadtype scope resolvers.
static const TileIndex INVALID_TILE
The very nice invalid tile marker.
static bool IsCrossingBarred(TileIndex t)
Check if the level crossing is barred.
Date _date
Current date in days (day counter)
int find_index(std::vector< T > const &vec, T const &item)
Helper function to get the index of an item Consider using std::set, std::unordered_set or std::flat_...
RoadTypeLabel label
Unique 32 bit road type identifier.
Dynamic data of a loaded NewGRF.
TileContext
Context for tile accesses.