summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/invadrox.c55
1 files changed, 33 insertions, 22 deletions
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 1bd80f0c36..9aa8efeecb 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -157,6 +157,9 @@ PLUGIN_HEADER
157#elif CONFIG_KEYPAD == COWOND2_PAD 157#elif CONFIG_KEYPAD == COWOND2_PAD
158 158
159#define QUIT BUTTON_POWER 159#define QUIT BUTTON_POWER
160#define LEFT BUTTON_MINUS
161#define RIGHT BUTTON_PLUS
162#define FIRE BUTTON_MENU
160 163
161#elif CONFIG_KEYPAD == IAUDIO67_PAD 164#elif CONFIG_KEYPAD == IAUDIO67_PAD
162 165
@@ -197,18 +200,32 @@ CONFIG_KEYPAD == MROBE500_PAD
197#endif 200#endif
198 201
199#ifdef HAVE_TOUCHSCREEN 202#ifdef HAVE_TOUCHSCREEN
200#ifndef QUIT 203
201#define QUIT BUTTON_TOPLEFT 204#define TOUCHSCREEN_QUIT BUTTON_TOPLEFT
202#endif 205#define TOUCHSCREEN_LEFT (BUTTON_MIDLEFT | BUTTON_BOTTOMLEFT)
203#ifndef LEFT 206#define TOUCHSCREEN_RIGHT (BUTTON_MIDRIGHT | BUTTON_BOTTOMRIGHT)
204#define LEFT BUTTON_MIDLEFT 207#define TOUCHSCREEN_FIRE (BUTTON_CENTER | BUTTON_BOTTOMMIDDLE)
205#endif 208
206#ifndef RIGHT 209#ifdef RC_QUIT
207#define RIGHT BUTTON_MIDRIGHT 210#define ACTION_QUIT (QUIT | TOUCHSCREEN_QUIT | RC_QUIT)
211#else
212#define ACTION_QUIT (QUIT | TOUCHSCREEN_QUIT)
208#endif 213#endif
209#ifndef FIRE 214#define ACTION_LEFT (LEFT | TOUCHSCREEN_LEFT)
210#define FIRE BUTTON_CENTER 215#define ACTION_RIGHT (RIGHT | TOUCHSCREEN_RIGHT)
216#define ACTION_FIRE (FIRE | TOUCHSCREEN_FIRE)
217
218#else
219
220#ifdef RC_QUIT
221#define ACTION_QUIT (QUIT | RC_QUIT)
222#else
223#define ACTION_QUIT QUIT
211#endif 224#endif
225#define ACTION_LEFT LEFT
226#define ACTION_RIGHT RIGHT
227#define ACTION_FIRE FIRE
228
212#endif 229#endif
213 230
214#ifndef UNUSED 231#ifndef UNUSED
@@ -1650,17 +1667,17 @@ inline bool handle_buttons(void)
1650 pressed = newbuttonstate & ~oldbuttonstate; 1667 pressed = newbuttonstate & ~oldbuttonstate;
1651 oldbuttonstate = newbuttonstate; 1668 oldbuttonstate = newbuttonstate;
1652 if (pressed) { 1669 if (pressed) {
1653 if (pressed & LEFT) { 1670 if (pressed & ACTION_LEFT) {
1654 if (ship_acc > -1) { 1671 if (ship_acc > -1) {
1655 ship_acc--; 1672 ship_acc--;
1656 } 1673 }
1657 } 1674 }
1658 if (pressed & RIGHT) { 1675 if (pressed & ACTION_RIGHT) {
1659 if (ship_acc < 1) { 1676 if (ship_acc < 1) {
1660 ship_acc++; 1677 ship_acc++;
1661 } 1678 }
1662 } 1679 }
1663 if (pressed & FIRE) { 1680 if (pressed & ACTION_FIRE) {
1664 if (fire == S_IDLE) { 1681 if (fire == S_IDLE) {
1665 /* Fire shot */ 1682 /* Fire shot */
1666 fire_x = ship_x + SHIP_WIDTH / 2; 1683 fire_x = ship_x + SHIP_WIDTH / 2;
@@ -1669,24 +1686,18 @@ inline bool handle_buttons(void)
1669 /* TODO: play fire sound */ 1686 /* TODO: play fire sound */
1670 } 1687 }
1671 } 1688 }
1672#ifdef RC_QUIT 1689 if (pressed & ACTION_QUIT) {
1673 if (pressed & RC_QUIT) {
1674 rb->splash(HZ * 1, "Quit");
1675 return true;
1676 }
1677#endif
1678 if (pressed & QUIT) {
1679 rb->splash(HZ * 1, "Quit"); 1690 rb->splash(HZ * 1, "Quit");
1680 return true; 1691 return true;
1681 } 1692 }
1682 } 1693 }
1683 if (released) { 1694 if (released) {
1684 if ((released & LEFT)) { 1695 if ((released & ACTION_LEFT)) {
1685 if (ship_acc < 1) { 1696 if (ship_acc < 1) {
1686 ship_acc++; 1697 ship_acc++;
1687 } 1698 }
1688 } 1699 }
1689 if ((released & RIGHT)) { 1700 if ((released & ACTION_RIGHT)) {
1690 if (ship_acc > -1) { 1701 if (ship_acc > -1) {
1691 ship_acc--; 1702 ship_acc--;
1692 } 1703 }