|
@@ -303,6 +303,27 @@ void CGameState::initNewGame(const IMapService * mapService, bool allowSavingRan
|
|
|
std::unique_ptr<CMap> randomMap = mapGenerator.generate();
|
|
|
progressTracking.exclude(mapGenerator);
|
|
|
|
|
|
+ // Update starting options
|
|
|
+ for(int i = 0; i < randomMap->players.size(); ++i)
|
|
|
+ {
|
|
|
+ const auto & playerInfo = randomMap->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
|
|
@@ -332,26 +353,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());
|
|
|
}
|