diff --git a/cockatrice/src/game/cards/card_database.cpp b/cockatrice/src/game/cards/card_database.cpp index b8873c7d2..494533315 100644 --- a/cockatrice/src/game/cards/card_database.cpp +++ b/cockatrice/src/game/cards/card_database.cpp @@ -126,11 +126,11 @@ QList CardDatabase::getCards(const QStringList &cardNames) const return cardInfos; } -QList CardDatabase::getCardsByNameAndProviderId(const QMap &cardNames) const +QList CardDatabase::getCardsByNameAndProviderId(const QList &cardRefs) const { QList cardInfos; - for (const QString &cardName : cardNames) { - CardInfoPtr ptr = getCardByNameAndProviderId(cardName, cardNames[cardName]); + for (const auto &cardRef : cardRefs) { + CardInfoPtr ptr = getCardByNameAndProviderId(cardRef); if (ptr) cardInfos.append(ptr); } @@ -138,16 +138,16 @@ QList CardDatabase::getCardsByNameAndProviderId(const QMapgetSets()) { for (const auto &printing : printings) { - if (printing.getProperty("uuid") == providerId) { + if (printing.getProperty("uuid") == cardRef.providerId) { CardInfoPtr cardFromSpecificSet = info->clone(); cardFromSpecificSet->setPixmapCacheKey(QLatin1String("card_") + QString(info->getName()) + QString("_") + QString(printing.getProperty("uuid"))); @@ -163,14 +163,14 @@ CardInfoPtr CardDatabase::getCardBySimpleName(const QString &cardName) const return simpleNameCards.value(CardInfo::simplifyName(cardName)); } -CardInfoPtr CardDatabase::guessCard(const QString &cardName, const QString &providerId) const +CardInfoPtr CardDatabase::guessCard(const CardRef &cardRef) const { - CardInfoPtr temp = providerId.isEmpty() ? getCard(cardName) : getCardByNameAndProviderId(cardName, providerId); + CardInfoPtr temp = cardRef.providerId.isEmpty() ? getCard(cardRef.name) : getCardByNameAndProviderId(cardRef); if (temp == nullptr) { // get card by simple name instead - temp = getCardBySimpleName(cardName); + temp = getCardBySimpleName(cardRef.name); if (temp == nullptr) { // still could not find the card, so simplify the cardName too - const auto &simpleCardName = CardInfo::simplifyName(cardName); + const auto &simpleCardName = CardInfo::simplifyName(cardRef.name); temp = getCardBySimpleName(simpleCardName); } } @@ -335,9 +335,9 @@ PrintingInfo CardDatabase::getPreferredPrinting(const CardInfoPtr &cardInfo) con return PrintingInfo(nullptr); } -PrintingInfo CardDatabase::getSpecificPrinting(const QString &cardName, const QString &providerId) const +PrintingInfo CardDatabase::getSpecificPrinting(const CardRef &cardRef) const { - CardInfoPtr cardInfo = getCard(cardName); + CardInfoPtr cardInfo = getCard(cardRef.name); if (!cardInfo) { return PrintingInfo(nullptr); } @@ -349,14 +349,14 @@ PrintingInfo CardDatabase::getSpecificPrinting(const QString &cardName, const QS for (const auto &printings : setMap) { for (auto &cardInfoForSet : printings) { - if (cardInfoForSet.getProperty("uuid") == providerId) { + if (cardInfoForSet.getProperty("uuid") == cardRef.providerId) { return cardInfoForSet; } } } - if (providerId.isNull()) { - return getPreferredPrinting(cardName); + if (cardRef.providerId.isNull()) { + return getPreferredPrinting(cardRef.name); } return PrintingInfo(nullptr); @@ -409,13 +409,13 @@ QString CardDatabase::getPreferredPrintingProviderIdForCard(const QString &cardN return defaultCardInfo->getName(); } -bool CardDatabase::isProviderIdForPreferredPrinting(const QString &cardName, const QString &providerId) +bool CardDatabase::isProviderIdForPreferredPrinting(const CardRef &cardRef) { - if (providerId.startsWith("card_")) { - return providerId == - QLatin1String("card_") + cardName + QString("_") + getPreferredPrintingProviderIdForCard(cardName); + if (cardRef.providerId.startsWith("card_")) { + return cardRef.providerId == QLatin1String("card_") + cardRef.name + QString("_") + + getPreferredPrintingProviderIdForCard(cardRef.name); } - return providerId == getPreferredPrintingProviderIdForCard(cardName); + return cardRef.providerId == getPreferredPrintingProviderIdForCard(cardRef.name); } PrintingInfo CardDatabase::getSetInfoForCard(const CardInfoPtr &_card) diff --git a/cockatrice/src/game/cards/card_database.h b/cockatrice/src/game/cards/card_database.h index bc473cc23..653ba94cb 100644 --- a/cockatrice/src/game/cards/card_database.h +++ b/cockatrice/src/game/cards/card_database.h @@ -2,6 +2,7 @@ #define CARDDATABASE_H #include "card_info.h" +#include "card_ref.h" #include #include @@ -67,18 +68,18 @@ public: [[nodiscard]] CardInfoPtr getCard(const QString &cardName) const; [[nodiscard]] QList getCards(const QStringList &cardNames) const; - QList getCardsByNameAndProviderId(const QMap &cardNames) const; - [[nodiscard]] CardInfoPtr getCardByNameAndProviderId(const QString &cardName, const QString &providerId) const; + QList getCardsByNameAndProviderId(const QList &cardRefs) const; + [[nodiscard]] CardInfoPtr getCardByNameAndProviderId(const CardRef &cardRef) const; [[nodiscard]] PrintingInfo getPreferredPrinting(const QString &cardName) const; [[nodiscard]] PrintingInfo getPreferredPrinting(const CardInfoPtr &cardInfo) const; - [[nodiscard]] PrintingInfo getSpecificPrinting(const QString &cardName, const QString &providerId) const; + [[nodiscard]] PrintingInfo getSpecificPrinting(const CardRef &cardRef) const; PrintingInfo getSpecificPrinting(const QString &cardName, const QString &setShortName, const QString &collectorNumber) const; QString getPreferredPrintingProviderIdForCard(const QString &cardName); - bool isProviderIdForPreferredPrinting(const QString &cardName, const QString &providerId); + bool isProviderIdForPreferredPrinting(const CardRef &cardRef); - [[nodiscard]] CardInfoPtr guessCard(const QString &cardName, const QString &providerId = QString()) const; + [[nodiscard]] CardInfoPtr guessCard(const CardRef &cardRef) const; /* * Get a card by its simple name. The name will be simplified in this