From ee2a851aaba332795c405fc79270d9b7ab0ebb6d Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 18 Sep 2008 15:32:20 +0000 Subject: [PATCH] (svn r14359) -Fix [FS#2311]: the ownership of roadtiles was not properly set for very old savegames (including TTD's) making it impossible to remove some pieces of road. --- src/openttd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 1b690e2a2c..ab6c44553e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1181,8 +1181,8 @@ static void ConvertTownOwner() for (TileIndex tile = 0; tile != MapSize(); tile++) { switch (GetTileType(tile)) { case MP_ROAD: - if (GB(_m[tile].m5, 4, 2) == ROAD_TILE_CROSSING && HasBit(_m[tile].m4, 7)) { - _m[tile].m4 = OWNER_TOWN; + if (GB(_m[tile].m5, 4, 2) == ROAD_TILE_CROSSING && HasBit(_m[tile].m3, 7)) { + _m[tile].m3 = OWNER_TOWN; } /* FALLTHROUGH */ @@ -1565,7 +1565,7 @@ bool AfterLoadGame() case MP_ROAD: _m[t].m4 |= (_m[t].m2 << 4); - if (IsTileOwner(t, OWNER_TOWN)) { + if ((GB(_m[t].m5, 4, 2) == ROAD_TILE_CROSSING ? (Owner)_m[t].m3 : GetTileOwner(t)) == OWNER_TOWN) { SetTownIndex(t, CalcClosestTownFromTile(t, (uint)-1)->index); } else { SetTownIndex(t, 0);