diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index e5bca3df5..956944179 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -2077,6 +2077,10 @@ Stats Game::quitGame() { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); endStats = *(world.getStats()); + NetworkManager &networkManager= NetworkManager::getInstance(); + if(networkManager.getNetworkRole() == nrServer && gameSettings.getMasterserver_admin() != -1) { + endStats.setIsMasterserverMode(true); + } if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); diff --git a/source/glest_game/game/stats.h b/source/glest_game/game/stats.h index 21b18996c..8099ee014 100644 --- a/source/glest_game/game/stats.h +++ b/source/glest_game/game/stats.h @@ -78,6 +78,7 @@ private: time_t timePlayed; int maxConcurrentUnitCount; int totalEndGameConcurrentUnitCount; + bool isMasterserverMode; public: @@ -91,6 +92,7 @@ public: framesToCalculatePlaytime = 0; maxConcurrentUnitCount = 0; totalEndGameConcurrentUnitCount = 0; + isMasterserverMode = false; } void init(int factionCount, int thisFactionIndex, const string &description); @@ -119,6 +121,9 @@ public: string getPlayerName(int factionIndex) const {return playerStats[factionIndex].playerName;} Vec3f getPlayerColor(int factionIndex) const { return playerStats[factionIndex].playerColor;} + bool getIsMasterserverMode() const { return isMasterserverMode; } + void setIsMasterserverMode(bool value) { isMasterserverMode = value; } + void setDescription(const string& description) {this->description = description;} void setWorldTimeElapsed(float value) {this->worldTimeElapsed = value;} void setFramesPlayed(int value) {this->framesPlayed = value; } diff --git a/source/glest_game/main/battle_end.cpp b/source/glest_game/main/battle_end.cpp index eac4e9a19..82a2afffb 100644 --- a/source/glest_game/main/battle_end.cpp +++ b/source/glest_game/main/battle_end.cpp @@ -76,6 +76,13 @@ void BattleEnd::update() { AutoTest::getInstance().updateBattleEnd(program); } mouse2d= (mouse2d+1) % Renderer::maxMouse2dAnim; + + if(this->stats.getIsMasterserverMode() == true) { + SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); + //program->setState(new MainMenu(program)); + program->initServer(program->getWindow(),false,true,true); + return; + } } void BattleEnd::render() {