summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-12-19 21:05:25 +0000
committertruebrain <truebrain@openttd.org>2011-12-19 21:05:25 +0000
commitcc3f42794d134b9f4b6c7efecb07d4b3366887c1 (patch)
tree1cd422d47fc44bd59463d0f9e2ef96f2edb09b50 /src/game
parent403cd3acdb7b7fedf2b5e823326611bb32113385 (diff)
downloadopenttd-cc3f42794d134b9f4b6c7efecb07d4b3366887c1.tar.xz
(svn r23632) -Add: GSCompanyMode, to change company in GameScripts
Diffstat (limited to 'src/game')
-rw-r--r--src/game/game_core.cpp4
-rw-r--r--src/game/game_instance.cpp4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/game/game_core.cpp b/src/game/game_core.cpp
index 9fd579599..ac24853da 100644
--- a/src/game/game_core.cpp
+++ b/src/game/game_core.cpp
@@ -87,9 +87,13 @@
/* static */ void Game::Uninitialize(bool keepConfig)
{
+ Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
+
delete Game::instance;
Game::instance = NULL;
+ cur_company.Restore();
+
if (keepConfig) {
Rescan();
} else {
diff --git a/src/game/game_instance.cpp b/src/game/game_instance.cpp
index daa122158..81870603b 100644
--- a/src/game/game_instance.cpp
+++ b/src/game/game_instance.cpp
@@ -33,6 +33,7 @@
#include "../script/api/game/game_cargo.hpp.sq"
#include "../script/api/game/game_cargolist.hpp.sq"
#include "../script/api/game/game_company.hpp.sq"
+#include "../script/api/game/game_companymode.hpp.sq"
#include "../script/api/game/game_controller.hpp.sq"
#include "../script/api/game/game_date.hpp.sq"
#include "../script/api/game/game_depotlist.hpp.sq"
@@ -87,7 +88,7 @@ void GameInstance::Initialize(GameInfo *info)
/* Register the GameController */
SQGSController_Register(this->engine);
- ScriptInstance::Initialize(info->GetMainScript(), info->GetInstanceName());
+ ScriptInstance::Initialize(info->GetMainScript(), info->GetInstanceName(), OWNER_DEITY);
}
void GameInstance::RegisterAPI()
@@ -110,6 +111,7 @@ void GameInstance::RegisterAPI()
SQGSCargoList_IndustryProducing_Register(this->engine);
SQGSCargoList_StationAccepting_Register(this->engine);
SQGSCompany_Register(this->engine);
+ SQGSCompanyMode_Register(this->engine);
SQGSDate_Register(this->engine);
SQGSDepotList_Register(this->engine);
SQGSEngine_Register(this->engine);