00001 /* $Id: ai_industrytype.hpp 20563 2010-08-19 15:37:28Z yexo $ */ 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_INDUSTRYTYPE_HPP 00013 #define AI_INDUSTRYTYPE_HPP 00014 00015 #include "ai_object.hpp" 00016 #include "ai_error.hpp" 00017 #include "ai_list.hpp" 00018 00022 class AIIndustryType : public AIObject { 00023 public: 00025 static const char *GetClassName() { return "AIIndustryType"; } 00026 00030 enum SpecialIndustryType { 00031 INDUSTRYTYPE_UNKNOWN = 0xFE, 00032 INDUSTRYTYPE_TOWN = 0xFF, 00033 }; 00034 00040 static bool IsValidIndustryType(IndustryType industry_type); 00041 00048 static char *GetName(IndustryType industry_type); 00049 00058 static AIList *GetProducedCargo(IndustryType industry_type); 00059 00068 static AIList *GetAcceptedCargo(IndustryType industry_type); 00069 00076 static bool IsRawIndustry(IndustryType industry_type); 00077 00084 static bool ProductionCanIncrease(IndustryType industry_type); 00085 00092 static Money GetConstructionCost(IndustryType industry_type); 00093 00101 static bool CanBuildIndustry(IndustryType industry_type); 00102 00111 static bool CanProspectIndustry(IndustryType industry_type); 00112 00120 static bool BuildIndustry(IndustryType industry_type, TileIndex tile); 00121 00131 static bool ProspectIndustry(IndustryType industry_type); 00132 00139 static bool IsBuiltOnWater(IndustryType industry_type); 00140 00147 static bool HasHeliport(IndustryType industry_type); 00148 00155 static bool HasDock(IndustryType industry_type); 00156 }; 00157 00158 #endif /* AI_INDUSTRYTYPE_HPP */