1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-29 00:41:38 +02:00

- Reduced complexity to use the CMapGenerator(simpler interface) - Removed h3m.txt and tchar_amigaos4.h

This commit is contained in:
beegee1
2013-04-14 18:52:05 +00:00
parent b1428bcd24
commit c10266ed97
14 changed files with 400 additions and 832 deletions

View File

@ -862,43 +862,35 @@ void CGameState::init(StartInfo * si)
logGlobal->infoStream() << "Create random map.";
// Create player settings for RMG
std::map<PlayerColor, CMapGenerator::CPlayerSettings> players;
BOOST_FOREACH(auto pInfo, scenarioOps->playerInfos)
BOOST_FOREACH(const auto & pair, scenarioOps->playerInfos)
{
const PlayerSettings & startSettings = pInfo.second;
CMapGenerator::CPlayerSettings player;
player.setColor(startSettings.color);
player.setStartingTown(startSettings.castle);
if(startSettings.playerID > 0)
const auto & playerSettings = pair.second;
scenarioOps->mapGenOptions->setStartingTownForPlayer(playerSettings.color, playerSettings.castle);
if(playerSettings.playerID > 0)
{
player.setPlayerType(CMapGenerator::CPlayerSettings::HUMAN);
scenarioOps->mapGenOptions->setPlayerTypeForStandardPlayer(playerSettings.color, EPlayerType::HUMAN);
}
else if(startSettings.compOnly)
{
player.setPlayerType(CMapGenerator::CPlayerSettings::COMP_ONLY);
}
players[player.getColor()] = player;
}
// Gen map
CMapGenerator mapGen(*scenarioOps->mapGenOptions, players, scenarioOps->seedToBeUsed);
CMapGenerator mapGen(*(scenarioOps->mapGenOptions), scenarioOps->seedToBeUsed);
map = mapGen.generate().release();
// Update starting options
for(int i = 0; i < map->players.size(); ++i)
{
const PlayerInfo & pInfo = map->players[i];
if(pInfo.canComputerPlay || pInfo.canHumanPlay)
const auto & playerInfo = map->players[i];
if(playerInfo.canAnyonePlay())
{
PlayerSettings & pSettings = scenarioOps->playerInfos[PlayerColor(i)];
pSettings.compOnly = !pInfo.canHumanPlay;
pSettings.team = pInfo.team;
pSettings.castle = pInfo.defaultCastle();
if(pSettings.playerID == PlayerSettings::PLAYER_AI && pSettings.name.empty())
PlayerSettings & playerSettings = scenarioOps->playerInfos[PlayerColor(i)];
playerSettings.compOnly = !playerInfo.canHumanPlay;
playerSettings.team = playerInfo.team;
playerSettings.castle = playerInfo.defaultCastle();
if(playerSettings.playerID == PlayerSettings::PLAYER_AI && playerSettings.name.empty())
{
pSettings.name = VLC->generaltexth->allTexts[468];
playerSettings.name = VLC->generaltexth->allTexts[468];
}
pSettings.color = PlayerColor(i);
playerSettings.color = PlayerColor(i);
}
else
{