diff --git a/lib/gameState/CGameState.cpp b/lib/gameState/CGameState.cpp index f0d4aa938..8353be1c7 100644 --- a/lib/gameState/CGameState.cpp +++ b/lib/gameState/CGameState.cpp @@ -312,6 +312,28 @@ void CGameState::initNewGame(const IMapService * mapService, bool allowSavingRan std::unique_ptr randomMap = mapGenerator.generate(); progressTracking.exclude(mapGenerator); + map = randomMap.release(); + // Update starting options + for(int i = 0; i < map->players.size(); ++i) + { + const auto & playerInfo = map->players[i]; + if(playerInfo.canAnyonePlay()) + { + PlayerSettings & playerSettings = scenarioOps->playerInfos[PlayerColor(i)]; + playerSettings.compOnly = !playerInfo.canHumanPlay; + playerSettings.castle = playerInfo.defaultCastle(); + if(playerSettings.isControlledByAI() && playerSettings.name.empty()) + { + playerSettings.name = VLC->generaltexth->allTexts[468]; + } + playerSettings.color = PlayerColor(i); + } + else + { + scenarioOps->playerInfos.erase(PlayerColor(i)); + } + } + if(allowSavingRandomMap) { try @@ -341,28 +363,6 @@ void CGameState::initNewGame(const IMapService * mapService, bool allowSavingRan } } - map = randomMap.release(); - // Update starting options - for(int i = 0; i < map->players.size(); ++i) - { - const auto & playerInfo = map->players[i]; - if(playerInfo.canAnyonePlay()) - { - PlayerSettings & playerSettings = scenarioOps->playerInfos[PlayerColor(i)]; - playerSettings.compOnly = !playerInfo.canHumanPlay; - playerSettings.castle = playerInfo.defaultCastle(); - if(playerSettings.isControlledByAI() && playerSettings.name.empty()) - { - playerSettings.name = VLC->generaltexth->allTexts[468]; - } - playerSettings.color = PlayerColor(i); - } - else - { - scenarioOps->playerInfos.erase(PlayerColor(i)); - } - } - logGlobal->info("Generated random map in %i ms.", sw.getDiff()); } else