summaryrefslogtreecommitdiff
path: root/apps/plugins/invadrox.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/invadrox.c')
-rw-r--r--apps/plugins/invadrox.c63
1 files changed, 28 insertions, 35 deletions
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 5e3cb12163..57d6fabe8d 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -268,14 +268,7 @@ CONFIG_KEYPAD == MROBE500_PAD
268#define QUIT BUTTON_POWER 268#define QUIT BUTTON_POWER
269#define FIRE BUTTON_MENU 269#define FIRE BUTTON_MENU
270 270
271#elif CONFIG_KEYPAD == XDUOO_X3II_PAD 271#elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
272
273#define QUIT BUTTON_POWER
274#define LEFT BUTTON_HOME
275#define RIGHT BUTTON_VOL_DOWN
276#define FIRE BUTTON_VOL_UP
277
278#elif CONFIG_KEYPAD == XDUOO_X20_PAD
279 272
280#define QUIT BUTTON_POWER 273#define QUIT BUTTON_POWER
281#define LEFT BUTTON_HOME 274#define LEFT BUTTON_HOME
@@ -289,19 +282,19 @@ CONFIG_KEYPAD == MROBE500_PAD
289#define RIGHT BUTTON_VOL_DOWN 282#define RIGHT BUTTON_VOL_DOWN
290#define FIRE BUTTON_VOL_UP 283#define FIRE BUTTON_VOL_UP
291 284
292#elif CONFIG_KEYPAD == IHIFI_770_PAD 285#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
293 286
294#define QUIT BUTTON_POWER 287#define QUIT BUTTON_POWER
295#define LEFT BUTTON_HOME 288#define LEFT BUTTON_HOME
296#define RIGHT BUTTON_VOL_DOWN 289#define RIGHT BUTTON_VOL_DOWN
297#define FIRE BUTTON_VOL_UP 290#define FIRE BUTTON_VOL_UP
298 291
299#elif CONFIG_KEYPAD == IHIFI_800_PAD 292#elif CONFIG_KEYPAD == EROSQ_PAD
300 293
301#define QUIT BUTTON_POWER 294#define QUIT BUTTON_POWER
302#define LEFT BUTTON_HOME 295#define LEFT BUTTON_SCROLL_BACK
303#define RIGHT BUTTON_VOL_DOWN 296#define RIGHT BUTTON_SCROLL_FWD
304#define FIRE BUTTON_VOL_UP 297#define FIRE BUTTON_PLAY
305 298
306#else 299#else
307 #error INVADROX: Unsupported keypad 300 #error INVADROX: Unsupported keypad
@@ -829,8 +822,8 @@ static void draw_number(int x, int y, int num, int digits)
829 d = num % 10; 822 d = num % 10;
830 num = num / 10; 823 num = num / 10;
831 rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0, 824 rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0,
832 STRIDE( SCREEN_MAIN, 825 STRIDE( SCREEN_MAIN,
833 BMPWIDTH_invadrox_numbers, 826 BMPWIDTH_invadrox_numbers,
834 BMPHEIGHT_invadrox_numbers), 827 BMPHEIGHT_invadrox_numbers),
835 x + i * (NUMBERS_WIDTH + NUM_SPACING), y, 828 x + i * (NUMBERS_WIDTH + NUM_SPACING), y,
836 NUMBERS_WIDTH, FONT_HEIGHT); 829 NUMBERS_WIDTH, FONT_HEIGHT);
@@ -861,17 +854,17 @@ static void draw_lives(void)
861 int i; 854 int i;
862 /* Lives num */ 855 /* Lives num */
863 rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0, 856 rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0,
864 STRIDE( SCREEN_MAIN, 857 STRIDE( SCREEN_MAIN,
865 BMPWIDTH_invadrox_numbers, 858 BMPWIDTH_invadrox_numbers,
866 BMPHEIGHT_invadrox_numbers), 859 BMPHEIGHT_invadrox_numbers),
867 PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2, 860 PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2,
868 NUMBERS_WIDTH, FONT_HEIGHT); 861 NUMBERS_WIDTH, FONT_HEIGHT);
869 862
870 /* Ships */ 863 /* Ships */
871 for (i = 0; i < (lives - 1); i++) { 864 for (i = 0; i < (lives - 1); i++) {
872 rb->lcd_bitmap_part(invadrox_ships, 0, 0, 865 rb->lcd_bitmap_part(invadrox_ships, 0, 0,
873 STRIDE( SCREEN_MAIN, 866 STRIDE( SCREEN_MAIN,
874 BMPWIDTH_invadrox_ships, 867 BMPWIDTH_invadrox_ships,
875 BMPHEIGHT_invadrox_ships), 868 BMPHEIGHT_invadrox_ships),
876 PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING), 869 PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING),
877 PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT); 870 PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT);
@@ -893,11 +886,11 @@ static inline void draw_aliens(void)
893 int i; 886 int i;
894 887
895 for (i = 0; i < 5 * ALIENS; i++) { 888 for (i = 0; i < 5 * ALIENS; i++) {
896 rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0, 889 rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0,
897 aliens[i].type * ALIEN_HEIGHT, 890 aliens[i].type * ALIEN_HEIGHT,
898 STRIDE( SCREEN_MAIN, 891 STRIDE( SCREEN_MAIN,
899 BMPWIDTH_invadrox_aliens, 892 BMPWIDTH_invadrox_aliens,
900 BMPHEIGHT_invadrox_aliens), 893 BMPHEIGHT_invadrox_aliens),
901 PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED, 894 PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED,
902 ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT, 895 ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT,
903 ALIEN_WIDTH, ALIEN_HEIGHT); 896 ALIEN_WIDTH, ALIEN_HEIGHT);
@@ -1035,11 +1028,11 @@ static bool move_aliens(void)
1035 x = PLAYFIELD_X + LIVES_X + aliens[curr_alien].x * ALIEN_SPEED; 1028 x = PLAYFIELD_X + LIVES_X + aliens[curr_alien].x * ALIEN_SPEED;
1036 y = ALIEN_START_Y + aliens[curr_alien].y * ALIEN_HEIGHT; 1029 y = ALIEN_START_Y + aliens[curr_alien].y * ALIEN_HEIGHT;
1037 rb->lcd_bitmap_part(invadrox_aliens, 1030 rb->lcd_bitmap_part(invadrox_aliens,
1038 aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0, 1031 aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0,
1039 aliens[curr_alien].type * ALIEN_HEIGHT, 1032 aliens[curr_alien].type * ALIEN_HEIGHT,
1040 STRIDE( SCREEN_MAIN, 1033 STRIDE( SCREEN_MAIN,
1041 BMPWIDTH_invadrox_aliens, 1034 BMPWIDTH_invadrox_aliens,
1042 BMPHEIGHT_invadrox_aliens), 1035 BMPHEIGHT_invadrox_aliens),
1043 x, y, ALIEN_WIDTH, ALIEN_HEIGHT); 1036 x, y, ALIEN_WIDTH, ALIEN_HEIGHT);
1044 1037
1045 if (!next_alien()) { 1038 if (!next_alien()) {
@@ -1068,9 +1061,9 @@ static inline void draw_ship(void)
1068 1061
1069 /* Draw ship */ 1062 /* Draw ship */
1070 rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT, 1063 rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT,
1071 STRIDE( SCREEN_MAIN, 1064 STRIDE( SCREEN_MAIN,
1072 BMPWIDTH_invadrox_ships, 1065 BMPWIDTH_invadrox_ships,
1073 BMPHEIGHT_invadrox_ships), 1066 BMPHEIGHT_invadrox_ships),
1074 ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT); 1067 ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT);
1075 if (ship_hit) { 1068 if (ship_hit) {
1076 /* Alternate between frame 1 and 2 during hit */ 1069 /* Alternate between frame 1 and 2 during hit */
@@ -1095,7 +1088,7 @@ static inline void fire_alpha(int xc, int yc, unsigned color)
1095 1088
1096 rb->lcd_set_foreground(color); 1089 rb->lcd_set_foreground(color);
1097 rb->lcd_set_drawmode(DRMODE_FG); 1090 rb->lcd_set_drawmode(DRMODE_FG);
1098 1091
1099 rb->lcd_mono_bitmap(invadrox_fire, xc - (FIRE_WIDTH/2), yc, FIRE_WIDTH, FIRE_HEIGHT); 1092 rb->lcd_mono_bitmap(invadrox_fire, xc - (FIRE_WIDTH/2), yc, FIRE_WIDTH, FIRE_HEIGHT);
1100 1093
1101 rb->lcd_set_foreground(LCD_BLACK); 1094 rb->lcd_set_foreground(LCD_BLACK);
@@ -1311,9 +1304,9 @@ static inline void draw_bomb(int i)
1311{ 1304{
1312 rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH, 1305 rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH,
1313 bombs[i].frame * BOMB_HEIGHT, 1306 bombs[i].frame * BOMB_HEIGHT,
1314 STRIDE( SCREEN_MAIN, 1307 STRIDE( SCREEN_MAIN,
1315 BMPWIDTH_invadrox_bombs, 1308 BMPWIDTH_invadrox_bombs,
1316 BMPHEIGHT_invadrox_bombs), 1309 BMPHEIGHT_invadrox_bombs),
1317 bombs[i].x, bombs[i].y, 1310 bombs[i].x, bombs[i].y,
1318 BOMB_WIDTH, BOMB_HEIGHT); 1311 BOMB_WIDTH, BOMB_HEIGHT);
1319 /* Advance frame */ 1312 /* Advance frame */
@@ -1415,9 +1408,9 @@ static void move_bombs(void)
1415 bombs[i].state = S_EXPLODE * 4; 1408 bombs[i].state = S_EXPLODE * 4;
1416 bombs[i].target = TARGET_SHIP; 1409 bombs[i].target = TARGET_SHIP;
1417 rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT, 1410 rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT,
1418 STRIDE( SCREEN_MAIN, 1411 STRIDE( SCREEN_MAIN,
1419 BMPWIDTH_invadrox_ships, 1412 BMPWIDTH_invadrox_ships,
1420 BMPHEIGHT_invadrox_ships), 1413 BMPHEIGHT_invadrox_ships),
1421 ship_x, SHIP_Y, 1414 ship_x, SHIP_Y,
1422 SHIP_WIDTH, SHIP_HEIGHT); 1415 SHIP_WIDTH, SHIP_HEIGHT);
1423 break; 1416 break;