added a few tweaks MNguyen sent me for his deck manager
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#include "../include/SimpleMenu.h"
|
||||
#include "../include/DeckStats.h"
|
||||
#include "../include/DeckMetaData.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
int GameState::fillDeckMenu(SimpleMenu * _menu, string path, string smallDeckPrefix, Player * statsPlayer){
|
||||
DeckMetaDataList * metas = DeckMetaDataList::decksMetaData;
|
||||
@@ -102,6 +102,8 @@ int GameState::fillDeckMenu(vector<int> * deckIdList, SimpleMenu * _menu, string
|
||||
|
||||
deckNameVector.sort();
|
||||
int deckNumber = 1;
|
||||
deckIdList->clear();
|
||||
|
||||
for (list<string>::iterator i = deckNameVector.begin(); i != deckNameVector.end(); i++)
|
||||
{
|
||||
string deckName = *i;
|
||||
|
||||
@@ -104,8 +104,8 @@ void GameStateDeckViewer::switchDisplay(){
|
||||
void GameStateDeckViewer::updateDecks(){
|
||||
SAFE_DELETE(welcome_menu);
|
||||
welcome_menu = NEW SimpleMenu(10,this,Constants::MENU_FONT,20,20);
|
||||
|
||||
nbDecks = fillDeckMenu(welcome_menu,options.profileFile());
|
||||
DeckManager * deckManager = DeckManager::GetInstance();
|
||||
nbDecks = fillDeckMenu( deckManager->getPlayerDeckOrderList(), welcome_menu,options.profileFile());
|
||||
deckNum = 0;
|
||||
newDeckname = "";
|
||||
welcome_menu->Add(nbDecks+1, _("--NEW--").c_str());
|
||||
@@ -1431,6 +1431,7 @@ int GameStateDeckViewer::loadDeck(int deckid){
|
||||
void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId)
|
||||
{
|
||||
int deckIdNumber = controlId;
|
||||
int deckListSize = 0;
|
||||
DeckManager *deckManager = DeckManager::GetInstance();
|
||||
vector<int> * deckList;
|
||||
switch(controllerId){
|
||||
@@ -1461,15 +1462,15 @@ void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId)
|
||||
mStage = STAGE_WELCOME;
|
||||
break;
|
||||
}
|
||||
loadDeck(deckIdNumber);
|
||||
mStage = STAGE_WAITING;
|
||||
deckNum = controlId;
|
||||
deckList = deckManager->getPlayerDeckOrderList();
|
||||
//if (deckList->size() > 0 && controlId < deckList->size()) removed this hopefully with no side effects due to not being able to compile for psp because of sighed and unsigned int comparison.
|
||||
// deckIdNumber = deckList->at(controlId);
|
||||
/*else*/
|
||||
|
||||
deckIdNumber = controlId;
|
||||
deckListSize = deckList->size();
|
||||
|
||||
if (deckListSize > 0 && controlId < deckListSize)
|
||||
deckIdNumber = deckList->at(controlId - 1);
|
||||
else
|
||||
deckIdNumber = controlId;
|
||||
|
||||
loadDeck(deckIdNumber);
|
||||
mStage = STAGE_WAITING;
|
||||
deckNum = controlId;
|
||||
|
||||
@@ -100,18 +100,19 @@ void GameStateDuel::Start()
|
||||
}
|
||||
|
||||
if(deckmenu){
|
||||
if (decksneeded){
|
||||
//translate deck creating desc
|
||||
Translator * t = Translator::GetInstance();
|
||||
map<string,string>::iterator it = t->deckValues.find("Create your Deck!");
|
||||
if (it != t->deckValues.end())
|
||||
deckmenu->Add(-1,_("Create your Deck!").c_str(), it->second);
|
||||
else
|
||||
deckmenu->Add(-1,_("Create your Deck!").c_str(),"Highly recommended to get\nthe full Wagic experience!");
|
||||
premadeDeck = true;
|
||||
fillDeckMenu(deckmenu,RESPATH"/player/premade");
|
||||
}
|
||||
if (decksneeded){
|
||||
//translate deck creating desc
|
||||
Translator * t = Translator::GetInstance();
|
||||
map<string,string>::iterator it = t->deckValues.find("Create your Deck!");
|
||||
if (it != t->deckValues.end())
|
||||
deckmenu->Add(-1,_("Create your Deck!").c_str(), it->second);
|
||||
else
|
||||
deckmenu->Add(-1,_("Create your Deck!").c_str(),"Highly recommended to get\nthe full Wagic experience!");
|
||||
premadeDeck = true;
|
||||
fillDeckMenu(deckmenu,RESPATH"/player/premade");
|
||||
}
|
||||
deckmenu->Add(-1,_("New Deck...").c_str());
|
||||
deckmenu->Add(-2, "Main Menu", "Return to Main Menu" );
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; ++i){
|
||||
@@ -225,7 +226,7 @@ void GameStateDuel::ensureOpponentMenu(){
|
||||
opponentMenu->Add(-1,"Evil Twin", "Can you play against yourself?");
|
||||
DeckManager * deckManager = DeckManager::GetInstance();
|
||||
fillDeckMenu( deckManager->getAIDeckOrderList(), opponentMenu, RESPATH"/ai/baka", "ai_baka", mPlayers[0]);
|
||||
opponentMenu->Add(-2,"Cancel", "Back to Main Menu");
|
||||
opponentMenu->Add(-2,"Cancel", "Choose a different player deck");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,9 +393,10 @@ void GameStateDuel::Update(float dt)
|
||||
playerdata->taskList->save();
|
||||
SAFE_DELETE(playerdata);
|
||||
SAFE_DELETE(menu);
|
||||
mParent->DoTransition(TRANSITION_FADE,GAME_STATE_MENU);
|
||||
}
|
||||
}
|
||||
mParent->DoTransition(TRANSITION_FADE,GAME_STATE_MENU);
|
||||
|
||||
break;
|
||||
default:
|
||||
if (JGE_BTN_OK == mEngine->ReadButton())
|
||||
@@ -485,6 +487,7 @@ void GameStateDuel::Render()
|
||||
void GameStateDuel::ButtonPressed(int controllerId, int controlId) {
|
||||
int deckNumber = controlId;
|
||||
DeckManager * deckManager = DeckManager::GetInstance();
|
||||
int aiDeckSize = deckManager->getAIDeckOrderList()->size();
|
||||
switch (controllerId){
|
||||
case DUEL_MENU_CHOOSE_OPPONENT:
|
||||
{
|
||||
@@ -495,16 +498,17 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId) {
|
||||
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
||||
break;
|
||||
default:
|
||||
// cancel option. return to main menu
|
||||
// cancel option. return to player deck selection
|
||||
|
||||
if (controlId == -2)
|
||||
{
|
||||
opponentMenu->Close();
|
||||
mParent->SetNextState( DUEL_STATE_BACK_TO_MAIN_MENU );
|
||||
deckmenu->Close();
|
||||
mParent->SetNextState( DUEL_STATE_CHOOSE_DECK1 );
|
||||
mGamePhase = DUEL_MENU_GAME_MENU;
|
||||
break;
|
||||
}
|
||||
else if ( controlId != -1 && deckManager->getAIDeckOrderList()->size() > 0) // evil twin
|
||||
else if ( controlId != -1 && aiDeckSize > 0) // evil twin
|
||||
deckNumber = deckManager->getAIDeckOrderList()->at( controlId - 1 );
|
||||
|
||||
loadPlayer(1,deckNumber,1);
|
||||
@@ -517,6 +521,13 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId) {
|
||||
}
|
||||
case DUEL_MENU_CHOOSE_DECK:
|
||||
{
|
||||
if (controlId == -2 ) // user clicked on "Cancel"
|
||||
{
|
||||
if ( deckmenu)
|
||||
deckmenu->Close();
|
||||
mGamePhase = DUEL_STATE_BACK_TO_MAIN_MENU;
|
||||
break;
|
||||
}
|
||||
if (controlId < 0){
|
||||
mParent->SetNextState(GAME_STATE_DECK_VIEWER);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user