This still could be improved - DeckMetaData's constructor loads an MTGDeck object to parse out the name of a deck from its file. This means that we crack open 106 files on the first attempt to show the list of opponent decks. I started optimizing this, but reverted, as the list itself is sorted alphabetically. Currently, with these mods, it's still taking 4 1/2 seconds on my psp to load the opponent list on the first go around. While at it, did some cleanup - removed the need for passing around a player pointer in some of the DeckStat functions, etc.
73 lines
1.3 KiB
C++
73 lines
1.3 KiB
C++
#ifndef _DECKMETADATA_H_
|
|
#define _DECKMETADATA_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <map>
|
|
#include "DeckStats.h"
|
|
|
|
using namespace std;
|
|
enum DECK_DIFFICULTY
|
|
{
|
|
HARD = -1,
|
|
NORMAL = 0,
|
|
EASY = 1
|
|
};
|
|
|
|
class DeckMetaData
|
|
{
|
|
private:
|
|
string mFilename;
|
|
string mDescription;
|
|
string mName;
|
|
int mDeckId;
|
|
string mAvatarFilename;
|
|
|
|
// statistical information
|
|
int mGamesPlayed, mVictories, mPercentVictories, mDifficulty;
|
|
|
|
DeckMetaData();
|
|
|
|
public:
|
|
DeckMetaData(const string& filename);
|
|
void LoadDeck();
|
|
void LoadStats();
|
|
|
|
// Accessors
|
|
string getFilename();
|
|
string getDescription();
|
|
string getName();
|
|
string getAvatarFilename();
|
|
int getAvatarId(int deckId);
|
|
string getStatsSummary();
|
|
|
|
int getDeckId();
|
|
int getGamesPlayed();
|
|
int getVictories();
|
|
int getVictoryPercentage();
|
|
int getDifficulty();
|
|
string getDifficultyString();
|
|
|
|
void Invalidate();
|
|
|
|
string mStatsFilename;
|
|
string mPlayerDeck;
|
|
bool mDeckLoaded;
|
|
bool mStatsLoaded;
|
|
bool mIsAI;
|
|
};
|
|
|
|
class DeckMetaDataList
|
|
{
|
|
private:
|
|
map<string, DeckMetaData *> values;
|
|
|
|
public:
|
|
void invalidate(string filename);
|
|
DeckMetaData * get(string filename);
|
|
~DeckMetaDataList();
|
|
static DeckMetaDataList * decksMetaData;
|
|
};
|
|
|
|
#endif
|