summaryrefslogtreecommitdiff
path: root/openttd-git/sloped-stations.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openttd-git/sloped-stations.patch')
-rw-r--r--openttd-git/sloped-stations.patch449
1 files changed, 0 insertions, 449 deletions
diff --git a/openttd-git/sloped-stations.patch b/openttd-git/sloped-stations.patch
deleted file mode 100644
index b113d848c..000000000
--- a/openttd-git/sloped-stations.patch
+++ /dev/null
@@ -1,449 +0,0 @@
-diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
-index 4c34f1ca8..4100ae31d 100644
---- a/src/rail_cmd.cpp
-+++ b/src/rail_cmd.cpp
-@@ -187,14 +187,6 @@ RailType AllocateRailType(RailTypeLabel label)
- return INVALID_RAILTYPE;
- }
-
--static const byte _track_sloped_sprites[14] = {
-- 14, 15, 22, 13,
-- 0, 21, 17, 12,
-- 23, 0, 18, 20,
-- 19, 16
--};
--
--
- /* 4
- * ---------
- * |\ /|
-diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
-index 70a014434..a72ff4eb7 100644
---- a/src/road_cmd.cpp
-+++ b/src/road_cmd.cpp
-@@ -37,6 +37,7 @@
- #include "genworld.h"
- #include "company_gui.h"
- #include "road_func.h"
-+#include "road_cmd.h"
-
- #include "table/strings.h"
- #include "table/roadtypes.h"
-@@ -251,8 +252,6 @@ static const RoadBits _invalid_tileh_slopes_road[2][15] = {
- }
- };
-
--static Foundation GetRoadFoundation(Slope tileh, RoadBits bits);
--
- /**
- * Is it allowed to remove the given road bits from the given tile?
- * @param tile the tile to remove the road from
-@@ -1296,7 +1295,7 @@ struct DrawRoadTileStruct {
- * @param bits The RoadBits part
- * @return The resulting Foundation
- */
--static Foundation GetRoadFoundation(Slope tileh, RoadBits bits)
-+Foundation GetRoadFoundation(Slope tileh, RoadBits bits)
- {
- /* Flat land and land without a road doesn't require a foundation */
- if (tileh == SLOPE_FLAT || bits == ROAD_NONE) return FOUNDATION_NONE;
-@@ -1318,13 +1317,6 @@ static Foundation GetRoadFoundation(Slope tileh, RoadBits bits)
- return (bits == ROAD_X ? FOUNDATION_INCLINED_X : FOUNDATION_INCLINED_Y);
- }
-
--const byte _road_sloped_sprites[14] = {
-- 0, 0, 2, 0,
-- 0, 1, 0, 0,
-- 3, 0, 0, 0,
-- 0, 0
--};
--
- /**
- * Get the sprite offset within a spritegroup.
- * @param slope Slope
-diff --git a/src/road_cmd.h b/src/road_cmd.h
-index 753ebd21d..87dee9722 100644
---- a/src/road_cmd.h
-+++ b/src/road_cmd.h
-@@ -12,8 +12,11 @@
-
- #include "direction_type.h"
- #include "road_type.h"
-+#include "slope_type.h"
-
- void DrawRoadDepotSprite(int x, int y, DiagDirection dir, RoadType rt);
- void UpdateNearestTownForRoadTiles(bool invalidate);
-
-+Foundation GetRoadFoundation(Slope tileh, RoadBits bits);
-+
- #endif /* ROAD_CMD_H */
-diff --git a/src/road_type.h b/src/road_type.h
-index 969b141ba..1af4275eb 100644
---- a/src/road_type.h
-+++ b/src/road_type.h
-@@ -68,4 +68,11 @@ enum RoadBits {
- DECLARE_ENUM_AS_BIT_SET(RoadBits)
- template <> struct EnumPropsT<RoadBits> : MakeEnumPropsT<RoadBits, byte, ROAD_NONE, ROAD_END, ROAD_NONE, 4> {};
-
-+const byte _road_sloped_sprites[14] = {
-+ 0, 0, 2, 0,
-+ 0, 1, 0, 0,
-+ 3, 0, 0, 0,
-+ 0, 0
-+};
-+
- #endif /* ROAD_TYPE_H */
-diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp
-index 9c444d1d3..a83e7fda9 100644
---- a/src/roadveh_cmd.cpp
-+++ b/src/roadveh_cmd.cpp
-@@ -1511,7 +1511,7 @@ again:
- v->x_pos = x;
- v->y_pos = y;
- v->UpdatePosition();
-- RoadZPosAffectSpeed(v, v->UpdateInclination(true, false));
-+ RoadZPosAffectSpeed(v, v->UpdateInclination(false, false));
- return true;
- }
- }
-diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
-index 1a188252c..9304f5efc 100644
---- a/src/station_cmd.cpp
-+++ b/src/station_cmd.cpp
-@@ -56,6 +56,7 @@
- #include "linkgraph/refresh.h"
- #include "widgets/station_widget.h"
- #include "tunnelbridge_map.h"
-+#include "road_cmd.h"
-
- #include "table/strings.h"
-
-@@ -776,7 +777,7 @@ CommandCost ClearTile_Station(TileIndex tile, DoCommandFlag flags);
- * Checks if the given tile is buildable, flat and has a certain height.
- * @param tile TileIndex to check.
- * @param invalid_dirs Prohibited directions for slopes (set of #DiagDirection).
-- * @param allowed_z Height allowed for the tile. If allowed_z is negative, it will be set to the height of this tile.
-+ * @param allowed_z Height allowed for the tile. If allowed_z is -1, it will be set to the height of this tile.
- * @param allow_steep Whether steep slopes are allowed.
- * @param check_bridge Check for the existence of a bridge.
- * @return The cost in case of success, or an error code if it failed.
-@@ -815,10 +816,10 @@ CommandCost CheckBuildableTile(TileIndex tile, uint invalid_dirs, int &allowed_z
- }
-
- /* The level of this tile must be equal to allowed_z. */
-- if (allowed_z < 0) {
-+ if (allowed_z == -1) {
- /* First tile. */
- allowed_z = flat_z;
-- } else if (allowed_z != flat_z) {
-+ } else if (allowed_z != flat_z && allowed_z >= 0) {
- return_cmd_error(STR_ERROR_FLAT_LAND_REQUIRED);
- }
-
-@@ -866,14 +867,14 @@ static CommandCost CheckFlatLandAirport(AirportTileTableIterator tile_iter, DoCo
- static CommandCost CheckFlatLandRailStation(TileArea tile_area, DoCommandFlag flags, Axis axis, StationID *station, RailType rt, std::vector<Train *> &affected_vehicles, StationClassID spec_class, byte spec_index, byte plat_len, byte numtracks)
- {
- CommandCost cost(EXPENSES_CONSTRUCTION);
-- int allowed_z = -1;
-+ int allowed_z = -2;
- uint invalid_dirs = 5 << axis;
-
- const StationSpec *statspec = StationClass::Get(spec_class)->GetSpec(spec_index);
- bool slope_cb = statspec != nullptr && HasBit(statspec->callback_mask, CBM_STATION_SLOPE_CHECK);
-
- for (TileIndex tile_cur : tile_area) {
-- CommandCost ret = CheckBuildableTile(tile_cur, invalid_dirs, allowed_z, false);
-+ CommandCost ret = CheckBuildableTile(tile_cur, 0, allowed_z, true);
- if (ret.Failed()) return ret;
- cost.AddCost(ret);
-
-@@ -952,10 +953,10 @@ static CommandCost CheckFlatLandRailStation(TileArea tile_area, DoCommandFlag fl
- static CommandCost CheckFlatLandRoadStop(TileArea tile_area, DoCommandFlag flags, uint invalid_dirs, bool is_drive_through, bool is_truck_stop, Axis axis, StationID *station, RoadType rt)
- {
- CommandCost cost(EXPENSES_CONSTRUCTION);
-- int allowed_z = -1;
-+ int allowed_z = -2;
-
- for (TileIndex cur_tile : tile_area) {
-- CommandCost ret = CheckBuildableTile(cur_tile, invalid_dirs, allowed_z, !is_drive_through);
-+ CommandCost ret = CheckBuildableTile(cur_tile, invalid_dirs, allowed_z, true);
- if (ret.Failed()) return ret;
- cost.AddCost(ret);
-
-@@ -1878,7 +1879,7 @@ CommandCost CmdBuildRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
- /* Total road stop cost. */
- CommandCost cost(EXPENSES_CONSTRUCTION, roadstop_area.w * roadstop_area.h * _price[type ? PR_BUILD_STATION_TRUCK : PR_BUILD_STATION_BUS]);
- StationID est = INVALID_STATION;
-- ret = CheckFlatLandRoadStop(roadstop_area, flags, is_drive_through ? 5 << axis : 1 << ddir, is_drive_through, type, axis, &est, rt);
-+ ret = CheckFlatLandRoadStop(roadstop_area, flags, is_drive_through ? 0 : 1 << ddir, is_drive_through, type, axis, &est, rt);
- if (ret.Failed()) return ret;
- cost.AddCost(ret);
-
-@@ -2895,6 +2896,32 @@ static void DrawTile_Station(TileInfo *ti)
- palette = PALETTE_TO_GREY;
- }
-
-+ /* always draw leveled foundations only for airports and road bays! */
-+ if (ti->tileh != SLOPE_FLAT && (IsAirport(ti->tile) || IsStandardRoadStopTile(ti->tile)))
-+ DrawFoundation(ti, FOUNDATION_LEVELED);
-+
-+ if (HasStationTileRail(ti->tile) && IsCustomStationSpecIndex(ti->tile)) {
-+ /* look for customization */
-+ st = BaseStation::GetByTile(ti->tile);
-+ statspec = st->speclist[GetCustomStationSpecIndex(ti->tile)].spec;
-+
-+ if (statspec != nullptr) {
-+ uint tile = GetStationGfx(ti->tile);
-+
-+ relocation = GetCustomStationRelocation(statspec, st, ti->tile);
-+
-+ if (HasBit(statspec->callback_mask, CBM_STATION_SPRITE_LAYOUT)) {
-+ uint16 callback = GetStationCallback(CBID_STATION_SPRITE_LAYOUT, 0, 0, statspec, st, ti->tile);
-+ if (callback != CALLBACK_FAILED) tile = (callback & ~1) + GetRailStationAxis(ti->tile);
-+ }
-+
-+ /* Ensure the chosen tile layout is valid for this custom station */
-+ if (statspec->renderdata != nullptr) {
-+ t = &statspec->renderdata[tile < statspec->tiles ? tile : (uint)GetRailStationAxis(ti->tile)];
-+ }
-+ }
-+ }
-+
- if (layout == nullptr && (t == nullptr || t->seq == nullptr)) t = GetStationTileLayout(GetStationType(ti->tile), gfx);
-
- /* don't show foundation for docks */
-@@ -2961,10 +2988,10 @@ static void DrawTile_Station(TileInfo *ti)
- }
-
- OffsetGroundSprite(31, 1);
-- ti->z += ApplyPixelFoundationToSlope(FOUNDATION_LEVELED, &ti->tileh);
-+ ti->z += ApplyPixelFoundationToSlope(FOUNDATION_NONE, &ti->tileh); //FOUNDATION_LEVELED, &ti->tileh);
- } else {
- draw_default_foundation:
-- DrawFoundation(ti, FOUNDATION_LEVELED);
-+ DrawFoundation(ti, FOUNDATION_NONE); //FOUNDATION_LEVELED);
- }
- }
-
-@@ -3019,14 +3046,64 @@ draw_default_foundation:
- DrawGroundSprite(overlay + overlay_offset, PALETTE_CRASH);
- }
- } else {
-- image += HasBit(image, SPRITE_MODIFIER_CUSTOM_SPRITE) ? ground_relocation : total_offset;
-- if (HasBit(pal, SPRITE_MODIFIER_CUSTOM_SPRITE)) pal += ground_relocation;
-+ if (HasBit(pal, SPRITE_MODIFIER_CUSTOM_SPRITE)) {
-+ pal += ground_relocation;
-+ } else {
-+ if (HasBit(image, SPRITE_MODIFIER_CUSTOM_SPRITE)) {
-+ image += ground_relocation;
-+ } else {
-+ if (ti->tileh != SLOPE_FLAT && (IsRailStation(ti->tile) || IsRoadStop(ti->tile))) {
-+ /* It's a sloped rail station? */
-+ Foundation rf = FOUNDATION_NONE;
-+ if (IsRoadStop(ti->tile)) {
-+ /* Roadstops without foundation on a slope
-+ * and on Slopes with one corner raised */
-+ rf = GetRoadFoundation(ti->tileh, AxisToRoadBits(DiagDirToAxis(GetRoadStopDir(ti->tile))));
-+ DrawFoundation(ti, rf);
-+ /* Draws the sloped road */
-+ if (ti->tileh != SLOPE_FLAT) image = _road_sloped_sprites[ti->tileh - 1] + 0x53F;
-+ } else {
-+ /* sloped rail station */
-+ TrackBits track = AxisToTrackBits(GetRailStationAxis(ti->tile));
-+ rf = GetRailFoundation(ti->tileh, track);
-+ DrawFoundation(ti, rf);
-+ if (rf != FOUNDATION_LEVELED) {
-+ image = _track_sloped_sprites[ti->tileh - 1] + rti->base_sprites.track_y;
-+ } else {
-+ (image = rti->base_sprites.track_y, track == TRACK_BIT_Y ) || (image++, track == TRACK_BIT_X);
-+ }
-+ }
-+ } else {
-+ /* it's not a slope */
-+ image += total_offset;
-+ }
-+ }
-+ }
- DrawGroundSprite(image, GroundSpritePaletteTransform(image, pal, palette));
-
- /* PBS debugging, draw reserved tracks darker */
- if (_game_mode != GM_MENU && _settings_client.gui.show_track_reservation && HasStationRail(ti->tile) && HasStationReservation(ti->tile)) {
- const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(ti->tile));
-- DrawGroundSprite(GetRailStationAxis(ti->tile) == AXIS_X ? rti->base_sprites.single_x : rti->base_sprites.single_y, PALETTE_CRASH);
-+ TrackBits pbs = AxisToTrackBits(GetRailStationAxis(ti->tile));
-+ // TODO: possibly inverted in 7b136d1fddbb2d0840076dfe2ddbe666b29fee8d
-+ if (pbs & TRACK_BIT_X) {
-+ if (ti->tileh == SLOPE_FLAT || ti->tileh == SLOPE_ELEVATED) {
-+ DrawGroundSprite(rti->base_sprites.single_y, PALETTE_CRASH);
-+ } else {
-+ DrawGroundSprite(_track_sloped_sprites[ti->tileh - 1] + rti->base_sprites.single_sloped - 20, PALETTE_CRASH);
-+ }
-+ }
-+ if (pbs & TRACK_BIT_Y) {
-+ if (ti->tileh == SLOPE_FLAT || ti->tileh == SLOPE_ELEVATED) {
-+ DrawGroundSprite(rti->base_sprites.single_x, PALETTE_CRASH);
-+ } else {
-+ DrawGroundSprite(_track_sloped_sprites[ti->tileh - 1] + rti->base_sprites.single_sloped - 20, PALETTE_CRASH);
-+ }
-+ }
-+ if (pbs & TRACK_BIT_UPPER) AddSortableSpriteToDraw(rti->base_sprites.single_n, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + (ti->tileh & SLOPE_N ? 8 : 0));
-+ if (pbs & TRACK_BIT_LOWER) AddSortableSpriteToDraw(rti->base_sprites.single_s, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + (ti->tileh & SLOPE_S ? 8 : 0));
-+ if (pbs & TRACK_BIT_LEFT) AddSortableSpriteToDraw(rti->base_sprites.single_w, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + (ti->tileh & SLOPE_W ? 8 : 0));
-+ if (pbs & TRACK_BIT_RIGHT) AddSortableSpriteToDraw(rti->base_sprites.single_e, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + (ti->tileh & SLOPE_E ? 8 : 0));
- }
- }
- }
-@@ -3120,6 +3197,16 @@ void StationPickerDrawSprite(int x, int y, StationType st, RailType railtype, Ro
-
- static int GetSlopePixelZ_Station(TileIndex tile, uint x, uint y)
- {
-+ /* this code makes vehicles and trains follow the slope on sloped stations */
-+ if (IsRailStation(tile) || IsRoadStopTile(tile) && !IsStandardRoadStopTile(tile)) {
-+ int z;
-+ Slope tileh = GetTilePixelSlope(tile, &z);
-+ Axis axis = IsRailStation(tile)?GetRailStationAxis(tile):DiagDirToAxis(GetRoadStopDir(tile));
-+
-+ z += 8*ApplyFoundationToSlope(GetRailFoundation(tileh,AxisToTrackBits(axis)), &tileh);
-+ return z + GetPartialPixelZ(x & 0xF, y & 0xF, tileh);
-+ }
-+
- return GetTileMaxPixelZ(tile);
- }
-
-diff --git a/src/table/sprites.h b/src/table/sprites.h
-index b7bb91020..732a2dae7 100644
---- a/src/table/sprites.h
-+++ b/src/table/sprites.h
-@@ -266,7 +266,26 @@ static const SpriteID SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4;
- static const SpriteID SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5;
- static const SpriteID SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6;
- static const SpriteID SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7;
--static const uint16 ROADSTOP_SPRITE_COUNT = 8;
-+
-+/* sprites for sloped graphics */
-+static const SpriteID SPR_BUS_STOP_DT_SE_W = SPR_ROADSTOP_BASE + 12;
-+static const SpriteID SPR_BUS_STOP_DT_SE_E = SPR_ROADSTOP_BASE + 13;
-+static const SpriteID SPR_BUS_STOP_DT_NE_E = SPR_ROADSTOP_BASE + 14;
-+static const SpriteID SPR_BUS_STOP_DT_NE_W = SPR_ROADSTOP_BASE + 15;
-+static const SpriteID SPR_BUS_STOP_DT_NW_W = SPR_ROADSTOP_BASE + 16;
-+static const SpriteID SPR_BUS_STOP_DT_NW_E = SPR_ROADSTOP_BASE + 17;
-+static const SpriteID SPR_BUS_STOP_DT_SW_E = SPR_ROADSTOP_BASE + 18;
-+static const SpriteID SPR_BUS_STOP_DT_SW_W = SPR_ROADSTOP_BASE + 19;
-+static const SpriteID SPR_TRUCK_STOP_DT_SE_W = SPR_ROADSTOP_BASE + 20;
-+static const SpriteID SPR_TRUCK_STOP_DT_SE_E = SPR_ROADSTOP_BASE + 21;
-+static const SpriteID SPR_TRUCK_STOP_DT_NE_E = SPR_ROADSTOP_BASE + 22;
-+static const SpriteID SPR_TRUCK_STOP_DT_NE_W = SPR_ROADSTOP_BASE + 23;
-+static const SpriteID SPR_TRUCK_STOP_DT_NW_W = SPR_ROADSTOP_BASE + 24;
-+static const SpriteID SPR_TRUCK_STOP_DT_NW_E = SPR_ROADSTOP_BASE + 25;
-+static const SpriteID SPR_TRUCK_STOP_DT_SW_E = SPR_ROADSTOP_BASE + 26;
-+static const SpriteID SPR_TRUCK_STOP_DT_SW_W = SPR_ROADSTOP_BASE + 27;
-+
-+static const uint16 ROADSTOP_SPRITE_COUNT = 28;
-
- /** Tramway sprites */
- static const SpriteID SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT;
-diff --git a/src/table/station_land.h b/src/table/station_land.h
-index 53a69e1e2..2b6deecd0 100644
---- a/src/table/station_land.h
-+++ b/src/table/station_land.h
-@@ -775,6 +775,62 @@ static const DrawTileSeqStruct _station_display_datas_waypoint_Y[] = {
- TILE_SEQ_END()
- };
-
-+// drive-through bus stop SE slope
-+static const DrawTileSeqStruct _station_display_datas_0172[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_BUS_STOP_DT_SE_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_BUS_STOP_DT_SE_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through bus stop NE slope
-+static const DrawTileSeqStruct _station_display_datas_0173[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_BUS_STOP_DT_NE_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_BUS_STOP_DT_NE_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through bus stop NW slope
-+static const DrawTileSeqStruct _station_display_datas_0174[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_BUS_STOP_DT_NW_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_BUS_STOP_DT_NW_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through bus stop SW slope
-+static const DrawTileSeqStruct _station_display_datas_0175[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_BUS_STOP_DT_SW_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_BUS_STOP_DT_SW_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through truck stop SE slope
-+static const DrawTileSeqStruct _station_display_datas_0176[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_SE_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_SE_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through truck stop NE slope
-+static const DrawTileSeqStruct _station_display_datas_0177[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_NE_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_NE_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through truck stop NW slope
-+static const DrawTileSeqStruct _station_display_datas_0178[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_NW_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_NW_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
-+// drive-through truck stop SW slope
-+static const DrawTileSeqStruct _station_display_datas_0179[] = {
-+ TILE_SEQ_LINE( 0, 0, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_SW_W | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_LINE( 0, 13, 0, 16, 3, 16, SPR_TRUCK_STOP_DT_SW_E | (1 << PALETTE_MODIFIER_COLOUR))
-+ TILE_SEQ_END()
-+};
-+
- #undef TILE_SEQ_END
- #undef TILE_SEQ_LINE
- #undef TILE_SEQ_LINE_PAL
-@@ -944,6 +1000,10 @@ static const DrawTileSprites _station_display_datas_truck[] = {
- TILE_SPRITE_LINE(SPR_TRUCK_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_70)
- TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0168)
- TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0169)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0176)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0177)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0178)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0179)
- };
-
- static const DrawTileSprites _station_display_datas_bus[] = {
-@@ -953,6 +1013,10 @@ static const DrawTileSprites _station_display_datas_bus[] = {
- TILE_SPRITE_LINE(SPR_BUS_STOP_NW_GROUND | (1U << PALETTE_MODIFIER_COLOUR), _station_display_datas_74)
- TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0170)
- TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0171)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0172)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0173)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_X, _station_display_datas_0174)
-+ TILE_SPRITE_LINE(SPR_ROAD_PAVED_STRAIGHT_Y, _station_display_datas_0175)
- };
-
- static const DrawTileSprites _station_display_datas_oilrig[] = {
-diff --git a/src/track_type.h b/src/track_type.h
-index 70278c58d..0c64b9978 100644
---- a/src/track_type.h
-+++ b/src/track_type.h
-@@ -120,4 +120,11 @@ DECLARE_ENUM_AS_BIT_SET(TrackdirBits)
-
- typedef uint32 TrackStatus;
-
-+static const byte _track_sloped_sprites[14] = {
-+ 14, 15, 22, 13,
-+ 0, 21, 17, 12,
-+ 23, 0, 18, 20,
-+ 19, 16
-+};
-+
- #endif /* TRACK_TYPE_H */