mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-14 14:32:15 -07:00
Create new class
This commit is contained in:
parent
4a2a646943
commit
d3a578b307
3 changed files with 126 additions and 0 deletions
|
|
@ -198,6 +198,7 @@ set(cockatrice_SOURCES
|
||||||
src/game/cards/card_database_parser/cockatrice_xml_4.cpp
|
src/game/cards/card_database_parser/cockatrice_xml_4.cpp
|
||||||
src/game/cards/card_info.cpp
|
src/game/cards/card_info.cpp
|
||||||
src/game/cards/card_search_model.cpp
|
src/game/cards/card_search_model.cpp
|
||||||
|
src/game/cards/exact_card.cpp
|
||||||
src/game/deckview/deck_view.cpp
|
src/game/deckview/deck_view.cpp
|
||||||
src/game/deckview/deck_view_container.cpp
|
src/game/deckview/deck_view_container.cpp
|
||||||
src/game/filters/deck_filter_string.cpp
|
src/game/filters/deck_filter_string.cpp
|
||||||
|
|
|
||||||
79
cockatrice/src/game/cards/exact_card.cpp
Normal file
79
cockatrice/src/game/cards/exact_card.cpp
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
#include "exact_card.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default constructor.
|
||||||
|
* This will set the CardInfoPtr to null.
|
||||||
|
* The printing will be the default-constructed PrintingInfo.
|
||||||
|
*/
|
||||||
|
ExactCard::ExactCard()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param _card The card. Can be null.
|
||||||
|
* @param _printing The printing. Can be empty.
|
||||||
|
*/
|
||||||
|
ExactCard::ExactCard(const CardInfoPtr &_card, const PrintingInfo &_printing) : card(_card), printing(_printing)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ExactCard::operator==(const ExactCard &other) const
|
||||||
|
{
|
||||||
|
return this->card == other.card && this->printing == other.printing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience method to safely get the card's name.
|
||||||
|
* @return The name in the CardInfo, or an empty string if card is null
|
||||||
|
*/
|
||||||
|
QString ExactCard::getName() const
|
||||||
|
{
|
||||||
|
return card.isNull() ? "" : card->getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a view of the underlying cardInfoPtr.
|
||||||
|
* @return A const reference to the CardInfo, or an empty CardInfo if card is null
|
||||||
|
*/
|
||||||
|
const CardInfo &ExactCard::getInfo() const
|
||||||
|
{
|
||||||
|
if (card.isNull()) {
|
||||||
|
static CardInfoPtr emptyCard = CardInfo::newInstance("");
|
||||||
|
return *emptyCard;
|
||||||
|
}
|
||||||
|
return *card;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The key used to identify this exact printing in the cache
|
||||||
|
*/
|
||||||
|
QString ExactCard::getPixmapCacheKey() const
|
||||||
|
{
|
||||||
|
QString uuid = printing.getUuid();
|
||||||
|
QString suffix = uuid.isEmpty() ? "" : "_" + uuid;
|
||||||
|
return QLatin1String("card_") + card->getName() + suffix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the card is null or empty.
|
||||||
|
*/
|
||||||
|
bool ExactCard::isEmpty() const
|
||||||
|
{
|
||||||
|
return card.isNull() || card->getName().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if isEmpty() is false
|
||||||
|
*/
|
||||||
|
ExactCard::operator bool() const
|
||||||
|
{
|
||||||
|
return !isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the CardInfo to emit the pixmapUpdated signal
|
||||||
|
*/
|
||||||
|
void ExactCard::emitPixmapUpdated() const
|
||||||
|
{
|
||||||
|
emit card->pixmapUpdated(printing);
|
||||||
|
}
|
||||||
46
cockatrice/src/game/cards/exact_card.h
Normal file
46
cockatrice/src/game/cards/exact_card.h
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
#ifndef EXACT_CARD_H
|
||||||
|
#define EXACT_CARD_H
|
||||||
|
|
||||||
|
#include "card_info.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifies the card along with its exact printing
|
||||||
|
*/
|
||||||
|
class ExactCard
|
||||||
|
{
|
||||||
|
CardInfoPtr card;
|
||||||
|
PrintingInfo printing;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ExactCard();
|
||||||
|
explicit ExactCard(const CardInfoPtr &_card, const PrintingInfo &_printing = PrintingInfo());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the CardInfoPtr. Can be null.
|
||||||
|
*/
|
||||||
|
CardInfoPtr getCardPtr() const
|
||||||
|
{
|
||||||
|
return card;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the PrintingInfo. Can be empty.
|
||||||
|
*/
|
||||||
|
PrintingInfo getPrinting() const
|
||||||
|
{
|
||||||
|
return printing;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const ExactCard &other) const;
|
||||||
|
|
||||||
|
QString getName() const;
|
||||||
|
const CardInfo &getInfo() const;
|
||||||
|
QString getPixmapCacheKey() const;
|
||||||
|
|
||||||
|
bool isEmpty() const;
|
||||||
|
explicit operator bool() const;
|
||||||
|
|
||||||
|
void emitPixmapUpdated() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // EXACT_CARD_H
|
||||||
Loading…
Add table
Add a link
Reference in a new issue