From 4978ece6ee6ff1d48057f3cb225a3810f4454a33 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 4 Oct 2014 19:23:43 +0000 Subject: [PATCH] (svn r26955) -Fix [FS#6126]: owner of road depot road types were not properly changed upon bankruptcy causing crashes when trying to remove the depot in certain situations --- docs/landscape.html | 3 ++- docs/landscape_grid.html | 4 ++-- src/road_cmd.cpp | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/landscape.html b/docs/landscape.html index 2101ea965b..f60e859fc3 100644 --- a/docs/landscape.html +++ b/docs/landscape.html @@ -549,6 +549,7 @@ +
  • m3 bits 7..4: owner of road type 1 (tram); OWNER_NONE (10) is stored as OWNER_TOWN (0F)
  • m5 bits 7 clear: road or level-crossing diff --git a/docs/landscape_grid.html b/docs/landscape_grid.html index 0e0e86e345..98351fcdcc 100644 --- a/docs/landscape_grid.html +++ b/docs/landscape_grid.html @@ -158,11 +158,11 @@ the array so you can quickly see what is used and what is not. -inherit- -inherit- -inherit- - OOOO OOOO + XXXX OOOO OOOO OOOO XXOO OOXX OOOO OOOO - XXXO OOOO + XXXO XXXX 3 diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index cdcedf4607..e56633696a 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1762,6 +1762,11 @@ static void ChangeTileOwner_Road(TileIndex tile, Owner old_owner, Owner new_owne Company::Get(new_owner)->infrastructure.road[rt] += 2; SetTileOwner(tile, new_owner); + for (RoadType rt = ROADTYPE_ROAD; rt < ROADTYPE_END; rt++) { + if (GetRoadOwner(tile, rt) == old_owner) { + SetRoadOwner(tile, rt, new_owner); + } + } } } return;