First attempt to reduce load time of player deck selection screens.

This change makes use of caching the DeckStats and DeckStatsWrappers into singleton caches that
get flushed when you quit the game.  The initial load time will be significant as lazy loading has not
been coded yet for the ai decks.

TODO: lazy load the player and ai decks as they appear on the screen.  Currently, each screen loads
all decks.
This commit is contained in:
techdragon.nguyen@gmail.com
2011-01-27 16:13:40 +00:00
parent e87f5edaf5
commit ce7745bfa6
10 changed files with 213 additions and 101 deletions

View File

@@ -15,9 +15,10 @@ class GameObserver;
class DeckStat
{
public:
DeckStat(int _nbgames = 0, int _victories = 0);
int nbgames;
int victories;
DeckStat(int _nbgames = 0, int _victories = 0);
int percentVictories();
};
@@ -26,8 +27,12 @@ class DeckStats
protected:
static DeckStats * mInstance;
public:
map<string, DeckStat *> stats;
//map<string, DeckStat *> stats; // current set of statistics
string currentDeck;
map<string, map<string,DeckStat*> > masterDeckStats;
static DeckStats * GetInstance();
static void EndInstance();
void saveStats(Player * player, Player * opponent, GameObserver * game);
void save(const char * filename);
void save(Player * player);