00001 /* $Id$ */ 00002 00003 /* 00004 * This file is part of OpenTTD. 00005 * 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. 00006 * 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. 00007 * 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/>. 00008 */ 00009 00012 #ifndef AI_INDUSTRY_HPP 00013 #define AI_INDUSTRY_HPP 00014 00015 #include "ai_object.hpp" 00016 00020 class AIIndustry : public AIObject { 00021 public: 00022 static const char *GetClassName() { return "AIIndustry"; } 00023 00030 static int32 GetIndustryCount(); 00031 00037 static bool IsValidIndustry(IndustryID industry_id); 00038 00045 static char *GetName(IndustryID industry_id); 00046 00055 static bool IsCargoAccepted(IndustryID industry_id, CargoID cargo_id); 00056 00065 static int32 GetStockpiledCargo(IndustryID industry_id, CargoID cargo_id); 00066 00075 static int32 GetLastMonthProduction(IndustryID industry_id, CargoID cargo_id); 00076 00085 static int32 GetLastMonthTransported(IndustryID industry_id, CargoID cargo_id); 00086 00095 static int32 GetLastMonthTransportedPercentage(IndustryID industry_id, CargoID cargo_id); 00096 00103 static TileIndex GetLocation(IndustryID industry_id); 00104 00113 static int32 GetAmountOfStationsAround(IndustryID industry_id); 00114 00124 static int32 GetDistanceManhattanToTile(IndustryID industry_id, TileIndex tile); 00125 00135 static int32 GetDistanceSquareToTile(IndustryID industry_id, TileIndex tile); 00136 00143 static bool IsBuiltOnWater(IndustryID industry_id); 00144 00151 static bool HasHeliport(IndustryID industry_id); 00152 00160 static TileIndex GetHeliportLocation(IndustryID industry_id); 00161 00168 static bool HasDock(IndustryID industry_id); 00169 00177 static TileIndex GetDockLocation(IndustryID industry_id); 00178 00185 static IndustryType GetIndustryType(IndustryID industry_id); 00186 }; 00187 00188 #endif /* AI_INDUSTRY_HPP */