From 6965a339c4f5d36c3875ca4170371f2b989b150e Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 5 Jan 2021 17:44:19 +0000 Subject: [PATCH] Fix crash when removing rail depot or road when debug window open on tile --- src/rail_cmd.cpp | 1 + src/road_cmd.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index b41ad76822..2cf1cbfd35 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -2403,6 +2403,7 @@ static CommandCost RemoveTrainDepot(TileIndex tile, DoCommandFlag flags) AddSideToSignalBuffer(tile, dir, owner); YapfNotifyTrackLayoutChange(tile, DiagDirToDiagTrack(dir)); if (v != nullptr) TryPathReserve(v, true); + DeleteNewGRFInspectWindow(GSF_RAILTYPES, tile); } return CommandCost(EXPENSES_CONSTRUCTION, _price[PR_CLEAR_DEPOT_TRAIN]); diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index d77597f914..9844f5dd4c 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -771,6 +771,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec if (GetRoadType(tile, OtherRoadTramType(rtt)) == INVALID_ROADTYPE) { /* Includes MarkTileDirtyByTile() */ DoClearSquare(tile); + DeleteNewGRFInspectWindow(GSF_ROADTYPES, tile); } else { if (rtt == RTT_ROAD && IsRoadOwner(tile, rtt, OWNER_TOWN)) { /* Update nearest-town index */ @@ -825,6 +826,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec c->infrastructure.rail[GetRailType(tile)] -= LEVELCROSSING_TRACKBIT_FACTOR - 1; DirtyCompanyInfrastructureWindows(c->index); } + DeleteNewGRFInspectWindow(GSF_ROADTYPES, tile); } else { SetRoadType(tile, rtt, INVALID_ROADTYPE); } @@ -1715,6 +1717,7 @@ static CommandCost RemoveRoadDepot(TileIndex tile, DoCommandFlag flags) DoClearSquare(tile); NotifyRoadLayoutChanged(false); + DeleteNewGRFInspectWindow(GSF_ROADTYPES, tile); } return CommandCost(EXPENSES_CONSTRUCTION, _price[PR_CLEAR_DEPOT_ROAD]);