diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 2bd01e74ed..6eb21fe4f8 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -1740,6 +1740,12 @@ int game_loop(void) int move_button,button; int button_right,button_left; button=rb->button_get(false); + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + button = QUIT; +#endif + move_button=rb->button_status(); button_right=((move_button & RIGHT) || (SCROLL_FWD(button))); diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c index f2676f7ff1..11e415867e 100755 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c @@ -2368,6 +2368,12 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock, long start; button = rb->button_get_w_tmo(timeout); + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + button = BUBBLES_START; +#endif + switch(button){ case (BUBBLES_LEFT|BUTTON_REPEAT): if(bb->angle > MIN_ANGLE) bb->angle -= 4; diff --git a/apps/plugins/pacbox/pacbox.c b/apps/plugins/pacbox/pacbox.c index 7b524a7ee5..d66c6377b9 100644 --- a/apps/plugins/pacbox/pacbox.c +++ b/apps/plugins/pacbox/pacbox.c @@ -283,6 +283,11 @@ static int gameProc( void ) /* Check the button status */ status = rb->button_status(); +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + status = PACMAN_MENU; +#endif + if ((status & PACMAN_MENU) == PACMAN_MENU #ifdef PACMAN_RC_MENU || status == PACMAN_RC_MENU diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index 55b3cbf18a..ab8e5f327e 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -267,6 +267,12 @@ void game (void) { rb->sleep(HZ/level); button=rb->button_get(false); + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + button = SNAKE_PLAYPAUSE; +#endif + switch (button) { case SNAKE_UP: if (dir!=2) dir=0; diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index f3dc4bed94..bb89d86cf5 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -1113,6 +1113,12 @@ void game (void) rb->sleep(HZ/speed); button = rb->button_get(false); + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + button = SNAKE2_PLAYPAUSE; +#endif + switch (button) { case SNAKE2_UP: diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index 32ab4bdcda..2cc3db9161 100755 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -1525,6 +1525,12 @@ enum plugin_status start_game(void) rb->lcd_update(); button = rb->button_get(false); + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + game_state = PAUSE_MODE; +#endif + switch(button) { case(AST_PAUSE): diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index 1da772dbbc..7dc0ecdf90 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -1479,6 +1479,11 @@ static int run(void) int i; long cycle_duration=0; +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) + paused = true; +#endif + switch (button) { case BTN_STARTPAUSE: paused = !paused; diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index 3ae9e22c1e..bf2d96e743 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -766,6 +766,14 @@ static int xobox_loop (void) while (!quit) { end = *rb->current_tick + (CYCLETIME * HZ) / 1000; + +#ifdef HAS_BUTTON_HOLD + if (rb->button_hold()) { + pause = true; + rb->splash (HZ, true, "PAUSED"); + } +#endif + button = rb->button_get_w_tmo (true); switch (button) { case UP: diff --git a/docs/CREDITS b/docs/CREDITS index e71ae8ca11..269c558c30 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -217,3 +217,4 @@ Paul Louden Rainer Sinsch Plácido Revilla Michael Sevakis +Lukas Sabota