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