From 15016e3511b075e999cdb0db45936d5e6b223aa4 Mon Sep 17 00:00:00 2001 From: yexo Date: Fri, 29 Jan 2010 23:56:42 +0000 Subject: (svn r18955) -Feature: [NoAI] introduce GetBuildCost functions in several classes to get easier cost estimations before you start building --- src/ai/api/ai_rail.hpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/ai/api/ai_rail.hpp') diff --git a/src/ai/api/ai_rail.hpp b/src/ai/api/ai_rail.hpp index 2b662bc38..7170412ba 100644 --- a/src/ai/api/ai_rail.hpp +++ b/src/ai/api/ai_rail.hpp @@ -81,6 +81,17 @@ public: SIGNALTYPE_NONE = 0xFF, //!< No signal. }; + /** + * Types of rail-related objects in the game. + */ + enum BuildType { + BT_TRACK, //!< Build a track + BT_SIGNAL, //!< Build a signal + BT_DEPOT, //!< Build a depot + BT_STATION, //!< Build a station + BT_WAYPOINT, //!< Build a rail waypoint + }; + /** * Checks whether the given tile is actually a tile with rail that can be * used to traverse a tile. This excludes rail depots but includes @@ -419,6 +430,15 @@ public: * @return Whether the signal has been/can be removed or not. */ static bool RemoveSignal(TileIndex tile, TileIndex front); + + /** + * Get the baseprice of building a rail-related object. + * @param railtype the railtype that is build (on) + * @param build_type the type of object to build + * @pre IsRailTypeAvailable(railtype) + * @return The baseprice of building the given object. + */ + static Money GetBuildCost(RailType railtype, BuildType build_type); }; #endif /* AI_RAIL_HPP */ -- cgit v1.2.3-54-g00ecf