Removing road from combined road/tram tile should clear one way state

This commit is contained in:
Jonathan G Rennison 2024-01-09 08:59:44 +00:00
parent 36776248b9
commit 6eaa3cf7f8

View File

@ -741,6 +741,9 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
if (flags & DC_EXEC) {
/* A full diagonal road tile has two road bits. */
UpdateCompanyRoadInfrastructure(existing_rt, GetRoadOwner(tile, rtt), -2);
if (rtt == RTT_ROAD) {
SetDriveThroughStopDisallowedRoadDirections(tile, DRD_NONE);
}
SetRoadType(tile, rtt, INVALID_ROADTYPE);
MarkTileDirtyByTile(tile);
NotifyRoadLayoutChanged(false);
@ -814,6 +817,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
const Town *town = CalcClosestTownFromTile(tile);
SetTownIndex(tile, town == nullptr ? INVALID_TOWN : town->index);
}
if (rtt == RTT_ROAD) SetDisallowedRoadDirections(tile, DRD_NONE);
SetRoadBits(tile, ROAD_NONE, rtt);
SetRoadType(tile, rtt, INVALID_ROADTYPE);
MarkTileDirtyByTile(tile);