From a7232513a75ec54388703bc8c37dd1661f5e89e3 Mon Sep 17 00:00:00 2001 From: ebbit1q Date: Mon, 17 Oct 2022 22:35:54 +0200 Subject: [PATCH] remove cards being looked at from the count on drawing (#4671) --- common/server_cardzone.h | 2 +- common/server_player.cpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/server_cardzone.h b/common/server_cardzone.h index 41560e1e..51aefbaf 100644 --- a/common/server_cardzone.h +++ b/common/server_cardzone.h @@ -68,7 +68,7 @@ public: } void setCardsBeingLookedAt(int _cardsBeingLookedAt) { - cardsBeingLookedAt = _cardsBeingLookedAt; + cardsBeingLookedAt = qMax(0, _cardsBeingLookedAt); } bool isCardAtPosLookedAt(int pos) const; bool hasCoords() const diff --git a/common/server_player.cpp b/common/server_player.cpp index ee78a7fb..ea8a6de7 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -337,7 +337,11 @@ Response::ResponseCode Server_Player::drawCards(GameEventStorage &ges, int numbe ges.enqueueGameEvent(eventPrivate, playerId, GameEventStorageItem::SendToPrivate, playerId); ges.enqueueGameEvent(eventOthers, playerId, GameEventStorageItem::SendToOthers); - revealTopCardIfNeeded(deckZone, ges); + if (number > 0) { + revealTopCardIfNeeded(deckZone, ges); + int currentKnownCards = deckZone->getCardsBeingLookedAt(); + deckZone->setCardsBeingLookedAt(currentKnownCards - number); + } return Response::RespOk; }