mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-04 05:15:21 +00:00
(svn r18370) -Codechange: push some constness/type strictness into the ship pathfinders
This commit is contained in:
parent
250c355508
commit
ef8cc49175
@ -1100,7 +1100,7 @@ void InitializeNPF()
|
||||
_npf_aystar.max_search_nodes = _settings_game.pf.npf.npf_max_search_nodes;
|
||||
}
|
||||
|
||||
void NPFFillWithOrderData(NPFFindStationOrTileData *fstd, Vehicle *v, bool reserve_path)
|
||||
void NPFFillWithOrderData(NPFFindStationOrTileData *fstd, const Vehicle *v, bool reserve_path)
|
||||
{
|
||||
/* Ships don't really reach their stations, but the tile in front. So don't
|
||||
* save the station id for ships. For roadvehs we don't store it either,
|
||||
@ -1122,7 +1122,7 @@ void NPFFillWithOrderData(NPFFindStationOrTileData *fstd, Vehicle *v, bool reser
|
||||
|
||||
/*** Ships ***/
|
||||
|
||||
Track NPFShipChooseTrack(Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
Track NPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
{
|
||||
NPFFindStationOrTileData fstd;
|
||||
Trackdir trackdir = v->GetVehicleTrackdir();
|
||||
|
@ -125,7 +125,7 @@ NPFFoundTargetData NPFRouteToDepotTrialError(TileIndex tile, Trackdir trackdir,
|
||||
NPFFoundTargetData NPFRouteToSafeTile(const struct Train *v, TileIndex tile, Trackdir trackdir, bool override_railtype);
|
||||
|
||||
|
||||
void NPFFillWithOrderData(NPFFindStationOrTileData *fstd, Vehicle *v, bool reserve_path = false);
|
||||
void NPFFillWithOrderData(NPFFindStationOrTileData *fstd, const Vehicle *v, bool reserve_path = false);
|
||||
|
||||
|
||||
/*
|
||||
|
@ -20,6 +20,6 @@
|
||||
* @param tracks available tracks on the new tile (to choose from)
|
||||
* @return the best trackdir for next turn or INVALID_TRACK if the path could not be found
|
||||
*/
|
||||
Track NPFShipChooseTrack(class Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
Track NPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
|
||||
#endif /* NPF_FUNC_H */
|
||||
|
@ -131,7 +131,7 @@ static const byte _ship_search_directions[6][4] = {
|
||||
|
||||
static const byte _pick_shiptrack_table[6] = {1, 3, 2, 2, 0, 0};
|
||||
|
||||
static uint FindShipTrack(Ship *v, TileIndex tile, DiagDirection dir, TrackBits bits, TileIndex skiptile, Track *track)
|
||||
static uint FindShipTrack(const Ship *v, TileIndex tile, DiagDirection dir, TrackBits bits, TileIndex skiptile, Track *track)
|
||||
{
|
||||
TrackPathFinder pfs;
|
||||
uint best_bird_dist = 0;
|
||||
@ -183,7 +183,7 @@ bad:;
|
||||
/** returns the track to choose on the next tile, or -1 when it's better to
|
||||
* reverse. The tile given is the tile we are about to enter, enterdir is the
|
||||
* direction in which we are entering the tile */
|
||||
Track OPFShipChooseTrack(Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
{
|
||||
assert(IsValidDiagDirection(enterdir));
|
||||
|
||||
|
@ -20,6 +20,6 @@
|
||||
* @param tracks available tracks on the new tile (to choose from)
|
||||
* @return the best trackdir for next turn or INVALID_TRACK if the path could not be found
|
||||
*/
|
||||
Track OPFShipChooseTrack(Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
|
||||
#endif /* OPF_SHIP_H */
|
||||
|
@ -23,7 +23,7 @@
|
||||
* @param tracks available tracks on the new tile (to choose from)
|
||||
* @return the best trackdir for next turn or INVALID_TRACK if the path could not be found
|
||||
*/
|
||||
Track YapfChooseShipTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
Track YapfChooseShipTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
||||
|
||||
/** Finds the best path for given road vehicle.
|
||||
* @param v the RV that needs to find a path
|
||||
|
@ -10,6 +10,7 @@
|
||||
/** @file yapf_ship.cpp Implementation of YAPF for ships. */
|
||||
|
||||
#include "../../stdafx.h"
|
||||
#include "../../ship.h"
|
||||
|
||||
#include "yapf.hpp"
|
||||
|
||||
@ -48,7 +49,7 @@ public:
|
||||
return 'w';
|
||||
}
|
||||
|
||||
static Trackdir ChooseShipTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
static Trackdir ChooseShipTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
{
|
||||
/* handle special case - when next tile is destination tile */
|
||||
if (tile == v->dest_tile) {
|
||||
@ -167,10 +168,10 @@ struct CYapfShip2 : CYapfT<CYapfShip_TypesT<CYapfShip2, CFollowTrackWater , C
|
||||
struct CYapfShip3 : CYapfT<CYapfShip_TypesT<CYapfShip3, CFollowTrackWaterNo90, CShipNodeListTrackDir> > {};
|
||||
|
||||
/** Ship controller helper - path finder invoker */
|
||||
Track YapfChooseShipTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
Track YapfChooseShipTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
{
|
||||
/* default is YAPF type 2 */
|
||||
typedef Trackdir (*PfnChooseShipTrack)(const Vehicle*, TileIndex, DiagDirection, TrackBits);
|
||||
typedef Trackdir (*PfnChooseShipTrack)(const Ship*, TileIndex, DiagDirection, TrackBits);
|
||||
PfnChooseShipTrack pfnChooseShipTrack = CYapfShip2::ChooseShipTrack; // default: ExitDir, allow 90-deg
|
||||
|
||||
/* check if non-default YAPF type needed */
|
||||
|
@ -362,7 +362,7 @@ static void ShipArrivesAt(const Vehicle *v, Station *st)
|
||||
/** returns the track to choose on the next tile, or -1 when it's better to
|
||||
* reverse. The tile given is the tile we are about to enter, enterdir is the
|
||||
* direction in which we are entering the tile */
|
||||
static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
static Track ChooseShipTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
|
||||
{
|
||||
assert(IsValidDiagDirection(enterdir));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user