From 6e1047032d0520b1442e14660b9876aa334fe35b Mon Sep 17 00:00:00 2001 From: Zach H Date: Tue, 31 Dec 2024 14:08:25 -0500 Subject: [PATCH] Keep card annotations on stack (#5399) --- cockatrice/src/game/cards/card_item.cpp | 6 ++++-- cockatrice/src/game/cards/card_item.h | 2 +- cockatrice/src/game/zones/stack_zone.cpp | 2 +- common/server_card.cpp | 6 ++++-- common/server_card.h | 2 +- common/server_player.cpp | 2 +- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cockatrice/src/game/cards/card_item.cpp b/cockatrice/src/game/cards/card_item.cpp index 9f3ec0cc2..31c3b7c0f 100644 --- a/cockatrice/src/game/cards/card_item.cpp +++ b/cockatrice/src/game/cards/card_item.cpp @@ -217,13 +217,15 @@ void CardItem::setAttachedTo(CardItem *_attachedTo) } } -void CardItem::resetState() +void CardItem::resetState(bool keepAnnotations) { attacking = false; facedown = false; counters.clear(); pt.clear(); - annotation.clear(); + if (!keepAnnotations) { + annotation.clear(); + } attachedTo = 0; attachedCards.clear(); setTapped(false, false); diff --git a/cockatrice/src/game/cards/card_item.h b/cockatrice/src/game/cards/card_item.h index 1dd6e9921..d71f0b231 100644 --- a/cockatrice/src/game/cards/card_item.h +++ b/cockatrice/src/game/cards/card_item.h @@ -139,7 +139,7 @@ public: { return attachedCards; } - void resetState(); + void resetState(bool keepAnnotations = false); void processCardInfo(const ServerInfo_Card &_info); QMenu *getCardMenu() const diff --git a/cockatrice/src/game/zones/stack_zone.cpp b/cockatrice/src/game/zones/stack_zone.cpp index 3a6d8d0f2..99413cb20 100644 --- a/cockatrice/src/game/zones/stack_zone.cpp +++ b/cockatrice/src/game/zones/stack_zone.cpp @@ -37,7 +37,7 @@ void StackZone::addCardImpl(CardItem *card, int x, int /*y*/) card->setName(); } card->setParentItem(this); - card->resetState(); + card->resetState(true); card->setVisible(true); card->update(); } diff --git a/common/server_card.cpp b/common/server_card.cpp index c195695e2..0edbae937 100644 --- a/common/server_card.cpp +++ b/common/server_card.cpp @@ -54,13 +54,15 @@ Server_Card::~Server_Card() } } -void Server_Card::resetState() +void Server_Card::resetState(bool keepAnnotations) { counters.clear(); setTapped(false); setAttacking(false); setPT(QString()); - setAnnotation(QString()); + if (!keepAnnotations) { + setAnnotation(QString()); + } setDoesntUntap(false); } diff --git a/common/server_card.h b/common/server_card.h index bdf82dab8..4529e08cd 100644 --- a/common/server_card.h +++ b/common/server_card.h @@ -218,7 +218,7 @@ public: return oldStashedCard; } - void resetState(); + void resetState(bool keepAnnotations = false); QString setAttribute(CardAttribute attribute, const QString &avalue, bool allCards); QString setAttribute(CardAttribute attribute, const QString &avalue, Event_SetCardAttr *event = nullptr); diff --git a/common/server_player.cpp b/common/server_player.cpp index 19ebe7f97..5f0fd688c 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -548,7 +548,7 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, newX = targetzone->getFreeGridColumn(newX, yCoord, card->getName(), faceDown); } else { yCoord = 0; - card->resetState(); + card->resetState(targetzone->getName() == "stack"); } targetzone->insertCard(card, newX, yCoord);