mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-01 02:53:56 -07:00
[DeckList] Refactor and cleanup methods that iterate over nodes (#6407)
* remove helpers * create getZoneNodes method * replace direct calls to getRoot and forEachCard * remove more non-const uses of forEachCard * make node getter return const lists * one more usage * address comment * address comment again * fix hash * fix hashes (for real this time)
This commit is contained in:
parent
a390c8ada7
commit
2e2682aad4
16 changed files with 125 additions and 202 deletions
|
|
@ -102,28 +102,16 @@ void Server_Player::setupZones()
|
|||
// ------------------------------------------------------------------
|
||||
|
||||
// Assign card ids and create deck from deck list
|
||||
InnerDecklistNode *listRoot = deck->getRoot();
|
||||
for (int i = 0; i < listRoot->size(); ++i) {
|
||||
auto *currentZone = dynamic_cast<InnerDecklistNode *>(listRoot->at(i));
|
||||
Server_CardZone *z;
|
||||
if (currentZone->getName() == DECK_ZONE_MAIN) {
|
||||
z = deckZone;
|
||||
} else if (currentZone->getName() == DECK_ZONE_SIDE) {
|
||||
z = sbZone;
|
||||
} else {
|
||||
continue;
|
||||
auto insertCardsIntoZone = [this](auto cards, auto *zone) {
|
||||
for (auto card : cards) {
|
||||
for (int k = 0; k < card->getNumber(); ++k) {
|
||||
zone->insertCard(new Server_Card(card->toCardRef(), nextCardId++, 0, 0, zone), -1, 0);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
for (int j = 0; j < currentZone->size(); ++j) {
|
||||
auto *currentCard = dynamic_cast<DecklistCardNode *>(currentZone->at(j));
|
||||
if (!currentCard) {
|
||||
continue;
|
||||
}
|
||||
for (int k = 0; k < currentCard->getNumber(); ++k) {
|
||||
z->insertCard(new Server_Card(currentCard->toCardRef(), nextCardId++, 0, 0, z), -1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
insertCardsIntoZone(deck->getCardNodes({DECK_ZONE_MAIN}), deckZone);
|
||||
insertCardsIntoZone(deck->getCardNodes({DECK_ZONE_SIDE}), sbZone);
|
||||
|
||||
const QList<MoveCard_ToZone> &sideboardPlan = deck->getCurrentSideboardPlan();
|
||||
for (const auto &m : sideboardPlan) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue