Issue 634:

Fixed.  Had to clear the DeckManager whenever the player deck selection screen is displayed.
TODO: Need to implement a caching mechanism that caches the deck information based on deck selection and not a global one.
Currently DeckManager is effectively treating the DeckMetaData as global data.

*some minor tweaks to how deck information is managed/created
This commit is contained in:
techdragon.nguyen@gmail.com
2011-04-21 08:32:32 +00:00
parent 29eea1d39c
commit 8ed84aa97d
3 changed files with 4 additions and 4 deletions
-2
View File
@@ -271,14 +271,12 @@ void DeckMenu::Render()
mainFont->DrawString(text.c_str(), descX, descY); mainFont->DrawString(text.c_str(), descX, descY);
mFont->SetColor(ARGB(255,255,255,255)); mFont->SetColor(ARGB(255,255,255,255));
// fill in the statistical portion // fill in the statistical portion
if (currentMenuItem->meta) if (currentMenuItem->meta)
{ {
ostringstream oss; ostringstream oss;
oss << _("Deck: ") << currentMenuItem->meta->getName() << endl; oss << _("Deck: ") << currentMenuItem->meta->getName() << endl;
oss << currentMenuItem->meta->getStatsSummary(); oss << currentMenuItem->meta->getStatsSummary();
mainFont->DrawString(oss.str(), statsX, statsY); mainFont->DrawString(oss.str(), statsX, statsY);
} }
} }
+3 -2
View File
@@ -56,7 +56,7 @@ void DeckMetaData::LoadStats()
DeckStat * opponentDeckStats = stats->getDeckStat(mStatsFilename); DeckStat * opponentDeckStats = stats->getDeckStat(mStatsFilename);
if (opponentDeckStats) if (opponentDeckStats)
{ {
mPercentVictories = stats->percentVictories(mStatsFilename); mPercentVictories = opponentDeckStats->percentVictories();
mVictories = opponentDeckStats->victories; mVictories = opponentDeckStats->victories;
mGamesPlayed = opponentDeckStats->nbgames; mGamesPlayed = opponentDeckStats->nbgames;
mColorIndex = opponentDeckStats->manaColorIndex; mColorIndex = opponentDeckStats->manaColorIndex;
@@ -73,6 +73,7 @@ void DeckMetaData::LoadStats()
{ {
mDifficulty = EASY; mDifficulty = EASY;
} }
mStatsLoaded = true;
} }
} }
else else
@@ -83,10 +84,10 @@ void DeckMetaData::LoadStats()
mGamesPlayed = stats->nbGames(); mGamesPlayed = stats->nbGames();
mPercentVictories = stats->percentVictories(); mPercentVictories = stats->percentVictories();
mVictories = static_cast<int>(mGamesPlayed * (mPercentVictories / 100.0f)); mVictories = static_cast<int>(mGamesPlayed * (mPercentVictories / 100.0f));
mStatsLoaded = true;
} }
} }
mStatsLoaded = true;
} }
} }
+1
View File
@@ -115,6 +115,7 @@ void GameStateDuel::Start()
{ {
if (mParent->players[i] == PLAYER_TYPE_HUMAN) if (mParent->players[i] == PLAYER_TYPE_HUMAN)
{ {
DeckManager::EndInstance();
decksneeded = 1; decksneeded = 1;
deckmenu = NEW DeckMenu(DUEL_MENU_CHOOSE_DECK, this, Fonts::OPTION_FONT, "Choose a Deck", deckmenu = NEW DeckMenu(DUEL_MENU_CHOOSE_DECK, this, Fonts::OPTION_FONT, "Choose a Deck",