mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-15 00:05:02 +02:00
Fix rare crash on merging two stacks in town garrison with stack
artifacts equipped
This commit is contained in:
@ -1639,13 +1639,19 @@ void RebalanceStacks::applyGs(CGameState *gs)
|
||||
{
|
||||
if(auto dstArt = dstStack->getArt(ArtifactPosition::CREATURE_SLOT))
|
||||
{
|
||||
auto dstSlot = ArtifactUtils::getArtBackpackPosition(srcHero, dstArt->getTypeId());
|
||||
if(srcHero && dstSlot != ArtifactPosition::PRE_FIRST)
|
||||
bool artifactIsLost = true;
|
||||
|
||||
if(srcHero)
|
||||
{
|
||||
gs->map->moveArtifactInstance(*dstStack, ArtifactPosition::CREATURE_SLOT, *srcHero, dstSlot);
|
||||
auto dstSlot = ArtifactUtils::getArtBackpackPosition(srcHero, dstArt->getTypeId());
|
||||
if (dstSlot != ArtifactPosition::PRE_FIRST)
|
||||
{
|
||||
gs->map->moveArtifactInstance(*dstStack, ArtifactPosition::CREATURE_SLOT, *srcHero, dstSlot);
|
||||
artifactIsLost = false;
|
||||
}
|
||||
}
|
||||
//else - artifact can be lost :/
|
||||
else
|
||||
|
||||
if (artifactIsLost)
|
||||
{
|
||||
BulkEraseArtifacts ea;
|
||||
ea.artHolder = dstHero->id;
|
||||
|
Reference in New Issue
Block a user