Changeset - r24135:db14c768b909
[Not reviewed]
master
0 5 0
SamuXarick - 5 years ago 2020-02-24 22:49:11
43006711+SamuXarick@users.noreply.github.com
Fix #8020: Add missing docking tiles around industry neutral stations
5 files changed with 20 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -3116,13 +3116,11 @@ bool AfterLoadGame()
 
				if (IsDock(t) || IsOilRig(t)) Station::GetByTile(t)->ship_station.Add(t);
 
			}
 
		}
 

	
 
		/* Scan for docking tiles */
 
		for (Station *st : Station::Iterate()) {
 
			if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st);
 
		}
 
	}
 

	
 
	/* Update station docking tiles. */
 
	AfterLoadScanDockingTiles();
 

	
 
	/* Compute station catchment areas. This is needed here in case UpdateStationAcceptance is called below. */
 
	Station::RecomputeCatchmentForAll();
 

	
src/saveload/saveload_internal.h
Show inline comments
 
@@ -29,6 +29,7 @@ void AfterLoadVehicles(bool part_of_load
 
void FixupTrainLengths();
 
void AfterLoadStations();
 
void AfterLoadRoadStops();
 
void AfterLoadScanDockingTiles();
 
void ResetLabelMaps();
 
void AfterLoadLabelMaps();
 
void AfterLoadStoryBook();
src/saveload/station_sl.cpp
Show inline comments
 
@@ -141,6 +141,17 @@ void AfterLoadRoadStops()
 
	}
 
}
 

	
 
/**
 
 * (Re)scan for station docking tiles after loading a savegame.
 
 */
 
void AfterLoadScanDockingTiles()
 
{
 
	/* Scan for docking tiles */
 
	for (Station *st : Station::Iterate()) {
 
		if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st);
 
	}
 
}
 

	
 
static const SaveLoad _roadstop_desc[] = {
 
	SLE_VAR(RoadStop, xy,           SLE_UINT32),
 
	SLE_CONDNULL(1, SL_MIN_VERSION, SLV_45),
src/ship_cmd.cpp
Show inline comments
 
@@ -613,6 +613,7 @@ bool IsShipDestinationTile(TileIndex til
 
			const Industry *i = Industry::GetByTile(t);
 
			if (i->neutral_station != nullptr && i->neutral_station->index == station) return true;
 
		}
 
		if (IsTileType(t, MP_STATION) && IsOilRig(t) && GetStationIndex(t) == station) return true;
 
	}
 
	return false;
 
}
src/water_cmd.cpp
Show inline comments
 
@@ -196,6 +196,10 @@ void CheckForDockingTile(TileIndex t)
 
				SetDockingTile(t, true);
 
			}
 
		}
 
		if (IsTileType(tile, MP_STATION) && IsOilRig(tile)) {
 
			Station::GetByTile(tile)->docking_station.Add(t);
 
			SetDockingTile(t, true);
 
		}
 
	}
 
}
 

	
0 comments (0 inline, 0 general)