1
0
Fork 0

Codechange: Rename ship docking tile related functions.

pull/11320/head
frosch 2023-09-16 23:51:49 +02:00 committed by frosch
parent 5733145c59
commit baf7cc858b
5 changed files with 7 additions and 39 deletions

View File

@ -624,7 +624,7 @@ bool IsShipDestinationTile(TileIndex tile, StationID station)
for (DiagDirection d = DIAGDIR_BEGIN; d != DIAGDIR_END; d++) { for (DiagDirection d = DIAGDIR_BEGIN; d != DIAGDIR_END; d++) {
TileIndex t = tile + TileOffsByDiagDir(d); TileIndex t = tile + TileOffsByDiagDir(d);
if (!IsValidTile(t)) continue; if (!IsValidTile(t)) continue;
if (IsDockTile(t) && GetStationIndex(t) == station && IsValidDockingDirectionForDock(t, d)) return true; if (IsDockTile(t) && GetStationIndex(t) == station && IsDockWaterPart(t)) return true;
if (IsTileType(t, MP_INDUSTRY)) { if (IsTileType(t, MP_INDUSTRY)) {
const Industry *i = Industry::GetByTile(t); const Industry *i = Industry::GetByTile(t);
if (i->neutral_station != nullptr && i->neutral_station->index == station) return true; if (i->neutral_station != nullptr && i->neutral_station->index == station) return true;

View File

@ -2740,20 +2740,6 @@ void ClearDockingTilesCheckingNeighbours(TileIndex tile)
} }
} }
/**
* 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. (unused)
* @return True iff the dock can be docked from the given direction.
*/
bool IsValidDockingDirectionForDock(TileIndex t, DiagDirection d)
{
assert(IsDockTile(t));
StationGfx gfx = GetStationGfx(t);
return gfx >= GFX_DOCK_BASE_WATER_PART;
}
/** /**
* Find the part of a dock that is land-based * Find the part of a dock that is land-based
* @param t Dock tile to find land part of * @param t Dock tile to find land part of

View File

@ -40,7 +40,6 @@ void DeleteOilRig(TileIndex t);
void UpdateStationDockingTiles(Station *st); void UpdateStationDockingTiles(Station *st);
void RemoveDockingTile(TileIndex t); void RemoveDockingTile(TileIndex t);
void ClearDockingTilesCheckingNeighbours(TileIndex tile); void ClearDockingTilesCheckingNeighbours(TileIndex tile);
bool IsValidDockingDirectionForDock(TileIndex t, DiagDirection d);
/* Check if a rail station tile is traversable. */ /* Check if a rail station tile is traversable. */
bool IsStationTileBlocked(TileIndex tile); bool IsStationTileBlocked(TileIndex tile);

View File

@ -435,30 +435,13 @@ static inline DiagDirection GetDockDirection(Tile t)
} }
/** /**
* Get the tileoffset from this tile a ship should target to get to this dock. * Check whether a dock tile is the tile on water.
* @param t Tile to query
* @pre IsTileType(t, MP_STATION)
* @pre IsBuoy(t) || IsOilRig(t) || IsDock(t)
* @return The offset from this tile that should be used as destination for ships.
*/ */
static inline TileIndexDiffC GetDockOffset(Tile t) static inline bool IsDockWaterPart(Tile t)
{ {
static const TileIndexDiffC buoy_offset = {0, 0}; assert(IsDockTile(t));
static const TileIndexDiffC oilrig_offset = {2, 0}; StationGfx gfx = GetStationGfx(t);
static const TileIndexDiffC dock_offset[DIAGDIR_END] = { return gfx >= GFX_DOCK_BASE_WATER_PART;
{-2, 0},
{ 0, 2},
{ 2, 0},
{ 0, -2},
};
assert(IsTileType(t, MP_STATION));
if (IsBuoy(t)) return buoy_offset;
if (IsOilRig(t)) return oilrig_offset;
assert(IsDock(t));
return dock_offset[GetDockDirection(t)];
} }
/** /**

View File

@ -186,7 +186,7 @@ void CheckForDockingTile(TileIndex t)
TileIndex tile = t + TileOffsByDiagDir(d); TileIndex tile = t + TileOffsByDiagDir(d);
if (!IsValidTile(tile)) continue; if (!IsValidTile(tile)) continue;
if (IsDockTile(tile) && IsValidDockingDirectionForDock(tile, d)) { if (IsDockTile(tile) && IsDockWaterPart(tile)) {
Station::GetByTile(tile)->docking_station.Add(t); Station::GetByTile(tile)->docking_station.Add(t);
SetDockingTile(t, true); SetDockingTile(t, true);
} }