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