diff --git a/src/newgrf_roadstop.cpp b/src/newgrf_roadstop.cpp index c709da6197..c54c570253 100644 --- a/src/newgrf_roadstop.cpp +++ b/src/newgrf_roadstop.cpp @@ -273,7 +273,9 @@ void DrawRoadStopTile(int x, int y, RoadType roadtype, const RoadStopSpec *spec, SpriteID image = dts->ground.sprite; PaletteID pal = dts->ground.pal; - if (GB(image, 0, SPRITE_WIDTH) != 0) { + if (type == STATION_ROADWAYPOINT) { + DrawSprite(SPR_ROAD_PAVED_STRAIGHT_X, PAL_NONE, x, y); + } else if (GB(image, 0, SPRITE_WIDTH) != 0) { DrawSprite(image, GroundSpritePaletteTransform(image, pal, palette), x, y); } @@ -283,23 +285,19 @@ void DrawRoadStopTile(int x, int y, RoadType roadtype, const RoadStopSpec *spec, /* Road underlay takes precedence over tram */ if (spec->draw_mode & ROADSTOP_DRAW_MODE_OVERLAY) { - TileInfo ti {}; - ti.tile = INVALID_TILE; - DrawRoadOverlays(&ti, PAL_NONE, RoadTypeIsRoad(roadtype) ? rti : nullptr, RoadTypeIsTram(roadtype) ? rti : nullptr, sprite_offset, sprite_offset); - } + if (rti->UsesOverlay()) { + SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_GROUND); + DrawSprite(ground + sprite_offset, PAL_NONE, x, y); - if (rti->UsesOverlay()) { - SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_GROUND); - DrawSprite(ground + sprite_offset, PAL_NONE, x, y); - - SpriteID overlay = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_OVERLAY); - if (overlay) DrawSprite(overlay + sprite_offset, PAL_NONE, x, y); - } else if (RoadTypeIsTram(roadtype)) { - DrawSprite(SPR_TRAMWAY_TRAM + sprite_offset, PAL_NONE, x, y); + SpriteID overlay = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_OVERLAY); + if (overlay) DrawSprite(overlay + sprite_offset, PAL_NONE, x, y); + } else if (RoadTypeIsTram(roadtype)) { + DrawSprite(SPR_TRAMWAY_TRAM + sprite_offset, PAL_NONE, x, y); + } } } else { /* Drive-in stop */ - if (rti->UsesOverlay()) { + if ((spec->draw_mode & ROADSTOP_DRAW_MODE_ROAD) && rti->UsesOverlay()) { SpriteID ground = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_ROADSTOP); DrawSprite(ground + view, PAL_NONE, x, y); }