yapf/yapf_node_road.hpp
changeset 3900 2c84ed52709d
child 3978 30b43c605f21
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/yapf/yapf_node_road.hpp	Sat May 27 16:12:16 2006 +0000
@@ -0,0 +1,36 @@
+/* $Id$ */
+
+#ifndef  YAPF_NODE_ROAD_HPP
+#define  YAPF_NODE_ROAD_HPP
+
+
+
+/** Yapf Node for road YAPF */
+template <class Tkey_>
+struct CYapfRoadNodeT
+	: CYapfNodeT<Tkey_, CYapfRoadNodeT<Tkey_> >
+{
+	typedef CYapfNodeT<Tkey_, CYapfRoadNodeT<Tkey_> > base;
+
+	TileIndex       m_segment_last_tile;
+	Trackdir        m_segment_last_td;
+
+	void Set(CYapfRoadNodeT* parent, TileIndex tile, Trackdir td)
+	{
+		base::Set(parent, tile, td);
+		m_segment_last_tile = tile;
+		m_segment_last_td = td;
+	}
+};
+
+// now define two major node types (that differ by key type)
+typedef CYapfRoadNodeT<CYapfNodeKeyExitDir>  CYapfRoadNodeExitDir;
+typedef CYapfRoadNodeT<CYapfNodeKeyTrackDir> CYapfRoadNodeTrackDir;
+
+// Default NodeList types
+typedef CNodeList_HashTableT<CYapfRoadNodeExitDir , 8, 12> CRoadNodeListExitDir;
+typedef CNodeList_HashTableT<CYapfRoadNodeTrackDir, 10, 14> CRoadNodeListTrackDir;
+
+
+
+#endif /* YAPF_NODE_ROAD_HPP */