summaryrefslogtreecommitdiff
path: root/apps/plugins/bubbles.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-07-29 09:22:14 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-07-29 09:22:14 +0000
commita39cf4fca19379da2dc1d4a0642d16ddd19da799 (patch)
tree41c90e39cb5cf359613885a96e372373d84ce688 /apps/plugins/bubbles.c
parentffb121c7a3dd660f345ebf287da8e754fbe67085 (diff)
downloadrockbox-a39cf4fca19379da2dc1d4a0642d16ddd19da799.zip
rockbox-a39cf4fca19379da2dc1d4a0642d16ddd19da799.tar.gz
rockbox-a39cf4fca19379da2dc1d4a0642d16ddd19da799.tar.bz2
rockbox-a39cf4fca19379da2dc1d4a0642d16ddd19da799.tar.xz
Use the wheel to aim on the sansa
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14055 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/bubbles.c')
-rw-r--r--apps/plugins/bubbles.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index dede076..dca3ede 100644
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -55,10 +55,23 @@ PLUGIN_HEADER
#define MAX_SHOTTIME 1000
/* keyboard layouts */
+#if CONFIG_KEYPAD != SANSA_E200_PAD
+/* sansa uses the wheel instead of left/right */
#define BUBBLES_LEFT PLA_LEFT
#define BUBBLES_LEFT_REP PLA_LEFT_REPEAT
#define BUBBLES_RIGHT PLA_RIGHT
#define BUBBLES_RIGHT_REP PLA_RIGHT_REPEAT
+#define ANGLE_STEP 4
+#define ANGLE_STEP_REP 4
+#else
+#define BUBBLES_LEFT PLA_UP
+#define BUBBLES_LEFT_REP PLA_UP_REPEAT
+#define BUBBLES_RIGHT PLA_DOWN
+#define BUBBLES_RIGHT_REP PLA_DOWN_REPEAT
+#define ANGLE_STEP 2
+#define ANGLE_STEP_REP 4
+#endif
+
#define BUBBLES_QUIT PLA_QUIT
#define BUBBLES_START PLA_START
#define BUBBLES_SELECT PLA_FIRE
@@ -2348,7 +2361,11 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock,
int buttonres;
long start;
const struct button_mapping *plugin_contexts[]
+#if CONFIG_KEYPAD != SANSA_E200_PAD
= {generic_left_right_fire,generic_actions};
+#else
+ = {generic_directions,generic_actions};
+#endif
if (timeout < 0)
timeout = 0;
@@ -2360,15 +2377,15 @@ static int bubbles_handlebuttons(struct game_context* bb, bool animblock,
switch(button){
case BUBBLES_LEFT_REP:
- if(bb->angle > MIN_ANGLE) bb->angle -= 4;
+ if(bb->angle > MIN_ANGLE) bb->angle -= ANGLE_STEP_REP;
case BUBBLES_LEFT: /* change angle to the left */
- if(bb->angle > MIN_ANGLE) bb->angle -= 2;
+ if(bb->angle > MIN_ANGLE) bb->angle -= ANGLE_STEP;
break;
case BUBBLES_RIGHT_REP:
- if(bb->angle < MAX_ANGLE) bb->angle += 4;
+ if(bb->angle < MAX_ANGLE) bb->angle += ANGLE_STEP_REP;
case BUBBLES_RIGHT: /* change angle to the right */
- if(bb->angle < MAX_ANGLE) bb->angle += 2;
+ if(bb->angle < MAX_ANGLE) bb->angle += ANGLE_STEP;
break;
case BUBBLES_SELECT: /* fire the shot */
@@ -2509,8 +2526,8 @@ static int bubbles(struct game_context* bb) {
rb->lcd_puts(0, 4, "POWER to exit");
rb->lcd_puts(0, 5, "SELECT to fire");
rb->lcd_puts(0, 6, " and show high scores");
- rb->lcd_puts(0, 7, "LEFT/RIGHT to aim");
- rb->lcd_puts(0, 8, "SCROLL to change level");
+ rb->lcd_puts(0, 7, "SCROLL to aim");
+ rb->lcd_puts(0, 8, " and change level");
#endif
#if LCD_WIDTH >= 138
rb->snprintf(str, 28, "Start on level %d of %d", startlevel+1,