diff options
author | rubidium <rubidium@openttd.org> | 2009-12-01 22:45:39 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-12-01 22:45:39 +0000 |
commit | f52e27c688b00fd2b44887f0694717cd8449d31d (patch) | |
tree | 1268b38bfce0d85fd3868c19fb1454460ef135e7 /src/pathfinder/yapf/yapf_node_road.hpp | |
parent | a7beae873310c67c8761994269627ebeabf08996 (diff) | |
download | openttd-f52e27c688b00fd2b44887f0694717cd8449d31d.tar.xz |
(svn r18364) -Codechange: move the pathfinders and their related files into a separate directory
Diffstat (limited to 'src/pathfinder/yapf/yapf_node_road.hpp')
-rw-r--r-- | src/pathfinder/yapf/yapf_node_road.hpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/pathfinder/yapf/yapf_node_road.hpp b/src/pathfinder/yapf/yapf_node_road.hpp new file mode 100644 index 000000000..c84755b5f --- /dev/null +++ b/src/pathfinder/yapf/yapf_node_road.hpp @@ -0,0 +1,41 @@ +/* $Id$ */ + +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. + */ + +/** @file yapf_node_road.hpp Node tailored for road pathfinding. */ + +#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, bool is_choice) + { + base::Set(parent, tile, td, is_choice); + 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 */ |