summaryrefslogtreecommitdiff
path: root/yapf/yapf_node_rail.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'yapf/yapf_node_rail.hpp')
-rw-r--r--yapf/yapf_node_rail.hpp113
1 files changed, 0 insertions, 113 deletions
diff --git a/yapf/yapf_node_rail.hpp b/yapf/yapf_node_rail.hpp
deleted file mode 100644
index df0186989..000000000
--- a/yapf/yapf_node_rail.hpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/* $Id$ */
-
-#ifndef YAPF_NODE_RAIL_HPP
-#define YAPF_NODE_RAIL_HPP
-
-/** key for cached segment cost for rail YAPF */
-struct CYapfRailSegmentKey
-{
- uint32 m_value;
-
- FORCEINLINE CYapfRailSegmentKey(const CYapfRailSegmentKey& src) : m_value(src.m_value) {}
- FORCEINLINE CYapfRailSegmentKey(const CYapfNodeKeyExitDir& node_key) {Set(node_key);}
-
- FORCEINLINE void Set(const CYapfRailSegmentKey& src) {m_value = src.m_value;}
- FORCEINLINE void Set(const CYapfNodeKeyExitDir& node_key) {m_value = (((int)node_key.m_tile) << 2) | node_key.m_exitdir;}
-
- FORCEINLINE int32 CalcHash() const {return m_value;}
- FORCEINLINE TileIndex GetTile() const {return (TileIndex)(m_value >> 2);}
- FORCEINLINE DiagDirection GetExitDir() const {return (DiagDirection)(m_value & 3);}
- FORCEINLINE bool operator == (const CYapfRailSegmentKey& other) const {return m_value == other.m_value;}
-};
-
-/** cached segment cost for rail YAPF */
-struct CYapfRailSegment
-{
- typedef CYapfRailSegmentKey Key;
-
- CYapfRailSegmentKey m_key;
- TileIndex m_last_tile;
- Trackdir m_last_td;
- int m_cost;
- TileIndex m_last_signal_tile;
- Trackdir m_last_signal_td;
- CYapfRailSegment* m_hash_next;
- union {
- byte m_flags;
- struct {
- bool m_end_of_line : 1;
- } flags_s;
- } flags_u;
- byte m_reserve[3];
-
- FORCEINLINE CYapfRailSegment(const CYapfRailSegmentKey& key)
- : m_key(key)
- , m_last_tile(INVALID_TILE)
- , m_last_td(INVALID_TRACKDIR)
- , m_cost(-1)
- , m_last_signal_tile(INVALID_TILE)
- , m_last_signal_td(INVALID_TRACKDIR)
- , m_hash_next(NULL)
- {
- flags_u.m_flags = 0;
- }
-
- FORCEINLINE const Key& GetKey() const {return m_key;}
- FORCEINLINE TileIndex GetTile() const {return m_key.GetTile();}
- FORCEINLINE DiagDirection GetExitDir() const {return m_key.GetExitDir();}
- FORCEINLINE CYapfRailSegment* GetHashNext() {return m_hash_next;}
- FORCEINLINE void SetHashNext(CYapfRailSegment* next) {m_hash_next = next;}
-};
-
-/** Yapf Node for rail YAPF */
-template <class Tkey_>
-struct CYapfRailNodeT
- : CYapfNodeT<Tkey_, CYapfRailNodeT<Tkey_> >
-{
- typedef CYapfNodeT<Tkey_, CYapfRailNodeT<Tkey_> > base;
- typedef CYapfRailSegment CachedData;
-
- CYapfRailSegment *m_segment;
- uint16 m_num_signals_passed;
- union {
- uint32 m_inherited_flags;
- struct {
- bool m_targed_seen : 1;
- bool m_choice_seen : 1;
- bool m_last_signal_was_red : 1;
- } flags_s;
- } flags_u;
- SignalType m_last_red_signal_type;
-
- FORCEINLINE void Set(CYapfRailNodeT* parent, TileIndex tile, Trackdir td, bool is_choice)
- {
- base::Set(parent, tile, td, is_choice);
- m_segment = NULL;
- if (parent == NULL) {
- m_num_signals_passed = 0;
- flags_u.m_inherited_flags = 0;
- m_last_red_signal_type = SIGTYPE_NORMAL;
- } else {
- m_num_signals_passed = parent->m_num_signals_passed;
- flags_u.m_inherited_flags = parent->flags_u.m_inherited_flags;
- m_last_red_signal_type = parent->m_last_red_signal_type;
- }
- 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;}
-};
-
-// now define two major node types (that differ by key type)
-typedef CYapfRailNodeT<CYapfNodeKeyExitDir> CYapfRailNodeExitDir;
-typedef CYapfRailNodeT<CYapfNodeKeyTrackDir> CYapfRailNodeTrackDir;
-
-// Default NodeList types
-typedef CNodeList_HashTableT<CYapfRailNodeExitDir , 10, 12> CRailNodeListExitDir;
-typedef CNodeList_HashTableT<CYapfRailNodeTrackDir, 12, 16> CRailNodeListTrackDir;
-
-
-
-#endif /* YAPF_NODE_RAIL_HPP */