summaryrefslogtreecommitdiff
path: root/apps/plugins/star.c
diff options
context:
space:
mode:
authorAntoine Cellerier <dionoea@videolan.org>2006-07-27 21:08:52 +0000
committerAntoine Cellerier <dionoea@videolan.org>2006-07-27 21:08:52 +0000
commitc577ec6790605af78d4d6f5dab0f484ee1d64e36 (patch)
tree05b8710562419bbb64a6d583509ad22110da2097 /apps/plugins/star.c
parent3e60bc44272883a54f7301d59bfa2a640253b063 (diff)
Apply patch from http://www.rockbox.org/tracker/task/5569
Quote: * Reduced the speed back to normal on colour targets (except 5G because it's LCD is slow) * Added the ability to use the select button to navigate menus on iPod and irivers. * Tried to fix the animation next to the menu. It's a little better but still very flakey. * Adjusted the position of the ball and block indicator bitmap while playing the game, so they are not placed off the edge of the screen. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10342 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/star.c')
-rw-r--r--apps/plugins/star.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 10bc3fd6af..c844549c05 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -48,7 +48,8 @@ PLUGIN_HEADER
#define STAR_BLOCK 'x'
/* sleep time between two frames */
-#ifdef HAVE_LCD_COLOR
+#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320)
+/* iPod 5G LCD is *slow* */
#define STAR_SLEEP ;
#else
#define STAR_SLEEP rb->sleep(1);
@@ -94,6 +95,7 @@ PLUGIN_HEADER
#define STAR_LEVEL_DOWN (BUTTON_MODE | BUTTON_LEFT)
#define STAR_LEVEL_REPEAT (BUTTON_MODE | BUTTON_UP)
#define STAR_MENU_RUN BUTTON_RIGHT
+#define STAR_MENU_RUN2 BUTTON_SELECT
#define STAR_RC_QUIT BUTTON_RC_STOP
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
@@ -108,6 +110,7 @@ PLUGIN_HEADER
#define STAR_LEVEL_DOWN (BUTTON_SELECT | BUTTON_LEFT)
#define STAR_LEVEL_REPEAT (BUTTON_SELECT | BUTTON_PLAY)
#define STAR_MENU_RUN BUTTON_RIGHT
+#define STAR_MENU_RUN2 BUTTON_SELECT
#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
@@ -566,14 +569,14 @@ static void star_display_board_info(void)
if( control == STAR_CONTROL_BALL )
rb->lcd_bitmap_part( star_tiles, 0,
ball*STAR_TILE_SIZE, STAR_TILE_SIZE,
- 107, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 + 1,
+ 107, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 - 2,
STAR_TILE_SIZE, STAR_TILE_SIZE);
else
rb->lcd_bitmap_part( star_tiles, 0,
block*STAR_TILE_SIZE, STAR_TILE_SIZE,
- 107, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 + 1,
+ 107, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 - 2,
STAR_TILE_SIZE, STAR_TILE_SIZE);
- rb->lcd_update_rect(0, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 + 1, LCD_WIDTH, STAR_TILE_SIZE );
+ rb->lcd_update_rect(0, label_offset_y - ( STAR_TILE_SIZE - char_height ) / 2 - 2, LCD_WIDTH, STAR_TILE_SIZE );
#else
if (control == STAR_CONTROL_BALL)
rb->lcd_mono_bitmap (ball_bmp, 103, label_offset_y + 1, STAR_TILE_SIZE,
@@ -915,17 +918,29 @@ static int star_menu(void)
case STAR_QUIT:
return PLUGIN_OK;
case STAR_UP:
- if (menu_y > 0)
+ if (menu_y > 0) {
move_y = -1;
+ int oldforeground = rb->lcd_get_foreground();
+ rb->lcd_set_foreground(LCD_BLACK);
+ rb->lcd_fillrect(0, menu_offset_y + char_height * menu_y - 2, 15, char_height + 3);
+ rb->lcd_set_foreground(oldforeground);
+ }
break;
case STAR_DOWN:
- if (menu_y < 3)
+ if (menu_y < 3) {
move_y = 1;
+ int oldforeground = rb->lcd_get_foreground();
+ rb->lcd_set_foreground(LCD_BLACK);
+ rb->lcd_fillrect(0, menu_offset_y + char_height * menu_y - 1, 15, char_height + 2);
+ rb->lcd_set_foreground(oldforeground);
+ }
break;
case STAR_MENU_RUN:
-#ifdef STAR_MENU_RUN3
+#ifdef STAR_MENU_RUN2
case STAR_MENU_RUN2:
+#endif
+#ifdef STAR_MENU_RUN3
case STAR_MENU_RUN3:
#endif
refresh = true;