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 SCRIPT_GOAL_HPP 00013 #define SCRIPT_GOAL_HPP 00014 00015 #include "script_object.hpp" 00016 #include "script_company.hpp" 00017 #include "../../goal_type.h" 00018 00023 class ScriptGoal : public ScriptObject { 00024 public: 00028 enum GoalID { 00029 /* Note: these values represent part of the in-game GoalID enum */ 00030 GOAL_INVALID = ::INVALID_GOALTYPE, 00031 }; 00032 00036 enum GoalType { 00037 /* Note: these values represent part of the in-game GoalType enum */ 00038 GT_NONE = ::GT_NONE, 00039 GT_TILE = ::GT_TILE, 00040 GT_INDUSTRY = ::GT_INDUSTRY, 00041 GT_TOWN = ::GT_TOWN, 00042 GT_COMPANY = ::GT_COMPANY, 00043 }; 00044 00050 static bool IsValidGoal(GoalID goal_id); 00051 00062 static GoalID New(ScriptCompany::CompanyID company, Text *goal, GoalType type, uint32 destination); 00063 00070 static bool Remove(GoalID goal_id); 00071 }; 00072 00073 #endif /* SCRIPT_GOAL_HPP */