From 1f4897e84127c1c6c47f742d26c20443a9071ea6 Mon Sep 17 00:00:00 2001 From: SoundSSGood <87084363+SoundSSGood@users.noreply.github.com> Date: Sun, 23 Apr 2023 14:48:04 +0300 Subject: [PATCH] CArtifactSet::getSlotByInstance --- lib/CArtHandler.cpp | 19 +++++++++++++++++++ lib/CArtHandler.h | 1 + 2 files changed, 20 insertions(+) diff --git a/lib/CArtHandler.cpp b/lib/CArtHandler.cpp index 3ae91e43b..bcea32865 100644 --- a/lib/CArtHandler.cpp +++ b/lib/CArtHandler.cpp @@ -1205,6 +1205,25 @@ const CArtifactInstance * CArtifactSet::getArtByInstanceId(const ArtifactInstanc return nullptr; } +const ArtifactPosition CArtifactSet::getSlotByInstance(const CArtifactInstance * artInst) const +{ + if(artInst) + { + for(auto & slot : artInst->artType->possibleSlots.at(bearerType())) + if(getArt(slot) == artInst) + return slot; + + auto backpackSlot = GameConstants::BACKPACK_START; + for(auto & slotInfo : artifactsInBackpack) + { + if(slotInfo.getArt() == artInst) + return backpackSlot; + backpackSlot = ArtifactPosition(backpackSlot + 1); + } + } + return ArtifactPosition::PRE_FIRST; +} + bool CArtifactSet::hasArt(const ArtifactID & aid, bool onlyWorn, bool searchBackpackAssemblies, bool allowLocked) const { return getArtPosCount(aid, onlyWorn, searchBackpackAssemblies, allowLocked) > 0; diff --git a/lib/CArtHandler.h b/lib/CArtHandler.h index a4a6ff3cf..0aac12898 100644 --- a/lib/CArtHandler.h +++ b/lib/CArtHandler.h @@ -328,6 +328,7 @@ public: std::vector getAllArtPositions(const ArtifactID & aid, bool onlyWorn, bool allowLocked, bool getAll) const; std::vector getBackpackArtPositions(const ArtifactID & aid) const; const CArtifactInstance * getArtByInstanceId(const ArtifactInstanceID & artInstId) const; + const ArtifactPosition getSlotByInstance(const CArtifactInstance * artInst) const; /// Search for constituents of assemblies in backpack which do not have an ArtifactPosition const CArtifactInstance * getHiddenArt(const ArtifactID & aid) const; const CCombinedArtifactInstance * getAssemblyByConstituent(const ArtifactID & aid) const;