From 2030d34643136410218ede4c5bd0a7083ca2c3e2 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew" Date: Sat, 10 Dec 2011 01:05:59 +0000 Subject: [PATCH] Fix for issue 766 ("cancel" on opponent deck selection goes to the deckeditor) --- projects/mtg/src/GameStateDuel.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index a5b180663..3f7534211 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -38,6 +38,7 @@ enum ENUM_DUEL_STATE DUEL_STATE_DECK1_DETAILED_INFO, DUEL_STATE_DECK2_DETAILED_INFO, DUEL_STATE_CHOOSE_DECK1_TO_2, + DUEL_STATE_CHOOSE_DECK2_TO_1, DUEL_STATE_CHOOSE_DECK2, DUEL_STATE_CHOOSE_DECK2_TO_PLAY, DUEL_STATE_ERROR_NO_DECK, @@ -373,6 +374,12 @@ void GameStateDuel::Update(float dt) else deckmenu->Update(dt); break; + case DUEL_STATE_CHOOSE_DECK2_TO_1: + if (opponentMenu->isClosed()) + setGamePhase(DUEL_STATE_CHOOSE_DECK1); + else + opponentMenu->Update(dt); + break; case DUEL_STATE_CHOOSE_DECK2: if (mParent->players[1] == PLAYER_TYPE_HUMAN) deckmenu->Update(dt); @@ -674,7 +681,7 @@ void GameStateDuel::Render() mFont->DrawString(_("LOADING DECKS").c_str(), 0, SCREEN_HEIGHT / 2); else { - if (opponentMenu) + if (opponentMenu && !opponentMenu->isClosed()) opponentMenu->Render(); else if (deckmenu && !deckmenu->isClosed()) deckmenu->Render(); @@ -766,8 +773,7 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId) { opponentMenu->Close(); deckmenu->Close(); - mParent->SetNextState(DUEL_STATE_CHOOSE_DECK1); - setGamePhase(DUEL_STATE_CHOOSE_DECK1); + setGamePhase(DUEL_STATE_CHOOSE_DECK2_TO_1); break; }