From f52e27c688b00fd2b44887f0694717cd8449d31d Mon Sep 17 00:00:00 2001 From: rubidium Date: Tue, 1 Dec 2009 22:45:39 +0000 Subject: (svn r18364) -Codechange: move the pathfinders and their related files into a separate directory --- src/pathfinder/yapf/yapf_costbase.hpp | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/pathfinder/yapf/yapf_costbase.hpp (limited to 'src/pathfinder/yapf/yapf_costbase.hpp') diff --git a/src/pathfinder/yapf/yapf_costbase.hpp b/src/pathfinder/yapf/yapf_costbase.hpp new file mode 100644 index 000000000..39424dc10 --- /dev/null +++ b/src/pathfinder/yapf/yapf_costbase.hpp @@ -0,0 +1,42 @@ +/* $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 . + */ + +/** @file yapf_costbase.hpp Handling of cost determination. */ + +#ifndef YAPF_COSTBASE_HPP +#define YAPF_COSTBASE_HPP + +struct CYapfCostBase { + FORCEINLINE static bool stSlopeCost(TileIndex tile, Trackdir td) + { + 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 leaving it, no penalty + /* we are entering the bridge */ + Slope tile_slope = GetTileSlope(tile, NULL); + Axis axis = DiagDirToAxis(GetTunnelBridgeDirection(tile)); + return !HasBridgeFlatRamp(tile_slope, axis); + } else { + /* not bridge ramp */ + if (IsTunnelTile(tile)) return false; // tunnel entry/exit doesn't slope + Slope tile_slope = GetTileSlope(tile, NULL); + return IsUphillTrackdir(tile_slope, td); // slopes uphill => apply penalty + } + } + return false; + } +}; + +struct CostRailSettings { + /* look-ahead signal penalty */ +}; + + +#endif /* YAPF_COSTBASE_HPP */ -- cgit v1.2.3-54-g00ecf