summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/yapf/nodelist.hpp28
-rw-r--r--src/yapf/yapf.hpp50
-rw-r--r--src/yapf/yapf_base.hpp16
-rw-r--r--src/yapf/yapf_common.hpp15
-rw-r--r--src/yapf/yapf_costbase.hpp2
-rw-r--r--src/yapf/yapf_costcache.hpp37
-rw-r--r--src/yapf/yapf_costrail.hpp28
-rw-r--r--src/yapf/yapf_destrail.hpp16
-rw-r--r--src/yapf/yapf_node_rail.hpp86
-rw-r--r--src/yapf/yapf_node_road.hpp4
-rw-r--r--src/yapf/yapf_rail.cpp51
-rw-r--r--src/yapf/yapf_road.cpp48
-rw-r--r--src/yapf/yapf_ship.cpp20
13 files changed, 301 insertions, 100 deletions
diff --git a/src/yapf/nodelist.hpp b/src/yapf/nodelist.hpp
index e8c4fdc37..3ecc91dbb 100644
--- a/src/yapf/nodelist.hpp
+++ b/src/yapf/nodelist.hpp
@@ -46,28 +46,41 @@ public:
{
m_new_node = NULL;
}
+
/** destructor */
~CNodeList_HashTableT()
{
}
+
/** return number of open nodes */
- FORCEINLINE int OpenCount() {return m_open.Count();}
+ FORCEINLINE int OpenCount()
+ {
+ return m_open.Count();
+ }
+
/** return number of closed nodes */
- FORCEINLINE int ClosedCount() {return m_closed.Count();}
+ FORCEINLINE int ClosedCount()
+ {
+ return m_closed.Count();
+ }
+
/** allocate new data item from m_arr */
FORCEINLINE Titem_ *CreateNewNode()
{
if (m_new_node == NULL) m_new_node = &m_arr.Add();
return m_new_node;
}
+
/** notify the nodelist, that we don't want to discard the given node */
FORCEINLINE void FoundBestNode(Titem_& item)
{
// for now it is enough to invalidate m_new_node if it is our given node
- if (&item == m_new_node)
+ if (&item == m_new_node) {
m_new_node = NULL;
+ }
// TODO: do we need to store best nodes found in some extra list/array? Probably not now.
}
+
/** insert given item as open node (into m_open and m_open_queue) */
FORCEINLINE void InsertOpenNode(Titem_& item)
{
@@ -76,9 +89,11 @@ public:
// TODO: check if m_open_queue is not full
assert(!m_open_queue.IsFull());
m_open_queue.Push(item);
- if (&item == m_new_node)
+ if (&item == m_new_node) {
m_new_node = NULL;
+ }
}
+
/** return the best open node */
FORCEINLINE Titem_ *GetBestOpenNode()
{
@@ -88,6 +103,7 @@ public:
}
return NULL;
}
+
/** remove and return the best open node */
FORCEINLINE Titem_ *PopBestOpenNode()
{
@@ -98,12 +114,14 @@ public:
}
return NULL;
}
+
/** return the open node specified by a key or NULL if not found */
FORCEINLINE Titem_ *FindOpenNode(const Key& key)
{
Titem_ *item = m_open.Find(key);
return item;
}
+
/** remove and return the open node specified by a key */
FORCEINLINE Titem_& PopOpenNode(const Key& key)
{
@@ -112,12 +130,14 @@ public:
m_open_queue.RemoveByIdx(idxPop);
return item;
}
+
/** close node */
FORCEINLINE void InsertClosedNode(Titem_& item)
{
assert(m_open.Find(item.GetKey()) == NULL);
m_closed.Push(item);
}
+
/** return the closed node specified by a key or NULL if not found */
FORCEINLINE Titem_ *FindClosedNode(const Key& key)
{
diff --git a/src/yapf/yapf.hpp b/src/yapf/yapf.hpp
index 60d404804..5b5a27c0e 100644
--- a/src/yapf/yapf.hpp
+++ b/src/yapf/yapf.hpp
@@ -41,21 +41,53 @@ struct CPerformanceTimer
CPerformanceTimer() : m_start(0), m_acc(0) {}
- FORCEINLINE void Start() {m_start = QueryTime();}
- FORCEINLINE void Stop() {m_acc += QueryTime() - m_start;}
- FORCEINLINE int Get(int64 coef) {return (int)(m_acc * coef / QueryFrequency());}
-
- FORCEINLINE int64 QueryTime() {return ottd_rdtsc();}
- FORCEINLINE int64 QueryFrequency() {return ((int64)2200 * 1000000);}
+ FORCEINLINE void Start()
+ {
+ m_start = QueryTime();
+ }
+
+ FORCEINLINE void Stop()
+ {
+ m_acc += QueryTime() - m_start;
+ }
+
+ FORCEINLINE int Get(int64 coef)
+ {
+ return (int)(m_acc * coef / QueryFrequency());
+ }
+
+ FORCEINLINE int64 QueryTime()
+ {
+ return ottd_rdtsc();
+ }
+
+ FORCEINLINE int64 QueryFrequency()
+ {
+ return ((int64)2200 * 1000000);
+ }
};
struct CPerfStartReal
{
CPerformanceTimer *m_pperf;
- FORCEINLINE CPerfStartReal(CPerformanceTimer& perf) : m_pperf(&perf) {if (m_pperf != NULL) m_pperf->Start();}
- FORCEINLINE ~CPerfStartReal() {Stop();}
- FORCEINLINE void Stop() {if (m_pperf != NULL) {m_pperf->Stop(); m_pperf = NULL;}}
+ FORCEINLINE CPerfStartReal(CPerformanceTimer& perf) : m_pperf(&perf)
+ {
+ if (m_pperf != NULL) m_pperf->Start();
+ }
+
+ FORCEINLINE ~CPerfStartReal()
+ {
+ Stop();
+ }
+
+ FORCEINLINE void Stop()
+ {
+ if (m_pperf != NULL) {
+ m_pperf->Stop();
+ m_pperf = NULL;
+ }
+ }
};
struct CPerfStartFake
diff --git a/src/yapf/yapf_base.hpp b/src/yapf/yapf_base.hpp
index eb134b4a1..4975c95de 100644
--- a/src/yapf/yapf_base.hpp
+++ b/src/yapf/yapf_base.hpp
@@ -88,7 +88,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/// return current settings (can be custom - company based - but later)
@@ -118,12 +121,14 @@ public:
while (true) {
m_num_steps++;
Node *n = m_nodes.GetBestOpenNode();
- if (n == NULL)
+ if (n == NULL) {
break;
+ }
// if the best open node was worse than the best path found, we can finish
- if (m_pBestDestNode != NULL && m_pBestDestNode->GetCost() < n->GetCostEstimate())
+ if (m_pBestDestNode != NULL && m_pBestDestNode->GetCost() < n->GetCostEstimate()) {
break;
+ }
Yapf().PfFollowNode(*n);
if (m_max_search_nodes == 0 || m_nodes.ClosedCount() < m_max_search_nodes) {
@@ -281,7 +286,10 @@ public:
m_nodes.InsertOpenNode(n);
}
- const Vehicle * GetVehicle() const {return m_veh;}
+ const Vehicle * GetVehicle() const
+ {
+ return m_veh;
+ }
void DumpBase(DumpTarget &dmp) const
{
diff --git a/src/yapf/yapf_common.hpp b/src/yapf/yapf_common.hpp
index b13d76fe5..b52690f2a 100644
--- a/src/yapf/yapf_common.hpp
+++ b/src/yapf/yapf_common.hpp
@@ -19,7 +19,10 @@ protected:
TrackdirBits m_orgTrackdirs; ///< origin trackdir mask
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/// Set origin tile / trackdir mask
@@ -60,7 +63,10 @@ protected:
bool m_treat_first_red_two_way_signal_as_eol; ///< in some cases (leaving station) we need to handle first two-way signal differently
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/// set origin (tiles, trackdirs, etc.)
@@ -120,7 +126,10 @@ public:
protected:
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/// Called by YAPF to detect if node ends in the desired destination
diff --git a/src/yapf/yapf_costbase.hpp b/src/yapf/yapf_costbase.hpp
index f48e5bade..c2d26ff38 100644
--- a/src/yapf/yapf_costbase.hpp
+++ b/src/yapf/yapf_costbase.hpp
@@ -11,7 +11,7 @@ struct CYapfCostBase {
if (IsDiagonalTrackdir(td)) {
if (IsBridgeTile(tile)) {
// it is bridge ramp, check if we are entering the bridge
- if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(td)) return false; // no, we are living it, no penalty
+ if (GetTunnelBridgeDirection(tile) != TrackdirToExitdir(td)) return false; // no, we are leaving it, no penalty
// we are entering the bridge
Slope tile_slope = GetTileSlope(tile, NULL);
Axis axis = DiagDirToAxis(GetTunnelBridgeDirection(tile));
diff --git a/src/yapf/yapf_costcache.hpp b/src/yapf/yapf_costcache.hpp
index 07679822b..92201da9b 100644
--- a/src/yapf/yapf_costcache.hpp
+++ b/src/yapf/yapf_costcache.hpp
@@ -23,13 +23,13 @@ public:
FORCEINLINE bool PfNodeCacheFetch(Node& n)
{
return false;
- };
+ }
/** Called by YAPF to flush the cached segment cost data back into cache storage.
* Current cache implementation doesn't use that. */
FORCEINLINE void PfNodeCacheFlush(Node& n)
{
- };
+ }
};
@@ -52,7 +52,10 @@ protected:
LocalCache m_local_cache;
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to attach cached or local segment cost data to the given node.
@@ -62,13 +65,13 @@ public:
CacheKey key(n.GetKey());
Yapf().ConnectNodeToCachedData(n, *new (&m_local_cache.AddNC()) CachedData(key));
return false;
- };
+ }
/** Called by YAPF to flush the cached segment cost data back into cache storage.
* Current cache implementation doesn't use that. */
FORCEINLINE void PfNodeCacheFlush(Node& n)
{
- };
+ }
};
@@ -81,7 +84,10 @@ struct CSegmentCostCacheBase
{
static int s_rail_change_counter;
- static void NotifyTrackLayoutChange(TileIndex tile, Track track) {s_rail_change_counter++;}
+ static void NotifyTrackLayoutChange(TileIndex tile, Track track)
+ {
+ s_rail_change_counter++;
+ }
};
@@ -109,7 +115,11 @@ struct CSegmentCostCacheT
FORCEINLINE CSegmentCostCacheT() {}
/** flush (clear) the cache */
- FORCEINLINE void Flush() {m_map.Clear(); m_heap.Clear();};
+ FORCEINLINE void Flush()
+ {
+ m_map.Clear();
+ m_heap.Clear();
+ }
FORCEINLINE Tsegment& Get(Key& key, bool *found)
{
@@ -148,7 +158,10 @@ protected:
FORCEINLINE CYapfSegmentCostCacheGlobalT() : m_global_cache(stGetGlobalCache()) {};
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
FORCEINLINE static Cache& stGetGlobalCache()
{
@@ -184,17 +197,13 @@ public:
CachedData& item = m_global_cache.Get(key, &found);
Yapf().ConnectNodeToCachedData(n, item);
return found;
- };
+ }
/** Called by YAPF to flush the cached segment cost data back into cache storage.
* Current cache implementation doesn't use that. */
FORCEINLINE void PfNodeCacheFlush(Node& n)
{
- };
-
+ }
};
-
-
-
#endif /* YAPF_COSTCACHE_HPP */
diff --git a/src/yapf/yapf_costrail.hpp b/src/yapf/yapf_costrail.hpp
index e7e301d93..c825e8e5c 100644
--- a/src/yapf/yapf_costrail.hpp
+++ b/src/yapf/yapf_costrail.hpp
@@ -74,12 +74,16 @@ protected:
int p1 = Yapf().PfGetSettings().rail_look_ahead_signal_p1;
int p2 = Yapf().PfGetSettings().rail_look_ahead_signal_p2;
int *pen = m_sig_look_ahead_costs.GrowSizeNC(Yapf().PfGetSettings().rail_look_ahead_max_signals);
- for (uint i = 0; i < Yapf().PfGetSettings().rail_look_ahead_max_signals; i++)
+ for (uint i = 0; i < Yapf().PfGetSettings().rail_look_ahead_max_signals; i++) {
pen[i] = p0 + i * (p1 + i * p2);
+ }
}
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
FORCEINLINE int SlopeCost(TileIndex tile, Trackdir td)
@@ -125,8 +129,9 @@ public:
switch (GetTileType(tile)) {
case MP_ROAD:
/* Increase the cost for level crossings */
- if (IsLevelCrossing(tile))
+ if (IsLevelCrossing(tile)) {
cost += Yapf().PfGetSettings().rail_crossing_penalty;
+ }
break;
default:
@@ -215,7 +220,7 @@ public:
case SIGTYPE_NORMAL:
case SIGTYPE_ENTRY: cost += Yapf().PfGetSettings().rail_firstred_penalty; break;
default: break;
- };
+ }
}
}
@@ -251,9 +256,10 @@ public:
}
public:
- FORCEINLINE void SetMaxCost(int max_cost) {m_max_cost = max_cost;}
-
-
+ FORCEINLINE void SetMaxCost(int max_cost)
+ {
+ m_max_cost = max_cost;
+ }
/** Called by YAPF to calculate the cost from the origin to the given node.
* Calculates only the cost of given node, adds it to the parent node cost
@@ -412,10 +418,12 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
{
int min_speed = 0;
int max_speed = tf->GetSpeedLimit(&min_speed);
- if (max_speed < v->max_speed)
+ if (max_speed < v->max_speed) {
extra_cost += YAPF_TILE_LENGTH * (v->max_speed - max_speed) * (4 + tf->m_tiles_skipped) / v->max_speed;
- if (min_speed > v->max_speed)
+ }
+ if (min_speed > v->max_speed) {
extra_cost += YAPF_TILE_LENGTH * (min_speed - v->max_speed);
+ }
}
/* Finish if we already exceeded the maximum path cost (i.e. when
@@ -569,6 +577,4 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
}
};
-
-
#endif /* YAPF_COSTRAIL_HPP */
diff --git a/src/yapf/yapf_destrail.hpp b/src/yapf/yapf_destrail.hpp
index 25db5ded1..991d23a1d 100644
--- a/src/yapf/yapf_destrail.hpp
+++ b/src/yapf/yapf_destrail.hpp
@@ -38,7 +38,10 @@ public:
typedef typename Node::Key Key; ///< key to hash tables
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
/// Called by YAPF to detect if node ends in the desired destination
FORCEINLINE bool PfDetectDestination(Node& n)
@@ -73,7 +76,10 @@ public:
typedef typename Types::TrackFollower TrackFollower; ///< TrackFollower. Need to typedef for gcc 2.95
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
/// Called by YAPF to detect if node ends in the desired destination
FORCEINLINE bool PfDetectDestination(Node& n)
@@ -113,7 +119,10 @@ protected:
StationID m_dest_station_id;
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
void SetDestination(const Vehicle *v)
@@ -200,5 +209,4 @@ public:
}
};
-
#endif /* YAPF_DESTRAIL_HPP */
diff --git a/src/yapf/yapf_node_rail.hpp b/src/yapf/yapf_node_rail.hpp
index 4bb8f9868..4ccef7562 100644
--- a/src/yapf/yapf_node_rail.hpp
+++ b/src/yapf/yapf_node_rail.hpp
@@ -11,15 +11,41 @@ struct CYapfRailSegmentKey
uint32 m_value;
FORCEINLINE CYapfRailSegmentKey(const CYapfRailSegmentKey& src) : m_value(src.m_value) {}
- FORCEINLINE CYapfRailSegmentKey(const CYapfNodeKeyTrackDir& node_key) {Set(node_key);}
- FORCEINLINE void Set(const CYapfRailSegmentKey& src) {m_value = src.m_value;}
- FORCEINLINE void Set(const CYapfNodeKeyTrackDir& node_key) {m_value = (((int)node_key.m_tile) << 4) | node_key.m_td;}
+ FORCEINLINE CYapfRailSegmentKey(const CYapfNodeKeyTrackDir& node_key)
+ {
+ Set(node_key);
+ }
+
+ FORCEINLINE void Set(const CYapfRailSegmentKey& src)
+ {
+ m_value = src.m_value;
+ }
+
+ FORCEINLINE void Set(const CYapfNodeKeyTrackDir& node_key)
+ {
+ m_value = (((int)node_key.m_tile) << 4) | node_key.m_td;
+ }
+
+ FORCEINLINE int32 CalcHash() const
+ {
+ return m_value;
+ }
+
+ FORCEINLINE TileIndex GetTile() const
+ {
+ return (TileIndex)(m_value >> 4);
+ }
+
+ FORCEINLINE Trackdir GetTrackdir() const
+ {
+ return (Trackdir)(m_value & 0x0F);
+ }
- FORCEINLINE int32 CalcHash() const {return m_value;}
- FORCEINLINE TileIndex GetTile() const {return (TileIndex)(m_value >> 4);}
- FORCEINLINE Trackdir GetTrackdir() const {return (Trackdir)(m_value & 0x0F);}
- FORCEINLINE bool operator == (const CYapfRailSegmentKey& other) const {return m_value == other.m_value;}
+ FORCEINLINE bool operator == (const CYapfRailSegmentKey& other) const
+ {
+ return m_value == other.m_value;
+ }
void Dump(DumpTarget &dmp) const
{
@@ -122,10 +148,25 @@ struct CYapfRailSegment
, m_hash_next(NULL)
{}
- FORCEINLINE const Key& GetKey() const {return m_key;}
- FORCEINLINE TileIndex GetTile() const {return m_key.GetTile();}
- FORCEINLINE CYapfRailSegment *GetHashNext() {return m_hash_next;}
- FORCEINLINE void SetHashNext(CYapfRailSegment *next) {m_hash_next = next;}
+ FORCEINLINE const Key& GetKey() const
+ {
+ return m_key;
+ }
+
+ FORCEINLINE TileIndex GetTile() const
+ {
+ return m_key.GetTile();
+ }
+
+ FORCEINLINE CYapfRailSegment *GetHashNext()
+ {
+ return m_hash_next;
+ }
+
+ FORCEINLINE void SetHashNext(CYapfRailSegment *next)
+ {
+ m_hash_next = next;
+ }
void Dump(DumpTarget &dmp) const
{
@@ -175,9 +216,24 @@ struct CYapfRailNodeT
flags_u.flags_s.m_choice_seen |= is_choice;
}
- FORCEINLINE TileIndex GetLastTile() const {assert(m_segment != NULL); return m_segment->m_last_tile;}
- FORCEINLINE Trackdir GetLastTrackdir() const {assert(m_segment != NULL); return m_segment->m_last_td;}
- FORCEINLINE void SetLastTileTrackdir(TileIndex tile, Trackdir td) {assert(m_segment != NULL); m_segment->m_last_tile = tile; m_segment->m_last_td = td;}
+ FORCEINLINE TileIndex GetLastTile() const
+ {
+ assert(m_segment != NULL);
+ return m_segment->m_last_tile;
+ }
+
+ FORCEINLINE Trackdir GetLastTrackdir() const
+ {
+ assert(m_segment != NULL);
+ return m_segment->m_last_td;
+ }
+
+ FORCEINLINE void SetLastTileTrackdir(TileIndex tile, Trackdir td)
+ {
+ assert(m_segment != NULL);
+ m_segment->m_last_tile = tile;
+ m_segment->m_last_td = td;
+ }
template <class Tbase, class Tfunc, class Tpf>
bool IterateTiles(const Vehicle *v, Tpf &yapf, Tbase &obj, bool (Tfunc::*func)(TileIndex, Trackdir)) const
@@ -218,6 +274,4 @@ typedef CYapfRailNodeT<CYapfNodeKeyTrackDir> CYapfRailNodeTrackDir;
typedef CNodeList_HashTableT<CYapfRailNodeExitDir , 10, 12> CRailNodeListExitDir;
typedef CNodeList_HashTableT<CYapfRailNodeTrackDir, 12, 16> CRailNodeListTrackDir;
-
-
#endif /* YAPF_NODE_RAIL_HPP */
diff --git a/src/yapf/yapf_node_road.hpp b/src/yapf/yapf_node_road.hpp
index b4521b5fc..ed8723904 100644
--- a/src/yapf/yapf_node_road.hpp
+++ b/src/yapf/yapf_node_road.hpp
@@ -5,8 +5,6 @@
#ifndef YAPF_NODE_ROAD_HPP
#define YAPF_NODE_ROAD_HPP
-
-
/** Yapf Node for road YAPF */
template <class Tkey_>
struct CYapfRoadNodeT
@@ -33,6 +31,4 @@ typedef CYapfRoadNodeT<CYapfNodeKeyTrackDir> CYapfRoadNodeTrackDir;
typedef CNodeList_HashTableT<CYapfRoadNodeExitDir , 8, 12> CRoadNodeListExitDir;
typedef CNodeList_HashTableT<CYapfRoadNodeTrackDir, 10, 14> CRoadNodeListTrackDir;
-
-
#endif /* YAPF_NODE_ROAD_HPP */
diff --git a/src/yapf/yapf_rail.cpp b/src/yapf/yapf_rail.cpp
index 50a33b68b..c8789897f 100644
--- a/src/yapf/yapf_rail.cpp
+++ b/src/yapf/yapf_rail.cpp
@@ -15,8 +15,6 @@
int _total_pf_time_us = 0;
-
-
template <class Types>
class CYapfReserveTrack
{
@@ -27,7 +25,10 @@ public:
protected:
/// to access inherited pathfinder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
private:
TileIndex m_res_dest; ///< The reservation target tile
@@ -171,7 +172,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to move from the given node to the next tile. For each
@@ -180,12 +184,16 @@ public:
inline void PfFollowNode(Node& old_node)
{
TrackFollower F(Yapf().GetVehicle());
- if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir()))
+ if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir())) {
Yapf().AddMultipleNodes(&old_node, F);
+ }
}
/// return debug report character to identify the transportation type
- FORCEINLINE char TransportTypeChar() const {return 't';}
+ FORCEINLINE char TransportTypeChar() const
+ {
+ return 't';
+ }
static bool stFindNearestDepotTwoWay(const Vehicle *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_distance, int reverse_penalty, TileIndex *depot_tile, bool *reversed)
{
@@ -247,7 +255,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to move from the given node to the next tile. For each
@@ -256,12 +267,16 @@ public:
inline void PfFollowNode(Node& old_node)
{
TrackFollower F(Yapf().GetVehicle(), Yapf().GetCompatibleRailTypes());
- if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir()) && F.MaskReservedTracks())
+ if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir()) && F.MaskReservedTracks()) {
Yapf().AddMultipleNodes(&old_node, F);
+ }
}
/** Return debug report character to identify the transportation type */
- FORCEINLINE char TransportTypeChar() const {return 't';}
+ FORCEINLINE char TransportTypeChar() const
+ {
+ return 't';
+ }
static bool stFindNearestSafeTile(const Vehicle *v, TileIndex t1, Trackdir td, bool override_railtype)
{
@@ -329,7 +344,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to move from the given node to the next tile. For each
@@ -338,12 +356,16 @@ public:
inline void PfFollowNode(Node& old_node)
{
TrackFollower F(Yapf().GetVehicle());
- if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir()))
+ if (F.Follow(old_node.GetLastTile(), old_node.GetLastTrackdir())) {
Yapf().AddMultipleNodes(&old_node, F);
+ }
}
/// return debug report character to identify the transportation type
- FORCEINLINE char TransportTypeChar() const {return 't';}
+ FORCEINLINE char TransportTypeChar() const
+ {
+ return 't';
+ }
static Trackdir stChooseRailTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool *path_not_found, bool reserve_track, PBSTileInfo *target)
{
@@ -600,4 +622,7 @@ bool YapfRailFindNearestSafeTile(const Vehicle *v, TileIndex tile, Trackdir td,
/** if any track changes, this counter is incremented - that will invalidate segment cost cache */
int CSegmentCostCacheBase::s_rail_change_counter = 0;
-void YapfNotifyTrackLayoutChange(TileIndex tile, Track track) {CSegmentCostCacheBase::NotifyTrackLayoutChange(tile, track);}
+void YapfNotifyTrackLayoutChange(TileIndex tile, Track track)
+{
+ CSegmentCostCacheBase::NotifyTrackLayoutChange(tile, track);
+}
diff --git a/src/yapf/yapf_road.cpp b/src/yapf/yapf_road.cpp
index ed0be31f1..df70ffce7 100644
--- a/src/yapf/yapf_road.cpp
+++ b/src/yapf/yapf_road.cpp
@@ -20,7 +20,10 @@ public:
protected:
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
int SlopeCost(TileIndex tile, TileIndex next_tile, Trackdir trackdir)
{
@@ -51,12 +54,15 @@ protected:
switch (GetTileType(tile)) {
case MP_ROAD:
/* Increase the cost for level crossings */
- if (IsLevelCrossing(tile))
+ if (IsLevelCrossing(tile)) {
cost += Yapf().PfGetSettings().road_crossing_penalty;
+ }
break;
+
case MP_STATION:
- if (IsDriveThroughStopTile(tile))
+ if (IsDriveThroughStopTile(tile)) {
cost += Yapf().PfGetSettings().road_stop_penalty;
+ }
break;
default:
@@ -144,7 +150,10 @@ public:
typedef typename Node::Key Key; ///< key to hash tables
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
/// Called by YAPF to detect if node ends in the desired destination
FORCEINLINE bool PfDetectDestination(Node& n)
@@ -190,7 +199,10 @@ public:
protected:
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/// Called by YAPF to detect if node ends in the desired destination
@@ -246,7 +258,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
@@ -256,12 +271,16 @@ public:
inline void PfFollowNode(Node& old_node)
{
TrackFollower F(Yapf().GetVehicle());
- if (F.Follow(old_node.m_segment_last_tile, old_node.m_segment_last_td))
+ if (F.Follow(old_node.m_segment_last_tile, old_node.m_segment_last_td)) {
Yapf().AddMultipleNodes(&old_node, F);
+ }
}
/// return debug report character to identify the transportation type
- FORCEINLINE char TransportTypeChar() const {return 'r';}
+ FORCEINLINE char TransportTypeChar() const
+ {
+ return 'r';
+ }
static Trackdir stChooseRoadTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir)
{
@@ -433,14 +452,17 @@ 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 (_settings_game.pf.yapf.disable_node_optimization)
+ if (_settings_game.pf.yapf.disable_node_optimization) {
pfnDistanceToTile = &CYapfRoad1::stDistanceToTile; // Trackdir, allow 90-deg
+ }
// measure distance in YAPF units
uint dist = pfnDistanceToTile(v, tile);
// convert distance to tiles
- if (dist != UINT_MAX)
+ if (dist != UINT_MAX) {
dist = (dist + YAPF_TILE_LENGTH - 1) / YAPF_TILE_LENGTH;
+ }
+
return dist;
}
@@ -448,8 +470,9 @@ Depot *YapfFindNearestRoadDepot(const Vehicle *v)
{
TileIndex tile = v->tile;
Trackdir trackdir = GetVehicleTrackdir(v);
- if ((TrackStatusToTrackdirBits(GetTileTrackStatus(tile, TRANSPORT_ROAD, v->u.road.compatible_roadtypes)) & TrackdirToTrackdirBits(trackdir)) == 0)
+ if ((TrackStatusToTrackdirBits(GetTileTrackStatus(tile, TRANSPORT_ROAD, v->u.road.compatible_roadtypes)) & TrackdirToTrackdirBits(trackdir)) == 0) {
return NULL;
+ }
// handle the case when our vehicle is already in the depot tile
if (IsRoadDepotTile(tile)) {
@@ -462,8 +485,9 @@ Depot *YapfFindNearestRoadDepot(const Vehicle *v)
PfnFindNearestDepot pfnFindNearestDepot = &CYapfRoadAnyDepot2::stFindNearestDepot;
// check if non-default YAPF type should be used
- if (_settings_game.pf.yapf.disable_node_optimization)
+ if (_settings_game.pf.yapf.disable_node_optimization) {
pfnFindNearestDepot = &CYapfRoadAnyDepot1::stFindNearestDepot; // Trackdir, allow 90-deg
+ }
Depot *ret = pfnFindNearestDepot(v, tile, trackdir);
return ret;
diff --git a/src/yapf/yapf_ship.cpp b/src/yapf/yapf_ship.cpp
index 6f75cba17..fee0eed3c 100644
--- a/src/yapf/yapf_ship.cpp
+++ b/src/yapf/yapf_ship.cpp
@@ -18,7 +18,10 @@ public:
protected:
/// to access inherited path finder
- FORCEINLINE Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ FORCEINLINE Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to move from the given node to the next tile. For each
@@ -27,12 +30,16 @@ public:
inline void PfFollowNode(Node& old_node)
{
TrackFollower F(Yapf().GetVehicle());
- if (F.Follow(old_node.m_key.m_tile, old_node.m_key.m_td))
+ if (F.Follow(old_node.m_key.m_tile, old_node.m_key.m_td)) {
Yapf().AddMultipleNodes(&old_node, F);
+ }
}
/// return debug report character to identify the transportation type
- FORCEINLINE char TransportTypeChar() const {return 'w';}
+ FORCEINLINE char TransportTypeChar() const
+ {
+ return 'w';
+ }
static Trackdir ChooseShipTrack(const Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
{
@@ -94,7 +101,10 @@ public:
protected:
/// to access inherited path finder
- Tpf& Yapf() {return *static_cast<Tpf*>(this);}
+ Tpf& Yapf()
+ {
+ return *static_cast<Tpf*>(this);
+ }
public:
/** Called by YAPF to calculate the cost from the origin to the given node.
@@ -168,7 +178,7 @@ Trackdir YapfChooseShipTrack(const Vehicle *v, TileIndex tile, DiagDirection ent
}
/** performance measurement helper */
-void * NpfBeginInterval()
+void *NpfBeginInterval()
{
CPerformanceTimer& perf = *new CPerformanceTimer;
perf.Start();