1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Merge pull request #1183 from IvanSavenko/artifact_fix

Fixed access violation in artifacts code and potentially non-finisheable battles
This commit is contained in:
Andrii Danylchenko
2022-12-03 13:21:48 +02:00
committed by GitHub
2 changed files with 8 additions and 2 deletions

View File

@@ -1547,16 +1547,18 @@ DLL_LINKAGE ArtifactPosition ArtifactUtils::getArtifactDstPosition( const CArtif
DLL_LINKAGE const std::vector<ArtifactPosition::EArtifactPosition> & ArtifactUtils::unmovableSlots() DLL_LINKAGE const std::vector<ArtifactPosition::EArtifactPosition> & ArtifactUtils::unmovableSlots()
{ {
return static const std::vector<ArtifactPosition::EArtifactPosition> positions =
{ {
ArtifactPosition::SPELLBOOK, ArtifactPosition::SPELLBOOK,
ArtifactPosition::MACH4 ArtifactPosition::MACH4
}; };
return positions;
} }
DLL_LINKAGE const std::vector<ArtifactPosition::EArtifactPosition> & ArtifactUtils::constituentWornSlots() DLL_LINKAGE const std::vector<ArtifactPosition::EArtifactPosition> & ArtifactUtils::constituentWornSlots()
{ {
return static const std::vector<ArtifactPosition::EArtifactPosition> positions =
{ {
ArtifactPosition::HEAD, ArtifactPosition::HEAD,
ArtifactPosition::SHOULDERS, ArtifactPosition::SHOULDERS,
@@ -1573,6 +1575,8 @@ DLL_LINKAGE const std::vector<ArtifactPosition::EArtifactPosition> & ArtifactUti
ArtifactPosition::MISC4, ArtifactPosition::MISC4,
ArtifactPosition::MISC5, ArtifactPosition::MISC5,
}; };
return positions;
} }
DLL_LINKAGE bool ArtifactUtils::isArtRemovable(const std::pair<ArtifactPosition, ArtSlotInfo> & slot) DLL_LINKAGE bool ArtifactUtils::isArtRemovable(const std::pair<ArtifactPosition, ArtSlotInfo> & slot)

View File

@@ -6642,6 +6642,8 @@ void CGameHandler::runBattle()
} }
} }
} }
// it is possible that due to opening spells one side was eliminated -> check for end of battle
checkBattleStateChanges();
bool firstRound = true;//FIXME: why first round is -1? bool firstRound = true;//FIXME: why first round is -1?