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

View File

@@ -3,6 +3,7 @@
#include "DeckMenu.h"
#include "DeckMenuItem.h"
#include "DeckMetaData.h"
#include "DeckManager.h"
#include "InteractiveButton.h"
#include "JTypes.h"
#include "GameApp.h"
@@ -65,8 +66,6 @@ JGuiController(JGE::GetInstance(), id, listener), fontId(fontId), mShowDetailsSc
statsHeight = 50;
statsWidth = 227;
mSelectedDeckId = startIndex;
avatarX = 232;
avatarY = 11;
@@ -213,6 +212,21 @@ void DeckMenu::initMenuItems()
#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()
{
JRenderer * renderer = JRenderer::GetInstance();
@@ -243,7 +257,6 @@ void DeckMenu::Render()
if (currentMenuItem->hasFocus())
{
mSelectedDeckId = i;
mSelectedDeck = metaData;
WFont *mainFont = WResourceManager::Instance()->GetWFont(Fonts::MAIN_FONT);

View File

@@ -688,7 +688,7 @@ void GameStateDuel::Render()
{
opponentMenu->Render();
// 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);
}
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
{
vector<DeckMetaData *> * playerDeckList = deckManager->getPlayerDeckOrderList();
deckNumber = playerDeckList->at(WRand() % (playerDeckList->size()))->getDeckId();
game->loadPlayer(0, mParent->players[0], deckNumber, premadeDeck);
deckmenu->selectRandomDeck(false);
game->loadPlayer(0, mParent->players[0], deckmenu->getSelectedDeckId(), premadeDeck);
deckmenu->Close();
setGamePhase(DUEL_STATE_CHOOSE_DECK2_TO_PLAY);
break;