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)
732 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_APRON_B)
733 TILE_SPRITE_LINE_NOTHING(SPR_AIRFIELD_APRON_C)
740 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_RUNWAY_END)
741 TILE_SPRITE_LINE_NOTHING(SPR_AIRPORT_RUNWAY_EXIT_B)
758 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_low_building_fence_ne_nw)
761 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_se_sw)
762 TILE_SPRITE_LINE(SPR_AIRPORT_APRON, _station_display_newhelipad_fence_nw_sw)
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[] = {
854 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_road_waypoint_X)
855 TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_road_waypoint_Y)
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));
894static const std::array<std::span<const DrawTileSpriteSpan>,
to_underlying(StationType::End)> _station_display_datas = {{
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,
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
#define TILE_SPRITE_LINE(img, dtss)
Constructor macro of a DrawTileSpriteSpan structure.
#define TILE_SEQ_LINE(dx, dy, dz, sx, sy, sz, img)
Constructor macro for an image without a palette in a DrawTileSeqStruct array.
#define TILE_SEQ_CHILD(dx, dy, img, pal)
Constructor macro for an image without bounding box.
#define TILE_SEQ_GROUND(dx, dy, dz, img)
Constructor macro for additional ground sprites.
#define lengthof(array)
Return the length of an fixed size array.
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.