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

artifact assemble fixed

This commit is contained in:
SoundSSGood
2022-11-19 16:09:32 +02:00
parent e6e669d024
commit 4b52d38c57
3 changed files with 9 additions and 1 deletions

View File

@@ -1205,6 +1205,12 @@ ArtifactPosition CArtifactSet::getArtPos(int aid, bool onlyWorn, bool allowLocke
return result.empty() ? ArtifactPosition{ArtifactPosition::PRE_FIRST} : result[0];
}
ArtifactPosition CArtifactSet::getArtBackpackPos(int aid) const
{
const auto result = getBackpackArtPositions(aid);
return result.empty() ? ArtifactPosition{ArtifactPosition::PRE_FIRST} : result[0];
}
std::vector<ArtifactPosition> CArtifactSet::getAllArtPositions(int aid, bool onlyWorn, bool allowLocked, bool getAll) const
{
std::vector<ArtifactPosition> result;

View File

@@ -329,6 +329,7 @@ public:
/// (if more than one such artifact lower ID is returned)
ArtifactPosition getArtPos(int aid, bool onlyWorn = true, bool allowLocked = true) const;
ArtifactPosition getArtPos(const CArtifactInstance *art) const;
ArtifactPosition getArtBackpackPos(int aid) const;
std::vector<ArtifactPosition> getAllArtPositions(int aid, bool onlyWorn, bool allowLocked, bool getAll) const;
std::vector<ArtifactPosition> getBackpackArtPositions(int aid) const;
const CArtifactInstance *getArtByInstanceId(ArtifactInstanceID artInstId) const;

View File

@@ -1179,7 +1179,8 @@ DLL_LINKAGE void AssembledArtifact::applyGs(CGameState *gs)
// Retrieve all constituents
for(const CArtifact * constituent : *builtArt->constituents)
{
ArtifactPosition pos = artSet->getArtPos(constituent->id, combineEquipped);
ArtifactPosition pos = combineEquipped ? artSet->getArtPos(constituent->id, true, false) :
artSet->getArtBackpackPos(constituent->id);
assert(pos >= 0);
CArtifactInstance * constituentInstance = artSet->getArt(pos);