File diff r18750:f99c3a48f013 → r18751:3a554214098d
src/game/game_core.cpp
Show inline comments
 
@@ -57,26 +57,29 @@
 
		Game::scanner = new GameScannerInfo();
 
		Game::scanner->Initialize();
 
	}
 
}
 

	
 
	if (Game::instance == NULL) {
 
		/* Clients shouldn't start GameScripts */
 
		if (_networking && !_network_server) return;
 
/* static */ void Game::StartNew()
 
{
 
	if (Game::instance != NULL) return;
 

	
 
		GameConfig *config = GameConfig::GetConfig();
 
		GameInfo *info = config->GetInfo();
 
		if (info == NULL) return;
 
	/* Clients shouldn't start GameScripts */
 
	if (_networking && !_network_server) return;
 

	
 
		Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
 
		cur_company.Change(OWNER_DEITY);
 
	GameConfig *config = GameConfig::GetConfig();
 
	GameInfo *info = config->GetInfo();
 
	if (info == NULL) return;
 

	
 
	Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
 
	cur_company.Change(OWNER_DEITY);
 

	
 
		Game::info = info;
 
		Game::instance = new GameInstance();
 
		Game::instance->Initialize(info);
 
	Game::info = info;
 
	Game::instance = new GameInstance();
 
	Game::instance->Initialize(info);
 

	
 
		cur_company.Restore();
 
	cur_company.Restore();
 

	
 
		InvalidateWindowData(WC_AI_DEBUG, 0, -1);
 
	}
 
	InvalidateWindowData(WC_AI_DEBUG, 0, -1);
 
}
 

	
 
/* static */ void Game::Uninitialize(bool keepConfig)
 
@@ -138,6 +141,29 @@
 
}
 

	
 

	
 
/* static */ void Game::Save()
 
{
 
	if (Game::instance != NULL && (!_networking || _network_server)) {
 
		Backup<CompanyByte> cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 
		Game::instance->Save();
 
		cur_company.Restore();
 
	} else {
 
		GameInstance::SaveEmpty();
 
	}
 
}
 

	
 
/* static */ void Game::Load(int version)
 
{
 
	if (Game::instance != NULL && (!_networking || _network_server)) {
 
		Backup<CompanyByte> cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 
		Game::instance->Load(version);
 
		cur_company.Restore();
 
	} else {
 
		/* Read, but ignore, the load data */
 
		GameInstance::LoadEmpty();
 
	}
 
}
 

	
 
/* static */ char *Game::GetConsoleList(char *p, const char *last, bool newest_only)
 
{
 
	return Game::scanner->GetConsoleList(p, last, newest_only);