From 3518166189c5a94c2bd40db23a24ec07d0fa90b8 Mon Sep 17 00:00:00 2001 From: "jean.chalard" Date: Mon, 24 Nov 2008 12:11:16 +0000 Subject: [PATCH] J : * Input fix. * A lot of code cleaning spread across a lot of files. --- projects/mtg/Makefile.linux | 2 +- projects/mtg/include/ActionElement.h | 2 +- projects/mtg/include/ActionLayer.h | 3 +- projects/mtg/include/ActionStack.h | 4 +- projects/mtg/include/AllAbilities.h | 24 +- projects/mtg/include/CardDisplay.h | 2 +- projects/mtg/include/DamageResolverLayer.h | 2 +- projects/mtg/include/GameStateDeckViewer.h | 41 +-- projects/mtg/include/GameStateDuel.h | 18 +- projects/mtg/include/GuiLayers.h | 4 +- projects/mtg/include/MTGGamePhase.h | 2 +- projects/mtg/include/MTGGuiHand.h | 2 +- projects/mtg/include/MTGGuiPlay.h | 2 +- .../mtg/include/PlayGuiObjectController.h | 2 +- projects/mtg/include/SimpleMenuItem.h | 1 + projects/mtg/src/ActionLayer.cpp | 20 +- projects/mtg/src/ActionStack.cpp | 89 ++++--- projects/mtg/src/CardDisplay.cpp | 77 +++--- projects/mtg/src/DamageResolverLayer.cpp | 16 +- projects/mtg/src/GameStateDuel.cpp | 241 +++++++++--------- projects/mtg/src/GameStateOptions.cpp | 2 +- projects/mtg/src/GuiLayers.cpp | 31 ++- projects/mtg/src/GuiMessageBox.cpp | 74 +++--- projects/mtg/src/MTGGamePhase.cpp | 7 +- projects/mtg/src/MTGGuiHand.cpp | 43 ++-- projects/mtg/src/MTGGuiPlay.cpp | 9 +- projects/mtg/src/PlayGuiObjectController.cpp | 121 ++++----- projects/mtg/src/ShopItem.cpp | 2 +- 28 files changed, 405 insertions(+), 438 deletions(-) diff --git a/projects/mtg/Makefile.linux b/projects/mtg/Makefile.linux index 5801b8dc2..8d51e30b6 100644 --- a/projects/mtg/Makefile.linux +++ b/projects/mtg/Makefile.linux @@ -1,5 +1,5 @@ TARGET = template -OBJS = src/ActionElement.o src/ActionLayer.o src/ActionStack.o src/AIPlayer.o src/AIStats.o src/Blocker.o src/CardGui.o src/CardDescriptor.o src/CardDisplay.o src/ConstraintResolver.o src/Counters.o src/Damage.o src/DamagerDamaged.o src/DamageResolverLayer.o src/DeckDataWrapper.o src/DuelLayers.o src/GameApp.o src/GameLauncher.o src/GameObserver.o src/GameOptions.o src/GameStateDuel.o src/GameStateOptions.o src/GameStateShop.o src/GuiCardsController.o src/GuiLayers.o src/Logger.o src/ManaCost.o src/ManaCostHybrid.o src/MenuItem.o src/MTGAbility.o src/MTGCardInstance.o src/MTGCard.o src/MTGDeck.o src/MTGGamePhase.o src/MTGGameZones.o src/MTGGuiHand.o src/MTGGuiPlay.o src/MTGRules.o src/OptionItem.o src/PhaseRing.o src/Player.o src/PlayerData.o src/PlayGuiObjectController.o src/PlayGuiObject.o src/PriceList.o src/ShopItem.o src/SimpleMenu.o src/SimpleMenuItem.o src/Subtypes.o src/TargetChooser.o src/TargetsList.o src/TestSuiteAI.o src/TexturesCache.o src/utils.o +OBJS = src/ActionElement.o src/ActionLayer.o src/ActionStack.o src/AIPlayer.o src/AIStats.o src/Blocker.o src/CardGui.o src/CardDescriptor.o src/CardDisplay.o src/ConstraintResolver.o src/Counters.o src/Damage.o src/DamagerDamaged.o src/DamageResolverLayer.o src/DeckDataWrapper.o src/DeckStats.o src/DuelLayers.o src/GameApp.o src/GameLauncher.o src/GameObserver.o src/GameOptions.o src/GameStateDuel.o src/GameStateOptions.o src/GameStateShop.o src/GuiCardsController.o src/GuiLayers.o src/Logger.o src/ManaCost.o src/ManaCostHybrid.o src/MenuItem.o src/MTGAbility.o src/MTGCardInstance.o src/MTGCard.o src/MTGDeck.o src/MTGGamePhase.o src/MTGGameZones.o src/MTGGuiHand.o src/MTGGuiPlay.o src/MTGRules.o src/OptionItem.o src/PhaseRing.o src/Player.o src/PlayerData.o src/PlayGuiObjectController.o src/PlayGuiObject.o src/PriceList.o src/ShopItem.o src/SimpleMenu.o src/SimpleMenuItem.o src/Subtypes.o src/TargetChooser.o src/TargetsList.o src/TestSuiteAI.o src/TexturesCache.o src/utils.o INCDIR = -I ../../JGE/include -I ../../JGE/src diff --git a/projects/mtg/include/ActionElement.h b/projects/mtg/include/ActionElement.h index a9444b1f6..8241a2491 100644 --- a/projects/mtg/include/ActionElement.h +++ b/projects/mtg/include/ActionElement.h @@ -34,7 +34,7 @@ class ActionElement: public JGuiObject{ virtual void Render(){}; virtual int testDestroy(){return 0;}; virtual int destroy(){return 0;}; - virtual void CheckUserInput(float dt){}; + virtual bool CheckUserInput(u32 key){return false;}; ActionElement(int id); virtual int isReactingToTargetClick(Targetable * card); virtual int reactToTargetClick(Targetable * card); diff --git a/projects/mtg/include/ActionLayer.h b/projects/mtg/include/ActionLayer.h index 6a2ef7546..00e35cb9c 100644 --- a/projects/mtg/include/ActionLayer.h +++ b/projects/mtg/include/ActionLayer.h @@ -21,14 +21,13 @@ class ActionLayer: public GuiLayer, public JGuiListener{ virtual void Render(); virtual void Update(float dt); int unstopableRenderInProgress(); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); ActionLayer(int id, GameObserver* _game):GuiLayer(id, _game){ menuObject = NULL; abilitiesMenu = NULL;}; int isWaitingForAnswer(); int isReactingToTargetClick(Targetable * card); int reactToTargetClick(Targetable * card); int isReactingToClick(MTGCardInstance * card); int reactToClick(MTGCardInstance * card); - int isModal(); void setMenuObject(Targetable * object); void ButtonPressed(int controllerid, int controlid); TargetChooser * getCurrentTargetChooser(); diff --git a/projects/mtg/include/ActionStack.h b/projects/mtg/include/ActionStack.h index 475401b15..713d77407 100644 --- a/projects/mtg/include/ActionStack.h +++ b/projects/mtg/include/ActionStack.h @@ -104,7 +104,7 @@ class DrawAction: public Interruptible { class ActionStack :public GuiLayer{ protected: int interruptDecision[2]; - int timer; + float timer; int currentState; int mode; int checked; @@ -135,7 +135,7 @@ class ActionStack :public GuiLayer{ int addDamage(MTGCardInstance * _source, Damageable * target, int _damage); int addAbility(MTGAbility * ability); void Update(float dt); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); virtual void Render(); ActionStack(int id, GameObserver* _game); int resolve(); diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 65da7cc59..e831205ea 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -1228,7 +1228,7 @@ class AAladdinsLamp: public TargetAbility{ init = 1; } cd.Update(dt); - cd.CheckUserInput(dt); + // cd.CheckUserInput(dt); } } @@ -1604,28 +1604,30 @@ class AFarmstead:public ActivatedAbility{ class AGlassesOfUrza:public MTGAbility{ public: CardDisplay * display; - AGlassesOfUrza(int _id, MTGCardInstance * _source):MTGAbility(_id, _source){ + bool isActive; + AGlassesOfUrza(int _id, MTGCardInstance * _source):MTGAbility(_id, _source),isActive(false){ display = NEW CardDisplay(0, game,SCREEN_WIDTH/2, SCREEN_HEIGHT/2,NULL); } void Update(float dt){ - if(modal){ + if(isActive){ display->Update(dt); } } - void CheckUserInput(float dt){ - if (modal){ - display->CheckUserInput(dt); - JGE * mEngine = JGE::GetInstance(); - if (mEngine->GetButtonClick(PSP_CTRL_CROSS)){ - modal = 0; + bool CheckUserInput(u32 key){ + if (isActive){ + if (display->CheckUserInput(key)) return true; + if (PSP_CTRL_CROSS == key){ + isActive = false; + return true; } } + return false; } void Render(float dt){ - if (modal){ + if (isActive){ display->Render(); } @@ -1642,7 +1644,7 @@ class AGlassesOfUrza:public MTGAbility{ int reactToClick(MTGCardInstance * card){ if (!isReactingToClick(card)) return 0; source->tapped = 1; - modal = 1; + isActive = true; return 1; } diff --git a/projects/mtg/include/CardDisplay.h b/projects/mtg/include/CardDisplay.h index 7f83d2b17..8c4e90fa1 100644 --- a/projects/mtg/include/CardDisplay.h +++ b/projects/mtg/include/CardDisplay.h @@ -17,7 +17,7 @@ class CardDisplay:public PlayGuiObjectController{ void AddCard(MTGCardInstance * _card); void rotateLeft(); void rotateRight(); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); void Render(); void init(MTGGameZone * zone); }; diff --git a/projects/mtg/include/DamageResolverLayer.h b/projects/mtg/include/DamageResolverLayer.h index 0668f712e..7d60eaba0 100644 --- a/projects/mtg/include/DamageResolverLayer.h +++ b/projects/mtg/include/DamageResolverLayer.h @@ -31,7 +31,7 @@ class DamageResolverLayer:public PlayGuiObjectController{ int isOpponent(DamagerDamaged * a, DamagerDamaged * b); void nextPlayer(); virtual void Update(float dt); - virtual void CheckUserInput(float dt); + virtual bool CheckUserInput(u32 key); virtual void Render(); }; diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index 480a620bb..571a68fff 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -17,14 +17,17 @@ #define NO_USER_ACTIVITY_HELP_DELAY 10 #define NO_USER_ACTIVITY_SHOWCARD_DELAY 0.1 -#define STAGE_WAITING 2 -#define STAGE_TRANSITION_LEFT 1 -#define STAGE_TRANSITION_RIGHT 0 -#define STAGE_TRANSITION_UP 3 -#define STAGE_TRANSITION_DOWN 4 -#define STAGE_ONSCREEN_MENU 5 -#define STAGE_WELCOME 6 -#define STAGE_MENU 7 +enum + { + STAGE_TRANSITION_RIGHT = 0, + STAGE_TRANSITION_LEFT = 1, + STAGE_WAITING = 2, + STAGE_TRANSITION_UP = 3, + STAGE_TRANSITION_DOWN = 4, + STAGE_ONSCREEN_MENU = 5, + STAGE_WELCOME = 6, + STAGE_MENU = 7 + }; #define ALL_COLORS -1 @@ -32,7 +35,9 @@ #define ROTATE_LEFT 1; #define ROTATE_RIGHT 0; - +#define HIGH_SPEED 15.0 +#define MED_SPEED 5.0 +#define LOW_SPEED 1.5 class GameStateDeckViewer: public GameState, public JGuiListener @@ -72,7 +77,7 @@ class GameStateDeckViewer: public GameState, public JGuiListener GameStateDeckViewer(GameApp* parent): GameState(parent) { bgMusic = NULL; - scrollSpeed = 10.0; + scrollSpeed = HIGH_SPEED; } virtual ~GameStateDeckViewer() { SAFE_DELETE(bgMusic); @@ -289,7 +294,7 @@ class GameStateDeckViewer: public GameState, public JGuiListener case PSP_CTRL_UP : last_user_activity = 0; mStage = STAGE_TRANSITION_UP; - colorFilter --; + colorFilter--; if (colorFilter < -1) colorFilter = MTG_COLOR_LAND; break; case PSP_CTRL_DOWN : @@ -338,13 +343,12 @@ class GameStateDeckViewer: public GameState, public JGuiListener mStage = STAGE_MENU; break; case PSP_CTRL_SELECT : - printf("%f\n", scrollSpeed); - if (scrollSpeed == 10.0) - scrollSpeed = 5.0; - else if (scrollSpeed == 5.0) - scrollSpeed = 1.0; + if (scrollSpeed == HIGH_SPEED) + scrollSpeed = MED_SPEED; + else if (scrollSpeed == MED_SPEED) + scrollSpeed = LOW_SPEED; else - scrollSpeed = 10.0; + scrollSpeed = HIGH_SPEED; break; default : // no keypress if (last_user_activity > NO_USER_ACTIVITY_HELP_DELAY){ @@ -790,7 +794,4 @@ class GameStateDeckViewer: public GameState, public JGuiListener }; - - #endif - diff --git a/projects/mtg/include/GameStateDuel.h b/projects/mtg/include/GameStateDuel.h index 7ba784b60..c9c637c73 100644 --- a/projects/mtg/include/GameStateDuel.h +++ b/projects/mtg/include/GameStateDuel.h @@ -6,17 +6,19 @@ #include "_includeAll.h" #include "../include/SimpleMenu.h" +enum + { + DUEL_START, + DUEL_END, + DUEL_CHOOSE_DECK1, + DUEL_CHOOSE_DECK2, + ERROR_NO_DECK, + DUEL_PLAY, + DUEL_MENU + }; -#define DUEL_START 0 -#define DUEL_END 1 -#define DUEL_CHOOSE_DECK1 2 -#define DUEL_CHOOSE_DECK2 3 -#define ERROR_NO_DECK 4 -#define DUEL_PLAY 5 -#define DUEL_MENU 6 #define CHOOSE_OPPONENT 7 - #ifdef TESTSUITE class TestSuite; #endif diff --git a/projects/mtg/include/GuiLayers.h b/projects/mtg/include/GuiLayers.h index 03c0bfbc9..e42aa630b 100644 --- a/projects/mtg/include/GuiLayers.h +++ b/projects/mtg/include/GuiLayers.h @@ -25,11 +25,9 @@ class GuiLayer: public JGuiController{ void RenderMessageBackground(float x0, float y0, float width, int height); void RenderMessageBackground(float y0, int height); GuiLayer(int id, GameObserver* _game); - virtual int isModal(); - void setModal(int _modal); virtual ~GuiLayer(); virtual void Update(float dt); - virtual void CheckUserInput(float dt){}; + virtual bool CheckUserInput(u32 key){ return false; }; virtual int unstopableRenderInProgress(){return 0;}; int getIndexOf(JGuiObject * object); JGuiObject * getByIndex (int index); diff --git a/projects/mtg/include/MTGGamePhase.h b/projects/mtg/include/MTGGamePhase.h index af5f75fff..9e59a1c58 100644 --- a/projects/mtg/include/MTGGamePhase.h +++ b/projects/mtg/include/MTGGamePhase.h @@ -17,7 +17,7 @@ class MTGGamePhase: public ActionElement { MTGGamePhase(int id); virtual void Render(); virtual void Update(float dt); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); }; diff --git a/projects/mtg/include/MTGGuiHand.h b/projects/mtg/include/MTGGuiHand.h index 3c7f67ec9..0f6f3bdd6 100644 --- a/projects/mtg/include/MTGGuiHand.h +++ b/projects/mtg/include/MTGGuiHand.h @@ -25,7 +25,7 @@ class MTGGuiHand: public GuiCardsController{ public: MTGGuiHand(int id, GameObserver * _game); void Update(float dt); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); virtual void Render(); void updateCards(); diff --git a/projects/mtg/include/MTGGuiPlay.h b/projects/mtg/include/MTGGuiPlay.h index 7388d3bbf..69b0e04f5 100644 --- a/projects/mtg/include/MTGGuiPlay.h +++ b/projects/mtg/include/MTGGuiPlay.h @@ -47,7 +47,7 @@ class MTGGuiPlay: public PlayGuiObjectController { MTGGuiPlay(int id, GameObserver * game); ~MTGGuiPlay(); void Update(float dt); - void CheckUserInput(float dt); + bool CheckUserInput(u32 key); virtual void Render(); void updateCards(); }; diff --git a/projects/mtg/include/PlayGuiObjectController.h b/projects/mtg/include/PlayGuiObjectController.h index be5e23771..9429160cf 100644 --- a/projects/mtg/include/PlayGuiObjectController.h +++ b/projects/mtg/include/PlayGuiObjectController.h @@ -13,7 +13,7 @@ class PlayGuiObjectController : public GuiLayer{ static int showBigCards;// 0 hide, 1 show, 2 show text public: virtual void Update(float dt); - virtual void CheckUserInput(float dt); + virtual bool CheckUserInput(u32 key); PlayGuiObjectController(int id, GameObserver* _game):GuiLayer(id, _game){last_user_move=0;}; virtual void Render(){GuiLayer::Render();}; }; diff --git a/projects/mtg/include/SimpleMenuItem.h b/projects/mtg/include/SimpleMenuItem.h index e3bff7844..b88bddc29 100644 --- a/projects/mtg/include/SimpleMenuItem.h +++ b/projects/mtg/include/SimpleMenuItem.h @@ -1,6 +1,7 @@ #ifndef _SIMPLEMENU_ITEM_H #define _SIMPLEMENU_ITEM_H +#include #include #include diff --git a/projects/mtg/src/ActionLayer.cpp b/projects/mtg/src/ActionLayer.cpp index e48d29ca5..a11e99bed 100644 --- a/projects/mtg/src/ActionLayer.cpp +++ b/projects/mtg/src/ActionLayer.cpp @@ -17,22 +17,23 @@ int ActionLayer::unstopableRenderInProgress(){ } -void ActionLayer::CheckUserInput(float dt){ +bool ActionLayer::CheckUserInput(u32 key){ if (menuObject){ - abilitiesMenu->Update(dt); - return; + return false; } for (int i=0;iCheckUserInput(dt); + if (currentAction->CheckUserInput(key)) return true; } } + return false; } void ActionLayer::Update(float dt){ if (menuObject){ + abilitiesMenu->Update(dt); return; } modal = 0; @@ -157,17 +158,6 @@ int ActionLayer::reactToClick(MTGCardInstance * card){ } -int ActionLayer::isModal(){ - if (modal) return 1; - if (menuObject) return 1; - for (int i=0; imodal) return 1; - } - return 0; -} - - void ActionLayer::setMenuObject(Targetable * object){ menuObject = object; if (abilitiesMenu){ diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index e654c907e..88256b87a 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -475,6 +475,14 @@ void ActionStack::Update(float dt){ }else if (mode == ACTIONSTACK_TARGET){ GuiLayer::Update(dt); } + if (askIfWishesToInterrupt) + { + if (timer < 0) timer = 3; + timer -= dt; + if (timer < 0){ + cancelInterruptOffer(); + } + } } void ActionStack::cancelInterruptOffer(int cancelMode){ @@ -498,76 +506,73 @@ void ActionStack::endOfInterruption(){ } -void ActionStack::CheckUserInput(float dt){ +bool ActionStack::CheckUserInput(u32 key){ if (mode == ACTIONSTACK_STANDARD){ if (askIfWishesToInterrupt){ - if (timer < 0) timer = 300; - if (mEngine->GetButtonClick(PSP_CTRL_CROSS)){ + if (PSP_CTRL_CROSS == key){ setIsInterrupting(askIfWishesToInterrupt); - }else if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE) ||mEngine->GetButtonClick(PSP_CTRL_RTRIGGER) ){ + return true; + }else if ((PSP_CTRL_CIRCLE == key) || (PSP_CTRL_RTRIGGER == key) ){ cancelInterruptOffer(); - }else if (mEngine->GetButtonClick(PSP_CTRL_SQUARE)){ + return true; + }else if ((PSP_CTRL_SQUARE == key)){ cancelInterruptOffer(2); - }else{ - timer --; - if (timer < 0){ - cancelInterruptOffer(); - } + return true; } }else if (game->isInterrupting){ - if (mEngine->GetButtonClick(PSP_CTRL_CROSS)){ + if (PSP_CTRL_CROSS == key){ endOfInterruption(); + return true; } } }else if (mode == ACTIONSTACK_TARGET){ if (modal){ - if (mEngine->GetButtonState(PSP_CTRL_UP)){ - if (KeyRepeated(PSP_CTRL_UP, dt)) - { - if( mObjects[mCurr]){ - int n = getPreviousIndex(((Interruptible *) mObjects[mCurr]), 0, 0, 1); - if (n != -1 && n != mCurr && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) - { - mCurr = n; - mObjects[mCurr]->Entering(); + if (PSP_CTRL_UP == key){ + if( mObjects[mCurr]){ + int n = getPreviousIndex(((Interruptible *) mObjects[mCurr]), 0, 0, 1); + if (n != -1 && n != mCurr && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) + { + mCurr = n; + mObjects[mCurr]->Entering(); #if defined (WIN32) || defined (LINUX) - char buf[4096]; - sprintf(buf, "Stack UP TO mCurr = %i\n", mCurr); - OutputDebugString(buf); + char buf[4096]; + sprintf(buf, "Stack UP TO mCurr = %i\n", mCurr); + OutputDebugString(buf); #endif - } } - } - }else if (mEngine->GetButtonState(PSP_CTRL_DOWN)){ - if (KeyRepeated(PSP_CTRL_DOWN, dt)) - { - if( mObjects[mCurr]){ - int n = getNextIndex(((Interruptible *) mObjects[mCurr]), 0, 0, 1); - if (n!= -1 && n != mCurr && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) - { - mCurr = n; - mObjects[mCurr]->Entering(); + } + return true; + }else if (PSP_CTRL_DOWN == key){ + if( mObjects[mCurr]){ + int n = getNextIndex(((Interruptible *) mObjects[mCurr]), 0, 0, 1); + if (n!= -1 && n != mCurr && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) + { + mCurr = n; + mObjects[mCurr]->Entering(); #if defined (WIN32) || defined (LINUX) - char buf[4096]; - sprintf(buf, "Stack DOWN TO mCurr = %i\n", mCurr); - OutputDebugString(buf); + char buf[4096]; + sprintf(buf, "Stack DOWN TO mCurr = %i\n", mCurr); + OutputDebugString(buf); #endif - } } - } - }else if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE)){ + } + return true; + }else if (PSP_CTRL_CIRCLE == key){ #if defined (WIN32) || defined (LINUX) char buf[4096]; sprintf(buf, "Stack CLIKED mCurr = %i\n", mCurr); OutputDebugString(buf); #endif game->stackObjectClicked(((Interruptible *) mObjects[mCurr])); + return true; } } - if (mEngine->GetButtonClick(PSP_CTRL_TRIANGLE)){ + if (PSP_CTRL_TRIANGLE == key){ if (modal) {modal = 0;} else {modal = 1;} + return true; } } + return false; } @@ -658,7 +663,7 @@ void ActionStack::Render(){ } char buffer[200]; - sprintf(buffer, "interrupt ? %i", timer/100); + sprintf(buffer, "interrupt ? %i", static_cast(timer)); mFont->DrawString(buffer, x0 + 5 , currenty - 40 - ((Interruptible *)mObjects[mCount-1])->mHeight); if (mCount > 1){ diff --git a/projects/mtg/src/CardDisplay.cpp b/projects/mtg/src/CardDisplay.cpp index b53fba7b4..4ce382fa7 100644 --- a/projects/mtg/src/CardDisplay.cpp +++ b/projects/mtg/src/CardDisplay.cpp @@ -54,73 +54,68 @@ void CardDisplay::rotateRight(){ } -void CardDisplay::CheckUserInput(float dt){ - if (mEngine->GetButtonClick(PSP_CTRL_CROSS)) +bool CardDisplay::CheckUserInput(u32 key){ + if (PSP_CTRL_CROSS == key) { if (listener != NULL) { listener->ButtonPressed(mId, 0); - return; + return true; } } - if (!mCount) - return; + return false; - if (mEngine->GetButtonClick(mActionButton)) + if (mActionButton == key) { if (mObjects[mCurr] && mObjects[mCurr]->ButtonPressed()){ CardGui * cardg = (CardGui *)mObjects[mCurr]; if (tc) { tc->toggleTarget(cardg->card); - return; + return true; }else{ if (game) game->ButtonPressed(mId, cardg); - return; + return true; } } + return true; } - if (mEngine->GetButtonState(PSP_CTRL_LEFT)) + switch(key) { - if (KeyRepeated(PSP_CTRL_LEFT, dt)) - { - int n = mCurr; - n--; - if (nLeaving(PSP_CTRL_LEFT)){ - mCurr = n; - mObjects[mCurr]->Entering(); - } + case PSP_CTRL_LEFT : + { + int n = mCurr; + n--; + if (nGetButtonState(PSP_CTRL_RIGHT)) - { - if (KeyRepeated(PSP_CTRL_RIGHT, dt)) - { - 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(PSP_CTRL_RIGHT)){ - mCurr = n; - mObjects[mCurr]->Entering(); - } + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_LEFT)){ + mCurr = n; + mObjects[mCurr]->Entering(); } + return true; + } + case PSP_CTRL_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(PSP_CTRL_RIGHT)){ + mCurr = n; + mObjects[mCurr]->Entering(); + } + } + return true; } - - else{ - mLastKey = 0; - } - + return false; } diff --git a/projects/mtg/src/DamageResolverLayer.cpp b/projects/mtg/src/DamageResolverLayer.cpp index ca031bede..fc5fd1840 100644 --- a/projects/mtg/src/DamageResolverLayer.cpp +++ b/projects/mtg/src/DamageResolverLayer.cpp @@ -281,9 +281,9 @@ void DamageResolverLayer::nextPlayer(){ } } -void DamageResolverLayer::CheckUserInput(float dt){ - if (!mCount) return; - if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE)){ +bool DamageResolverLayer::CheckUserInput(u32 key){ + if (!mCount) return false; + if (PSP_CTRL_CIRCLE == key){ if (mObjects[mCurr] && mObjects[mCurr]->ButtonPressed()){ DamagerDamaged * current = (DamagerDamaged *) mObjects[mCurr]; if (!currentSource || !isOpponent(current,currentSource)){ @@ -311,21 +311,25 @@ void DamageResolverLayer::CheckUserInput(float dt){ buttonOk = 0; if (canStopDealDamages()) buttonOk = 1; } - }else if (mEngine->GetButtonClick(PSP_CTRL_CROSS)){ + return true; + }else if (PSP_CTRL_CROSS == key){ if (mObjects[mCurr] && mObjects[mCurr]->ButtonPressed()){ DamagerDamaged * current = (DamagerDamaged *) mObjects[mCurr]; if (current->damageSelecter == currentChoosingPlayer){ currentSource = current; } + return true; } - }else if (mEngine->GetButtonClick(PSP_CTRL_SQUARE)){ + }else if (PSP_CTRL_SQUARE == key){ if (canStopDealDamages()){ nextPlayer(); //switch to next player or end of selection } + return true; }else{ - PlayGuiObjectController::CheckUserInput(dt); + return PlayGuiObjectController::CheckUserInput(key); } + return false; } void DamageResolverLayer::Render(){ diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index 1be98e696..73e6aad12 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -160,132 +160,132 @@ void GameStateDuel::End() void GameStateDuel::Update(float dt) { - if (mGamePhase == ERROR_NO_DECK){ - if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE)){ - mParent->SetNextState(GAME_STATE_DECK_VIEWER); - } - }else if (mGamePhase == DUEL_CHOOSE_DECK1){ - if (mParent->players[0] == PLAYER_TYPE_HUMAN){ - deckmenu->Update(dt); - } + switch (mGamePhase) + { + case ERROR_NO_DECK: + if (PSP_CTRL_CIRCLE == mEngine->ReadButton()) + mParent->SetNextState(GAME_STATE_DECK_VIEWER); + break; + case DUEL_CHOOSE_DECK1: + if (mParent->players[0] == PLAYER_TYPE_HUMAN) + deckmenu->Update(dt); #ifdef TESTSUITE - else if (mParent->players[1] == PLAYER_TYPE_TESTSUITE){ - if (testSuite && testSuite->loadNext()){ - loadTestSuitePlayers(); - mGamePhase = DUEL_PLAY; - testSuite->initGame(); - char buf[4096]; - sprintf(buf, "nb cards in player2's graveyard : %i\n",mPlayers[1]->game->graveyard->nb_cards); - LOG(buf); - }else{ - mGamePhase = DUEL_END; - } - } -#endif - else{ - loadPlayer(0); - mGamePhase = DUEL_CHOOSE_DECK2; - } - }else if(mGamePhase == DUEL_CHOOSE_DECK2){ - if (mParent->players[1] == PLAYER_TYPE_HUMAN){ - deckmenu->Update(dt); - } - - else{ - if (mParent->players[0] == PLAYER_TYPE_HUMAN){ - if (!opponentMenu){ - opponentMenu = NEW SimpleMenu(13,this,opponentMenuFont,10,10,SCREEN_WIDTH/2,"choose Opponent"); - opponentMenu->Add(0,"Random"); - nbAIDecks = 0; - int found = 1; - while (found){ - found = 0; - char buffer[512]; - char aiSmallDeckName[512]; - char deckDesc[512]; - sprintf(buffer, "Res/ai/baka/deck%i.txt",nbAIDecks+1); - if(fileExists(buffer)){ - found = 1; - nbAIDecks++; - sprintf(aiSmallDeckName, "ai_baka_deck%i",nbAIDecks); - DeckStats * stats = DeckStats::GetInstance(); - stats->load(mPlayers[0]); - int percentVictories = stats->percentVictories(string(aiSmallDeckName)); - string difficulty; - if (percentVictories < 34){ - difficulty = "(hard)"; - }else if (percentVictories < 67){ - difficulty = ""; - }else{ - difficulty = "(easy)"; - } - sprintf(deckDesc, "Deck %i %s",nbAIDecks, difficulty.c_str()); - opponentMenu->Add(nbAIDecks,deckDesc); - } - } - } - opponentMenu->Update(dt); - }else{ - loadPlayer(1); - mGamePhase = DUEL_PLAY; - } - } - - }else if (mGamePhase == DUEL_PLAY){ - //Stop the music before starting the game - if (GameApp::music){ - JSoundSystem::GetInstance()->StopMusic(GameApp::music); - SAFE_DELETE(GameApp::music); - } - if (!game){ - GameObserver::Init(mPlayers, 2); - game = GameObserver::GetInstance(); - game->startGame(); - } - game->Update(dt); - if (game->gameOver){ - if (!mPlayers[0]->isAI() && mPlayers[1]->isAI() && mPlayers[0]!= game->gameOver){ -#if defined (WIN32) || defined (LINUX) - char buf[4096]; - sprintf(buf, "%p - %p", mPlayers[0], game->gameOver); - OutputDebugString(buf); -#endif - PlayerData * playerdata = NEW PlayerData(mParent->collection); - playerdata->credits+= 500; - playerdata->save(); - delete playerdata; - } - mGamePhase = DUEL_END; -#ifdef TESTSUITE - if (mParent->players[1] == PLAYER_TYPE_TESTSUITE){ - if (testSuite->loadNext()){ + else if (mParent->players[1] == PLAYER_TYPE_TESTSUITE){ + if (testSuite && testSuite->loadNext()){ loadTestSuitePlayers(); mGamePhase = DUEL_PLAY; testSuite->initGame(); + char buf[4096]; + sprintf(buf, "nb cards in player2's graveyard : %i\n",mPlayers[1]->game->graveyard->nb_cards); + LOG(buf); }else{ mGamePhase = DUEL_END; } - }else -#endif - if (mParent->players[0] == PLAYER_TYPE_CPU && mParent->players[1] == PLAYER_TYPE_CPU){ - End(); - Start(); } - - mFont->SetColor(ARGB(255,255,255,255)); +#endif + else{ + loadPlayer(0); + mGamePhase = DUEL_CHOOSE_DECK2; + } + break; + case DUEL_CHOOSE_DECK2: + if (mParent->players[1] == PLAYER_TYPE_HUMAN){ + deckmenu->Update(dt); + } + else{ + if (mParent->players[0] == PLAYER_TYPE_HUMAN){ + if (!opponentMenu){ + opponentMenu = NEW SimpleMenu(13,this,opponentMenuFont,10,10,SCREEN_WIDTH/2,"choose Opponent"); + opponentMenu->Add(0,"Random"); + nbAIDecks = 0; + int found = 1; + while (found){ + found = 0; + char buffer[512]; + char aiSmallDeckName[512]; + char deckDesc[512]; + sprintf(buffer, "Res/ai/baka/deck%i.txt",nbAIDecks+1); + if(fileExists(buffer)){ + found = 1; + nbAIDecks++; + sprintf(aiSmallDeckName, "ai_baka_deck%i",nbAIDecks); + DeckStats * stats = DeckStats::GetInstance(); + stats->load(mPlayers[0]); + int percentVictories = stats->percentVictories(string(aiSmallDeckName)); + string difficulty; + if (percentVictories < 34){ + difficulty = "(hard)"; + }else if (percentVictories < 67){ + difficulty = ""; + }else{ + difficulty = "(easy)"; + } + sprintf(deckDesc, "Deck %i %s",nbAIDecks, difficulty.c_str()); + opponentMenu->Add(nbAIDecks,deckDesc); + } + } + } + opponentMenu->Update(dt); + }else{ + loadPlayer(1); + mGamePhase = DUEL_PLAY; + } + } + break; + case DUEL_PLAY: + //Stop the music before starting the game + if (GameApp::music){ + JSoundSystem::GetInstance()->StopMusic(GameApp::music); + SAFE_DELETE(GameApp::music); + } + if (!game){ + GameObserver::Init(mPlayers, 2); + game = GameObserver::GetInstance(); + game->startGame(); + } + game->Update(dt); + if (game->gameOver){ + if (!mPlayers[0]->isAI() && mPlayers[1]->isAI() && mPlayers[0]!= game->gameOver){ +#if defined (WIN32) || defined (LINUX) + char buf[4096]; + sprintf(buf, "%p - %p", mPlayers[0], game->gameOver); + OutputDebugString(buf); +#endif + PlayerData * playerdata = NEW PlayerData(mParent->collection); + playerdata->credits+= 500; + playerdata->save(); + delete playerdata; + } + mGamePhase = DUEL_END; +#ifdef TESTSUITE + if (mParent->players[1] == PLAYER_TYPE_TESTSUITE){ + if (testSuite->loadNext()){ + loadTestSuitePlayers(); + mGamePhase = DUEL_PLAY; + testSuite->initGame(); + }else{ + mGamePhase = DUEL_END; + } + }else +#endif + if (mParent->players[0] == PLAYER_TYPE_CPU && mParent->players[1] == PLAYER_TYPE_CPU){ + End(); + Start(); + } + mFont->SetColor(ARGB(255,255,255,255)); + } + if (mEngine->GetButtonClick(PSP_CTRL_START)){ + mGamePhase = DUEL_MENU; + } + break; + case DUEL_MENU: + menu->Update(dt); + break; + default: + if (PSP_CTRL_CIRCLE == mEngine->ReadButton()){ + mParent->SetNextState(GAME_STATE_MENU); + } } - if (mEngine->GetButtonClick(PSP_CTRL_START)){ - mGamePhase = DUEL_MENU; - } - }else if (mGamePhase == DUEL_MENU){ - menu->Update(dt); - }else{ - if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE)){ - mParent->SetNextState(GAME_STATE_MENU); - } - } - - } @@ -377,10 +377,3 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId) } } } - - - - - - - diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 3c973a6c0..61cfa3549 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -47,7 +47,7 @@ void GameStateOptions::Update(float dt) timer+= dt; if (mState == SHOW_OPTIONS){ - if (mEngine->GetButtonClick(PSP_CTRL_START)){ + if (PSP_CTRL_START == mEngine->ReadButton()){ mState = SHOW_OPTIONS_MENU; } diff --git a/projects/mtg/src/GuiLayers.cpp b/projects/mtg/src/GuiLayers.cpp index 026302021..aa9866bf0 100644 --- a/projects/mtg/src/GuiLayers.cpp +++ b/projects/mtg/src/GuiLayers.cpp @@ -62,15 +62,6 @@ void GuiLayer::RenderMessageBackground(float y0, int height){ } -int GuiLayer::isModal(){ - return modal; -} - -void GuiLayer::setModal(int _modal){ - modal=_modal; -} - - int GuiLayer::getIndexOf(JGuiObject * object){ for (int i=0; iisAI(); for (i=0; ihasFocus = 0; objects[i]->Update(dt); - if (!isAI && !modal){ - objects[i]->hasFocus = 1; - objects[i]->CheckUserInput(dt); - modal = objects[i]->isModal(); - } } + u32 key; + while ((key = JGE::GetInstance()->ReadButton())) + { + for (i=0; ihasFocus = 1; + if (objects[i]->CheckUserInput(key)) + break; + } + } + } + } + for (++i; ihasFocus = 0; if (isAI){ currentPlayer->Act(dt); } diff --git a/projects/mtg/src/GuiMessageBox.cpp b/projects/mtg/src/GuiMessageBox.cpp index 6b620112f..6d95fefd9 100644 --- a/projects/mtg/src/GuiMessageBox.cpp +++ b/projects/mtg/src/GuiMessageBox.cpp @@ -1,61 +1,55 @@ #include "GuiMessageBox.h" - -void GuiMessageBox::CheckUserInput(){ - if (mEngine->GetButtonClick(mActionButton)) +bool GuiMessageBox::CheckUserInput(u32 key){ + if (mActionButton == key) { if (mObjects[mCurr] != NULL && mObjects[mCurr]->ButtonPressed()) { if (mListener != NULL) { mListener->ButtonPressed(mId, mObjects[mCurr]->GetId()); - return; + return true; } } } - if (mEngine->GetButtonState(PSP_CTRL_LEFT) || mEngine->GetButtonState(PSP_CTRL_UP) || mEngine->GetAnalogY()<64) + if ((PSP_CTRL_LEFT == key) || (PSP_CTRL_UP == key)) // || mEngine->GetAnalogY()<64) { - if (KeyRepeated(PSP_CTRL_UP, dt)) + int n = mCurr; + n--; + if (n<0) { - int n = mCurr; - n--; - if (n<0) - { - if ((mStyle&JGUI_STYLE_WRAPPING)) - n = mCount-1; - else - n = 0; - } - - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } + if ((mStyle&JGUI_STYLE_WRAPPING)) + n = mCount-1; + else + n = 0; } + + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; } - else if (mEngine->GetButtonState(PSP_CTRL_RIGHT) || mEngine->GetButtonState(PSP_CTRL_DOWN) || mEngine->GetAnalogY()>192) + else if ((PSP_CTRL_RIGHT == key) || (PSP_CTRL_DOWN == key)) // || mEngine->GetAnalogY()>192) { - if (KeyRepeated(PSP_CTRL_DOWN, dt)) + int n = mCurr; + n++; + if (n>mCount-1) { - int n = mCurr; - n++; - if (n>mCount-1) - { - if ((mStyle&JGUI_STYLE_WRAPPING)) - n = 0; - else - n = mCount-1; - } - - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } + if ((mStyle&JGUI_STYLE_WRAPPING)) + n = 0; + else + n = mCount-1; } + + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; } - else - mLastKey = 0; + return false; } diff --git a/projects/mtg/src/MTGGamePhase.cpp b/projects/mtg/src/MTGGamePhase.cpp index 7d0420fc3..2e7448d84 100644 --- a/projects/mtg/src/MTGGamePhase.cpp +++ b/projects/mtg/src/MTGGamePhase.cpp @@ -42,14 +42,15 @@ void MTGGamePhase::Update(float dt){ } -void MTGGamePhase::CheckUserInput(float dt){ +bool MTGGamePhase::CheckUserInput(u32 key){ GameObserver * game = GameObserver::GetInstance(); if (activeState == INACTIVE){ - if (mEngine->GetButtonClick(PSP_CTRL_RTRIGGER) && game->currentActionPlayer == game->currentlyActing()) + if ((PSP_CTRL_RTRIGGER == key) && game->currentActionPlayer == game->currentlyActing()) { activeState = ACTIVE; game->userRequestNextGamePhase(); + return true; } } - + return false; } diff --git a/projects/mtg/src/MTGGuiHand.cpp b/projects/mtg/src/MTGGuiHand.cpp index d1ed77540..9f8df0de7 100644 --- a/projects/mtg/src/MTGGuiHand.cpp +++ b/projects/mtg/src/MTGGuiHand.cpp @@ -41,24 +41,6 @@ void MTGGuiHand::Update(float dt){ } } - GuiCardsController::Update(dt); - currentId[game->currentlyActing()->getId()] = mCurr; -} - - - -void MTGGuiHand::CheckUserInput(float dt){ - if (mEngine->GetButtonClick(PSP_CTRL_LTRIGGER)) { - if (mShowHand == HAND_HIDE){ - mShowHand = HAND_SHOW_ANIMATION; - } - if (mShowHand == HAND_SHOW){ - mShowHand = HAND_HIDE_ANIMATION; - } - }else if (mEngine->GetButtonState(PSP_CTRL_LEFT)){ - //mGamePhase = NO_USER_INPUT; - } - if (mShowHand == HAND_SHOW_ANIMATION){ mAnimState +=7 *dt; if (mAnimState > 1){ @@ -73,11 +55,30 @@ void MTGGuiHand::CheckUserInput(float dt){ } } + GuiCardsController::Update(dt); + currentId[game->currentlyActing()->getId()] = mCurr; +} + + + +bool MTGGuiHand::CheckUserInput(u32 key){ + if (PSP_CTRL_LTRIGGER == key) { + if (mShowHand == HAND_HIDE){ + mShowHand = HAND_SHOW_ANIMATION; + } + if (mShowHand == HAND_SHOW){ + mShowHand = HAND_HIDE_ANIMATION; + } + return true; + }else if (PSP_CTRL_LEFT == key){ + //mGamePhase = NO_USER_INPUT; + } + if (mShowHand == HAND_HIDE || currentPlayer->isAI()){ - modal = 0; + return false; }else{ - modal = 1; - GuiCardsController::CheckUserInput(dt); + GuiCardsController::CheckUserInput(key); + return true; } } diff --git a/projects/mtg/src/MTGGuiPlay.cpp b/projects/mtg/src/MTGGuiPlay.cpp index d5a316b10..b5b23b621 100644 --- a/projects/mtg/src/MTGGuiPlay.cpp +++ b/projects/mtg/src/MTGGuiPlay.cpp @@ -259,17 +259,14 @@ void MTGGuiPlay::Update(float dt){ -void MTGGuiPlay::CheckUserInput(float dt){ +bool MTGGuiPlay::CheckUserInput(u32 key){ for (int i = 2; i<6;i++){ GuiGameZone * zone = (GuiGameZone *)mObjects[i]; if (zone->showCards){ - zone->cd->CheckUserInput(dt); - return; + return zone->cd->CheckUserInput(key); } } - PlayGuiObjectController::CheckUserInput(dt); - - + return PlayGuiObjectController::CheckUserInput(key); } diff --git a/projects/mtg/src/PlayGuiObjectController.cpp b/projects/mtg/src/PlayGuiObjectController.cpp index d06bd3129..b202daebd 100644 --- a/projects/mtg/src/PlayGuiObjectController.cpp +++ b/projects/mtg/src/PlayGuiObjectController.cpp @@ -168,6 +168,7 @@ int PlayGuiObjectController::getClosestItem(int direction, float tolerance){ } */ void PlayGuiObjectController::Update(float dt){ + last_user_move +=dt; for (int i=0;iUpdate(dt); @@ -176,84 +177,68 @@ void PlayGuiObjectController::Update(float dt){ } -void PlayGuiObjectController::CheckUserInput(float dt){ - last_user_move +=dt; +bool PlayGuiObjectController::CheckUserInput(u32 key){ if (!mCount) - return; + return false; if (game != NULL){ - if (mEngine->GetButtonClick(mActionButton)){ + if (mActionButton == key){ if (mObjects[mCurr] != NULL && mObjects[mCurr]->ButtonPressed()){ game->ButtonPressed(mId, (PlayGuiObject *)mObjects[mCurr]); - return; + return true; } } - if (mEngine->GetButtonClick(PSP_CTRL_CROSS)){ + if (PSP_CTRL_CROSS == key){ game->cancelCurrentAction(); + return true; } } - if (mEngine->GetButtonState(PSP_CTRL_LEFT)) + last_user_move = 0; + switch (key) { - - last_user_move = 0; - if (KeyRepeated(PSP_CTRL_LEFT, dt)) - { - int n = getClosestItem(DIR_LEFT); - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_LEFT)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } + case PSP_CTRL_LEFT: + { + int n = getClosestItem(DIR_LEFT); + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_LEFT)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; + } + case PSP_CTRL_RIGHT: + { + int n = getClosestItem(DIR_RIGHT); + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_RIGHT)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; + } + case PSP_CTRL_UP: + { + int n = getClosestItem(DIR_UP); + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; + } + case PSP_CTRL_DOWN: + { + int n = getClosestItem(DIR_DOWN); + if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) + { + mCurr = n; + mObjects[mCurr]->Entering(); + } + return true; + } + case PSP_CTRL_TRIANGLE: + showBigCards = (showBigCards + 1) % 3; + return true; } - else if (mEngine->GetButtonState(PSP_CTRL_RIGHT)) - { - last_user_move = 0; - if (KeyRepeated(PSP_CTRL_RIGHT, dt)) - { - int n = getClosestItem(DIR_RIGHT); - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_RIGHT)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } - } - else if (mEngine->GetButtonState(PSP_CTRL_UP)) - { - last_user_move = 0; - if (KeyRepeated(PSP_CTRL_UP, dt)) - { - int n = getClosestItem(DIR_UP); - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_UP)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } - } - else if (mEngine->GetButtonState(PSP_CTRL_DOWN)) - { - last_user_move = 0; - if (KeyRepeated(PSP_CTRL_DOWN, dt)) - { - int n = getClosestItem(DIR_DOWN); - if (n != mCurr && mObjects[mCurr] != NULL && mObjects[mCurr]->Leaving(PSP_CTRL_DOWN)) - { - mCurr = n; - mObjects[mCurr]->Entering(); - } - } - }else if (mEngine->GetButtonClick(PSP_CTRL_TRIANGLE)){ - showBigCards = (++showBigCards) %3; - } - - else{ - mLastKey = 0; - } - - - + return false; } - - diff --git a/projects/mtg/src/ShopItem.cpp b/projects/mtg/src/ShopItem.cpp index c9cb04ed2..8556c8a53 100644 --- a/projects/mtg/src/ShopItem.cpp +++ b/projects/mtg/src/ShopItem.cpp @@ -153,7 +153,7 @@ void ShopItems::Add(char * text, JQuad * quad,JQuad * thumb, int price){ void ShopItems::Update(float dt){ if (display){ - display->CheckUserInput(dt); + // display->CheckUserInput(dt); if (display) display->Update(dt); }else{ if (showPriceDialog!=-1){