- better error handling logic on crashes
- translate scenario to correct file on players system
This commit is contained in:
parent
433f4e84ce
commit
c13e0ef788
|
@ -3786,6 +3786,12 @@ void Game::loadGame(string name,Program *programPtr,bool isMasterserverMode) {
|
|||
|
||||
GameSettings newGameSettingsReplay;
|
||||
newGameSettingsReplay.loadGame(gameNode);
|
||||
//printf("Loading scenario [%s]\n",newGameSettingsReplay.getScenarioDir().c_str());
|
||||
if(newGameSettingsReplay.getScenarioDir() != "" && fileExists(newGameSettingsReplay.getScenarioDir()) == false) {
|
||||
newGameSettingsReplay.setScenarioDir(Scenario::getScenarioPath(Config::getInstance().getPathListForType(ptScenarios),newGameSettingsReplay.getScenario()));
|
||||
|
||||
//printf("Loading scenario #2 [%s]\n",newGameSettingsReplay.getScenarioDir().c_str());
|
||||
}
|
||||
|
||||
//GameSettings newGameSettings;
|
||||
//newGameSettings.loadGame(gameNode);
|
||||
|
@ -3840,6 +3846,12 @@ void Game::loadGame(string name,Program *programPtr,bool isMasterserverMode) {
|
|||
XmlNode *gameNode = rootNode->getChild("Game");
|
||||
GameSettings newGameSettings;
|
||||
newGameSettings.loadGame(gameNode);
|
||||
//printf("Loading scenario [%s]\n",newGameSettings.getScenarioDir().c_str());
|
||||
if(newGameSettings.getScenarioDir() != "" && fileExists(newGameSettings.getScenarioDir()) == false) {
|
||||
newGameSettings.setScenarioDir(Scenario::getScenarioPath(Config::getInstance().getPathListForType(ptScenarios),newGameSettings.getScenario()));
|
||||
|
||||
//printf("Loading scenario #2 [%s]\n",newGameSettings.getScenarioDir().c_str());
|
||||
}
|
||||
|
||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Game settings loaded\n");
|
||||
|
||||
|
|
|
@ -3380,16 +3380,16 @@ int glestMain(int argc, char** argv) {
|
|||
|
||||
//parse command line
|
||||
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SERVER]) == true) {
|
||||
gameInitialized = true;
|
||||
program->initServer(mainWindow,false,true);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_MASTERSERVER_MODE])) == true) {
|
||||
gameInitialized = true;
|
||||
program->initServer(mainWindow,false,true,true);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LASTGAME])) == true) {
|
||||
gameInitialized = true;
|
||||
program->initServer(mainWindow,true,false);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LAST_SAVED_GAME])) == true) {
|
||||
string fileName = "";
|
||||
|
@ -3429,8 +3429,8 @@ int glestMain(int argc, char** argv) {
|
|||
}
|
||||
}
|
||||
}
|
||||
gameInitialized = true;
|
||||
program->initSavedGame(mainWindow,false,fileName);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_PREVIEW_MAP])) == true) {
|
||||
int foundParamIndIndex = -1;
|
||||
|
@ -3481,8 +3481,8 @@ int glestMain(int argc, char** argv) {
|
|||
gameSettings->setEnableServerControlledAI(config.getBool("ServerControlledAI","true"));
|
||||
gameSettings->setNetworkFramePeriod(config.getInt("NetworkSendFrameCount","20"));
|
||||
|
||||
gameInitialized = true;
|
||||
program->initServer(mainWindow,gameSettings);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else {
|
||||
printf("\nInvalid map name specified on commandline [%s] map [%s]\n\n",argv[foundParamIndIndex],(paramPartTokens.size() >= 2 ? paramPartTokens[1].c_str() : NULL));
|
||||
|
@ -3503,8 +3503,8 @@ int glestMain(int argc, char** argv) {
|
|||
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
||||
string autoConnectServer = paramPartTokens[1];
|
||||
|
||||
gameInitialized = true;
|
||||
program->initClient(mainWindow, autoConnectServer);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else {
|
||||
|
||||
|
@ -3527,8 +3527,8 @@ int glestMain(int argc, char** argv) {
|
|||
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
||||
string autoloadScenarioName = paramPartTokens[1];
|
||||
|
||||
gameInitialized = true;
|
||||
program->initScenario(mainWindow, autoloadScenarioName);
|
||||
gameInitialized = true;
|
||||
}
|
||||
else {
|
||||
printf("\nInvalid scenario name specified on commandline [%s] scenario [%s]\n\n",argv[foundParamIndIndex],(paramPartTokens.size() >= 2 ? paramPartTokens[1].c_str() : NULL));
|
||||
|
@ -3538,7 +3538,6 @@ int glestMain(int argc, char** argv) {
|
|||
}
|
||||
}
|
||||
else {
|
||||
gameInitialized = true;
|
||||
program->initNormal(mainWindow);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue