summaryrefslogtreecommitdiff
path: root/apps/plugins/snake2.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/snake2.c')
-rw-r--r--apps/plugins/snake2.c111
1 files changed, 51 insertions, 60 deletions
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index bae520b9ac..07e3991c3b 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -35,6 +35,17 @@ PLUGIN_HEADER
35#define WIDTH 28 35#define WIDTH 28
36#define HEIGHT 16 36#define HEIGHT 16
37 37
38#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) && (LCD_DEPTH >= 1)
39#include "snake2_header1.h"
40#include "snake2_header2.h"
41#include "snake2_left.h"
42#include "snake2_right.h"
43#include "snake2_bottom.h"
44#define BMPHEIGHT_snake2_header BMPHEIGHT_snake2_header1
45#define BMPWIDTH_snake2_header BMPWIDTH_snake2_header1
46#endif
47
48
38#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) 49#if (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240)
39 #define MULTIPLIER 10 /*Modifier for porting on other screens*/ 50 #define MULTIPLIER 10 /*Modifier for porting on other screens*/
40 #define MODIFIER_1 10 51 #define MODIFIER_1 10
@@ -47,14 +58,6 @@ PLUGIN_HEADER
47 #define TOP_X4 274 /* x-coord of the lowerright item (hi-score) */ 58 #define TOP_X4 274 /* x-coord of the lowerright item (hi-score) */
48 #define TOP_Y1 4 /* y-coord of the top row of items */ 59 #define TOP_Y1 4 /* y-coord of the top row of items */
49 #define TOP_Y2 25 /* y-coord of the bottom row of items */ 60 #define TOP_Y2 25 /* y-coord of the bottom row of items */
50 #define BMPHEIGHT_snake2_header 38
51 #define BMPWIDTH_snake2_header 320
52 #define BMPHEIGHT_snake2_right 192
53 #define BMPWIDTH_snake2_right 10
54 #define BMPHEIGHT_snake2_left 192
55 #define BMPWIDTH_snake2_left 10
56 #define BMPHEIGHT_snake2_bottom 10
57 #define BMPWIDTH_snake2_bottom 320
58#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 168) 61#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 168)
59 #define MULTIPLIER 8 62 #define MULTIPLIER 8
60 #define MODIFIER_1 8 63 #define MODIFIER_1 8
@@ -67,14 +70,6 @@ PLUGIN_HEADER
67 #define TOP_X4 194 70 #define TOP_X4 194
68 #define TOP_Y1 4 71 #define TOP_Y1 4
69 #define TOP_Y2 25 72 #define TOP_Y2 25
70 #define BMPHEIGHT_snake2_header 38
71 #define BMPWIDTH_snake2_header 240
72 #define BMPHEIGHT_snake2_right 120
73 #define BMPWIDTH_snake2_right 10
74 #define BMPHEIGHT_snake2_left 120
75 #define BMPWIDTH_snake2_left 10
76 #define BMPHEIGHT_snake2_bottom 10
77 #define BMPWIDTH_snake2_bottom 240
78#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) 73#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176)
79 #define MULTIPLIER 7 74 #define MULTIPLIER 7
80 #define MODIFIER_1 7 75 #define MODIFIER_1 7
@@ -87,14 +82,6 @@ PLUGIN_HEADER
87 #define TOP_X4 174 82 #define TOP_X4 174
88 #define TOP_Y1 4 83 #define TOP_Y1 4
89 #define TOP_Y2 25 84 #define TOP_Y2 25
90 #define BMPHEIGHT_snake2_header 38
91 #define BMPWIDTH_snake2_header 220
92 #define BMPHEIGHT_snake2_right 128
93 #define BMPWIDTH_snake2_right 10
94 #define BMPHEIGHT_snake2_left 128
95 #define BMPWIDTH_snake2_left 10
96 #define BMPHEIGHT_snake2_bottom 10
97 #define BMPWIDTH_snake2_bottom 220
98#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132) 85#elif (LCD_WIDTH >= 176) && (LCD_HEIGHT >= 132)
99 #define MULTIPLIER 5 86 #define MULTIPLIER 5
100 #define MODIFIER_1 5 87 #define MODIFIER_1 5
@@ -107,14 +94,6 @@ PLUGIN_HEADER
107 #define TOP_X4 130 94 #define TOP_X4 130
108 #define TOP_Y1 4 95 #define TOP_Y1 4
109 #define TOP_Y2 25 96 #define TOP_Y2 25
110 #define BMPHEIGHT_snake2_header 38
111 #define BMPWIDTH_snake2_header 176
112 #define BMPHEIGHT_snake2_right 84
113 #define BMPWIDTH_snake2_right 10
114 #define BMPHEIGHT_snake2_left 84
115 #define BMPWIDTH_snake2_left 10
116 #define BMPHEIGHT_snake2_bottom 10
117 #define BMPWIDTH_snake2_bottom 176
118#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128) 97#elif (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128)
119 #define MULTIPLIER 5 98 #define MULTIPLIER 5
120 #define MODIFIER_1 5 99 #define MODIFIER_1 5
@@ -127,14 +106,6 @@ PLUGIN_HEADER
127 #define TOP_X4 114 106 #define TOP_X4 114
128 #define TOP_Y1 4 107 #define TOP_Y1 4
129 #define TOP_Y2 25 108 #define TOP_Y2 25
130 #define BMPHEIGHT_snake2_header 38
131 #define BMPWIDTH_snake2_header 160
132 #define BMPHEIGHT_snake2_right 80
133 #define BMPWIDTH_snake2_right 10
134 #define BMPHEIGHT_snake2_left 80
135 #define BMPWIDTH_snake2_left 10
136 #define BMPHEIGHT_snake2_bottom 10
137 #define BMPWIDTH_snake2_bottom 160
138#else 109#else
139 #define MULTIPLIER 4 110 #define MULTIPLIER 4
140 #define MODIFIER_1 4 111 #define MODIFIER_1 4
@@ -146,6 +117,8 @@ PLUGIN_HEADER
146 117
147/* variable button definitions */ 118/* variable button definitions */
148#if CONFIG_KEYPAD == RECORDER_PAD 119#if CONFIG_KEYPAD == RECORDER_PAD
120#define SNAKE2_LEFT BUTTON_LEFT
121#define SNAKE2_RIGHT BUTTON_RIGHT
149#define SNAKE2_UP BUTTON_UP 122#define SNAKE2_UP BUTTON_UP
150#define SNAKE2_DOWN BUTTON_DOWN 123#define SNAKE2_DOWN BUTTON_DOWN
151#define SNAKE2_QUIT BUTTON_OFF 124#define SNAKE2_QUIT BUTTON_OFF
@@ -158,6 +131,8 @@ PLUGIN_HEADER
158#define SNAKE2_PLAYPAUSE_TEXT "Play" 131#define SNAKE2_PLAYPAUSE_TEXT "Play"
159 132
160#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 133#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
134#define SNAKE2_LEFT BUTTON_LEFT
135#define SNAKE2_RIGHT BUTTON_RIGHT
161#define SNAKE2_UP BUTTON_UP 136#define SNAKE2_UP BUTTON_UP
162#define SNAKE2_DOWN BUTTON_DOWN 137#define SNAKE2_DOWN BUTTON_DOWN
163#define SNAKE2_QUIT BUTTON_OFF 138#define SNAKE2_QUIT BUTTON_OFF
@@ -170,6 +145,8 @@ PLUGIN_HEADER
170#define SNAKE2_PLAYPAUSE_TEXT "Select" 145#define SNAKE2_PLAYPAUSE_TEXT "Select"
171 146
172#elif CONFIG_KEYPAD == ONDIO_PAD 147#elif CONFIG_KEYPAD == ONDIO_PAD
148#define SNAKE2_LEFT BUTTON_LEFT
149#define SNAKE2_RIGHT BUTTON_RIGHT
173#define SNAKE2_UP BUTTON_UP 150#define SNAKE2_UP BUTTON_UP
174#define SNAKE2_DOWN BUTTON_DOWN 151#define SNAKE2_DOWN BUTTON_DOWN
175#define SNAKE2_QUIT BUTTON_OFF 152#define SNAKE2_QUIT BUTTON_OFF
@@ -182,6 +159,8 @@ PLUGIN_HEADER
182 159
183#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 160#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
184 (CONFIG_KEYPAD == IRIVER_H300_PAD) 161 (CONFIG_KEYPAD == IRIVER_H300_PAD)
162#define SNAKE2_LEFT BUTTON_LEFT
163#define SNAKE2_RIGHT BUTTON_RIGHT
185#define SNAKE2_UP BUTTON_UP 164#define SNAKE2_UP BUTTON_UP
186#define SNAKE2_DOWN BUTTON_DOWN 165#define SNAKE2_DOWN BUTTON_DOWN
187#define SNAKE2_QUIT BUTTON_OFF 166#define SNAKE2_QUIT BUTTON_OFF
@@ -197,6 +176,8 @@ PLUGIN_HEADER
197#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 176#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
198 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 177 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
199 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 178 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
179#define SNAKE2_LEFT BUTTON_LEFT
180#define SNAKE2_RIGHT BUTTON_RIGHT
200#define SNAKE2_UP BUTTON_MENU 181#define SNAKE2_UP BUTTON_MENU
201#define SNAKE2_DOWN BUTTON_PLAY 182#define SNAKE2_DOWN BUTTON_PLAY
202#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU) 183#define SNAKE2_QUIT (BUTTON_SELECT | BUTTON_MENU)
@@ -209,6 +190,8 @@ PLUGIN_HEADER
209#define SNAKE2_PLAYPAUSE_TEXT "Select" 190#define SNAKE2_PLAYPAUSE_TEXT "Select"
210 191
211#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) 192#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
193#define SNAKE2_LEFT BUTTON_LEFT
194#define SNAKE2_RIGHT BUTTON_RIGHT
212#define SNAKE2_UP BUTTON_UP 195#define SNAKE2_UP BUTTON_UP
213#define SNAKE2_DOWN BUTTON_DOWN 196#define SNAKE2_DOWN BUTTON_DOWN
214#define SNAKE2_QUIT BUTTON_POWER 197#define SNAKE2_QUIT BUTTON_POWER
@@ -221,6 +204,8 @@ PLUGIN_HEADER
221#define SNAKE2_PLAYPAUSE_TEXT "Select" 204#define SNAKE2_PLAYPAUSE_TEXT "Select"
222 205
223#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 206#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
207#define SNAKE2_LEFT BUTTON_LEFT
208#define SNAKE2_RIGHT BUTTON_RIGHT
224#define SNAKE2_UP BUTTON_UP 209#define SNAKE2_UP BUTTON_UP
225#define SNAKE2_DOWN BUTTON_DOWN 210#define SNAKE2_DOWN BUTTON_DOWN
226#define SNAKE2_QUIT BUTTON_POWER 211#define SNAKE2_QUIT BUTTON_POWER
@@ -234,6 +219,8 @@ PLUGIN_HEADER
234 219
235#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ 220#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
236(CONFIG_KEYPAD == SANSA_C200_PAD) 221(CONFIG_KEYPAD == SANSA_C200_PAD)
222#define SNAKE2_LEFT BUTTON_LEFT
223#define SNAKE2_RIGHT BUTTON_RIGHT
237#define SNAKE2_UP BUTTON_UP 224#define SNAKE2_UP BUTTON_UP
238#define SNAKE2_DOWN BUTTON_DOWN 225#define SNAKE2_DOWN BUTTON_DOWN
239#define SNAKE2_QUIT BUTTON_POWER 226#define SNAKE2_QUIT BUTTON_POWER
@@ -246,6 +233,8 @@ PLUGIN_HEADER
246#define SNAKE2_PLAYPAUSE_TEXT "Select" 233#define SNAKE2_PLAYPAUSE_TEXT "Select"
247 234
248#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) 235#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
236#define SNAKE2_LEFT BUTTON_LEFT
237#define SNAKE2_RIGHT BUTTON_RIGHT
249#define SNAKE2_UP BUTTON_SCROLL_UP 238#define SNAKE2_UP BUTTON_SCROLL_UP
250#define SNAKE2_DOWN BUTTON_SCROLL_DOWN 239#define SNAKE2_DOWN BUTTON_SCROLL_DOWN
251#define SNAKE2_QUIT BUTTON_POWER 240#define SNAKE2_QUIT BUTTON_POWER
@@ -258,6 +247,8 @@ PLUGIN_HEADER
258#define SNAKE2_PLAYPAUSE_TEXT "FF" 247#define SNAKE2_PLAYPAUSE_TEXT "FF"
259 248
260#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) 249#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
250#define SNAKE2_LEFT BUTTON_LEFT
251#define SNAKE2_RIGHT BUTTON_RIGHT
261#define SNAKE2_UP BUTTON_UP 252#define SNAKE2_UP BUTTON_UP
262#define SNAKE2_DOWN BUTTON_DOWN 253#define SNAKE2_DOWN BUTTON_DOWN
263#define SNAKE2_QUIT BUTTON_BACK 254#define SNAKE2_QUIT BUTTON_BACK
@@ -270,6 +261,8 @@ PLUGIN_HEADER
270#define SNAKE2_PLAYPAUSE_TEXT "Select" 261#define SNAKE2_PLAYPAUSE_TEXT "Select"
271 262
272#elif (CONFIG_KEYPAD == MROBE100_PAD) 263#elif (CONFIG_KEYPAD == MROBE100_PAD)
264#define SNAKE2_LEFT BUTTON_LEFT
265#define SNAKE2_RIGHT BUTTON_RIGHT
273#define SNAKE2_UP BUTTON_UP 266#define SNAKE2_UP BUTTON_UP
274#define SNAKE2_DOWN BUTTON_DOWN 267#define SNAKE2_DOWN BUTTON_DOWN
275#define SNAKE2_QUIT BUTTON_POWER 268#define SNAKE2_QUIT BUTTON_POWER
@@ -281,6 +274,20 @@ PLUGIN_HEADER
281#define SNAKE2_PLAYPAUSE BUTTON_SELECT 274#define SNAKE2_PLAYPAUSE BUTTON_SELECT
282#define SNAKE2_PLAYPAUSE_TEXT "Select" 275#define SNAKE2_PLAYPAUSE_TEXT "Select"
283 276
277#elif CONFIG_KEYPAD == IAUDIO_M3_PAD
278#define SNAKE2_LEFT BUTTON_RC_REW
279#define SNAKE2_RIGHT BUTTON_RC_FF
280#define SNAKE2_UP BUTTON_RC_VOL_UP
281#define SNAKE2_DOWN BUTTON_RC_VOL_DOWN
282#define SNAKE2_QUIT BUTTON_RC_REC
283#define SNAKE2_LEVEL_UP BUTTON_RC_VOL_UP
284#define SNAKE2_LEVEL_DOWN BUTTON_RC_VOL_DOWN
285#define SNAKE2_MAZE_NEXT BUTTON_RC_FF
286#define SNAKE2_MAZE_LAST BUTTON_RC_REW
287#define SNAKE2_SELECT_TYPE BUTTON_RC_MODE
288#define SNAKE2_PLAYPAUSE BUTTON_RC_PLAY
289#define SNAKE2_PLAYPAUSE_TEXT "Play"
290
284#else 291#else
285#error No keymap defined! 292#error No keymap defined!
286#endif 293#endif
@@ -314,22 +321,6 @@ static int game_b_level=0;
314static int applecount=0; 321static int applecount=0;
315static char phscore[30]; 322static char phscore[30];
316 323
317#if (LCD_WIDTH >= 160) && (LCD_HEIGHT >= 128)
318#ifdef HAVE_LCD_COLOR
319extern const unsigned short snake2_header1[];
320extern const unsigned short snake2_header2[];
321extern const unsigned short snake2_left[];
322extern const unsigned short snake2_right[];
323extern const unsigned short snake2_bottom[];
324#else
325extern const unsigned char snake2_header1[];
326extern const unsigned char snake2_header2[];
327extern const unsigned char snake2_left[];
328extern const unsigned char snake2_right[];
329extern const unsigned char snake2_bottom[];
330#endif
331#endif
332
333#define NORTH 1 324#define NORTH 1
334#define EAST 2 325#define EAST 2
335#define SOUTH 4 326#define SOUTH 4
@@ -1196,8 +1187,8 @@ void game (void)
1196 if (dir != SOUTH) set_direction(NORTH); 1187 if (dir != SOUTH) set_direction(NORTH);
1197 break; 1188 break;
1198 1189
1199 case BUTTON_RIGHT: 1190 case SNAKE2_RIGHT:
1200 case BUTTON_RIGHT | BUTTON_REPEAT: 1191 case SNAKE2_RIGHT | BUTTON_REPEAT:
1201 if (dir != WEST) set_direction(EAST); 1192 if (dir != WEST) set_direction(EAST);
1202 break; 1193 break;
1203 1194
@@ -1206,8 +1197,8 @@ void game (void)
1206 if (dir != NORTH) set_direction(SOUTH); 1197 if (dir != NORTH) set_direction(SOUTH);
1207 break; 1198 break;
1208 1199
1209 case BUTTON_LEFT: 1200 case SNAKE2_LEFT:
1210 case BUTTON_LEFT | BUTTON_REPEAT: 1201 case SNAKE2_LEFT | BUTTON_REPEAT:
1211 if (dir != EAST) set_direction(WEST); 1202 if (dir != EAST) set_direction(WEST);
1212 break; 1203 break;
1213 1204