20#define TILE_SEQ_LINE(dx, dy, dz, sx, sy, sz, img) TILE_SEQ_LINE_PAL(dx, dy, dz, sx, sy, sz, img, PAL_NONE)
33#define TILE_SEQ_LINE_PAL(dx, dy, dz, sx, sy, sz, img, pal) { dx, dy, dz, sx, sy, sz, {img, pal} },
42#define TILE_SEQ_CHILD(dx, dy, img, pal) TILE_SEQ_LINE_PAL(dx, dy, (int8_t)0x80, 0, 0, 0, img, pal)
52#define TILE_SEQ_GROUND(dx, dy, dz, img) TILE_SEQ_CHILD(2 * (dy - dx), dx + dy - dz, img, PAL_NONE)
670#undef TILE_SEQ_LINE_PAL
672#undef TILE_SEQ_GROUND
679#define TILE_SPRITE_LINE(img, dtss) { {img, PAL_NONE}, dtss },
680#define TILE_SPRITE_LINE_NOTHING(img) { {img, PAL_NONE} },
681#define TILE_SPRITE_NULL() { {0, 0} },
695 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_APRON)
698 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_AIRCRAFT_STAND)
699 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_NS_WEST)
700 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_EW_SOUTH)
701 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_XING_SOUTH)
702 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_XING_WEST)
703 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_NS_CTR)
704 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_XING_EAST)
705 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_NS_EAST)
706 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_EW_NORTH)
707 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_TAXIWAY_EW_CTR)
724 TILE_SPRITE_LINE_NOTHING(SPR_FLAT_GRASS_TILE)
727 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_transmitter_fence_ne)
728 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_TERM_A)
729 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_TERM_B)
730 TILE_SPRITE_LINE(SPR_AIRFIELD_TERM_C_GROUND | (1U <<
PALETTE_MODIFIER_COLOUR), _station_display_datas_terminal_c_2)
731 TILE_SPRITE_LINE(SPR_AIRFIELD_APRON_A, _station_display_fence_sw)
732 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_APRON_B)
733 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_APRON_C)
735 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_NEAR_END, _station_display_fence_se)
736 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_MIDDLE, _station_display_fence_se)
737 TILE_SPRITE_LINE(SPR_AIRFIELD_RUNWAY_FAR_END, _station_display_fence_se)
738 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_small_depot_se)
739 TILE_SPRITE_LINE(SPR_FLAT_GRASS_TILE, _station_display_heliport)
740 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_RUNWAY_END)
741 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_RUNWAY_EXIT_B)
743 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_ne)
744 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_END, _station_display_fence_nw)
745 TILE_SPRITE_LINE(SPR_AIRPORT_RUNWAY_EXIT_B, _station_display_fence_nw)
760 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_fence_se)
771static const
DrawTileSpriteSpan _station_display_datas_airport_radar_grass_fence_sw[] = {
786static const DrawTileSpriteSpan _station_display_datas_airport_flag_grass_fence_ne[] = {
823static const DrawTileSpriteSpan _station_display_datas_airport_flag_grass_fence_ne_2[] = {
859 TILE_SPRITE_LINE_NOTHING(SPR_FLAT_WATER_TILE)
886#undef TILE_SPRITE_LINE
887#undef TILE_SPRITE_LINE_NOTHING
888#undef TILE_SPRITE_NULL
892static_assert(
lengthof(_station_display_datas_rail) ==
lengthof(_station_display_datas_waypoint));
895 _station_display_datas_rail,
896 _station_display_datas_airport,
897 _station_display_datas_truck,
898 _station_display_datas_bus,
899 _station_display_datas_oilrig,
900 _station_display_datas_dock,
901 _station_display_datas_buoy,
902 _station_display_datas_waypoint,
903 _station_display_datas_road_waypoint,
954 _station_bridgeable_info_rail,
956 _station_bridgeable_info_roadstop,
957 _station_bridgeable_info_roadstop,
959 _station_bridgeable_info_dock,
960 _station_bridgeable_info_buoy,
961 _station_bridgeable_info_waypoint,
962 _station_bridgeable_info_road_waypoint,
@ EdgeNE
Northeast edge is obstructed.
@ CornerN
North corner is obstructed.
@ EdgeSW
Southwest edge is obstructed.
@ CornerS
South corner is obstructed.
@ CornerE
East corner is obstructed.
@ CornerW
West corner is obstructed.
@ EdgeNW
Northwest edge is obstructed.
@ EdgeSE
Southeast edge is obstructed.
constexpr std::underlying_type_t< enum_type > to_underlying(enum_type e)
Implementation of std::to_underlying (from C++23).
@ SLOPE_SW
south and west corner are raised
@ SLOPE_NE
north and east corner are raised
@ SLOPE_SE
south and east corner are raised
@ SLOPE_NW
north and west corner are raised
static constexpr uint8_t PALETTE_MODIFIER_TRANSPARENT
when a sprite is to be displayed transparently, this bit needs to be set.
static const PaletteID PALETTE_TO_TRANSPARENT
This sets the sprite to transparent.
static constexpr uint8_t PALETTE_MODIFIER_COLOUR
this bit is set when a recolouring process is in action
static const SpriteID SPR_SHORE_BASE
shore tiles - action 05-0D
static const DrawTileSeqStruct _station_display_radar_8_fence_ne[]
static const DrawTileSeqStruct _station_display_datas_road_waypoint_X[]
Road waypoint X.
static const DrawTileSeqStruct _station_display_low_building_fence_ne_nw[]
Helidepot office with fences top + left.
static const DrawTileSeqStruct _station_display_radar_12_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_9_fence_ne[]
static const DrawTileSeqStruct _station_display_low_building[]
Helidepot office without fence.
static const DrawTileSeqStruct _station_display_tower[]
Control tower without fence.
static const DrawTileSeqStruct _station_display_low_building_fence_ne[]
Helidepot office with fence east.
#define TILE_SPRITE_LINE(img, dtss)
Constructor macro of a DrawTileSpriteSpan structure.
static const DrawTileSeqStruct _station_display_helipad_fence_nw_sw[]
Helipad for district airport EW.
static const DrawTileSeqStruct _station_display_fence_se_sw[]
Runway tiles with 2 corner fences.
static const DrawTileSeqStruct _station_display_radar_1_fence_se[]
static const DrawTileSeqStruct _station_display_helipad_fence_sw[]
Helipad for international airport.
#define TILE_SEQ_LINE(dx, dy, dz, sx, sy, sz, img)
Constructor macro for an image without a palette in a DrawTileSeqStruct array.
static const DrawTileSeqStruct _station_display_radar_9_fence_se[]
static const DrawTileSeqStruct _station_display_datas_0169[]
Drive-through truck stop Y.
#define TILE_SEQ_CHILD(dx, dy, img, pal)
Constructor macro for an image without bounding box.
static const DrawTileSeqStruct _station_display_radar_7_fence_se[]
static const DrawTileSeqStruct _station_display_datas_82[]
Buoy, which will always drown under the ship.
static const DrawTileSeqStruct _station_display_helipad[]
Helipad for continental airport.
#define TILE_SEQ_GROUND(dx, dy, dz, img)
Constructor macro for additional ground sprites.
static const DrawTileSeqStruct _station_display_low_building_fence_se[]
Helidepot office with fence south.
static const DrawTileSeqStruct _station_display_datas_road_waypoint_Y[]
Road waypoint Y.
static const DrawTileSeqStruct _station_display_newhelipad_fence_nw_sw[]
Helipad for helistation.
static const DrawTileSeqStruct _station_display_fence_ne_sw[]
Asphalt tile with fences in north and south.
static const DrawTileSeqStruct _station_display_radar_6_fence_ne[]
static const DrawTileSeqStruct _station_display_low_building_fence_nw[]
Helidepot office with fence north.
static const DrawTileSeqStruct _station_display_helipad_fence_nw[]
Helipad for commuter airport.
static const DrawTileSeqStruct _station_display_grass_west[]
Half grass half SPR_AIRPORT_APRON.
static const DrawTileSeqStruct _station_display_radar_1_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_4_fence_se[]
static const DrawTileSeqStruct _station_display_fence_ne_se[]
Runway tiles with 2 corner fences.
static const DrawTileSeqStruct _station_display_radar_8_fence_se[]
static const DrawTileSeqStruct _station_display_radar_6_fence_se[]
static const DrawTileSeqStruct _station_display_datas_0168[]
Drive-through truck stop X.
static const DrawTileSeqStruct _station_display_helipad_fence_NE_SE[]
Helipad tiles with 2 corner fences top+right.
static const DrawTileSeqStruct _station_display_radar_4_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_5_fence_ne[]
static const DrawTileSeqStruct _station_display_hangar_ne[]
East facing hangar.
static const DrawTileSeqStruct _station_display_hangar_sw[]
West facing hangar.
static const DrawTileSeqStruct _station_display_newhelipad_fence_se_sw[]
Helipad for helistation.
static const DrawTileSeqStruct _station_display_newhelipad_fence_nw[]
Helipad for helistation.
static const DrawTileSeqStruct _station_display_radar_12_fence_se[]
static const DrawTileSeqStruct _station_display_helipad_fence_se_sw[]
Helipad for district airport NS.
static const DrawTileSeqStruct _station_display_low_building_fence_sw[]
Helidepot office with fence west.
static const DrawTileSeqStruct _station_display_radar_7_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_2_fence_se[]
static const DrawTileSeqStruct _station_display_radar_11_fence_se[]
static const DrawTileSeqStruct _station_display_radar_3_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_11_fence_ne[]
static const DrawTileSeqStruct _station_display_datas_0170[]
Drive-through bus stop X.
static const DrawTileSeqStruct _station_display_hangar_nw[]
North facing hangar.
static const DrawTileSeqStruct _station_display_radar_5_fence_se[]
static const DrawTileSeqStruct _station_display_radar_2_fence_ne[]
static const DrawTileSeqStruct _station_display_radar_10_fence_ne[]
static const DrawTileSeqStruct _station_display_fence_ne_nw[]
Runway tiles with 2 corner fences.
static const DrawTileSeqStruct _station_display_grass_east[]
Half grass half SPR_AIRPORT_APRON.
static const DrawTileSeqStruct _station_display_helipad_fence_se[]
Helipad for district airport NS.
static const DrawTileSeqStruct _station_display_datas_0171[]
Drive-through bus stop Y.
static const DrawTileSeqStruct _station_display_fence_nw_sw[]
Runway tiles with 2 corner fences.
static const DrawTileSeqStruct _station_display_radar_10_fence_se[]
static const DrawTileSeqStruct _station_display_radar_3_fence_se[]
#define lengthof(array)
Return the length of an fixed size array.
Information about a tile structure that may have a bridge above.
A tile child sprite and palette to draw for stations etc, with 3D bounding box.
Ground palette sprite of a tile, together with its sprite layout.