mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-25 22:42:04 +02:00
artifact assemble fixed
This commit is contained in:
@@ -1205,6 +1205,12 @@ ArtifactPosition CArtifactSet::getArtPos(int aid, bool onlyWorn, bool allowLocke
|
|||||||
return result.empty() ? ArtifactPosition{ArtifactPosition::PRE_FIRST} : result[0];
|
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> CArtifactSet::getAllArtPositions(int aid, bool onlyWorn, bool allowLocked, bool getAll) const
|
||||||
{
|
{
|
||||||
std::vector<ArtifactPosition> result;
|
std::vector<ArtifactPosition> result;
|
||||||
|
|||||||
@@ -329,6 +329,7 @@ public:
|
|||||||
/// (if more than one such artifact lower ID is returned)
|
/// (if more than one such artifact lower ID is returned)
|
||||||
ArtifactPosition getArtPos(int aid, bool onlyWorn = true, bool allowLocked = true) const;
|
ArtifactPosition getArtPos(int aid, bool onlyWorn = true, bool allowLocked = true) const;
|
||||||
ArtifactPosition getArtPos(const CArtifactInstance *art) 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> getAllArtPositions(int aid, bool onlyWorn, bool allowLocked, bool getAll) const;
|
||||||
std::vector<ArtifactPosition> getBackpackArtPositions(int aid) const;
|
std::vector<ArtifactPosition> getBackpackArtPositions(int aid) const;
|
||||||
const CArtifactInstance *getArtByInstanceId(ArtifactInstanceID artInstId) const;
|
const CArtifactInstance *getArtByInstanceId(ArtifactInstanceID artInstId) const;
|
||||||
|
|||||||
@@ -1179,7 +1179,8 @@ DLL_LINKAGE void AssembledArtifact::applyGs(CGameState *gs)
|
|||||||
// Retrieve all constituents
|
// Retrieve all constituents
|
||||||
for(const CArtifact * constituent : *builtArt->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);
|
assert(pos >= 0);
|
||||||
CArtifactInstance * constituentInstance = artSet->getArt(pos);
|
CArtifactInstance * constituentInstance = artSet->getArt(pos);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user