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