Changeset - r25992:0758f068d865
[Not reviewed]
master
0 3 0
Loïc Guilloux - 3 years ago 2021-09-26 17:31:55
glx22@users.noreply.github.com
Change: Allow all tiles around docks to be docking tiles (#9578)
3 files changed with 9 insertions and 16 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -3106,14 +3106,14 @@ bool AfterLoadGame()
 
		}
 
	}
 

	
 
	if (IsSavegameVersionBeforeOrAt(SLV_ENDING_YEAR)) {
 
		/* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS
 
		 * savegames, but a bug in docking tiles touched all savegames between
 
		 * SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */
 
	if (IsSavegameVersionBefore(SLV_DOCK_DOCKINGTILES)) {
 
		/* All tiles around docks may be docking tiles. */
 
		for (Station *st : Station::Iterate()) {
 
			if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st);
 
		}
 

	
 
	}
 

	
 
	if (IsSavegameVersionBeforeOrAt(SLV_ENDING_YEAR)) {
 
		/* Reset roadtype/streetcartype info for non-road bridges. */
 
		for (TileIndex t = 0; t < map_size; t++) {
 
			if (IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) != TRANSPORT_ROAD) {
src/saveload/saveload.h
Show inline comments
 
@@ -337,7 +337,8 @@ enum SaveLoadVersion : uint16 {
 

	
 
	SLV_TABLE_CHUNKS,                       ///< 295  PR#9322 Introduction of CH_TABLE and CH_SPARSE_TABLE.
 
	SLV_SCRIPT_INT64,                       ///< 296  PR#9415 SQInteger is 64bit but was saved as 32bit.
 
	SLV_LINKGRAPH_TRAVEL_TIME,              ///< 297  PR#9457 v12  Store travel time in the linkgraph.
 
	SLV_LINKGRAPH_TRAVEL_TIME,              ///< 297  PR#9457 v12.0-RC1  Store travel time in the linkgraph.
 
	SLV_DOCK_DOCKINGTILES,                  ///< 298  PR#9578 v12.0  All tiles around docks may be docking tiles.
 

	
 
	SL_MAX_VERSION,                         ///< Highest possible saveload version
 
};
src/station_cmd.cpp
Show inline comments
 
@@ -2635,23 +2635,15 @@ void ClearDockingTilesCheckingNeighbours
 
/**
 
 * Check if a dock tile can be docked from the given direction.
 
 * @param t Tile index of dock.
 
 * @param d DiagDirection adjacent to dock being tested.
 
 * @param d DiagDirection adjacent to dock being tested. (unused)
 
 * @return True iff the dock can be docked from the given direction.
 
 */
 
bool IsValidDockingDirectionForDock(TileIndex t, DiagDirection d)
 
{
 
	assert(IsDockTile(t));
 

	
 
	/** Bitmap of valid directions for each dock tile part. */
 
	static const uint8 _valid_docking_tile[] = {
 
		0, 0, 0, 0,                        // No docking against the slope part.
 
		1 << DIAGDIR_NE | 1 << DIAGDIR_SW, // Docking permitted at the end
 
		1 << DIAGDIR_NW | 1 << DIAGDIR_SE, // of the flat piers.
 
	};
 

	
 
	StationGfx gfx = GetStationGfx(t);
 
	assert(gfx < lengthof(_valid_docking_tile));
 
	return HasBit(_valid_docking_tile[gfx], d);
 
	return gfx >= GFX_DOCK_BASE_WATER_PART;
 
}
 

	
 
/**
0 comments (0 inline, 0 general)