mirror of
https://github.com/vcmi/vcmi.git
synced 2025-04-17 11:56:46 +02:00
Better fix for allowed heroes in h3m - allow all heroes from mods
This commit is contained in:
parent
f643fff5eb
commit
e979fb7056
@ -166,7 +166,7 @@ CMap::CMap()
|
||||
, grailRadius(0)
|
||||
, uidCounter(0)
|
||||
{
|
||||
allHeroes.resize(allowedHeroes.size());
|
||||
allHeroes.resize(VLC->heroh->objects.size());
|
||||
allowedAbilities = VLC->skillh->getDefaultAllowed();
|
||||
allowedArtifact = VLC->arth->getDefaultAllowed();
|
||||
allowedSpells = VLC->spellh->getDefaultAllowed();
|
||||
|
@ -108,8 +108,6 @@ void CMapLoaderH3M::init()
|
||||
inputStream->seek(0);
|
||||
|
||||
readHeader();
|
||||
map->allHeroes.resize(map->allowedHeroes.size());
|
||||
|
||||
readDisposedHeroes();
|
||||
readMapOptions();
|
||||
readAllowedArtifacts();
|
||||
@ -678,6 +676,8 @@ void CMapLoaderH3M::readTeamInfo()
|
||||
|
||||
void CMapLoaderH3M::readAllowedHeroes()
|
||||
{
|
||||
mapHeader->allowedHeroes = VLC->heroh->getDefaultAllowed();
|
||||
|
||||
if(features.levelHOTA0)
|
||||
reader->readBitmaskHeroesSized(mapHeader->allowedHeroes, false);
|
||||
else
|
||||
@ -747,6 +747,8 @@ void CMapLoaderH3M::readMapOptions()
|
||||
|
||||
void CMapLoaderH3M::readAllowedArtifacts()
|
||||
{
|
||||
map->allowedArtifact = VLC->arth->getDefaultAllowed();
|
||||
|
||||
if(features.levelAB)
|
||||
{
|
||||
if(features.levelHOTA0)
|
||||
|
@ -325,8 +325,6 @@ void MapReaderH3M::readBitmaskSkills(std::set<SecondarySkill> & dest, bool inver
|
||||
template<class Identifier>
|
||||
void MapReaderH3M::readBitmask(std::set<Identifier> & dest, int bytesToRead, int objectsToRead, bool invert)
|
||||
{
|
||||
dest.clear();
|
||||
|
||||
for(int byte = 0; byte < bytesToRead; ++byte)
|
||||
{
|
||||
const ui8 mask = reader->readUInt8();
|
||||
@ -343,6 +341,8 @@ void MapReaderH3M::readBitmask(std::set<Identifier> & dest, int bytesToRead, int
|
||||
|
||||
if (result)
|
||||
dest.insert(vcmiID);
|
||||
else
|
||||
dest.erase(vcmiID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -548,7 +548,10 @@ void CGameHandler::init(StartInfo *si, Load::ProgressAccumulator & progressTrack
|
||||
turnOrder->addPlayer(elem.first);
|
||||
|
||||
for (auto & elem : gs->map->allHeroes)
|
||||
{
|
||||
if(elem)
|
||||
heroPool->getHeroSkillsRandomGenerator(elem->getHeroType()); // init RMG seed
|
||||
}
|
||||
|
||||
reinitScripting();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user