1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

setNewArtSlot

This commit is contained in:
SoundSSGood
2023-05-17 17:02:58 +03:00
parent f0feeeac6e
commit 5b281e6a9e
2 changed files with 14 additions and 19 deletions

View File

@@ -1208,32 +1208,28 @@ bool CArtifactSet::isPositionFree(const ArtifactPosition & pos, bool onlyLockChe
return true; //no slot means not used
}
ArtSlotInfo & CArtifactSet::retrieveNewArtSlot(const ArtifactPosition & slot)
void CArtifactSet::setNewArtSlot(const ArtifactPosition & slot, CArtifactInstance * art, bool locked)
{
assert(!vstd::contains(artifactsWorn, slot));
ArtSlotInfo * slotInfo;
if(slot == ArtifactPosition::TRANSITION_POS)
{
// Always add to the end. Always take from the beginning.
artifactsTransitionPos.emplace_back();
return artifactsTransitionPos.back();
slotInfo = &artifactsTransitionPos.back();
}
if(!ArtifactUtils::isSlotBackpack(slot))
return artifactsWorn[slot];
ArtSlotInfo newSlot;
size_t index = slot - GameConstants::BACKPACK_START;
auto position = artifactsInBackpack.begin() + index;
auto inserted = artifactsInBackpack.insert(position, newSlot);
return *inserted;
}
void CArtifactSet::setNewArtSlot(const ArtifactPosition & slot, CArtifactInstance * art, bool locked)
{
ArtSlotInfo & asi = retrieveNewArtSlot(slot);
asi.artifact = art;
asi.locked = locked;
else if(ArtifactUtils::isSlotEquipment(slot))
{
slotInfo = &artifactsWorn[slot];
}
else
{
auto position = artifactsInBackpack.begin() + slot - GameConstants::BACKPACK_START;
slotInfo = &(*artifactsInBackpack.emplace(position, ArtSlotInfo()));
}
slotInfo->artifact = art;
slotInfo->locked = locked;
}
void CArtifactSet::eraseArtSlot(const ArtifactPosition & slot)