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.difficultyChosenByPlayer = false;
|
||||||
|
|
||||||
ret.music = mapping.remapCampaignMusic(reader.readUInt8());
|
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.filename = filename;
|
||||||
ret.modName = modName;
|
ret.modName = modName;
|
||||||
ret.encoding = encoding;
|
ret.encoding = encoding;
|
||||||
@ -389,7 +389,7 @@ CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader
|
|||||||
{
|
{
|
||||||
ret.prologVideo = mapping.remapCampaignVideo(reader.readUInt8());
|
ret.prologVideo = mapping.remapCampaignVideo(reader.readUInt8());
|
||||||
ret.prologMusic = mapping.remapCampaignMusic(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));
|
ret.prologText.appendTextID(readLocalizedString(header, reader, header.filename, header.modName, header.encoding, identifier));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -39,6 +39,7 @@ FactionID PlayerInfo::defaultCastle() const
|
|||||||
if(isFactionRandom)
|
if(isFactionRandom)
|
||||||
return FactionID::RANDOM;
|
return FactionID::RANDOM;
|
||||||
|
|
||||||
|
assert(!allowedFactions.empty());
|
||||||
if(!allowedFactions.empty())
|
if(!allowedFactions.empty())
|
||||||
return *allowedFactions.begin();
|
return *allowedFactions.begin();
|
||||||
|
|
||||||
|
@ -252,7 +252,12 @@ void CMapLoaderH3M::readPlayerInfo()
|
|||||||
const bool allFactionsAllowed = playerInfo.isFactionRandom && allowedFactions.size() == features.factionsCount;
|
const bool allFactionsAllowed = playerInfo.isFactionRandom && allowedFactions.size() == features.factionsCount;
|
||||||
|
|
||||||
if(!allFactionsAllowed)
|
if(!allFactionsAllowed)
|
||||||
playerInfo.allowedFactions = allowedFactions;
|
{
|
||||||
|
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();
|
playerInfo.hasMainTown = reader->readBool();
|
||||||
if(playerInfo.hasMainTown)
|
if(playerInfo.hasMainTown)
|
||||||
|
Reference in New Issue
Block a user