/*
 * 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 <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
 */

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

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


template <> SQInteger PushClassName<ScriptGoal, ScriptType::GS>(HSQUIRRELVM vm) { sq_pushstring(vm, "GSGoal"); return 1; }

void SQGSGoal_Register(Squirrel &engine)
{
	DefSQClass<ScriptGoal, ScriptType::GS> SQGSGoal("GSGoal");
	SQGSGoal.PreRegister(engine, "GSObject");

	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.DefSQConst(engine, ScriptGoal::GOAL_INVALID, "GOAL_INVALID");

	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::IsValidGoal,            "IsValidGoal",            ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::IsValidGoalDestination, "IsValidGoalDestination", ".iii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::New,                    "New",                    ".i.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::Remove,                 "Remove",                 ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetDestination,         "SetDestination",         ".iii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetText,                "SetText",                ".i.");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetProgress,            "SetProgress",            ".i.");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::SetCompleted,           "SetCompleted",           ".ib");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::IsCompleted,            "IsCompleted",            ".i");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::Question,               "Question",               ".ii.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::QuestionClient,         "QuestionClient",         ".ii.ii");
	SQGSGoal.DefSQStaticMethod(engine, &ScriptGoal::CloseQuestion,          "CloseQuestion",          ".i");

	SQGSGoal.PostRegister(engine);
}
