#ifndef _DECKDATAWRAPPER_H_ #define _DECKDATAWRAPPER_H_ #include "../include/MTGDefinitions.h" #include "../include/MTGCard.h" #include #include using std::map; using std::string; class MTGDeck; class Cmp1 { // compares cards by their name public: bool operator()(MTGCard * card1, MTGCard * card2) const { if (!card2) return true; if (!card1) return false; int result = card1->name.compare(card2->name); if (!result) return card1->getMTGId() < card2->getMTGId(); return ( result < 0); } }; class DeckDataWrapper{ public: int colors[Constants::MTG_NB_COLORS+1]; int currentColor; map cards; MTGDeck * parent; DeckDataWrapper(MTGDeck * deck); ~DeckDataWrapper(); int Add(MTGCard * card, int quantity = 1); int Add(MTGDeck * deck); int Remove(MTGCard * card); MTGCard * getNext(MTGCard * previous = NULL, int color = -1); MTGCard * getPrevious(MTGCard * next = NULL, int color = -1); void updateCounts(MTGCard * card = NULL, int quantity = 1); int getCount(int color = -1); int totalPrice(); void save(); int countByName(MTGCard * card); int count(MTGCard * card); }; #endif