fixed deck name display for when "Random" player deck is chosen.

This commit is contained in:
techdragon.nguyen@gmail.com
2012-02-20 07:32:14 +00:00
parent 431ba4d1dd
commit 8468505f1e
3 changed files with 29 additions and 10 deletions

View File

@@ -46,7 +46,6 @@ protected:
string getDescription(); string getDescription();
string getMetaInformation(); string getMetaInformation();
DeckMetaData *mSelectedDeck; DeckMetaData *mSelectedDeck;
int mSelectedDeckId;
bool mShowDetailsScreen; bool mShowDetailsScreen;
bool mAlwaysShowDetailsButton; bool mAlwaysShowDetailsButton;
bool mClosed; bool mClosed;
@@ -55,7 +54,15 @@ public:
VerticalTextScroller * mScroller; VerticalTextScroller * mScroller;
bool mAutoTranslate; bool mAutoTranslate;
float mSelectionTargetY; float mSelectionTargetY;
int getSelectedDeckId() const
{
return mSelectedDeck->getDeckId();
}
void selectDeck(int deckId, bool isAi);
void selectRandomDeck(bool isAi);
//used for detailed info button //used for detailed info button
JQuadPtr pspIcons[8]; JQuadPtr pspIcons[8];
JTexture * pspIconsTexture; JTexture * pspIconsTexture;
@@ -68,7 +75,6 @@ public:
bool showDetailsScreen(); bool showDetailsScreen();
virtual bool isClosed() const { return mClosed; } virtual bool isClosed() const { return mClosed; }
virtual int getSelectedDeckId() const { return mSelectedDeckId; }
virtual void Render(); virtual void Render();
virtual void Update(float dt); virtual void Update(float dt);

View File

@@ -3,6 +3,7 @@
#include "DeckMenu.h" #include "DeckMenu.h"
#include "DeckMenuItem.h" #include "DeckMenuItem.h"
#include "DeckMetaData.h" #include "DeckMetaData.h"
#include "DeckManager.h"
#include "InteractiveButton.h" #include "InteractiveButton.h"
#include "JTypes.h" #include "JTypes.h"
#include "GameApp.h" #include "GameApp.h"
@@ -65,8 +66,6 @@ JGuiController(JGE::GetInstance(), id, listener), fontId(fontId), mShowDetailsSc
statsHeight = 50; statsHeight = 50;
statsWidth = 227; statsWidth = 227;
mSelectedDeckId = startIndex;
avatarX = 232; avatarX = 232;
avatarY = 11; avatarY = 11;
@@ -213,6 +212,21 @@ void DeckMenu::initMenuItems()
#endif #endif
} }
void DeckMenu::selectRandomDeck(bool isAi)
{
DeckManager *deckManager = DeckManager::GetInstance();
vector<DeckMetaData *> *deckList = isAi ? deckManager->getAIDeckOrderList() : deckManager->getPlayerDeckOrderList();
int random = (WRand() * 1000) % deckList->size();
selectDeck( random, isAi );
}
void DeckMenu::selectDeck(int deckId, bool isAi)
{
DeckManager *deckManager = DeckManager::GetInstance();
vector<DeckMetaData *> *deckList = isAi ? deckManager->getAIDeckOrderList() : deckManager->getPlayerDeckOrderList();
mSelectedDeck = deckList->at(deckId);
}
void DeckMenu::Render() void DeckMenu::Render()
{ {
JRenderer * renderer = JRenderer::GetInstance(); JRenderer * renderer = JRenderer::GetInstance();
@@ -243,7 +257,6 @@ void DeckMenu::Render()
if (currentMenuItem->hasFocus()) if (currentMenuItem->hasFocus())
{ {
mSelectedDeckId = i;
mSelectedDeck = metaData; mSelectedDeck = metaData;
WFont *mainFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT); WFont *mainFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT);

View File

@@ -688,7 +688,7 @@ void GameStateDuel::Render()
{ {
opponentMenu->Render(); opponentMenu->Render();
// display the selected player deck name too // display the selected player deck name too
string selectedPlayerDeckName = "Player Deck: " + deckmenu->getSelectedDeck()->getName(); string selectedPlayerDeckName = "Player Deck: " + game->players[0]->deckName;
mFont->DrawString( selectedPlayerDeckName.c_str(), 30, 40); mFont->DrawString( selectedPlayerDeckName.c_str(), 30, 40);
} }
else if (deckmenu && !deckmenu->isClosed()) deckmenu->Render(); else if (deckmenu && !deckmenu->isClosed()) deckmenu->Render();
@@ -831,9 +831,9 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId)
if (controlId == MENUITEM_RANDOM_PLAYER) // Random Player Deck Selection if (controlId == MENUITEM_RANDOM_PLAYER) // Random Player Deck Selection
{ {
vector<DeckMetaData *> * playerDeckList = deckManager->getPlayerDeckOrderList(); deckmenu->selectRandomDeck(false);
deckNumber = playerDeckList->at(WRand() % (playerDeckList->size()))->getDeckId();
game->loadPlayer(0, mParent->players[0], deckNumber, premadeDeck); game->loadPlayer(0, mParent->players[0], deckmenu->getSelectedDeckId(), premadeDeck);
deckmenu->Close(); deckmenu->Close();
setGamePhase(DUEL_STATE_CHOOSE_DECK2_TO_PLAY); setGamePhase(DUEL_STATE_CHOOSE_DECK2_TO_PLAY);
break; break;