forked from len0rd/rockbox
Add an 'Exit Jewels' option to the in-game menu to avoid having to exit to the main menu to quit; this allows us to remove the Menu+Select 'quit' key for iPods, which could be accidentally pressed during play.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9949 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d6af987b4b
commit
ca916145f9
1 changed files with 29 additions and 8 deletions
|
@ -60,7 +60,6 @@ PLUGIN_HEADER
|
||||||
#define JEWELS_PREV BUTTON_SCROLL_BACK
|
#define JEWELS_PREV BUTTON_SCROLL_BACK
|
||||||
#define JEWELS_NEXT BUTTON_SCROLL_FWD
|
#define JEWELS_NEXT BUTTON_SCROLL_FWD
|
||||||
#define JEWELS_SELECT BUTTON_SELECT
|
#define JEWELS_SELECT BUTTON_SELECT
|
||||||
#define JEWELS_CANCEL BUTTON_SELECT|BUTTON_MENU
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
||||||
#define JEWELS_UP BUTTON_UP
|
#define JEWELS_UP BUTTON_UP
|
||||||
|
@ -149,6 +148,7 @@ PLUGIN_HEADER
|
||||||
#define SAVE_FILE PLUGIN_DIR "/jewels.save"
|
#define SAVE_FILE PLUGIN_DIR "/jewels.save"
|
||||||
|
|
||||||
/* final game return status */
|
/* final game return status */
|
||||||
|
#define BJ_QUIT_FROM_GAME 4
|
||||||
#define BJ_END 3
|
#define BJ_END 3
|
||||||
#define BJ_USB 2
|
#define BJ_USB 2
|
||||||
#define BJ_QUIT 1
|
#define BJ_QUIT 1
|
||||||
|
@ -184,7 +184,8 @@ enum menu_result {
|
||||||
MRES_SCORES,
|
MRES_SCORES,
|
||||||
MRES_HELP,
|
MRES_HELP,
|
||||||
MRES_QUIT,
|
MRES_QUIT,
|
||||||
MRES_PLAYBACK
|
MRES_PLAYBACK,
|
||||||
|
MRES_EXIT
|
||||||
};
|
};
|
||||||
|
|
||||||
/* menu commands */
|
/* menu commands */
|
||||||
|
@ -212,11 +213,12 @@ struct jewels_menu {
|
||||||
{"High Scores", MRES_SCORES},
|
{"High Scores", MRES_SCORES},
|
||||||
{"Help", MRES_HELP},
|
{"Help", MRES_HELP},
|
||||||
{"Quit", MRES_QUIT}}},
|
{"Quit", MRES_QUIT}}},
|
||||||
{"Menu", true, 0, 4,
|
{"Menu", true, 0, 5,
|
||||||
{{"Audio Playback", MRES_PLAYBACK },
|
{{"Audio Playback", MRES_PLAYBACK },
|
||||||
{"Resume Game", MRES_RESUME},
|
{"Resume Game", MRES_RESUME},
|
||||||
{"Save Game", MRES_SAVE},
|
{"Save Game", MRES_SAVE},
|
||||||
{"End Game", MRES_QUIT}}}
|
{"End Game", MRES_QUIT},
|
||||||
|
{"Exit Jewels", MRES_EXIT}}}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* global rockbox api */
|
/* global rockbox api */
|
||||||
|
@ -1301,6 +1303,9 @@ static int jewels_main(struct game_context* bj) {
|
||||||
case MRES_QUIT:
|
case MRES_QUIT:
|
||||||
return BJ_END;
|
return BJ_END;
|
||||||
|
|
||||||
|
case MRES_EXIT:
|
||||||
|
return BJ_QUIT_FROM_GAME;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1409,9 +1414,11 @@ static int jewels_main(struct game_context* bj) {
|
||||||
if(!inmenu) inmenu = true;
|
if(!inmenu) inmenu = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef JEWELS_CANCEL
|
||||||
case JEWELS_CANCEL: /* end game */
|
case JEWELS_CANCEL: /* end game */
|
||||||
return BJ_END;
|
return BJ_END;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if(rb->default_event_handler_ex(button, jewels_callback,
|
if(rb->default_event_handler_ex(button, jewels_callback,
|
||||||
|
@ -1471,6 +1478,20 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
|
||||||
exit = true;
|
exit = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BJ_QUIT_FROM_GAME:
|
||||||
|
if(!bj.resume) {
|
||||||
|
if((position = jewels_recordscore(&bj))) {
|
||||||
|
rb->snprintf(str, 19, "New high score #%d!", position);
|
||||||
|
rb->splash(HZ*2, true, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(bj.dirty) {
|
||||||
|
rb->splash(HZ, true, "Saving high scores...");
|
||||||
|
jewels_savescores(&bj);
|
||||||
|
}
|
||||||
|
exit = true;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue