summaryrefslogtreecommitdiffstats
path: root/apps/plugins/maze.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/maze.c')
-rw-r--r--apps/plugins/maze.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c
index 8c951ebdcc..ebb83ab15c 100644
--- a/apps/plugins/maze.c
+++ b/apps/plugins/maze.c
@@ -37,11 +37,14 @@
/* key assignments */
-#if (CONFIG_KEYPAD == IPOD_3G_PAD)
+#if (CONFIG_KEYPAD == IPOD_1G2G_PAD) \
+ || (CONFIG_KEYPAD == IPOD_3G_PAD) \
+ || (CONFIG_KEYPAD == IPOD_4G_PAD)
# define MAZE_NEW (BUTTON_SELECT | BUTTON_REPEAT)
# define MAZE_NEW_PRE BUTTON_SELECT
# define MAZE_QUIT BUTTON_MENU
-# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_PLAY)
+# define MAZE_SOLVE (BUTTON_SELECT | BUTTON_REL)
+# define MAZE_SOLVE_PRE BUTTON_SELECT
# define MAZE_RIGHT BUTTON_RIGHT
# define MAZE_RIGHT_REPEAT BUTTON_RIGHT|BUTTON_REPEAT
# define MAZE_LEFT BUTTON_LEFT
@@ -491,7 +494,7 @@ static void maze_move_player_left(struct maze* maze)
enum plugin_status plugin_start(const void* parameter)
{
int button;
-#ifdef MAZE_NEW_PRE
+#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
int lastbutton = BUTTON_NONE;
#endif
int quit = 0;
@@ -544,6 +547,10 @@ enum plugin_status plugin_start(const void* parameter)
maze_draw(&maze, rb->screens[i]);
break;
case MAZE_SOLVE:
+#ifdef MAZE_SOLVE_PRE
+ if(lastbutton != MAZE_SOLVE_PRE)
+ break;
+#endif
maze_solve(&maze);
FOR_NB_SCREENS(i)
maze_draw(&maze, rb->screens[i]);
@@ -583,7 +590,7 @@ enum plugin_status plugin_start(const void* parameter)
}
break;
}
-#ifdef MAZE_NEW_PRE
+#if defined(MAZE_NEW_PRE) || defined(MAZE_SOLVE_PRE)
if( button != BUTTON_NONE )
lastbutton = button;
#endif