1
0
Fork 0
forked from len0rd/rockbox

pegbox: Fix bug it restarts the level when user choosed "Resume Game" in the menu.

Simplify menu.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22091 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Teruaki Kawashima 2009-08-01 13:20:20 +00:00
parent 95d043b26d
commit d657c690a8

View file

@ -44,7 +44,7 @@ PLUGIN_HEADER
#define PLAYER 7 #define PLAYER 7
#if CONFIG_KEYPAD == RECORDER_PAD #if CONFIG_KEYPAD == RECORDER_PAD
#define PEGBOX_SAVE BUTTON_ON #define PEGBOX_SELECT BUTTON_ON
#define PEGBOX_QUIT BUTTON_OFF #define PEGBOX_QUIT BUTTON_OFF
#define PEGBOX_RESTART BUTTON_F2 #define PEGBOX_RESTART BUTTON_F2
#define PEGBOX_LVL_UP BUTTON_F1 #define PEGBOX_LVL_UP BUTTON_F1
@ -54,14 +54,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "ON" #define SELECT_TEXT "ON"
#define QUIT_TEXT "OFF" #define QUIT_TEXT "OFF"
#define RESTART_TEXT "F2" #define RESTART_TEXT "F2"
#define LVL_UP_TEXT "F1" #define LVL_UP_TEXT "F1"
#define LVL_DOWN_TEXT "F3" #define LVL_DOWN_TEXT "F3"
#elif CONFIG_KEYPAD == ONDIO_PAD #elif CONFIG_KEYPAD == ONDIO_PAD
#define PEGBOX_SAVE BUTTON_OFF #define PEGBOX_SELECT BUTTON_OFF
#define PEGBOX_QUIT (BUTTON_MENU | BUTTON_LEFT) #define PEGBOX_QUIT (BUTTON_MENU | BUTTON_LEFT)
#define PEGBOX_RESTART (BUTTON_MENU | BUTTON_RIGHT) #define PEGBOX_RESTART (BUTTON_MENU | BUTTON_RIGHT)
#define PEGBOX_LVL_UP (BUTTON_MENU | BUTTON_UP) #define PEGBOX_LVL_UP (BUTTON_MENU | BUTTON_UP)
@ -71,7 +71,7 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "OFF" #define SELECT_TEXT "OFF"
#define QUIT_TEXT "M+LEFT" #define QUIT_TEXT "M+LEFT"
#define RESTART_TEXT "M+RIGHT" #define RESTART_TEXT "M+RIGHT"
#define LVL_UP_TEXT "M+UP" #define LVL_UP_TEXT "M+UP"
@ -79,7 +79,7 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
(CONFIG_KEYPAD == IRIVER_H300_PAD) (CONFIG_KEYPAD == IRIVER_H300_PAD)
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_OFF #define PEGBOX_QUIT BUTTON_OFF
#define PEGBOX_RESTART BUTTON_ON #define PEGBOX_RESTART BUTTON_ON
#define PEGBOX_LVL_UP BUTTON_MODE #define PEGBOX_LVL_UP BUTTON_MODE
@ -89,7 +89,7 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "NAVI" #define SELECT_TEXT "NAVI"
#define QUIT_TEXT "OFF" #define QUIT_TEXT "OFF"
#define RESTART_TEXT "ON" #define RESTART_TEXT "ON"
#define LVL_UP_TEXT "AB" #define LVL_UP_TEXT "AB"
@ -98,7 +98,7 @@ PLUGIN_HEADER
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
(CONFIG_KEYPAD == IPOD_3G_PAD) || \ (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD) (CONFIG_KEYPAD == IPOD_1G2G_PAD)
#define PEGBOX_SAVE (BUTTON_SELECT|BUTTON_RIGHT) #define PEGBOX_SELECT (BUTTON_SELECT|BUTTON_RIGHT)
#define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY) #define PEGBOX_QUIT (BUTTON_SELECT|BUTTON_PLAY)
#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) #define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU) #define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_MENU)
@ -107,14 +107,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT+RIGHT" #define SELECT_TEXT "SELECT+RIGHT"
#define QUIT_TEXT "SELECT+PLAY" #define QUIT_TEXT "SELECT+PLAY"
#define RESTART_TEXT "SELECT+LEFT" #define RESTART_TEXT "SELECT+LEFT"
#define LVL_UP_TEXT "SELECT+MENU" #define LVL_UP_TEXT "SELECT+MENU"
#define LVL_DOWN_TEXT "-" #define LVL_DOWN_TEXT "-"
#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_REC #define PEGBOX_RESTART BUTTON_REC
#define PEGBOX_LVL_UP BUTTON_PLAY #define PEGBOX_LVL_UP BUTTON_PLAY
@ -123,14 +123,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "OFF" #define QUIT_TEXT "OFF"
#define RESTART_TEXT "REC" #define RESTART_TEXT "REC"
#define LVL_UP_TEXT "PLAY" #define LVL_UP_TEXT "PLAY"
#define LVL_DOWN_TEXT "-" #define LVL_DOWN_TEXT "-"
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
#define PEGBOX_SAVE BUTTON_MODE #define PEGBOX_SELECT BUTTON_MODE
#define PEGBOX_QUIT BUTTON_PLAY #define PEGBOX_QUIT BUTTON_PLAY
#define PEGBOX_RESTART (BUTTON_EQ|BUTTON_MODE) #define PEGBOX_RESTART (BUTTON_EQ|BUTTON_MODE)
#define PEGBOX_LVL_UP (BUTTON_EQ|BUTTON_UP) #define PEGBOX_LVL_UP (BUTTON_EQ|BUTTON_UP)
@ -140,14 +140,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "MODE" #define SELECT_TEXT "MODE"
#define QUIT_TEXT "PLAY" #define QUIT_TEXT "PLAY"
#define RESTART_TEXT "EQ+MODE" #define RESTART_TEXT "EQ+MODE"
#define LVL_UP_TEXT "EQ+UP" #define LVL_UP_TEXT "EQ+UP"
#define LVL_DOWN_TEXT "EQ+DOWN" #define LVL_DOWN_TEXT "EQ+DOWN"
#elif CONFIG_KEYPAD == IRIVER_H10_PAD #elif CONFIG_KEYPAD == IRIVER_H10_PAD
#define PEGBOX_SAVE BUTTON_PLAY #define PEGBOX_SELECT BUTTON_PLAY
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_FF|BUTTON_REPEAT) #define PEGBOX_RESTART (BUTTON_FF|BUTTON_REPEAT)
#define PEGBOX_LVL_UP (BUTTON_FF|BUTTON_SCROLL_UP) #define PEGBOX_LVL_UP (BUTTON_FF|BUTTON_SCROLL_UP)
@ -157,14 +157,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "PLAY" #define SELECT_TEXT "PLAY"
#define QUIT_TEXT "OFF" #define QUIT_TEXT "OFF"
#define RESTART_TEXT "LONG FF" #define RESTART_TEXT "LONG FF"
#define LVL_UP_TEXT "FF+SCROLL_UP" #define LVL_UP_TEXT "FF+SCROLL_UP"
#define LVL_DOWN_TEXT "FF+SCROLL_DOWN" #define LVL_DOWN_TEXT "FF+SCROLL_DOWN"
#elif CONFIG_KEYPAD == SANSA_E200_PAD #elif CONFIG_KEYPAD == SANSA_E200_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_REC #define PEGBOX_RESTART BUTTON_REC
#define PEGBOX_LVL_UP BUTTON_SCROLL_BACK #define PEGBOX_LVL_UP BUTTON_SCROLL_BACK
@ -174,14 +174,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "REC" #define RESTART_TEXT "REC"
#define LVL_UP_TEXT "SCROLL BACK" #define LVL_UP_TEXT "SCROLL BACK"
#define LVL_DOWN_TEXT "SCROLL FWD" #define LVL_DOWN_TEXT "SCROLL FWD"
#elif CONFIG_KEYPAD == SANSA_FUZE_PAD #elif CONFIG_KEYPAD == SANSA_FUZE_PAD
#define PEGBOX_SAVE BUTTON_SELECT|BUTTON_REL #define PEGBOX_SELECT BUTTON_SELECT|BUTTON_REL
#define PEGBOX_QUIT (BUTTON_HOME|BUTTON_REPEAT) #define PEGBOX_QUIT (BUTTON_HOME|BUTTON_REPEAT)
#define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT) #define PEGBOX_RESTART (BUTTON_SELECT|BUTTON_LEFT)
#define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_UP) #define PEGBOX_LVL_UP (BUTTON_SELECT|BUTTON_UP)
@ -191,14 +191,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "HOME" #define QUIT_TEXT "HOME"
#define RESTART_TEXT "SELECT & LEFT" #define RESTART_TEXT "SELECT & LEFT"
#define LVL_UP_TEXT "SELECT & UP" #define LVL_UP_TEXT "SELECT & UP"
#define LVL_DOWN_TEXT "SELECT & DOWN" #define LVL_DOWN_TEXT "SELECT & DOWN"
#elif CONFIG_KEYPAD == GIGABEAT_PAD #elif CONFIG_KEYPAD == GIGABEAT_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_A #define PEGBOX_RESTART BUTTON_A
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -208,14 +208,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "A" #define RESTART_TEXT "A"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD #elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_BACK #define PEGBOX_QUIT BUTTON_BACK
#define PEGBOX_RESTART BUTTON_MENU #define PEGBOX_RESTART BUTTON_MENU
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -225,14 +225,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "BACK" #define QUIT_TEXT "BACK"
#define RESTART_TEXT "MENU" #define RESTART_TEXT "MENU"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == MROBE100_PAD #elif CONFIG_KEYPAD == MROBE100_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_PLAY #define PEGBOX_RESTART BUTTON_PLAY
#define PEGBOX_LVL_UP BUTTON_MENU #define PEGBOX_LVL_UP BUTTON_MENU
@ -242,14 +242,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "PLAY" #define RESTART_TEXT "PLAY"
#define LVL_UP_TEXT "MENU" #define LVL_UP_TEXT "MENU"
#define LVL_DOWN_TEXT "DISPLAY" #define LVL_DOWN_TEXT "DISPLAY"
#elif CONFIG_KEYPAD == SANSA_C200_PAD #elif CONFIG_KEYPAD == SANSA_C200_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_REC #define PEGBOX_RESTART BUTTON_REC
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -259,14 +259,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "REC" #define RESTART_TEXT "REC"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == SANSA_CLIP_PAD #elif CONFIG_KEYPAD == SANSA_CLIP_PAD
#define PEGBOX_SAVE BUTTON_SELECT #define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_HOME #define PEGBOX_RESTART BUTTON_HOME
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -276,14 +276,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "HOME" #define RESTART_TEXT "HOME"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
#define LVL_DOWN_TEXT "VOL-" #define LVL_DOWN_TEXT "VOL-"
#elif CONFIG_KEYPAD == SANSA_M200_PAD #elif CONFIG_KEYPAD == SANSA_M200_PAD
#define PEGBOX_SAVE (BUTTON_SELECT | BUTTON_REL) #define PEGBOX_SELECT (BUTTON_SELECT | BUTTON_REL)
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART (BUTTON_SELECT | BUTTON_UP) #define PEGBOX_RESTART (BUTTON_SELECT | BUTTON_UP)
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -293,7 +293,7 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "SELECT" #define SELECT_TEXT "SELECT"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "SELECT+UP" #define RESTART_TEXT "SELECT+UP"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
@ -301,7 +301,7 @@ PLUGIN_HEADER
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD #elif CONFIG_KEYPAD == IAUDIO_M3_PAD
#define PEGBOX_SAVE BUTTON_RC_PLAY #define PEGBOX_SELECT BUTTON_RC_PLAY
#define PEGBOX_QUIT BUTTON_RC_REC #define PEGBOX_QUIT BUTTON_RC_REC
#define PEGBOX_RESTART BUTTON_RC_MODE #define PEGBOX_RESTART BUTTON_RC_MODE
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -311,7 +311,7 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RC_FF #define PEGBOX_RIGHT BUTTON_RC_FF
#define PEGBOX_LEFT BUTTON_RC_REW #define PEGBOX_LEFT BUTTON_RC_REW
#define SAVE_TEXT "REM. PLAY" #define SELECT_TEXT "REM. PLAY"
#define QUIT_TEXT "REM. REC" #define QUIT_TEXT "REM. REC"
#define RESTART_TEXT "REM. MODE" #define RESTART_TEXT "REM. MODE"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
@ -323,7 +323,7 @@ PLUGIN_HEADER
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD #elif CONFIG_KEYPAD == CREATIVEZVM_PAD
#define PEGBOX_SAVE BUTTON_CUSTOM #define PEGBOX_SELECT BUTTON_CUSTOM
#define PEGBOX_QUIT BUTTON_BACK #define PEGBOX_QUIT BUTTON_BACK
#define PEGBOX_RESTART BUTTON_SELECT #define PEGBOX_RESTART BUTTON_SELECT
#define PEGBOX_LVL_UP BUTTON_PLAY #define PEGBOX_LVL_UP BUTTON_PLAY
@ -333,14 +333,14 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "CUSTOM" #define SELECT_TEXT "CUSTOM"
#define QUIT_TEXT "BACK" #define QUIT_TEXT "BACK"
#define RESTART_TEXT "MIDDLE" #define RESTART_TEXT "MIDDLE"
#define LVL_UP_TEXT "SELECT" #define LVL_UP_TEXT "SELECT"
#define LVL_DOWN_TEXT "MENU" #define LVL_DOWN_TEXT "MENU"
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
#define PEGBOX_SAVE BUTTON_VIEW #define PEGBOX_SELECT BUTTON_VIEW
#define PEGBOX_QUIT BUTTON_POWER #define PEGBOX_QUIT BUTTON_POWER
#define PEGBOX_RESTART BUTTON_MENU #define PEGBOX_RESTART BUTTON_MENU
#define PEGBOX_LVL_UP BUTTON_VOL_UP #define PEGBOX_LVL_UP BUTTON_VOL_UP
@ -350,7 +350,7 @@ PLUGIN_HEADER
#define PEGBOX_RIGHT BUTTON_RIGHT #define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT #define PEGBOX_LEFT BUTTON_LEFT
#define SAVE_TEXT "VIEW" #define SELECT_TEXT "VIEW"
#define QUIT_TEXT "POWER" #define QUIT_TEXT "POWER"
#define RESTART_TEXT "MENU" #define RESTART_TEXT "MENU"
#define LVL_UP_TEXT "VOL+" #define LVL_UP_TEXT "VOL+"
@ -369,8 +369,8 @@ PLUGIN_HEADER
#ifndef PEGBOX_QUIT #ifndef PEGBOX_QUIT
#define PEGBOX_QUIT BUTTON_TOPLEFT #define PEGBOX_QUIT BUTTON_TOPLEFT
#endif #endif
#ifndef PEGBOX_SAVE #ifndef PEGBOX_SELECT
#define PEGBOX_SAVE BUTTON_CENTER #define PEGBOX_SELECT BUTTON_CENTER
#endif #endif
#ifndef PEGBOX_RESTART #ifndef PEGBOX_RESTART
#define PEGBOX_RESTART BUTTON_TOPRIGHT #define PEGBOX_RESTART BUTTON_TOPRIGHT
@ -393,8 +393,8 @@ PLUGIN_HEADER
#ifndef PEGBOX_LEFT #ifndef PEGBOX_LEFT
#define PEGBOX_LEFT BUTTON_MIDLEFT #define PEGBOX_LEFT BUTTON_MIDLEFT
#endif #endif
#ifndef SAVE_TEXT #ifndef SELECT_TEXT
#define SAVE_TEXT "CENTER" #define SELECT_TEXT "CENTER"
#endif #endif
#ifndef QUIT_TEXT #ifndef QUIT_TEXT
#define QUIT_TEXT "TOPLEFT" #define QUIT_TEXT "TOPLEFT"
@ -724,16 +724,11 @@ static void pegbox_draw_board(struct game_context* pb)
type = pb->playboard[r][c]; type = pb->playboard[r][c];
switch(type) { if(type != SPACE) {
case SPACE:
break;
default:
rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X, PIECE_WIDTH, c * PIECE_WIDTH + BOARD_X,
r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
PIECE_HEIGHT); PIECE_HEIGHT);
break;
} }
if(pb->playboard[r][c] == PLAYER) { if(pb->playboard[r][c] == PLAYER) {
@ -818,7 +813,7 @@ static void pegbox_new_piece(struct game_context* pb, unsigned int x_loc,
else if(ret.action == TS_ACTION_CLICK else if(ret.action == TS_ACTION_CLICK
&& (unsigned)ret.to.x == y_loc && (unsigned)ret.to.x == y_loc
&& (unsigned)ret.to.y == x_loc) && (unsigned)ret.to.y == x_loc)
button = PEGBOX_SAVE; button = PEGBOX_SELECT;
} }
#endif #endif
switch(button){ switch(button){
@ -840,8 +835,9 @@ static void pegbox_new_piece(struct game_context* pb, unsigned int x_loc,
else else
pb->playboard[x_loc][y_loc] = CIRCLE; pb->playboard[x_loc][y_loc] = CIRCLE;
break; break;
case PEGBOX_SAVE: case PEGBOX_SELECT:
exit=true; exit=true;
break;
} }
} }
} }
@ -853,19 +849,20 @@ static void pegbox_move_player(struct game_context* pb, signed int x_dir,
signed int y_dir) signed int y_dir)
{ {
unsigned int type1, type2; unsigned int type1, type2;
signed int r,c; signed int r1,c1,r2,c2;
r = pb->player_row+y_dir; r1 = pb->player_row+y_dir;
c = pb->player_col+x_dir; c1 = pb->player_col+x_dir;
r2 = pb->player_row+y_dir*2;
c2 = pb->player_col+x_dir*2;
type1 = pb->playboard[r][c]; type1 = pb->playboard[r1][c1];
type2 = pb->playboard[r+y_dir][c+x_dir]; type2 = pb->playboard[r2][c2];
if (r == ROWS || c == COLS || r < 0 || c < 0 || type1 == WALL) if (r1 == ROWS || c1 == COLS || r1 < 0 || c1 < 0 || type1 == WALL)
return; return;
else if(type1 != SPACE) { else if(type1 != SPACE) {
if (type2 == WALL || r+y_dir == ROWS || c+x_dir == COLS || if (r2 == ROWS || c2 == COLS || r2 < 0 || c2 < 0 || type2 == WALL)
r+y_dir < 0 || c+x_dir < 0)
return; return;
} }
@ -880,25 +877,25 @@ static void pegbox_move_player(struct game_context* pb, signed int x_dir,
pegbox_load_level(pb); pegbox_load_level(pb);
} }
else if (type1 == SPACE) else if (type1 == SPACE)
pb->playboard[r][c] = PLAYER; pb->playboard[r1][c1] = PLAYER;
else { else {
pb->playboard[r][c] = PLAYER; pb->playboard[r1][c1] = PLAYER;
if(type1 == type2) { if(type1 == type2) {
if (type1 == TRIANGLE) if (type1 == TRIANGLE)
pb->playboard[r+y_dir][c+x_dir] = WALL; pb->playboard[r2][c2] = WALL;
else if (type1 == CROSS) { else if (type1 == CROSS) {
pb->playboard[r][c] = SPACE; pb->playboard[r1][c1] = SPACE;
pegbox_new_piece(pb, r+y_dir, c+x_dir); pegbox_new_piece(pb, r2, c2);
pb->playboard[r][c] = PLAYER; pb->playboard[r1][c1] = PLAYER;
} }
else else
pb->playboard[r+y_dir][c+x_dir] = SPACE; pb->playboard[r2][c2] = SPACE;
} }
else if (type2 == SPACE) else if (type2 == SPACE)
pb->playboard[r+y_dir][c+x_dir] = type1; pb->playboard[r2][c2] = type1;
else if (type2 == HOLE) { else if (type2 == HOLE) {
if (type1 == SQUARE) if (type1 == SQUARE)
pb->playboard[r+y_dir][c+x_dir] = SPACE; pb->playboard[r2][c2] = SPACE;
} }
else { else {
rb->splash(HZ*2, "Illegal Move!"); rb->splash(HZ*2, "Illegal Move!");
@ -927,7 +924,7 @@ static bool pegbox_help(void)
RESTART_TEXT, "to", "restart", "level", "", RESTART_TEXT, "to", "restart", "level", "",
LVL_UP_TEXT, "to", "go", "up", "a", "level", "", LVL_UP_TEXT, "to", "go", "up", "a", "level", "",
LVL_DOWN_TEXT, "to", "go", "down", "a", "level", "", LVL_DOWN_TEXT, "to", "go", "down", "a", "level", "",
SAVE_TEXT, "to", "choose", "peg", "", SELECT_TEXT, "to", "choose", "peg", "",
QUIT_TEXT, "to", "quit" QUIT_TEXT, "to", "quit"
}; };
static struct style_text formation[]={ static struct style_text formation[]={
@ -954,42 +951,55 @@ static bool pegbox_help(void)
/*********************************************************************** /***********************************************************************
* pegbox_menu() is the game menu * pegbox_menu() is the game menu
************************************************************************/ ************************************************************************/
static bool _ingame;
static int pegbox_menu_cb(int action, const struct menu_item_ex *this_item)
{
int i = (intptr_t)this_item;
if( action == ACTION_REQUEST_MENUITEM )
{
if((!_ingame && (i==0 || i==1)) || ( _ingame && i==2 ))
return ACTION_EXIT_MENUITEM;
}
return action;
}
static unsigned int pegbox_menu(struct game_context* pb, bool ingame) static unsigned int pegbox_menu(struct game_context* pb, bool ingame)
{ {
rb->button_clear_queue(); int selected = 0;
int choice = 0; int last_level = pb->level;
if (ingame) { MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", pegbox_menu_cb,
MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", NULL, "Resume Game", "Restart Level", "Start Game",
"Resume Game", "Select Level", "Help",
"Restart Level", "Playback Control", "Quit");
"Select Level", _ingame = ingame;
"Help", rb->button_clear_queue();
"Playback Control",
"Quit");
while (true) { while (true) {
switch (rb->do_menu(&main_menu, &choice, NULL, false)) { switch (rb->do_menu(&main_menu, &selected, NULL, false)) {
case 0: case 0:
pb->level = last_level;
pegbox_draw_board(pb); pegbox_draw_board(pb);
return 0; return 0;
case 1: case 1:
case 2:
pegbox_load_level(pb); pegbox_load_level(pb);
pegbox_draw_board(pb); pegbox_draw_board(pb);
return 0; return 0;
case 2:
rb->set_int("Select Level", "", UNIT_INT,
&pb->level, NULL, 1, 1,
pb->highlevel, NULL);
break;
case 3: case 3:
if (pegbox_help()==PLUGIN_USB_CONNECTED) if(rb->set_int("Select Level", "", UNIT_INT, &pb->level,
NULL, 1, 1, pb->highlevel, NULL))
return 1; return 1;
break; break;
case 4: case 4:
playback_control(NULL); if (pegbox_help())
return 1;
break; break;
case 5: case 5:
if (playback_control(NULL))
return 1;
break;
case 6:
return 1; return 1;
case MENU_ATTACHED_USB: case MENU_ATTACHED_USB:
return 1; return 1;
@ -997,41 +1007,6 @@ static unsigned int pegbox_menu(struct game_context* pb, bool ingame)
break; break;
} }
} }
} else {
MENUITEM_STRINGLIST (main_menu, "Pegbox Menu", NULL,
"Start Game",
"Select Level",
"Help",
"Playback Control",
"Quit");
while (true) {
switch (rb->do_menu(&main_menu, &choice, NULL, false)) {
case 0:
pegbox_load_level(pb);
pegbox_draw_board(pb);
return 0;
case 1:
rb->set_int("Select Level", "", UNIT_INT,
&pb->level, NULL, 1, 1,
pb->highlevel, NULL);
break;
case 2:
if (pegbox_help()==PLUGIN_USB_CONNECTED)
return 1;
break;
case 3:
playback_control(NULL);
break;
case 4:
return 1;
case MENU_ATTACHED_USB:
return 1;
default:
break;
}
}
}
} }
/*********************************************************************** /***********************************************************************
@ -1087,6 +1062,8 @@ static int pegbox_main(struct game_context* pb)
if (pegbox_menu(pb, true)==1) { if (pegbox_menu(pb, true)==1) {
return 1; return 1;
} }
break;
#ifdef PEGBOX_RESTART #ifdef PEGBOX_RESTART
case PEGBOX_RESTART: case PEGBOX_RESTART:
pegbox_load_level(pb); pegbox_load_level(pb);