1 /* 2 Copyright (C) 1994-1995 Apogee Software, Ltd. 3 4 This program is free software; you can redistribute it and/or 5 modify it under the terms of the GNU General Public License 6 as published by the Free Software Foundation; either version 2 7 of the License, or (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 13 See the GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 */ 20 #ifndef _states_public 21 #define _states_public 22 23 #include "develop.h" 24 25 #if (SHAREWARE == 0) 26 #define MAXSTATES 1300 27 #else 28 #define MAXSTATES 660 29 #endif 30 31 #define SF_CLOSE 0x01 32 #define SF_CRUSH 0x02 33 #define SF_UP 0x04 34 #define SF_DOWN 0x08 35 #define SF_SOUND 0x10 36 #define SF_BLOCK 0x20 37 #define SF_EYE1 0 38 #define SF_EYE2 1 39 #define SF_EYE3 2 40 #define SF_DOGSTATE 0x40 41 #define SF_BAT 0x80 42 #define SF_FAKING 0x80 43 #define SF_DEAD 0x80 44 45 typedef struct statestruct 46 { 47 byte rotate; 48 short shapenum; // a shapenum of -1 means get from ob->temp1 49 short tictime; 50 void (*think) (); 51 signed char condition; 52 struct statestruct *next; 53 } statetype; 54 55 extern statetype * statetable[MAXSTATES]; 56 57 extern statetype s_lowgrdstand; 58 extern statetype s_lowgrdpath4; 59 extern statetype s_lowgrdpath3; 60 extern statetype s_lowgrdpath2; 61 extern statetype s_lowgrdpath1; 62 extern statetype s_lowgrdcollide; 63 extern statetype s_lowgrdcollide2; 64 //extern statetype s_lowgrduse1; 65 extern statetype s_lowgrdshoot1; 66 extern statetype s_lowgrdchase1; 67 extern statetype s_lowgrddie1; 68 extern statetype s_lowgrdcrushed1; 69 extern statetype s_lowgrdcrushed1; 70 extern statetype s_sneakydown; 71 extern statetype s_sneakyrise1; 72 73 74 extern statetype s_highgrdstand; 75 extern statetype s_highgrdpath1; 76 extern statetype s_highgrdcollide; 77 extern statetype s_highgrdcollide2; 78 //extern statetype s_highgrduse1; 79 extern statetype s_highgrdshoot1; 80 extern statetype s_highgrdshoot3; 81 extern statetype s_highgrdchase1; 82 extern statetype s_highgrddie1; 83 extern statetype s_highgrdcrushed1; 84 85 86 extern statetype s_strikestand; 87 extern statetype s_strikepath1; 88 extern statetype s_strikecollide; 89 extern statetype s_strikecollide2; 90 extern statetype s_strikeshoot1; 91 //extern statetype s_strikeuse1; 92 extern statetype s_strikerollright1; 93 extern statetype s_strikerollright3; 94 extern statetype s_strikerollleft1; 95 extern statetype s_strikerollleft3; 96 extern statetype s_strikechase1; 97 extern statetype s_strikedie1; 98 extern statetype s_strikewait; 99 extern statetype s_strikecrushed1; 100 101 102 extern statetype s_blitzstand; 103 extern statetype s_blitzpath1; 104 extern statetype s_blitzcollide; 105 extern statetype s_blitzcollide2; 106 extern statetype s_blitzshoot1; 107 extern statetype s_blitzuse; 108 extern statetype s_blitzsteal1; 109 extern statetype s_blitzchase1; 110 extern statetype s_blitzdie1; 111 extern statetype s_blitzdie3; 112 extern statetype s_blitzplead1; 113 extern statetype s_blitzplead3; 114 extern statetype s_blitzplead4; 115 extern statetype s_blitzplead7; 116 extern statetype s_blitzaplead5; 117 extern statetype s_blitzaplead4; 118 extern statetype s_blitzcrushed1; 119 extern statetype s_blitzfakedie1; 120 extern statetype s_blitzrise2; 121 extern statetype s_blitzstruggledie1; 122 extern statetype s_blitzstruggledead; 123 124 extern statetype s_enforcerstand; 125 extern statetype s_enforcerpath1; 126 extern statetype s_enforcercollide; 127 extern statetype s_enforcercollide2; 128 //extern statetype s_enforceruse1; 129 extern statetype s_enforcershoot1; 130 extern statetype s_enforcershoot3; 131 extern statetype s_enforcerthrow1; 132 extern statetype s_grenade1; 133 extern statetype s_grenadehit1; 134 extern statetype s_enforcerchase1; 135 extern statetype s_enforcerdie1; 136 extern statetype s_grenade_fall1; 137 extern statetype s_grenade_fall6; 138 extern statetype s_enforcercrushed1; 139 140 141 extern statetype s_robogrdstand; 142 extern statetype s_robogrdpath1; 143 extern statetype s_robogrdshoot1; 144 extern statetype s_robogrdshuriken1; 145 extern statetype s_shurikenhit1; 146 extern statetype s_robogrdchase1; 147 extern statetype s_robogrddie1; 148 extern statetype s_robogrdcollide; 149 extern statetype s_robogrdcollide2; 150 extern statetype s_robogrdcrushed1; 151 extern statetype s_roboalign; 152 extern statetype s_robowait; 153 extern statetype s_roborealign; 154 155 156 157 158 159 extern statetype s_altexplosion10; 160 extern statetype s_altexplosion9 ; 161 extern statetype s_altexplosion8 ; 162 extern statetype s_altexplosion7 ; 163 extern statetype s_altexplosion6 ; 164 extern statetype s_altexplosion5 ; 165 extern statetype s_altexplosion4 ; 166 extern statetype s_altexplosion3 ; 167 extern statetype s_altexplosion2 ; 168 extern statetype s_altexplosion1 ; 169 170 171 172 extern statetype s_explosion1; 173 extern statetype s_explosion2; 174 extern statetype s_explosion3; 175 extern statetype s_explosion4; 176 extern statetype s_explosion5; 177 extern statetype s_explosion6; 178 extern statetype s_explosion7; 179 extern statetype s_explosion8; 180 extern statetype s_explosion9; 181 extern statetype s_explosion10; 182 extern statetype s_explosion11; 183 extern statetype s_explosion12; 184 extern statetype s_explosion13; 185 extern statetype s_explosion14; 186 extern statetype s_explosion15; 187 extern statetype s_explosion16; 188 extern statetype s_explosion17; 189 extern statetype s_explosion18; 190 extern statetype s_explosion19; 191 extern statetype s_explosion20; 192 193 extern statetype s_grexplosion1; 194 extern statetype s_grexplosion2; 195 extern statetype s_grexplosion3; 196 extern statetype s_grexplosion4; 197 extern statetype s_grexplosion5; 198 extern statetype s_grexplosion6; 199 extern statetype s_grexplosion7; 200 extern statetype s_grexplosion8; 201 extern statetype s_grexplosion9; 202 extern statetype s_grexplosion10; 203 extern statetype s_grexplosion11; 204 extern statetype s_grexplosion12; 205 extern statetype s_grexplosion13; 206 extern statetype s_grexplosion14; 207 extern statetype s_grexplosion15; 208 extern statetype s_grexplosion16; 209 extern statetype s_grexplosion17; 210 extern statetype s_grexplosion18; 211 extern statetype s_grexplosion19; 212 extern statetype s_grexplosion20; 213 214 215 216 extern statetype s_staticexplosion1; 217 extern statetype s_staticexplosion2; 218 extern statetype s_staticexplosion3; 219 extern statetype s_staticexplosion4; 220 extern statetype s_staticexplosion5; 221 extern statetype s_staticexplosion6; 222 extern statetype s_staticexplosion7; 223 extern statetype s_staticexplosion8; 224 extern statetype s_staticexplosion9; 225 extern statetype s_staticexplosion10; 226 extern statetype s_staticexplosion11; 227 extern statetype s_staticexplosion12; 228 extern statetype s_staticexplosion13; 229 extern statetype s_staticexplosion14; 230 extern statetype s_staticexplosion15; 231 extern statetype s_staticexplosion16; 232 extern statetype s_staticexplosion17; 233 extern statetype s_staticexplosion18; 234 extern statetype s_staticexplosion19; 235 extern statetype s_staticexplosion20; 236 extern statetype s_staticexplosion21; 237 extern statetype s_staticexplosion22; 238 extern statetype s_staticexplosion23; 239 extern statetype s_staticexplosion24; 240 extern statetype s_staticexplosion25; 241 242 extern statetype s_upblade1; 243 244 extern statetype s_firejetup1; 245 246 247 extern statetype s_columndowndown1; 248 249 250 extern statetype s_spearup1; 251 extern statetype s_pushcolumn1; 252 extern statetype s_pushcolumn2; 253 extern statetype s_pushcolumn3; 254 255 extern statetype s_wallfireball; 256 extern statetype s_crossfire1; 257 extern statetype s_crossdone1; 258 259 260 261 262 extern statetype s_fireunit1; 263 extern statetype s_firespan1; 264 265 extern statetype s_p_bazooka1; 266 extern statetype s_p_bazooka2; 267 268 extern statetype s_p_grenade; 269 extern statetype s_p_gfall1; 270 extern statetype s_p_gfall2; 271 extern statetype s_p_gfall3; 272 extern statetype s_p_gfall4; 273 274 extern statetype s_gunsmoke1; 275 extern statetype s_bloodspurt1; 276 extern statetype s_hitmetalwall1; 277 extern statetype s_hitmetalactor1; 278 279 280 281 282 283 284 extern statetype s_dust; 285 286 287 288 extern statetype s_skeleton1; 289 290 291 extern statetype s_gas2; 292 extern statetype s_gas1; 293 294 295 extern statetype s_spring1; 296 extern statetype s_spring2; 297 298 299 300 301 extern statetype s_player; 302 extern statetype s_free; 303 304 extern statetype s_pgunattack1; 305 extern statetype s_pmissattack1; 306 extern statetype s_pgunattack2; 307 extern statetype s_pmissattack2; 308 extern statetype s_remoteinelev; 309 extern statetype s_remotemove1; 310 311 312 extern statetype s_godfire1; 313 314 315 316 extern statetype s_remotedie1; 317 318 319 extern statetype s_guts1; 320 extern statetype s_guts12; 321 322 323 extern statetype s_bossdeath; 324 extern statetype s_megaexplosions; 325 326 extern statetype s_superparticles; 327 extern statetype s_gibs1; 328 extern statetype s_gibsdone1; 329 extern statetype s_bigsoul; 330 extern statetype s_littlesoul; 331 extern statetype s_vaporized1; 332 extern statetype s_autospring1; 333 extern statetype s_pbatblast; 334 335 336 337 extern statetype s_collectorwander1; 338 extern statetype s_collectorfdoor1; 339 extern statetype s_tag; 340 extern statetype s_timekeeper; 341 extern statetype s_skeleton48; 342 extern statetype s_skeleton24; 343 344 extern statetype s_wind; 345 extern statetype s_remoteguts1; 346 extern statetype s_voidwait; 347 extern statetype s_ashwait; 348 extern statetype s_deadwait; 349 extern statetype s_gutwait; 350 extern statetype s_vaporized8; 351 extern statetype s_remoteguts12; 352 extern statetype s_eye1; 353 extern statetype s_itemspawn1; 354 extern statetype s_deadblood1; 355 356 357 extern statetype s_flash1; 358 359 extern statetype s_elevdisk; 360 extern statetype s_pathdisk; 361 extern statetype s_megaremove; 362 363 extern statetype s_respawn1; 364 extern statetype s_basemarker1; 365 366 extern statetype s_blooddrip1; 367 368 extern statetype s_diskmaster; 369 extern statetype s_bstar1; 370 371 372 #if (SHAREWARE == 0) 373 374 extern statetype s_scottwander1; 375 extern statetype s_scottwanderdoor1; 376 377 extern statetype s_opstand; 378 extern statetype s_oppath1; 379 extern statetype s_opcollide; 380 extern statetype s_opcollide2; 381 extern statetype s_opgiveup; 382 //extern statetype s_opuse1; 383 extern statetype s_opshoot1; 384 extern statetype s_opbolo1; 385 extern statetype s_bolocast1; 386 extern statetype s_opchase1; 387 extern statetype s_opdie1; 388 extern statetype s_opcrushed1; 389 390 391 extern statetype s_dmonkstand; 392 extern statetype s_dmonkpath1; 393 extern statetype s_dmonkshoot1; 394 extern statetype s_dmonkshoot2; 395 extern statetype s_dmonkchase1; 396 extern statetype s_dmonkdie1; 397 extern statetype s_dmonkcollide; 398 extern statetype s_dmonkcollide2; 399 extern statetype s_dmonkcrushed1; 400 extern statetype s_dmonkshoot5; 401 extern statetype s_dmonkshoot3; 402 extern statetype s_dmonkshoot4; 403 404 405 extern statetype s_firemonkstand; 406 extern statetype s_firemonkpath1; 407 extern statetype s_firemonkcast1; 408 extern statetype s_monkfire1; 409 extern statetype s_fireballhit1; 410 extern statetype s_firemonkchase1; 411 extern statetype s_firemonkdie1; 412 extern statetype s_firemonkcollide; 413 extern statetype s_firemonkcollide2; 414 extern statetype s_firemonkcrushed1; 415 416 417 extern statetype s_wallstand; 418 extern statetype s_wallpath; 419 extern statetype s_wallshoot; 420 extern statetype s_wallcollide; 421 extern statetype s_wallalign; 422 extern statetype s_wallwait; 423 extern statetype s_wallrestore; 424 425 426 extern statetype s_darianstand; 427 extern statetype s_darianchase1; 428 extern statetype s_darianuse; 429 extern statetype s_darianshoot1; 430 extern statetype s_dariancollide; 431 extern statetype s_dariancollide2; 432 extern statetype s_dariandie1; 433 extern statetype s_darianspears; 434 extern statetype s_darianuse1; 435 extern statetype s_dariansink1; 436 extern statetype s_dariansink9; 437 extern statetype s_darianrise1; 438 extern statetype s_darianwait; 439 extern statetype s_dariandefend1; 440 441 442 extern statetype s_heinrichstand; 443 extern statetype s_heinrichshoot1; 444 extern statetype s_heinrichshoot4; 445 extern statetype s_heinrichshoot9; 446 extern statetype s_heinrichooc; 447 extern statetype s_heinrichchase; 448 extern statetype s_heinexp1; 449 extern statetype s_kristleft; 450 extern statetype s_kristright; 451 452 453 extern statetype s_missile1; 454 extern statetype s_missilehit1; 455 extern statetype s_mine1; 456 extern statetype s_heinrichchase1; 457 extern statetype s_heinrichuse; 458 extern statetype s_heinrichmine; 459 extern statetype s_heinrichdie1; 460 extern statetype s_heinrichdead; 461 extern statetype s_heinrichdefend; 462 463 extern statetype s_dexplosion22; 464 extern statetype s_dexplosion21; 465 extern statetype s_dexplosion20; 466 extern statetype s_dexplosion19; 467 extern statetype s_dexplosion18; 468 extern statetype s_dexplosion17; 469 extern statetype s_dexplosion16; 470 extern statetype s_dexplosion15; 471 extern statetype s_dexplosion14; 472 extern statetype s_dexplosion13; 473 extern statetype s_dexplosion12; 474 extern statetype s_dexplosion11; 475 extern statetype s_dexplosion10; 476 extern statetype s_dexplosion9; 477 extern statetype s_dexplosion8; 478 extern statetype s_dexplosion7; 479 extern statetype s_dexplosion6; 480 extern statetype s_dexplosion5; 481 extern statetype s_dexplosion4; 482 extern statetype s_dexplosion3; 483 extern statetype s_dexplosion2; 484 extern statetype s_dexplosion1; 485 extern statetype s_dspear1; 486 487 488 489 extern statetype s_NMEchase; 490 extern statetype s_NMEdie; 491 extern statetype s_NMEhead1; 492 extern statetype s_NMEhead2; 493 extern statetype s_NMEwheels1; 494 extern statetype s_NMEwheels2; 495 extern statetype s_NMEwheels3; 496 extern statetype s_NMEwheels4; 497 extern statetype s_NMEwheels5; 498 extern statetype s_NMEwindup; 499 extern statetype s_NMEwheels120; 500 501 extern statetype s_NMEwrotleft3; 502 extern statetype s_NMEwrotleft2; 503 extern statetype s_NMEwrotleft1; 504 505 extern statetype s_NMEwrotright3; 506 extern statetype s_NMEwrotright2; 507 extern statetype s_NMEwrotright1; 508 extern statetype s_NMEminiball1; 509 extern statetype s_NMEattack; 510 extern statetype s_NMEsaucer1; 511 extern statetype s_NMEhead1rl; 512 extern statetype s_NMEhead2rl; 513 extern statetype s_NMEspinattack; 514 extern statetype s_NMEwheelspin; 515 extern statetype s_NMEcollide; 516 extern statetype s_NMEdeathbuildup; 517 extern statetype s_NMEheadexplosion; 518 extern statetype s_NMEstand; 519 extern statetype s_NMEspinfire; 520 extern statetype s_shootinghead; 521 extern statetype s_oshuriken1; 522 extern statetype s_oshurikenhit1; 523 524 525 526 527 extern statetype s_darkmonkstand; 528 extern statetype s_darkmonkcharge1; 529 extern statetype s_darkmonkreact; 530 extern statetype s_darkmonkland; 531 extern statetype s_darkmonkchase1; 532 extern statetype s_darkmonkcover1; 533 extern statetype s_darkmonkawaken1; 534 extern statetype s_darkmonklightning1; 535 extern statetype s_darkmonkfspark1; 536 extern statetype s_darkmonkbreathe1; 537 extern statetype s_darkmonksummon1; 538 extern statetype s_darkmonkhead; 539 extern statetype s_darkmonkhspawn; 540 extern statetype s_darkmonksneer1; 541 extern statetype s_darkmonkheadhappy; 542 extern statetype s_darkmonkheaddie1; 543 extern statetype s_darkmonkhball1; 544 extern statetype s_darkmonksphere1; 545 extern statetype s_darkmonksphere8; 546 extern statetype s_darkmonkbball1; 547 extern statetype s_darkmonkscare1; 548 extern statetype s_darkmonkdie1; 549 extern statetype s_darkmonkredhead; 550 extern statetype s_redheadhit; 551 extern statetype s_darkmonksnakelink; 552 extern statetype s_darkmonkredlink; 553 extern statetype s_redlinkhit; 554 extern statetype s_energysphere1; 555 extern statetype s_lightning; 556 extern statetype s_handball2; 557 extern statetype s_handball1; 558 extern statetype s_faceball2; 559 extern statetype s_faceball1; 560 extern statetype s_floorspark1; 561 extern statetype s_dmlandandfire; 562 563 extern statetype s_darkmonkhball7; 564 extern statetype s_darkmonkbball7; 565 extern statetype s_darkmonklightning9; 566 extern statetype s_darkmonkfspark5; 567 extern statetype s_darkmonkbreathe6; 568 extern statetype s_darkmonkabsorb1; 569 extern statetype s_dmgreenthing1; 570 extern statetype s_dmgreenthing8; 571 extern statetype s_darkmonkfastspawn; 572 extern statetype s_spit1; 573 extern statetype s_spithit1; 574 extern statetype s_snakefire1; 575 extern statetype s_snakepath; 576 extern statetype s_snakefindpath; 577 extern statetype s_snakefireworks1; 578 extern statetype s_snakefireworks2; 579 580 581 extern statetype s_speardown1; 582 583 584 extern statetype s_downblade1; 585 586 587 extern statetype s_firejetdown1; 588 589 extern statetype s_columnupup1; 590 extern statetype s_columnupup2; 591 extern statetype s_columnupup8; 592 extern statetype s_columnupup7; 593 extern statetype s_columnupdown1; 594 extern statetype s_columnupdown6; 595 596 extern statetype s_spinupblade1; 597 extern statetype s_spindownblade1; 598 599 extern statetype s_boulderdrop12; 600 extern statetype s_boulderdrop10; 601 extern statetype s_boulderdrop8; 602 603 604 extern statetype s_boulderdrop1; 605 extern statetype s_boulderspawn; 606 extern statetype s_bouldersink1; 607 extern statetype s_boulderroll1; 608 609 extern statetype s_gunfire1; 610 extern statetype s_gunfire2; 611 extern statetype s_gundie1; 612 extern statetype s_gunstand; 613 extern statetype s_gunraise1; 614 extern statetype s_gunlower1; 615 extern statetype s_4waygunfire1; 616 extern statetype s_4waygunfire2; 617 extern statetype s_4waygun; 618 619 620 extern statetype s_kessphere1; 621 extern statetype s_batblast1; 622 extern statetype s_slop1; 623 624 625 626 extern statetype s_serialdog4; 627 extern statetype s_serialdog3; 628 extern statetype s_serialdog2; 629 extern statetype s_serialdog; 630 extern statetype s_serialdogattack; 631 extern statetype s_doguse; 632 extern statetype s_doglick; 633 extern statetype s_dogwait; 634 635 636 637 #endif 638 639 640 641 642 643 644 #endif 645