From ad9c85ad3c4a5d3c0b7b36041a40d43678bb9d40 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 29 Jan 2022 12:33:49 +0000 Subject: [PATCH] Fix crash when changing one-way state of road waypoints --- src/road_cmd.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index d767717b64..fce06f423e 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1149,9 +1149,13 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 } if (flags & DC_EXEC) { - RoadStop *rs = RoadStop::GetByTile(tile, GetRoadStopType(tile)); - rs->ChangeDriveThroughDisallowedRoadDirections(dis_new); - MarkTileDirtyByTile(tile); + if (IsRoadWaypoint(tile)) { + SetDriveThroughStopDisallowedRoadDirections(tile, dis_new); + } else { + RoadStop *rs = RoadStop::GetByTile(tile, GetRoadStopType(tile)); + rs->ChangeDriveThroughDisallowedRoadDirections(dis_new); + } + MarkTileDirtyByTile(tile, VMDF_NOT_MAP_MODE); NotifyRoadLayoutChanged(CountBits(dis_existing) > CountBits(dis_new)); UpdateRoadCachedOneWayStatesAroundTile(tile); }