(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#define YAPF_BASE_HPP
|
||||
|
||||
#include "../debug.h"
|
||||
#include "../settings_type.h"
|
||||
|
||||
extern int _total_pf_time_us;
|
||||
|
||||
@@ -52,7 +53,7 @@ public:
|
||||
protected:
|
||||
Node* m_pBestDestNode; ///< pointer to the destination node found at last round
|
||||
Node* m_pBestIntermediateNode; ///< here should be node closest to the destination if path not found
|
||||
const YapfSettings *m_settings; ///< current settings (_patches.yapf)
|
||||
const YAPFSettings *m_settings; ///< current settings (_settings.yapf)
|
||||
int m_max_search_nodes; ///< maximum number of nodes we are allowed to visit before we give up
|
||||
const Vehicle* m_veh; ///< vehicle that we are trying to drive
|
||||
|
||||
@@ -73,7 +74,7 @@ public:
|
||||
FORCEINLINE CYapfBaseT()
|
||||
: m_pBestDestNode(NULL)
|
||||
, m_pBestIntermediateNode(NULL)
|
||||
, m_settings(&_patches.yapf)
|
||||
, m_settings(&_settings.pf.yapf)
|
||||
, m_max_search_nodes(PfGetSettings().max_search_nodes)
|
||||
, m_veh(NULL)
|
||||
, m_stats_cost_calcs(0)
|
||||
@@ -91,7 +92,7 @@ protected:
|
||||
|
||||
public:
|
||||
/// return current settings (can be custom - player based - but later)
|
||||
FORCEINLINE const YapfSettings& PfGetSettings() const
|
||||
FORCEINLINE const YAPFSettings& PfGetSettings() const
|
||||
{
|
||||
return *m_settings;
|
||||
}
|
||||
|
@@ -254,7 +254,7 @@ Trackdir YapfChooseRailTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir,
|
||||
PfnChooseRailTrack pfnChooseRailTrack = &CYapfRail1::stChooseRailTrack;
|
||||
|
||||
// check if non-default YAPF type needed
|
||||
if (_patches.forbid_90_deg) {
|
||||
if (_settings.pf.forbid_90_deg) {
|
||||
pfnChooseRailTrack = &CYapfRail2::stChooseRailTrack; // Trackdir, forbid 90-deg
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@ bool YapfCheckReverseTrain(Vehicle* v)
|
||||
PfnCheckReverseTrain pfnCheckReverseTrain = CYapfRail1::stCheckReverseTrain;
|
||||
|
||||
// check if non-default YAPF type needed
|
||||
if (_patches.forbid_90_deg) {
|
||||
if (_settings.pf.forbid_90_deg) {
|
||||
pfnCheckReverseTrain = &CYapfRail2::stCheckReverseTrain; // Trackdir, forbid 90-deg
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ bool YapfFindNearestRailDepotTwoWay(Vehicle *v, int max_distance, int reverse_pe
|
||||
PfnFindNearestDepotTwoWay pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail1::stFindNearestDepotTwoWay;
|
||||
|
||||
// check if non-default YAPF type needed
|
||||
if (_patches.forbid_90_deg) {
|
||||
if (_settings.pf.forbid_90_deg) {
|
||||
pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail2::stFindNearestDepotTwoWay; // Trackdir, forbid 90-deg
|
||||
}
|
||||
|
||||
|
@@ -407,7 +407,7 @@ Trackdir YapfChooseRoadTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir)
|
||||
PfnChooseRoadTrack pfnChooseRoadTrack = &CYapfRoad2::stChooseRoadTrack; // default: ExitDir, allow 90-deg
|
||||
|
||||
// check if non-default YAPF type should be used
|
||||
if (_patches.yapf.disable_node_optimization)
|
||||
if (_settings.pf.yapf.disable_node_optimization)
|
||||
pfnChooseRoadTrack = &CYapfRoad1::stChooseRoadTrack; // Trackdir, allow 90-deg
|
||||
|
||||
Trackdir td_ret = pfnChooseRoadTrack(v, tile, enterdir);
|
||||
@@ -421,7 +421,7 @@ uint YapfRoadVehDistanceToTile(const Vehicle* v, TileIndex tile)
|
||||
PfnDistanceToTile pfnDistanceToTile = &CYapfRoad2::stDistanceToTile; // default: ExitDir, allow 90-deg
|
||||
|
||||
// check if non-default YAPF type should be used
|
||||
if (_patches.yapf.disable_node_optimization)
|
||||
if (_settings.pf.yapf.disable_node_optimization)
|
||||
pfnDistanceToTile = &CYapfRoad1::stDistanceToTile; // Trackdir, allow 90-deg
|
||||
|
||||
// measure distance in YAPF units
|
||||
@@ -450,7 +450,7 @@ Depot* YapfFindNearestRoadDepot(const Vehicle *v)
|
||||
PfnFindNearestDepot pfnFindNearestDepot = &CYapfRoadAnyDepot2::stFindNearestDepot;
|
||||
|
||||
// check if non-default YAPF type should be used
|
||||
if (_patches.yapf.disable_node_optimization)
|
||||
if (_settings.pf.yapf.disable_node_optimization)
|
||||
pfnFindNearestDepot = &CYapfRoadAnyDepot1::stFindNearestDepot; // Trackdir, allow 90-deg
|
||||
|
||||
Depot* ret = pfnFindNearestDepot(v, tile, trackdir);
|
||||
|
@@ -1,72 +0,0 @@
|
||||
/* $Id$ */
|
||||
|
||||
/** @file yapf_settings.h Penalty settings for YAPF. */
|
||||
|
||||
#if !defined(YAPF_SETTINGS_H) || defined(YS_DEF)
|
||||
|
||||
# ifndef YAPF_SETTINGS_H
|
||||
# define YAPF_SETTINGS_H
|
||||
# endif
|
||||
|
||||
# ifndef YS_DEF
|
||||
/*
|
||||
* if YS_DEF is not defined, we will only do following declaration:
|
||||
* struct YapfSettings {
|
||||
* bool disable_node_optimization;
|
||||
* uint32 max_search_nodes;
|
||||
* .... all other yapf related settings ...
|
||||
* };
|
||||
*
|
||||
* otherwise we will just expand YS_DEF_xx macros and then #undef them
|
||||
*/
|
||||
# define YS_DEF_BEGIN struct YapfSettings {
|
||||
# define YS_DEF(type, name) type name;
|
||||
# define YS_DEF_END };
|
||||
|
||||
# endif /* !YS_DEF */
|
||||
|
||||
# ifndef YS_DEF_BEGIN
|
||||
# define YS_DEF_BEGIN
|
||||
# endif // YS_DEF_BEGIN
|
||||
|
||||
# ifndef YS_DEF_END
|
||||
# define YS_DEF_END
|
||||
# endif // YS_DEF_END
|
||||
|
||||
YS_DEF_BEGIN
|
||||
YS_DEF(bool , disable_node_optimization) ///< whether to use exit-dir instead of trackdir in node key
|
||||
YS_DEF(uint32, max_search_nodes) ///< stop path-finding when this number of nodes visited
|
||||
YS_DEF(bool , ship_use_yapf) ///< use YAPF for ships
|
||||
YS_DEF(bool , road_use_yapf) ///< use YAPF for road
|
||||
YS_DEF(bool , rail_use_yapf) ///< use YAPF for rail
|
||||
YS_DEF(uint32, road_slope_penalty) ///< penalty for up-hill slope
|
||||
YS_DEF(uint32, road_curve_penalty) ///< penalty for curves
|
||||
YS_DEF(uint32, road_crossing_penalty) ///< penalty for level crossing
|
||||
YS_DEF(uint32, road_stop_penalty) ///< penalty for going through a drive-through road stop
|
||||
YS_DEF(bool , rail_firstred_twoway_eol) ///< treat first red two-way signal as dead end
|
||||
YS_DEF(uint32, rail_firstred_penalty) ///< penalty for first red signal
|
||||
YS_DEF(uint32, rail_firstred_exit_penalty) ///< penalty for first red exit signal
|
||||
YS_DEF(uint32, rail_lastred_penalty) ///< penalty for last red signal
|
||||
YS_DEF(uint32, rail_lastred_exit_penalty) ///< penalty for last red exit signal
|
||||
YS_DEF(uint32, rail_station_penalty) ///< penalty for non-target station tile
|
||||
YS_DEF(uint32, rail_slope_penalty) ///< penalty for up-hill slope
|
||||
YS_DEF(uint32, rail_curve45_penalty) ///< penalty for curve
|
||||
YS_DEF(uint32, rail_curve90_penalty) ///< penalty for 90-deg curve
|
||||
YS_DEF(uint32, rail_depot_reverse_penalty) ///< penalty for reversing in the depot
|
||||
YS_DEF(uint32, rail_crossing_penalty) ///< penalty for level crossing
|
||||
YS_DEF(uint32, rail_look_ahead_max_signals)///< max. number of signals taken into consideration in look-ahead load balancer
|
||||
YS_DEF(int32 , rail_look_ahead_signal_p0) ///< constant in polynomial penalty function
|
||||
YS_DEF(int32 , rail_look_ahead_signal_p1) ///< constant in polynomial penalty function
|
||||
YS_DEF(int32 , rail_look_ahead_signal_p2) ///< constant in polynomial penalty function
|
||||
|
||||
YS_DEF(uint32, rail_longer_platform_penalty) ///< penalty for longer station platform than train
|
||||
YS_DEF(uint32, rail_longer_platform_per_tile_penalty) ///< penalty for longer station platform than train (per tile)
|
||||
YS_DEF(uint32, rail_shorter_platform_penalty) ///< penalty for shorter station platform than train
|
||||
YS_DEF(uint32, rail_shorter_platform_per_tile_penalty) ///< penalty for shorter station platform than train (per tile)
|
||||
YS_DEF_END
|
||||
|
||||
#undef YS_DEF_BEGIN
|
||||
#undef YS_DEF
|
||||
#undef YS_DEF_END
|
||||
|
||||
#endif /* !YAPF_SETTINGS_H || YS_DEF */
|
@@ -154,9 +154,9 @@ Trackdir YapfChooseShipTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir,
|
||||
PfnChooseShipTrack pfnChooseShipTrack = CYapfShip2::ChooseShipTrack; // default: ExitDir, allow 90-deg
|
||||
|
||||
// check if non-default YAPF type needed
|
||||
if (_patches.forbid_90_deg)
|
||||
if (_settings.pf.forbid_90_deg)
|
||||
pfnChooseShipTrack = &CYapfShip3::ChooseShipTrack; // Trackdir, forbid 90-deg
|
||||
else if (_patches.yapf.disable_node_optimization)
|
||||
else if (_settings.pf.yapf.disable_node_optimization)
|
||||
pfnChooseShipTrack = &CYapfShip1::ChooseShipTrack; // Trackdir, allow 90-deg
|
||||
|
||||
Trackdir td_ret = pfnChooseShipTrack(v, tile, enterdir, tracks);
|
||||
|
Reference in New Issue
Block a user