mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r23942) -Fix: infrastructure cache of standard road stops would get messed up when buying a company with them
This commit is contained in:
parent
b5525fd33d
commit
060cac439c
@ -2722,6 +2722,16 @@ bool AfterLoadGame()
|
||||
}
|
||||
}
|
||||
|
||||
/* The road owner of standard road stops was not properly accounted for. */
|
||||
if (IsSavegameVersionBefore(172)) {
|
||||
for (TileIndex t = 0; t < map_size; t++) {
|
||||
if (!IsStandardRoadStopTile(t)) continue;
|
||||
Owner o = GetTileOwner(t);
|
||||
SetRoadOwner(t, ROADTYPE_ROAD, o);
|
||||
SetRoadOwner(t, ROADTYPE_TRAM, o);
|
||||
}
|
||||
}
|
||||
|
||||
/* Road stops is 'only' updating some caches */
|
||||
AfterLoadRoadStops();
|
||||
AfterLoadLabelMaps();
|
||||
|
@ -3588,7 +3588,7 @@ void DeleteOilRig(TileIndex tile)
|
||||
|
||||
static void ChangeTileOwner_Station(TileIndex tile, Owner old_owner, Owner new_owner)
|
||||
{
|
||||
if (IsDriveThroughStopTile(tile)) {
|
||||
if (IsRoadStopTile(tile)) {
|
||||
for (RoadType rt = ROADTYPE_ROAD; rt < ROADTYPE_END; rt++) {
|
||||
/* Update all roadtypes, no matter if they are present */
|
||||
if (GetRoadOwner(tile, rt) == old_owner) {
|
||||
@ -3624,11 +3624,7 @@ static void ChangeTileOwner_Station(TileIndex tile, Owner old_owner, Owner new_o
|
||||
|
||||
case STATION_BUS:
|
||||
case STATION_TRUCK:
|
||||
if (!IsDriveThroughStopTile(tile)) {
|
||||
/* Drive-through stops were already handled above. */
|
||||
old_company->infrastructure.road[FIND_FIRST_BIT(GetRoadTypes(tile))] -= 2;
|
||||
new_company->infrastructure.road[FIND_FIRST_BIT(GetRoadTypes(tile))] += 2;
|
||||
}
|
||||
/* Road stops were already handled above. */
|
||||
break;
|
||||
|
||||
case STATION_BUOY:
|
||||
|
Loading…
Reference in New Issue
Block a user