forked from len0rd/rockbox
Add a standard menu, add highscore table and clean up the code in spacerocks (part of FS#10193)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21995 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
3f7dfeed3a
commit
49866a762e
1 changed files with 236 additions and 315 deletions
|
|
@ -20,223 +20,161 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "plugin.h"
|
#include "plugin.h"
|
||||||
|
#include "lib/display_text.h"
|
||||||
#include "lib/helper.h"
|
#include "lib/helper.h"
|
||||||
|
#include "lib/highscore.h"
|
||||||
|
#include "lib/playback_control.h"
|
||||||
|
|
||||||
PLUGIN_HEADER
|
PLUGIN_HEADER
|
||||||
|
|
||||||
/******************************* Globals ***********************************/
|
|
||||||
/* variable button definitions */
|
/* variable button definitions */
|
||||||
#if CONFIG_KEYPAD == RECORDER_PAD
|
#if CONFIG_KEYPAD == RECORDER_PAD
|
||||||
#define AST_PAUSE BUTTON_ON
|
#define AST_PAUSE BUTTON_ON
|
||||||
#define AST_QUIT BUTTON_OFF
|
#define AST_QUIT BUTTON_OFF
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_PLAY
|
#define AST_FIRE BUTTON_PLAY
|
||||||
#define AST_FIRE_REP BUTTON_PLAY | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
|
#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
|
||||||
#define AST_PAUSE BUTTON_ON
|
#define AST_PAUSE BUTTON_ON
|
||||||
#define AST_QUIT BUTTON_OFF
|
#define AST_QUIT BUTTON_OFF
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == ONDIO_PAD
|
#elif CONFIG_KEYPAD == ONDIO_PAD
|
||||||
#define AST_PAUSE (BUTTON_MENU | BUTTON_OFF)
|
#define AST_PAUSE (BUTTON_MENU | BUTTON_OFF)
|
||||||
#define AST_QUIT BUTTON_OFF
|
#define AST_QUIT BUTTON_OFF
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_MENU
|
#define AST_FIRE BUTTON_MENU
|
||||||
#define AST_FIRE_REP BUTTON_MENU | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
||||||
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
||||||
#define AST_PAUSE BUTTON_REC
|
#define AST_PAUSE BUTTON_REC
|
||||||
#define AST_QUIT BUTTON_OFF
|
#define AST_QUIT BUTTON_OFF
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#define AST_RC_QUIT BUTTON_RC_STOP
|
#define AST_RC_QUIT BUTTON_RC_STOP
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
|
#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
|
||||||
#define AST_PAUSE BUTTON_PLAY
|
#define AST_PAUSE BUTTON_PLAY
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
|
||||||
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
|
(CONFIG_KEYPAD == IPOD_1G2G_PAD)
|
||||||
#define AST_PAUSE (BUTTON_SELECT | BUTTON_PLAY)
|
#define AST_PAUSE (BUTTON_SELECT | BUTTON_PLAY)
|
||||||
#define AST_QUIT (BUTTON_SELECT | BUTTON_MENU)
|
#define AST_QUIT (BUTTON_SELECT | BUTTON_MENU)
|
||||||
#define AST_THRUST BUTTON_MENU
|
#define AST_THRUST BUTTON_MENU
|
||||||
#define AST_THRUST_REP (BUTTON_MENU | BUTTON_REPEAT)
|
|
||||||
#define AST_HYPERSPACE BUTTON_PLAY
|
#define AST_HYPERSPACE BUTTON_PLAY
|
||||||
#define AST_LEFT BUTTON_SCROLL_BACK
|
#define AST_LEFT BUTTON_SCROLL_BACK
|
||||||
#define AST_LEFT_REP (BUTTON_SCROLL_BACK | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_SCROLL_FWD
|
#define AST_RIGHT BUTTON_SCROLL_FWD
|
||||||
#define AST_RIGHT_REP (BUTTON_SCROLL_FWD | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
|
#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
|
||||||
#define AST_PAUSE BUTTON_A
|
#define AST_PAUSE BUTTON_A
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
|
#elif (CONFIG_KEYPAD == SANSA_E200_PAD)
|
||||||
#define AST_PAUSE BUTTON_REC
|
#define AST_PAUSE BUTTON_REC
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_SCROLL_BACK
|
#define AST_LEFT BUTTON_SCROLL_BACK
|
||||||
#define AST_LEFT_REP (BUTTON_SCROLL_BACK | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_SCROLL_FWD
|
#define AST_RIGHT BUTTON_SCROLL_FWD
|
||||||
#define AST_RIGHT_REP (BUTTON_SCROLL_FWD | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
|
#elif (CONFIG_KEYPAD == SANSA_FUZE_PAD)
|
||||||
#define AST_PAUSE (BUTTON_SELECT | BUTTON_UP)
|
#define AST_PAUSE (BUTTON_SELECT | BUTTON_UP)
|
||||||
#define AST_QUIT (BUTTON_HOME|BUTTON_REPEAT)
|
#define AST_QUIT (BUTTON_HOME|BUTTON_REPEAT)
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_SCROLL_BACK
|
#define AST_LEFT BUTTON_SCROLL_BACK
|
||||||
#define AST_LEFT_REP (BUTTON_SCROLL_BACK | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_SCROLL_FWD
|
#define AST_RIGHT BUTTON_SCROLL_FWD
|
||||||
#define AST_RIGHT_REP (BUTTON_SCROLL_FWD | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
|
#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
|
||||||
#define AST_PAUSE BUTTON_REC
|
#define AST_PAUSE BUTTON_REC
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == SANSA_CLIP_PAD)
|
#elif (CONFIG_KEYPAD == SANSA_CLIP_PAD)
|
||||||
#define AST_PAUSE BUTTON_HOME
|
#define AST_PAUSE BUTTON_HOME
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == SANSA_M200_PAD)
|
#elif (CONFIG_KEYPAD == SANSA_M200_PAD)
|
||||||
#define AST_PAUSE (BUTTON_SELECT | BUTTON_UP)
|
#define AST_PAUSE (BUTTON_SELECT | BUTTON_UP)
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE (BUTTON_SELECT | BUTTON_REL)
|
#define AST_FIRE (BUTTON_SELECT | BUTTON_REL)
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
|
#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
|
||||||
#define AST_PAUSE BUTTON_PLAY
|
#define AST_PAUSE BUTTON_PLAY
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP BUTTON_SCROLL_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_SCROLL_UP
|
#define AST_THRUST BUTTON_SCROLL_UP
|
||||||
#define AST_HYPERSPACE BUTTON_SCROLL_DOWN
|
#define AST_HYPERSPACE BUTTON_SCROLL_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_REW
|
#define AST_FIRE BUTTON_REW
|
||||||
#define AST_FIRE_REP BUTTON_REW | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
|
#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
|
||||||
#define AST_PAUSE BUTTON_PLAY
|
#define AST_PAUSE BUTTON_PLAY
|
||||||
#define AST_QUIT BUTTON_BACK
|
#define AST_QUIT BUTTON_BACK
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == MROBE100_PAD)
|
#elif (CONFIG_KEYPAD == MROBE100_PAD)
|
||||||
#define AST_PAUSE BUTTON_DISPLAY
|
#define AST_PAUSE BUTTON_DISPLAY
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
|
#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
|
||||||
#define AST_PAUSE BUTTON_RC_PLAY
|
#define AST_PAUSE BUTTON_RC_PLAY
|
||||||
#define AST_QUIT BUTTON_RC_REC
|
#define AST_QUIT BUTTON_RC_REC
|
||||||
#define AST_THRUST_REP BUTTON_RC_VOL_UP | BUTTON_REPEAT
|
|
||||||
#define AST_THRUST BUTTON_RC_VOL_UP
|
#define AST_THRUST BUTTON_RC_VOL_UP
|
||||||
#define AST_HYPERSPACE BUTTON_RC_VOL_DOWN
|
#define AST_HYPERSPACE BUTTON_RC_VOL_DOWN
|
||||||
#define AST_LEFT BUTTON_RC_REW
|
#define AST_LEFT BUTTON_RC_REW
|
||||||
#define AST_LEFT_REP (BUTTON_RC_REW | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RC_FF
|
#define AST_RIGHT BUTTON_RC_FF
|
||||||
#define AST_RIGHT_REP (BUTTON_RC_FF | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_RC_MODE
|
#define AST_FIRE BUTTON_RC_MODE
|
||||||
#define AST_FIRE_REP (BUTTON_RC_MODE | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == COWOND2_PAD)
|
#elif (CONFIG_KEYPAD == COWOND2_PAD)
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
|
|
@ -244,28 +182,20 @@ PLUGIN_HEADER
|
||||||
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
|
#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
|
||||||
#define AST_PAUSE BUTTON_PLAY
|
#define AST_PAUSE BUTTON_PLAY
|
||||||
#define AST_QUIT BUTTON_BACK
|
#define AST_QUIT BUTTON_BACK
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_SELECT
|
#define AST_FIRE BUTTON_SELECT
|
||||||
#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
|
#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
|
||||||
#define AST_PAUSE BUTTON_VIEW
|
#define AST_PAUSE BUTTON_VIEW
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT)
|
|
||||||
#define AST_THRUST BUTTON_UP
|
#define AST_THRUST BUTTON_UP
|
||||||
#define AST_HYPERSPACE BUTTON_DOWN
|
#define AST_HYPERSPACE BUTTON_DOWN
|
||||||
#define AST_LEFT BUTTON_LEFT
|
#define AST_LEFT BUTTON_LEFT
|
||||||
#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT)
|
|
||||||
#define AST_RIGHT BUTTON_RIGHT
|
#define AST_RIGHT BUTTON_RIGHT
|
||||||
#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
|
|
||||||
#define AST_FIRE BUTTON_PLAYLIST
|
#define AST_FIRE BUTTON_PLAYLIST
|
||||||
#define AST_FIRE_REP (BUTTON_PLAYLIST | BUTTON_REPEAT)
|
|
||||||
|
|
||||||
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
|
#elif (CONFIG_KEYPAD == ONDAVX747_PAD) || CONFIG_KEYPAD == MROBE500_PAD
|
||||||
#define AST_QUIT BUTTON_POWER
|
#define AST_QUIT BUTTON_POWER
|
||||||
|
|
@ -324,6 +254,8 @@ PLUGIN_HEADER
|
||||||
#define ASTEROID_SPEED RES/20
|
#define ASTEROID_SPEED RES/20
|
||||||
#define MISSILE_SURVIVAL_LENGTH 40
|
#define MISSILE_SURVIVAL_LENGTH 40
|
||||||
|
|
||||||
|
#define CYCLETIME 30
|
||||||
|
|
||||||
#define EXTRA_LIFE 250
|
#define EXTRA_LIFE 250
|
||||||
#define SPAWN_TIME 30
|
#define SPAWN_TIME 30
|
||||||
#define BLINK_TIME 10
|
#define BLINK_TIME 10
|
||||||
|
|
@ -332,7 +264,6 @@ PLUGIN_HEADER
|
||||||
#define WRAP_GAP 12
|
#define WRAP_GAP 12
|
||||||
#define EXPLOSION_LENGTH 20
|
#define EXPLOSION_LENGTH 20
|
||||||
#define SHOW_COL 0
|
#define SHOW_COL 0
|
||||||
#define HISCORE_FILE PLUGIN_GAMES_DIR "/astrorocks.hs"
|
|
||||||
#define POINT_SIZE 2
|
#define POINT_SIZE 2
|
||||||
#define MAX_NUM_ASTEROIDS 25
|
#define MAX_NUM_ASTEROIDS 25
|
||||||
#define MAX_NUM_MISSILES 6
|
#define MAX_NUM_MISSILES 6
|
||||||
|
|
@ -350,10 +281,7 @@ PLUGIN_HEADER
|
||||||
#define NUM_ENEMY_VERTICES 6
|
#define NUM_ENEMY_VERTICES 6
|
||||||
#define MAX_LEVEL MAX_NUM_ASTEROIDS
|
#define MAX_LEVEL MAX_NUM_ASTEROIDS
|
||||||
#define ENEMY_SPEED 4
|
#define ENEMY_SPEED 4
|
||||||
#define ENEMY_START_X 0
|
|
||||||
#define ENEMY_START_Y 0
|
|
||||||
#define SIZE_ENEMY_COLLISION 5*SCALE
|
#define SIZE_ENEMY_COLLISION 5*SCALE
|
||||||
#define ATTRACT_FLIP_TIME 100
|
|
||||||
#define NUM_STARS 50
|
#define NUM_STARS 50
|
||||||
#define NUM_TRAIL_POINTS 70
|
#define NUM_TRAIL_POINTS 70
|
||||||
#define NUM_ROTATIONS 16
|
#define NUM_ROTATIONS 16
|
||||||
|
|
@ -426,6 +354,13 @@ PLUGIN_HEADER
|
||||||
#define SET_BG(x)
|
#define SET_BG(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MARGIN 5
|
||||||
|
|
||||||
|
#define HIGH_SCORE PLUGIN_GAMES_DIR "/spacerocks.score"
|
||||||
|
#define NUM_SCORES 5
|
||||||
|
|
||||||
|
struct highscore highest[NUM_SCORES];
|
||||||
|
|
||||||
/* The array of points that make up an asteroid */
|
/* The array of points that make up an asteroid */
|
||||||
static const short asteroid_one[NUM_ASTEROID_VERTICES*2] =
|
static const short asteroid_one[NUM_ASTEROID_VERTICES*2] =
|
||||||
{
|
{
|
||||||
|
|
@ -525,7 +460,6 @@ enum asteroid_type
|
||||||
enum game_state
|
enum game_state
|
||||||
{
|
{
|
||||||
GAME_OVER,
|
GAME_OVER,
|
||||||
ATTRACT_MODE,
|
|
||||||
SHOW_LEVEL,
|
SHOW_LEVEL,
|
||||||
PLAY_MODE,
|
PLAY_MODE,
|
||||||
PAUSE_MODE
|
PAUSE_MODE
|
||||||
|
|
@ -597,15 +531,11 @@ static int next_thrust_count;
|
||||||
static int num_lives;
|
static int num_lives;
|
||||||
static int extra_life;
|
static int extra_life;
|
||||||
static int show_level_timeout;
|
static int show_level_timeout;
|
||||||
static int attract_flip_timeout;
|
|
||||||
static int show_game_over;
|
|
||||||
static int current_level;
|
static int current_level;
|
||||||
static int current_score;
|
static int current_score;
|
||||||
static int high_score;
|
|
||||||
static int space_check_size = 30*SCALE;
|
static int space_check_size = 30*SCALE;
|
||||||
|
|
||||||
static bool enemy_on_screen;
|
static bool enemy_on_screen;
|
||||||
static char phscore[30];
|
|
||||||
static struct Ship ship;
|
static struct Ship ship;
|
||||||
static struct Point stars[NUM_STARS];
|
static struct Point stars[NUM_STARS];
|
||||||
static struct Asteroid asteroids_array[MAX_NUM_ASTEROIDS];
|
static struct Asteroid asteroids_array[MAX_NUM_ASTEROIDS];
|
||||||
|
|
@ -649,39 +579,100 @@ void drawstars(void);
|
||||||
bool is_ship_within_asteroid(struct Asteroid* asteroid);
|
bool is_ship_within_asteroid(struct Asteroid* asteroid);
|
||||||
|
|
||||||
|
|
||||||
|
void init(void)
|
||||||
/*Hi-Score reading and writing to file - this needs moving to the hi-score plugin lib as
|
|
||||||
a 3rd function */
|
|
||||||
void iohiscore(void)
|
|
||||||
{
|
{
|
||||||
int fd;
|
enemy.appear_probability = ENEMY_APPEAR_PROBABILITY_START;
|
||||||
int compare;
|
enemy.appear_timing = ENEMY_APPEAR_TIMING_START;
|
||||||
|
enemy.size_probability = ENEMY_BIG_PROBABILITY_START;
|
||||||
/* clear the buffer we're about to load the highscore data into */
|
current_level = START_LEVEL;
|
||||||
rb->memset(phscore, 0, sizeof(phscore));
|
num_lives = START_LIVES;
|
||||||
|
current_score = 0;
|
||||||
fd = rb->open(HISCORE_FILE,O_RDWR | O_CREAT);
|
initialise_ship();
|
||||||
if(fd < 0)
|
initialise_game(current_level);
|
||||||
{
|
show_level_timeout = SHOW_LEVEL_TIME;
|
||||||
rb->splash(HZ, "Highscore file read error");
|
game_state = PLAY_MODE;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* highscore used to %d, is now %d\n
|
static bool spacerocks_help(void)
|
||||||
Deal with no file or bad file */
|
|
||||||
rb->read(fd,phscore, sizeof(phscore));
|
|
||||||
|
|
||||||
compare = rb->atoi(phscore);
|
|
||||||
|
|
||||||
if(high_score > compare)
|
|
||||||
{
|
{
|
||||||
rb->lseek(fd,0,SEEK_SET);
|
rb->lcd_setfont(FONT_UI);
|
||||||
rb->fdprintf(fd, "%d\n", high_score);
|
#define WORDS (sizeof help_text / sizeof (char*))
|
||||||
}
|
static char *help_text[] = {
|
||||||
else
|
"Spacerocks", "", "Aim", "", "The", "goal", "of", "the", "game", "is",
|
||||||
high_score = compare;
|
"to", "blow", "up", "the", "asteroids", "and", "avoid", "being", "hit", "by",
|
||||||
|
"them.", "Also", "you'd", "better", "watch", "out", "for", "the", "UFOs!"
|
||||||
|
};
|
||||||
|
static struct style_text formation[]={
|
||||||
|
{ 0, TEXT_CENTER|TEXT_UNDERLINE },
|
||||||
|
{ 2, C_RED }
|
||||||
|
};
|
||||||
|
int button;
|
||||||
|
|
||||||
rb->close(fd);
|
if (display_text(WORDS, help_text, formation, NULL)==PLUGIN_USB_CONNECTED)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
do {
|
||||||
|
button = rb->button_get(true);
|
||||||
|
if (button == SYS_USB_CONNECTED) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} while( ( button == BUTTON_NONE )
|
||||||
|
|| ( button & (BUTTON_REL|BUTTON_REPEAT) ) );
|
||||||
|
rb->lcd_setfont(FONT_SYSFIXED);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool _ingame;
|
||||||
|
static int spacerocks_menu_cb(int action, const struct menu_item_ex *this_item)
|
||||||
|
{
|
||||||
|
if(action == ACTION_REQUEST_MENUITEM
|
||||||
|
&& !_ingame && ((intptr_t)this_item)==0)
|
||||||
|
return ACTION_EXIT_MENUITEM;
|
||||||
|
return action;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int spacerocks_menu(bool ingame)
|
||||||
|
{
|
||||||
|
rb->button_clear_queue();
|
||||||
|
int choice = 0;
|
||||||
|
|
||||||
|
_ingame = ingame;
|
||||||
|
|
||||||
|
MENUITEM_STRINGLIST (main_menu, "Spacerocks Menu", spacerocks_menu_cb,
|
||||||
|
"Resume Game",
|
||||||
|
"Start New Game",
|
||||||
|
"Help",
|
||||||
|
"High Score",
|
||||||
|
"Playback Control",
|
||||||
|
"Quit");
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
choice = rb->do_menu(&main_menu, &choice, NULL, false);
|
||||||
|
switch (choice) {
|
||||||
|
case 0:
|
||||||
|
return 0;
|
||||||
|
case 1:
|
||||||
|
init();
|
||||||
|
return 0;
|
||||||
|
case 2:
|
||||||
|
if(spacerocks_help())
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
highscore_show(NUM_SCORES, highest, NUM_SCORES);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
playback_control(NULL);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
return 1;
|
||||||
|
case MENU_ATTACHED_USB:
|
||||||
|
return 1;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool point_in_poly(struct Point* _point, int num_vertices, int x, int y)
|
bool point_in_poly(struct Point* _point, int num_vertices, int x, int y)
|
||||||
|
|
@ -1729,7 +1720,6 @@ void draw_and_move_ship(void)
|
||||||
num_lives--;
|
num_lives--;
|
||||||
if(!num_lives)
|
if(!num_lives)
|
||||||
{
|
{
|
||||||
show_game_over = SHOW_GAME_OVER_TIME;
|
|
||||||
game_state = GAME_OVER;
|
game_state = GAME_OVER;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1904,72 +1894,39 @@ void initialise_game(int start_num)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void start_attract_mode(void)
|
static int spacerocks_game_loop(void)
|
||||||
{
|
|
||||||
enemy.appear_probability = ENEMY_APPEAR_PROBABILITY_START;
|
|
||||||
enemy.appear_timing = ENEMY_APPEAR_TIMING_START;
|
|
||||||
current_level = 5;
|
|
||||||
num_lives = START_LIVES;
|
|
||||||
current_score = 0;
|
|
||||||
attract_flip_timeout = ATTRACT_FLIP_TIME;
|
|
||||||
game_state = ATTRACT_MODE;
|
|
||||||
if(asteroid_count < 3)
|
|
||||||
initialise_game(current_level);
|
|
||||||
}
|
|
||||||
|
|
||||||
enum plugin_status start_game(void)
|
|
||||||
{
|
{
|
||||||
char s[20];
|
char s[20];
|
||||||
char level[10];
|
char level[10];
|
||||||
int button;
|
int button;
|
||||||
int end;
|
int end;
|
||||||
int CYCLETIME = 30;
|
int position;
|
||||||
|
|
||||||
/*create stars once, and once only:*/
|
/*create stars once, and once only:*/
|
||||||
create_stars();
|
create_stars();
|
||||||
|
|
||||||
|
if (spacerocks_menu(false)!=0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
SET_BG(LCD_BLACK);
|
SET_BG(LCD_BLACK);
|
||||||
|
|
||||||
while(true)
|
|
||||||
{
|
|
||||||
/*game starts with at level 1
|
|
||||||
with 1 asteroid.*/
|
|
||||||
start_attract_mode();
|
|
||||||
|
|
||||||
/*Main loop*/
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
end = *rb->current_tick + (CYCLETIME * HZ) / 1000;
|
end = *rb->current_tick + (CYCLETIME * HZ) / 1000;
|
||||||
rb->lcd_clear_display();
|
rb->lcd_clear_display();
|
||||||
SET_FG(COL_TEXT);
|
SET_FG(COL_TEXT);
|
||||||
switch(game_state)
|
switch(game_state) {
|
||||||
{
|
|
||||||
case(ATTRACT_MODE):
|
|
||||||
if(attract_flip_timeout < ATTRACT_FLIP_TIME/2)
|
|
||||||
{
|
|
||||||
rb->lcd_putsxy(CENTER_LCD_X - 39,
|
|
||||||
CENTER_LCD_Y + CENTER_LCD_Y/2 - 4,
|
|
||||||
"Fire to Start");
|
|
||||||
if(!attract_flip_timeout)
|
|
||||||
attract_flip_timeout = ATTRACT_FLIP_TIME;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rb->snprintf(s, sizeof(s), "Hi Score %d ", high_score);
|
|
||||||
rb->lcd_putsxy(CENTER_LCD_X - 30,
|
|
||||||
CENTER_LCD_Y + CENTER_LCD_Y/2 - 4, s);
|
|
||||||
}
|
|
||||||
attract_flip_timeout--;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case(GAME_OVER):
|
case(GAME_OVER):
|
||||||
rb->lcd_putsxy(CENTER_LCD_X - 25,
|
rb->splash (HZ * 2, "Game Over");
|
||||||
CENTER_LCD_Y + CENTER_LCD_Y/2 - 4, "Game Over");
|
rb->lcd_clear_display();
|
||||||
rb->snprintf(s, sizeof(s), "score %d ", current_score);
|
position=highscore_update(current_score, current_level, "",
|
||||||
rb->lcd_putsxy(1,LCD_HEIGHT-8, s);
|
highest,NUM_SCORES);
|
||||||
show_game_over--;
|
if (position == 0)
|
||||||
if(!show_game_over)
|
rb->splash(HZ*2, "New High Score");
|
||||||
start_attract_mode();
|
if (position != -1)
|
||||||
|
highscore_show(position, highest, NUM_SCORES);
|
||||||
|
if (spacerocks_menu(false)!=0)
|
||||||
|
return 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case(PAUSE_MODE):
|
case(PAUSE_MODE):
|
||||||
|
|
@ -2000,8 +1957,7 @@ enum plugin_status start_game(void)
|
||||||
CENTER_LCD_Y + CENTER_LCD_Y/2 - 4, level);
|
CENTER_LCD_Y + CENTER_LCD_Y/2 - 4, level);
|
||||||
draw_and_move_ship();
|
draw_and_move_ship();
|
||||||
draw_lives();
|
draw_lives();
|
||||||
if(!show_level_timeout)
|
if(!show_level_timeout) {
|
||||||
{
|
|
||||||
initialise_game(current_level);
|
initialise_game(current_level);
|
||||||
game_state = PLAY_MODE;
|
game_state = PLAY_MODE;
|
||||||
draw_lives();
|
draw_lives();
|
||||||
|
|
@ -2014,55 +1970,43 @@ enum plugin_status start_game(void)
|
||||||
draw_and_move_enemy();
|
draw_and_move_enemy();
|
||||||
|
|
||||||
rb->lcd_update();
|
rb->lcd_update();
|
||||||
button = rb->button_get(false);
|
|
||||||
|
|
||||||
#ifdef HAS_BUTTON_HOLD
|
#ifdef HAS_BUTTON_HOLD
|
||||||
if (rb->button_hold() && game_state == PLAY_MODE)
|
if (rb->button_hold())
|
||||||
game_state = PAUSE_MODE;
|
game_state = PAUSE_MODE;
|
||||||
#endif
|
|
||||||
|
|
||||||
switch(button)
|
#endif
|
||||||
{
|
button = rb->button_get(false);
|
||||||
|
switch(button) {
|
||||||
|
case(AST_QUIT):
|
||||||
|
if (spacerocks_menu(true)!=0)
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
#ifdef AST_PAUSE
|
||||||
case(AST_PAUSE):
|
case(AST_PAUSE):
|
||||||
if(game_state == PLAY_MODE)
|
if (game_state == PAUSE_MODE) {
|
||||||
game_state = PAUSE_MODE;
|
|
||||||
else if(game_state == PAUSE_MODE)
|
|
||||||
game_state = PLAY_MODE;
|
game_state = PLAY_MODE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef AST_RC_QUIT
|
|
||||||
case AST_RC_QUIT:
|
|
||||||
#endif
|
|
||||||
case(AST_QUIT):
|
|
||||||
if(game_state == ATTRACT_MODE)
|
|
||||||
return PLUGIN_OK;
|
|
||||||
else if(game_state == GAME_OVER)
|
|
||||||
{
|
|
||||||
start_attract_mode();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
show_game_over = SHOW_GAME_OVER_TIME;
|
|
||||||
game_state = GAME_OVER;
|
|
||||||
}
|
}
|
||||||
|
else if (game_state != PLAY_MODE)
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case (AST_LEFT_REP):
|
|
||||||
case (AST_LEFT):
|
case (AST_LEFT):
|
||||||
|
case (AST_LEFT | BUTTON_REPEAT):
|
||||||
if(game_state == PLAY_MODE || game_state == SHOW_LEVEL)
|
if(game_state == PLAY_MODE || game_state == SHOW_LEVEL)
|
||||||
rotate_ship(SHIP_ROT_ACW_COS, SHIP_ROT_ACW_SIN);
|
rotate_ship(SHIP_ROT_ACW_COS, SHIP_ROT_ACW_SIN);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (AST_RIGHT_REP):
|
|
||||||
case (AST_RIGHT):
|
case (AST_RIGHT):
|
||||||
|
case (AST_RIGHT | BUTTON_REPEAT):
|
||||||
if(game_state == PLAY_MODE || game_state == SHOW_LEVEL)
|
if(game_state == PLAY_MODE || game_state == SHOW_LEVEL)
|
||||||
rotate_ship(SHIP_ROT_CW_COS, SHIP_ROT_CW_SIN);
|
rotate_ship(SHIP_ROT_CW_COS, SHIP_ROT_CW_SIN);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (AST_THRUST_REP):
|
|
||||||
case (AST_THRUST):
|
case (AST_THRUST):
|
||||||
if((game_state == PLAY_MODE || game_state == SHOW_LEVEL) && !next_thrust_count)
|
case (AST_THRUST | BUTTON_REPEAT):
|
||||||
{
|
if((game_state == PLAY_MODE || game_state == SHOW_LEVEL) &&
|
||||||
|
!next_thrust_count) {
|
||||||
thrust_ship();
|
thrust_ship();
|
||||||
next_thrust_count = 5;
|
next_thrust_count = 5;
|
||||||
}
|
}
|
||||||
|
|
@ -2074,26 +2018,15 @@ enum plugin_status start_game(void)
|
||||||
/*maybe shield if it gets too hard */
|
/*maybe shield if it gets too hard */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (AST_FIRE_REP):
|
|
||||||
case (AST_FIRE):
|
case (AST_FIRE):
|
||||||
if(game_state == ATTRACT_MODE)
|
case (AST_FIRE | BUTTON_REPEAT):
|
||||||
{
|
if(game_state == PLAY_MODE) {
|
||||||
current_level = START_LEVEL;
|
if(!next_missile_count) {
|
||||||
initialise_ship();
|
|
||||||
initialise_game(current_level);
|
|
||||||
show_level_timeout = SHOW_LEVEL_TIME;
|
|
||||||
game_state = PLAY_MODE;
|
|
||||||
}
|
|
||||||
else if(game_state == PLAY_MODE)
|
|
||||||
{
|
|
||||||
if(!next_missile_count)
|
|
||||||
{
|
|
||||||
fire_missile();
|
fire_missile();
|
||||||
next_missile_count = 10;
|
next_missile_count = 10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(game_state == PAUSE_MODE)
|
else if(game_state == PAUSE_MODE) {
|
||||||
{
|
|
||||||
game_state = PLAY_MODE;
|
game_state = PLAY_MODE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2104,14 +2037,6 @@ enum plugin_status start_game(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!num_lives)
|
|
||||||
{
|
|
||||||
if(high_score < current_score)
|
|
||||||
high_score = current_score;
|
|
||||||
if(!show_game_over)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(next_missile_count)
|
if(next_missile_count)
|
||||||
next_missile_count--;
|
next_missile_count--;
|
||||||
|
|
||||||
|
|
@ -2123,16 +2048,11 @@ enum plugin_status start_game(void)
|
||||||
else
|
else
|
||||||
rb->yield();
|
rb->yield();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum plugin_status plugin_start(const void* parameter)
|
enum plugin_status plugin_start(const void* parameter)
|
||||||
{
|
{
|
||||||
enum plugin_status retval;
|
(void)parameter;
|
||||||
(void)(parameter);
|
|
||||||
|
|
||||||
game_state = ATTRACT_MODE;
|
|
||||||
|
|
||||||
#if LCD_DEPTH > 1
|
#if LCD_DEPTH > 1
|
||||||
rb->lcd_set_backdrop(NULL);
|
rb->lcd_set_backdrop(NULL);
|
||||||
|
|
@ -2141,11 +2061,12 @@ enum plugin_status plugin_start(const void* parameter)
|
||||||
rb->lcd_setfont(FONT_SYSFIXED);
|
rb->lcd_setfont(FONT_SYSFIXED);
|
||||||
/* Turn off backlight timeout */
|
/* Turn off backlight timeout */
|
||||||
backlight_force_on(); /* backlight control in lib/helper.c */
|
backlight_force_on(); /* backlight control in lib/helper.c */
|
||||||
iohiscore();
|
highscore_load(HIGH_SCORE,highest,NUM_SCORES);
|
||||||
retval = start_game();
|
spacerocks_game_loop();
|
||||||
iohiscore();
|
|
||||||
rb->lcd_setfont(FONT_UI);
|
rb->lcd_setfont(FONT_UI);
|
||||||
|
highscore_save(HIGH_SCORE,highest,NUM_SCORES);
|
||||||
/* Turn on backlight timeout (revert to settings) */
|
/* Turn on backlight timeout (revert to settings) */
|
||||||
backlight_use_settings(); /* backlight control in lib/helper.c */
|
backlight_use_settings(); /* backlight control in lib/helper.c */
|
||||||
return retval;
|
|
||||||
|
return PLUGIN_OK;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue