From 2c1e18050cd22c33dbe7754ff56a2b70305aae70 Mon Sep 17 00:00:00 2001 From: "omegablast2002@yahoo.com" Date: Fri, 12 Nov 2010 19:12:19 +0000 Subject: [PATCH] had to add this to prevent crashing in the shop from buying a booster, i understand the need to reduce code but does every single function have to share every other classes functions? this was originally supposed to be a tiny change, but there was no way to define the difference between the card display used by shop and the ones used by grave and library. --- projects/mtg/include/CardDisplay.h | 1 + projects/mtg/src/CardDisplay.cpp | 69 +++++++++++++++++++++++++++++- projects/mtg/src/GameStateShop.cpp | 2 +- 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/projects/mtg/include/CardDisplay.h b/projects/mtg/include/CardDisplay.h index 8faba4c8b..e10f3df34 100644 --- a/projects/mtg/include/CardDisplay.h +++ b/projects/mtg/include/CardDisplay.h @@ -21,6 +21,7 @@ class CardDisplay:public PlayGuiObjectController{ void rotateLeft(); void rotateRight(); bool CheckUserInput(JButton key); + bool CheckUserInputSHOP(JButton key); bool CheckUserInput(int x, int y); virtual void Update(float dt); void Render(); diff --git a/projects/mtg/src/CardDisplay.cpp b/projects/mtg/src/CardDisplay.cpp index b8376f95b..a5b819de0 100644 --- a/projects/mtg/src/CardDisplay.cpp +++ b/projects/mtg/src/CardDisplay.cpp @@ -6,6 +6,7 @@ #include "TargetChooser.h" #include "MTGGameZones.h" #include "GameObserver.h" +#include "GameStateShop.h" CardDisplay::CardDisplay() : mId(0), game(GameObserver::GetInstance()) { tc = NULL; @@ -131,7 +132,6 @@ bool CardDisplay::CheckUserInput(JButton key){ return true; } } - if (!mCount) return false; @@ -189,7 +189,74 @@ bool CardDisplay::CheckUserInput(JButton key){ default: ; } + return false; +} +bool CardDisplay::CheckUserInputSHOP(JButton key){ + if (JGE_BTN_SEC == key || JGE_BTN_PRI == key) + { + if (listener){ + listener->ButtonPressed(mId, 0); + return true; + } + } + if (!mCount) + return false; + + if (mActionButton == key) + { + if (mObjects[mCurr] && mObjects[mCurr]->ButtonPressed()){ + CardGui * cardg = (CardGui *)mObjects[mCurr]; + if (tc) { + tc->toggleTarget(cardg->card); + return true; + } else { + if (game) game->ButtonPressed(cardg); + return true; + } + } + return true; + } + + + switch(key) + { + case JGE_BTN_LEFT : + { + int n = mCurr; + n--; + if (nLeaving(JGE_BTN_LEFT)){ + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; + } + case JGE_BTN_RIGHT : + { + int n = mCurr; + n++; + if (n>= mCount) { + n = mCount-1; + } + if (n>= start_item + nb_displayed_items) { + rotateRight(); + } + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(JGE_BTN_RIGHT)){ + mCurr = n; + mObjects[mCurr]->Entering(); + } + } + return true; + default: + ; + } return false; } diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index dad74b50f..41275ae8c 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -519,7 +519,7 @@ void GameStateShop::Update(float dt) if (btn == JGE_BTN_SEC) deleteDisplay(); else { - boosterDisplay->CheckUserInput(btn); + boosterDisplay->CheckUserInputSHOP(btn); boosterDisplay->Update(dt);} return; }else if (btn == JGE_BTN_SEC)