File: states.cpp

package info (click to toggle)
wolf4sdl 20230117-1
  • links: PTS, VCS
  • area: contrib
  • in suites: trixie
  • size: 2,064 kB
  • sloc: cpp: 30,892; makefile: 130; sh: 35
file content (515 lines) | stat: -rw-r--r-- 34,808 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
//
// Copyright(C) 1992 Id Software, Inc.
// Copyright(C) 2007-2011 Moritz "Ripper" Kroll
// Copyright(C) 2020 Fabian Greffrath
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// DESCRIPTION:
//	Organize all available statetype variables in a states[] array.
//
//	This replaces the current relying on a specific order in which
//	global variables are stored in the executable for e.g. saving
//	and restoring of savegames and thus does not require the
//	-fno-toplevel-reorder compiler flag anymore.
//

#include "wl_def.h"

extern void A_Breathing (objtype *);
extern void A_Dormant (objtype *);
extern void A_HitlerMorph (objtype *);
extern void A_MechaSound (objtype *);
extern void A_Relaunch (objtype *);
extern void A_Slurpie (objtype *);
extern void A_Smoke (objtype *);
extern void A_StartAttack (objtype *);
extern void A_StartDeathCam (objtype *);
extern void A_Victory (objtype *);
extern void T_Attack (objtype *);
extern void T_BJDone (objtype *);
extern void T_BJJump (objtype *);
extern void T_BJRun (objtype *);
extern void T_BJYell (objtype *);
extern void T_Bite (objtype *);
extern void T_Chase (objtype *);
extern void T_DogChase (objtype *);
extern void T_Fake (objtype *);
extern void T_FakeFire (objtype *);
extern void T_Fat (objtype *);
extern void T_Ghosts (objtype *);
extern void T_Gift (objtype *);
extern void T_GiftThrow (objtype *);
extern void T_Launch (objtype *);
extern void T_Path (objtype *);
extern void T_Player (objtype *);
extern void T_Projectile (objtype *);
extern void T_Schabb (objtype *);
extern void T_SchabbThrow (objtype *);
extern void T_Shoot (objtype *);
extern void T_Stand (objtype *);
extern void T_UShoot (objtype *);
extern void T_Will (objtype *);

statetype states[numstates] = {
	{false,0,0,NULL,NULL,s_null},	// s_null
	{false,0,0,(statefunc)T_Player,NULL,s_null},	// s_player
	{false,0,0,(statefunc)T_Attack,NULL,s_null},	// s_attack
	{true,SPR_ROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_rocket},	// s_rocket
	{false,SPR_SMOKE_1,3,NULL,NULL,s_smoke2},	// s_smoke1
	{false,SPR_SMOKE_2,3,NULL,NULL,s_smoke3},	// s_smoke2
	{false,SPR_SMOKE_3,3,NULL,NULL,s_smoke4},	// s_smoke3
	{false,SPR_SMOKE_4,3,NULL,NULL,s_null},	// s_smoke4
	{false,SPR_BOOM_1,6,NULL,NULL,s_boom2},	// s_boom1
	{false,SPR_BOOM_2,6,NULL,NULL,s_boom3},	// s_boom2
	{false,SPR_BOOM_3,6,NULL,NULL,s_null},	// s_boom3
#ifdef SPEAR
	{true,SPR_HROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_hrocket},	// s_hrocket
	{false,SPR_HSMOKE_1,3,NULL,NULL,s_hsmoke2},	// s_hsmoke1
	{false,SPR_HSMOKE_2,3,NULL,NULL,s_hsmoke3},	// s_hsmoke2
	{false,SPR_HSMOKE_3,3,NULL,NULL,s_hsmoke4},	// s_hsmoke3
	{false,SPR_HSMOKE_4,3,NULL,NULL,s_null},	// s_hsmoke4
	{false,SPR_HBOOM_1,6,NULL,NULL,s_hboom2},	// s_hboom1
	{false,SPR_HBOOM_2,6,NULL,NULL,s_hboom3},	// s_hboom2
	{false,SPR_HBOOM_3,6,NULL,NULL,s_null},	// s_hboom3
#endif
	{true,SPR_GRD_S_1,0,(statefunc)T_Stand,NULL,s_grdstand},	// s_grdstand
	{true,SPR_GRD_W1_1,20,(statefunc)T_Path,NULL,s_grdpath1s},	// s_grdpath1
	{true,SPR_GRD_W1_1,5,NULL,NULL,s_grdpath2},	// s_grdpath1s
	{true,SPR_GRD_W2_1,15,(statefunc)T_Path,NULL,s_grdpath3},	// s_grdpath2
	{true,SPR_GRD_W3_1,20,(statefunc)T_Path,NULL,s_grdpath3s},	// s_grdpath3
	{true,SPR_GRD_W3_1,5,NULL,NULL,s_grdpath4},	// s_grdpath3s
	{true,SPR_GRD_W4_1,15,(statefunc)T_Path,NULL,s_grdpath1},	// s_grdpath4
	{2,SPR_GRD_PAIN_1,10,NULL,NULL,s_grdchase1},	// s_grdpain
	{2,SPR_GRD_PAIN_2,10,NULL,NULL,s_grdchase1},	// s_grdpain1
	{false,SPR_GRD_SHOOT1,20,NULL,NULL,s_grdshoot2},	// s_grdshoot1
	{false,SPR_GRD_SHOOT2,20,NULL,(statefunc)T_Shoot,s_grdshoot3},	// s_grdshoot2
	{false,SPR_GRD_SHOOT3,20,NULL,NULL,s_grdchase1},	// s_grdshoot3
	{true,SPR_GRD_W1_1,10,(statefunc)T_Chase,NULL,s_grdchase1s},	// s_grdchase1
	{true,SPR_GRD_W1_1,3,NULL,NULL,s_grdchase2},	// s_grdchase1s
	{true,SPR_GRD_W2_1,8,(statefunc)T_Chase,NULL,s_grdchase3},	// s_grdchase2
	{true,SPR_GRD_W3_1,10,(statefunc)T_Chase,NULL,s_grdchase3s},	// s_grdchase3
	{true,SPR_GRD_W3_1,3,NULL,NULL,s_grdchase4},	// s_grdchase3s
	{true,SPR_GRD_W4_1,8,(statefunc)T_Chase,NULL,s_grdchase1},	// s_grdchase4
	{false,SPR_GRD_DIE_1,15,NULL,(statefunc)A_DeathScream,s_grddie2},	// s_grddie1
	{false,SPR_GRD_DIE_2,15,NULL,NULL,s_grddie3},	// s_grddie2
	{false,SPR_GRD_DIE_3,15,NULL,NULL,s_grddie4},	// s_grddie3
	{false,SPR_GRD_DEAD,0,NULL,NULL,s_grddie4},	// s_grddie4
#ifndef SPEAR
	{false,SPR_BLINKY_W1,10,(statefunc)T_Ghosts,NULL,s_blinkychase2},	// s_blinkychase1
	{false,SPR_BLINKY_W2,10,(statefunc)T_Ghosts,NULL,s_blinkychase1},	// s_blinkychase2
	{false,SPR_INKY_W1,10,(statefunc)T_Ghosts,NULL,s_inkychase2},	// s_inkychase1
	{false,SPR_INKY_W2,10,(statefunc)T_Ghosts,NULL,s_inkychase1},	// s_inkychase2
	{false,SPR_PINKY_W1,10,(statefunc)T_Ghosts,NULL,s_pinkychase2},	// s_pinkychase1
	{false,SPR_PINKY_W2,10,(statefunc)T_Ghosts,NULL,s_pinkychase1},	// s_pinkychase2
	{false,SPR_CLYDE_W1,10,(statefunc)T_Ghosts,NULL,s_clydechase2},	// s_clydechase1
	{false,SPR_CLYDE_W2,10,(statefunc)T_Ghosts,NULL,s_clydechase1},	// s_clydechase2
#endif
	{true,SPR_DOG_W1_1,20,(statefunc)T_Path,NULL,s_dogpath1s},	// s_dogpath1
	{true,SPR_DOG_W1_1,5,NULL,NULL,s_dogpath2},	// s_dogpath1s
	{true,SPR_DOG_W2_1,15,(statefunc)T_Path,NULL,s_dogpath3},	// s_dogpath2
	{true,SPR_DOG_W3_1,20,(statefunc)T_Path,NULL,s_dogpath3s},	// s_dogpath3
	{true,SPR_DOG_W3_1,5,NULL,NULL,s_dogpath4},	// s_dogpath3s
	{true,SPR_DOG_W4_1,15,(statefunc)T_Path,NULL,s_dogpath1},	// s_dogpath4
	{false,SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump2},	// s_dogjump1
	{false,SPR_DOG_JUMP2,10,NULL,(statefunc)T_Bite,s_dogjump3},	// s_dogjump2
	{false,SPR_DOG_JUMP3,10,NULL,NULL,s_dogjump4},	// s_dogjump3
	{false,SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump5},	// s_dogjump4
	{false,SPR_DOG_W1_1,10,NULL,NULL,s_dogchase1},	// s_dogjump5
	{true,SPR_DOG_W1_1,10,(statefunc)T_DogChase,NULL,s_dogchase1s},	// s_dogchase1
	{true,SPR_DOG_W1_1,3,NULL,NULL,s_dogchase2},	// s_dogchase1s
	{true,SPR_DOG_W2_1,8,(statefunc)T_DogChase,NULL,s_dogchase3},	// s_dogchase2
	{true,SPR_DOG_W3_1,10,(statefunc)T_DogChase,NULL,s_dogchase3s},	// s_dogchase3
	{true,SPR_DOG_W3_1,3,NULL,NULL,s_dogchase4},	// s_dogchase3s
	{true,SPR_DOG_W4_1,8,(statefunc)T_DogChase,NULL,s_dogchase1},	// s_dogchase4
	{false,SPR_DOG_DIE_1,15,NULL,(statefunc)A_DeathScream,s_dogdie2},	// s_dogdie1
	{false,SPR_DOG_DIE_2,15,NULL,NULL,s_dogdie3},	// s_dogdie2
	{false,SPR_DOG_DIE_3,15,NULL,NULL,s_dogdead},	// s_dogdie3
	{false,SPR_DOG_DEAD,15,NULL,NULL,s_dogdead},	// s_dogdead
	{true,SPR_OFC_S_1,0,(statefunc)T_Stand,NULL,s_ofcstand},	// s_ofcstand
	{true,SPR_OFC_W1_1,20,(statefunc)T_Path,NULL,s_ofcpath1s},	// s_ofcpath1
	{true,SPR_OFC_W1_1,5,NULL,NULL,s_ofcpath2},	// s_ofcpath1s
	{true,SPR_OFC_W2_1,15,(statefunc)T_Path,NULL,s_ofcpath3},	// s_ofcpath2
	{true,SPR_OFC_W3_1,20,(statefunc)T_Path,NULL,s_ofcpath3s},	// s_ofcpath3
	{true,SPR_OFC_W3_1,5,NULL,NULL,s_ofcpath4},	// s_ofcpath3s
	{true,SPR_OFC_W4_1,15,(statefunc)T_Path,NULL,s_ofcpath1},	// s_ofcpath4
	{2,SPR_OFC_PAIN_1,10,NULL,NULL,s_ofcchase1},	// s_ofcpain
	{2,SPR_OFC_PAIN_2,10,NULL,NULL,s_ofcchase1},	// s_ofcpain1
	{false,SPR_OFC_SHOOT1,6,NULL,NULL,s_ofcshoot2},	// s_ofcshoot1
	{false,SPR_OFC_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ofcshoot3},	// s_ofcshoot2
	{false,SPR_OFC_SHOOT3,10,NULL,NULL,s_ofcchase1},	// s_ofcshoot3
	{true,SPR_OFC_W1_1,10,(statefunc)T_Chase,NULL,s_ofcchase1s},	// s_ofcchase1
	{true,SPR_OFC_W1_1,3,NULL,NULL,s_ofcchase2},	// s_ofcchase1s
	{true,SPR_OFC_W2_1,8,(statefunc)T_Chase,NULL,s_ofcchase3},	// s_ofcchase2
	{true,SPR_OFC_W3_1,10,(statefunc)T_Chase,NULL,s_ofcchase3s},	// s_ofcchase3
	{true,SPR_OFC_W3_1,3,NULL,NULL,s_ofcchase4},	// s_ofcchase3s
	{true,SPR_OFC_W4_1,8,(statefunc)T_Chase,NULL,s_ofcchase1},	// s_ofcchase4
	{false,SPR_OFC_DIE_1,11,NULL,(statefunc)A_DeathScream,s_ofcdie2},	// s_ofcdie1
	{false,SPR_OFC_DIE_2,11,NULL,NULL,s_ofcdie3},	// s_ofcdie2
	{false,SPR_OFC_DIE_3,11,NULL,NULL,s_ofcdie4},	// s_ofcdie3
	{false,SPR_OFC_DIE_4,11,NULL,NULL,s_ofcdie5},	// s_ofcdie4
	{false,SPR_OFC_DEAD,0,NULL,NULL,s_ofcdie5},	// s_ofcdie5
	{true,SPR_MUT_S_1,0,(statefunc)T_Stand,NULL,s_mutstand},	// s_mutstand
	{true,SPR_MUT_W1_1,20,(statefunc)T_Path,NULL,s_mutpath1s},	// s_mutpath1
	{true,SPR_MUT_W1_1,5,NULL,NULL,s_mutpath2},	// s_mutpath1s
	{true,SPR_MUT_W2_1,15,(statefunc)T_Path,NULL,s_mutpath3},	// s_mutpath2
	{true,SPR_MUT_W3_1,20,(statefunc)T_Path,NULL,s_mutpath3s},	// s_mutpath3
	{true,SPR_MUT_W3_1,5,NULL,NULL,s_mutpath4},	// s_mutpath3s
	{true,SPR_MUT_W4_1,15,(statefunc)T_Path,NULL,s_mutpath1},	// s_mutpath4
	{2,SPR_MUT_PAIN_1,10,NULL,NULL,s_mutchase1},	// s_mutpain
	{2,SPR_MUT_PAIN_2,10,NULL,NULL,s_mutchase1},	// s_mutpain1
	{false,SPR_MUT_SHOOT1,6,NULL,(statefunc)T_Shoot,s_mutshoot2},	// s_mutshoot1
	{false,SPR_MUT_SHOOT2,20,NULL,NULL,s_mutshoot3},	// s_mutshoot2
	{false,SPR_MUT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mutshoot4},	// s_mutshoot3
	{false,SPR_MUT_SHOOT4,20,NULL,NULL,s_mutchase1},	// s_mutshoot4
	{true,SPR_MUT_W1_1,10,(statefunc)T_Chase,NULL,s_mutchase1s},	// s_mutchase1
	{true,SPR_MUT_W1_1,3,NULL,NULL,s_mutchase2},	// s_mutchase1s
	{true,SPR_MUT_W2_1,8,(statefunc)T_Chase,NULL,s_mutchase3},	// s_mutchase2
	{true,SPR_MUT_W3_1,10,(statefunc)T_Chase,NULL,s_mutchase3s},	// s_mutchase3
	{true,SPR_MUT_W3_1,3,NULL,NULL,s_mutchase4},	// s_mutchase3s
	{true,SPR_MUT_W4_1,8,(statefunc)T_Chase,NULL,s_mutchase1},	// s_mutchase4
	{false,SPR_MUT_DIE_1,7,NULL,(statefunc)A_DeathScream,s_mutdie2},	// s_mutdie1
	{false,SPR_MUT_DIE_2,7,NULL,NULL,s_mutdie3},	// s_mutdie2
	{false,SPR_MUT_DIE_3,7,NULL,NULL,s_mutdie4},	// s_mutdie3
	{false,SPR_MUT_DIE_4,7,NULL,NULL,s_mutdie5},	// s_mutdie4
	{false,SPR_MUT_DEAD,0,NULL,NULL,s_mutdie5},	// s_mutdie5
	{true,SPR_SS_S_1,0,(statefunc)T_Stand,NULL,s_ssstand},	// s_ssstand
	{true,SPR_SS_W1_1,20,(statefunc)T_Path,NULL,s_sspath1s},	// s_sspath1
	{true,SPR_SS_W1_1,5,NULL,NULL,s_sspath2},	// s_sspath1s
	{true,SPR_SS_W2_1,15,(statefunc)T_Path,NULL,s_sspath3},	// s_sspath2
	{true,SPR_SS_W3_1,20,(statefunc)T_Path,NULL,s_sspath3s},	// s_sspath3
	{true,SPR_SS_W3_1,5,NULL,NULL,s_sspath4},	// s_sspath3s
	{true,SPR_SS_W4_1,15,(statefunc)T_Path,NULL,s_sspath1},	// s_sspath4
	{2,SPR_SS_PAIN_1,10,NULL,NULL,s_sschase1},	// s_sspain
	{2,SPR_SS_PAIN_2,10,NULL,NULL,s_sschase1},	// s_sspain1
	{false,SPR_SS_SHOOT1,20,NULL,NULL,s_ssshoot2},	// s_ssshoot1
	{false,SPR_SS_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ssshoot3},	// s_ssshoot2
	{false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot4},	// s_ssshoot3
	{false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot5},	// s_ssshoot4
	{false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot6},	// s_ssshoot5
	{false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot7},	// s_ssshoot6
	{false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot8},	// s_ssshoot7
	{false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot9},	// s_ssshoot8
	{false,SPR_SS_SHOOT3,10,NULL,NULL,s_sschase1},	// s_ssshoot9
	{true,SPR_SS_W1_1,10,(statefunc)T_Chase,NULL,s_sschase1s},	// s_sschase1
	{true,SPR_SS_W1_1,3,NULL,NULL,s_sschase2},	// s_sschase1s
	{true,SPR_SS_W2_1,8,(statefunc)T_Chase,NULL,s_sschase3},	// s_sschase2
	{true,SPR_SS_W3_1,10,(statefunc)T_Chase,NULL,s_sschase3s},	// s_sschase3
	{true,SPR_SS_W3_1,3,NULL,NULL,s_sschase4},	// s_sschase3s
	{true,SPR_SS_W4_1,8,(statefunc)T_Chase,NULL,s_sschase1},	// s_sschase4
	{false,SPR_SS_DIE_1,15,NULL,(statefunc)A_DeathScream,s_ssdie2},	// s_ssdie1
	{false,SPR_SS_DIE_2,15,NULL,NULL,s_ssdie3},	// s_ssdie2
	{false,SPR_SS_DIE_3,15,NULL,NULL,s_ssdie4},	// s_ssdie3
	{false,SPR_SS_DEAD,0,NULL,NULL,s_ssdie4},	// s_ssdie4
#ifndef SPEAR
	{false,SPR_BOSS_W1,0,(statefunc)T_Stand,NULL,s_bossstand},	// s_bossstand
	{false,SPR_BOSS_W1,10,(statefunc)T_Chase,NULL,s_bosschase1s},	// s_bosschase1
	{false,SPR_BOSS_W1,3,NULL,NULL,s_bosschase2},	// s_bosschase1s
	{false,SPR_BOSS_W2,8,(statefunc)T_Chase,NULL,s_bosschase3},	// s_bosschase2
	{false,SPR_BOSS_W3,10,(statefunc)T_Chase,NULL,s_bosschase3s},	// s_bosschase3
	{false,SPR_BOSS_W3,3,NULL,NULL,s_bosschase4},	// s_bosschase3s
	{false,SPR_BOSS_W4,8,(statefunc)T_Chase,NULL,s_bosschase1},	// s_bosschase4
	{false,SPR_BOSS_DIE1,15,NULL,(statefunc)A_DeathScream,s_bossdie2},	// s_bossdie1
	{false,SPR_BOSS_DIE2,15,NULL,NULL,s_bossdie3},	// s_bossdie2
	{false,SPR_BOSS_DIE3,15,NULL,NULL,s_bossdie4},	// s_bossdie3
	{false,SPR_BOSS_DEAD,0,NULL,NULL,s_bossdie4},	// s_bossdie4
	{false,SPR_BOSS_SHOOT1,30,NULL,NULL,s_bossshoot2},	// s_bossshoot1
	{false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot3},	// s_bossshoot2
	{false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot4},	// s_bossshoot3
	{false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot5},	// s_bossshoot4
	{false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot6},	// s_bossshoot5
	{false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot7},	// s_bossshoot6
	{false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot8},	// s_bossshoot7
	{false,SPR_BOSS_SHOOT1,10,NULL,NULL,s_bosschase1},	// s_bossshoot8
	{false,SPR_GRETEL_W1,0,(statefunc)T_Stand,NULL,s_gretelstand},	// s_gretelstand
	{false,SPR_GRETEL_W1,10,(statefunc)T_Chase,NULL,s_gretelchase1s},	// s_gretelchase1
	{false,SPR_GRETEL_W1,3,NULL,NULL,s_gretelchase2},	// s_gretelchase1s
	{false,SPR_GRETEL_W2,8,(statefunc)T_Chase,NULL,s_gretelchase3},	// s_gretelchase2
	{false,SPR_GRETEL_W3,10,(statefunc)T_Chase,NULL,s_gretelchase3s},	// s_gretelchase3
	{false,SPR_GRETEL_W3,3,NULL,NULL,s_gretelchase4},	// s_gretelchase3s
	{false,SPR_GRETEL_W4,8,(statefunc)T_Chase,NULL,s_gretelchase1},	// s_gretelchase4
	{false,SPR_GRETEL_DIE1,15,NULL,(statefunc)A_DeathScream,s_greteldie2},	// s_greteldie1
	{false,SPR_GRETEL_DIE2,15,NULL,NULL,s_greteldie3},	// s_greteldie2
	{false,SPR_GRETEL_DIE3,15,NULL,NULL,s_greteldie4},	// s_greteldie3
	{false,SPR_GRETEL_DEAD,0,NULL,NULL,s_greteldie4},	// s_greteldie4
	{false,SPR_GRETEL_SHOOT1,30,NULL,NULL,s_gretelshoot2},	// s_gretelshoot1
	{false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot3},	// s_gretelshoot2
	{false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot4},	// s_gretelshoot3
	{false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot5},	// s_gretelshoot4
	{false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot6},	// s_gretelshoot5
	{false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot7},	// s_gretelshoot6
	{false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot8},	// s_gretelshoot7
	{false,SPR_GRETEL_SHOOT1,10,NULL,NULL,s_gretelchase1},	// s_gretelshoot8
#endif
#ifdef SPEAR
	{false,SPR_TRANS_W1,0,(statefunc)T_Stand,NULL,s_transstand},	// s_transstand
	{false,SPR_TRANS_W1,10,(statefunc)T_Chase,NULL,s_transchase1s},	// s_transchase1
	{false,SPR_TRANS_W1,3,NULL,NULL,s_transchase2},	// s_transchase1s
	{false,SPR_TRANS_W2,8,(statefunc)T_Chase,NULL,s_transchase3},	// s_transchase2
	{false,SPR_TRANS_W3,10,(statefunc)T_Chase,NULL,s_transchase3s},	// s_transchase3
	{false,SPR_TRANS_W3,3,NULL,NULL,s_transchase4},	// s_transchase3s
	{false,SPR_TRANS_W4,8,(statefunc)T_Chase,NULL,s_transchase1},	// s_transchase4
	{false,SPR_TRANS_W1,1,NULL,(statefunc)A_DeathScream,s_transdie01},	// s_transdie0
	{false,SPR_TRANS_W1,1,NULL,NULL,s_transdie1},	// s_transdie01
	{false,SPR_TRANS_DIE1,15,NULL,NULL,s_transdie2},	// s_transdie1
	{false,SPR_TRANS_DIE2,15,NULL,NULL,s_transdie3},	// s_transdie2
	{false,SPR_TRANS_DIE3,15,NULL,NULL,s_transdie4},	// s_transdie3
	{false,SPR_TRANS_DEAD,0,NULL,NULL,s_transdie4},	// s_transdie4
	{false,SPR_TRANS_SHOOT1,30,NULL,NULL,s_transshoot2},	// s_transshoot1
	{false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot3},	// s_transshoot2
	{false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot4},	// s_transshoot3
	{false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot5},	// s_transshoot4
	{false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot6},	// s_transshoot5
	{false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot7},	// s_transshoot6
	{false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot8},	// s_transshoot7
	{false,SPR_TRANS_SHOOT1,10,NULL,NULL,s_transchase1},	// s_transshoot8
	{false,SPR_UBER_W1,0,(statefunc)T_Stand,NULL,s_uberstand},	// s_uberstand
	{false,SPR_UBER_W1,10,(statefunc)T_Chase,NULL,s_uberchase1s},	// s_uberchase1
	{false,SPR_UBER_W1,3,NULL,NULL,s_uberchase2},	// s_uberchase1s
	{false,SPR_UBER_W2,8,(statefunc)T_Chase,NULL,s_uberchase3},	// s_uberchase2
	{false,SPR_UBER_W3,10,(statefunc)T_Chase,NULL,s_uberchase3s},	// s_uberchase3
	{false,SPR_UBER_W3,3,NULL,NULL,s_uberchase4},	// s_uberchase3s
	{false,SPR_UBER_W4,8,(statefunc)T_Chase,NULL,s_uberchase1},	// s_uberchase4
	{false,SPR_UBER_W1,1,NULL,(statefunc)A_DeathScream,s_uberdie01},	// s_uberdie0
	{false,SPR_UBER_W1,1,NULL,NULL,s_uberdie1},	// s_uberdie01
	{false,SPR_UBER_DIE1,15,NULL,NULL,s_uberdie2},	// s_uberdie1
	{false,SPR_UBER_DIE2,15,NULL,NULL,s_uberdie3},	// s_uberdie2
	{false,SPR_UBER_DIE3,15,NULL,NULL,s_uberdie4},	// s_uberdie3
	{false,SPR_UBER_DIE4,15,NULL,NULL,s_uberdie5},	// s_uberdie4
	{false,SPR_UBER_DEAD,0,NULL,NULL,s_uberdie5},	// s_uberdie5
	{false,SPR_UBER_SHOOT1,30,NULL,NULL,s_ubershoot2},	// s_ubershoot1
	{false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot3},	// s_ubershoot2
	{false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot4},	// s_ubershoot3
	{false,SPR_UBER_SHOOT4,12,NULL,(statefunc)T_UShoot,s_ubershoot5},	// s_ubershoot4
	{false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot6},	// s_ubershoot5
	{false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot7},	// s_ubershoot6
	{false,SPR_UBER_SHOOT1,12,NULL,NULL,s_uberchase1},	// s_ubershoot7
	{false,SPR_WILL_W1,0,(statefunc)T_Stand,NULL,s_willstand},	// s_willstand
	{false,SPR_WILL_W1,10,(statefunc)T_Will,NULL,s_willchase1s},	// s_willchase1
	{false,SPR_WILL_W1,3,NULL,NULL,s_willchase2},	// s_willchase1s
	{false,SPR_WILL_W2,8,(statefunc)T_Will,NULL,s_willchase3},	// s_willchase2
	{false,SPR_WILL_W3,10,(statefunc)T_Will,NULL,s_willchase3s},	// s_willchase3
	{false,SPR_WILL_W3,3,NULL,NULL,s_willchase4},	// s_willchase3s
	{false,SPR_WILL_W4,8,(statefunc)T_Will,NULL,s_willchase1},	// s_willchase4
	{false,SPR_WILL_W1,1,NULL,NULL,s_willdie1},	// s_willdeathcam
	{false,SPR_WILL_W1,1,NULL,(statefunc)A_DeathScream,s_willdie2},	// s_willdie1
	{false,SPR_WILL_W1,10,NULL,NULL,s_willdie3},	// s_willdie2
	{false,SPR_WILL_DIE1,10,NULL,NULL,s_willdie4},	// s_willdie3
	{false,SPR_WILL_DIE2,10,NULL,NULL,s_willdie5},	// s_willdie4
	{false,SPR_WILL_DIE3,10,NULL,NULL,s_willdie6},	// s_willdie5
	{false,SPR_WILL_DEAD,20,NULL,NULL,s_willdie6},	// s_willdie6
	{false,SPR_WILL_SHOOT1,30,NULL,NULL,s_willshoot2},	// s_willshoot1
	{false,SPR_WILL_SHOOT2,10,NULL,(statefunc)T_Launch,s_willshoot3},	// s_willshoot2
	{false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot4},	// s_willshoot3
	{false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willshoot5},	// s_willshoot4
	{false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot6},	// s_willshoot5
	{false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willchase1},	// s_willshoot6
	{false,SPR_DEATH_W1,0,(statefunc)T_Stand,NULL,s_deathstand},	// s_deathstand
	{false,SPR_DEATH_W1,10,(statefunc)T_Will,NULL,s_deathchase1s},	// s_deathchase1
	{false,SPR_DEATH_W1,3,NULL,NULL,s_deathchase2},	// s_deathchase1s
	{false,SPR_DEATH_W2,8,(statefunc)T_Will,NULL,s_deathchase3},	// s_deathchase2
	{false,SPR_DEATH_W3,10,(statefunc)T_Will,NULL,s_deathchase3s},	// s_deathchase3
	{false,SPR_DEATH_W3,3,NULL,NULL,s_deathchase4},	// s_deathchase3s
	{false,SPR_DEATH_W4,8,(statefunc)T_Will,NULL,s_deathchase1},	// s_deathchase4
	{false,SPR_DEATH_W1,1,NULL,NULL,s_deathdie1},	// s_deathdeathcam
	{false,SPR_DEATH_W1,1,NULL,(statefunc)A_DeathScream,s_deathdie2},	// s_deathdie1
	{false,SPR_DEATH_W1,10,NULL,NULL,s_deathdie3},	// s_deathdie2
	{false,SPR_DEATH_DIE1,10,NULL,NULL,s_deathdie4},	// s_deathdie3
	{false,SPR_DEATH_DIE2,10,NULL,NULL,s_deathdie5},	// s_deathdie4
	{false,SPR_DEATH_DIE3,10,NULL,NULL,s_deathdie6},	// s_deathdie5
	{false,SPR_DEATH_DIE4,10,NULL,NULL,s_deathdie7},	// s_deathdie6
	{false,SPR_DEATH_DIE5,10,NULL,NULL,s_deathdie8},	// s_deathdie7
	{false,SPR_DEATH_DIE6,10,NULL,NULL,s_deathdie9},	// s_deathdie8
	{false,SPR_DEATH_DEAD,0,NULL,NULL,s_deathdie9},	// s_deathdie9
	{false,SPR_DEATH_SHOOT1,30,NULL,NULL,s_deathshoot2},	// s_deathshoot1
	{false,SPR_DEATH_SHOOT2,10,NULL,(statefunc)T_Launch,s_deathshoot3},	// s_deathshoot2
	{false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathshoot4},	// s_deathshoot3
	{false,SPR_DEATH_SHOOT3,10,NULL,(statefunc)T_Launch,s_deathshoot5},	// s_deathshoot4
	{false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathchase1},	// s_deathshoot5
	{false,SPR_ANGEL_W1,0,(statefunc)T_Stand,NULL,s_angelstand},	// s_angelstand
	{false,SPR_ANGEL_W1,10,(statefunc)T_Will,NULL,s_angelchase1s},	// s_angelchase1
	{false,SPR_ANGEL_W1,3,NULL,NULL,s_angelchase2},	// s_angelchase1s
	{false,SPR_ANGEL_W2,8,(statefunc)T_Will,NULL,s_angelchase3},	// s_angelchase2
	{false,SPR_ANGEL_W3,10,(statefunc)T_Will,NULL,s_angelchase3s},	// s_angelchase3
	{false,SPR_ANGEL_W3,3,NULL,NULL,s_angelchase4},	// s_angelchase3s
	{false,SPR_ANGEL_W4,8,(statefunc)T_Will,NULL,s_angelchase1},	// s_angelchase4
	{false,SPR_ANGEL_W1,1,NULL,(statefunc)A_DeathScream,s_angeldie11},	// s_angeldie1
	{false,SPR_ANGEL_W1,1,NULL,NULL,s_angeldie2},	// s_angeldie11
	{false,SPR_ANGEL_DIE1,10,NULL,(statefunc)A_Slurpie,s_angeldie3},	// s_angeldie2
	{false,SPR_ANGEL_DIE2,10,NULL,NULL,s_angeldie4},	// s_angeldie3
	{false,SPR_ANGEL_DIE3,10,NULL,NULL,s_angeldie5},	// s_angeldie4
	{false,SPR_ANGEL_DIE4,10,NULL,NULL,s_angeldie6},	// s_angeldie5
	{false,SPR_ANGEL_DIE5,10,NULL,NULL,s_angeldie7},	// s_angeldie6
	{false,SPR_ANGEL_DIE6,10,NULL,NULL,s_angeldie8},	// s_angeldie7
	{false,SPR_ANGEL_DIE7,10,NULL,NULL,s_angeldie9},	// s_angeldie8
	{false,SPR_ANGEL_DEAD,130,NULL,(statefunc)A_Victory,s_angeldie9},	// s_angeldie9
	{false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_StartAttack,s_angelshoot2},	// s_angelshoot1
	{false,SPR_ANGEL_SHOOT2,20,NULL,(statefunc)T_Launch,s_angelshoot3},	// s_angelshoot2
	{false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_Relaunch,s_angelshoot2},	// s_angelshoot3
	{false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired2},	// s_angeltired
	{false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired3},	// s_angeltired2
	{false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired4},	// s_angeltired3
	{false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired5},	// s_angeltired4
	{false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired6},	// s_angeltired5
	{false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired7},	// s_angeltired6
	{false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angelchase1},	// s_angeltired7
	{false,SPR_SPARK1,6,(statefunc)T_Projectile,NULL,s_spark2},	// s_spark1
	{false,SPR_SPARK2,6,(statefunc)T_Projectile,NULL,s_spark3},	// s_spark2
	{false,SPR_SPARK3,6,(statefunc)T_Projectile,NULL,s_spark4},	// s_spark3
	{false,SPR_SPARK4,6,(statefunc)T_Projectile,NULL,s_spark1},	// s_spark4
	{false,SPR_SPECTRE_W1,10,(statefunc)T_Stand,NULL,s_spectrewait2},	// s_spectrewait1
	{false,SPR_SPECTRE_W2,10,(statefunc)T_Stand,NULL,s_spectrewait3},	// s_spectrewait2
	{false,SPR_SPECTRE_W3,10,(statefunc)T_Stand,NULL,s_spectrewait4},	// s_spectrewait3
	{false,SPR_SPECTRE_W4,10,(statefunc)T_Stand,NULL,s_spectrewait1},	// s_spectrewait4
	{false,SPR_SPECTRE_W1,10,(statefunc)T_Ghosts,NULL,s_spectrechase2},	// s_spectrechase1
	{false,SPR_SPECTRE_W2,10,(statefunc)T_Ghosts,NULL,s_spectrechase3},	// s_spectrechase2
	{false,SPR_SPECTRE_W3,10,(statefunc)T_Ghosts,NULL,s_spectrechase4},	// s_spectrechase3
	{false,SPR_SPECTRE_W4,10,(statefunc)T_Ghosts,NULL,s_spectrechase1},	// s_spectrechase4
	{false,SPR_SPECTRE_F1,10,NULL,NULL,s_spectredie2},	// s_spectredie1
	{false,SPR_SPECTRE_F2,10,NULL,NULL,s_spectredie3},	// s_spectredie2
	{false,SPR_SPECTRE_F3,10,NULL,NULL,s_spectredie4},	// s_spectredie3
	{false,SPR_SPECTRE_F4,300,NULL,NULL,s_spectrewake},	// s_spectredie4
	{false,SPR_SPECTRE_F4,10,NULL,(statefunc)A_Dormant,s_spectrewake},	// s_spectrewake
#endif
#ifndef SPEAR
	{false,SPR_SCHABB_W1,0,(statefunc)T_Stand,NULL,s_schabbstand},	// s_schabbstand
	{false,SPR_SCHABB_W1,10,(statefunc)T_Schabb,NULL,s_schabbchase1s},	// s_schabbchase1
	{false,SPR_SCHABB_W1,3,NULL,NULL,s_schabbchase2},	// s_schabbchase1s
	{false,SPR_SCHABB_W2,8,(statefunc)T_Schabb,NULL,s_schabbchase3},	// s_schabbchase2
	{false,SPR_SCHABB_W3,10,(statefunc)T_Schabb,NULL,s_schabbchase3s},	// s_schabbchase3
	{false,SPR_SCHABB_W3,3,NULL,NULL,s_schabbchase4},	// s_schabbchase3s
	{false,SPR_SCHABB_W4,8,(statefunc)T_Schabb,NULL,s_schabbchase1},	// s_schabbchase4
	{false,SPR_SCHABB_W1,1,NULL,NULL,s_schabbdie1},	// s_schabbdeathcam
	{false,SPR_SCHABB_W1,10,NULL,(statefunc)A_DeathScream,s_schabbdie2},	// s_schabbdie1
	{false,SPR_SCHABB_W1,10,NULL,NULL,s_schabbdie3},	// s_schabbdie2
	{false,SPR_SCHABB_DIE1,10,NULL,NULL,s_schabbdie4},	// s_schabbdie3
	{false,SPR_SCHABB_DIE2,10,NULL,NULL,s_schabbdie5},	// s_schabbdie4
	{false,SPR_SCHABB_DIE3,10,NULL,NULL,s_schabbdie6},	// s_schabbdie5
	{false,SPR_SCHABB_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_schabbdie6},	// s_schabbdie6
	{false,SPR_SCHABB_SHOOT1,30,NULL,NULL,s_schabbshoot2},	// s_schabbshoot1
	{false,SPR_SCHABB_SHOOT2,10,NULL,(statefunc)T_SchabbThrow,s_schabbchase1},	// s_schabbshoot2
	{false,SPR_HYPO1,6,(statefunc)T_Projectile,NULL,s_needle2},	// s_needle1
	{false,SPR_HYPO2,6,(statefunc)T_Projectile,NULL,s_needle3},	// s_needle2
	{false,SPR_HYPO3,6,(statefunc)T_Projectile,NULL,s_needle4},	// s_needle3
	{false,SPR_HYPO4,6,(statefunc)T_Projectile,NULL,s_needle1},	// s_needle4
	{false,SPR_GIFT_W1,0,(statefunc)T_Stand,NULL,s_giftstand},	// s_giftstand
	{false,SPR_GIFT_W1,10,(statefunc)T_Gift,NULL,s_giftchase1s},	// s_giftchase1
	{false,SPR_GIFT_W1,3,NULL,NULL,s_giftchase2},	// s_giftchase1s
	{false,SPR_GIFT_W2,8,(statefunc)T_Gift,NULL,s_giftchase3},	// s_giftchase2
	{false,SPR_GIFT_W3,10,(statefunc)T_Gift,NULL,s_giftchase3s},	// s_giftchase3
	{false,SPR_GIFT_W3,3,NULL,NULL,s_giftchase4},	// s_giftchase3s
	{false,SPR_GIFT_W4,8,(statefunc)T_Gift,NULL,s_giftchase1},	// s_giftchase4
	{false,SPR_GIFT_W1,1,NULL,NULL,s_giftdie1},	// s_giftdeathcam
	{false,SPR_GIFT_W1,1,NULL,(statefunc)A_DeathScream,s_giftdie2},	// s_giftdie1
	{false,SPR_GIFT_W1,10,NULL,NULL,s_giftdie3},	// s_giftdie2
	{false,SPR_GIFT_DIE1,10,NULL,NULL,s_giftdie4},	// s_giftdie3
	{false,SPR_GIFT_DIE2,10,NULL,NULL,s_giftdie5},	// s_giftdie4
	{false,SPR_GIFT_DIE3,10,NULL,NULL,s_giftdie6},	// s_giftdie5
	{false,SPR_GIFT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_giftdie6},	// s_giftdie6
	{false,SPR_GIFT_SHOOT1,30,NULL,NULL,s_giftshoot2},	// s_giftshoot1
	{false,SPR_GIFT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_giftchase1},	// s_giftshoot2
	{false,SPR_FAT_W1,0,(statefunc)T_Stand,NULL,s_fatstand},	// s_fatstand
	{false,SPR_FAT_W1,10,(statefunc)T_Fat,NULL,s_fatchase1s},	// s_fatchase1
	{false,SPR_FAT_W1,3,NULL,NULL,s_fatchase2},	// s_fatchase1s
	{false,SPR_FAT_W2,8,(statefunc)T_Fat,NULL,s_fatchase3},	// s_fatchase2
	{false,SPR_FAT_W3,10,(statefunc)T_Fat,NULL,s_fatchase3s},	// s_fatchase3
	{false,SPR_FAT_W3,3,NULL,NULL,s_fatchase4},	// s_fatchase3s
	{false,SPR_FAT_W4,8,(statefunc)T_Fat,NULL,s_fatchase1},	// s_fatchase4
	{false,SPR_FAT_W1,1,NULL,NULL,s_fatdie1},	// s_fatdeathcam
	{false,SPR_FAT_W1,1,NULL,(statefunc)A_DeathScream,s_fatdie2},	// s_fatdie1
	{false,SPR_FAT_W1,10,NULL,NULL,s_fatdie3},	// s_fatdie2
	{false,SPR_FAT_DIE1,10,NULL,NULL,s_fatdie4},	// s_fatdie3
	{false,SPR_FAT_DIE2,10,NULL,NULL,s_fatdie5},	// s_fatdie4
	{false,SPR_FAT_DIE3,10,NULL,NULL,s_fatdie6},	// s_fatdie5
	{false,SPR_FAT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_fatdie6},	// s_fatdie6
	{false,SPR_FAT_SHOOT1,30,NULL,NULL,s_fatshoot2},	// s_fatshoot1
	{false,SPR_FAT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_fatshoot3},	// s_fatshoot2
	{false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot4},	// s_fatshoot3
	{false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatshoot5},	// s_fatshoot4
	{false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot6},	// s_fatshoot5
	{false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatchase1},	// s_fatshoot6
	{false,SPR_FAKE_W1,0,(statefunc)T_Stand,NULL,s_fakestand},	// s_fakestand
	{false,SPR_FAKE_W1,10,(statefunc)T_Fake,NULL,s_fakechase1s},	// s_fakechase1
	{false,SPR_FAKE_W1,3,NULL,NULL,s_fakechase2},	// s_fakechase1s
	{false,SPR_FAKE_W2,8,(statefunc)T_Fake,NULL,s_fakechase3},	// s_fakechase2
	{false,SPR_FAKE_W3,10,(statefunc)T_Fake,NULL,s_fakechase3s},	// s_fakechase3
	{false,SPR_FAKE_W3,3,NULL,NULL,s_fakechase4},	// s_fakechase3s
	{false,SPR_FAKE_W4,8,(statefunc)T_Fake,NULL,s_fakechase1},	// s_fakechase4
	{false,SPR_FAKE_DIE1,10,NULL,(statefunc)A_DeathScream,s_fakedie2},	// s_fakedie1
	{false,SPR_FAKE_DIE2,10,NULL,NULL,s_fakedie3},	// s_fakedie2
	{false,SPR_FAKE_DIE3,10,NULL,NULL,s_fakedie4},	// s_fakedie3
	{false,SPR_FAKE_DIE4,10,NULL,NULL,s_fakedie5},	// s_fakedie4
	{false,SPR_FAKE_DIE5,10,NULL,NULL,s_fakedie6},	// s_fakedie5
	{false,SPR_FAKE_DEAD,0,NULL,NULL,s_fakedie6},	// s_fakedie6
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot2},	// s_fakeshoot1
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot3},	// s_fakeshoot2
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot4},	// s_fakeshoot3
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot5},	// s_fakeshoot4
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot6},	// s_fakeshoot5
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot7},	// s_fakeshoot6
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot8},	// s_fakeshoot7
	{false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot9},	// s_fakeshoot8
	{false,SPR_FAKE_SHOOT,8,NULL,NULL,s_fakechase1},	// s_fakeshoot9
	{false,SPR_FIRE1,6,NULL,(statefunc)T_Projectile,s_fire2},	// s_fire1
	{false,SPR_FIRE2,6,NULL,(statefunc)T_Projectile,s_fire1},	// s_fire2
	{false,SPR_MECHA_W1,0,(statefunc)T_Stand,NULL,s_mechastand},	// s_mechastand
	{false,SPR_MECHA_W1,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase1s},	// s_mechachase1
	{false,SPR_MECHA_W1,6,NULL,NULL,s_mechachase2},	// s_mechachase1s
	{false,SPR_MECHA_W2,8,(statefunc)T_Chase,NULL,s_mechachase3},	// s_mechachase2
	{false,SPR_MECHA_W3,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase3s},	// s_mechachase3
	{false,SPR_MECHA_W3,6,NULL,NULL,s_mechachase4},	// s_mechachase3s
	{false,SPR_MECHA_W4,8,(statefunc)T_Chase,NULL,s_mechachase1},	// s_mechachase4
	{false,SPR_MECHA_DIE1,10,NULL,(statefunc)A_DeathScream,s_mechadie2},	// s_mechadie1
	{false,SPR_MECHA_DIE2,10,NULL,NULL,s_mechadie3},	// s_mechadie2
	{false,SPR_MECHA_DIE3,10,NULL,(statefunc)A_HitlerMorph,s_mechadie4},	// s_mechadie3
	{false,SPR_MECHA_DEAD,0,NULL,NULL,s_mechadie4},	// s_mechadie4
	{false,SPR_MECHA_SHOOT1,30,NULL,NULL,s_mechashoot2},	// s_mechashoot1
	{false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot3},	// s_mechashoot2
	{false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot4},	// s_mechashoot3
	{false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot5},	// s_mechashoot4
	{false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot6},	// s_mechashoot5
	{false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechachase1},	// s_mechashoot6
	{false,SPR_HITLER_W1,6,(statefunc)T_Chase,NULL,s_hitlerchase1s},	// s_hitlerchase1
	{false,SPR_HITLER_W1,4,NULL,NULL,s_hitlerchase2},	// s_hitlerchase1s
	{false,SPR_HITLER_W2,2,(statefunc)T_Chase,NULL,s_hitlerchase3},	// s_hitlerchase2
	{false,SPR_HITLER_W3,6,(statefunc)T_Chase,NULL,s_hitlerchase3s},	// s_hitlerchase3
	{false,SPR_HITLER_W3,4,NULL,NULL,s_hitlerchase4},	// s_hitlerchase3s
	{false,SPR_HITLER_W4,2,(statefunc)T_Chase,NULL,s_hitlerchase1},	// s_hitlerchase4
	{false,SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie1},	// s_hitlerdeathcam
	{false,SPR_HITLER_W1,1,NULL,(statefunc)A_DeathScream,s_hitlerdie2},	// s_hitlerdie1
	{false,SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie3},	// s_hitlerdie2
	{false,SPR_HITLER_DIE1,10,NULL,(statefunc)A_Slurpie,s_hitlerdie4},	// s_hitlerdie3
	{false,SPR_HITLER_DIE2,10,NULL,NULL,s_hitlerdie5},	// s_hitlerdie4
	{false,SPR_HITLER_DIE3,10,NULL,NULL,s_hitlerdie6},	// s_hitlerdie5
	{false,SPR_HITLER_DIE4,10,NULL,NULL,s_hitlerdie7},	// s_hitlerdie6
	{false,SPR_HITLER_DIE5,10,NULL,NULL,s_hitlerdie8},	// s_hitlerdie7
	{false,SPR_HITLER_DIE6,10,NULL,NULL,s_hitlerdie9},	// s_hitlerdie8
	{false,SPR_HITLER_DIE7,10,NULL,NULL,s_hitlerdie10},	// s_hitlerdie9
	{false,SPR_HITLER_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_hitlerdie10},	// s_hitlerdie10
	{false,SPR_HITLER_SHOOT1,30,NULL,NULL,s_hitlershoot2},	// s_hitlershoot1
	{false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot3},	// s_hitlershoot2
	{false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot4},	// s_hitlershoot3
	{false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot5},	// s_hitlershoot4
	{false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot6},	// s_hitlershoot5
	{false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlerchase1},	// s_hitlershoot6
	{false,SPR_BJ_W1,12,(statefunc)T_BJRun,NULL,s_bjrun1s},	// s_bjrun1
	{false,SPR_BJ_W1,3,NULL,NULL,s_bjrun2},	// s_bjrun1s
	{false,SPR_BJ_W2,8,(statefunc)T_BJRun,NULL,s_bjrun3},	// s_bjrun2
	{false,SPR_BJ_W3,12,(statefunc)T_BJRun,NULL,s_bjrun3s},	// s_bjrun3
	{false,SPR_BJ_W3,3,NULL,NULL,s_bjrun4},	// s_bjrun3s
	{false,SPR_BJ_W4,8,(statefunc)T_BJRun,NULL,s_bjrun1},	// s_bjrun4
	{false,SPR_BJ_JUMP1,14,(statefunc)T_BJJump,NULL,s_bjjump2},	// s_bjjump1
	{false,SPR_BJ_JUMP2,14,(statefunc)T_BJJump,(statefunc)T_BJYell,s_bjjump3},	// s_bjjump2
	{false,SPR_BJ_JUMP3,14,(statefunc)T_BJJump,NULL,s_bjjump4},	// s_bjjump3
	{false,SPR_BJ_JUMP4,300,NULL,(statefunc)T_BJDone,s_bjjump4},	// s_bjjump4
	{false,0,0,NULL,NULL,s_null},	// s_deathcam
#endif
};