diff --git a/lib/CArtHandler.cpp b/lib/CArtHandler.cpp index 5a50c227d..fd6637560 100644 --- a/lib/CArtHandler.cpp +++ b/lib/CArtHandler.cpp @@ -1547,16 +1547,18 @@ DLL_LINKAGE ArtifactPosition ArtifactUtils::getArtifactDstPosition( const CArtif DLL_LINKAGE const std::vector & ArtifactUtils::unmovableSlots() { - return + static const std::vector positions = { ArtifactPosition::SPELLBOOK, ArtifactPosition::MACH4 }; + + return positions; } DLL_LINKAGE const std::vector & ArtifactUtils::constituentWornSlots() { - return + static const std::vector positions = { ArtifactPosition::HEAD, ArtifactPosition::SHOULDERS, @@ -1573,6 +1575,8 @@ DLL_LINKAGE const std::vector & ArtifactUti ArtifactPosition::MISC4, ArtifactPosition::MISC5, }; + + return positions; } DLL_LINKAGE bool ArtifactUtils::isArtRemovable(const std::pair & slot) diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 473ad5ae6..40e684973 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -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?