diff options
author | Karl Kurbjun <kkurbjun@gmail.com> | 2009-08-03 01:07:58 +0000 |
---|---|---|
committer | Karl Kurbjun <kkurbjun@gmail.com> | 2009-08-03 01:07:58 +0000 |
commit | 50d3928901069d908238930b880b878f3d760dd4 (patch) | |
tree | 81babdb7ab853d60502910e04c16ae29f14a9e73 | |
parent | bbc9aebae3ec6e900abdf257a0b377a0f5b45911 (diff) | |
download | rockbox-50d3928901069d908238930b880b878f3d760dd4.tar.gz rockbox-50d3928901069d908238930b880b878f3d760dd4.zip |
Blackjack: Use standard menu and add playback menu, use pluginlib high scores.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22126 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/plugins/blackjack.c | 1009 | ||||
-rw-r--r-- | apps/plugins/brickmania.c | 4 | ||||
-rw-r--r-- | apps/plugins/bubbles.c | 4 | ||||
-rw-r--r-- | apps/plugins/clix.c | 4 | ||||
-rw-r--r-- | apps/plugins/jewels.c | 4 | ||||
-rw-r--r-- | apps/plugins/lib/highscore.c | 17 | ||||
-rw-r--r-- | apps/plugins/lib/highscore.h | 4 | ||||
-rw-r--r-- | apps/plugins/spacerocks.c | 4 |
8 files changed, 462 insertions, 588 deletions
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index 391cd97394..bb9d202fb7 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c | |||
@@ -17,19 +17,22 @@ | |||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | 17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
18 | * KIND, either express or implied. | 18 | * KIND, either express or implied. |
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | 21 | ||
22 | #include "plugin.h" | 22 | #include "plugin.h" |
23 | #include "pluginbitmaps/card_deck.h" | 23 | #include "pluginbitmaps/card_deck.h" |
24 | #include "pluginbitmaps/card_back.h" | 24 | #include "pluginbitmaps/card_back.h" |
25 | #include "lib/display_text.h" | ||
26 | #include "lib/highscore.h" | ||
27 | #include "lib/playback_control.h" | ||
25 | 28 | ||
26 | PLUGIN_HEADER | 29 | PLUGIN_HEADER |
27 | 30 | ||
28 | /* save files */ | 31 | /* save files */ |
29 | #define SCORE_FILE PLUGIN_GAMES_DIR "/blackjack.score" | 32 | #define HIGH_SCORE PLUGIN_GAMES_DIR "/blackjack.score" |
30 | #define SAVE_FILE PLUGIN_GAMES_DIR "/blackjack.save" | 33 | #define SAVE_FILE PLUGIN_GAMES_DIR "/blackjack.save" |
31 | 34 | #define NUM_SCORES 5 | |
32 | #define NUM_SCORES LCD_HEIGHT/8-2 | 35 | struct highscore highest[NUM_SCORES]; |
33 | 36 | ||
34 | /* final game return status */ | 37 | /* final game return status */ |
35 | #define BJ_END 3 | 38 | #define BJ_END 3 |
@@ -38,308 +41,364 @@ PLUGIN_HEADER | |||
38 | #define BJ_LOSE 0 | 41 | #define BJ_LOSE 0 |
39 | 42 | ||
40 | #if CONFIG_KEYPAD == RECORDER_PAD | 43 | #if CONFIG_KEYPAD == RECORDER_PAD |
41 | #define BJACK_START BUTTON_ON | 44 | #define BJACK_SELECT_NAME "PLAY" |
42 | #define BJACK_QUIT BUTTON_OFF | 45 | #define BJACK_STAY_NAME "F1" |
43 | #define BJACK_MAX (BUTTON_ON|BUTTON_UP) | 46 | #define BJACK_RESUME_NAME "F3" |
44 | #define BJACK_MIN (BUTTON_ON|BUTTON_DOWN) | 47 | #define BJACK_QUIT_NAME "OFF" |
45 | #define BJACK_HIT BUTTON_F1 | 48 | #define BJACK_DOUBLE_NAME "F2" |
46 | #define BJACK_STAY BUTTON_F2 | 49 | #define BJACK_SELECT BUTTON_PLAY |
47 | #define BJACK_DOUBLEDOWN BUTTON_F3 | 50 | #define BJACK_QUIT BUTTON_OFF |
48 | #define BJACK_SCORES BUTTON_RIGHT | 51 | #define BJACK_MAX (BUTTON_ON|BUTTON_UP) |
49 | #define BJACK_RESUME BUTTON_PLAY | 52 | #define BJACK_MIN (BUTTON_ON|BUTTON_DOWN) |
50 | #define BJACK_UP BUTTON_UP | 53 | #define BJACK_STAY BUTTON_F1 |
51 | #define BJACK_DOWN BUTTON_DOWN | 54 | #define BJACK_DOUBLEDOWN BUTTON_F2 |
52 | #define BJACK_RIGHT BUTTON_RIGHT | 55 | #define BJACK_RESUME BUTTON_F3 |
53 | #define BJACK_LEFT BUTTON_LEFT | 56 | #define BJACK_UP BUTTON_UP |
57 | #define BJACK_DOWN BUTTON_DOWN | ||
58 | #define BJACK_RIGHT BUTTON_RIGHT | ||
59 | #define BJACK_LEFT BUTTON_LEFT | ||
54 | 60 | ||
55 | #elif CONFIG_KEYPAD == ONDIO_PAD | 61 | #elif CONFIG_KEYPAD == ONDIO_PAD |
56 | #define BJACK_START BUTTON_MENU | 62 | #define BJACK_SELECT_NAME "MENU" |
57 | #define BJACK_QUIT BUTTON_OFF | 63 | #define BJACK_STAY_NAME "RIGHT" |
58 | #define BJACK_MAX (BUTTON_MENU|BUTTON_UP) | 64 | #define BJACK_RESUME_NAME "DOWN" |
59 | #define BJACK_MIN (BUTTON_MENU|BUTTON_DOWN) | 65 | #define BJACK_QUIT_NAME "OFF" |
60 | #define BJACK_HIT BUTTON_LEFT | 66 | #define BJACK_DOUBLE_NAME "UP" |
61 | #define BJACK_STAY BUTTON_RIGHT | 67 | #define BJACK_SELECT BUTTON_MENU |
62 | #define BJACK_DOUBLEDOWN BUTTON_UP | 68 | #define BJACK_QUIT BUTTON_OFF |
63 | #define BJACK_SCORES BUTTON_UP | 69 | #define BJACK_MAX (BUTTON_MENU|BUTTON_UP) |
64 | #define BJACK_RESUME BUTTON_DOWN | 70 | #define BJACK_MIN (BUTTON_MENU|BUTTON_DOWN) |
65 | #define BJACK_UP BUTTON_UP | 71 | #define BJACK_STAY BUTTON_RIGHT |
66 | #define BJACK_DOWN BUTTON_DOWN | 72 | #define BJACK_DOUBLEDOWN BUTTON_UP |
67 | #define BJACK_RIGHT BUTTON_RIGHT | 73 | #define BJACK_RESUME BUTTON_DOWN |
68 | #define BJACK_LEFT BUTTON_LEFT | 74 | #define BJACK_UP BUTTON_UP |
75 | #define BJACK_DOWN BUTTON_DOWN | ||
76 | #define BJACK_RIGHT BUTTON_RIGHT | ||
77 | #define BJACK_LEFT BUTTON_LEFT | ||
69 | 78 | ||
70 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | 79 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD |
71 | #define BJACK_START BUTTON_PLAY | 80 | #define BJACK_SELECT_NAME "PLAY" |
72 | #define BJACK_QUIT BUTTON_POWER | 81 | #define BJACK_STAY_NAME ">>|" |
73 | #define BJACK_MAX (BUTTON_PLAY|BUTTON_SCROLL_UP) | 82 | #define BJACK_RESUME_NAME "RIGHT" |
74 | #define BJACK_MIN (BUTTON_PLAY|BUTTON_SCROLL_DOWN) | 83 | #define BJACK_QUIT_NAME "POWER" |
75 | #define BJACK_HIT BUTTON_PLAY | 84 | #define BJACK_DOUBLE_NAME "|<<" |
76 | #define BJACK_STAY BUTTON_FF | 85 | #define BJACK_SELECT BUTTON_PLAY |
77 | #define BJACK_DOUBLEDOWN BUTTON_REW | 86 | #define BJACK_QUIT BUTTON_POWER |
78 | #define BJACK_SCORES BUTTON_LEFT | 87 | #define BJACK_MAX (BUTTON_PLAY|BUTTON_SCROLL_UP) |
79 | #define BJACK_RESUME BUTTON_RIGHT | 88 | #define BJACK_MIN (BUTTON_PLAY|BUTTON_SCROLL_DOWN) |
80 | #define BJACK_UP BUTTON_SCROLL_UP | 89 | #define BJACK_STAY BUTTON_FF |
81 | #define BJACK_DOWN BUTTON_SCROLL_DOWN | 90 | #define BJACK_DOUBLEDOWN BUTTON_REW |
82 | #define BJACK_RIGHT BUTTON_RIGHT | 91 | #define BJACK_RESUME BUTTON_RIGHT |
83 | #define BJACK_LEFT BUTTON_LEFT | 92 | #define BJACK_UP BUTTON_SCROLL_UP |
93 | #define BJACK_DOWN BUTTON_SCROLL_DOWN | ||
94 | #define BJACK_RIGHT BUTTON_RIGHT | ||
95 | #define BJACK_LEFT BUTTON_LEFT | ||
84 | 96 | ||
85 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | 97 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
86 | (CONFIG_KEYPAD == IRIVER_H300_PAD) | 98 | (CONFIG_KEYPAD == IRIVER_H300_PAD) |
87 | #define BJACK_START BUTTON_ON | 99 | #define BJACK_SELECT_NAME "ON" |
88 | #define BJACK_QUIT BUTTON_OFF | 100 | #define BJACK_STAY_NAME "REC" |
89 | #define BJACK_MAX (BUTTON_ON|BUTTON_UP) | 101 | #define BJACK_RESUME_NAME "MODE" |
90 | #define BJACK_MIN (BUTTON_ON|BUTTON_DOWN) | 102 | #define BJACK_QUIT_NAME "OFF" |
91 | #define BJACK_HIT BUTTON_ON | 103 | #define BJACK_DOUBLE_NAME "SELECT" |
92 | #define BJACK_STAY BUTTON_REC | 104 | #define BJACK_SELECT BUTTON_ON |
93 | #define BJACK_DOUBLEDOWN BUTTON_SELECT | 105 | #define BJACK_QUIT BUTTON_OFF |
94 | #define BJACK_SCORES BUTTON_SELECT | 106 | #define BJACK_MAX (BUTTON_ON|BUTTON_UP) |
95 | #define BJACK_RESUME BUTTON_MODE | 107 | #define BJACK_MIN (BUTTON_ON|BUTTON_DOWN) |
96 | #define BJACK_UP BUTTON_UP | 108 | #define BJACK_STAY BUTTON_REC |
97 | #define BJACK_DOWN BUTTON_DOWN | 109 | #define BJACK_DOUBLEDOWN BUTTON_SELECT |
98 | #define BJACK_RIGHT BUTTON_RIGHT | 110 | #define BJACK_RESUME BUTTON_MODE |
99 | #define BJACK_LEFT BUTTON_LEFT | 111 | #define BJACK_UP BUTTON_UP |
112 | #define BJACK_DOWN BUTTON_DOWN | ||
113 | #define BJACK_RIGHT BUTTON_RIGHT | ||
114 | #define BJACK_LEFT BUTTON_LEFT | ||
100 | 115 | ||
101 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | 116 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ |
102 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | 117 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ |
103 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | 118 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) |
104 | #define BJACK_START BUTTON_SELECT | 119 | #define BJACK_SELECT_NAME "SELECT" |
105 | #define BJACK_QUIT BUTTON_MENU | 120 | #define BJACK_STAY_NAME "RIGHT" |
106 | #define BJACK_MAX (BUTTON_SELECT|BUTTON_SCROLL_FWD) | 121 | #define BJACK_RESUME_NAME "PLAY" |
107 | #define BJACK_MIN (BUTTON_SELECT|BUTTON_SCROLL_BACK) | 122 | #define BJACK_QUIT_NAME "MENU" |
108 | #define BJACK_HIT BUTTON_SELECT | 123 | #define BJACK_DOUBLE_NAME "LEFT" |
109 | #define BJACK_STAY BUTTON_RIGHT | 124 | #define BJACK_SELECT BUTTON_SELECT |
110 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 125 | #define BJACK_QUIT BUTTON_MENU |
111 | #define BJACK_SCORES BUTTON_RIGHT | 126 | #define BJACK_MAX (BUTTON_SELECT|BUTTON_SCROLL_FWD) |
112 | #define BJACK_RESUME BUTTON_PLAY | 127 | #define BJACK_MIN (BUTTON_SELECT|BUTTON_SCROLL_BACK) |
113 | #define BJACK_UP BUTTON_SCROLL_FWD | 128 | #define BJACK_STAY BUTTON_RIGHT |
114 | #define BJACK_DOWN BUTTON_SCROLL_BACK | 129 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
115 | #define BJACK_RIGHT BUTTON_RIGHT | 130 | #define BJACK_RESUME BUTTON_PLAY |
116 | #define BJACK_LEFT BUTTON_LEFT | 131 | #define BJACK_UP BUTTON_SCROLL_FWD |
132 | #define BJACK_DOWN BUTTON_SCROLL_BACK | ||
133 | #define BJACK_RIGHT BUTTON_RIGHT | ||
134 | #define BJACK_LEFT BUTTON_LEFT | ||
117 | 135 | ||
118 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD | 136 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD |
119 | #define BJACK_START BUTTON_PLAY | 137 | #define BJACK_SELECT_NAME "PLAY" |
120 | #define BJACK_QUIT BUTTON_POWER | 138 | #define BJACK_STAY_NAME "REC" |
121 | #define BJACK_MAX (BUTTON_PLAY|BUTTON_UP) | 139 | #define BJACK_RESUME_NAME "DOWN" |
122 | #define BJACK_MIN (BUTTON_PLAY|BUTTON_DOWN) | 140 | #define BJACK_QUIT_NAME "POWER" |
123 | #define BJACK_HIT BUTTON_SELECT | 141 | #define BJACK_DOUBLE_NAME "PLAY" |
124 | #define BJACK_STAY BUTTON_REC | 142 | #define BJACK_SELECT BUTTON_PLAY |
125 | #define BJACK_DOUBLEDOWN BUTTON_PLAY | 143 | #define BJACK_QUIT BUTTON_POWER |
126 | #define BJACK_SCORES BUTTON_RIGHT | 144 | #define BJACK_MAX (BUTTON_PLAY|BUTTON_UP) |
127 | #define BJACK_RESUME BUTTON_DOWN | 145 | #define BJACK_MIN (BUTTON_PLAY|BUTTON_DOWN) |
128 | #define BJACK_UP BUTTON_UP | 146 | #define BJACK_STAY BUTTON_REC |
129 | #define BJACK_DOWN BUTTON_DOWN | 147 | #define BJACK_DOUBLEDOWN BUTTON_PLAY |
130 | #define BJACK_RIGHT BUTTON_RIGHT | 148 | #define BJACK_RESUME BUTTON_DOWN |
131 | #define BJACK_LEFT BUTTON_LEFT | 149 | #define BJACK_UP BUTTON_UP |
150 | #define BJACK_DOWN BUTTON_DOWN | ||
151 | #define BJACK_RIGHT BUTTON_RIGHT | ||
152 | #define BJACK_LEFT BUTTON_LEFT | ||
132 | 153 | ||
133 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 154 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
134 | #define BJACK_START BUTTON_MODE | 155 | #define BJACK_SELECT_NAME "MODE" |
135 | #define BJACK_QUIT BUTTON_PLAY | 156 | #define BJACK_STAY_NAME "MODE" |
136 | #define BJACK_MAX (BUTTON_EQ|BUTTON_UP) | 157 | #define BJACK_RESUME_NAME "EQ+MODE" |
137 | #define BJACK_MIN (BUTTON_EQ|BUTTON_DOWN) | 158 | #define BJACK_QUIT_NAME "PLAY" |
138 | #define BJACK_HIT BUTTON_EQ | 159 | #define BJACK_DOUBLE_NAME "SELECT" |
139 | #define BJACK_STAY BUTTON_MODE | 160 | #define BJACK_SELECT BUTTON_MODE |
140 | #define BJACK_DOUBLEDOWN BUTTON_SELECT | 161 | #define BJACK_QUIT BUTTON_PLAY |
141 | #define BJACK_SCORES BUTTON_SELECT | 162 | #define BJACK_MAX (BUTTON_EQ|BUTTON_UP) |
142 | #define BJACK_RESUME (BUTTON_EQ|BUTTON_MODE) | 163 | #define BJACK_MIN (BUTTON_EQ|BUTTON_DOWN) |
143 | #define BJACK_UP BUTTON_UP | 164 | #define BJACK_STAY BUTTON_MODE |
144 | #define BJACK_DOWN BUTTON_DOWN | 165 | #define BJACK_DOUBLEDOWN BUTTON_SELECT |
145 | #define BJACK_RIGHT BUTTON_RIGHT | 166 | #define BJACK_RESUME (BUTTON_EQ|BUTTON_MODE) |
146 | #define BJACK_LEFT BUTTON_LEFT | 167 | #define BJACK_UP BUTTON_UP |
168 | #define BJACK_DOWN BUTTON_DOWN | ||
169 | #define BJACK_RIGHT BUTTON_RIGHT | ||
170 | #define BJACK_LEFT BUTTON_LEFT | ||
147 | 171 | ||
148 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | 172 | #elif CONFIG_KEYPAD == GIGABEAT_PAD |
149 | #define BJACK_START BUTTON_A | 173 | #define BJACK_SELECT_NAME "A" |
150 | #define BJACK_QUIT BUTTON_POWER | 174 | #define BJACK_STAY_NAME "VOL-" |
151 | #define BJACK_MAX BUTTON_VOL_UP | 175 | #define BJACK_RESUME_NAME "MENU" |
152 | #define BJACK_MIN BUTTON_VOL_DOWN | 176 | #define BJACK_QUIT_NAME "POWER" |
153 | #define BJACK_HIT BUTTON_VOL_UP | 177 | #define BJACK_DOUBLE_NAME "SELECT" |
154 | #define BJACK_STAY BUTTON_VOL_DOWN | 178 | #define BJACK_SELECT BUTTON_A |
155 | #define BJACK_DOUBLEDOWN BUTTON_SELECT | 179 | #define BJACK_QUIT BUTTON_POWER |
156 | #define BJACK_SCORES BUTTON_RIGHT | 180 | #define BJACK_MAX BUTTON_VOL_UP |
157 | #define BJACK_RESUME BUTTON_MENU | 181 | #define BJACK_MIN BUTTON_VOL_DOWN |
158 | #define BJACK_UP BUTTON_UP | 182 | #define BJACK_STAY BUTTON_VOL_DOWN |
159 | #define BJACK_DOWN BUTTON_DOWN | 183 | #define BJACK_DOUBLEDOWN BUTTON_SELECT |
160 | #define BJACK_RIGHT BUTTON_RIGHT | 184 | #define BJACK_RESUME BUTTON_MENU |
161 | #define BJACK_LEFT BUTTON_LEFT | 185 | #define BJACK_UP BUTTON_UP |
186 | #define BJACK_DOWN BUTTON_DOWN | ||
187 | #define BJACK_RIGHT BUTTON_RIGHT | ||
188 | #define BJACK_LEFT BUTTON_LEFT | ||
162 | 189 | ||
163 | #elif CONFIG_KEYPAD == SANSA_E200_PAD | 190 | #elif CONFIG_KEYPAD == SANSA_E200_PAD |
164 | #define BJACK_START BUTTON_SELECT | 191 | #define BJACK_SELECT_NAME "SELECT" |
165 | #define BJACK_QUIT BUTTON_POWER | 192 | #define BJACK_STAY_NAME "RIGHT" |
166 | #define BJACK_MAX (BUTTON_REC|BUTTON_UP) | 193 | #define BJACK_RESUME_NAME "DOWN" |
167 | #define BJACK_MIN (BUTTON_REC|BUTTON_DOWN) | 194 | #define BJACK_QUIT_NAME "POWER" |
168 | #define BJACK_HIT BUTTON_SELECT | 195 | #define BJACK_DOUBLE_NAME "LEFT" |
169 | #define BJACK_STAY BUTTON_RIGHT | 196 | #define BJACK_SELECT BUTTON_SELECT |
170 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 197 | #define BJACK_QUIT BUTTON_POWER |
171 | #define BJACK_SCORES BUTTON_UP | 198 | #define BJACK_MAX (BUTTON_REC|BUTTON_UP) |
172 | #define BJACK_RESUME BUTTON_DOWN | 199 | #define BJACK_MIN (BUTTON_REC|BUTTON_DOWN) |
173 | #define BJACK_UP BUTTON_SCROLL_FWD | 200 | #define BJACK_STAY BUTTON_RIGHT |
174 | #define BJACK_DOWN BUTTON_SCROLL_BACK | 201 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
175 | #define BJACK_RIGHT BUTTON_RIGHT | 202 | #define BJACK_RESUME BUTTON_DOWN |
176 | #define BJACK_LEFT BUTTON_LEFT | 203 | #define BJACK_UP BUTTON_SCROLL_FWD |
204 | #define BJACK_DOWN BUTTON_SCROLL_BACK | ||
205 | #define BJACK_RIGHT BUTTON_RIGHT | ||
206 | #define BJACK_LEFT BUTTON_LEFT | ||
177 | 207 | ||
178 | #elif CONFIG_KEYPAD == SANSA_FUZE_PAD | 208 | #elif CONFIG_KEYPAD == SANSA_FUZE_PAD |
179 | #define BJACK_START BUTTON_SELECT | 209 | #define BJACK_SELECT_NAME "SELECT" |
180 | #define BJACK_QUIT (BUTTON_HOME|BUTTON_REPEAT) | 210 | #define BJACK_STAY_NAME "RIGHT" |
181 | #define BJACK_MAX (BUTTON_SELECT|BUTTON_UP) | 211 | #define BJACK_RESUME_NAME "UP" |
182 | #define BJACK_MIN (BUTTON_SELECT|BUTTON_DOWN) | 212 | #define BJACK_QUIT_NAME "HOME" |
183 | #define BJACK_HIT (BUTTON_SELECT|BUTTON_REL) | 213 | #define BJACK_DOUBLE_NAME "LEFT" |
184 | #define BJACK_STAY BUTTON_RIGHT | 214 | #define BJACK_SELECT BUTTON_SELECT |
185 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 215 | #define BJACK_QUIT (BUTTON_HOME|BUTTON_REPEAT) |
186 | #define BJACK_SCORES BUTTON_DOWN | 216 | #define BJACK_MAX (BUTTON_SELECT|BUTTON_UP) |
187 | #define BJACK_RESUME BUTTON_UP | 217 | #define BJACK_MIN (BUTTON_SELECT|BUTTON_DOWN) |
188 | #define BJACK_UP BUTTON_SCROLL_FWD | 218 | #define BJACK_STAY BUTTON_RIGHT |
189 | #define BJACK_DOWN BUTTON_SCROLL_BACK | 219 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
190 | #define BJACK_RIGHT BUTTON_RIGHT | 220 | #define BJACK_RESUME BUTTON_UP |
191 | #define BJACK_LEFT BUTTON_LEFT | 221 | #define BJACK_UP BUTTON_SCROLL_FWD |
192 | 222 | #define BJACK_DOWN BUTTON_SCROLL_BACK | |
223 | #define BJACK_RIGHT BUTTON_RIGHT | ||
224 | #define BJACK_LEFT BUTTON_LEFT | ||
193 | 225 | ||
194 | #elif CONFIG_KEYPAD == SANSA_C200_PAD | 226 | #elif CONFIG_KEYPAD == SANSA_C200_PAD |
195 | #define BJACK_START BUTTON_SELECT | 227 | #define BJACK_SELECT_NAME "SELECT" |
196 | #define BJACK_QUIT BUTTON_POWER | 228 | #define BJACK_STAY_NAME "RIGHT" |
197 | #define BJACK_MAX BUTTON_VOL_UP | 229 | #define BJACK_RESUME_NAME "DOWN" |
198 | #define BJACK_MIN BUTTON_VOL_DOWN | 230 | #define BJACK_QUIT_NAME "POWER" |
199 | #define BJACK_HIT BUTTON_SELECT | 231 | #define BJACK_DOUBLE_NAME "LEFT" |
200 | #define BJACK_STAY BUTTON_RIGHT | 232 | #define BJACK_SELECT BUTTON_SELECT |
201 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 233 | #define BJACK_QUIT BUTTON_POWER |
202 | #define BJACK_SCORES BUTTON_REC | 234 | #define BJACK_MAX BUTTON_VOL_UP |
203 | #define BJACK_RESUME BUTTON_DOWN | 235 | #define BJACK_MIN BUTTON_VOL_DOWN |
204 | #define BJACK_UP BUTTON_UP | 236 | #define BJACK_STAY BUTTON_RIGHT |
205 | #define BJACK_DOWN BUTTON_DOWN | 237 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
206 | #define BJACK_RIGHT BUTTON_RIGHT | 238 | #define BJACK_RESUME BUTTON_DOWN |
207 | #define BJACK_LEFT BUTTON_LEFT | 239 | #define BJACK_UP BUTTON_UP |
240 | #define BJACK_DOWN BUTTON_DOWN | ||
241 | #define BJACK_RIGHT BUTTON_RIGHT | ||
242 | #define BJACK_LEFT BUTTON_LEFT | ||
208 | 243 | ||
209 | #elif CONFIG_KEYPAD == SANSA_CLIP_PAD | 244 | #elif CONFIG_KEYPAD == SANSA_CLIP_PAD |
210 | #define BJACK_START BUTTON_SELECT | 245 | #define BJACK_SELECT_NAME "SELECT" |
211 | #define BJACK_QUIT BUTTON_POWER | 246 | #define BJACK_STAY_NAME "RIGHT" |
212 | #define BJACK_MAX BUTTON_VOL_UP | 247 | #define BJACK_RESUME_NAME "DOWN" |
213 | #define BJACK_MIN BUTTON_VOL_DOWN | 248 | #define BJACK_QUIT_NAME "POWER" |
214 | #define BJACK_HIT BUTTON_SELECT | 249 | #define BJACK_DOUBLE_NAME "LEFT" |
215 | #define BJACK_STAY BUTTON_RIGHT | 250 | #define BJACK_SELECT BUTTON_SELECT |
216 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 251 | #define BJACK_QUIT BUTTON_POWER |
217 | #define BJACK_SCORES BUTTON_HOME | 252 | #define BJACK_MAX BUTTON_VOL_UP |
218 | #define BJACK_RESUME BUTTON_DOWN | 253 | #define BJACK_MIN BUTTON_VOL_DOWN |
219 | #define BJACK_UP BUTTON_UP | 254 | #define BJACK_STAY BUTTON_RIGHT |
220 | #define BJACK_DOWN BUTTON_DOWN | 255 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
221 | #define BJACK_RIGHT BUTTON_RIGHT | 256 | #define BJACK_RESUME BUTTON_DOWN |
222 | #define BJACK_LEFT BUTTON_LEFT | 257 | #define BJACK_UP BUTTON_UP |
258 | #define BJACK_DOWN BUTTON_DOWN | ||
259 | #define BJACK_RIGHT BUTTON_RIGHT | ||
260 | #define BJACK_LEFT BUTTON_LEFT | ||
223 | 261 | ||
224 | #elif CONFIG_KEYPAD == SANSA_M200_PAD | 262 | #elif CONFIG_KEYPAD == SANSA_M200_PAD |
225 | #define BJACK_START (BUTTON_SELECT | BUTTON_REL) | 263 | #define BJACK_SELECT_NAME "SELECT" |
226 | #define BJACK_QUIT BUTTON_POWER | 264 | #define BJACK_STAY_NAME "RIGHT" |
227 | #define BJACK_MAX BUTTON_VOL_UP | 265 | #define BJACK_RESUME_NAME "DOWN" |
228 | #define BJACK_MIN BUTTON_VOL_DOWN | 266 | #define BJACK_QUIT_NAME "POWER" |
229 | #define BJACK_HIT (BUTTON_SELECT | BUTTON_REL) | 267 | #define BJACK_DOUBLE_NAME "LEFT" |
230 | #define BJACK_STAY BUTTON_RIGHT | 268 | #define BJACK_SELECT (BUTTON_SELECT | BUTTON_REL) |
231 | #define BJACK_DOUBLEDOWN BUTTON_LEFT | 269 | #define BJACK_QUIT BUTTON_POWER |
232 | #define BJACK_SCORES (BUTTON_SELECT | BUTTON_UP) | 270 | #define BJACK_MAX BUTTON_VOL_UP |
233 | #define BJACK_RESUME BUTTON_DOWN | 271 | #define BJACK_MIN BUTTON_VOL_DOWN |
234 | #define BJACK_UP BUTTON_UP | 272 | #define BJACK_STAY BUTTON_RIGHT |
235 | #define BJACK_DOWN BUTTON_DOWN | 273 | #define BJACK_DOUBLEDOWN BUTTON_LEFT |
236 | #define BJACK_RIGHT BUTTON_RIGHT | 274 | #define BJACK_RESUME BUTTON_DOWN |
237 | #define BJACK_LEFT BUTTON_LEFT | 275 | #define BJACK_UP BUTTON_UP |
276 | #define BJACK_DOWN BUTTON_DOWN | ||
277 | #define BJACK_RIGHT BUTTON_RIGHT | ||
278 | #define BJACK_LEFT BUTTON_LEFT | ||
238 | 279 | ||
239 | #elif CONFIG_KEYPAD == ELIO_TPJ1022_PAD | 280 | #elif CONFIG_KEYPAD == ELIO_TPJ1022_PAD |
240 | #define BJACK_START BUTTON_MAIN | 281 | #define BJACK_SELECT_NAME "MAIN" |
241 | #define BJACK_QUIT BUTTON_POWER | 282 | #define BJACK_STAY_NAME "MENU" |
242 | #define BJACK_MAX (BUTTON_REC|BUTTON_UP) | 283 | #define BJACK_RESUME_NAME ">>|" |
243 | #define BJACK_MIN (BUTTON_REC|BUTTON_DOWN) | 284 | #define BJACK_QUIT_NAME "POWER" |
244 | #define BJACK_HIT BUTTON_MAIN | 285 | #define BJACK_DOUBLE_NAME "DOWN" |
245 | #define BJACK_STAY BUTTON_MENU | 286 | #define BJACK_SELECT BUTTON_MAIN |
246 | #define BJACK_DOUBLEDOWN BUTTON_DOWN | 287 | #define BJACK_QUIT BUTTON_POWER |
247 | #define BJACK_SCORES BUTTON_UP | 288 | #define BJACK_MAX (BUTTON_REC|BUTTON_UP) |
248 | #define BJACK_RESUME BUTTON_FF | 289 | #define BJACK_MIN (BUTTON_REC|BUTTON_DOWN) |
249 | #define BJACK_UP BUTTON_UP | 290 | #define BJACK_STAY BUTTON_MENU |
250 | #define BJACK_DOWN BUTTON_DOWN | 291 | #define BJACK_DOUBLEDOWN BUTTON_DOWN |
251 | #define BJACK_RIGHT BUTTON_RIGHT | 292 | #define BJACK_RESUME BUTTON_FF |
252 | #define BJACK_LEFT BUTTON_LEFT | 293 | #define BJACK_UP BUTTON_UP |
294 | #define BJACK_DOWN BUTTON_DOWN | ||
295 | #define BJACK_RIGHT BUTTON_RIGHT | ||
296 | #define BJACK_LEFT BUTTON_LEFT | ||
253 | 297 | ||
254 | #elif CONFIG_KEYPAD == GIGABEAT_S_PAD | 298 | #elif CONFIG_KEYPAD == GIGABEAT_S_PAD |
255 | #define BJACK_START BUTTON_PLAY | 299 | #define BJACK_SELECT_NAME "PLAY" |
256 | #define BJACK_QUIT BUTTON_BACK | 300 | #define BJACK_STAY_NAME "VOL-" |
257 | #define BJACK_MAX BUTTON_VOL_UP | 301 | #define BJACK_RESUME_NAME "MENU" |
258 | #define BJACK_MIN BUTTON_VOL_DOWN | 302 | #define BJACK_QUIT_NAME "BACK" |
259 | #define BJACK_HIT BUTTON_VOL_UP | 303 | #define BJACK_DOUBLE_NAME "SELECT" |
260 | #define BJACK_STAY BUTTON_VOL_DOWN | 304 | #define BJACK_SELECT BUTTON_PLAY |
261 | #define BJACK_DOUBLEDOWN BUTTON_SELECT | 305 | #define BJACK_QUIT BUTTON_BACK |
262 | #define BJACK_SCORES BUTTON_RIGHT | 306 | #define BJACK_MAX BUTTON_VOL_UP |
263 | #define BJACK_RESUME BUTTON_MENU | 307 | #define BJACK_MIN BUTTON_VOL_DOWN |
264 | #define BJACK_UP BUTTON_UP | 308 | #define BJACK_STAY BUTTON_VOL_DOWN |
265 | #define BJACK_DOWN BUTTON_DOWN | 309 | #define BJACK_DOUBLEDOWN BUTTON_SELECT |
266 | #define BJACK_RIGHT BUTTON_RIGHT | 310 | #define BJACK_RESUME BUTTON_MENU |
267 | #define BJACK_LEFT BUTTON_LEFT | 311 | #define BJACK_UP BUTTON_UP |
312 | #define BJACK_DOWN BUTTON_DOWN | ||
313 | #define BJACK_RIGHT BUTTON_RIGHT | ||
314 | #define BJACK_LEFT BUTTON_LEFT | ||
268 | 315 | ||
269 | #elif CONFIG_KEYPAD == MROBE100_PAD | 316 | #elif CONFIG_KEYPAD == MROBE100_PAD |
270 | 317 | #define BJACK_SELECT_NAME "SELECT" | |
271 | #define BJACK_START BUTTON_SELECT | 318 | #define BJACK_STAY_NAME "DISPLAY" |
272 | #define BJACK_QUIT BUTTON_POWER | 319 | #define BJACK_RESUME_NAME "PLAY" |
273 | #define BJACK_MAX BUTTON_MENU | 320 | #define BJACK_QUIT_NAME "POWER" |
274 | #define BJACK_MIN BUTTON_DISPLAY | 321 | #define BJACK_DOUBLE_NAME "DOWN" |
275 | #define BJACK_HIT BUTTON_MENU | 322 | #define BJACK_SELECT BUTTON_SELECT |
276 | #define BJACK_STAY BUTTON_DISPLAY | 323 | #define BJACK_QUIT BUTTON_POWER |
277 | #define BJACK_DOUBLEDOWN BUTTON_DOWN | 324 | #define BJACK_MAX BUTTON_MENU |
278 | #define BJACK_SCORES BUTTON_RIGHT | 325 | #define BJACK_MIN BUTTON_DISPLAY |
279 | #define BJACK_RESUME BUTTON_PLAY | 326 | #define BJACK_STAY BUTTON_DISPLAY |
280 | #define BJACK_UP BUTTON_UP | 327 | #define BJACK_DOUBLEDOWN BUTTON_DOWN |
281 | #define BJACK_DOWN BUTTON_DOWN | 328 | #define BJACK_RESUME BUTTON_PLAY |
282 | #define BJACK_RIGHT BUTTON_RIGHT | 329 | #define BJACK_UP BUTTON_UP |
283 | #define BJACK_LEFT BUTTON_LEFT | 330 | #define BJACK_DOWN BUTTON_DOWN |
331 | #define BJACK_RIGHT BUTTON_RIGHT | ||
332 | #define BJACK_LEFT BUTTON_LEFT | ||
284 | 333 | ||
285 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD | 334 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD |
286 | 335 | #define BJACK_SELECT_NAME "RC","PLAY" | |
287 | #define BJACK_START BUTTON_RC_PLAY | 336 | #define BJACK_STAY_NAME "RC", ">>|" |
288 | #define BJACK_QUIT BUTTON_RC_REC | 337 | #define BJACK_RESUME_NAME "RC_MODE" |
289 | #define BJACK_MAX (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP) | 338 | #define BJACK_QUIT_NAME "RC_REC" |
290 | #define BJACK_MIN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN) | 339 | #define BJACK_DOUBLE_NAME "RC_REW" |
291 | #define BJACK_HIT BUTTON_RC_PLAY | 340 | #define BJACK_SELECT BUTTON_RC_PLAY |
292 | #define BJACK_STAY BUTTON_RC_FF | 341 | #define BJACK_QUIT BUTTON_RC_REC |
293 | #define BJACK_DOUBLEDOWN BUTTON_RC_REW | 342 | #define BJACK_MAX (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP) |
294 | #define BJACK_SCORES BUTTON_RC_MENU | 343 | #define BJACK_MIN (BUTTON_RC_PLAY|BUTTON_RC_VOL_DOWN) |
295 | #define BJACK_RESUME BUTTON_RC_MODE | 344 | #define BJACK_STAY BUTTON_RC_FF |
296 | #define BJACK_UP BUTTON_RC_VOL_UP | 345 | #define BJACK_DOUBLEDOWN BUTTON_RC_REW |
297 | #define BJACK_DOWN BUTTON_RC_VOL_DOWN | 346 | #define BJACK_RESUME BUTTON_RC_MODE |
298 | #define BJACK_RIGHT BUTTON_RC_FF | 347 | #define BJACK_UP BUTTON_RC_VOL_UP |
299 | #define BJACK_LEFT BUTTON_RC_REW | 348 | #define BJACK_DOWN BUTTON_RC_VOL_DOWN |
349 | #define BJACK_RIGHT BUTTON_RC_FF | ||
350 | #define BJACK_LEFT BUTTON_RC_REW | ||
300 | 351 | ||
301 | #elif CONFIG_KEYPAD == COWOND2_PAD | 352 | #elif CONFIG_KEYPAD == COWOND2_PAD |
302 | #define BJACK_QUIT BUTTON_POWER | 353 | #define BJACK_QUIT_NAME "POWER" |
303 | #define BJACK_DOUBLEDOWN BUTTON_MINUS | 354 | #define BJACK_DOUBLE_NAME "-" |
304 | #define BJACK_SCORES BUTTON_MENU | 355 | #define BJACK_QUIT BUTTON_POWER |
356 | #define BJACK_DOUBLEDOWN BUTTON_MINUS | ||
305 | 357 | ||
306 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD | 358 | #elif CONFIG_KEYPAD == CREATIVEZVM_PAD |
307 | #define BJACK_START BUTTON_SELECT | 359 | #define BJACK_SELECT_NAME "SELECT" |
308 | #define BJACK_QUIT BUTTON_BACK | 360 | #define BJACK_STAY_NAME "DOWN" |
309 | #define BJACK_MAX (BUTTON_CUSTOM|BUTTON_UP) | 361 | #define BJACK_RESUME_NAME "MENU" |
310 | #define BJACK_MIN (BUTTON_CUSTOM|BUTTON_DOWN) | 362 | #define BJACK_QUIT_NAME "BACK" |
311 | #define BJACK_HIT BUTTON_UP | 363 | #define BJACK_DOUBLE_NAME "CUSTOM" |
312 | #define BJACK_STAY BUTTON_DOWN | 364 | #define BJACK_SELECT BUTTON_SELECT |
313 | #define BJACK_DOUBLEDOWN BUTTON_CUSTOM | 365 | #define BJACK_QUIT BUTTON_BACK |
314 | #define BJACK_SCORES BUTTON_RIGHT | 366 | #define BJACK_MAX (BUTTON_CUSTOM|BUTTON_UP) |
315 | #define BJACK_RESUME BUTTON_MENU | 367 | #define BJACK_MIN (BUTTON_CUSTOM|BUTTON_DOWN) |
316 | #define BJACK_UP BUTTON_UP | 368 | #define BJACK_DOUBLEDOWN BUTTON_CUSTOM |
317 | #define BJACK_DOWN BUTTON_DOWN | 369 | #define BJACK_RESUME BUTTON_MENU |
318 | #define BJACK_RIGHT BUTTON_RIGHT | 370 | #define BJACK_UP BUTTON_UP |
319 | #define BJACK_LEFT BUTTON_LEFT | 371 | #define BJACK_DOWN BUTTON_DOWN |
372 | #define BJACK_RIGHT BUTTON_RIGHT | ||
373 | #define BJACK_LEFT BUTTON_LEFT | ||
320 | 374 | ||
321 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD | 375 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD |
322 | #define BJACK_START BUTTON_MENU | 376 | #define BJACK_SELECT_NAME "MENU" |
323 | #define BJACK_QUIT BUTTON_POWER | 377 | #define BJACK_STAY_NAME "VOL-" |
324 | #define BJACK_MAX BUTTON_VOL_UP | 378 | #define BJACK_RESUME_NAME "VIEW" |
325 | #define BJACK_MIN BUTTON_VOL_DOWN | 379 | #define BJACK_QUIT_NAME "POWER" |
326 | #define BJACK_HIT BUTTON_VOL_UP | 380 | #define BJACK_DOUBLE_NAME "SELECT" |
327 | #define BJACK_STAY BUTTON_VOL_DOWN | 381 | #define BJACK_SELECT BUTTON_MENU |
328 | #define BJACK_DOUBLEDOWN BUTTON_SELECT | 382 | #define BJACK_QUIT BUTTON_POWER |
329 | #define BJACK_SCORES BUTTON_RIGHT | 383 | #define BJACK_MAX BUTTON_VOL_UP |
330 | #define BJACK_RESUME BUTTON_VIEW | 384 | #define BJACK_MIN BUTTON_VOL_DOWN |
331 | #define BJACK_UP BUTTON_UP | 385 | #define BJACK_STAY BUTTON_VOL_DOWN |
332 | #define BJACK_DOWN BUTTON_DOWN | 386 | #define BJACK_DOUBLEDOWN BUTTON_SELECT |
333 | #define BJACK_RIGHT BUTTON_RIGHT | 387 | #define BJACK_RESUME BUTTON_VIEW |
334 | #define BJACK_LEFT BUTTON_LEFT | 388 | #define BJACK_UP BUTTON_UP |
389 | #define BJACK_DOWN BUTTON_DOWN | ||
390 | #define BJACK_RIGHT BUTTON_RIGHT | ||
391 | #define BJACK_LEFT BUTTON_LEFT | ||
335 | 392 | ||
336 | #elif CONFIG_KEYPAD == ONDAVX747_PAD | 393 | #elif CONFIG_KEYPAD == ONDAVX747_PAD |
337 | #define BJACK_QUIT BUTTON_POWER | 394 | #define BJACK_QUIT_NAME "POWER" |
338 | #define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN | 395 | #define BJACK_DOUBLE_NAME "Vol-" |
339 | #define BJACK_SCORES BUTTON_MENU | 396 | #define BJACK_QUIT BUTTON_POWER |
397 | #define BJACK_DOUBLEDOWN BUTTON_VOL_DOWN | ||
340 | 398 | ||
341 | #elif CONFIG_KEYPAD == MROBE500_PAD | 399 | #elif CONFIG_KEYPAD == MROBE500_PAD |
342 | #define BJACK_QUIT BUTTON_POWER | 400 | #define BJACK_QUIT_NAME "POWER" |
401 | #define BJACK_QUIT BUTTON_POWER | ||
343 | 402 | ||
344 | #else | 403 | #else |
345 | #error No keymap defined! | 404 | #error No keymap defined! |
@@ -347,40 +406,38 @@ PLUGIN_HEADER | |||
347 | 406 | ||
348 | #ifdef HAVE_TOUCHSCREEN | 407 | #ifdef HAVE_TOUCHSCREEN |
349 | #ifndef BJACK_DOUBLEDOWN | 408 | #ifndef BJACK_DOUBLEDOWN |
350 | #define BJACK_DOUBLEDOWN BUTTON_MIDLEFT | 409 | #define BJACK_DOUBLEDOWN BUTTON_MIDLEFT |
410 | #define BJACK_DOUBLE_NAME "BUTTON_MIDLEFT" | ||
351 | #endif | 411 | #endif |
352 | #ifndef BJACK_SCORES | 412 | #ifndef BJACK_SELECT |
353 | #define BJACK_SCORES BUTTON_MIDRIGHT | 413 | #define BJACK_SELECT BUTTON_CENTER |
354 | #endif | 414 | #define BJACK_SELECT_NAME "BUTTON_CENTER" |
355 | #ifndef BJACK_START | ||
356 | #define BJACK_START BUTTON_CENTER | ||
357 | #endif | ||
358 | #ifndef BJACK_HIT | ||
359 | #define BJACK_HIT BUTTON_CENTER | ||
360 | #endif | 415 | #endif |
361 | #ifndef BJACK_MAX | 416 | #ifndef BJACK_MAX |
362 | #define BJACK_MAX BUTTON_TOPRIGHT | 417 | #define BJACK_MAX BUTTON_TOPRIGHT |
363 | #endif | 418 | #endif |
364 | #ifndef BJACK_MIN | 419 | #ifndef BJACK_MIN |
365 | #define BJACK_MIN BUTTON_TOPLEFT | 420 | #define BJACK_MIN BUTTON_TOPLEFT |
366 | #endif | 421 | #endif |
367 | #ifndef BJACK_RESUME | 422 | #ifndef BJACK_RESUME |
368 | #define BJACK_RESUME BUTTON_BOTTOMRIGHT | 423 | #define BJACK_RESUME BUTTON_BOTTOMRIGHT |
424 | #define BJACK_RESUME_NAME "BUTTON_BOTTOMRIGHT" | ||
369 | #endif | 425 | #endif |
370 | #ifndef BJACK_STAY | 426 | #ifndef BJACK_STAY |
371 | #define BJACK_STAY BUTTON_BOTTOMLEFT | 427 | #define BJACK_STAY BUTTON_BOTTOMLEFT |
428 | #define BJACK_STAY_NAME "BUTTON_BOTTOMLEFT" | ||
372 | #endif | 429 | #endif |
373 | #ifndef BJACK_UP | 430 | #ifndef BJACK_UP |
374 | #define BJACK_UP BUTTON_TOPMIDDLE | 431 | #define BJACK_UP BUTTON_TOPMIDDLE |
375 | #endif | 432 | #endif |
376 | #ifndef BJACK_DOWN | 433 | #ifndef BJACK_DOWN |
377 | #define BJACK_DOWN BUTTON_BOTTOMMIDDLE | 434 | #define BJACK_DOWN BUTTON_BOTTOMMIDDLE |
378 | #endif | 435 | #endif |
379 | #ifndef BJACK_RIGHT | 436 | #ifndef BJACK_RIGHT |
380 | #define BJACK_RIGHT BUTTON_MIDRIGHT | 437 | #define BJACK_RIGHT BUTTON_MIDRIGHT |
381 | #endif | 438 | #endif |
382 | #ifndef BJACK_LEFT | 439 | #ifndef BJACK_LEFT |
383 | #define BJACK_LEFT BUTTON_MIDLEFT | 440 | #define BJACK_LEFT BUTTON_MIDLEFT |
384 | #endif | 441 | #endif |
385 | 442 | ||
386 | #endif | 443 | #endif |
@@ -426,11 +483,10 @@ typedef struct game_context { | |||
426 | unsigned int split_status; /* 0 = split hasn't been asked, * | 483 | unsigned int split_status; /* 0 = split hasn't been asked, * |
427 | * 1 = split did not occur * | 484 | * 1 = split did not occur * |
428 | * 2 = split occurred * | 485 | * 2 = split occurred * |
429 | * 3 = split occurred and 1st hand done */ | 486 | * 3 = split occurred and 1st hand done */ |
430 | bool is_blackjack; | 487 | bool is_blackjack; |
431 | bool end_hand; | 488 | bool end_hand; |
432 | bool asked_insurance; | 489 | bool asked_insurance; |
433 | signed short highscores[NUM_SCORES]; | ||
434 | bool resume; | 490 | bool resume; |
435 | bool dirty; | 491 | bool dirty; |
436 | } game_context; | 492 | } game_context; |
@@ -766,72 +822,6 @@ static void finish_game(struct game_context* bj) { | |||
766 | } | 822 | } |
767 | 823 | ||
768 | /***************************************************************************** | 824 | /***************************************************************************** |
769 | * blackjack_recordscore() inserts a high score into the high scores list and | ||
770 | * returns the high score position. | ||
771 | ******************************************************************************/ | ||
772 | static unsigned int blackjack_recordscore(struct game_context* bj) { | ||
773 | unsigned int i; | ||
774 | unsigned int position = 0; | ||
775 | signed short current, temp; | ||
776 | |||
777 | /* calculate total score */ | ||
778 | current = bj->player_money; | ||
779 | if(current <= 10) return 0; | ||
780 | |||
781 | /* insert the current score into the high scores */ | ||
782 | for(i=0; i<NUM_SCORES; i++) { | ||
783 | if(current >= bj->highscores[i]) { | ||
784 | if(!position) { | ||
785 | position = i+1; | ||
786 | bj->dirty = true; | ||
787 | } | ||
788 | temp = bj->highscores[i]; | ||
789 | bj->highscores[i] = current; | ||
790 | current = temp; | ||
791 | } | ||
792 | } | ||
793 | |||
794 | return position; | ||
795 | } | ||
796 | |||
797 | /***************************************************************************** | ||
798 | * blackjack_loadscores() loads the high scores saved file. | ||
799 | ******************************************************************************/ | ||
800 | static void blackjack_loadscores(struct game_context* bj) { | ||
801 | signed int fd; | ||
802 | |||
803 | bj->dirty = false; | ||
804 | |||
805 | /* clear high scores */ | ||
806 | rb->memset(bj->highscores, 0, sizeof(bj->highscores)); | ||
807 | |||
808 | /* open scores file */ | ||
809 | fd = rb->open(SCORE_FILE, O_RDONLY); | ||
810 | if(fd < 0) return; | ||
811 | |||
812 | /* read in high scores */ | ||
813 | if(rb->read(fd, bj->highscores, sizeof(bj->highscores)) <= 0) { | ||
814 | /* scores are bad, reset */ | ||
815 | rb->memset(bj->highscores, 0, sizeof(bj->highscores)); | ||
816 | } | ||
817 | |||
818 | rb->close(fd); | ||
819 | } | ||
820 | |||
821 | /***************************************************************************** | ||
822 | * blackjack_savescores() saves the high scores saved file. | ||
823 | ******************************************************************************/ | ||
824 | static void blackjack_savescores(struct game_context* bj) { | ||
825 | unsigned int fd; | ||
826 | |||
827 | /* write out the high scores to the save file */ | ||
828 | fd = rb->open(SCORE_FILE, O_WRONLY|O_CREAT); | ||
829 | rb->write(fd, bj->highscores, sizeof(bj->highscores)); | ||
830 | rb->close(fd); | ||
831 | bj->dirty = false; | ||
832 | } | ||
833 | |||
834 | /***************************************************************************** | ||
835 | * blackjack_loadgame() loads the saved game and returns load success. | 825 | * blackjack_loadgame() loads the saved game and returns load success. |
836 | ******************************************************************************/ | 826 | ******************************************************************************/ |
837 | static bool blackjack_loadgame(struct game_context* bj) { | 827 | static bool blackjack_loadgame(struct game_context* bj) { |
@@ -844,21 +834,30 @@ static bool blackjack_loadgame(struct game_context* bj) { | |||
844 | 834 | ||
845 | /* read in saved game */ | 835 | /* read in saved game */ |
846 | while(true) { | 836 | while(true) { |
847 | if(rb->read(fd, &bj->player_money, sizeof(bj->player_money)) <= 0) break; | 837 | if(rb->read(fd, &bj->player_money, sizeof(bj->player_money)) <= 0) |
848 | if(rb->read(fd, &bj->player_total, sizeof(bj->player_total)) <= 0) break; | 838 | break; |
849 | if(rb->read(fd, &bj->dealer_total, sizeof(bj->dealer_total)) <= 0) break; | 839 | if(rb->read(fd, &bj->player_total, sizeof(bj->player_total)) <= 0) |
840 | break; | ||
841 | if(rb->read(fd, &bj->dealer_total, sizeof(bj->dealer_total)) <= 0) | ||
842 | break; | ||
850 | if(rb->read(fd, &bj->num_player_cards, sizeof(bj->num_player_cards))<=0) | 843 | if(rb->read(fd, &bj->num_player_cards, sizeof(bj->num_player_cards))<=0) |
851 | break; | 844 | break; |
852 | if(rb->read(fd, &bj->num_dealer_cards, sizeof(bj->num_dealer_cards))<=0) | 845 | if(rb->read(fd, &bj->num_dealer_cards, sizeof(bj->num_dealer_cards))<=0) |
853 | break; | 846 | break; |
854 | if(rb->read(fd, &bj->current_bet, sizeof(bj->current_bet)) <= 0) break; | 847 | if(rb->read(fd, &bj->current_bet, sizeof(bj->current_bet)) <= 0) |
855 | if(rb->read(fd, &bj->is_blackjack, sizeof(bj->is_blackjack)) <= 0) break; | 848 | break; |
856 | if(rb->read(fd, &bj->split_status, sizeof(bj->split_status)) <= 0) break; | 849 | if(rb->read(fd, &bj->is_blackjack, sizeof(bj->is_blackjack)) <= 0) |
850 | break; | ||
851 | if(rb->read(fd, &bj->split_status, sizeof(bj->split_status)) <= 0) | ||
852 | break; | ||
857 | if(rb->read(fd, &bj->asked_insurance, sizeof(bj->asked_insurance)) <= 0) | 853 | if(rb->read(fd, &bj->asked_insurance, sizeof(bj->asked_insurance)) <= 0) |
858 | break; | 854 | break; |
859 | if(rb->read(fd, &bj->end_hand, sizeof(bj->end_hand)) <= 0) break; | 855 | if(rb->read(fd, &bj->end_hand, sizeof(bj->end_hand)) <= 0) |
860 | if(rb->read(fd, &bj->player_cards, sizeof(bj->player_cards)) <= 0) break; | 856 | break; |
861 | if(rb->read(fd, &bj->dealer_cards, sizeof(bj->dealer_cards)) <= 0) break; | 857 | if(rb->read(fd, &bj->player_cards, sizeof(bj->player_cards)) <= 0) |
858 | break; | ||
859 | if(rb->read(fd, &bj->dealer_cards, sizeof(bj->dealer_cards)) <= 0) | ||
860 | break; | ||
862 | bj->resume = true; | 861 | bj->resume = true; |
863 | loaded = true; | 862 | loaded = true; |
864 | break; | 863 | break; |
@@ -903,8 +902,7 @@ static void blackjack_savegame(struct game_context* bj) { | |||
903 | static void blackjack_callback(void* param) { | 902 | static void blackjack_callback(void* param) { |
904 | struct game_context* bj = (struct game_context*) param; | 903 | struct game_context* bj = (struct game_context*) param; |
905 | if(bj->dirty) { | 904 | if(bj->dirty) { |
906 | rb->splash(HZ, "Saving high scores..."); | 905 | highscore_save(HIGH_SCORE,highest,NUM_SCORES); |
907 | blackjack_savescores(bj); | ||
908 | } | 906 | } |
909 | } | 907 | } |
910 | 908 | ||
@@ -954,7 +952,7 @@ static unsigned int blackjack_get_yes_no(char message[20]) { | |||
954 | case (BJACK_RIGHT|BUTTON_REPEAT): | 952 | case (BJACK_RIGHT|BUTTON_REPEAT): |
955 | choice ^= 1; | 953 | choice ^= 1; |
956 | break; | 954 | break; |
957 | case BJACK_START: breakout = true; | 955 | case BJACK_SELECT: breakout = true; |
958 | break; | 956 | break; |
959 | case BJACK_QUIT: breakout = true; | 957 | case BJACK_QUIT: breakout = true; |
960 | choice = BJ_QUIT; | 958 | choice = BJ_QUIT; |
@@ -972,7 +970,7 @@ static unsigned int blackjack_get_yes_no(char message[20]) { | |||
972 | /***************************************************************************** | 970 | /***************************************************************************** |
973 | * blackjack_get_amount() gets an amount from the player to be used | 971 | * blackjack_get_amount() gets an amount from the player to be used |
974 | ******************************************************************************/ | 972 | ******************************************************************************/ |
975 | static signed int blackjack_get_amount(char message[20], signed int lower_limit, | 973 | static signed int blackjack_get_amount(char message[20], signed int lower_limit, |
976 | signed int upper_limit, | 974 | signed int upper_limit, |
977 | signed int start) { | 975 | signed int start) { |
978 | int button; | 976 | int button; |
@@ -1079,7 +1077,7 @@ static signed int blackjack_get_amount(char message[20], signed int lower_limit, | |||
1079 | break; | 1077 | break; |
1080 | case BJACK_QUIT: | 1078 | case BJACK_QUIT: |
1081 | return 0; | 1079 | return 0; |
1082 | case BJACK_START: | 1080 | case BJACK_SELECT: |
1083 | #if LCD_DEPTH > 1 | 1081 | #if LCD_DEPTH > 1 |
1084 | rb->lcd_set_foreground(FG_COLOR); | 1082 | rb->lcd_set_foreground(FG_COLOR); |
1085 | rb->lcd_set_background(BG_COLOR); | 1083 | rb->lcd_set_background(BG_COLOR); |
@@ -1165,209 +1163,66 @@ static unsigned int play_again(void) { | |||
1165 | return blackjack_get_yes_no("Play Again?"); | 1163 | return blackjack_get_yes_no("Play Again?"); |
1166 | } | 1164 | } |
1167 | 1165 | ||
1166 | void showhelp(void) { | ||
1167 | #define WORDS (sizeof help_text / sizeof (char*)) | ||
1168 | static char *help_text[] = { | ||
1169 | "Blackjack", "", | ||
1170 | "The", "goal", "is", "to", "get", "21.", "", "", | ||
1171 | "Controls", "", | ||
1172 | BJACK_SELECT_NAME, ":", "hit", "/", "select", "", | ||
1173 | BJACK_STAY_NAME, ":", "stay", "", | ||
1174 | BJACK_DOUBLE_NAME, ":", "double", "down", "", | ||
1175 | BJACK_QUIT_NAME, ":", "Go", "to", "menu", "without", "save", "", | ||
1176 | BJACK_RESUME_NAME, ":", "Save", "and", "go", "to", "menu", "", | ||
1177 | |||
1178 | }; | ||
1179 | static struct style_text formation[]={ | ||
1180 | { 0, TEXT_CENTER|TEXT_UNDERLINE }, | ||
1181 | { 12, C_RED }, /* Hit/Select */ | ||
1182 | { 18, C_RED }, /* Stay */ | ||
1183 | { 22, C_RED }, /* Double Down */ | ||
1184 | { 27, C_RED }, /* Quit */ | ||
1185 | { 35, C_RED }, /* Save */ | ||
1186 | { -1, 0 } | ||
1187 | }; | ||
1188 | int button; | ||
1189 | |||
1190 | rb->lcd_setfont(FONT_UI); | ||
1191 | #ifdef HAVE_LCD_COLOR | ||
1192 | rb->lcd_set_background(LCD_BLACK); | ||
1193 | rb->lcd_set_foreground(LCD_WHITE); | ||
1194 | #endif | ||
1195 | |||
1196 | if (display_text(WORDS, help_text, formation, NULL)) | ||
1197 | return; | ||
1198 | do { | ||
1199 | button = rb->button_get(true); | ||
1200 | if (rb->default_event_handler(button) == SYS_USB_CONNECTED) { | ||
1201 | return; | ||
1202 | } | ||
1203 | } while( ( button == BUTTON_NONE ) | ||
1204 | || ( button & (BUTTON_REL|BUTTON_REPEAT) ) ); | ||
1205 | rb->lcd_setfont(FONT_SYSFIXED); | ||
1206 | return; | ||
1207 | } | ||
1208 | |||
1168 | /***************************************************************************** | 1209 | /***************************************************************************** |
1169 | * blackjack_menu() is the initial menu at the start of the game. | 1210 | * blackjack_menu() is the initial menu at the start of the game. |
1170 | ******************************************************************************/ | 1211 | ******************************************************************************/ |
1171 | static unsigned int blackjack_menu(struct game_context* bj) { | 1212 | static unsigned int blackjack_menu(struct game_context* bj) { |
1172 | int button; | 1213 | int button; |
1173 | char *title = "Blackjack"; | 1214 | int selection=0; |
1174 | char str[18]; | ||
1175 | unsigned int i, w, h; | ||
1176 | bool breakout = false; | 1215 | bool breakout = false; |
1177 | bool showscores = false; | ||
1178 | 1216 | ||
1179 | while(true){ | 1217 | MENUITEM_STRINGLIST(menu,"BlackJack Menu",NULL,"Start Game","Resume Game", |
1180 | #if LCD_DEPTH > 1 | 1218 | "High Scores", "Help", "Playback Control", "Quit"); |
1181 | rb->lcd_set_background(BG_COLOR); | ||
1182 | rb->lcd_set_foreground(FG_COLOR); | ||
1183 | #endif | ||
1184 | rb->lcd_clear_display(); | ||
1185 | |||
1186 | if(!showscores) { | ||
1187 | /* welcome screen to display key bindings */ | ||
1188 | rb->lcd_getstringsize(title, &w, &h); | ||
1189 | rb->lcd_putsxy((LCD_WIDTH-w)/2, 0, title); | ||
1190 | |||
1191 | #if CONFIG_KEYPAD == RECORDER_PAD | ||
1192 | rb->lcd_puts(0, 1, "ON: start"); | ||
1193 | rb->lcd_puts(0, 2, "OFF: exit"); | ||
1194 | rb->lcd_puts(0, 3, "F1: hit"); | ||
1195 | rb->lcd_puts(0, 4, "F2: stay"); | ||
1196 | rb->lcd_puts(0, 5, "F3: double down"); | ||
1197 | rb->lcd_puts(0, 6, "PLAY: save/resume"); | ||
1198 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1199 | rb->lcd_puts(0, 7, str); | ||
1200 | #elif CONFIG_KEYPAD == ONDIO_PAD | ||
1201 | rb->lcd_puts(0, 1, "MENU: start"); | ||
1202 | rb->lcd_puts(0, 2, "OFF: exit"); | ||
1203 | rb->lcd_puts(0, 3, "LEFT: hit"); | ||
1204 | rb->lcd_puts(0, 4, "RIGHT: stay"); | ||
1205 | rb->lcd_puts(0, 5, "UP: double down"); | ||
1206 | rb->lcd_puts(0, 6, "DOWN: save/resume"); | ||
1207 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1208 | rb->lcd_puts(0, 7, str); | ||
1209 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | ||
1210 | rb->lcd_puts(0, 2, "PLAY to start & to hit"); | ||
1211 | rb->lcd_puts(0, 3, "STOP to exit"); | ||
1212 | rb->lcd_puts(0, 4, "REC to stay"); | ||
1213 | rb->lcd_puts(0, 5, "NAVI to double down "); | ||
1214 | rb->lcd_puts(0, 6, " & to view highscores"); | ||
1215 | rb->lcd_puts(0, 7, "AB to save/resume"); | ||
1216 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1217 | rb->lcd_puts(0, 8, str); | ||
1218 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | ||
1219 | rb->lcd_puts(0, 2, "PLAY to start & hit"); | ||
1220 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1221 | rb->lcd_puts(0, 4, ">>| to stay"); | ||
1222 | rb->lcd_puts(0, 5, "|<< to double down"); | ||
1223 | rb->lcd_puts(0, 6, "LEFT to view scores"); | ||
1224 | rb->lcd_puts(0, 7, "RIGHT to save/resume"); | ||
1225 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1226 | rb->lcd_puts(0, 8, str); | ||
1227 | 1219 | ||
1228 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | 1220 | while(!breakout) { |
1229 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | 1221 | switch(rb->do_menu(&menu, &selection, NULL, false)) { |
1230 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) | 1222 | case 0: |
1231 | #if LCD_WIDTH >=176 | ||
1232 | rb->lcd_puts(0, 2, "SELECT to start & to hit"); | ||
1233 | rb->lcd_puts(0, 3, "MENU to exit"); | ||
1234 | rb->lcd_puts(0, 4, ">>| to stay & to view highscores"); | ||
1235 | rb->lcd_puts(0, 5, "|<< to double down"); | ||
1236 | rb->lcd_puts(0, 6, "PLAY to save/resume"); | ||
1237 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1238 | rb->lcd_puts(0, 7, str); | ||
1239 | #else | ||
1240 | rb->lcd_puts(0, 2, "SELECT to start & to "); | ||
1241 | rb->lcd_puts(0, 3, " hit"); | ||
1242 | rb->lcd_puts(0, 4, "MENU to exit"); | ||
1243 | rb->lcd_puts(0, 5, ">>| to stay & to view "); | ||
1244 | rb->lcd_puts(0, 6, " highscores"); | ||
1245 | rb->lcd_puts(0, 7, "|<< to double down"); | ||
1246 | rb->lcd_puts(0, 8, "PLAY to save/resume"); | ||
1247 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1248 | rb->lcd_puts(0, 9, str); | ||
1249 | #endif | ||
1250 | #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD | ||
1251 | rb->lcd_puts(0, 2, "PLAY to start to hit"); | ||
1252 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1253 | rb->lcd_puts(0, 4, "SELECT to hit"); | ||
1254 | rb->lcd_puts(0, 5, "REC to stay"); | ||
1255 | rb->lcd_puts(0, 6, "PLAY to double down"); | ||
1256 | rb->lcd_puts(0, 7, "RIGHT to view highscores "); | ||
1257 | rb->lcd_puts(0, 8, "DOWN to save/resume"); | ||
1258 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1259 | rb->lcd_puts(0, 9, str); | ||
1260 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | ||
1261 | rb->lcd_puts(0, 2, "AB to start & to"); | ||
1262 | rb->lcd_puts(0, 3, " stay"); | ||
1263 | rb->lcd_puts(0, 4, "EQ to hit"); | ||
1264 | rb->lcd_puts(0, 5, "PLAY to exit"); | ||
1265 | rb->lcd_puts(0, 6, "CLICK to double down"); | ||
1266 | rb->lcd_puts(0, 7, "& to view highscores"); | ||
1267 | rb->lcd_puts(0, 8, "AB+EQ to save/resume"); | ||
1268 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1269 | rb->lcd_puts(0, 9, str); | ||
1270 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
1271 | rb->lcd_puts(0, 2, "A to start"); | ||
1272 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1273 | rb->lcd_puts(0, 4, "VOL+ to hit"); | ||
1274 | rb->lcd_puts(0, 5, "VOL- to stay"); | ||
1275 | rb->lcd_puts(0, 6, "SELECT to double down"); | ||
1276 | rb->lcd_puts(0, 7, "RIGHT to view highscores "); | ||
1277 | rb->lcd_puts(0, 8, "MENU to save/resume"); | ||
1278 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1279 | rb->lcd_puts(0, 9, str); | ||
1280 | #elif CONFIG_KEYPAD == GIGABEAT_S_PAD | ||
1281 | rb->lcd_puts(0, 2, "PLAY to start"); | ||
1282 | rb->lcd_puts(0, 3, "BACK to exit"); | ||
1283 | rb->lcd_puts(0, 4, "VOL+ to hit"); | ||
1284 | rb->lcd_puts(0, 5, "VOL- to stay"); | ||
1285 | rb->lcd_puts(0, 6, "SELECT to double down"); | ||
1286 | rb->lcd_puts(0, 7, "RIGHT to view highscores "); | ||
1287 | rb->lcd_puts(0, 8, "MENU to save/resume"); | ||
1288 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1289 | rb->lcd_puts(0, 9, str); | ||
1290 | #elif CONFIG_KEYPAD == MROBE100_PAD | ||
1291 | rb->lcd_puts(0, 2, "SELECT to start"); | ||
1292 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1293 | rb->lcd_puts(0, 4, "MENU to hit"); | ||
1294 | rb->lcd_puts(0, 5, "DISPLAY to stay"); | ||
1295 | rb->lcd_puts(0, 6, "DOWN to double down"); | ||
1296 | rb->lcd_puts(0, 7, "RIGHT to view highscores "); | ||
1297 | rb->lcd_puts(0, 8, "PLAY to save/resume"); | ||
1298 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1299 | rb->lcd_puts(0, 9, str); | ||
1300 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) | ||
1301 | rb->lcd_puts(0, 2, "SELECT to start & to hit"); | ||
1302 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1303 | rb->lcd_puts(0, 4, "RIGHT to stay"); | ||
1304 | rb->lcd_puts(0, 5, "LEFT to double down"); | ||
1305 | rb->lcd_puts(0, 6, "REC to save/resume"); | ||
1306 | rb->lcd_puts(0, 7, "UP to view scores"); | ||
1307 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1308 | rb->lcd_puts(0, 8, str); | ||
1309 | #elif (CONFIG_KEYPAD == SANSA_C200_PAD) | ||
1310 | rb->lcd_puts(0, 2, "SELECT to start & to hit"); | ||
1311 | rb->lcd_puts(0, 3, "POWER to exit"); | ||
1312 | rb->lcd_puts(0, 4, "RIGHT to stay"); | ||
1313 | rb->lcd_puts(0, 5, "LEFT to double down"); | ||
1314 | rb->lcd_puts(0, 6, "DOWN to save/resume"); | ||
1315 | rb->lcd_puts(0, 7, "REC to view scores"); | ||
1316 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1317 | rb->lcd_puts(0, 9, str); | ||
1318 | #elif CONFIG_KEYPAD == IAUDIO_M3_PAD | ||
1319 | rb->lcd_puts(0, 2, "PLAY to start & to"); | ||
1320 | rb->lcd_puts(0, 3, " hit"); | ||
1321 | rb->lcd_puts(0, 4, "REC to exit"); | ||
1322 | rb->lcd_puts(0, 5, "FF to stay"); | ||
1323 | rb->lcd_puts(0, 6, "REW to double down"); | ||
1324 | rb->lcd_puts(0, 7, "MODE to save/resume"); | ||
1325 | rb->lcd_puts(0, 8, "MENU to view scores"); | ||
1326 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1327 | rb->lcd_puts(0, 10, str); | ||
1328 | #elif CONFIG_KEYPAD == COWOND2_PAD | ||
1329 | rb->lcd_puts(0, 6, "POWER to exit"); | ||
1330 | rb->lcd_puts(0, 7, "MINUS to double down"); | ||
1331 | rb->lcd_puts(0, 8, "MENU to view scores"); | ||
1332 | rb->snprintf(str, 21, "High Score: $%d", bj->highscores[0]); | ||
1333 | rb->lcd_puts(0, 10, str); | ||
1334 | #endif | ||
1335 | |||
1336 | #ifdef HAVE_TOUCHSCREEN | ||
1337 | rb->lcd_puts(0, 2, "LCD CENTRE to start & to hit"); | ||
1338 | rb->lcd_puts(0, 3, "LCD BOTTOMLEFT to stay"); | ||
1339 | rb->lcd_puts(0, 4, "LCD BOTTOMRIGHT to save/resume"); | ||
1340 | #endif | ||
1341 | } else { | ||
1342 | rb->snprintf(str, 12, "%s", "High Scores"); | ||
1343 | rb->lcd_getstringsize(str, &w, &h); | ||
1344 | rb->lcd_putsxy((LCD_WIDTH-w)/2, 0, str); | ||
1345 | |||
1346 | /* print high scores */ | ||
1347 | for(i=0; i<NUM_SCORES; i++) { | ||
1348 | rb->snprintf(str, 14, "#%02d: $%d", i+1, bj->highscores[i]); | ||
1349 | rb->lcd_puts(0, i+1, str); | ||
1350 | } | ||
1351 | } | ||
1352 | |||
1353 | rb->lcd_update(); | ||
1354 | |||
1355 | /* handle menu button presses */ | ||
1356 | button = rb->button_get(true); | ||
1357 | |||
1358 | switch(button) { | ||
1359 | case BJACK_START: /* start playing */ | ||
1360 | breakout = true; | 1223 | breakout = true; |
1361 | break; | 1224 | break; |
1362 | 1225 | case 1: | |
1363 | case BJACK_QUIT: /* quit program */ | ||
1364 | if(showscores) { | ||
1365 | showscores = 0; | ||
1366 | break; | ||
1367 | } | ||
1368 | return BJ_QUIT; | ||
1369 | |||
1370 | case BJACK_RESUME:/* resume game */ | ||
1371 | if(!blackjack_loadgame(bj)) { | 1226 | if(!blackjack_loadgame(bj)) { |
1372 | rb->splash(HZ*2, "Nothing to resume"); | 1227 | rb->splash(HZ*2, "Nothing to resume"); |
1373 | } else { | 1228 | } else { |
@@ -1375,22 +1230,27 @@ static unsigned int blackjack_menu(struct game_context* bj) { | |||
1375 | breakout = true; | 1230 | breakout = true; |
1376 | } | 1231 | } |
1377 | break; | 1232 | break; |
1378 | 1233 | case 2: | |
1379 | case BJACK_SCORES:/* toggle high scores */ | 1234 | highscore_show(NUM_SCORES, highest, NUM_SCORES, false); |
1380 | showscores = !showscores; | ||
1381 | break; | 1235 | break; |
1382 | 1236 | case 3: | |
1237 | showhelp(); | ||
1238 | break; | ||
1239 | case 4: | ||
1240 | if (playback_control(NULL)) | ||
1241 | return 1; | ||
1242 | break; | ||
1243 | case 5: | ||
1244 | return BJ_QUIT; | ||
1383 | default: | 1245 | default: |
1384 | if(rb->default_event_handler_ex(button, blackjack_callback, | 1246 | if(rb->default_event_handler_ex(button, blackjack_callback, |
1385 | (void*) bj) == SYS_USB_CONNECTED) | 1247 | (void*) bj) == SYS_USB_CONNECTED) |
1386 | return BJ_USB; | 1248 | return BJ_USB; |
1387 | break; | 1249 | break; |
1388 | } | 1250 | } |
1389 | |||
1390 | if(breakout) break; | ||
1391 | } | 1251 | } |
1392 | 1252 | ||
1393 | return(0); | 1253 | return 0; |
1394 | } | 1254 | } |
1395 | 1255 | ||
1396 | /***************************************************************************** | 1256 | /***************************************************************************** |
@@ -1493,7 +1353,7 @@ static int blackjack(struct game_context* bj) { | |||
1493 | button = rb->button_get(true); | 1353 | button = rb->button_get(true); |
1494 | 1354 | ||
1495 | switch(button) { | 1355 | switch(button) { |
1496 | case BJACK_HIT: | 1356 | case BJACK_SELECT: |
1497 | NEXT_CARD = new_card(); | 1357 | NEXT_CARD = new_card(); |
1498 | bj->player_total += NEXT_CARD.value; | 1358 | bj->player_total += NEXT_CARD.value; |
1499 | draw_card(NEXT_CARD, true, player_x, player_y); | 1359 | draw_card(NEXT_CARD, true, player_x, player_y); |
@@ -1520,7 +1380,7 @@ static int blackjack(struct game_context* bj) { | |||
1520 | bj->end_hand = true; | 1380 | bj->end_hand = true; |
1521 | break; | 1381 | break; |
1522 | case BJACK_DOUBLEDOWN: | 1382 | case BJACK_DOUBLEDOWN: |
1523 | if ((signed int)bj->current_bet * 2 < bj->player_money + 1 && | 1383 | if ((signed int)bj->current_bet * 2 < bj->player_money + 1&& |
1524 | bj->num_player_cards[0]==2 && todo==1) { | 1384 | bj->num_player_cards[0]==2 && todo==1) { |
1525 | double_down(bj); | 1385 | double_down(bj); |
1526 | dbl_down = true; | 1386 | dbl_down = true; |
@@ -1529,7 +1389,7 @@ static int blackjack(struct game_context* bj) { | |||
1529 | finish_game(bj); | 1389 | finish_game(bj); |
1530 | } | 1390 | } |
1531 | } | 1391 | } |
1532 | else if((signed int)bj->current_bet * 2 > bj->player_money) { | 1392 | else if((signed int)bj->current_bet * 2 > bj->player_money){ |
1533 | rb->splash(HZ, "Not enough money to double down."); | 1393 | rb->splash(HZ, "Not enough money to double down."); |
1534 | redraw_board(bj); | 1394 | redraw_board(bj); |
1535 | rb->lcd_update(); | 1395 | rb->lcd_update(); |
@@ -1640,8 +1500,6 @@ enum plugin_status plugin_start(const void* parameter) | |||
1640 | { | 1500 | { |
1641 | struct game_context bj; | 1501 | struct game_context bj; |
1642 | bool exit = false; | 1502 | bool exit = false; |
1643 | unsigned int position; | ||
1644 | char str[19]; | ||
1645 | 1503 | ||
1646 | (void)parameter; | 1504 | (void)parameter; |
1647 | 1505 | ||
@@ -1650,7 +1508,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
1650 | #endif | 1508 | #endif |
1651 | 1509 | ||
1652 | /* load high scores */ | 1510 | /* load high scores */ |
1653 | blackjack_loadscores(&bj); | 1511 | highscore_load(HIGH_SCORE,highest,NUM_SCORES); |
1654 | 1512 | ||
1655 | rb->lcd_setfont(FONT_SYSFIXED); | 1513 | rb->lcd_setfont(FONT_SYSFIXED); |
1656 | 1514 | ||
@@ -1662,9 +1520,17 @@ enum plugin_status plugin_start(const void* parameter) | |||
1662 | 1520 | ||
1663 | case BJ_END: | 1521 | case BJ_END: |
1664 | if(!bj.resume) { | 1522 | if(!bj.resume) { |
1665 | if((position = blackjack_recordscore(&bj))) { | 1523 | /* There is no level, so store -1 to blank column */ |
1666 | rb->snprintf(str, 19, "New high score #%d!", position); | 1524 | int position = highscore_update(bj.player_money, -1, "", |
1667 | rb->splash(HZ*2, str); | 1525 | highest, NUM_SCORES); |
1526 | if (position == 0) { | ||
1527 | rb->splash(HZ*2, "New High Score"); | ||
1528 | } | ||
1529 | if (position != -1) { | ||
1530 | highscore_show(position, highest, NUM_SCORES, false); | ||
1531 | bj.dirty=true; | ||
1532 | } else { | ||
1533 | rb->sleep(3); | ||
1668 | } | 1534 | } |
1669 | } | 1535 | } |
1670 | break; | 1536 | break; |
@@ -1675,8 +1541,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
1675 | 1541 | ||
1676 | case BJ_QUIT: | 1542 | case BJ_QUIT: |
1677 | if(bj.dirty) { | 1543 | if(bj.dirty) { |
1678 | rb->splash(HZ, "Saving high scores..."); | 1544 | highscore_save(HIGH_SCORE,highest,NUM_SCORES); |
1679 | blackjack_savescores(&bj); | ||
1680 | } | 1545 | } |
1681 | exit = true; | 1546 | exit = true; |
1682 | break; | 1547 | break; |
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index 916cb01536..e2273c7c87 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c | |||
@@ -898,7 +898,7 @@ static int brickmania_menu(void) | |||
898 | return 1; | 898 | return 1; |
899 | break; | 899 | break; |
900 | case 4: | 900 | case 4: |
901 | highscore_show(NUM_SCORES, highest, NUM_SCORES); | 901 | highscore_show(NUM_SCORES, highest, NUM_SCORES, true); |
902 | break; | 902 | break; |
903 | case 5: | 903 | case 5: |
904 | if (playback_control(NULL)) | 904 | if (playback_control(NULL)) |
@@ -1710,7 +1710,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
1710 | rb->splash(HZ*2, "New High Score"); | 1710 | rb->splash(HZ*2, "New High Score"); |
1711 | } | 1711 | } |
1712 | if (position != -1) { | 1712 | if (position != -1) { |
1713 | highscore_show(position, highest, NUM_SCORES); | 1713 | highscore_show(position, highest, NUM_SCORES, true); |
1714 | } else { | 1714 | } else { |
1715 | brickmania_sleep(3); | 1715 | brickmania_sleep(3); |
1716 | } | 1716 | } |
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c index 64ab258240..d5d9987f68 100644 --- a/apps/plugins/bubbles.c +++ b/apps/plugins/bubbles.c | |||
@@ -2170,7 +2170,7 @@ static void bubbles_recordscore(struct game_context* bb) { | |||
2170 | if (position==0) | 2170 | if (position==0) |
2171 | rb->splash(HZ*2, "New High Score"); | 2171 | rb->splash(HZ*2, "New High Score"); |
2172 | if (position != -1) | 2172 | if (position != -1) |
2173 | highscore_show(position, highscores, NUM_SCORES); | 2173 | highscore_show(position, highscores, NUM_SCORES, true); |
2174 | } | 2174 | } |
2175 | 2175 | ||
2176 | /***************************************************************************** | 2176 | /***************************************************************************** |
@@ -2397,7 +2397,7 @@ static int bubbles(struct game_context* bb) { | |||
2397 | startlevel--; | 2397 | startlevel--; |
2398 | break; | 2398 | break; |
2399 | case 3: /* High scores */ | 2399 | case 3: /* High scores */ |
2400 | highscore_show(NUM_SCORES, highscores, NUM_SCORES); | 2400 | highscore_show(NUM_SCORES, highscores, NUM_SCORES, true); |
2401 | break; | 2401 | break; |
2402 | case 4: /* Playback Control */ | 2402 | case 4: /* Playback Control */ |
2403 | playback_control(NULL); | 2403 | playback_control(NULL); |
diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index 461ef5a58d..5f9ad517ab 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c | |||
@@ -619,7 +619,7 @@ static int clix_menu(struct clix_game_state_t* state, bool ingame) | |||
619 | return 1; | 619 | return 1; |
620 | break; | 620 | break; |
621 | case 3: | 621 | case 3: |
622 | highscore_show(NUM_SCORES, highest, NUM_SCORES); | 622 | highscore_show(NUM_SCORES, highest, NUM_SCORES, true); |
623 | break; | 623 | break; |
624 | case 4: | 624 | case 4: |
625 | playback_control(NULL); | 625 | playback_control(NULL); |
@@ -773,7 +773,7 @@ static int clix_handle_game(struct clix_game_state_t* state) | |||
773 | rb->splash(HZ*2, "New High Score"); | 773 | rb->splash(HZ*2, "New High Score"); |
774 | if (position != -1) | 774 | if (position != -1) |
775 | highscore_show(position, highest, | 775 | highscore_show(position, highest, |
776 | NUM_SCORES); | 776 | NUM_SCORES, true); |
777 | if (clix_menu(state, 0)) | 777 | if (clix_menu(state, 0)) |
778 | return 1; | 778 | return 1; |
779 | break; | 779 | break; |
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 8696328c78..0393a502f0 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c | |||
@@ -1344,7 +1344,7 @@ static int jewels_game_menu(struct game_context* bj, bool ingame) | |||
1344 | return 1; | 1344 | return 1; |
1345 | break; | 1345 | break; |
1346 | case 4: | 1346 | case 4: |
1347 | highscore_show(NUM_SCORES, highest, NUM_SCORES); | 1347 | highscore_show(NUM_SCORES, highest, NUM_SCORES, true); |
1348 | break; | 1348 | break; |
1349 | case 5: | 1349 | case 5: |
1350 | playback_control(NULL); | 1350 | playback_control(NULL); |
@@ -1514,7 +1514,7 @@ static int jewels_main(struct game_context* bj) { | |||
1514 | if (position == 0) | 1514 | if (position == 0) |
1515 | rb->splash(HZ*2, "New High Score"); | 1515 | rb->splash(HZ*2, "New High Score"); |
1516 | if (position != -1) | 1516 | if (position != -1) |
1517 | highscore_show(position, highest, NUM_SCORES); | 1517 | highscore_show(position, highest, NUM_SCORES, true); |
1518 | break; | 1518 | break; |
1519 | case GAME_TYPE_PUZZLE: | 1519 | case GAME_TYPE_PUZZLE: |
1520 | rb->splash(2*HZ, "Game Over"); | 1520 | rb->splash(2*HZ, "Game Over"); |
diff --git a/apps/plugins/lib/highscore.c b/apps/plugins/lib/highscore.c index 909c3a89ef..280c0c7724 100644 --- a/apps/plugins/lib/highscore.c +++ b/apps/plugins/lib/highscore.c | |||
@@ -120,7 +120,7 @@ bool highscore_would_update(int score, struct highscore *scores, | |||
120 | } | 120 | } |
121 | 121 | ||
122 | #ifdef HAVE_LCD_BITMAP | 122 | #ifdef HAVE_LCD_BITMAP |
123 | void highscore_show(int position, struct highscore *scores, int num_scores) | 123 | void highscore_show(int position, struct highscore *scores, int num_scores, bool show_level) |
124 | { | 124 | { |
125 | int i, w, h; | 125 | int i, w, h; |
126 | char str[30]; | 126 | char str[30]; |
@@ -141,7 +141,11 @@ void highscore_show(int position, struct highscore *scores, int num_scores) | |||
141 | } | 141 | } |
142 | rb->lcd_putsxy(LCD_WIDTH/2-w/2, MARGIN, "High Scores"); | 142 | rb->lcd_putsxy(LCD_WIDTH/2-w/2, MARGIN, "High Scores"); |
143 | rb->lcd_putsxy(LCD_WIDTH/4-w/4,2*h, "Score"); | 143 | rb->lcd_putsxy(LCD_WIDTH/4-w/4,2*h, "Score"); |
144 | rb->lcd_putsxy(LCD_WIDTH*3/4-w/4,2*h, "Level"); | 144 | |
145 | /* Decide whether to display the level column or not */ | ||
146 | if(show_level) { | ||
147 | rb->lcd_putsxy(LCD_WIDTH*3/4-w/4,2*h, "Level"); | ||
148 | } | ||
145 | 149 | ||
146 | for (i = 0; i<num_scores; i++) | 150 | for (i = 0; i<num_scores; i++) |
147 | { | 151 | { |
@@ -154,8 +158,13 @@ void highscore_show(int position, struct highscore *scores, int num_scores) | |||
154 | rb->lcd_putsxy (MARGIN,3*h + h*i, str); | 158 | rb->lcd_putsxy (MARGIN,3*h + h*i, str); |
155 | rb->snprintf (str, sizeof (str), "%d", scores[i].score); | 159 | rb->snprintf (str, sizeof (str), "%d", scores[i].score); |
156 | rb->lcd_putsxy (LCD_WIDTH/4-w/4,3*h + h*i, str); | 160 | rb->lcd_putsxy (LCD_WIDTH/4-w/4,3*h + h*i, str); |
157 | rb->snprintf (str, sizeof (str), "%d", scores[i].level); | 161 | |
158 | rb->lcd_putsxy (LCD_WIDTH*3/4-w/4,3*h + h*i, str); | 162 | /* Decide whether to display the level column or not */ |
163 | if(show_level) { | ||
164 | rb->snprintf (str, sizeof (str), "%d", scores[i].level); | ||
165 | rb->lcd_putsxy (LCD_WIDTH*3/4-w/4,3*h + h*i, str); | ||
166 | } | ||
167 | |||
159 | if(i == position) { | 168 | if(i == position) { |
160 | #ifdef HAVE_LCD_COLOR | 169 | #ifdef HAVE_LCD_COLOR |
161 | rb->lcd_set_foreground(LCD_WHITE); | 170 | rb->lcd_set_foreground(LCD_WHITE); |
diff --git a/apps/plugins/lib/highscore.h b/apps/plugins/lib/highscore.h index 173e389b9b..18c14a7662 100644 --- a/apps/plugins/lib/highscore.h +++ b/apps/plugins/lib/highscore.h | |||
@@ -27,7 +27,7 @@ struct highscore | |||
27 | { | 27 | { |
28 | char name[32]; | 28 | char name[32]; |
29 | int score; | 29 | int score; |
30 | int level; | 30 | int level; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | /* Saves the scores to a file | 33 | /* Saves the scores to a file |
@@ -91,6 +91,6 @@ bool highscore_would_update(int score, struct highscore *scores, | |||
91 | * - scores : the array of existing scores | 91 | * - scores : the array of existing scores |
92 | * - num_scores: number of elements in 'scores' | 92 | * - num_scores: number of elements in 'scores' |
93 | */ | 93 | */ |
94 | void highscore_show(int position, struct highscore *scores, int num_scores); | 94 | void highscore_show(int position, struct highscore *scores, int num_scores, bool show_level); |
95 | #endif | 95 | #endif |
96 | #endif | 96 | #endif |
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index d4fc45f754..7ceec16372 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c | |||
@@ -663,7 +663,7 @@ static int spacerocks_menu(bool ingame) | |||
663 | return 1; | 663 | return 1; |
664 | break; | 664 | break; |
665 | case 3: | 665 | case 3: |
666 | highscore_show(NUM_SCORES, highest, NUM_SCORES); | 666 | highscore_show(NUM_SCORES, highest, NUM_SCORES, true); |
667 | break; | 667 | break; |
668 | case 4: | 668 | case 4: |
669 | playback_control(NULL); | 669 | playback_control(NULL); |
@@ -1927,7 +1927,7 @@ static int spacerocks_game_loop(void) | |||
1927 | if (position == 0) | 1927 | if (position == 0) |
1928 | rb->splash(HZ*2, "New High Score"); | 1928 | rb->splash(HZ*2, "New High Score"); |
1929 | if (position != -1) | 1929 | if (position != -1) |
1930 | highscore_show(position, highest, NUM_SCORES); | 1930 | highscore_show(position, highest, NUM_SCORES, true); |
1931 | if (spacerocks_menu(false)!=0) | 1931 | if (spacerocks_menu(false)!=0) |
1932 | return 0; | 1932 | return 0; |
1933 | break; | 1933 | break; |