/* $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 <http://www.gnu.org/licenses/>.
 */

/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */

#include "../script_goal.hpp"
#include "../template/template_goal.hpp.sq"


template <> const char *GetClassName<ScriptGoal, ST_GS>() { return "GSGoal"; }

void SQGSGoal_Register(Squirrel *engine)
{
	DefSQClass<ScriptGoal, ST_GS> SQGSGoal("GSGoal");
	SQGSGoal.PreRegister(engine);
	SQGSGoal.AddConstructor<void (ScriptGoal::*)(), 1>(engine, "x");

	SQGSGoal.DefSQConst(engine, ScriptGoal::GOAL_INVALID,     "GOAL_INVALID");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_NONE,          "GT_NONE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_TILE,          "GT_TILE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_INDUSTRY,      "GT_INDUSTRY");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_TOWN,          "GT_TOWN");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_COMPANY,       "GT_COMPANY");
	SQGSGoal.DefSQConst(engine, ScriptGoal::GT_STORY_PAGE,    "GT_STORY_PAGE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::QT_QUESTION,      "QT_QUESTION");
	SQGSGoal.DefSQConst(engine, ScriptGoal::QT_INFORMATION,   "QT_INFORMATION");
	SQGSGoal.DefSQConst(engine, ScriptGoal::QT_WARNING,       "QT_WARNING");
	SQGSGoal.DefSQConst(engine, ScriptGoal::QT_ERROR,         "QT_ERROR");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_CANCEL,    "BUTTON_CANCEL");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_OK,        "BUTTON_OK");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_NO,        "BUTTON_NO");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_YES,       "BUTTON_YES");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_DECLINE,   "BUTTON_DECLINE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_ACCEPT,    "BUTTON_ACCEPT");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_IGNORE,    "BUTTON_IGNORE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_RETRY,     "BUTTON_RETRY");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_PREVIOUS,  "BUTTON_PREVIOUS");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_NEXT,      "BUTTON_NEXT");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_STOP,      "BUTTON_STOP");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_START,     "BUTTON_START");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_GO,        "BUTTON_GO");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_CONTINUE,  "BUTTON_CONTINUE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_RESTART,   "BUTTON_RESTART");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_POSTPONE,  "BUTTON_POSTPONE");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_SURRENDER, "BUTTON_SURRENDER");
	SQGSGoal.DefSQConst(engine, ScriptGoal::BUTTON_CLOSE,     "BUTTON_CLOSE");

	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::IsValidGoal,    "IsValidGoal",    2, ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::New,            "New",            5, ".i.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::Remove,         "Remove",         2, ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetText,        "SetText",        3, ".i.");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetProgress,    "SetProgress",    3, ".i.");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetCompleted,   "SetCompleted",   3, ".ib");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::IsCompleted,    "IsCompleted",    2, ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::Question,       "Question",       6, ".ii.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::QuestionClient, "QuestionClient", 6, ".ii.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::CloseQuestion,  "CloseQuestion",  2, ".i");

	SQGSGoal.PostRegister(engine);
}
