/* $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_company.hpp"
#include "../template/template_company.hpp.sq"


template <> const char *GetClassName<ScriptCompany, ST_AI>() { return "AICompany"; }

void SQAICompany_Register(Squirrel *engine)
{
	DefSQClass<ScriptCompany, ST_AI> SQAICompany("AICompany");
	SQAICompany.PreRegister(engine);
	SQAICompany.AddConstructor<void (ScriptCompany::*)(), 1>(engine, "x");

	SQAICompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER,             "CURRENT_QUARTER");
	SQAICompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER,            "EARLIEST_QUARTER");
	SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST,               "COMPANY_FIRST");
	SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST,                "COMPANY_LAST");
	SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID,             "COMPANY_INVALID");
	SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF,                "COMPANY_SELF");
	SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR,           "COMPANY_SPECTATOR");
	SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_MALE,                 "GENDER_MALE");
	SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE,               "GENDER_FEMALE");
	SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID,              "GENDER_INVALID");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_DEFAULT,                  "LS_DEFAULT");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_STEAM,                    "LS_STEAM");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_DIESEL,                   "LS_DIESEL");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_ELECTRIC,                 "LS_ELECTRIC");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_MONORAIL,                 "LS_MONORAIL");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_MAGLEV,                   "LS_MAGLEV");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_DMU,                      "LS_DMU");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_EMU,                      "LS_EMU");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_STEAM,    "LS_PASSENGER_WAGON_STEAM");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_DIESEL,   "LS_PASSENGER_WAGON_DIESEL");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_ELECTRIC, "LS_PASSENGER_WAGON_ELECTRIC");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MONORAIL, "LS_PASSENGER_WAGON_MONORAIL");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MAGLEV,   "LS_PASSENGER_WAGON_MAGLEV");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_WAGON,            "LS_FREIGHT_WAGON");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_BUS,                      "LS_BUS");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_TRUCK,                    "LS_TRUCK");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_SHIP,           "LS_PASSENGER_SHIP");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_SHIP,             "LS_FREIGHT_SHIP");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_HELICOPTER,               "LS_HELICOPTER");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_SMALL_PLANE,              "LS_SMALL_PLANE");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_LARGE_PLANE,              "LS_LARGE_PLANE");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_TRAM,           "LS_PASSENGER_TRAM");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_TRAM,             "LS_FREIGHT_TRAM");
	SQAICompany.DefSQConst(engine, ScriptCompany::LS_INVALID,                  "LS_INVALID");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_BLUE,            "COLOUR_DARK_BLUE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PALE_GREEN,           "COLOUR_PALE_GREEN");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PINK,                 "COLOUR_PINK");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_YELLOW,               "COLOUR_YELLOW");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_RED,                  "COLOUR_RED");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_LIGHT_BLUE,           "COLOUR_LIGHT_BLUE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREEN,                "COLOUR_GREEN");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_GREEN,           "COLOUR_DARK_GREEN");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BLUE,                 "COLOUR_BLUE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_CREAM,                "COLOUR_CREAM");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_MAUVE,                "COLOUR_MAUVE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PURPLE,               "COLOUR_PURPLE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_ORANGE,               "COLOUR_ORANGE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BROWN,                "COLOUR_BROWN");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREY,                 "COLOUR_GREY");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_WHITE,                "COLOUR_WHITE");
	SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_INVALID,              "COLOUR_INVALID");

	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::ResolveCompanyID,              "ResolveCompanyID",              2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::IsMine,                        "IsMine",                        2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetName,                       "SetName",                       2, "..");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetName,                       "GetName",                       2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPresidentName,              "SetPresidentName",              2, "..");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPresidentName,              "GetPresidentName",              2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPresidentGender,            "SetPresidentGender",            2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPresidentGender,            "GetPresidentGender",            2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetLoanAmount,                 "SetLoanAmount",                 2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetMinimumLoanAmount,          "SetMinimumLoanAmount",          2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetLoanAmount,                 "GetLoanAmount",                 1, ".");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetMaxLoanAmount,              "GetMaxLoanAmount",              1, ".");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetLoanInterval,               "GetLoanInterval",               1, ".");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetBankBalance,                "GetBankBalance",                2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyIncome,            "GetQuarterlyIncome",            3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyExpenses,          "GetQuarterlyExpenses",          3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyCargoDelivered,    "GetQuarterlyCargoDelivered",    3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyPerformanceRating, "GetQuarterlyPerformanceRating", 3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetQuarterlyCompanyValue,      "GetQuarterlyCompanyValue",      3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::BuildCompanyHQ,                "BuildCompanyHQ",                2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetCompanyHQ,                  "GetCompanyHQ",                  2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewStatus,            "SetAutoRenewStatus",            2, ".b");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewStatus,            "GetAutoRenewStatus",            2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewMonths,            "SetAutoRenewMonths",            2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMonths,            "GetAutoRenewMonths",            2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewMoney,             "SetAutoRenewMoney",             2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMoney,             "GetAutoRenewMoney",             2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPrimaryLiveryColour,        "SetPrimaryLiveryColour",        3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetSecondaryLiveryColour,      "SetSecondaryLiveryColour",      3, ".ii");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPrimaryLiveryColour,        "GetPrimaryLiveryColour",        2, ".i");
	SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetSecondaryLiveryColour,      "GetSecondaryLiveryColour",      2, ".i");

	SQAICompany.PostRegister(engine);
}
