Changeset - r19074:263959bc4cea
[Not reviewed]
master
0 2 0
rubidium - 13 years ago 2012-02-13 17:18:20
rubidium@openttd.org
(svn r23942) -Fix: infrastructure cache of standard road stops would get messed up when buying a company with them
2 files changed with 12 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -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();
src/station_cmd.cpp
Show inline comments
 
@@ -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(Tile
 

	
 
			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:
0 comments (0 inline, 0 general)