diff options
author | Tomer Shalev <shalev.tomer@gmail.com> | 2009-12-12 10:07:37 +0000 |
---|---|---|
committer | Tomer Shalev <shalev.tomer@gmail.com> | 2009-12-12 10:07:37 +0000 |
commit | be7170c89c373d40d4fd5c8f0c2e7961d73dbb4e (patch) | |
tree | 7d8374c6e38806ff2ac8ed33f3118c5a86a623ab /apps/plugins | |
parent | 703468f0a64a146b7265631c03bb1473a4151740 (diff) | |
download | rockbox-be7170c89c373d40d4fd5c8f0c2e7961d73dbb4e.tar.gz rockbox-be7170c89c373d40d4fd5c8f0c2e7961d73dbb4e.zip |
Invadrox: Add support for both touchscreen and buttons control of the game.
- Add buttons support for Cowon D2
- Introduce some mighty #ifdef hell :-(
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23941 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/invadrox.c | 55 |
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 | } |