diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index f3b005ee..3b7078a3 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -14,6 +14,8 @@ #include #include +const int CardDatabase::versionNeeded = 2; + CardSet::CardSet(const QString &_shortName, const QString &_longName) : shortName(_shortName), longName(_longName) { @@ -604,6 +606,8 @@ bool CardDatabase::loadFromFile(const QString &fileName) if (xml.readNext() == QXmlStreamReader::StartElement) { if (xml.name() != "cockatrice_carddatabase") return false; + if (xml.attributes().value("version").toString().toInt() < versionNeeded) + return false; while (!xml.atEnd()) { if (xml.readNext() == QXmlStreamReader::EndElement) break; @@ -628,7 +632,7 @@ bool CardDatabase::saveToFile(const QString &fileName) xml.setAutoFormatting(true); xml.writeStartDocument(); xml.writeStartElement("cockatrice_carddatabase"); - xml.writeAttribute("version", "1"); + xml.writeAttribute("version", QString::number(versionNeeded)); xml.writeStartElement("sets"); QHashIterator setIterator(setHash); diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index 2c403a47..719c9ce3 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -165,6 +165,7 @@ protected: QThread *pictureLoaderThread; PictureLoader *pictureLoader; private: + static const int versionNeeded; void loadCardsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml); public: diff --git a/cockatrice/src/carditem.cpp b/cockatrice/src/carditem.cpp index 04a72a1f..18725b72 100644 --- a/cockatrice/src/carditem.cpp +++ b/cockatrice/src/carditem.cpp @@ -34,6 +34,9 @@ CardItem::~CardItem() { prepareDelete(); + if (scene()) + static_cast(scene())->unregisterAnimationItem(this); + delete cardMenu; delete ptMenu; delete moveMenu; diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 26e40b8c..3a0de8d6 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -92,7 +92,8 @@ CardInfo *OracleImporter::addCard(const QString &setName, if (cardName.contains("XX")) cardName.remove("XX"); cardName = cardName.replace("Æ", "AE"); - + cardName = cardName.replace("’", "'"); + CardInfo *card; if (cardHash.contains(cardName)) { card = cardHash.value(cardName);