From f53eecff1581da1e685c40da2ddbb694465cfe83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 30 Aug 2026 22:50:14 +0200 Subject: [PATCH] [Game] Collect deck-view cards via DeckList::getCardNodes --- .../src/game_graphics/deckview/deck_view.cpp | 27 ++++++------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/cockatrice/src/game_graphics/deckview/deck_view.cpp b/cockatrice/src/game_graphics/deckview/deck_view.cpp index de7726c0f..1acd02a75 100644 --- a/cockatrice/src/game_graphics/deckview/deck_view.cpp +++ b/cockatrice/src/game_graphics/deckview/deck_view.cpp @@ -8,10 +8,8 @@ #include #include #include -#include #include #include -#include #include DeckViewCardDragItem::DeckViewCardDragItem(DeckViewCard *_item, @@ -383,24 +381,15 @@ void DeckViewScene::rebuildTree() } // Cards in custom zones nested under a board are regular board cards in-game. - // They are collected recursively and reported with the top-level board zone - // as their origin, so that sideboard plans keep working. - std::function addZoneCards = [&addZoneCards, container, currentZone, - this](const InnerDecklistNode *zone) { - for (int j = 0; j < zone->size(); j++) { - auto *currentCard = dynamic_cast(zone->at(j)); - if (currentCard) { - for (int k = 0; k < currentCard->getNumber(); ++k) { - auto *newCard = new DeckViewCard(container, currentCard->toCardRef(), currentZone->getName()); - container->addCard(newCard); - emit newCardAdded(newCard); - } - } else if (auto *innerZone = dynamic_cast(zone->at(j))) { - addZoneCards(innerZone); - } + // They are collected recursively (like every other consumer) and reported with + // the top-level board zone as their origin, so that sideboard plans keep working. + for (auto *currentCard : deck->getCardNodes({currentZone->getName()})) { + for (int k = 0; k < currentCard->getNumber(); ++k) { + auto *newCard = new DeckViewCard(container, currentCard->toCardRef(), currentZone->getName()); + container->addCard(newCard); + emit newCardAdded(newCard); } - }; - addZoneCards(currentZone); + } } }