From 3a3b559a0bcc94edb924af2a5e31b7af7d2d8e9f Mon Sep 17 00:00:00 2001 From: SoundSSGood <87084363+SoundSSGood@users.noreply.github.com> Date: Mon, 7 Nov 2022 14:20:28 +0200 Subject: [PATCH] attempt to fix the build --- client/NetPacksClient.cpp | 4 ++-- lib/NetPacks.h | 11 +++++------ lib/NetPacksLib.cpp | 3 +-- server/CGameHandler.cpp | 7 +++---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/client/NetPacksClient.cpp b/client/NetPacksClient.cpp index 0a1f4e33c..95bd449b5 100644 --- a/client/NetPacksClient.cpp +++ b/client/NetPacksClient.cpp @@ -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); diff --git a/lib/NetPacks.h b/lib/NetPacks.h index 1bfb37ff6..ee29aada9 100644 --- a/lib/NetPacks.h +++ b/lib/NetPacks.h @@ -1019,7 +1019,6 @@ struct BulkMoveArtifacts : CArtifactOperationPack LinkedSlots() {} LinkedSlots(ArtifactPosition srcPos, ArtifactPosition dstPos) : srcPos(srcPos), dstPos(dstPos) {} - template 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 artsPack0; - // If the artsPack1 is present then make swap - boost::optional> artsPack1; - + std::vector artsPack1; + bool swap; CArtifactSet * getSrcHolderArtSet(); CArtifactSet * getDstHolderArtSet(); template void serialize(Handler & h, const int version) @@ -1049,6 +1047,7 @@ struct BulkMoveArtifacts : CArtifactOperationPack h & artsPack1; h & srcArtHolder; h & dstArtHolder; + h & swap; } }; diff --git a/lib/NetPacksLib.cpp b/lib/NetPacksLib.cpp index c51991c2a..a2814b6cf 100644 --- a/lib/NetPacksLib.cpp +++ b/lib/NetPacksLib.cpp @@ -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()); diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 4d53141ac..90ce66823 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -3934,7 +3934,7 @@ bool CGameHandler::bulkMoveArtifacts(ObjectInstanceID srcHero, ObjectInstanceID auto psrcHero = getHero(srcHero); auto pdstHero = getHero(dstHero); BulkMoveArtifacts ma(static_cast>(psrcHero), - static_cast>(pdstHero)); + static_cast>(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>(pleftHero), - static_cast>(prightHero)); - ma.artsPack1 = std::vector(); + static_cast>(prightHero), true); ma.srcArtHolder = static_cast>(prightHero); ma.dstArtHolder = static_cast>(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 * slots) -> void