From e2fe25735b30e13961c1af3c984c8e33ce6c0be3 Mon Sep 17 00:00:00 2001 From: Gavin Bises Date: Wed, 28 Jan 2015 20:28:38 -0500 Subject: [PATCH] Parse cmc from json and store in cards.xml --- cockatrice/src/carddatabase.cpp | 9 +++++++-- cockatrice/src/carddatabase.h | 4 ++++ oracle/src/oracleimporter.cpp | 8 ++++++-- oracle/src/oracleimporter.h | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index 3cd9f313..f798b1e1 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -365,6 +365,7 @@ CardInfo::CardInfo(CardDatabase *_db, const QString &_name, bool _isToken, const QString &_manacost, + const QString &_cmc, const QString &_cardtype, const QString &_powtough, const QString &_text, @@ -381,6 +382,7 @@ CardInfo::CardInfo(CardDatabase *_db, isToken(_isToken), sets(_sets), manacost(_manacost), + cmc(_cmc), cardtype(_cardtype), powtough(_powtough), text(_text), @@ -571,6 +573,7 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfo *info) xml.writeTextElement("color", colors[i]); xml.writeTextElement("manacost", info->getManaCost()); + xml.writeTextElement("cmc", info->getCmc()); xml.writeTextElement("type", info->getCardType()); if (!info->getPowTough().isEmpty()) xml.writeTextElement("pt", info->getPowTough()); @@ -731,7 +734,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens) if (xml.readNext() == QXmlStreamReader::EndElement) break; if (xml.name() == "card") { - QString name, manacost, type, pt, text; + QString name, manacost, cmc, type, pt, text; QStringList colors; QStringMap customPicURLs, customPicURLsHq; MuidMap muids; @@ -747,6 +750,8 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens) name = xml.readElementText(); else if (xml.name() == "manacost") manacost = xml.readElementText(); + else if (xml.name() == "cmc") + cmc = xml.readElementText().toInt(); else if (xml.name() == "type") type = xml.readElementText(); else if (xml.name() == "pt") @@ -779,7 +784,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens) } if (isToken == tokens) { - addCard(new CardInfo(this, name, isToken, manacost, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids)); + addCard(new CardInfo(this, name, isToken, manacost, cmc, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids)); } } } diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index bbd0260f..56e18bc4 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -111,6 +111,7 @@ private: bool isToken; SetList sets; QString manacost; + QString cmc; QString cardtype; QString powtough; QString text; @@ -126,6 +127,7 @@ public: const QString &_name = QString(), bool _isToken = false, const QString &_manacost = QString(), + const QString &_cmc = QString(), const QString &_cardtype = QString(), const QString &_powtough = QString(), const QString &_text = QString(), @@ -142,12 +144,14 @@ public: bool getIsToken() const { return isToken; } const SetList &getSets() const { return sets; } const QString &getManaCost() const { return manacost; } + const QString &getCmc() const { return cmc; } const QString &getCardType() const { return cardtype; } const QString &getPowTough() const { return powtough; } const QString &getText() const { return text; } const int &getLoyalty() const { return loyalty; } bool getCipt() const { return cipt; } void setManaCost(const QString &_manaCost) { manacost = _manaCost; emit cardInfoChanged(this); } + void setCmc(const QString &_cmc) { cmc = _cmc; emit cardInfoChanged(this); } void setCardType(const QString &_cardType) { cardtype = _cardType; emit cardInfoChanged(this); } void setPowTough(const QString &_powTough) { powtough = _powTough; emit cardInfoChanged(this); } void setText(const QString &_text) { text = _text; emit cardInfoChanged(this); } diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 54ff9958..ba47b61c 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -65,6 +65,7 @@ CardInfo *OracleImporter::addCard(const QString &setName, bool isToken, int cardId, QString &cardCost, + QString &cmc, const QString &cardType, const QString &cardPT, int cardLoyalty, @@ -117,7 +118,7 @@ CardInfo *OracleImporter::addCard(const QString &setName, bool cipt = (cardText.contains(cardName + " enters the battlefield tapped.")); - card = new CardInfo(this, cardName, isToken, cardCost, cardType, cardPT, fullCardText, colors, cardLoyalty, cipt); + card = new CardInfo(this, cardName, isToken, cardCost, cmc, cardType, cardPT, fullCardText, colors, cardLoyalty, cipt); int tableRow = 1; QString mainCardType = card->getMainCardType(); if ((mainCardType == "Land") || mArtifact) @@ -143,6 +144,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data) QVariantMap map; QString cardName; QString cardCost; + QString cmc; QString cardType; QString cardPT; QString cardText; @@ -192,6 +194,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data) // add second card's data cardName += card2->contains("name") ? QString(" // ") + card2->value("name").toString() : QString(""); cardCost += card2->contains("manaCost") ? QString(" // ") + card2->value("manaCost").toString() : QString(""); + cmc += card2->contains("cmc") ? QString(" // ") + card2->value("cmc").toString() : QString(""); cardType += card2->contains("type") ? QString(" // ") + card2->value("type").toString() : QString(""); cardPT += card2->contains("power") || card2->contains("toughness") ? QString(" // ") + card2->value("power").toString() + QString('/') + card2->value("toughness").toString() : QString(""); cardText += card2->contains("text") ? QString("\n\n---\n\n") + card2->value("text").toString() : QString(""); @@ -204,6 +207,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data) // normal cards handling cardName = map.contains("name") ? map.value("name").toString() : QString(""); cardCost = map.contains("manaCost") ? map.value("manaCost").toString() : QString(""); + cmc = map.contains("cmc") ? map.value("cmc").toString() : QString(""); cardType = map.contains("type") ? map.value("type").toString() : QString(""); cardPT = map.contains("power") || map.contains("toughness") ? map.value("power").toString() + QString('/') + map.value("toughness").toString() : QString(""); cardText = map.contains("text") ? map.value("text").toString() : QString(""); @@ -218,7 +222,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data) } if (!cardIsToken) { - CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cardType, cardPT, cardLoyalty, cardText.split("\n")); + CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText.split("\n")); if (!set->contains(card)) { card->addToSet(set); diff --git a/oracle/src/oracleimporter.h b/oracle/src/oracleimporter.h index 27d89085..7bbb5363 100644 --- a/oracle/src/oracleimporter.h +++ b/oracle/src/oracleimporter.h @@ -32,7 +32,7 @@ private: QVariantMap setsMap; QString dataDir; - CardInfo *addCard(const QString &setName, QString cardName, bool isToken, int cardId, QString &cardCost, const QString &cardType, const QString &cardPT, int cardLoyalty, const QStringList &cardText); + CardInfo *addCard(const QString &setName, QString cardName, bool isToken, int cardId, QString &cardCost, QString &cmc, const QString &cardType, const QString &cardPT, int cardLoyalty, const QStringList &cardText); signals: void setIndexChanged(int cardsImported, int setIndex, const QString &setName); void dataReadProgress(int bytesRead, int totalBytes);