info.h 26 KB

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