1 /* $Id: paths.c,v 1.2 1998/04/30 05:11:57 mrogre Exp $ */
2 /* Copyright (c) 1998 Joe Rumsey (mrogre@mediaone.net) */
3 #include "copyright.h"
4 #include <config.h>
5
6 #include "struct.h"
7 #include "defs.h"
8 #include "paths.h"
9 #include "data.h"
10 #include "proto.h"
11
12 #define MAXPATH 50
13
14 int paths[NUMPATHS][MAXPATH][2] = {
15 { /* PEELLEFT = 0*/
16 0, 3,
17 15,3,
18 14,3,
19 13,3,
20 12,3,
21 11,3,
22 10,3,
23 9,3,
24 8,3,
25 -1,-1,
26 },
27 { /* PEELRIGHT = 1 */
28 0,3,
29 1,3,
30 2,3,
31 3,3,
32 4,3,
33 5,3,
34 6,3,
35 7,3,
36 8,3,
37 -1,-1,
38 },
39 { /* LOOP = 2 */
40 8,2,
41 9,2,
42 10,2,
43 11,2,
44 12,2,
45 13,2,
46 14,2,
47 15,2,
48 0,2,
49 1,2,
50 2,2,
51 3,2,
52 4,2,
53 5,2,
54 6,2,
55 7,2,
56 8,2,
57 -1,-1,
58 },
59 { /* SWOOP1 = 3 */
60 8,20,
61 9,3,
62 10,3,
63 11,3,
64 12,3,
65 -1,-1,
66 },
67 { /* SWOOP2 = 4 */
68 8,20,
69 7,3,
70 6,3,
71 5,3,
72 4,3,
73 -1,-1,
74 },
75 { /* ZIGZAG = 5 */
76 7,15, 8,2,
77 9,15, 8,2,
78 7,15, 8,2,
79 9,15, 8,2,
80 -1,-1,
81 },
82 { /* LOOP2 = 6 */
83 8,2, 7,2, 6,2, 5,2, 4,2, 3,2, 2,2, 1,2, 0,2, 15,2, 14,2, 13,2, 12,2, 11,2, 10,2, 9,2, 8,2,
84 -1,-1,
85 },
86 { /* SPIN = 7 */
87 8,1, 7,1, 6,1, 5,1, 4,1, 3,1, 2,1, 1,1, 0,1, 15,1, 14,1, 13,1, 12,1, 11,1, 10,1, 9,1, 8,1,
88 -1,-1,
89 },
90 { /* LEFTDIAG */
91 8,2,
92 9,2,
93 10,30,
94 9,2,
95 8,1,
96 -1,-1,
97 },
98 { /* RIGHTDIAG */
99 8,2,
100 7,2,
101 6,30,
102 7,2,
103 8,1,
104 -1,-1,
105 },
106 { /* ENTER1 */
107 8,65, 9,5, 10,5, 11,5, 12,5, 13,5, 14,20, -1,-1,
108 },
109 { /* ENTER2 */
110 8,65, 7,5, 6,5, 5,5, 4,5, 3,5, 2,20, -1,-1,
111 },
112 /* ENTER3 */
113 {-1,-1},
114 /* ENTER4 */
115 { 10,45, 11,5, 12,20, 13,5, 14,10, -1,-1, },
116 /* ENTER5 */
117 { 6,45, 5,5, 4,20, 3,5, 2,10, -1,-1, },
118 /* ENTER6 */
119 { 8,80, 6,10, 4,40, 0,20, 14,30, -1,-1},
120 /* ENTER7 */
121 { 8,80, 10,10, 12,40, 0,20, 2,30, -1,-1},
122 /* ENTER8 */
123 { 0,50, 2,50, 3,5, 4,5, 5,5, 6,5, 7,5, 8,5, 9,5, 10,5, 11,5, 12,30, 13,5, 14,5, 15,5, 0,5, -1,-1},
124 /* ENTER9 */
125 { 0,50, 14,50, 13,5, 12,5, 11,5, 10,5, 9,5, 8,5, 7,5, 6,5, 5,5, 4,30, 3,5, 2,5, 1,5, 0,5, -1,-1},
126 /* ENTER10 */
127 { 4,80, 10,30, 0,70, -1,-1 },
128 /* ENTER11 */
129 { 12,80, 6,30, 0,70, -1,-1 },
130 /* ENTER12 */
131 { 14,80, -1, -1},
132 /* ENTER13 */
133 { 2,80, -1,-1},
134 /* ENTER14 */
135 { 4,8, 3,6, 2,8, 1,10, 2,8, 3,6, 4,4, 5,6, 6,8, 7,10, 6,8, 5,6, 4,4, 3,6, 2,8, 1,10, 0,20, -1,-1},
136 /* 15 */
137 { 12,60, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,3,
138 15,3, 14,3, 13,3, 12,3, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,3,
139 15,3, 14,3, 13,3, 12,3, 11,3, 10,3, 9,3, 8,3, 7,3, 6,3, 5,3, 4,3, 3,3, 2,3, 1,3, 0,20, -1,-1},
140 /* 16 */
141 { 4,60, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,3,
142 1,3, 2,3, 3,3, 4,3, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,3,
143 1,3, 2,3, 3,3, 4,3, 5,3, 6,3, 7,3, 8,3, 9,3, 10,3, 11,3, 12,3, 13,3, 14,3, 15,3, 0,20, -1, -1},
144 /* 17 */
145 {
146 7,15, 8,3,
147 9,15, 8,3,
148 7,15, 8,3,
149 9,15, 8,3,
150 7,15, 8,3,
151 9,15, 8,3,
152 -1,-1,
153 },
154 /* 18 */
155 { 12,60, 4,30, 12,30, 4,30, 12,30, 8,20, -1,-1 },
156 /* 19 */
157 { 10,80, -1,-1, },
158 /* 20 */
159 { 6,80, -1,-1, },
160 };
161
162 /* These aren't used anymore! (see filepath.c) Maybe we should nuke them? */
163 #if 0
164 /* enter_paths are for new ships. consists of starting co-ordinates, number of frames
165 to wait at the start (presumably offscreen) and a path to follow.
166 path -1 means this ship is not used on this level
167 at end of path, ship flies into convoy position on it's own from wherever it winds up
168 */
169
170 /* Not that anyone else is likely to touch this mess, but if you do, I highly recommend doing it
171 in emacs M-x picture-mode. */
172
173 /* Well, (says gc918206@gbar.dtu.dk (Martin Eskildsen)) I touched... ;-)
174 * The problem with the previous implementation was that it relied on the manifest
175 * constants WINWIDTH and WINHEIGHT being 400 and 500, respectively (they are in file
176 * defs.h) which caused some of the aliens to start on-screen instead of off-screen
177 * if you tried to enlarge the window by changing the constants (it's somewhat small
178 * on my 14 inch monitor otherwise).
179 * I therefore made a couple of scaling macros, below, and applied them to all X- and
180 * Y coordinates (it took only one, admittedly, big and ugly emacs macro to do this :-).
181 */
182 #define SX(n) ((WINWIDTH*(n))/400)
183 #define SY(n) ((WINHEIGHT*(n))/500)
184
185 struct enter_path ep[NUMLEVELS][MAXALIENS] = {
186 {
187 { 0, SX(-1), SY(-1), -1, -1},
188 { 0, SX(-1), SY(-1), -1, -1},
189 { 0, SX(-1), SY(-1), -1, -1},
190 { 0, SX(200), SY(-30), 435, P_ENTER1 },
191 { 0, SX(-1), SY(-1), -1, -1},
192 { 0, SX(-1), SY(-1), -1, -1},
193 { 0, SX(200), SY(-30), 430, P_ENTER2 },
194 { 0, SX(-1), SY(-1), -1, -1},
195 { 0, SX(-1), SY(-1), -1, -1},
196 { 0, SX(-1), SY(-1), -1, -1},
197
198 { 1, SX(-1), SY(-1), -1, -1},
199 { 1, SX(-1), SY(-1), -1, -1},
200 { 1, SX(200), SY(-30),425, P_ENTER1 },
201 { 1, SX(200), SY(-30),420, P_ENTER2 },
202 { 1, SX(200), SY(-30),415, P_ENTER1 },
203 { 1, SX(200), SY(-30),410, P_ENTER2 },
204 { 1, SX(200), SY(-30),405, P_ENTER1 },
205 { 1, SX(200), SY(-30),400, P_ENTER2 },
206 { 1, SX(-1), SY(-1), -1, -1},
207 { 1, SX(-1), SY(-1), -1, -1},
208
209 { 2, SX(200), SY(-30),345, P_ENTER1 },
210 { 2, SX(200), SY(-30),340,P_ENTER2 },
211 { 2, SX(200), SY(-30),335, P_ENTER1 },
212 { 2, SX(200), SY(-30),330, P_ENTER2 },
213 { 2, SX(200), SY(-30),325, P_ENTER1 },
214 { 2, SX(200), SY(-30),320, P_ENTER2 },
215 { 2, SX(200), SY(-30),315, P_ENTER1 },
216 { 2, SX(200), SY(-30),310, P_ENTER2 },
217 { 2, SX(200), SY(-30),305, P_ENTER1 },
218 { 2, SX(200), SY(-30),300, P_ENTER2 },
219
220 { 3, SX(200), SY(-30),245, P_ENTER1 },
221 { 3, SX(200), SY(-30),240, P_ENTER2 },
222 { 3, SX(200), SY(-30),235, P_ENTER1 },
223 { 3, SX(200), SY(-30),230, P_ENTER2 },
224 { 3, SX(200), SY(-30),225, P_ENTER1 },
225 { 3, SX(200), SY(-30),220, P_ENTER2 },
226 { 3, SX(200), SY(-30),215, P_ENTER1 },
227 { 3, SX(200), SY(-30),210, P_ENTER2 },
228 { 3, SX(200), SY(-30),205, P_ENTER1 },
229 { 3, SX(200), SY(-30),200, P_ENTER2 },
230
231 { 4, SX(200), SY(-30),145, P_ENTER1 },
232 { 4, SX(200), SY(-30),140, P_ENTER2 },
233 { 4, SX(200), SY(-30),135, P_ENTER1 },
234 { 4, SX(200), SY(-30),130, P_ENTER2 },
235 { 4, SX(200), SY(-30),125, P_ENTER1 },
236 { 4, SX(200), SY(-30),120, P_ENTER2 },
237 { 4, SX(200), SY(-30),115, P_ENTER1 },
238 { 4, SX(200), SY(-30),110, P_ENTER2 },
239 { 4, SX(200), SY(-30),105, P_ENTER1 },
240 { 4, SX(200), SY(-30),100, P_ENTER2 },
241
242 { 5, SX(200), SY(-30), 50, P_ENTER1 },
243 { 5, SX(200), SY(-30), 45, P_ENTER2 },
244 { 5, SX(200), SY(-30), 40, P_ENTER1 },
245 { 5, SX(200), SY(-30), 35, P_ENTER2 },
246 { 5, SX(200), SY(-30), 30, P_ENTER1 },
247 { 5, SX(200), SY(-30), 25, P_ENTER2 },
248 { 5, SX(200), SY(-30), 20, P_ENTER1 },
249 { 5, SX(200), SY(-30), 15, P_ENTER2 },
250 { 5, SX(200), SY(-30), 10, P_ENTER1 },
251 { 5, SX(200), SY(-30), 5, P_ENTER2 },
252
253 },
254 {
255 { 0, SX( -1), SY( -1), -1, -1},
256 { 0, SX( -1), SY( -1), -1, -1},
257 { 0, SX( -1), SY( -1), -1, -1},
258 { 0, SX(200), SY( -30), 435, P_ENTER1 },
259 { 0, SX( -1), SY( -1), -1, -1},
260 { 0, SX( -1), SY( -1), -1, -1},
261 { 0, SX(200), SY( -30), 430, P_ENTER2 },
262 { 0, SX( -1), SY( -1), -1, -1},
263 { 0, SX( -1), SY( -1), -1, -1},
264 { 0, SX( -1), SY( -1), -1, -1},
265
266 { 1, SX( -1), SY( -1), -1, -1},
267 { 1, SX( -1), SY( -1), -1, -1},
268 { 1, SX(200), SY( -30), 425, P_ENTER1 },
269 { 1, SX(200), SY( -30), 420, P_ENTER2 },
270 { 1, SX(200), SY( -30), 415, P_ENTER1 },
271 { 1, SX(200), SY( -30), 410, P_ENTER2 },
272 { 1, SX(200), SY( -30), 405, P_ENTER1 },
273 { 1, SX(200), SY( -30), 400, P_ENTER2 },
274 { 1, SX( -1), SY( -1), -1, -1},
275 { 1, SX( -1), SY( -1), -1, -1},
276
277 { 2, SX(410), SY( 125), 345, P_ENTER4 },
278 { 2, SX(410), SY( 125), 340, P_ENTER4 },
279 { 2, SX(410), SY( 125), 335, P_ENTER4 },
280 { 2, SX(410), SY( 125), 330, P_ENTER4 },
281 { 2, SX(410), SY( 125), 325, P_ENTER4 },
282 { 2, SX(410), SY( 125), 320, P_ENTER4 },
283 { 2, SX(410), SY( 125), 315, P_ENTER4 },
284 { 2, SX(410), SY( 125), 310, P_ENTER4 },
285 { 2, SX(410), SY( 125), 305, P_ENTER4 },
286 { 2, SX(410), SY( 125), 300, P_ENTER4 },
287
288 { 3, SX(-30), SY( 125), 245, P_ENTER5 },
289 { 3, SX(-30), SY( 125), 240, P_ENTER5 },
290 { 3, SX(-30), SY( 125), 235, P_ENTER5 },
291 { 3, SX(-30), SY( 125), 230, P_ENTER5 },
292 { 3, SX(-30), SY( 125), 225, P_ENTER5 },
293 { 3, SX(-30), SY( 125), 220, P_ENTER5 },
294 { 3, SX(-30), SY( 125), 215, P_ENTER5 },
295 { 3, SX(-30), SY( 125), 210, P_ENTER5 },
296 { 3, SX(-30), SY( 125), 205, P_ENTER5 },
297 { 3, SX(-30), SY( 125), 200, P_ENTER5 },
298
299 { 4, SX(410), SY( 125), 145, P_ENTER4 },
300 { 4, SX(410), SY( 125), 140, P_ENTER4 },
301 { 4, SX(410), SY( 125), 135, P_ENTER4 },
302 { 4, SX(410), SY( 125), 130, P_ENTER4 },
303 { 4, SX(410), SY( 125), 125, P_ENTER4 },
304 { 4, SX(410), SY( 125), 120, P_ENTER4 },
305 { 4, SX(410), SY( 125), 115, P_ENTER4 },
306 { 4, SX(410), SY( 125), 110, P_ENTER4 },
307 { 4, SX(410), SY( 125), 105, P_ENTER4 },
308 { 4, SX(410), SY( 125), 100, P_ENTER4 },
309
310 { 6, SX(-30), SY( 125), 50, P_ENTER5 },
311 { 6, SX(-30), SY( 125), 45, P_ENTER5 },
312 { 6, SX(-30), SY( 125), 40, P_ENTER5 },
313 { 6, SX(-30), SY( 125), 35, P_ENTER5 },
314 { 6, SX(-30), SY( 125), 30, P_ENTER5 },
315 { 6, SX(-30), SY( 125), 25, P_ENTER5 },
316 { 6, SX(-30), SY( 125), 20, P_ENTER5 },
317 { 6, SX(-30), SY( 125), 15, P_ENTER5 },
318 { 6, SX(-30), SY( 125), 10, P_ENTER5 },
319 { 6, SX(-30), SY( 125), 5, P_ENTER5 },
320
321 },
322 { /* level 3*/
323 { 0, SX( -1), SY( -1), -1, -1},
324 { 0, SX( -1), SY( -1), -1, -1},
325 { 0, SX( -1), SY( -1), -1, -1},
326 { 0, SX(-30), SY( 125), 405, P_ENTER5 },
327 { 0, SX( -1), SY( -1), -1, -1},
328 { 0, SX( -1), SY( -1), -1, -1},
329 { 0, SX(-30), SY( 125), 400, P_ENTER5 },
330 { 0, SX( -1), SY( -1), -1, -1},
331 { 0, SX( -1), SY( -1), -1, -1},
332 { 0, SX( -1), SY( -1), -1, -1},
333
334 { 1, SX( -1), SY( -1), -1, -1},
335 { 1, SX( -1), SY( -1), -1, -1},
336 { 1, SX(-30), SY( 125), 435, P_ENTER5 },
337 { 1, SX(-30), SY( 125), 430, P_ENTER5 },
338 { 1, SX(-30), SY( 125), 425, P_ENTER5 },
339 { 1, SX(-30), SY( 125), 420, P_ENTER5 },
340 { 1, SX(-30), SY( 125), 415, P_ENTER5 },
341 { 1, SX(-30), SY( 125), 410, P_ENTER5 },
342 { 1, SX( -1), SY( -1), -1, -1},
343 { 1, SX( -1), SY( -1), -1, -1},
344
345 { 2, SX(100), SY( -30), 345, P_ENTER6 },
346 { 2, SX(300), SY( -30), 340, P_ENTER7 },
347 { 2, SX(100), SY( -30), 335, P_ENTER6 },
348 { 2, SX(300), SY( -30), 330, P_ENTER7 },
349 { 2, SX(100), SY( -30), 325, P_ENTER6 },
350 { 2, SX(300), SY( -30), 320, P_ENTER7 },
351 { 2, SX(100), SY( -30), 315, P_ENTER6 },
352 { 2, SX(300), SY( -30), 310, P_ENTER7 },
353 { 2, SX(100), SY( -30), 305, P_ENTER6 },
354 { 2, SX(300), SY( -30), 300, P_ENTER7 },
355 /*--*/ { 6, SX(100), SY( -30), 245, P_ENTER6 },
356 { 6, SX(300), SY( -30), 240, P_ENTER7 },
357 { 6, SX(100), SY( -30), 235, P_ENTER6 },
358 { 6, SX(300), SY( -30), 230, P_ENTER7 },
359 { 6, SX(100), SY( -30), 225, P_ENTER6 },
360 { 6, SX(300), SY( -30), 220, P_ENTER7 },
361 { 6, SX(100), SY( -30), 215, P_ENTER6 },
362 { 6, SX(300), SY( -30), 210, P_ENTER7 },
363 { 6, SX(100), SY( -30), 205, P_ENTER6 },
364 { 6, SX(300), SY( -30), 200, P_ENTER7 },
365 /*--*/ { 7, SX(100), SY( -30), 145, P_ENTER6 },
366 { 7, SX(300), SY( -30), 140, P_ENTER7 },
367 { 7, SX(100), SY( -30), 135, P_ENTER6 },
368 { 7, SX(300), SY( -30), 130, P_ENTER7 },
369 { 7, SX(100), SY( -30), 125, P_ENTER6 },
370 { 7, SX(300), SY( -30), 120, P_ENTER7 },
371 { 7, SX(100), SY( -30), 115, P_ENTER6 },
372 { 7, SX(300), SY( -30), 110, P_ENTER7 },
373 { 7, SX(100), SY( -30), 105, P_ENTER6 },
374 { 7, SX(300), SY( -30), 100, P_ENTER7 },
375 /*--*/ { 7, SX(100), SY( -30), 45, P_ENTER6 },
376 { 7, SX(300), SY( -30), 40, P_ENTER7 },
377 { 7, SX(100), SY( -30), 35, P_ENTER6 },
378 { 7, SX(300), SY( -30), 30, P_ENTER7 },
379 { 7, SX(100), SY( -30), 25, P_ENTER6 },
380 { 7, SX(300), SY( -30), 20, P_ENTER7 },
381 { 7, SX(100), SY( -30), 15, P_ENTER6 },
382 { 7, SX(300), SY( -30), 10, P_ENTER7 },
383 { 7, SX(100), SY( -30), 5, P_ENTER6 },
384 { 7, SX(300), SY( -30), 0, P_ENTER7 },
385
386 },
387 { /*level 4*/
388 { 0, SX( -1), SY( -1), -1, -1},
389 { 0, SX( -1), SY( -1), -1, -1},
390 { 0, SX( -1), SY( -1), -1, -1},
391 { 0, SX(100), SY( 530), 405, P_ENTER8 },
392 { 0, SX( -1), SY( -1), -1, -1},
393 { 0, SX( -1), SY( -1), -1, -1},
394 { 0, SX(100), SY( 530), 400, P_ENTER8 },
395 { 0, SX( -1), SY( -1), -1, -1},
396 { 0, SX( -1), SY( -1), -1, -1},
397 { 0, SX( -1), SY( -1), -1, -1},
398
399 { 1, SX( -1), SY( -1), -1, -1},
400 { 1, SX( -1), SY( -1), -1, -1},
401 { 1, SX(100), SY( 530), 435, P_ENTER8 },
402 { 1, SX(100), SY( 530), 430, P_ENTER8 },
403 { 1, SX(100), SY( 530), 425, P_ENTER8 },
404 { 1, SX(100), SY( 530), 420, P_ENTER8 },
405 { 1, SX(100), SY( 530), 415, P_ENTER8 },
406 { 1, SX(100), SY( 530), 410, P_ENTER8 },
407 { 1, SX( -1), SY( -1), -1, -1},
408 { 1, SX( -1), SY( -1), -1, -1},
409
410 { 2, SX(430), SY( 530), 345, P_ENTER12},
411 { 2, SX(430), SY( 530), 340, P_ENTER12},
412 { 2, SX(430), SY( 530), 335, P_ENTER12},
413 { 2, SX(430), SY( 530), 330, P_ENTER12},
414 { 2, SX(430), SY( 530), 325, P_ENTER12},
415 { 2, SX(430), SY( 530), 320, P_ENTER12},
416 { 2, SX(430), SY( 530), 315, P_ENTER12},
417 { 2, SX(430), SY( 530), 310, P_ENTER12},
418 { 2, SX(430), SY( 530), 305, P_ENTER12},
419 { 2, SX(430), SY( 530), 300, P_ENTER12},
420 /*--*/ { 3, SX(-30), SY( 530), 245, P_ENTER13},
421 { 3, SX(-30), SY( 530), 240, P_ENTER13},
422 { 3, SX(-30), SY( 530), 235, P_ENTER13},
423 { 3, SX(-30), SY( 530), 230, P_ENTER13},
424 { 3, SX(-30), SY( 530), 225, P_ENTER13},
425 { 3, SX(-30), SY( 530), 220, P_ENTER13},
426 { 3, SX(-30), SY( 530), 215, P_ENTER13},
427 { 3, SX(-30), SY( 530), 210, P_ENTER13},
428 { 3, SX(-30), SY( 530), 205, P_ENTER13},
429 { 3, SX(-30), SY( 530), 200, P_ENTER13},
430 /*--*/ { 7, SX(-30), SY( 250), 145, P_ENTER16},
431 { 7, SX(-30), SY( 250), 140, P_ENTER16},
432 { 7, SX(-30), SY( 250), 135, P_ENTER16},
433 { 7, SX(-30), SY( 250), 130, P_ENTER16},
434 { 7, SX(-30), SY( 250), 125, P_ENTER16},
435 { 7, SX(-30), SY( 250), 120, P_ENTER16},
436 { 7, SX(-30), SY( 250), 115, P_ENTER16},
437 { 7, SX(-30), SY( 250), 110, P_ENTER16},
438 { 7, SX(-30), SY( 250), 105, P_ENTER16},
439 { 7, SX(-30), SY( 250), 100, P_ENTER16},
440 /*--*/ { 7, SX(430), SY( 250), 45, P_ENTER15},
441 { 7, SX(430), SY( 250), 40, P_ENTER15},
442 { 7, SX(430), SY( 250), 35, P_ENTER15},
443 { 7, SX(430), SY( 250), 30, P_ENTER15},
444 { 7, SX(430), SY( 250), 25, P_ENTER15},
445 { 7, SX(430), SY( 250), 20, P_ENTER15},
446 { 7, SX(430), SY( 250), 15, P_ENTER15},
447 { 7, SX(430), SY( 250), 10, P_ENTER15},
448 { 7, SX(430), SY( 250), 5, P_ENTER15},
449 { 7, SX(430), SY( 250), 0, P_ENTER15},
450
451 },
452 { /*level 5*/
453 { 0, SX( -1), SY( -1), -1, -1},
454 { 0, SX( -1), SY( -1), -1, -1},
455 { 0, SX( -1), SY( -1), -1, -1},
456 { 0, SX(100), SY( 530), 405, P_ENTER8 },
457 { 0, SX( -1), SY( -1), -1, -1},
458 { 0, SX( -1), SY( -1), -1, -1},
459 { 0, SX(100), SY( 530), 400, P_ENTER8 },
460 { 0, SX( -1), SY( -1), -1, -1},
461 { 0, SX( -1), SY( -1), -1, -1},
462 { 0, SX( -1), SY( -1), -1, -1},
463
464 { 1, SX( -1), SY( -1), -1, -1},
465 { 1, SX( -1), SY( -1), -1, -1},
466 { 1, SX(100), SY( 530), 435, P_ENTER8 },
467 { 1, SX(100), SY( 530), 430, P_ENTER8 },
468 { 1, SX(100), SY( 530), 425, P_ENTER8 },
469 { 1, SX(100), SY( 530), 420, P_ENTER8 },
470 { 1, SX(100), SY( 530), 415, P_ENTER8 },
471 { 1, SX(100), SY( 530), 410, P_ENTER8 },
472 { 1, SX( -1), SY( -1), -1, -1},
473 { 1, SX( -1), SY( -1), -1, -1},
474
475 { 2, SX(430), SY( 530), 345, P_ENTER12},
476 { 2, SX(430), SY( 530), 340, P_ENTER12},
477 { 2, SX(430), SY( 530), 335, P_ENTER12},
478 { 2, SX(430), SY( 530), 330, P_ENTER12},
479 { 2, SX(430), SY( 530), 325, P_ENTER12},
480 { 2, SX(430), SY( 530), 320, P_ENTER12},
481 { 2, SX(430), SY( 530), 315, P_ENTER12},
482 { 2, SX(430), SY( 530), 310, P_ENTER12},
483 { 2, SX(430), SY( 530), 305, P_ENTER12},
484 { 2, SX(430), SY( 530), 300, P_ENTER12},
485 /*--*/ { 3, SX(-30), SY( 530), 245, P_ENTER13},
486 { 3, SX(-30), SY( 530), 240, P_ENTER13},
487 { 3, SX(-30), SY( 530), 235, P_ENTER13},
488 { 3, SX(-30), SY( 530), 230, P_ENTER13},
489 { 3, SX(-30), SY( 530), 225, P_ENTER13},
490 { 3, SX(-30), SY( 530), 220, P_ENTER13},
491 { 3, SX(-30), SY( 530), 215, P_ENTER13},
492 { 3, SX(-30), SY( 530), 210, P_ENTER13},
493 { 3, SX(-30), SY( 530), 205, P_ENTER13},
494 { 3, SX(-30), SY( 530), 200, P_ENTER13},
495 /*--*/ { 7, SX(100), SY( 530), 140, P_ENTER8 },
496 { 7, SX(300), SY( 530), 140, P_ENTER9 },
497 { 7, SX(100), SY( 530), 130, P_ENTER8 },
498 { 7, SX(300), SY( 530), 130, P_ENTER9 },
499 { 7, SX(100), SY( 530), 120, P_ENTER8 },
500 { 7, SX(300), SY( 530), 120, P_ENTER9 },
501 { 7, SX(100), SY( 530), 110, P_ENTER8 },
502 { 7, SX(300), SY( 530), 110, P_ENTER9 },
503 { 7, SX(100), SY( 530), 100, P_ENTER8 },
504 { 7, SX(300), SY( 530), 100, P_ENTER9 },
505 /*--*/ { 7, SX(200), SY( -30), 45, P_ENTER1 },
506 { 7, SX(200), SY( -30), 40, P_ENTER2 },
507 { 7, SX(200), SY( -30), 35, P_ENTER1 },
508 { 7, SX(200), SY( -30), 30, P_ENTER2 },
509 { 7, SX(200), SY( -30), 25, P_ENTER1 },
510 { 7, SX(200), SY( -30), 20, P_ENTER2 },
511 { 7, SX(200), SY( -30), 15, P_ENTER1 },
512 { 7, SX(200), SY( -30), 10, P_ENTER2 },
513 { 7, SX(200), SY( -30), 5, P_ENTER1 },
514 { 7, SX(200), SY( -30), 0, P_ENTER2 },
515
516 },
517 { /*level 6*/
518 { 0, SX( -1), SY( -1), -1, -1},
519 { 0, SX( -1), SY( -1), -1, -1},
520 { 0, SX( -1), SY( -1), -1, -1},
521 { 0, SX(-30), SY( 350), 405, P_ENTER14},
522 { 0, SX( -1), SY( -1), -1, -1},
523 { 0, SX( -1), SY( -1), -1, -1},
524 { 0, SX(-30), SY( 350), 400, P_ENTER14},
525 { 0, SX( -1), SY( -1), -1, -1},
526 { 0, SX( -1), SY( -1), -1, -1},
527 { 0, SX( -1), SY( -1), -1, -1},
528
529 { 1, SX( -1), SY( -1), -1, -1},
530 { 1, SX( -1), SY( -1), -1, -1},
531 { 1, SX(-30), SY( 350), 435, P_ENTER14},
532 { 1, SX(-30), SY( 350), 430, P_ENTER14},
533 { 1, SX(-30), SY( 350), 425, P_ENTER14},
534 { 1, SX(-30), SY( 350), 420, P_ENTER14},
535 { 1, SX(-30), SY( 350), 415, P_ENTER14},
536 { 1, SX(-30), SY( 350), 410, P_ENTER14},
537 { 1, SX( -1), SY( -1), -1, -1},
538 { 1, SX( -1), SY( -1), -1, -1},
539
540 { 2, SX(430), SY( 530), 345, P_ENTER12},
541 { 2, SX(430), SY( 530), 340, P_ENTER12},
542 { 2, SX(430), SY( 530), 335, P_ENTER12},
543 { 2, SX(430), SY( 530), 330, P_ENTER12},
544 { 2, SX(430), SY( 530), 325, P_ENTER12},
545 { 2, SX(430), SY( 530), 320, P_ENTER12},
546 { 2, SX(430), SY( 530), 315, P_ENTER12},
547 { 2, SX(430), SY( 530), 310, P_ENTER12},
548 { 2, SX(430), SY( 530), 305, P_ENTER12},
549 { 2, SX(430), SY( 530), 300, P_ENTER12},
550 /*--*/ { 6, SX(-30), SY( 530), 245, P_ENTER13},
551 { 6, SX(-30), SY( 530), 240, P_ENTER13},
552 { 6, SX(-30), SY( 530), 235, P_ENTER13},
553 { 6, SX(-30), SY( 530), 230, P_ENTER13},
554 { 6, SX(-30), SY( 530), 225, P_ENTER13},
555 { 6, SX(-30), SY( 530), 220, P_ENTER13},
556 { 6, SX(-30), SY( 530), 215, P_ENTER13},
557 { 6, SX(-30), SY( 530), 210, P_ENTER13},
558 { 6, SX(-30), SY( 530), 205, P_ENTER13},
559 { 6, SX(-30), SY( 530), 200, P_ENTER13},
560 /*--*/ { 7, SX(100), SY( 530), 145, P_ENTER8 },
561 { 7, SX(100), SY( 530), 140, P_ENTER8 },
562 { 7, SX(100), SY( 530), 135, P_ENTER8 },
563 { 7, SX(100), SY( 530), 130, P_ENTER8 },
564 { 7, SX(100), SY( 530), 125, P_ENTER8 },
565 { 7, SX(100), SY( 530), 120, P_ENTER8 },
566 { 7, SX(100), SY( 530), 115, P_ENTER8 },
567 { 7, SX(100), SY( 530), 110, P_ENTER8 },
568 { 7, SX(100), SY( 530), 105, P_ENTER8 },
569 { 7, SX(100), SY( 530), 100, P_ENTER8 },
570 /*--*/ { 7, SX(-30), SY( 250), 45, P_ENTER14},
571 { 7, SX(-30), SY( 250), 40, P_ENTER14},
572 { 7, SX(-30), SY( 250), 35, P_ENTER14},
573 { 7, SX(-30), SY( 250), 30, P_ENTER14},
574 { 7, SX(-30), SY( 250), 25, P_ENTER14},
575 { 7, SX(-30), SY( 250), 20, P_ENTER14},
576 { 7, SX(-30), SY( 250), 15, P_ENTER14},
577 { 7, SX(-30), SY( 250), 10, P_ENTER14},
578 { 7, SX(-30), SY( 250), 5, P_ENTER14},
579 { 7, SX(-30), SY( 250), 0, P_ENTER14},
580 },
581
582 { /* level 7 */
583 { 0, SX( -1), SY( -1), -1, -1},
584 { 0, SX( -1), SY( -1), -1, -1},
585 { 0, SX( -1), SY( -1), -1, -1},
586 { 0, SX(-30), SY( 250), 406, P_ENTER10},
587 { 0, SX( -1), SY( -1), -1, -1},
588 { 0, SX( -1), SY( -1), -1, -1},
589 { 0, SX(430), SY( 250), 400, P_ENTER11},
590 { 0, SX( -1), SY( -1), -1, -1},
591 { 0, SX( -1), SY( -1), -1, -1},
592 { 0, SX( -1), SY( -1), -1, -1},
593
594 { 1, SX( -1), SY( -1), -1, -1},
595 { 1, SX( -1), SY( -1), -1, -1},
596 { 1, SX(-30), SY( 250), 435, P_ENTER10},
597 { 1, SX(430), SY( 250), 430, P_ENTER11},
598 { 1, SX(-30), SY( 250), 425, P_ENTER10},
599 { 1, SX(430), SY( 250), 420, P_ENTER11},
600 { 1, SX(-30), SY( 250), 415, P_ENTER10},
601 { 1, SX(430), SY( 250), 410, P_ENTER11},
602 { 1, SX( -1), SY( -1), -1, -1},
603 { 1, SX( -1), SY( -1), -1, -1},
604
605 { 2, SX(100), SY( 530), 340, P_ENTER8 },
606 { 2, SX(300), SY( 530), 340, P_ENTER9 },
607 { 2, SX(100), SY( 530), 330, P_ENTER8 },
608 { 2, SX(300), SY( 530), 330, P_ENTER9 },
609 { 2, SX(100), SY( 530), 320, P_ENTER8 },
610 { 2, SX(300), SY( 530), 320, P_ENTER9 },
611 { 2, SX(100), SY( 530), 310, P_ENTER8 },
612 { 2, SX(300), SY( 530), 310, P_ENTER9 },
613 { 2, SX(100), SY( 530), 300, P_ENTER8 },
614 { 2, SX(300), SY( 530), 300, P_ENTER9 },
615 /*--*/ { 3, SX(100), SY( 530), 240, P_ENTER8 },
616 { 3, SX(300), SY( 530), 240, P_ENTER9 },
617 { 3, SX(100), SY( 530), 230, P_ENTER8 },
618 { 3, SX(300), SY( 530), 230, P_ENTER9 },
619 { 3, SX(100), SY( 530), 220, P_ENTER8 },
620 { 3, SX(300), SY( 530), 220, P_ENTER9 },
621 { 3, SX(100), SY( 530), 210, P_ENTER8 },
622 { 3, SX(300), SY( 530), 210, P_ENTER9 },
623 { 3, SX(100), SY( 530), 200, P_ENTER8 },
624 { 3, SX(300), SY( 530), 200, P_ENTER9 },
625 /*--*/ { 6, SX(100), SY( 530), 140, P_ENTER8 },
626 { 6, SX(300), SY( 530), 140, P_ENTER9 },
627 { 6, SX(100), SY( 530), 130, P_ENTER8 },
628 { 6, SX(300), SY( 530), 130, P_ENTER9 },
629 { 6, SX(100), SY( 530), 120, P_ENTER8 },
630 { 6, SX(300), SY( 530), 120, P_ENTER9 },
631 { 6, SX(100), SY( 530), 110, P_ENTER8 },
632 { 6, SX(300), SY( 530), 110, P_ENTER9 },
633 { 6, SX(100), SY( 530), 100, P_ENTER8 },
634 { 6, SX(300), SY( 530), 100, P_ENTER9 },
635 /*--*/ { 6, SX(100), SY( 530), 40, P_ENTER8 },
636 { 6, SX(300), SY( 530), 40, P_ENTER9 },
637 { 6, SX(100), SY( 530), 30, P_ENTER8 },
638 { 6, SX(300), SY( 530), 30, P_ENTER9 },
639 { 6, SX(100), SY( 530), 20, P_ENTER8 },
640 { 6, SX(300), SY( 530), 20, P_ENTER9 },
641 { 6, SX(100), SY( 530), 10, P_ENTER8 },
642 { 6, SX(300), SY( 530), 10, P_ENTER9 },
643 { 6, SX(100), SY( 530), 0, P_ENTER8 },
644 { 6, SX(300), SY( 530), 0, P_ENTER9 },
645
646 },
647 { /* level 8 */
648 { 0, SX( -1), SY( -1), -1, -1},
649 { 0, SX( -1), SY( -1), -1, -1},
650 { 0, SX( -1), SY( -1), -1, -1},
651 { 0, SX(-30), SY( 250), 405, P_ENTER16},
652 { 0, SX( -1), SY( -1), -1, -1},
653 { 0, SX( -1), SY( -1), -1, -1},
654 { 0, SX(-30), SY( 250), 400, P_ENTER16},
655 { 0, SX( -1), SY( -1), -1, -1},
656 { 0, SX( -1), SY( -1), -1, -1},
657 { 0, SX( -1), SY( -1), -1, -1},
658
659 { 1, SX( -1), SY( -1), -1, -1},
660 { 1, SX( -1), SY( -1), -1, -1},
661 { 1, SX(-30), SY( 250), 435, P_ENTER16},
662 { 1, SX(-30), SY( 250), 430, P_ENTER16},
663 { 1, SX(-30), SY( 250), 425, P_ENTER16},
664 { 1, SX(-30), SY( 250), 420, P_ENTER16},
665 { 1, SX(-30), SY( 250), 415, P_ENTER16},
666 { 1, SX(-30), SY( 250), 410, P_ENTER16},
667 { 1, SX( -1), SY( -1), -1, -1},
668 { 1, SX( -1), SY( -1), -1, -1},
669
670 { 6, SX(-30), SY( 530), 340, P_ENTER13},
671 { 6, SX(430), SY( 530), 340, P_ENTER12},
672 { 6, SX(-30), SY( 530), 330, P_ENTER13},
673 { 6, SX(430), SY( 530), 330, P_ENTER12},
674 { 6, SX(-30), SY( 530), 320, P_ENTER13},
675 { 6, SX(430), SY( 530), 320, P_ENTER12},
676 { 6, SX(-30), SY( 530), 310, P_ENTER13},
677 { 6, SX(430), SY( 530), 310, P_ENTER12},
678 { 6, SX(-30), SY( 530), 300, P_ENTER13},
679 { 6, SX(430), SY( 530), 300, P_ENTER12},
680 /*--*/ { 7, SX(200), SY( -30), 245, P_ENTER2 },
681 { 7, SX(200), SY( -30), 240, P_ENTER2 },
682 { 7, SX(200), SY( -30), 235, P_ENTER2 },
683 { 7, SX(200), SY( -30), 230, P_ENTER2 },
684 { 7, SX(200), SY( -30), 225, P_ENTER2 },
685 { 7, SX(200), SY( -30), 220, P_ENTER2 },
686 { 7, SX(200), SY( -30), 215, P_ENTER2 },
687 { 7, SX(200), SY( -30), 210, P_ENTER2 },
688 { 7, SX(200), SY( -30), 205, P_ENTER2 },
689 { 7, SX(200), SY( -30), 200, P_ENTER2 },
690 /*--*/ { 8, SX(200), SY( -30), 95, P_ENTER17},
691 { 8, SX(200), SY( -30), 90, P_ENTER17},
692 { 8, SX(200), SY( -30), 85, P_ENTER17},
693 { 8, SX(200), SY( -30), 80, P_ENTER17},
694 { 8, SX(200), SY( -30), 75, P_ENTER17},
695 { 8, SX(200), SY( -30), 70, P_ENTER17},
696 { 8, SX(200), SY( -30), 65, P_ENTER17},
697 { 8, SX(200), SY( -30), 60, P_ENTER17},
698 { 8, SX(200), SY( -30), 55, P_ENTER17},
699 { 8, SX(200), SY( -30), 50, P_ENTER17},
700 /*--*/ { 8, SX(200), SY( -30), 45, P_ENTER17},
701 { 8, SX(200), SY( -30), 40, P_ENTER17},
702 { 8, SX(200), SY( -30), 35, P_ENTER17},
703 { 8, SX(200), SY( -30), 30, P_ENTER17},
704 { 8, SX(200), SY( -30), 25, P_ENTER17},
705 { 8, SX(200), SY( -30), 20, P_ENTER17},
706 { 8, SX(200), SY( -30), 15, P_ENTER17},
707 { 8, SX(200), SY( -30), 10, P_ENTER17},
708 { 8, SX(200), SY( -30), 5, P_ENTER17},
709 { 8, SX(200), SY( -30), 0, P_ENTER17},
710
711 },
712 { /* level 9 */
713 { 0, SX( -1), SY( -1), -1, -1},
714 { 0, SX( -1), SY( -1), -1, -1},
715 { 0, SX( -1), SY( -1), -1, -1},
716 { 0, SX(-30), SY( 250), 405, P_ENTER16},
717 { 0, SX( -1), SY( -1), -1, -1},
718 { 0, SX( -1), SY( -1), -1, -1},
719 { 0, SX(-30), SY( 250), 400, P_ENTER16},
720 { 0, SX( -1), SY( -1), -1, -1},
721 { 0, SX( -1), SY( -1), -1, -1},
722 { 0, SX( -1), SY( -1), -1, -1},
723
724 { 1, SX( -1), SY( -1), -1, -1},
725 { 1, SX( -1), SY( -1), -1, -1},
726 { 1, SX(-30), SY( 250), 435, P_ENTER16},
727 { 1, SX(-30), SY( 250), 430, P_ENTER16},
728 { 1, SX(-30), SY( 250), 425, P_ENTER16},
729 { 1, SX(-30), SY( 250), 420, P_ENTER16},
730 { 1, SX(-30), SY( 250), 415, P_ENTER16},
731 { 1, SX(-30), SY( 250), 410, P_ENTER16},
732 { 1, SX( -1), SY( -1), -1, -1},
733 { 1, SX( -1), SY( -1), -1, -1},
734
735 { 6, SX(100), SY( 530), 340, P_ENTER8 },
736 { 6, SX(300), SY( 530), 340, P_ENTER9 },
737 { 6, SX(100), SY( 530), 330, P_ENTER8 },
738 { 6, SX(300), SY( 530), 330, P_ENTER9 },
739 { 6, SX(100), SY( 530), 320, P_ENTER8 },
740 { 6, SX(300), SY( 530), 320, P_ENTER9 },
741 { 6, SX(100), SY( 530), 310, P_ENTER8 },
742 { 6, SX(300), SY( 530), 310, P_ENTER9 },
743 { 6, SX(100), SY( 530), 300, P_ENTER8 },
744 { 6, SX(300), SY( 530), 300, P_ENTER9 },
745 /*--*/ { 7, SX(200), SY( -30), 245, P_ENTER1 },
746 { 7, SX(200), SY( -30), 240, P_ENTER1 },
747 { 7, SX(200), SY( -30), 235, P_ENTER1 },
748 { 7, SX(200), SY( -30), 230, P_ENTER1 },
749 { 7, SX(200), SY( -30), 225, P_ENTER1 },
750 { 7, SX(200), SY( -30), 220, P_ENTER1 },
751 { 7, SX(200), SY( -30), 215, P_ENTER1 },
752 { 7, SX(200), SY( -30), 210, P_ENTER1 },
753 { 7, SX(200), SY( -30), 205, P_ENTER1 },
754 { 7, SX(200), SY( -30), 200, P_ENTER1 },
755 /*--*/ { 8, SX(430), SY( 530), 145, P_ENTER12},
756 { 8, SX(430), SY( 530), 140, P_ENTER12},
757 { 8, SX(430), SY( 530), 135, P_ENTER12},
758 { 8, SX(430), SY( 530), 130, P_ENTER12},
759 { 8, SX(430), SY( 530), 125, P_ENTER12},
760 { 8, SX(430), SY( 530), 120, P_ENTER12},
761 { 8, SX(430), SY( 530), 115, P_ENTER12},
762 { 8, SX(430), SY( 530), 110, P_ENTER12},
763 { 8, SX(430), SY( 530), 105, P_ENTER12},
764 { 8, SX(430), SY( 530), 100, P_ENTER12},
765 /*--*/ { 9, SX(360), SY( -30), 0, P_ENTER17},/* muahaha! */
766 { 9, SX(320), SY( -30), 0, P_ENTER17},
767 { 9, SX(280), SY( -30), 0, P_ENTER17},
768 { 9, SX(240), SY( -30), 0, P_ENTER17},
769 { 9, SX(200), SY( -30), 0, P_ENTER17},
770 { 9, SX(160), SY( -30), 0, P_ENTER17},
771 { 9, SX(120), SY( -30), 0, P_ENTER17},
772 { 9, SX( 80), SY( -30), 0, P_ENTER17},
773 { 9, SX( 40), SY( -30), 0, P_ENTER17},
774 { 9, SX( 0), SY( -30), 0, P_ENTER17},
775
776 },
777 { /* level 10 */
778 { 0, SX( -1), SY( -1), -1, -1},
779 { 0, SX( -1), SY( -1), -1, -1},
780 { 0, SX( -1), SY( -1), -1, -1},
781 { 0, SX(-30), SY( 250), 405, P_ENTER10},
782 { 0, SX( -1), SY( -1), -1, -1},
783 { 0, SX( -1), SY( -1), -1, -1},
784 { 0, SX(430), SY( 250), 400, P_ENTER11},
785 { 0, SX( -1), SY( -1), -1, -1},
786 { 0, SX( -1), SY( -1), -1, -1},
787 { 0, SX( -1), SY( -1), -1, -1},
788
789 { 1, SX( -1), SY( -1), -1, -1},
790 { 1, SX( -1), SY( -1), -1, -1},
791 { 1, SX(-30), SY( 250), 435, P_ENTER10},
792 { 1, SX(430), SY( 250), 430, P_ENTER11},
793 { 1, SX(-30), SY( 250), 425, P_ENTER10},
794 { 1, SX(430), SY( 250), 420, P_ENTER11},
795 { 1, SX(-30), SY( 250), 415, P_ENTER10},
796 { 1, SX(430), SY( 250), 410, P_ENTER11},
797 { 1, SX( -1), SY( -1), -1, -1},
798 { 1, SX( -1), SY( -1), -1, -1},
799
800 { 7, SX(200), SY( -30), 345, P_ENTER2 },
801 { 7, SX(200), SY( -30), 340, P_ENTER1 },
802 { 7, SX(200), SY( -30), 335, P_ENTER2 },
803 { 7, SX(200), SY( -30), 330, P_ENTER1 },
804 { 7, SX(200), SY( -30), 325, P_ENTER2 },
805 { 7, SX(200), SY( -30), 320, P_ENTER1 },
806 { 7, SX(200), SY( -30), 315, P_ENTER2 },
807 { 7, SX(200), SY( -30), 310, P_ENTER1 },
808 { 7, SX(200), SY( -30), 305, P_ENTER2 },
809 { 7, SX(200), SY( -30), 300, P_ENTER1 },
810 /*--*/ { 8, SX(430), SY( 250), 245, P_ENTER15},
811 { 8, SX(-30), SY( 250), 240, P_ENTER16},
812 { 8, SX(430), SY( 250), 235, P_ENTER15},
813 { 8, SX(-30), SY( 250), 230, P_ENTER16},
814 { 8, SX(430), SY( 250), 225, P_ENTER15},
815 { 8, SX(-30), SY( 250), 220, P_ENTER16},
816 { 8, SX(430), SY( 250), 215, P_ENTER15},
817 { 8, SX(-30), SY( 250), 210, P_ENTER16},
818 { 8, SX(430), SY( 250), 205, P_ENTER15},
819 { 8, SX(-30), SY( 250), 200, P_ENTER16},
820 /*--*/ { 9, SX(100), SY( 530), 145, P_ENTER8 },
821 { 9, SX(300), SY( 530), 140, P_ENTER9 },
822 { 9, SX(100), SY( 530), 135, P_ENTER8 },
823 { 9, SX(300), SY( 530), 130, P_ENTER9 },
824 { 9, SX(100), SY( 530), 125, P_ENTER8 },
825 { 9, SX(300), SY( 530), 120, P_ENTER9 },
826 { 9, SX(100), SY( 530), 115, P_ENTER8 },
827 { 9, SX(300), SY( 530), 110, P_ENTER9 },
828 { 9, SX(100), SY( 530), 105, P_ENTER8 },
829 { 9, SX(300), SY( 530), 100, P_ENTER9 },
830 /*--*/ {10, SX(430), SY( 250), 45, P_ENTER18},
831 {10, SX(430), SY( 250), 40, P_ENTER18},
832 {10, SX(430), SY( 250), 35, P_ENTER18},
833 {10, SX(430), SY( 250), 30, P_ENTER18},
834 {10, SX(430), SY( 250), 25, P_ENTER18},
835 {10, SX(430), SY( 250), 20, P_ENTER18},
836 {10, SX(430), SY( 250), 15, P_ENTER18},
837 {10, SX(430), SY( 250), 10, P_ENTER18},
838 {10, SX(430), SY( 250), 5, P_ENTER18},
839 {10, SX(430), SY( 250), 0, P_ENTER18},
840
841 },
842 { /* level 11 */
843 {11, SX( -1), SY( -1), -1, -1},
844 {11, SX( -1), SY( -1), -1, -1},
845 {11, SX( -1), SY( -1), -1, -1},
846 {11, SX(-30), SY( 250), 405, P_ENTER10},
847 {11, SX( -1), SY( -1), -1, -1},
848 {11, SX( -1), SY( -1), -1, -1},
849 {11, SX(430), SY( 250), 400, P_ENTER11},
850 {11, SX( -1), SY( -1), -1, -1},
851 {11, SX( -1), SY( -1), -1, -1},
852 {11, SX( -1), SY( -1), -1, -1},
853
854 {12, SX( -1), SY( -1), -1, -1},
855 {12, SX( -1), SY( -1), -1, -1},
856 {12, SX(-30), SY( 250), 435, P_ENTER10},
857 {12, SX(430), SY( 250), 430, P_ENTER11},
858 {12, SX(-30), SY( 250), 425, P_ENTER10},
859 {12, SX(430), SY( 250), 420, P_ENTER11},
860 {12, SX(-30), SY( 250), 415, P_ENTER10},
861 {12, SX(430), SY( 250), 410, P_ENTER11},
862 {12, SX( -1), SY( -1), -1, -1},
863 {12, SX( -1), SY( -1), -1, -1},
864
865 {13, SX(200), SY( -30), 345, P_ENTER2 },
866 {13, SX(200), SY( -30), 340, P_ENTER1 },
867 {13, SX(200), SY( -30), 335, P_ENTER2 },
868 {13, SX(200), SY( -30), 330, P_ENTER1 },
869 {13, SX(200), SY( -30), 325, P_ENTER2 },
870 {13, SX(200), SY( -30), 320, P_ENTER1 },
871 {13, SX(200), SY( -30), 315, P_ENTER2 },
872 {13, SX(200), SY( -30), 310, P_ENTER1 },
873 {13, SX(200), SY( -30), 305, P_ENTER2 },
874 {13, SX(200), SY( -30), 300, P_ENTER1 },
875 /*--*/ {14, SX(430), SY( 530), 245, P_ENTER12},
876 {14, SX(-30), SY( 530), 240, P_ENTER13},
877 {14, SX(430), SY( 530), 235, P_ENTER12},
878 {14, SX(-30), SY( 530), 230, P_ENTER13},
879 {14, SX(430), SY( 530), 225, P_ENTER12},
880 {14, SX(-30), SY( 530), 220, P_ENTER13},
881 {14, SX(430), SY( 530), 215, P_ENTER12},
882 {14, SX(-30), SY( 530), 210, P_ENTER13},
883 {14, SX(430), SY( 530), 205, P_ENTER12},
884 {14, SX(-30), SY( 530), 200, P_ENTER13},
885 /*--*/ {15, SX(-30), SY( 530), 145, P_ENTER13},
886 {15, SX(-30), SY( 530), 140, P_ENTER13},
887 {15, SX(-30), SY( 530), 135, P_ENTER13},
888 {15, SX(-30), SY( 530), 130, P_ENTER13},
889 {15, SX(-30), SY( 530), 125, P_ENTER13},
890 {15, SX(-30), SY( 530), 120, P_ENTER13},
891 {15, SX(-30), SY( 530), 115, P_ENTER13},
892 {15, SX(-30), SY( 530), 110, P_ENTER13},
893 {15, SX(-30), SY( 530), 105, P_ENTER13},
894 {15, SX(-30), SY( 530), 100, P_ENTER13},
895 /*--*/ {16, SX(430), SY( 530), 45, P_ENTER12},
896 {16, SX(430), SY( 530), 40, P_ENTER12},
897 {16, SX(430), SY( 530), 35, P_ENTER12},
898 {16, SX(430), SY( 530), 30, P_ENTER12},
899 {16, SX(430), SY( 530), 25, P_ENTER12},
900 {16, SX(430), SY( 530), 20, P_ENTER12},
901 {16, SX(430), SY( 530), 15, P_ENTER12},
902 {16, SX(430), SY( 530), 10, P_ENTER12},
903 {16, SX(430), SY( 530), 5, P_ENTER12},
904 {16, SX(430), SY( 530), 0, P_ENTER12},
905 },
906 { /* level 12 */
907 {11, SX( -1), SY( -1), -1, -1},
908 {11, SX( -1), SY( -1), -1, -1},
909 {11, SX( -1), SY( -1), -1, -1},
910 {11, SX(-30), SY( 250), 405, P_ENTER10},
911 {11, SX( -1), SY( -1), -1, -1},
912 {11, SX( -1), SY( -1), -1, -1},
913 {11, SX(430), SY( 250), 400, P_ENTER11},
914 {11, SX( -1), SY( -1), -1, -1},
915 {11, SX( -1), SY( -1), -1, -1},
916 {11, SX( -1), SY( -1), -1, -1},
917
918 {12, SX( -1), SY( -1), -1, -1},
919 {12, SX( -1), SY( -1), -1, -1},
920 {12, SX(-30), SY( 250), 435, P_ENTER10},
921 {12, SX(430), SY( 250), 430, P_ENTER11},
922 {12, SX(-30), SY( 250), 425, P_ENTER10},
923 {12, SX(430), SY( 250), 420, P_ENTER11},
924 {12, SX(-30), SY( 250), 415, P_ENTER10},
925 {12, SX(430), SY( 250), 410, P_ENTER11},
926 {12, SX( -1), SY( -1), -1, -1},
927 {12, SX( -1), SY( -1), -1, -1},
928
929 {13, SX(200), SY( -30), 345, P_ENTER2 },
930 {13, SX(200), SY( -30), 340, P_ENTER1 },
931 {13, SX(200), SY( -30), 335, P_ENTER2 },
932 {13, SX(200), SY( -30), 330, P_ENTER1 },
933 {13, SX(200), SY( -30), 325, P_ENTER2 },
934 {13, SX(200), SY( -30), 320, P_ENTER1 },
935 {13, SX(200), SY( -30), 315, P_ENTER2 },
936 {13, SX(200), SY( -30), 310, P_ENTER1 },
937 {13, SX(200), SY( -30), 305, P_ENTER2 },
938 {13, SX(200), SY( -30), 300, P_ENTER1 },
939 /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15},
940 {14, SX(-30), SY( 250), 240, P_ENTER16},
941 {14, SX(430), SY( 250), 235, P_ENTER15},
942 {14, SX(-30), SY( 250), 230, P_ENTER16},
943 {14, SX(430), SY( 250), 225, P_ENTER15},
944 {14, SX(-30), SY( 250), 220, P_ENTER16},
945 {14, SX(430), SY( 250), 215, P_ENTER15},
946 {14, SX(-30), SY( 250), 210, P_ENTER16},
947 {14, SX(430), SY( 250), 205, P_ENTER15},
948 {14, SX(-30), SY( 250), 200, P_ENTER16},
949 /*--*/ {15, SX(360), SY( -30), 100, P_ENTER17},
950 {15, SX(320), SY( -30), 100, P_ENTER17},
951 {15, SX(280), SY( -30), 100, P_ENTER17},
952 {15, SX(240), SY( -30), 100, P_ENTER17},
953 {15, SX(200), SY( -30), 100, P_ENTER17},
954 {15, SX(160), SY( -30), 100, P_ENTER17},
955 {15, SX(120), SY( -30), 100, P_ENTER17},
956 {15, SX( 80), SY( -30), 100, P_ENTER17},
957 {15, SX( 40), SY( -30), 100, P_ENTER17},
958 {15, SX( 0), SY( -30), 100, P_ENTER17},
959 /*--*/ {16, SX(360), SY( -30), 0, P_ENTER17},
960 {16, SX(320), SY( -30), 0, P_ENTER17},
961 {16, SX(280), SY( -30), 0, P_ENTER17},
962 {16, SX(240), SY( -30), 0, P_ENTER17},
963 {16, SX(200), SY( -30), 0, P_ENTER17},
964 {16, SX(160), SY( -30), 0, P_ENTER17},
965 {16, SX(120), SY( -30), 0, P_ENTER17},
966 {16, SX( 80), SY( -30), 0, P_ENTER17},
967 {16, SX( 40), SY( -30), 0, P_ENTER17},
968 {16, SX( 0), SY( -30), 0, P_ENTER17},
969 },
970 { /* level 13 */
971 {11, SX( -1), SY( -1), -1, -1},
972 {11, SX( -1), SY( -1), -1, -1},
973 {11, SX( -1), SY( -1), -1, -1},
974 {11, SX(-30), SY( 250), 405, P_ENTER10},
975 {11, SX( -1), SY( -1), -1, -1},
976 {11, SX( -1), SY( -1), -1, -1},
977 {11, SX(430), SY( 250), 400, P_ENTER11},
978 {11, SX( -1), SY( -1), -1, -1},
979 {11, SX( -1), SY( -1), -1, -1},
980 {11, SX( -1), SY( -1), -1, -1},
981
982 {12, SX( -1), SY( -1), -1, -1},
983 {12, SX( -1), SY( -1), -1, -1},
984 {12, SX(-30), SY( 250), 435, P_ENTER10},
985 {12, SX(430), SY( 250), 430, P_ENTER11},
986 {12, SX(-30), SY( 250), 425, P_ENTER10},
987 {12, SX(430), SY( 250), 420, P_ENTER11},
988 {12, SX(-30), SY( 250), 415, P_ENTER10},
989 {12, SX(430), SY( 250), 410, P_ENTER11},
990 {12, SX( -1), SY( -1), -1, -1},
991 {12, SX( -1), SY( -1), -1, -1},
992
993 {13, SX(200), SY( -30), 345, P_ENTER2 },
994 {13, SX(200), SY( -30), 340, P_ENTER1 },
995 {13, SX(200), SY( -30), 335, P_ENTER2 },
996 {13, SX(200), SY( -30), 330, P_ENTER1 },
997 {13, SX(200), SY( -30), 325, P_ENTER2 },
998 {13, SX(200), SY( -30), 320, P_ENTER1 },
999 {13, SX(200), SY( -30), 315, P_ENTER2 },
1000 {13, SX(200), SY( -30), 310, P_ENTER1 },
1001 {13, SX(200), SY( -30), 305, P_ENTER2 },
1002 {13, SX(200), SY( -30), 300, P_ENTER1 },
1003 /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15},
1004 {14, SX(-30), SY( 250), 240, P_ENTER16},
1005 {14, SX(430), SY( 250), 235, P_ENTER15},
1006 {14, SX(-30), SY( 250), 230, P_ENTER16},
1007 {14, SX(430), SY( 250), 225, P_ENTER15},
1008 {14, SX(-30), SY( 250), 220, P_ENTER16},
1009 {14, SX(430), SY( 250), 215, P_ENTER15},
1010 {14, SX(-30), SY( 250), 210, P_ENTER16},
1011 {14, SX(430), SY( 250), 205, P_ENTER15},
1012 {14, SX(-30), SY( 250), 200, P_ENTER16},
1013 /*--*/ {15, SX(100), SY( 530), 145, P_ENTER8 },
1014 {15, SX(300), SY( 530), 140, P_ENTER9 },
1015 {15, SX(100), SY( 530), 135, P_ENTER8 },
1016 {15, SX(300), SY( 530), 130, P_ENTER9 },
1017 {15, SX(100), SY( 530), 125, P_ENTER8 },
1018 {15, SX(300), SY( 530), 120, P_ENTER9 },
1019 {15, SX(100), SY( 530), 115, P_ENTER8 },
1020 {15, SX(300), SY( 530), 110, P_ENTER9 },
1021 {15, SX(100), SY( 530), 105, P_ENTER8 },
1022 {15, SX(300), SY( 530), 100, P_ENTER9 },
1023 /*--*/ {16, SX(100), SY( 530), 40, P_ENTER8 },
1024 {16, SX(300), SY( 530), 40, P_ENTER9 },
1025 {16, SX(100), SY( 530), 30, P_ENTER8 },
1026 {16, SX(300), SY( 530), 30, P_ENTER9 },
1027 {16, SX(100), SY( 530), 20, P_ENTER8 },
1028 {16, SX(300), SY( 530), 20, P_ENTER9 },
1029 {16, SX(100), SY( 530), 10, P_ENTER8 },
1030 {16, SX(300), SY( 530), 10, P_ENTER9 },
1031 {16, SX(100), SY( 530), 0, P_ENTER8 },
1032 {16, SX(300), SY( 530), 0, P_ENTER9 },
1033 },
1034 { /* level 14 */
1035 {11, SX( -1), SY( -1), -1, -1},
1036 {11, SX( -1), SY( -1), -1, -1},
1037 {11, SX( -1), SY( -1), -1, -1},
1038 {11, SX(-30), SY( 250), 405, P_ENTER10},
1039 {11, SX( -1), SY( -1), -1, -1},
1040 {11, SX( -1), SY( -1), -1, -1},
1041 {11, SX(430), SY( 250), 400, P_ENTER11},
1042 {11, SX( -1), SY( -1), -1, -1},
1043 {11, SX( -1), SY( -1), -1, -1},
1044 {11, SX( -1), SY( -1), -1, -1},
1045
1046 {12, SX( -1), SY( -1), -1, -1},
1047 {12, SX( -1), SY( -1), -1, -1},
1048 {12, SX(-30), SY( 250), 435, P_ENTER10},
1049 {12, SX(430), SY( 250), 430, P_ENTER11},
1050 {12, SX(-30), SY( 250), 425, P_ENTER10},
1051 {12, SX(430), SY( 250), 420, P_ENTER11},
1052 {12, SX(-30), SY( 250), 415, P_ENTER10},
1053 {12, SX(430), SY( 250), 410, P_ENTER11},
1054 {12, SX( -1), SY( -1), -1, -1},
1055 {12, SX( -1), SY( -1), -1, -1},
1056
1057 {13, SX(430), SY( 250), 345, P_ENTER18},
1058 {13, SX(430), SY( 250), 340, P_ENTER18},
1059 {13, SX(430), SY( 250), 335, P_ENTER18},
1060 {13, SX(430), SY( 250), 330, P_ENTER18},
1061 {13, SX(430), SY( 250), 325, P_ENTER18},
1062 {13, SX(430), SY( 250), 320, P_ENTER18},
1063 {13, SX(430), SY( 250), 315, P_ENTER18},
1064 {13, SX(430), SY( 250), 310, P_ENTER18},
1065 {13, SX(430), SY( 250), 305, P_ENTER18},
1066 {13, SX(430), SY( 250), 300, P_ENTER18},
1067 /*--*/ {14, SX(430), SY( 250), 245, P_ENTER18},
1068 {14, SX(430), SY( 250), 240, P_ENTER18},
1069 {14, SX(430), SY( 250), 235, P_ENTER18},
1070 {14, SX(430), SY( 250), 230, P_ENTER18},
1071 {14, SX(430), SY( 250), 225, P_ENTER18},
1072 {14, SX(430), SY( 250), 220, P_ENTER18},
1073 {14, SX(430), SY( 250), 215, P_ENTER18},
1074 {14, SX(430), SY( 250), 210, P_ENTER18},
1075 {14, SX(430), SY( 250), 205, P_ENTER18},
1076 {14, SX(430), SY( 250), 200, P_ENTER18},
1077 /*--*/ {15, SX(-30), SY( -30), 145, P_ENTER20},
1078 {15, SX(-30), SY( -30), 140, P_ENTER20},
1079 {15, SX(-30), SY( -30), 135, P_ENTER20},
1080 {15, SX(-30), SY( -30), 130, P_ENTER20},
1081 {15, SX(-30), SY( -30), 125, P_ENTER20},
1082 {15, SX(-30), SY( -30), 120, P_ENTER20},
1083 {15, SX(-30), SY( -30), 115, P_ENTER20},
1084 {15, SX(-30), SY( -30), 110, P_ENTER20},
1085 {15, SX(-30), SY( -30), 105, P_ENTER20},
1086 {15, SX(-30), SY( -30), 100, P_ENTER20},
1087 /*--*/ {16, SX(430), SY( -30), 45, P_ENTER19},
1088 {16, SX(430), SY( -30), 40, P_ENTER19},
1089 {16, SX(430), SY( -30), 35, P_ENTER19},
1090 {16, SX(430), SY( -30), 30, P_ENTER19},
1091 {16, SX(430), SY( -30), 25, P_ENTER19},
1092 {16, SX(430), SY( -30), 20, P_ENTER19},
1093 {16, SX(430), SY( -30), 15, P_ENTER19},
1094 {16, SX(430), SY( -30), 10, P_ENTER19},
1095 {16, SX(430), SY( -30), 5, P_ENTER19},
1096 {16, SX(430), SY( -30), 0, P_ENTER19},
1097 },
1098 { /* level 15 */
1099 {11, SX( -1), SY( -1), -1, -1},
1100 {11, SX( -1), SY( -1), -1, -1},
1101 {11, SX( -1), SY( -1), -1, -1},
1102 {11, SX(-30), SY( 250), 405, P_ENTER10},
1103 {11, SX( -1), SY( -1), -1, -1},
1104 {11, SX( -1), SY( -1), -1, -1},
1105 {11, SX(430), SY( 250), 400, P_ENTER11},
1106 {11, SX( -1), SY( -1), -1, -1},
1107 {11, SX( -1), SY( -1), -1, -1},
1108 {11, SX( -1), SY( -1), -1, -1},
1109
1110 {12, SX( -1), SY( -1), -1, -1},
1111 {12, SX( -1), SY( -1), -1, -1},
1112 {12, SX(-30), SY( 250), 435, P_ENTER10},
1113 {12, SX(430), SY( 250), 430, P_ENTER11},
1114 {12, SX(-30), SY( 250), 425, P_ENTER10},
1115 {12, SX(430), SY( 250), 420, P_ENTER11},
1116 {12, SX(-30), SY( 250), 415, P_ENTER10},
1117 {12, SX(430), SY( 250), 410, P_ENTER11},
1118 {12, SX( -1), SY( -1), -1, -1},
1119 {12, SX( -1), SY( -1), -1, -1},
1120
1121 {13, SX(200), SY( -30), 345, P_ENTER2 },
1122 {13, SX(200), SY( -30), 340, P_ENTER1 },
1123 {13, SX(200), SY( -30), 335, P_ENTER2 },
1124 {13, SX(200), SY( -30), 330, P_ENTER1 },
1125 {13, SX(200), SY( -30), 325, P_ENTER2 },
1126 {13, SX(200), SY( -30), 320, P_ENTER1 },
1127 {13, SX(200), SY( -30), 315, P_ENTER2 },
1128 {13, SX(200), SY( -30), 310, P_ENTER1 },
1129 {13, SX(200), SY( -30), 305, P_ENTER2 },
1130 {13, SX(200), SY( -30), 300, P_ENTER1 },
1131 /*--*/ {14, SX(430), SY( 250), 245, P_ENTER15},
1132 {14, SX(-30), SY( 250), 240, P_ENTER16},
1133 {14, SX(430), SY( 250), 235, P_ENTER15},
1134 {14, SX(-30), SY( 250), 230, P_ENTER16},
1135 {14, SX(430), SY( 250), 225, P_ENTER15},
1136 {14, SX(-30), SY( 250), 220, P_ENTER16},
1137 {14, SX(430), SY( 250), 215, P_ENTER15},
1138 {14, SX(-30), SY( 250), 210, P_ENTER16},
1139 {14, SX(430), SY( 250), 205, P_ENTER15},
1140 {14, SX(-30), SY( 250), 200, P_ENTER16},
1141 /*--*/ {15, SX(100), SY( 530), 145, P_ENTER8 },
1142 {15, SX(300), SY( 530), 140, P_ENTER9 },
1143 {15, SX(100), SY( 530), 135, P_ENTER8 },
1144 {15, SX(300), SY( 530), 130, P_ENTER9 },
1145 {15, SX(100), SY( 530), 125, P_ENTER8 },
1146 {15, SX(300), SY( 530), 120, P_ENTER9 },
1147 {15, SX(100), SY( 530), 115, P_ENTER8 },
1148 {15, SX(300), SY( 530), 110, P_ENTER9 },
1149 {15, SX(100), SY( 530), 105, P_ENTER8 },
1150 {15, SX(300), SY( 530), 100, P_ENTER9 },
1151 /*--*/ {16, SX(100), SY( 530), 40, P_ENTER8 },
1152 {16, SX(300), SY( 530), 40, P_ENTER9 },
1153 {16, SX(100), SY( 530), 30, P_ENTER8 },
1154 {16, SX(300), SY( 530), 30, P_ENTER9 },
1155 {16, SX(100), SY( 530), 20, P_ENTER8 },
1156 {16, SX(300), SY( 530), 20, P_ENTER9 },
1157 {16, SX(100), SY( 530), 10, P_ENTER8 },
1158 {16, SX(300), SY( 530), 10, P_ENTER9 },
1159 {16, SX(100), SY( 530), 0, P_ENTER8 },
1160 {16, SX(300), SY( 530), 0, P_ENTER9 },
1161 },
1162 };
1163
1164 #endif /* This isn't used anymore! Maybe we should nuke it */
1165
path_dir(int path,int pos,int * dir,int * steer)1166 void path_dir(int path, int pos, int *dir, int *steer)
1167 {
1168 *dir = paths[path][pos][0];
1169 *steer = paths[path][pos][1];
1170 }
1171
enter_path_dir(int path,int pos,int * dir,int * steer)1172 void enter_path_dir(int path, int pos, int *dir, int *steer)
1173 {
1174 *dir = get_dir(path,pos);
1175 *steer = get_duration(path, pos);
1176 }
1177
start_path(int path,struct alien * al)1178 void start_path(int path, struct alien *al)
1179 {
1180 int i;
1181
1182 for(i=0;(i<MAXPATH) && (paths[path][i][0] >= 0);i++) {
1183 if(paths[path][i][0] == al->dir)
1184 break;
1185 if(paths[path][i][0] < 0) {
1186 al->steer = TURNSPEED;
1187 al->path = -1;
1188 return;
1189 }
1190 }
1191 if(i >= MAXPATH) {
1192 al->steer = TURNSPEED;
1193 al->path = -1;
1194 return;
1195 }
1196
1197 al->path = path;
1198 al->path_pos = i;
1199 al->steer = paths[path][i][1];
1200 }
1201
new_alien(int level,int anum,struct alien * al)1202 void new_alien(int level, int anum, struct alien *al)
1203 {
1204 if(get_shape(anum) >= 0) {
1205 al->alive = 1;
1206 al->dying = 0;
1207 al->entering = 1;
1208 get_xy(anum, &al->x, &al->y);
1209 al->enterdelay = get_delay(anum);
1210 al->enterdelay /= 1 + ((metaLevel -1) * .5);
1211
1212 al->path = get_path(anum);
1213 al->path_pos = 0;
1214 al->dir = get_dir(al->path, 0);
1215 al->steer = get_duration(al->path, 0);
1216 if(metaLevel > 1)
1217 al->steer /= 1 + ((metaLevel - 1) * .5);
1218 /*al->steer -= (metaLevel - 1) * (al->steer / 3);*/
1219
1220 al->escorting = -1;
1221 al->shape = getImage(alien_shape[get_shape(anum)]);
1222 } else {
1223 al->alive = 0;
1224 }
1225
1226 /*
1227 al->alive = 1;
1228 al->dying = 0;
1229 al->x = ep[l][anum].x;
1230 al->y = ep[l][anum].y;
1231 al->entering = 1;
1232 al->enterdelay = ep[l][anum].delay;
1233 al->path = ep[l][i].path;
1234 al->path_pos = 0;
1235 al->dir = paths[ep[l][anum].path][0][0];
1236 al->steer = 2*(paths[ep[l][anum].path][0][1]/3);
1237 al->escorting = -1;
1238 al->shape = getImage(alien_shape[ep[l][i].shape]);
1239 */
1240 }
1241