1 /* Emacs style mode select   -*- C++ -*-
2  *-----------------------------------------------------------------------------
3  *
4  *
5  *  PrBoom: a Doom port merged with LxDoom and LSDLDoom
6  *  based on BOOM, a modified and improved DOOM engine
7  *  Copyright (C) 1999 by
8  *  id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
9  *  Copyright (C) 1999-2000 by
10  *  Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
11  *  Copyright 2005, 2006 by
12  *  Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
13  *
14  *  This program is free software; you can redistribute it and/or
15  *  modify it under the terms of the GNU General Public License
16  *  as published by the Free Software Foundation; either version 2
17  *  of the License, or (at your option) any later version.
18  *
19  *  This program is distributed in the hope that it will be useful,
20  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  *  GNU General Public License for more details.
23  *
24  *  You should have received a copy of the GNU General Public License
25  *  along with this program; if not, write to the Free Software
26  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27  *  02111-1307, USA.
28  *
29  * DESCRIPTION:
30  *      Thing frame/state LUT,
31  *      generated by multigen utilitiy.
32  *      This one is the original DOOM version, preserved.
33  *
34  *-----------------------------------------------------------------------------*/
35 
36 #ifndef __INFO__
37 #define __INFO__
38 
39 /* Needed for action function pointer handling. */
40 #include "d_think.h"
41 
42 /********************************************************************
43  * Sprite name enumeration - must match info.c                      *
44  ********************************************************************/
45 typedef enum
46 {
47   SPR_TROO,
48   SPR_SHTG,
49   SPR_PUNG,
50   SPR_PISG,
51   SPR_PISF,
52   SPR_SHTF,
53   SPR_SHT2,
54   SPR_CHGG,
55   SPR_CHGF,
56   SPR_MISG,
57   SPR_MISF,
58   SPR_SAWG,
59   SPR_PLSG,
60   SPR_PLSF,
61   SPR_BFGG,
62   SPR_BFGF,
63   SPR_BLUD,
64   SPR_PUFF,
65   SPR_BAL1,
66   SPR_BAL2,
67   SPR_PLSS,
68   SPR_PLSE,
69   SPR_MISL,
70   SPR_BFS1,
71   SPR_BFE1,
72   SPR_BFE2,
73   SPR_TFOG,
74   SPR_IFOG,
75   SPR_PLAY,
76   SPR_POSS,
77   SPR_SPOS,
78   SPR_VILE,
79   SPR_FIRE,
80   SPR_FATB,
81   SPR_FBXP,
82   SPR_SKEL,
83   SPR_MANF,
84   SPR_FATT,
85   SPR_CPOS,
86   SPR_SARG,
87   SPR_HEAD,
88   SPR_BAL7,
89   SPR_BOSS,
90   SPR_BOS2,
91   SPR_SKUL,
92   SPR_SPID,
93   SPR_BSPI,
94   SPR_APLS,
95   SPR_APBX,
96   SPR_CYBR,
97   SPR_PAIN,
98   SPR_SSWV,
99   SPR_KEEN,
100   SPR_BBRN,
101   SPR_BOSF,
102   SPR_ARM1,
103   SPR_ARM2,
104   SPR_BAR1,
105   SPR_BEXP,
106   SPR_FCAN,
107   SPR_BON1,
108   SPR_BON2,
109   SPR_BKEY,
110   SPR_RKEY,
111   SPR_YKEY,
112   SPR_BSKU,
113   SPR_RSKU,
114   SPR_YSKU,
115   SPR_STIM,
116   SPR_MEDI,
117   SPR_SOUL,
118   SPR_PINV,
119   SPR_PSTR,
120   SPR_PINS,
121   SPR_MEGA,
122   SPR_SUIT,
123   SPR_PMAP,
124   SPR_PVIS,
125   SPR_CLIP,
126   SPR_AMMO,
127   SPR_ROCK,
128   SPR_BROK,
129   SPR_CELL,
130   SPR_CELP,
131   SPR_SHEL,
132   SPR_SBOX,
133   SPR_BPAK,
134   SPR_BFUG,
135   SPR_MGUN,
136   SPR_CSAW,
137   SPR_LAUN,
138   SPR_PLAS,
139   SPR_SHOT,
140   SPR_SGN2,
141   SPR_COLU,
142   SPR_SMT2,
143   SPR_GOR1,
144   SPR_POL2,
145   SPR_POL5,
146   SPR_POL4,
147   SPR_POL3,
148   SPR_POL1,
149   SPR_POL6,
150   SPR_GOR2,
151   SPR_GOR3,
152   SPR_GOR4,
153   SPR_GOR5,
154   SPR_SMIT,
155   SPR_COL1,
156   SPR_COL2,
157   SPR_COL3,
158   SPR_COL4,
159   SPR_CAND,
160   SPR_CBRA,
161   SPR_COL6,
162   SPR_TRE1,
163   SPR_TRE2,
164   SPR_ELEC,
165   SPR_CEYE,
166   SPR_FSKU,
167   SPR_COL5,
168   SPR_TBLU,
169   SPR_TGRN,
170   SPR_TRED,
171   SPR_SMBT,
172   SPR_SMGT,
173   SPR_SMRT,
174   SPR_HDB1,
175   SPR_HDB2,
176   SPR_HDB3,
177   SPR_HDB4,
178   SPR_HDB5,
179   SPR_HDB6,
180   SPR_POB1,
181   SPR_POB2,
182   SPR_BRS1,
183   SPR_TLMP,
184   SPR_TLP2,
185   SPR_TNT1, /* add invisible sprite              phares 3/8/98 */
186 
187   /* MBF sprites */
188 
189   SPR_DOGS, /* killough 7/19/98: Marine's best friend :) */
190 
191   SPR_PLS1, // killough 7/19/98: first  of two plasma fireballs in the beta
192   SPR_PLS2, // killough 7/19/98: second of two plasma fireballs in the beta
193   SPR_BON3, // killough 7/11/98: evil sceptre in beta version
194   SPR_BON4, // killough 7/11/98: unholy bible in beta version
195 
196   NUMSPRITES  /* counter of how many there are */
197 
198 } spritenum_t;
199 
200 /********************************************************************
201  * States (frames) enumeration -- must match info.c                 *
202  ********************************************************************/
203 
204 typedef enum
205 {
206   S_NULL,
207   S_LIGHTDONE,
208   S_PUNCH,
209   S_PUNCHDOWN,
210   S_PUNCHUP,
211   S_PUNCH1,
212   S_PUNCH2,
213   S_PUNCH3,
214   S_PUNCH4,
215   S_PUNCH5,
216   S_PISTOL,
217   S_PISTOLDOWN,
218   S_PISTOLUP,
219   S_PISTOL1,
220   S_PISTOL2,
221   S_PISTOL3,
222   S_PISTOL4,
223   S_PISTOLFLASH,
224   S_SGUN,
225   S_SGUNDOWN,
226   S_SGUNUP,
227   S_SGUN1,
228   S_SGUN2,
229   S_SGUN3,
230   S_SGUN4,
231   S_SGUN5,
232   S_SGUN6,
233   S_SGUN7,
234   S_SGUN8,
235   S_SGUN9,
236   S_SGUNFLASH1,
237   S_SGUNFLASH2,
238   S_DSGUN,
239   S_DSGUNDOWN,
240   S_DSGUNUP,
241   S_DSGUN1,
242   S_DSGUN2,
243   S_DSGUN3,
244   S_DSGUN4,
245   S_DSGUN5,
246   S_DSGUN6,
247   S_DSGUN7,
248   S_DSGUN8,
249   S_DSGUN9,
250   S_DSGUN10,
251   S_DSNR1,
252   S_DSNR2,
253   S_DSGUNFLASH1,
254   S_DSGUNFLASH2,
255   S_CHAIN,
256   S_CHAINDOWN,
257   S_CHAINUP,
258   S_CHAIN1,
259   S_CHAIN2,
260   S_CHAIN3,
261   S_CHAINFLASH1,
262   S_CHAINFLASH2,
263   S_MISSILE,
264   S_MISSILEDOWN,
265   S_MISSILEUP,
266   S_MISSILE1,
267   S_MISSILE2,
268   S_MISSILE3,
269   S_MISSILEFLASH1,
270   S_MISSILEFLASH2,
271   S_MISSILEFLASH3,
272   S_MISSILEFLASH4,
273   S_SAW,
274   S_SAWB,
275   S_SAWDOWN,
276   S_SAWUP,
277   S_SAW1,
278   S_SAW2,
279   S_SAW3,
280   S_PLASMA,
281   S_PLASMADOWN,
282   S_PLASMAUP,
283   S_PLASMA1,
284   S_PLASMA2,
285   S_PLASMAFLASH1,
286   S_PLASMAFLASH2,
287   S_BFG,
288   S_BFGDOWN,
289   S_BFGUP,
290   S_BFG1,
291   S_BFG2,
292   S_BFG3,
293   S_BFG4,
294   S_BFGFLASH1,
295   S_BFGFLASH2,
296   S_BLOOD1,
297   S_BLOOD2,
298   S_BLOOD3,
299   S_PUFF1,
300   S_PUFF2,
301   S_PUFF3,
302   S_PUFF4,
303   S_TBALL1,
304   S_TBALL2,
305   S_TBALLX1,
306   S_TBALLX2,
307   S_TBALLX3,
308   S_RBALL1,
309   S_RBALL2,
310   S_RBALLX1,
311   S_RBALLX2,
312   S_RBALLX3,
313   S_PLASBALL,
314   S_PLASBALL2,
315   S_PLASEXP,
316   S_PLASEXP2,
317   S_PLASEXP3,
318   S_PLASEXP4,
319   S_PLASEXP5,
320   S_ROCKET,
321   S_BFGSHOT,
322   S_BFGSHOT2,
323   S_BFGLAND,
324   S_BFGLAND2,
325   S_BFGLAND3,
326   S_BFGLAND4,
327   S_BFGLAND5,
328   S_BFGLAND6,
329   S_BFGEXP,
330   S_BFGEXP2,
331   S_BFGEXP3,
332   S_BFGEXP4,
333   S_EXPLODE1,
334   S_EXPLODE2,
335   S_EXPLODE3,
336   S_TFOG,
337   S_TFOG01,
338   S_TFOG02,
339   S_TFOG2,
340   S_TFOG3,
341   S_TFOG4,
342   S_TFOG5,
343   S_TFOG6,
344   S_TFOG7,
345   S_TFOG8,
346   S_TFOG9,
347   S_TFOG10,
348   S_IFOG,
349   S_IFOG01,
350   S_IFOG02,
351   S_IFOG2,
352   S_IFOG3,
353   S_IFOG4,
354   S_IFOG5,
355   S_PLAY,
356   S_PLAY_RUN1,
357   S_PLAY_RUN2,
358   S_PLAY_RUN3,
359   S_PLAY_RUN4,
360   S_PLAY_ATK1,
361   S_PLAY_ATK2,
362   S_PLAY_PAIN,
363   S_PLAY_PAIN2,
364   S_PLAY_DIE1,
365   S_PLAY_DIE2,
366   S_PLAY_DIE3,
367   S_PLAY_DIE4,
368   S_PLAY_DIE5,
369   S_PLAY_DIE6,
370   S_PLAY_DIE7,
371   S_PLAY_XDIE1,
372   S_PLAY_XDIE2,
373   S_PLAY_XDIE3,
374   S_PLAY_XDIE4,
375   S_PLAY_XDIE5,
376   S_PLAY_XDIE6,
377   S_PLAY_XDIE7,
378   S_PLAY_XDIE8,
379   S_PLAY_XDIE9,
380   S_POSS_STND,
381   S_POSS_STND2,
382   S_POSS_RUN1,
383   S_POSS_RUN2,
384   S_POSS_RUN3,
385   S_POSS_RUN4,
386   S_POSS_RUN5,
387   S_POSS_RUN6,
388   S_POSS_RUN7,
389   S_POSS_RUN8,
390   S_POSS_ATK1,
391   S_POSS_ATK2,
392   S_POSS_ATK3,
393   S_POSS_PAIN,
394   S_POSS_PAIN2,
395   S_POSS_DIE1,
396   S_POSS_DIE2,
397   S_POSS_DIE3,
398   S_POSS_DIE4,
399   S_POSS_DIE5,
400   S_POSS_XDIE1,
401   S_POSS_XDIE2,
402   S_POSS_XDIE3,
403   S_POSS_XDIE4,
404   S_POSS_XDIE5,
405   S_POSS_XDIE6,
406   S_POSS_XDIE7,
407   S_POSS_XDIE8,
408   S_POSS_XDIE9,
409   S_POSS_RAISE1,
410   S_POSS_RAISE2,
411   S_POSS_RAISE3,
412   S_POSS_RAISE4,
413   S_SPOS_STND,
414   S_SPOS_STND2,
415   S_SPOS_RUN1,
416   S_SPOS_RUN2,
417   S_SPOS_RUN3,
418   S_SPOS_RUN4,
419   S_SPOS_RUN5,
420   S_SPOS_RUN6,
421   S_SPOS_RUN7,
422   S_SPOS_RUN8,
423   S_SPOS_ATK1,
424   S_SPOS_ATK2,
425   S_SPOS_ATK3,
426   S_SPOS_PAIN,
427   S_SPOS_PAIN2,
428   S_SPOS_DIE1,
429   S_SPOS_DIE2,
430   S_SPOS_DIE3,
431   S_SPOS_DIE4,
432   S_SPOS_DIE5,
433   S_SPOS_XDIE1,
434   S_SPOS_XDIE2,
435   S_SPOS_XDIE3,
436   S_SPOS_XDIE4,
437   S_SPOS_XDIE5,
438   S_SPOS_XDIE6,
439   S_SPOS_XDIE7,
440   S_SPOS_XDIE8,
441   S_SPOS_XDIE9,
442   S_SPOS_RAISE1,
443   S_SPOS_RAISE2,
444   S_SPOS_RAISE3,
445   S_SPOS_RAISE4,
446   S_SPOS_RAISE5,
447   S_VILE_STND,
448   S_VILE_STND2,
449   S_VILE_RUN1,
450   S_VILE_RUN2,
451   S_VILE_RUN3,
452   S_VILE_RUN4,
453   S_VILE_RUN5,
454   S_VILE_RUN6,
455   S_VILE_RUN7,
456   S_VILE_RUN8,
457   S_VILE_RUN9,
458   S_VILE_RUN10,
459   S_VILE_RUN11,
460   S_VILE_RUN12,
461   S_VILE_ATK1,
462   S_VILE_ATK2,
463   S_VILE_ATK3,
464   S_VILE_ATK4,
465   S_VILE_ATK5,
466   S_VILE_ATK6,
467   S_VILE_ATK7,
468   S_VILE_ATK8,
469   S_VILE_ATK9,
470   S_VILE_ATK10,
471   S_VILE_ATK11,
472   S_VILE_HEAL1,
473   S_VILE_HEAL2,
474   S_VILE_HEAL3,
475   S_VILE_PAIN,
476   S_VILE_PAIN2,
477   S_VILE_DIE1,
478   S_VILE_DIE2,
479   S_VILE_DIE3,
480   S_VILE_DIE4,
481   S_VILE_DIE5,
482   S_VILE_DIE6,
483   S_VILE_DIE7,
484   S_VILE_DIE8,
485   S_VILE_DIE9,
486   S_VILE_DIE10,
487   S_FIRE1,
488   S_FIRE2,
489   S_FIRE3,
490   S_FIRE4,
491   S_FIRE5,
492   S_FIRE6,
493   S_FIRE7,
494   S_FIRE8,
495   S_FIRE9,
496   S_FIRE10,
497   S_FIRE11,
498   S_FIRE12,
499   S_FIRE13,
500   S_FIRE14,
501   S_FIRE15,
502   S_FIRE16,
503   S_FIRE17,
504   S_FIRE18,
505   S_FIRE19,
506   S_FIRE20,
507   S_FIRE21,
508   S_FIRE22,
509   S_FIRE23,
510   S_FIRE24,
511   S_FIRE25,
512   S_FIRE26,
513   S_FIRE27,
514   S_FIRE28,
515   S_FIRE29,
516   S_FIRE30,
517   S_SMOKE1,
518   S_SMOKE2,
519   S_SMOKE3,
520   S_SMOKE4,
521   S_SMOKE5,
522   S_TRACER,
523   S_TRACER2,
524   S_TRACEEXP1,
525   S_TRACEEXP2,
526   S_TRACEEXP3,
527   S_SKEL_STND,
528   S_SKEL_STND2,
529   S_SKEL_RUN1,
530   S_SKEL_RUN2,
531   S_SKEL_RUN3,
532   S_SKEL_RUN4,
533   S_SKEL_RUN5,
534   S_SKEL_RUN6,
535   S_SKEL_RUN7,
536   S_SKEL_RUN8,
537   S_SKEL_RUN9,
538   S_SKEL_RUN10,
539   S_SKEL_RUN11,
540   S_SKEL_RUN12,
541   S_SKEL_FIST1,
542   S_SKEL_FIST2,
543   S_SKEL_FIST3,
544   S_SKEL_FIST4,
545   S_SKEL_MISS1,
546   S_SKEL_MISS2,
547   S_SKEL_MISS3,
548   S_SKEL_MISS4,
549   S_SKEL_PAIN,
550   S_SKEL_PAIN2,
551   S_SKEL_DIE1,
552   S_SKEL_DIE2,
553   S_SKEL_DIE3,
554   S_SKEL_DIE4,
555   S_SKEL_DIE5,
556   S_SKEL_DIE6,
557   S_SKEL_RAISE1,
558   S_SKEL_RAISE2,
559   S_SKEL_RAISE3,
560   S_SKEL_RAISE4,
561   S_SKEL_RAISE5,
562   S_SKEL_RAISE6,
563   S_FATSHOT1,
564   S_FATSHOT2,
565   S_FATSHOTX1,
566   S_FATSHOTX2,
567   S_FATSHOTX3,
568   S_FATT_STND,
569   S_FATT_STND2,
570   S_FATT_RUN1,
571   S_FATT_RUN2,
572   S_FATT_RUN3,
573   S_FATT_RUN4,
574   S_FATT_RUN5,
575   S_FATT_RUN6,
576   S_FATT_RUN7,
577   S_FATT_RUN8,
578   S_FATT_RUN9,
579   S_FATT_RUN10,
580   S_FATT_RUN11,
581   S_FATT_RUN12,
582   S_FATT_ATK1,
583   S_FATT_ATK2,
584   S_FATT_ATK3,
585   S_FATT_ATK4,
586   S_FATT_ATK5,
587   S_FATT_ATK6,
588   S_FATT_ATK7,
589   S_FATT_ATK8,
590   S_FATT_ATK9,
591   S_FATT_ATK10,
592   S_FATT_PAIN,
593   S_FATT_PAIN2,
594   S_FATT_DIE1,
595   S_FATT_DIE2,
596   S_FATT_DIE3,
597   S_FATT_DIE4,
598   S_FATT_DIE5,
599   S_FATT_DIE6,
600   S_FATT_DIE7,
601   S_FATT_DIE8,
602   S_FATT_DIE9,
603   S_FATT_DIE10,
604   S_FATT_RAISE1,
605   S_FATT_RAISE2,
606   S_FATT_RAISE3,
607   S_FATT_RAISE4,
608   S_FATT_RAISE5,
609   S_FATT_RAISE6,
610   S_FATT_RAISE7,
611   S_FATT_RAISE8,
612   S_CPOS_STND,
613   S_CPOS_STND2,
614   S_CPOS_RUN1,
615   S_CPOS_RUN2,
616   S_CPOS_RUN3,
617   S_CPOS_RUN4,
618   S_CPOS_RUN5,
619   S_CPOS_RUN6,
620   S_CPOS_RUN7,
621   S_CPOS_RUN8,
622   S_CPOS_ATK1,
623   S_CPOS_ATK2,
624   S_CPOS_ATK3,
625   S_CPOS_ATK4,
626   S_CPOS_PAIN,
627   S_CPOS_PAIN2,
628   S_CPOS_DIE1,
629   S_CPOS_DIE2,
630   S_CPOS_DIE3,
631   S_CPOS_DIE4,
632   S_CPOS_DIE5,
633   S_CPOS_DIE6,
634   S_CPOS_DIE7,
635   S_CPOS_XDIE1,
636   S_CPOS_XDIE2,
637   S_CPOS_XDIE3,
638   S_CPOS_XDIE4,
639   S_CPOS_XDIE5,
640   S_CPOS_XDIE6,
641   S_CPOS_RAISE1,
642   S_CPOS_RAISE2,
643   S_CPOS_RAISE3,
644   S_CPOS_RAISE4,
645   S_CPOS_RAISE5,
646   S_CPOS_RAISE6,
647   S_CPOS_RAISE7,
648   S_TROO_STND,
649   S_TROO_STND2,
650   S_TROO_RUN1,
651   S_TROO_RUN2,
652   S_TROO_RUN3,
653   S_TROO_RUN4,
654   S_TROO_RUN5,
655   S_TROO_RUN6,
656   S_TROO_RUN7,
657   S_TROO_RUN8,
658   S_TROO_ATK1,
659   S_TROO_ATK2,
660   S_TROO_ATK3,
661   S_TROO_PAIN,
662   S_TROO_PAIN2,
663   S_TROO_DIE1,
664   S_TROO_DIE2,
665   S_TROO_DIE3,
666   S_TROO_DIE4,
667   S_TROO_DIE5,
668   S_TROO_XDIE1,
669   S_TROO_XDIE2,
670   S_TROO_XDIE3,
671   S_TROO_XDIE4,
672   S_TROO_XDIE5,
673   S_TROO_XDIE6,
674   S_TROO_XDIE7,
675   S_TROO_XDIE8,
676   S_TROO_RAISE1,
677   S_TROO_RAISE2,
678   S_TROO_RAISE3,
679   S_TROO_RAISE4,
680   S_TROO_RAISE5,
681   S_SARG_STND,
682   S_SARG_STND2,
683   S_SARG_RUN1,
684   S_SARG_RUN2,
685   S_SARG_RUN3,
686   S_SARG_RUN4,
687   S_SARG_RUN5,
688   S_SARG_RUN6,
689   S_SARG_RUN7,
690   S_SARG_RUN8,
691   S_SARG_ATK1,
692   S_SARG_ATK2,
693   S_SARG_ATK3,
694   S_SARG_PAIN,
695   S_SARG_PAIN2,
696   S_SARG_DIE1,
697   S_SARG_DIE2,
698   S_SARG_DIE3,
699   S_SARG_DIE4,
700   S_SARG_DIE5,
701   S_SARG_DIE6,
702   S_SARG_RAISE1,
703   S_SARG_RAISE2,
704   S_SARG_RAISE3,
705   S_SARG_RAISE4,
706   S_SARG_RAISE5,
707   S_SARG_RAISE6,
708   S_HEAD_STND,
709   S_HEAD_RUN1,
710   S_HEAD_ATK1,
711   S_HEAD_ATK2,
712   S_HEAD_ATK3,
713   S_HEAD_PAIN,
714   S_HEAD_PAIN2,
715   S_HEAD_PAIN3,
716   S_HEAD_DIE1,
717   S_HEAD_DIE2,
718   S_HEAD_DIE3,
719   S_HEAD_DIE4,
720   S_HEAD_DIE5,
721   S_HEAD_DIE6,
722   S_HEAD_RAISE1,
723   S_HEAD_RAISE2,
724   S_HEAD_RAISE3,
725   S_HEAD_RAISE4,
726   S_HEAD_RAISE5,
727   S_HEAD_RAISE6,
728   S_BRBALL1,
729   S_BRBALL2,
730   S_BRBALLX1,
731   S_BRBALLX2,
732   S_BRBALLX3,
733   S_BOSS_STND,
734   S_BOSS_STND2,
735   S_BOSS_RUN1,
736   S_BOSS_RUN2,
737   S_BOSS_RUN3,
738   S_BOSS_RUN4,
739   S_BOSS_RUN5,
740   S_BOSS_RUN6,
741   S_BOSS_RUN7,
742   S_BOSS_RUN8,
743   S_BOSS_ATK1,
744   S_BOSS_ATK2,
745   S_BOSS_ATK3,
746   S_BOSS_PAIN,
747   S_BOSS_PAIN2,
748   S_BOSS_DIE1,
749   S_BOSS_DIE2,
750   S_BOSS_DIE3,
751   S_BOSS_DIE4,
752   S_BOSS_DIE5,
753   S_BOSS_DIE6,
754   S_BOSS_DIE7,
755   S_BOSS_RAISE1,
756   S_BOSS_RAISE2,
757   S_BOSS_RAISE3,
758   S_BOSS_RAISE4,
759   S_BOSS_RAISE5,
760   S_BOSS_RAISE6,
761   S_BOSS_RAISE7,
762   S_BOS2_STND,
763   S_BOS2_STND2,
764   S_BOS2_RUN1,
765   S_BOS2_RUN2,
766   S_BOS2_RUN3,
767   S_BOS2_RUN4,
768   S_BOS2_RUN5,
769   S_BOS2_RUN6,
770   S_BOS2_RUN7,
771   S_BOS2_RUN8,
772   S_BOS2_ATK1,
773   S_BOS2_ATK2,
774   S_BOS2_ATK3,
775   S_BOS2_PAIN,
776   S_BOS2_PAIN2,
777   S_BOS2_DIE1,
778   S_BOS2_DIE2,
779   S_BOS2_DIE3,
780   S_BOS2_DIE4,
781   S_BOS2_DIE5,
782   S_BOS2_DIE6,
783   S_BOS2_DIE7,
784   S_BOS2_RAISE1,
785   S_BOS2_RAISE2,
786   S_BOS2_RAISE3,
787   S_BOS2_RAISE4,
788   S_BOS2_RAISE5,
789   S_BOS2_RAISE6,
790   S_BOS2_RAISE7,
791   S_SKULL_STND,
792   S_SKULL_STND2,
793   S_SKULL_RUN1,
794   S_SKULL_RUN2,
795   S_SKULL_ATK1,
796   S_SKULL_ATK2,
797   S_SKULL_ATK3,
798   S_SKULL_ATK4,
799   S_SKULL_PAIN,
800   S_SKULL_PAIN2,
801   S_SKULL_DIE1,
802   S_SKULL_DIE2,
803   S_SKULL_DIE3,
804   S_SKULL_DIE4,
805   S_SKULL_DIE5,
806   S_SKULL_DIE6,
807   S_SPID_STND,
808   S_SPID_STND2,
809   S_SPID_RUN1,
810   S_SPID_RUN2,
811   S_SPID_RUN3,
812   S_SPID_RUN4,
813   S_SPID_RUN5,
814   S_SPID_RUN6,
815   S_SPID_RUN7,
816   S_SPID_RUN8,
817   S_SPID_RUN9,
818   S_SPID_RUN10,
819   S_SPID_RUN11,
820   S_SPID_RUN12,
821   S_SPID_ATK1,
822   S_SPID_ATK2,
823   S_SPID_ATK3,
824   S_SPID_ATK4,
825   S_SPID_PAIN,
826   S_SPID_PAIN2,
827   S_SPID_DIE1,
828   S_SPID_DIE2,
829   S_SPID_DIE3,
830   S_SPID_DIE4,
831   S_SPID_DIE5,
832   S_SPID_DIE6,
833   S_SPID_DIE7,
834   S_SPID_DIE8,
835   S_SPID_DIE9,
836   S_SPID_DIE10,
837   S_SPID_DIE11,
838   S_BSPI_STND,
839   S_BSPI_STND2,
840   S_BSPI_SIGHT,
841   S_BSPI_RUN1,
842   S_BSPI_RUN2,
843   S_BSPI_RUN3,
844   S_BSPI_RUN4,
845   S_BSPI_RUN5,
846   S_BSPI_RUN6,
847   S_BSPI_RUN7,
848   S_BSPI_RUN8,
849   S_BSPI_RUN9,
850   S_BSPI_RUN10,
851   S_BSPI_RUN11,
852   S_BSPI_RUN12,
853   S_BSPI_ATK1,
854   S_BSPI_ATK2,
855   S_BSPI_ATK3,
856   S_BSPI_ATK4,
857   S_BSPI_PAIN,
858   S_BSPI_PAIN2,
859   S_BSPI_DIE1,
860   S_BSPI_DIE2,
861   S_BSPI_DIE3,
862   S_BSPI_DIE4,
863   S_BSPI_DIE5,
864   S_BSPI_DIE6,
865   S_BSPI_DIE7,
866   S_BSPI_RAISE1,
867   S_BSPI_RAISE2,
868   S_BSPI_RAISE3,
869   S_BSPI_RAISE4,
870   S_BSPI_RAISE5,
871   S_BSPI_RAISE6,
872   S_BSPI_RAISE7,
873   S_ARACH_PLAZ,
874   S_ARACH_PLAZ2,
875   S_ARACH_PLEX,
876   S_ARACH_PLEX2,
877   S_ARACH_PLEX3,
878   S_ARACH_PLEX4,
879   S_ARACH_PLEX5,
880   S_CYBER_STND,
881   S_CYBER_STND2,
882   S_CYBER_RUN1,
883   S_CYBER_RUN2,
884   S_CYBER_RUN3,
885   S_CYBER_RUN4,
886   S_CYBER_RUN5,
887   S_CYBER_RUN6,
888   S_CYBER_RUN7,
889   S_CYBER_RUN8,
890   S_CYBER_ATK1,
891   S_CYBER_ATK2,
892   S_CYBER_ATK3,
893   S_CYBER_ATK4,
894   S_CYBER_ATK5,
895   S_CYBER_ATK6,
896   S_CYBER_PAIN,
897   S_CYBER_DIE1,
898   S_CYBER_DIE2,
899   S_CYBER_DIE3,
900   S_CYBER_DIE4,
901   S_CYBER_DIE5,
902   S_CYBER_DIE6,
903   S_CYBER_DIE7,
904   S_CYBER_DIE8,
905   S_CYBER_DIE9,
906   S_CYBER_DIE10,
907   S_PAIN_STND,
908   S_PAIN_RUN1,
909   S_PAIN_RUN2,
910   S_PAIN_RUN3,
911   S_PAIN_RUN4,
912   S_PAIN_RUN5,
913   S_PAIN_RUN6,
914   S_PAIN_ATK1,
915   S_PAIN_ATK2,
916   S_PAIN_ATK3,
917   S_PAIN_ATK4,
918   S_PAIN_PAIN,
919   S_PAIN_PAIN2,
920   S_PAIN_DIE1,
921   S_PAIN_DIE2,
922   S_PAIN_DIE3,
923   S_PAIN_DIE4,
924   S_PAIN_DIE5,
925   S_PAIN_DIE6,
926   S_PAIN_RAISE1,
927   S_PAIN_RAISE2,
928   S_PAIN_RAISE3,
929   S_PAIN_RAISE4,
930   S_PAIN_RAISE5,
931   S_PAIN_RAISE6,
932   S_SSWV_STND,
933   S_SSWV_STND2,
934   S_SSWV_RUN1,
935   S_SSWV_RUN2,
936   S_SSWV_RUN3,
937   S_SSWV_RUN4,
938   S_SSWV_RUN5,
939   S_SSWV_RUN6,
940   S_SSWV_RUN7,
941   S_SSWV_RUN8,
942   S_SSWV_ATK1,
943   S_SSWV_ATK2,
944   S_SSWV_ATK3,
945   S_SSWV_ATK4,
946   S_SSWV_ATK5,
947   S_SSWV_ATK6,
948   S_SSWV_PAIN,
949   S_SSWV_PAIN2,
950   S_SSWV_DIE1,
951   S_SSWV_DIE2,
952   S_SSWV_DIE3,
953   S_SSWV_DIE4,
954   S_SSWV_DIE5,
955   S_SSWV_XDIE1,
956   S_SSWV_XDIE2,
957   S_SSWV_XDIE3,
958   S_SSWV_XDIE4,
959   S_SSWV_XDIE5,
960   S_SSWV_XDIE6,
961   S_SSWV_XDIE7,
962   S_SSWV_XDIE8,
963   S_SSWV_XDIE9,
964   S_SSWV_RAISE1,
965   S_SSWV_RAISE2,
966   S_SSWV_RAISE3,
967   S_SSWV_RAISE4,
968   S_SSWV_RAISE5,
969   S_KEENSTND,
970   S_COMMKEEN,
971   S_COMMKEEN2,
972   S_COMMKEEN3,
973   S_COMMKEEN4,
974   S_COMMKEEN5,
975   S_COMMKEEN6,
976   S_COMMKEEN7,
977   S_COMMKEEN8,
978   S_COMMKEEN9,
979   S_COMMKEEN10,
980   S_COMMKEEN11,
981   S_COMMKEEN12,
982   S_KEENPAIN,
983   S_KEENPAIN2,
984   S_BRAIN,
985   S_BRAIN_PAIN,
986   S_BRAIN_DIE1,
987   S_BRAIN_DIE2,
988   S_BRAIN_DIE3,
989   S_BRAIN_DIE4,
990   S_BRAINEYE,
991   S_BRAINEYESEE,
992   S_BRAINEYE1,
993   S_SPAWN1,
994   S_SPAWN2,
995   S_SPAWN3,
996   S_SPAWN4,
997   S_SPAWNFIRE1,
998   S_SPAWNFIRE2,
999   S_SPAWNFIRE3,
1000   S_SPAWNFIRE4,
1001   S_SPAWNFIRE5,
1002   S_SPAWNFIRE6,
1003   S_SPAWNFIRE7,
1004   S_SPAWNFIRE8,
1005   S_BRAINEXPLODE1,
1006   S_BRAINEXPLODE2,
1007   S_BRAINEXPLODE3,
1008   S_ARM1,
1009   S_ARM1A,
1010   S_ARM2,
1011   S_ARM2A,
1012   S_BAR1,
1013   S_BAR2,
1014   S_BEXP,
1015   S_BEXP2,
1016   S_BEXP3,
1017   S_BEXP4,
1018   S_BEXP5,
1019   S_BBAR1,
1020   S_BBAR2,
1021   S_BBAR3,
1022   S_BON1,
1023   S_BON1A,
1024   S_BON1B,
1025   S_BON1C,
1026   S_BON1D,
1027   S_BON1E,
1028   S_BON2,
1029   S_BON2A,
1030   S_BON2B,
1031   S_BON2C,
1032   S_BON2D,
1033   S_BON2E,
1034   S_BKEY,
1035   S_BKEY2,
1036   S_RKEY,
1037   S_RKEY2,
1038   S_YKEY,
1039   S_YKEY2,
1040   S_BSKULL,
1041   S_BSKULL2,
1042   S_RSKULL,
1043   S_RSKULL2,
1044   S_YSKULL,
1045   S_YSKULL2,
1046   S_STIM,
1047   S_MEDI,
1048   S_SOUL,
1049   S_SOUL2,
1050   S_SOUL3,
1051   S_SOUL4,
1052   S_SOUL5,
1053   S_SOUL6,
1054   S_PINV,
1055   S_PINV2,
1056   S_PINV3,
1057   S_PINV4,
1058   S_PSTR,
1059   S_PINS,
1060   S_PINS2,
1061   S_PINS3,
1062   S_PINS4,
1063   S_MEGA,
1064   S_MEGA2,
1065   S_MEGA3,
1066   S_MEGA4,
1067   S_SUIT,
1068   S_PMAP,
1069   S_PMAP2,
1070   S_PMAP3,
1071   S_PMAP4,
1072   S_PMAP5,
1073   S_PMAP6,
1074   S_PVIS,
1075   S_PVIS2,
1076   S_CLIP,
1077   S_AMMO,
1078   S_ROCK,
1079   S_BROK,
1080   S_CELL,
1081   S_CELP,
1082   S_SHEL,
1083   S_SBOX,
1084   S_BPAK,
1085   S_BFUG,
1086   S_MGUN,
1087   S_CSAW,
1088   S_LAUN,
1089   S_PLAS,
1090   S_SHOT,
1091   S_SHOT2,
1092   S_COLU,
1093   S_STALAG,
1094   S_BLOODYTWITCH,
1095   S_BLOODYTWITCH2,
1096   S_BLOODYTWITCH3,
1097   S_BLOODYTWITCH4,
1098   S_DEADTORSO,
1099   S_DEADBOTTOM,
1100   S_HEADSONSTICK,
1101   S_GIBS,
1102   S_HEADONASTICK,
1103   S_HEADCANDLES,
1104   S_HEADCANDLES2,
1105   S_DEADSTICK,
1106   S_LIVESTICK,
1107   S_LIVESTICK2,
1108   S_MEAT2,
1109   S_MEAT3,
1110   S_MEAT4,
1111   S_MEAT5,
1112   S_STALAGTITE,
1113   S_TALLGRNCOL,
1114   S_SHRTGRNCOL,
1115   S_TALLREDCOL,
1116   S_SHRTREDCOL,
1117   S_CANDLESTIK,
1118   S_CANDELABRA,
1119   S_SKULLCOL,
1120   S_TORCHTREE,
1121   S_BIGTREE,
1122   S_TECHPILLAR,
1123   S_EVILEYE,
1124   S_EVILEYE2,
1125   S_EVILEYE3,
1126   S_EVILEYE4,
1127   S_FLOATSKULL,
1128   S_FLOATSKULL2,
1129   S_FLOATSKULL3,
1130   S_HEARTCOL,
1131   S_HEARTCOL2,
1132   S_BLUETORCH,
1133   S_BLUETORCH2,
1134   S_BLUETORCH3,
1135   S_BLUETORCH4,
1136   S_GREENTORCH,
1137   S_GREENTORCH2,
1138   S_GREENTORCH3,
1139   S_GREENTORCH4,
1140   S_REDTORCH,
1141   S_REDTORCH2,
1142   S_REDTORCH3,
1143   S_REDTORCH4,
1144   S_BTORCHSHRT,
1145   S_BTORCHSHRT2,
1146   S_BTORCHSHRT3,
1147   S_BTORCHSHRT4,
1148   S_GTORCHSHRT,
1149   S_GTORCHSHRT2,
1150   S_GTORCHSHRT3,
1151   S_GTORCHSHRT4,
1152   S_RTORCHSHRT,
1153   S_RTORCHSHRT2,
1154   S_RTORCHSHRT3,
1155   S_RTORCHSHRT4,
1156   S_HANGNOGUTS,
1157   S_HANGBNOBRAIN,
1158   S_HANGTLOOKDN,
1159   S_HANGTSKULL,
1160   S_HANGTLOOKUP,
1161   S_HANGTNOBRAIN,
1162   S_COLONGIBS,
1163   S_SMALLPOOL,
1164   S_BRAINSTEM,
1165   S_TECHLAMP,
1166   S_TECHLAMP2,
1167   S_TECHLAMP3,
1168   S_TECHLAMP4,
1169   S_TECH2LAMP,
1170   S_TECH2LAMP2,
1171   S_TECH2LAMP3,
1172   S_TECH2LAMP4,
1173   S_TNT1, /* add state for invisible sprite          phares 3/8/98  */
1174 
1175   S_GRENADE,   /* killough 8/9/98: grenade launcher */
1176   S_DETONATE,  /* killough 8/9/98: detonation of objects */
1177   S_DETONATE2,
1178   S_DETONATE3,
1179 
1180   // always count dog states, even if dogs are disabled
1181   S_DOGS_STND,      /* killough 7/19/98: Marine's best friend :) */
1182   S_DOGS_STND2,
1183   S_DOGS_RUN1,
1184   S_DOGS_RUN2,
1185   S_DOGS_RUN3,
1186   S_DOGS_RUN4,
1187   S_DOGS_RUN5,
1188   S_DOGS_RUN6,
1189   S_DOGS_RUN7,
1190   S_DOGS_RUN8,
1191   S_DOGS_ATK1,
1192   S_DOGS_ATK2,
1193   S_DOGS_ATK3,
1194   S_DOGS_PAIN,
1195   S_DOGS_PAIN2,
1196   S_DOGS_DIE1,
1197   S_DOGS_DIE2,
1198   S_DOGS_DIE3,
1199   S_DOGS_DIE4,
1200   S_DOGS_DIE5,
1201   S_DOGS_DIE6,
1202   S_DOGS_RAISE1,
1203   S_DOGS_RAISE2,
1204   S_DOGS_RAISE3,
1205   S_DOGS_RAISE4,
1206   S_DOGS_RAISE5,
1207   S_DOGS_RAISE6,
1208 
1209   // add dummy beta bfg / lost soul frames for dehacked compatibility
1210   // fixes bug #1576151 (part 2)
1211   S_OLDBFG1,  // killough 7/11/98: the old BFG's 43 firing frames
1212   S_OLDBFG42 = S_OLDBFG1+41,
1213   S_OLDBFG43,
1214 
1215   S_PLS1BALL,      // killough 7/19/98: first plasma fireball in the beta
1216   S_PLS1BALL2,
1217   S_PLS1EXP,
1218   S_PLS1EXP2,
1219   S_PLS1EXP3,
1220   S_PLS1EXP4,
1221   S_PLS1EXP5,
1222 
1223   S_PLS2BALL,     // killough 7/19/98: second plasma fireball in the beta
1224   S_PLS2BALL2,
1225   S_PLS2BALLX1,
1226   S_PLS2BALLX2,
1227   S_PLS2BALLX3,
1228   S_BON3, // killough 7/11/98: evil sceptre in beta version
1229   S_BON4, // killough 7/11/98: unholy bible in beta version
1230 
1231   // killough 10/98: beta lost souls were different from their modern cousins
1232   S_BSKUL_STND,
1233   S_BSKUL_RUN1,
1234   S_BSKUL_RUN2,
1235   S_BSKUL_RUN3,
1236   S_BSKUL_RUN4,
1237   S_BSKUL_ATK1,
1238   S_BSKUL_ATK2,
1239   S_BSKUL_ATK3,
1240   S_BSKUL_PAIN1,
1241   S_BSKUL_PAIN2,
1242   S_BSKUL_PAIN3,
1243   S_BSKUL_DIE1,
1244   S_BSKUL_DIE2,
1245   S_BSKUL_DIE3,
1246   S_BSKUL_DIE4,
1247   S_BSKUL_DIE5,
1248   S_BSKUL_DIE6,
1249   S_BSKUL_DIE7,
1250   S_BSKUL_DIE8,
1251 
1252   S_MUSHROOM,  /* killough 10/98: mushroom explosion effect */
1253 
1254   // prboom-plus player gibbed death
1255   S_PLAY_GDIE1,
1256   S_PLAY_GDIE2,
1257   S_PLAY_GDIE3,
1258   S_PLAY_GDIE4,
1259   S_PLAY_GDIE5,
1260   S_PLAY_GDIE6,
1261   S_PLAY_GDIE7,
1262   S_PLAY_GDIE8,
1263   S_PLAY_GDIE9,
1264 
1265   NUMSTATES  /* Counter of how many there are */
1266 
1267 } statenum_t;
1268 
1269 /********************************************************************
1270  * Definition of the state (frames) structure                       *
1271  ********************************************************************/
1272 
1273 typedef struct
1274 {
1275   spritenum_t sprite;       /* sprite number to show                       */
1276   long        frame;        /* which frame/subframe of the sprite is shown */
1277   long        tics;         /* number of gametics this frame should last   */
1278   actionf_t   action;       /* code pointer to function for action if any  */
1279   statenum_t  nextstate;    /* linked list pointer to next state or zero   */
1280   long        misc1, misc2; /* apparently never used in DOOM               */
1281 } state_t;
1282 
1283 /* these are in info.c */
1284 extern state_t  states[NUMSTATES];
1285 extern const char *sprnames[]; /* 1/17/98 killough - CPhipps - const */
1286 
1287 /********************************************************************
1288  * Thing enumeration -- must match info.c                           *
1289  ********************************************************************
1290  * Note that many of these are generically named for the ornamentals
1291  */
1292 
1293 typedef enum {
1294   MT_PLAYER,
1295   MT_POSSESSED,
1296   MT_SHOTGUY,
1297   MT_VILE,
1298   MT_FIRE,
1299   MT_UNDEAD,
1300   MT_TRACER,
1301   MT_SMOKE,
1302   MT_FATSO,
1303   MT_FATSHOT,
1304   MT_CHAINGUY,
1305   MT_TROOP,
1306   MT_SERGEANT,
1307   MT_SHADOWS,
1308   MT_HEAD,
1309   MT_BRUISER,
1310   MT_BRUISERSHOT,
1311   MT_KNIGHT,
1312   MT_SKULL,
1313   MT_SPIDER,
1314   MT_BABY,
1315   MT_CYBORG,
1316   MT_PAIN,
1317   MT_WOLFSS,
1318   MT_KEEN,
1319   MT_BOSSBRAIN,
1320   MT_BOSSSPIT,
1321   MT_BOSSTARGET,
1322   MT_SPAWNSHOT,
1323   MT_SPAWNFIRE,
1324   MT_BARREL,
1325   MT_TROOPSHOT,
1326   MT_HEADSHOT,
1327   MT_ROCKET,
1328   MT_PLASMA,
1329   MT_BFG,
1330   MT_ARACHPLAZ,
1331   MT_PUFF,
1332   MT_BLOOD,
1333   MT_TFOG,
1334   MT_IFOG,
1335   MT_TELEPORTMAN,
1336   MT_EXTRABFG,
1337   MT_MISC0,
1338   MT_MISC1,
1339   MT_MISC2,
1340   MT_MISC3,
1341   MT_MISC4,
1342   MT_MISC5,
1343   MT_MISC6,
1344   MT_MISC7,
1345   MT_MISC8,
1346   MT_MISC9,
1347   MT_MISC10,
1348   MT_MISC11,
1349   MT_MISC12,
1350   MT_INV,
1351   MT_MISC13,
1352   MT_INS,
1353   MT_MISC14,
1354   MT_MISC15,
1355   MT_MISC16,
1356   MT_MEGA,
1357   MT_CLIP,
1358   MT_MISC17,
1359   MT_MISC18,
1360   MT_MISC19,
1361   MT_MISC20,
1362   MT_MISC21,
1363   MT_MISC22,
1364   MT_MISC23,
1365   MT_MISC24,
1366   MT_MISC25,
1367   MT_CHAINGUN,
1368   MT_MISC26,
1369   MT_MISC27,
1370   MT_MISC28,
1371   MT_SHOTGUN,
1372   MT_SUPERSHOTGUN,
1373   MT_MISC29,
1374   MT_MISC30,
1375   MT_MISC31,
1376   MT_MISC32,
1377   MT_MISC33,
1378   MT_MISC34,
1379   MT_MISC35,
1380   MT_MISC36,
1381   MT_MISC37,
1382   MT_MISC38,
1383   MT_MISC39,
1384   MT_MISC40,
1385   MT_MISC41,
1386   MT_MISC42,
1387   MT_MISC43,
1388   MT_MISC44,
1389   MT_MISC45,
1390   MT_MISC46,
1391   MT_MISC47,
1392   MT_MISC48,
1393   MT_MISC49,
1394   MT_MISC50,
1395   MT_MISC51,
1396   MT_MISC52,
1397   MT_MISC53,
1398   MT_MISC54,
1399   MT_MISC55,
1400   MT_MISC56,
1401   MT_MISC57,
1402   MT_MISC58,
1403   MT_MISC59,
1404   MT_MISC60,
1405   MT_MISC61,
1406   MT_MISC62,
1407   MT_MISC63,
1408   MT_MISC64,
1409   MT_MISC65,
1410   MT_MISC66,
1411   MT_MISC67,
1412   MT_MISC68,
1413   MT_MISC69,
1414   MT_MISC70,
1415   MT_MISC71,
1416   MT_MISC72,
1417   MT_MISC73,
1418   MT_MISC74,
1419   MT_MISC75,
1420   MT_MISC76,
1421   MT_MISC77,
1422   MT_MISC78,
1423   MT_MISC79,
1424   MT_MISC80,
1425   MT_MISC81,
1426   MT_MISC82,
1427   MT_MISC83,
1428   MT_MISC84,
1429   MT_MISC85,
1430   MT_MISC86,
1431   /* End of official Doom actors, Boom/MBF/PrBoom+ extras below */
1432   MT_PUSH,    /* controls push source - phares */
1433   MT_PULL,    /* controls pull source - phares 3/20/98 */
1434 
1435   MT_DOGS,    /* killough 7/19/98: Marine's best friend */
1436 
1437   MT_PLASMA1, // killough 7/11/98: first  of alternating beta plasma fireballs
1438   MT_PLASMA2, // killough 7/11/98: second of alternating beta plasma fireballs
1439   MT_SCEPTRE, // killough 7/11/98: evil sceptre in beta version
1440   MT_BIBLE,   // killough 7/11/98: unholy bible in beta version
1441 
1442   MT_MUSICCHANGER, /* MUSINFO Music Changer thing */
1443 
1444   MT_GIBDTH, // prboom-plus gibbed human skull
1445 
1446   /* proff 11/22/98: Andy Baker's stealth monsters (next 12)
1447    * cph - moved below the MBF stuff, no need to displace them */
1448   MT_STEALTHBABY,
1449   MT_STEALTHVILE,
1450   MT_STEALTHBRUISER,
1451   MT_STEALTHHEAD,
1452   MT_STEALTHCHAINGUY,
1453   MT_STEALTHSERGEANT,
1454   MT_STEALTHKNIGHT,
1455   MT_STEALTHIMP,
1456   MT_STEALTHFATSO,
1457   MT_STEALTHUNDEAD,
1458   MT_STEALTHSHOTGUY,
1459   MT_STEALTHZOMBIE,
1460 
1461   NUMMOBJTYPES,  // Counter of how many there are
1462   MT_NULL = -1
1463 } mobjtype_t;
1464 
1465 /********************************************************************
1466  * Definition of the Thing structure
1467  ********************************************************************/
1468 /* Note that these are only indices to the state, sound, etc. arrays
1469  * and not actual pointers.  Most can be set to zero if the action or
1470  * sound doesn't apply (like lamps generally don't attack or whistle).
1471  */
1472 
1473 typedef struct
1474 {
1475   const char * actorname; /* Doom actor name, meant to match ZDoom's */
1476   int doomednum;    /* Thing number used in id's editor, and now
1477        probably by every other editor too */
1478   int spawnstate;   /* The state (frame) index when this Thing is
1479            first created */
1480   int spawnhealth;  /* The initial hit points for this Thing */
1481   int seestate;     /* The state when it sees you or wakes up */
1482   int seesound;     /* The sound it makes when waking */
1483   int reactiontime; /* How many tics it waits after it wakes up
1484            before it will start to attack, in normal
1485            skills (halved for nightmare) */
1486   int attacksound;  /* The sound it makes when it attacks */
1487   int painstate;    /* The state to indicate pain */
1488   int painchance;   /* A number that is checked against a random
1489            number 0-255 to see if the Thing is supposed
1490            to go to its painstate or not.  Note this
1491            has absolutely nothing to do with the chance
1492            it will get hurt, just the chance of it
1493            reacting visibly. */
1494   int painsound;    /* The sound it emits when it feels pain */
1495   int meleestate;   /* Melee==close attack */
1496   int missilestate; /* What states to use when it's in the air, if
1497            in fact it is ever used as a missile */
1498   int deathstate;   /* What state begins the death sequence */
1499   int xdeathstate;  /* What state begins the horrible death sequence
1500            like when a rocket takes out a trooper */
1501   int deathsound;   /* The death sound.  See also A_Scream() in
1502            p_enemy.c for some tweaking that goes on
1503            for certain monsters */
1504   mobjtype_t droppeditem; /* Mobj to drop after death */
1505   int speed;        /* How fast it moves.  Too fast and it can miss
1506            collision logic. */
1507   int radius;       /* An often incorrect radius */
1508   int height;       /* An often incorrect height, used only to see
1509            if a monster can enter a sector */
1510   int mass;         /* How much an impact will move it.  Cacodemons
1511            seem to retreat when shot because they have
1512            very little mass and are moved by impact */
1513   int damage;       /* If this is a missile, how much does it hurt? */
1514   int activesound;  /* What sound it makes wandering around, once
1515            in a while.  Chance is 3/256 it will. */
1516   uint64_t flags;  /* Bit masks for lots of things.  See p_mobj.h */
1517   int raisestate;   /* The first state for an Archvile or respawn
1518            resurrection.  Zero means it won't come
1519            back to life. */
1520   int meleethreshold; /* Distance to switch from missile to melee attack */
1521   int maxattackrange; /* Maximum distance range to start shooting */
1522   int minmissilechance; /* Minimum chance for firing a missile */
1523 } mobjinfo_t;
1524 
1525 /* See p_mobj_h for addition more technical info */
1526 extern mobjinfo_t mobjinfo[NUMMOBJTYPES];
1527 
1528 #endif
1529