1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-15 20:03:15 +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); callInterfaceIfPresent(cl, dstLoc.owningPlayer(), &IGameEventsReceiver::artifactMoved, srcLoc, dstLoc);
} }
if (artsPack1.has_value()) if (swap)
{ {
movingArts = artsPack1.value(); movingArts = artsPack1;
for (auto & slotToMove : movingArts) for (auto & slotToMove : movingArts)
{ {
auto srcLoc = ArtifactLocation(srcArtHolder, slotToMove.srcPos); auto srcLoc = ArtifactLocation(srcArtHolder, slotToMove.srcPos);

View File

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

View File

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

View File

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