mirror of
https://github.com/glest/glest-source.git
synced 2025-10-02 18:36:48 +02:00
- better error handling logic on crashes
- translate scenario to correct file on players system
This commit is contained in:
@@ -3786,6 +3786,12 @@ void Game::loadGame(string name,Program *programPtr,bool isMasterserverMode) {
|
|||||||
|
|
||||||
GameSettings newGameSettingsReplay;
|
GameSettings newGameSettingsReplay;
|
||||||
newGameSettingsReplay.loadGame(gameNode);
|
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;
|
//GameSettings newGameSettings;
|
||||||
//newGameSettings.loadGame(gameNode);
|
//newGameSettings.loadGame(gameNode);
|
||||||
@@ -3840,6 +3846,12 @@ void Game::loadGame(string name,Program *programPtr,bool isMasterserverMode) {
|
|||||||
XmlNode *gameNode = rootNode->getChild("Game");
|
XmlNode *gameNode = rootNode->getChild("Game");
|
||||||
GameSettings newGameSettings;
|
GameSettings newGameSettings;
|
||||||
newGameSettings.loadGame(gameNode);
|
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");
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Game settings loaded\n");
|
||||||
|
|
||||||
|
@@ -3380,16 +3380,16 @@ int glestMain(int argc, char** argv) {
|
|||||||
|
|
||||||
//parse command line
|
//parse command line
|
||||||
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SERVER]) == true) {
|
if(hasCommandArgument(argc, argv,GAME_ARGS[GAME_ARG_SERVER]) == true) {
|
||||||
gameInitialized = true;
|
|
||||||
program->initServer(mainWindow,false,true);
|
program->initServer(mainWindow,false,true);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_MASTERSERVER_MODE])) == true) {
|
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_MASTERSERVER_MODE])) == true) {
|
||||||
gameInitialized = true;
|
|
||||||
program->initServer(mainWindow,false,true,true);
|
program->initServer(mainWindow,false,true,true);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LASTGAME])) == true) {
|
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LASTGAME])) == true) {
|
||||||
gameInitialized = true;
|
|
||||||
program->initServer(mainWindow,true,false);
|
program->initServer(mainWindow,true,false);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LAST_SAVED_GAME])) == true) {
|
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_AUTOSTART_LAST_SAVED_GAME])) == true) {
|
||||||
string fileName = "";
|
string fileName = "";
|
||||||
@@ -3429,8 +3429,8 @@ int glestMain(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gameInitialized = true;
|
|
||||||
program->initSavedGame(mainWindow,false,fileName);
|
program->initSavedGame(mainWindow,false,fileName);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_PREVIEW_MAP])) == true) {
|
else if(hasCommandArgument(argc, argv,string(GAME_ARGS[GAME_ARG_PREVIEW_MAP])) == true) {
|
||||||
int foundParamIndIndex = -1;
|
int foundParamIndIndex = -1;
|
||||||
@@ -3481,8 +3481,8 @@ int glestMain(int argc, char** argv) {
|
|||||||
gameSettings->setEnableServerControlledAI(config.getBool("ServerControlledAI","true"));
|
gameSettings->setEnableServerControlledAI(config.getBool("ServerControlledAI","true"));
|
||||||
gameSettings->setNetworkFramePeriod(config.getInt("NetworkSendFrameCount","20"));
|
gameSettings->setNetworkFramePeriod(config.getInt("NetworkSendFrameCount","20"));
|
||||||
|
|
||||||
gameInitialized = true;
|
|
||||||
program->initServer(mainWindow,gameSettings);
|
program->initServer(mainWindow,gameSettings);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printf("\nInvalid map name specified on commandline [%s] map [%s]\n\n",argv[foundParamIndIndex],(paramPartTokens.size() >= 2 ? paramPartTokens[1].c_str() : NULL));
|
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) {
|
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
||||||
string autoConnectServer = paramPartTokens[1];
|
string autoConnectServer = paramPartTokens[1];
|
||||||
|
|
||||||
gameInitialized = true;
|
|
||||||
program->initClient(mainWindow, autoConnectServer);
|
program->initClient(mainWindow, autoConnectServer);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@@ -3527,8 +3527,8 @@ int glestMain(int argc, char** argv) {
|
|||||||
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) {
|
||||||
string autoloadScenarioName = paramPartTokens[1];
|
string autoloadScenarioName = paramPartTokens[1];
|
||||||
|
|
||||||
gameInitialized = true;
|
|
||||||
program->initScenario(mainWindow, autoloadScenarioName);
|
program->initScenario(mainWindow, autoloadScenarioName);
|
||||||
|
gameInitialized = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
printf("\nInvalid scenario name specified on commandline [%s] scenario [%s]\n\n",argv[foundParamIndIndex],(paramPartTokens.size() >= 2 ? paramPartTokens[1].c_str() : NULL));
|
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 {
|
else {
|
||||||
gameInitialized = true;
|
|
||||||
program->initNormal(mainWindow);
|
program->initNormal(mainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user