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

attempt to fix the build

This commit is contained in:
SoundSSGood
2022-11-07 14:20:28 +02:00
parent 203c54e956
commit 3a3b559a0b
4 changed files with 11 additions and 14 deletions

View File

@@ -295,9 +295,9 @@ void BulkMoveArtifacts::applyCl(CClient * cl)
callInterfaceIfPresent(cl, dstLoc.owningPlayer(), &IGameEventsReceiver::artifactMoved, srcLoc, dstLoc);
}
if (artsPack1.has_value())
if (swap)
{
movingArts = artsPack1.value();
movingArts = artsPack1;
for (auto & slotToMove : movingArts)
{
auto srcLoc = ArtifactLocation(srcArtHolder, slotToMove.srcPos);

View File

@@ -1019,7 +1019,6 @@ struct BulkMoveArtifacts : CArtifactOperationPack
LinkedSlots() {}
LinkedSlots(ArtifactPosition srcPos, ArtifactPosition dstPos)
: srcPos(srcPos), dstPos(dstPos) {}
template <typename Handler> void serialize(Handler & h, const int version)
{
h & srcPos;
@@ -1031,16 +1030,15 @@ struct BulkMoveArtifacts : CArtifactOperationPack
TArtHolder dstArtHolder;
BulkMoveArtifacts() {}
BulkMoveArtifacts(TArtHolder srcArtHolder, TArtHolder dstArtHolder)
: srcArtHolder(srcArtHolder), dstArtHolder(dstArtHolder) {}
BulkMoveArtifacts(TArtHolder srcArtHolder, TArtHolder dstArtHolder, bool swap)
: srcArtHolder(srcArtHolder), dstArtHolder(dstArtHolder), swap(swap) {}
void applyCl(CClient * cl);
DLL_LINKAGE void applyGs(CGameState * gs);
std::vector<LinkedSlots> artsPack0;
// If the artsPack1 is present then make swap
boost::optional<std::vector<LinkedSlots>> artsPack1;
std::vector<LinkedSlots> artsPack1;
bool swap;
CArtifactSet * getSrcHolderArtSet();
CArtifactSet * getDstHolderArtSet();
template <typename Handler> void serialize(Handler & h, const int version)
@@ -1049,6 +1047,7 @@ struct BulkMoveArtifacts : CArtifactOperationPack
h & artsPack1;
h & srcArtHolder;
h & dstArtHolder;
h & swap;
}
};

View File

@@ -1098,10 +1098,9 @@ DLL_LINKAGE void MoveArtifact::applyGs(CGameState * gs)
DLL_LINKAGE void BulkMoveArtifacts::applyGs(CGameState * gs)
{
int numBackpackArtifactsMoved = 0;
if (artsPack1.has_value())
if (swap)
{
// Swap
auto & leftRightPack = artsPack0;
auto leftSet = getSrcHolderArtSet();
auto rightSet = getDstHolderArtSet();
CArtifactFittingSet ArtFittingSet(leftSet->bearerType());

View File

@@ -3934,7 +3934,7 @@ bool CGameHandler::bulkMoveArtifacts(ObjectInstanceID srcHero, ObjectInstanceID
auto psrcHero = getHero(srcHero);
auto pdstHero = getHero(dstHero);
BulkMoveArtifacts ma(static_cast<ConstTransitivePtr<CGHeroInstance>>(psrcHero),
static_cast<ConstTransitivePtr<CGHeroInstance>>(pdstHero));
static_cast<ConstTransitivePtr<CGHeroInstance>>(pdstHero), false);
auto slots = &ma.artsPack0;
// Temporary fitting set for artifacts. Used to select available slots before sending data.
@@ -3981,12 +3981,11 @@ bool CGameHandler::bulkSwapArtifacts(ObjectInstanceID leftHero, ObjectInstanceID
auto pleftHero = getHero(leftHero);
auto prightHero = getHero(rightHero);
BulkMoveArtifacts ma(static_cast<ConstTransitivePtr<CGHeroInstance>>(pleftHero),
static_cast<ConstTransitivePtr<CGHeroInstance>>(prightHero));
ma.artsPack1 = std::vector<BulkMoveArtifacts::LinkedSlots>();
static_cast<ConstTransitivePtr<CGHeroInstance>>(prightHero), true);
ma.srcArtHolder = static_cast<ConstTransitivePtr<CGHeroInstance>>(prightHero);
ma.dstArtHolder = static_cast<ConstTransitivePtr<CGHeroInstance>>(pleftHero);
auto slotsLeftRight = &ma.artsPack0;
auto slotsRightLeft = &ma.artsPack1.value();
auto slotsRightLeft = &ma.artsPack1;
auto moveArtsWorn = [this](const CGHeroInstance * srcHero, const CGHeroInstance * dstHero,
std::vector<BulkMoveArtifacts::LinkedSlots> * slots) -> void