* Use key buffer functions instead of instant ones.
This commit is contained in:
jean.chalard
2008-11-21 14:06:36 +00:00
parent b992815f5e
commit e23ccc408d
+24 -35
View File
@@ -217,6 +217,7 @@ class GameStateDeckViewer: public GameState, public JGuiListener
last_user_activity = NO_USER_ACTIVITY_HELP_DELAY + 1; last_user_activity = NO_USER_ACTIVITY_HELP_DELAY + 1;
onScreenTransition = 0; onScreenTransition = 0;
mEngine->ResetInput();
} }
@@ -272,52 +273,46 @@ class GameStateDeckViewer: public GameState, public JGuiListener
return; return;
} }
if (mStage == STAGE_WAITING || mStage == STAGE_ONSCREEN_MENU){ if (mStage == STAGE_WAITING || mStage == STAGE_ONSCREEN_MENU){
if (mEngine->GetButtonState(PSP_CTRL_LEFT)){ switch (mEngine->ReadButton())
{
case PSP_CTRL_LEFT :
last_user_activity = 0; last_user_activity = 0;
currentCard = displayed_deck->getNext(currentCard,colorFilter); currentCard = displayed_deck->getNext(currentCard,colorFilter);
mStage = STAGE_TRANSITION_LEFT; mStage = STAGE_TRANSITION_LEFT;
} break;
case PSP_CTRL_RIGHT :
else if (mEngine->GetButtonState(PSP_CTRL_RIGHT))
{
last_user_activity = 0; last_user_activity = 0;
currentCard = displayed_deck->getPrevious(currentCard,colorFilter); currentCard = displayed_deck->getPrevious(currentCard,colorFilter);
mStage = STAGE_TRANSITION_RIGHT; mStage = STAGE_TRANSITION_RIGHT;
} break;
else if (mEngine->GetButtonClick(PSP_CTRL_UP)) case PSP_CTRL_UP :
{
last_user_activity = 0; last_user_activity = 0;
mStage = STAGE_TRANSITION_UP; mStage = STAGE_TRANSITION_UP;
colorFilter --; colorFilter --;
if (colorFilter < -1) colorFilter = MTG_COLOR_LAND; if (colorFilter < -1) colorFilter = MTG_COLOR_LAND;
} break;
case PSP_CTRL_DOWN :
else if (mEngine->GetButtonClick(PSP_CTRL_DOWN))
{
last_user_activity = 0; last_user_activity = 0;
mStage = STAGE_TRANSITION_DOWN; mStage = STAGE_TRANSITION_DOWN;
colorFilter ++; colorFilter ++;
if (colorFilter > MTG_COLOR_LAND) colorFilter =-1; if (colorFilter > MTG_COLOR_LAND) colorFilter =-1;
break;
} case PSP_CTRL_TRIANGLE :
else if (mEngine->GetButtonClick(PSP_CTRL_TRIANGLE) && last_user_activity > 0.2) if (last_user_activity > 0.2)
{ {
last_user_activity = 0; last_user_activity = 0;
switchDisplay(); switchDisplay();
} }
else if (mEngine->GetButtonClick(PSP_CTRL_CIRCLE)) break;
{ case PSP_CTRL_CIRCLE :
last_user_activity = 0; last_user_activity = 0;
addRemove(cardIndex[2]); addRemove(cardIndex[2]);
break;
} case PSP_CTRL_CROSS :
else if (mEngine->GetButtonClick(PSP_CTRL_CROSS))
{
last_user_activity = 0; last_user_activity = 0;
SAFE_DELETE(sellMenu); SAFE_DELETE(sellMenu);
char buffer[4096]; char buffer[4096];
{
MTGCard * card = cardIndex[2]; MTGCard * card = cardIndex[2];
if (card){ if (card){
int rnd = (rand() % 20); int rnd = (rand() % 20);
@@ -328,25 +323,20 @@ class GameStateDeckViewer: public GameState, public JGuiListener
sellMenu->Add(20,"Yes"); sellMenu->Add(20,"Yes");
sellMenu->Add(21,"No"); sellMenu->Add(21,"No");
} }
} }
else if (mEngine->GetButtonClick(PSP_CTRL_SQUARE)) break;
{ case PSP_CTRL_SQUARE :
if (last_user_activity < NO_USER_ACTIVITY_HELP_DELAY){ if (last_user_activity < NO_USER_ACTIVITY_HELP_DELAY){
last_user_activity = NO_USER_ACTIVITY_HELP_DELAY + 1; last_user_activity = NO_USER_ACTIVITY_HELP_DELAY + 1;
}else{ }else{
last_user_activity = 0; last_user_activity = 0;
mStage = STAGE_WAITING; mStage = STAGE_WAITING;
} }
break;
} case PSP_CTRL_START :
else if (mEngine->GetButtonClick(PSP_CTRL_START))
{
mStage = STAGE_MENU; mStage = STAGE_MENU;
break;
} default : // no keypress
else{
if (last_user_activity > NO_USER_ACTIVITY_HELP_DELAY){ if (last_user_activity > NO_USER_ACTIVITY_HELP_DELAY){
if (mStage != STAGE_ONSCREEN_MENU){ if (mStage != STAGE_ONSCREEN_MENU){
mStage = STAGE_ONSCREEN_MENU; mStage = STAGE_ONSCREEN_MENU;
@@ -361,7 +351,6 @@ class GameStateDeckViewer: public GameState, public JGuiListener
}else{ }else{
last_user_activity+= dt; last_user_activity+= dt;
} }
} }
}else if (mStage == STAGE_TRANSITION_RIGHT || mStage == STAGE_TRANSITION_LEFT) { }else if (mStage == STAGE_TRANSITION_RIGHT || mStage == STAGE_TRANSITION_LEFT) {