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