1686 if (track & TRACK_BIT_LOWER) DrawGroundSprite(rti->base_sprites.single_s, PAL_NONE); |
1686 if (track & TRACK_BIT_LOWER) DrawGroundSprite(rti->base_sprites.single_s, PAL_NONE); |
1687 if (track & TRACK_BIT_LEFT) DrawGroundSprite(rti->base_sprites.single_w, PAL_NONE); |
1687 if (track & TRACK_BIT_LEFT) DrawGroundSprite(rti->base_sprites.single_w, PAL_NONE); |
1688 if (track & TRACK_BIT_RIGHT) DrawGroundSprite(rti->base_sprites.single_e, PAL_NONE); |
1688 if (track & TRACK_BIT_RIGHT) DrawGroundSprite(rti->base_sprites.single_e, PAL_NONE); |
1689 } |
1689 } |
1690 |
1690 |
|
1691 /* PBS debugging, draw reserved tracks darker */ |
|
1692 if (_settings_client.gui.show_track_reservation) { |
|
1693 TrackBits pbs = GetTrackReservation(ti->tile); |
|
1694 if (pbs & TRACK_BIT_X) { |
|
1695 if (ti->tileh == SLOPE_FLAT || ti->tileh == SLOPE_ELEVATED) { |
|
1696 DrawGroundSprite(rti->base_sprites.single_y, PALETTE_CRASH); |
|
1697 } else { |
|
1698 DrawGroundSprite(_track_sloped_sprites[ti->tileh - 1] + rti->base_sprites.single_sloped - 20, PALETTE_CRASH); |
|
1699 } |
|
1700 } |
|
1701 if (pbs & TRACK_BIT_Y) { |
|
1702 if (ti->tileh == SLOPE_FLAT || ti->tileh == SLOPE_ELEVATED) { |
|
1703 DrawGroundSprite(rti->base_sprites.single_x, PALETTE_CRASH); |
|
1704 } else { |
|
1705 DrawGroundSprite(_track_sloped_sprites[ti->tileh - 1] + rti->base_sprites.single_sloped - 20, PALETTE_CRASH); |
|
1706 } |
|
1707 } |
|
1708 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)); |
|
1709 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)); |
|
1710 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)); |
|
1711 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)); |
|
1712 } |
|
1713 |
1691 if (IsValidCorner(halftile_corner)) { |
1714 if (IsValidCorner(halftile_corner)) { |
1692 DrawFoundation(ti, HalftileFoundation(halftile_corner)); |
1715 DrawFoundation(ti, HalftileFoundation(halftile_corner)); |
1693 |
1716 |
1694 /* Draw higher halftile-overlay: Use the sloped sprites with three corners raised. They probably best fit the lightning. */ |
1717 /* Draw higher halftile-overlay: Use the sloped sprites with three corners raised. They probably best fit the lightning. */ |
1695 Slope fake_slope = SlopeWithThreeCornersRaised(OppositeCorner(halftile_corner)); |
1718 Slope fake_slope = SlopeWithThreeCornersRaised(OppositeCorner(halftile_corner)); |
1700 case RAIL_GROUND_ICE_DESERT: |
1723 case RAIL_GROUND_ICE_DESERT: |
1701 case RAIL_GROUND_HALF_SNOW: image += rti->snow_offset; break; // higher part has snow in this case too |
1724 case RAIL_GROUND_HALF_SNOW: image += rti->snow_offset; break; // higher part has snow in this case too |
1702 default: break; |
1725 default: break; |
1703 } |
1726 } |
1704 DrawGroundSprite(image, pal, &(_halftile_sub_sprite[halftile_corner])); |
1727 DrawGroundSprite(image, pal, &(_halftile_sub_sprite[halftile_corner])); |
|
1728 |
|
1729 if (_settings_client.gui.show_track_reservation && IsSteepSlope(ti->tileh) && HasReservedTracks(ti->tile, CornerToTrackBits(halftile_corner))) { |
|
1730 static const byte _corner_to_track_sprite[] = {3, 1, 2, 0}; |
|
1731 AddSortableSpriteToDraw(_corner_to_track_sprite[halftile_corner] + rti->base_sprites.single_n, PALETTE_CRASH, ti->x, ti->y, 16, 16, 0, ti->z + 16); |
|
1732 } |
1705 } |
1733 } |
1706 } |
1734 } |
1707 |
1735 |
1708 /** Enums holding the offsets from base signal sprite, |
1736 /** Enums holding the offsets from base signal sprite, |
1709 * according to the side it is representing. |
1737 * according to the side it is representing. |
1843 if (IsSnowRailGround(ti->tile)) image += rti->snow_offset; |
1871 if (IsSnowRailGround(ti->tile)) image += rti->snow_offset; |
1844 } |
1872 } |
1845 } |
1873 } |
1846 |
1874 |
1847 DrawGroundSprite(image, PAL_NONE); |
1875 DrawGroundSprite(image, PAL_NONE); |
|
1876 |
|
1877 /* PBS debugging, draw reserved tracks darker */ |
|
1878 if (_settings_client.gui.show_track_reservation && GetDepotWaypointReservation(ti->tile)) { |
|
1879 DrawGroundSprite(GetWaypointAxis(ti->tile) == AXIS_X ? rti->base_sprites.single_y : rti->base_sprites.single_x, PALETTE_CRASH); |
|
1880 } |
1848 |
1881 |
1849 if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); |
1882 if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); |
1850 |
1883 |
1851 foreach_draw_tile_seq(dtss, dts->seq) { |
1884 foreach_draw_tile_seq(dtss, dts->seq) { |
1852 SpriteID image = dtss->image.sprite; |
1885 SpriteID image = dtss->image.sprite; |