From 8284b3ecdecbe6af096f6489abaa6dd64f90006e Mon Sep 17 00:00:00 2001 From: titiger Date: Tue, 13 Jan 2015 21:36:24 +0100 Subject: [PATCH] Fix for launching network Scenarios The client had to complete some game settings locally like path and so on. --- .../menu/menu_state_connected_game.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index 1aae3bb8..d33aa046 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -3594,7 +3594,26 @@ void MenuStateConnectedGame::update() { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__); launchingNewGame = true; - program->setState(new Game(program, clientInterface->getGameSettings(),false)); + + GameSettings gameSettings = *clientInterface->getGameSettings(); + // complete game settings with local stuff + if(gameSettings.getScenario()!="") + { + string scenario = gameSettings.getScenario(); + listBoxScenario.setSelectedItem(formatString(scenario)); + string file = Scenario::getScenarioPath(dirList, scenario); + + bool isTutorial = Scenario::isGameTutorial(file); + Scenario::loadScenarioInfo(file, &scenarioInfo, isTutorial); + + gameSettings.setScenarioDir(Scenario::getScenarioPath(dirList, scenarioInfo.name)); + + gameSettings.setDefaultResources(scenarioInfo.defaultResources); + gameSettings.setDefaultUnits(scenarioInfo.defaultUnits); + gameSettings.setDefaultVictoryConditions(scenarioInfo.defaultVictoryConditions); + } + + program->setState(new Game(program, &gameSettings,false)); return; } }