mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-09 17:44:01 -07:00
remove more non-const uses of forEachCard
This commit is contained in:
parent
35f8c9f444
commit
1f30e8cfc8
1 changed files with 20 additions and 21 deletions
|
|
@ -269,6 +269,23 @@ static QString toDecklistExportString(const DecklistCardNode *card)
|
||||||
return cardString;
|
return cardString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts all cards in the list to their decklist export string and joins them into one string
|
||||||
|
*/
|
||||||
|
static QString toDecklistExportString(const QList<DecklistCardNode *> &cardNodes)
|
||||||
|
{
|
||||||
|
QString cardsString;
|
||||||
|
for (auto card : cardNodes) {
|
||||||
|
// Get the card name
|
||||||
|
// If it's a token, we don't care about the card.
|
||||||
|
CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
|
||||||
|
if (dbCard && !dbCard->getIsToken()) {
|
||||||
|
cardsString += toDecklistExportString(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cardsString;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Export deck to decklist function, called to format the deck in a way to be sent to a server
|
* Export deck to decklist function, called to format the deck in a way to be sent to a server
|
||||||
*
|
*
|
||||||
|
|
@ -279,29 +296,11 @@ QString DeckLoader::exportDeckToDecklist(const DeckList *deckList, DecklistWebsi
|
||||||
{
|
{
|
||||||
// Add the base url
|
// Add the base url
|
||||||
QString deckString = "https://" + getDomainForWebsite(website) + "/?";
|
QString deckString = "https://" + getDomainForWebsite(website) + "/?";
|
||||||
// Create two strings to pass to function
|
|
||||||
QString mainBoardCards, sideBoardCards;
|
|
||||||
|
|
||||||
// Set up the function to call
|
// export all cards in zone
|
||||||
auto formatDeckListForExport = [&mainBoardCards, &sideBoardCards](const auto *node, const auto *card) {
|
QString mainBoardCards = toDecklistExportString(deckList->getCardNodes({DECK_ZONE_MAIN}));
|
||||||
// Get the card name
|
QString sideBoardCards = toDecklistExportString(deckList->getCardNodes({DECK_ZONE_SIDE}));
|
||||||
CardInfoPtr dbCard = CardDatabaseManager::query()->getCardInfo(card->getName());
|
|
||||||
if (!dbCard || dbCard->getIsToken()) {
|
|
||||||
// If it's a token, we don't care about the card.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if it's a sideboard card.
|
|
||||||
if (node->getName() == DECK_ZONE_SIDE) {
|
|
||||||
sideBoardCards += toDecklistExportString(card);
|
|
||||||
} else {
|
|
||||||
// If it's a mainboard card, do the same thing, but for the mainboard card string
|
|
||||||
mainBoardCards += toDecklistExportString(card);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// call our struct function for each card in the deck
|
|
||||||
deckList->forEachCard(formatDeckListForExport);
|
|
||||||
// Remove the extra return at the end of the last cards
|
// Remove the extra return at the end of the last cards
|
||||||
mainBoardCards.chop(3);
|
mainBoardCards.chop(3);
|
||||||
sideBoardCards.chop(3);
|
sideBoardCards.chop(3);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue