mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-21 00:19:29 +02:00
Add workaround for strange/unknown hota h3m quirk
This commit is contained in:
@ -371,7 +371,7 @@ void CampaignHandler::readHeaderFromMemory( CampaignHeader & ret, CBinaryReader
|
||||
ret.difficultyChosenByPlayer = false;
|
||||
|
||||
ret.music = mapping.remapCampaignMusic(reader.readUInt8());
|
||||
logGlobal->info("Campaign %s: map %d (%d scenarios), music theme: %s", filename, campaignMapId.getNum(), ret.numberOfScenarios, ret.music.getOriginalName());
|
||||
logGlobal->trace("Campaign %s: map %d (%d scenarios), music theme: %s", filename, campaignMapId.getNum(), ret.numberOfScenarios, ret.music.getOriginalName());
|
||||
ret.filename = filename;
|
||||
ret.modName = modName;
|
||||
ret.encoding = encoding;
|
||||
@ -389,7 +389,7 @@ CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader
|
||||
{
|
||||
ret.prologVideo = mapping.remapCampaignVideo(reader.readUInt8());
|
||||
ret.prologMusic = mapping.remapCampaignMusic(reader.readUInt8());
|
||||
logGlobal->info("Campaign %s, scenario %s: music theme: %s, video: %s", header.filename, identifier, ret.prologMusic.getOriginalName(), ret.prologVideo.getOriginalName());
|
||||
logGlobal->trace("Campaign %s, scenario %s: music theme: %s, video: %s", header.filename, identifier, ret.prologMusic.getOriginalName(), ret.prologVideo.getOriginalName());
|
||||
ret.prologText.appendTextID(readLocalizedString(header, reader, header.filename, header.modName, header.encoding, identifier));
|
||||
}
|
||||
return ret;
|
||||
|
@ -39,6 +39,7 @@ FactionID PlayerInfo::defaultCastle() const
|
||||
if(isFactionRandom)
|
||||
return FactionID::RANDOM;
|
||||
|
||||
assert(!allowedFactions.empty());
|
||||
if(!allowedFactions.empty())
|
||||
return *allowedFactions.begin();
|
||||
|
||||
|
@ -252,7 +252,12 @@ void CMapLoaderH3M::readPlayerInfo()
|
||||
const bool allFactionsAllowed = playerInfo.isFactionRandom && allowedFactions.size() == features.factionsCount;
|
||||
|
||||
if(!allFactionsAllowed)
|
||||
{
|
||||
if (!allowedFactions.empty())
|
||||
playerInfo.allowedFactions = allowedFactions;
|
||||
else
|
||||
logGlobal->warn("Map '%s': Player %d has no allowed factions to play! Ignoring.", mapName, i);
|
||||
}
|
||||
|
||||
playerInfo.hasMainTown = reader->readBool();
|
||||
if(playerInfo.hasMainTown)
|
||||
|
Reference in New Issue
Block a user