* 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
+51 -62
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,98 +273,86 @@ 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())
last_user_activity = 0;
currentCard = displayed_deck->getNext(currentCard,colorFilter);
mStage = STAGE_TRANSITION_LEFT;
}
else if (mEngine->GetButtonState(PSP_CTRL_RIGHT))
{ {
case PSP_CTRL_LEFT :
last_user_activity = 0;
currentCard = displayed_deck->getNext(currentCard,colorFilter);
mStage = STAGE_TRANSITION_LEFT;
break;
case 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(); }
break;
} case PSP_CTRL_CIRCLE :
else if (mEngine->GetButtonClick(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]; {
if (card){ MTGCard * card = cardIndex[2];
int rnd = (rand() % 20); if (card){
price = pricelist->getPrice(card->getMTGId()) / 2; int rnd = (rand() % 20);
price = price - price * (rnd -10)/100; price = pricelist->getPrice(card->getMTGId()) / 2;
sprintf(buffer,"%s : %i credits",card->getName(),price); price = price - price * (rnd -10)/100;
sellMenu = NEW SimpleMenu(2,this,mFont,SCREEN_WIDTH-300,SCREEN_HEIGHT/2,270,buffer); sprintf(buffer,"%s : %i credits",card->getName(),price);
sellMenu->Add(20,"Yes"); sellMenu = NEW SimpleMenu(2,this,mFont,SCREEN_WIDTH-300,SCREEN_HEIGHT/2,270,buffer);
sellMenu->Add(21,"No"); sellMenu->Add(20,"Yes");
sellMenu->Add(21,"No");
}
} }
break;
} case PSP_CTRL_SQUARE :
else if (mEngine->GetButtonClick(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 (mStage != STAGE_ONSCREEN_MENU){
if (last_user_activity > NO_USER_ACTIVITY_HELP_DELAY){ mStage = STAGE_ONSCREEN_MENU;
if (mStage != STAGE_ONSCREEN_MENU){ onScreenTransition = 1;
mStage = STAGE_ONSCREEN_MENU;
onScreenTransition = 1;
}else{
if (onScreenTransition >0){
onScreenTransition-= 0.05f;
}else{ }else{
onScreenTransition = 0; if (onScreenTransition >0){
onScreenTransition-= 0.05f;
}else{
onScreenTransition = 0;
}
} }
}else{
last_user_activity+= dt;
} }
}else{
last_user_activity+= dt;
} }
}
}else if (mStage == STAGE_TRANSITION_RIGHT || mStage == STAGE_TRANSITION_LEFT) { }else if (mStage == STAGE_TRANSITION_RIGHT || mStage == STAGE_TRANSITION_LEFT) {
//mAlpha = 128; //mAlpha = 128;
if (mStage == STAGE_TRANSITION_RIGHT){ if (mStage == STAGE_TRANSITION_RIGHT){