12 #include "../stdafx.h" 15 #include "../script/squirrel_class.hpp" 17 #include "../script/script_storage.hpp" 18 #include "../ai/ai_gui.hpp" 27 #include "../script/api/game/game_accounting.hpp.sq" 28 #include "../script/api/game/game_admin.hpp.sq" 29 #include "../script/api/game/game_airport.hpp.sq" 30 #include "../script/api/game/game_base.hpp.sq" 31 #include "../script/api/game/game_basestation.hpp.sq" 32 #include "../script/api/game/game_bridge.hpp.sq" 33 #include "../script/api/game/game_bridgelist.hpp.sq" 34 #include "../script/api/game/game_cargo.hpp.sq" 35 #include "../script/api/game/game_cargolist.hpp.sq" 36 #include "../script/api/game/game_cargomonitor.hpp.sq" 37 #include "../script/api/game/game_company.hpp.sq" 38 #include "../script/api/game/game_companymode.hpp.sq" 39 #include "../script/api/game/game_controller.hpp.sq" 40 #include "../script/api/game/game_date.hpp.sq" 41 #include "../script/api/game/game_depotlist.hpp.sq" 42 #include "../script/api/game/game_engine.hpp.sq" 43 #include "../script/api/game/game_enginelist.hpp.sq" 44 #include "../script/api/game/game_error.hpp.sq" 45 #include "../script/api/game/game_event.hpp.sq" 46 #include "../script/api/game/game_event_types.hpp.sq" 47 #include "../script/api/game/game_execmode.hpp.sq" 48 #include "../script/api/game/game_game.hpp.sq" 49 #include "../script/api/game/game_gamesettings.hpp.sq" 50 #include "../script/api/game/game_goal.hpp.sq" 51 #include "../script/api/game/game_industry.hpp.sq" 52 #include "../script/api/game/game_industrylist.hpp.sq" 53 #include "../script/api/game/game_industrytype.hpp.sq" 54 #include "../script/api/game/game_industrytypelist.hpp.sq" 55 #include "../script/api/game/game_infrastructure.hpp.sq" 56 #include "../script/api/game/game_list.hpp.sq" 57 #include "../script/api/game/game_log.hpp.sq" 58 #include "../script/api/game/game_map.hpp.sq" 59 #include "../script/api/game/game_marine.hpp.sq" 60 #include "../script/api/game/game_news.hpp.sq" 61 #include "../script/api/game/game_order.hpp.sq" 62 #include "../script/api/game/game_rail.hpp.sq" 63 #include "../script/api/game/game_railtypelist.hpp.sq" 64 #include "../script/api/game/game_road.hpp.sq" 65 #include "../script/api/game/game_sign.hpp.sq" 66 #include "../script/api/game/game_signlist.hpp.sq" 67 #include "../script/api/game/game_station.hpp.sq" 68 #include "../script/api/game/game_stationlist.hpp.sq" 69 #include "../script/api/game/game_story_page.hpp.sq" 70 #include "../script/api/game/game_storypageelementlist.hpp.sq" 71 #include "../script/api/game/game_storypagelist.hpp.sq" 72 #include "../script/api/game/game_subsidy.hpp.sq" 73 #include "../script/api/game/game_subsidylist.hpp.sq" 74 #include "../script/api/game/game_testmode.hpp.sq" 75 #include "../script/api/game/game_text.hpp.sq" 76 #include "../script/api/game/game_tile.hpp.sq" 77 #include "../script/api/game/game_tilelist.hpp.sq" 78 #include "../script/api/game/game_town.hpp.sq" 79 #include "../script/api/game/game_townlist.hpp.sq" 80 #include "../script/api/game/game_tunnel.hpp.sq" 81 #include "../script/api/game/game_vehicle.hpp.sq" 82 #include "../script/api/game/game_vehiclelist.hpp.sq" 83 #include "../script/api/game/game_viewport.hpp.sq" 84 #include "../script/api/game/game_waypoint.hpp.sq" 85 #include "../script/api/game/game_waypointlist.hpp.sq" 86 #include "../script/api/game/game_window.hpp.sq" 88 #include "../safeguards.h" 91 GameInstance::GameInstance() :
100 SQGSController_Register(this->
engine);
110 SQGSList_Register(this->
engine);
111 SQGSAccounting_Register(this->
engine);
112 SQGSAdmin_Register(this->
engine);
113 SQGSAirport_Register(this->
engine);
114 SQGSBase_Register(this->
engine);
115 SQGSBaseStation_Register(this->
engine);
116 SQGSBridge_Register(this->
engine);
117 SQGSBridgeList_Register(this->
engine);
118 SQGSBridgeList_Length_Register(this->
engine);
119 SQGSCargo_Register(this->
engine);
120 SQGSCargoList_Register(this->
engine);
121 SQGSCargoList_IndustryAccepting_Register(this->
engine);
122 SQGSCargoList_IndustryProducing_Register(this->
engine);
123 SQGSCargoList_StationAccepting_Register(this->
engine);
124 SQGSCargoMonitor_Register(this->
engine);
125 SQGSCompany_Register(this->
engine);
126 SQGSCompanyMode_Register(this->
engine);
127 SQGSDate_Register(this->
engine);
128 SQGSDepotList_Register(this->
engine);
129 SQGSEngine_Register(this->
engine);
130 SQGSEngineList_Register(this->
engine);
131 SQGSError_Register(this->
engine);
132 SQGSEvent_Register(this->
engine);
133 SQGSEventAdminPort_Register(this->
engine);
134 SQGSEventCompanyBankrupt_Register(this->
engine);
135 SQGSEventCompanyInTrouble_Register(this->
engine);
136 SQGSEventCompanyMerger_Register(this->
engine);
137 SQGSEventCompanyNew_Register(this->
engine);
138 SQGSEventCompanyTown_Register(this->
engine);
139 SQGSEventController_Register(this->
engine);
140 SQGSEventExclusiveTransportRights_Register(this->
engine);
141 SQGSEventGoalQuestionAnswer_Register(this->
engine);
142 SQGSEventIndustryClose_Register(this->
engine);
143 SQGSEventIndustryOpen_Register(this->
engine);
144 SQGSEventRoadReconstruction_Register(this->
engine);
145 SQGSEventStationFirstVehicle_Register(this->
engine);
146 SQGSEventSubsidyAwarded_Register(this->
engine);
147 SQGSEventSubsidyExpired_Register(this->
engine);
148 SQGSEventSubsidyOffer_Register(this->
engine);
149 SQGSEventSubsidyOfferExpired_Register(this->
engine);
150 SQGSEventTownFounded_Register(this->
engine);
151 SQGSEventVehicleCrashed_Register(this->
engine);
152 SQGSEventWindowWidgetClick_Register(this->
engine);
153 SQGSExecMode_Register(this->
engine);
154 SQGSGame_Register(this->
engine);
155 SQGSGameSettings_Register(this->
engine);
156 SQGSGoal_Register(this->
engine);
157 SQGSIndustry_Register(this->
engine);
158 SQGSIndustryList_Register(this->
engine);
159 SQGSIndustryList_CargoAccepting_Register(this->
engine);
160 SQGSIndustryList_CargoProducing_Register(this->
engine);
161 SQGSIndustryType_Register(this->
engine);
162 SQGSIndustryTypeList_Register(this->
engine);
163 SQGSInfrastructure_Register(this->
engine);
164 SQGSLog_Register(this->
engine);
165 SQGSMap_Register(this->
engine);
166 SQGSMarine_Register(this->
engine);
167 SQGSNews_Register(this->
engine);
168 SQGSOrder_Register(this->
engine);
169 SQGSRail_Register(this->
engine);
170 SQGSRailTypeList_Register(this->
engine);
171 SQGSRoad_Register(this->
engine);
172 SQGSSign_Register(this->
engine);
173 SQGSSignList_Register(this->
engine);
174 SQGSStation_Register(this->
engine);
175 SQGSStationList_Register(this->
engine);
176 SQGSStationList_Cargo_Register(this->
engine);
177 SQGSStationList_CargoPlanned_Register(this->
engine);
178 SQGSStationList_CargoPlannedByFrom_Register(this->
engine);
179 SQGSStationList_CargoPlannedByVia_Register(this->
engine);
180 SQGSStationList_CargoPlannedFromByVia_Register(this->
engine);
181 SQGSStationList_CargoPlannedViaByFrom_Register(this->
engine);
182 SQGSStationList_CargoWaiting_Register(this->
engine);
183 SQGSStationList_CargoWaitingByFrom_Register(this->
engine);
184 SQGSStationList_CargoWaitingByVia_Register(this->
engine);
185 SQGSStationList_CargoWaitingFromByVia_Register(this->
engine);
186 SQGSStationList_CargoWaitingViaByFrom_Register(this->
engine);
187 SQGSStationList_Vehicle_Register(this->
engine);
188 SQGSStoryPage_Register(this->
engine);
189 SQGSStoryPageElementList_Register(this->
engine);
190 SQGSStoryPageList_Register(this->
engine);
191 SQGSSubsidy_Register(this->
engine);
192 SQGSSubsidyList_Register(this->
engine);
193 SQGSTestMode_Register(this->
engine);
194 SQGSText_Register(this->
engine);
195 SQGSTile_Register(this->
engine);
196 SQGSTileList_Register(this->
engine);
197 SQGSTileList_IndustryAccepting_Register(this->
engine);
198 SQGSTileList_IndustryProducing_Register(this->
engine);
199 SQGSTileList_StationType_Register(this->
engine);
200 SQGSTown_Register(this->
engine);
201 SQGSTownEffectList_Register(this->
engine);
202 SQGSTownList_Register(this->
engine);
203 SQGSTunnel_Register(this->
engine);
204 SQGSVehicle_Register(this->
engine);
205 SQGSVehicleList_Register(this->
engine);
206 SQGSVehicleList_Depot_Register(this->
engine);
207 SQGSVehicleList_SharedOrders_Register(this->
engine);
208 SQGSVehicleList_Station_Register(this->
engine);
209 SQGSViewport_Register(this->
engine);
210 SQGSWaypoint_Register(this->
engine);
211 SQGSWaypointList_Register(this->
engine);
212 SQGSWaypointList_Vehicle_Register(this->
engine);
213 SQGSWindow_Register(this->
engine);
217 if (!this->LoadCompatibilityScripts(this->versionAPI,
GAME_DIR)) this->Died();
240 if (info->
GetURL() != NULL) {
241 ScriptLog::Info(
"Please report the error to the following URL:");
242 ScriptLog::Info(info->
GetURL());
int version
Version of the script.
GameConfig stores the configuration settings of every Game.
void CcGame(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
DoCommand callback function for all commands executed by Game Scripts.
void RegisterGameTranslation(Squirrel *engine)
Register the current translation to the Squirrel engine.
void RegisterAPI()
Register all API functions to the VM.
void Died()
Tell the script it died.
Base functions regarding game texts.
Subdirectory for all game scripts.
void Continue()
A script in multiplayer waits for the server to handle his DoCommand.
CommandCallback * GetDoCommandCallback()
Get the callback handling DoCommands in case of networking.
static GameConfig * GetConfig(ScriptSettingSource source=SSS_DEFAULT)
Get the config of a company.
Common return value for all commands.
All static information from an Game like name, version, etc.
The object is owned by a superuser / goal script.
const char * GetMainScript() const
Get the filename of the main.nut script.
void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel wl, int x=0, int y=0, const GRFFile *textref_stack_grffile=NULL, uint textref_stack_size=0, const uint32 *textref_stack=NULL)
Display an error message in a window.
All static information from an Script like name, version, etc.
The GameInstance tracks games.
Runtime information about a script like a pointer to the squirrel vm and the current state...
static class GameLibrary * FindLibrary(const char *library, int version)
Wrapper function for GameScanner::FindLibrary.
ScriptInfo * FindLibrary(const char *library, int version)
Find a library.
const char * GetAPIVersion() const
Get the API version this Game is written for.
const char * GetURL() const
Get the website for this script.
static class GameInfo * GetInfo()
Get the current GameInfo.
Window * ShowAIDebugWindow(CompanyID show_company)
Open the AI debug window and select the given company.
const char * name
Full name of the script.
GameInfo keeps track of all information of an Game, like Author, Description, ... ...
int GetSetting(const char *name)
Get the value of a setting of the current instance.
static class GameInstance * GetGameInstance()
Get the current GameScript instance.
uint32 TileIndex
The index/ID of a Tile.
void DoCommandCallback(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
DoCommand callback function for all commands executed by scripts.
virtual void RegisterAPI()
Register all API functions to the VM.
void Initialize(const char *main_script, const char *instance_name, CompanyID company)
Initialize the script and prepare it for its first run.
Base functions for all Games.
class Squirrel * engine
Engine used to register for Squirrel.
static const StringID INVALID_STRING_ID
Constant representing an invalid string (16bit in case it is used in savegames)
void CommandCallback(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
Define a callback function for the client, after the command is finished.
virtual int GetSetting(const char *name) const
Get the value of a setting for this config.
virtual void Died()
Tell the script it died.
void Initialize(class GameInfo *info)
Initialize the script and prepare it for its first run.
const char * GetInstanceName() const
Get the name of the instance of the script to create.