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_client.hpp.sq" 38 #include "../script/api/game/game_clientlist.hpp.sq" 39 #include "../script/api/game/game_company.hpp.sq" 40 #include "../script/api/game/game_companymode.hpp.sq" 41 #include "../script/api/game/game_controller.hpp.sq" 42 #include "../script/api/game/game_date.hpp.sq" 43 #include "../script/api/game/game_depotlist.hpp.sq" 44 #include "../script/api/game/game_engine.hpp.sq" 45 #include "../script/api/game/game_enginelist.hpp.sq" 46 #include "../script/api/game/game_error.hpp.sq" 47 #include "../script/api/game/game_event.hpp.sq" 48 #include "../script/api/game/game_event_types.hpp.sq" 49 #include "../script/api/game/game_execmode.hpp.sq" 50 #include "../script/api/game/game_game.hpp.sq" 51 #include "../script/api/game/game_gamesettings.hpp.sq" 52 #include "../script/api/game/game_goal.hpp.sq" 53 #include "../script/api/game/game_industry.hpp.sq" 54 #include "../script/api/game/game_industrylist.hpp.sq" 55 #include "../script/api/game/game_industrytype.hpp.sq" 56 #include "../script/api/game/game_industrytypelist.hpp.sq" 57 #include "../script/api/game/game_infrastructure.hpp.sq" 58 #include "../script/api/game/game_list.hpp.sq" 59 #include "../script/api/game/game_log.hpp.sq" 60 #include "../script/api/game/game_map.hpp.sq" 61 #include "../script/api/game/game_marine.hpp.sq" 62 #include "../script/api/game/game_news.hpp.sq" 63 #include "../script/api/game/game_order.hpp.sq" 64 #include "../script/api/game/game_rail.hpp.sq" 65 #include "../script/api/game/game_railtypelist.hpp.sq" 66 #include "../script/api/game/game_road.hpp.sq" 67 #include "../script/api/game/game_sign.hpp.sq" 68 #include "../script/api/game/game_signlist.hpp.sq" 69 #include "../script/api/game/game_station.hpp.sq" 70 #include "../script/api/game/game_stationlist.hpp.sq" 71 #include "../script/api/game/game_story_page.hpp.sq" 72 #include "../script/api/game/game_storypageelementlist.hpp.sq" 73 #include "../script/api/game/game_storypagelist.hpp.sq" 74 #include "../script/api/game/game_subsidy.hpp.sq" 75 #include "../script/api/game/game_subsidylist.hpp.sq" 76 #include "../script/api/game/game_testmode.hpp.sq" 77 #include "../script/api/game/game_text.hpp.sq" 78 #include "../script/api/game/game_tile.hpp.sq" 79 #include "../script/api/game/game_tilelist.hpp.sq" 80 #include "../script/api/game/game_town.hpp.sq" 81 #include "../script/api/game/game_townlist.hpp.sq" 82 #include "../script/api/game/game_tunnel.hpp.sq" 83 #include "../script/api/game/game_vehicle.hpp.sq" 84 #include "../script/api/game/game_vehiclelist.hpp.sq" 85 #include "../script/api/game/game_viewport.hpp.sq" 86 #include "../script/api/game/game_waypoint.hpp.sq" 87 #include "../script/api/game/game_waypointlist.hpp.sq" 88 #include "../script/api/game/game_window.hpp.sq" 90 #include "../safeguards.h" 93 GameInstance::GameInstance() :
102 SQGSController_Register(this->
engine);
112 SQGSList_Register(this->
engine);
113 SQGSAccounting_Register(this->
engine);
114 SQGSAdmin_Register(this->
engine);
115 SQGSAirport_Register(this->
engine);
116 SQGSBase_Register(this->
engine);
117 SQGSBaseStation_Register(this->
engine);
118 SQGSBridge_Register(this->
engine);
119 SQGSBridgeList_Register(this->
engine);
120 SQGSBridgeList_Length_Register(this->
engine);
121 SQGSCargo_Register(this->
engine);
122 SQGSCargoList_Register(this->
engine);
123 SQGSCargoList_IndustryAccepting_Register(this->
engine);
124 SQGSCargoList_IndustryProducing_Register(this->
engine);
125 SQGSCargoList_StationAccepting_Register(this->
engine);
126 SQGSCargoMonitor_Register(this->
engine);
127 SQGSClient_Register(this->
engine);
128 SQGSClientList_Register(this->
engine);
129 SQGSClientList_Company_Register(this->
engine);
130 SQGSCompany_Register(this->
engine);
131 SQGSCompanyMode_Register(this->
engine);
132 SQGSDate_Register(this->
engine);
133 SQGSDepotList_Register(this->
engine);
134 SQGSEngine_Register(this->
engine);
135 SQGSEngineList_Register(this->
engine);
136 SQGSError_Register(this->
engine);
137 SQGSEvent_Register(this->
engine);
138 SQGSEventAdminPort_Register(this->
engine);
139 SQGSEventCompanyBankrupt_Register(this->
engine);
140 SQGSEventCompanyInTrouble_Register(this->
engine);
141 SQGSEventCompanyMerger_Register(this->
engine);
142 SQGSEventCompanyNew_Register(this->
engine);
143 SQGSEventCompanyTown_Register(this->
engine);
144 SQGSEventController_Register(this->
engine);
145 SQGSEventExclusiveTransportRights_Register(this->
engine);
146 SQGSEventGoalQuestionAnswer_Register(this->
engine);
147 SQGSEventIndustryClose_Register(this->
engine);
148 SQGSEventIndustryOpen_Register(this->
engine);
149 SQGSEventRoadReconstruction_Register(this->
engine);
150 SQGSEventStationFirstVehicle_Register(this->
engine);
151 SQGSEventSubsidyAwarded_Register(this->
engine);
152 SQGSEventSubsidyExpired_Register(this->
engine);
153 SQGSEventSubsidyOffer_Register(this->
engine);
154 SQGSEventSubsidyOfferExpired_Register(this->
engine);
155 SQGSEventTownFounded_Register(this->
engine);
156 SQGSEventVehicleCrashed_Register(this->
engine);
157 SQGSEventWindowWidgetClick_Register(this->
engine);
158 SQGSExecMode_Register(this->
engine);
159 SQGSGame_Register(this->
engine);
160 SQGSGameSettings_Register(this->
engine);
161 SQGSGoal_Register(this->
engine);
162 SQGSIndustry_Register(this->
engine);
163 SQGSIndustryList_Register(this->
engine);
164 SQGSIndustryList_CargoAccepting_Register(this->
engine);
165 SQGSIndustryList_CargoProducing_Register(this->
engine);
166 SQGSIndustryType_Register(this->
engine);
167 SQGSIndustryTypeList_Register(this->
engine);
168 SQGSInfrastructure_Register(this->
engine);
169 SQGSLog_Register(this->
engine);
170 SQGSMap_Register(this->
engine);
171 SQGSMarine_Register(this->
engine);
172 SQGSNews_Register(this->
engine);
173 SQGSOrder_Register(this->
engine);
174 SQGSRail_Register(this->
engine);
175 SQGSRailTypeList_Register(this->
engine);
176 SQGSRoad_Register(this->
engine);
177 SQGSSign_Register(this->
engine);
178 SQGSSignList_Register(this->
engine);
179 SQGSStation_Register(this->
engine);
180 SQGSStationList_Register(this->
engine);
181 SQGSStationList_Cargo_Register(this->
engine);
182 SQGSStationList_CargoPlanned_Register(this->
engine);
183 SQGSStationList_CargoPlannedByFrom_Register(this->
engine);
184 SQGSStationList_CargoPlannedByVia_Register(this->
engine);
185 SQGSStationList_CargoPlannedFromByVia_Register(this->
engine);
186 SQGSStationList_CargoPlannedViaByFrom_Register(this->
engine);
187 SQGSStationList_CargoWaiting_Register(this->
engine);
188 SQGSStationList_CargoWaitingByFrom_Register(this->
engine);
189 SQGSStationList_CargoWaitingByVia_Register(this->
engine);
190 SQGSStationList_CargoWaitingFromByVia_Register(this->
engine);
191 SQGSStationList_CargoWaitingViaByFrom_Register(this->
engine);
192 SQGSStationList_Vehicle_Register(this->
engine);
193 SQGSStoryPage_Register(this->
engine);
194 SQGSStoryPageElementList_Register(this->
engine);
195 SQGSStoryPageList_Register(this->
engine);
196 SQGSSubsidy_Register(this->
engine);
197 SQGSSubsidyList_Register(this->
engine);
198 SQGSTestMode_Register(this->
engine);
199 SQGSText_Register(this->
engine);
200 SQGSTile_Register(this->
engine);
201 SQGSTileList_Register(this->
engine);
202 SQGSTileList_IndustryAccepting_Register(this->
engine);
203 SQGSTileList_IndustryProducing_Register(this->
engine);
204 SQGSTileList_StationType_Register(this->
engine);
205 SQGSTown_Register(this->
engine);
206 SQGSTownEffectList_Register(this->
engine);
207 SQGSTownList_Register(this->
engine);
208 SQGSTunnel_Register(this->
engine);
209 SQGSVehicle_Register(this->
engine);
210 SQGSVehicleList_Register(this->
engine);
211 SQGSVehicleList_Depot_Register(this->
engine);
212 SQGSVehicleList_SharedOrders_Register(this->
engine);
213 SQGSVehicleList_Station_Register(this->
engine);
214 SQGSViewport_Register(this->
engine);
215 SQGSWaypoint_Register(this->
engine);
216 SQGSWaypointList_Register(this->
engine);
217 SQGSWaypointList_Vehicle_Register(this->
engine);
218 SQGSWindow_Register(this->
engine);
222 if (!this->LoadCompatibilityScripts(this->versionAPI,
GAME_DIR)) this->Died();
245 if (info->
GetURL() != NULL) {
246 ScriptLog::Info(
"Please report the error to the following URL:");
247 ScriptLog::Info(info->
GetURL());
int version
Version of the script.
GameConfig stores the configuration settings of every Game.
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.
void CommandCallback(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd)
Define a callback function for the client, after the command is finished.
void CcGame(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2, uint32 cmd)
DoCommand callback function for all commands executed by Game Scripts.
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.
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)
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.