diff --git a/Readme.md b/Readme.md index 502408a..91af1a2 100644 --- a/Readme.md +++ b/Readme.md @@ -12,7 +12,7 @@ This mod requires GZDoom 4.1 or later. - Redeemer (slot 0) - 6 Degrees of Freedom movement with manual tilt (reload/zoom buttons) - GES Biorifle (slot 3) - - Pulsegun (slot 5) (with beta animations) + - Pulsegun (slot 5) (with optional beta reload) - Health - Big Keg O' Health (soulsphere) - Beta Super Health (medkit) @@ -31,12 +31,16 @@ This mod requires GZDoom 4.1 or later. - Computer Map (computer area map) - Searchlight (light amplification visor) - Enhanced Shock Rifle (slot 4, limited ammo, invulnerability sphere) + - Instagib DM mode - UT HUD - Impact Hammer (slot 1) - Chainsaw (slot 1) + - Option to make chainsaw use ammo (random drop from enemies killed without it) - Translocator (slot 1) + - Option to make it use regenerating ammo like in UT2k4 - Enforcer (slot 2) - Dual Enforcers (slot 2) + - Restored reloading (optional) - Ripper (slot 6) - Jump Boots (radsuit, has "iron boots" powerup effect to compensate) - Minigun (slot 7) @@ -48,22 +52,22 @@ This mod requires GZDoom 4.1 or later. - Visual recoil affecting aim (improved A_Swing from Soundless Mound, can be toggled) - UT-like weapon dropping style - - UT player classes (sound only, no models yet) + - UT player classes - Heretic compatibility - Spanish localization + - UT gore system (toggleable) ## In progress - General polishing, bugfixing and rebalancing - Add some more effects - Lava/Slime footstep sounds? - - UT gore system (toggleable) - - French localization - - Italian localization + - French, Italian and German localizations (I'll need help for these) ## Ideas - - Chainsaw balancing (maybe give it ammo?) + - Figure out some alternative invincibility item. Kinda like how I improvised + the backpack replacement. ## Future plans @@ -72,14 +76,14 @@ This mod requires GZDoom 4.1 or later. - Recenter the backpack mesh (it was a complete hack job to begin with) - Add ammo counters to Pulsegun, Minigun, Flak Cannon and Rocket Launcher once scripted textures are implemented - - Add player models once GZDoom gets a well deserved model animation system - overhaul (at the moment this would require a monumental amount of work in - the current state-tied system) + - Redo player models once GZDoom gets a well deserved model animation system + overhaul (mainly to clean up the current, messy implementation of this) - Add weapon attachment support to player models when that is also added in + (at the moment all player models have an integrated placeholder weapon) - Unreal 1 weapons mod and maybe also a monsters mod - Port some of my UT weapon mods (and maybe also some of my personal faves by others, such as Psi Weapon Dreams) - - Hexen compatibility ??? + - Hexen/Strife compatibility ??? - Relics? ## Known bugs diff --git a/brightmaps/boss3.png b/brightmaps/boss3.png new file mode 100644 index 0000000..523c00d Binary files /dev/null and b/brightmaps/boss3.png differ diff --git a/brightmaps/boss4.png b/brightmaps/boss4.png new file mode 100644 index 0000000..7560dc0 Binary files /dev/null and b/brightmaps/boss4.png differ diff --git a/filter/game-heretic/zmapinfo.txt b/filter/game-heretic/zmapinfo.txt deleted file mode 100644 index 864ee9e..0000000 --- a/filter/game-heretic/zmapinfo.txt +++ /dev/null @@ -1,9 +0,0 @@ -GameInfo -{ - AddEventHandlers = "RedeemerHUDHandler", "UTMainHandler" - PlayerClasses = "UTPlayerHereticCompatTMale1", "UTPlayerHereticCompatTMale2", "UTPlayerHereticCompatTFemale1", "UTPlayerHereticCompatTFemale2", "UTPlayerHereticCompatTBoss" - StatusBarClass = "UTHud" - BackpackType = "UTBackpack" - BorderFlat = "TEMPBG" - Border = 0,0,"","","","","","","","" -} diff --git a/gldefs.txt b/gldefs.txt index 4e5988b..86ea1da 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -27,6 +27,18 @@ HardwareShader Texture "models/bossheadT.png" Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Texture "brighttex" "brightmaps/bossheadT.png" } +Brightmap Texture "models/bossgibT.png" +{ + Map "brightmaps/bossheadT.png" +} +Brightmap Texture "models/boss3.png" +{ + Map "brightmaps/boss3.png" +} +Brightmap Texture "models/boss4.png" +{ + Map "brightmaps/boss4.png" +} HardwareShader Texture "models/JBRifle2.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" diff --git a/modeldef.boss b/modeldef.boss new file mode 100644 index 0000000..554701a --- /dev/null +++ b/modeldef.boss @@ -0,0 +1,308 @@ +Model "UTPlayerTBoss" +{ + Path "models" + Model 0 "Boss_d.3d" + SurfaceSkin 0 0 "boss1.png" + SurfaceSkin 0 1 "boss2.png" + SurfaceSkin 0 2 "boss3.png" + SurfaceSkin 0 3 "boss4.png" + SurfaceSkin 0 5 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset 0 -5 29 + RollOffset -90 + AngleOffset -90 + IGNORETRANSLATION // I'll figure out eventually how to make color changes work, but for now this is it + // Still + FrameIndex PLAY A 0 373 + FrameIndex PLAY B 0 374 + FrameIndex PLAY C 0 375 + FrameIndex PLAY D 0 376 + FrameIndex PLAY E 0 377 + FrameIndex PLAY F 0 378 + FrameIndex PLAY G 0 379 + // Still (Air) + FrameIndex PLYA A 0 91 + // Land + FrameIndex PLYL A 0 93 + // Still (Swim) + FrameIndex PLYS A 0 235 + FrameIndex PLYS B 0 237 + FrameIndex PLYS C 0 239 + FrameIndex PLYS D 0 241 + FrameIndex PLYS E 0 243 + FrameIndex PLYS F 0 245 + FrameIndex PLYS G 0 247 + // Run + FrameIndex PLAY H 0 137 + FrameIndex PLAY I 0 139 + FrameIndex PLAY J 0 141 + FrameIndex PLAY K 0 143 + FrameIndex PLAY L 0 145 + // Run (Swim) + FrameIndex PLYS H 0 205 + FrameIndex PLYS I 0 208 + FrameIndex PLYS J 0 211 + FrameIndex PLYS K 0 214 + FrameIndex PLYS L 0 217 + // Fire (Loop) + FrameIndex PLAY R 0 177 + FrameIndex PLAY S 0 179 + FrameIndex PLAY T 0 181 + FrameIndex PLAY U 0 183 + FrameIndex PLAY V 0 185 + // Fire (Single) + FrameIndex PLAY M 0 187 + FrameIndex PLAY N 0 189 + FrameIndex PLAY O 0 191 + FrameIndex PLAY P 0 193 + FrameIndex PLAY Q 0 195 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 90 // head + FrameIndex PLAY Y 0 95 // left + FrameIndex PLAY Z 0 136 // right + // Reload + FrameIndex PLYR A 0 400 + FrameIndex PLYR B 0 401 + FrameIndex PLYR C 0 402 + FrameIndex PLYR D 0 403 + FrameIndex PLYR E 0 404 + FrameIndex PLYR F 0 405 + FrameIndex PLYR G 0 406 + FrameIndex PLYR H 0 407 + // Crouch + FrameIndex PLYC A 0 60 + FrameIndex PLYC B 0 63 + FrameIndex PLYC C 0 66 + FrameIndex PLYC D 0 69 + FrameIndex PLYC E 0 72 + // Turn + FrameIndex PLYT A 0 298 + FrameIndex PLYT B 0 299 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 525 + FrameIndex PLD1 B 0 526 + FrameIndex PLD1 C 0 527 + FrameIndex PLD1 D 0 528 + FrameIndex PLD1 E 0 529 + FrameIndex PLD1 F 0 530 + FrameIndex PLD1 G 0 531 + FrameIndex PLD1 H 0 532 + FrameIndex PLD1 I 0 533 + FrameIndex PLD1 J 0 534 + FrameIndex PLD1 K 0 535 + FrameIndex PLD1 L 0 536 + FrameIndex PLD1 M 0 537 + // Dead2 (Falling back) + FrameIndex PLD2 A 0 538 + FrameIndex PLD2 B 0 539 + FrameIndex PLD2 C 0 540 + FrameIndex PLD2 D 0 541 + FrameIndex PLD2 E 0 542 + FrameIndex PLD2 F 0 543 + FrameIndex PLD2 G 0 544 + FrameIndex PLD2 H 0 545 + FrameIndex PLD2 I 0 546 + FrameIndex PLD2 J 0 547 + FrameIndex PLD2 K 0 548 + FrameIndex PLD2 L 0 549 + FrameIndex PLD2 M 0 550 + FrameIndex PLD2 N 0 551 + FrameIndex PLD2 O 0 552 + FrameIndex PLD2 P 0 553 + // Dead3 (Falling forward) + FrameIndex PLD3 A 0 554 + FrameIndex PLD3 B 0 555 + FrameIndex PLD3 C 0 556 + FrameIndex PLD3 D 0 557 + FrameIndex PLD3 E 0 558 + FrameIndex PLD3 F 0 559 + FrameIndex PLD3 G 0 560 + FrameIndex PLD3 H 0 561 + FrameIndex PLD3 I 0 562 + FrameIndex PLD3 J 0 563 + FrameIndex PLD3 K 0 564 + FrameIndex PLD3 L 0 565 + FrameIndex PLD3 M 0 566 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 567 + FrameIndex PLD4 B 0 568 + FrameIndex PLD4 C 0 569 + FrameIndex PLD4 D 0 570 + FrameIndex PLD4 E 0 571 + FrameIndex PLD4 F 0 572 + FrameIndex PLD4 G 0 573 + FrameIndex PLD4 H 0 574 + FrameIndex PLD4 I 0 575 + FrameIndex PLD4 J 0 576 + FrameIndex PLD4 K 0 577 + FrameIndex PLD4 L 0 578 + FrameIndex PLD4 M 0 579 + FrameIndex PLD4 N 0 580 + FrameIndex PLD4 O 0 581 + FrameIndex PLD4 P 0 582 + // Dead7 (Headshot) + FrameIndex PLD7 A 0 583 + FrameIndex PLD7 B 0 584 + FrameIndex PLD7 C 0 585 + FrameIndex PLD7 D 0 586 + FrameIndex PLD7 E 0 587 + FrameIndex PLD7 F 0 588 + FrameIndex PLD7 G 0 589 + FrameIndex PLD7 H 0 590 + FrameIndex PLD7 I 0 591 + FrameIndex PLD7 J 0 592 + FrameIndex PLD7 K 0 593 + FrameIndex PLD7 L 0 594 + FrameIndex PLD7 M 0 595 + FrameIndex PLD7 N 0 596 + FrameIndex PLD7 O 0 597 + FrameIndex PLD7 P 0 598 + FrameIndex PLD7 Q 0 599 + FrameIndex PLD7 R 0 600 + FrameIndex PLD7 S 0 601 + FrameIndex PLD7 T 0 602 + FrameIndex PLD7 U 0 603 + // Dead8 (Stomach) + FrameIndex PLD8 A 0 604 + FrameIndex PLD8 B 0 605 + FrameIndex PLD8 C 0 606 + FrameIndex PLD8 D 0 607 + FrameIndex PLD8 E 0 608 + FrameIndex PLD8 F 0 609 + FrameIndex PLD8 G 0 610 + FrameIndex PLD8 H 0 611 + FrameIndex PLD8 I 0 612 + FrameIndex PLD8 J 0 613 + FrameIndex PLD8 K 0 614 + FrameIndex PLD8 L 0 615 + FrameIndex PLD8 M 0 616 + FrameIndex PLD8 N 0 617 + FrameIndex PLD8 O 0 618 + FrameIndex PLD8 P 0 619 + FrameIndex PLD8 Q 0 620 + FrameIndex PLD8 R 0 621 + // Dead9 (Zapped) + FrameIndex PLD9 A 0 622 + FrameIndex PLD9 B 0 623 + FrameIndex PLD9 C 0 624 + FrameIndex PLD9 D 0 625 + FrameIndex PLD9 E 0 626 + FrameIndex PLD9 F 0 627 + FrameIndex PLD9 G 0 628 + FrameIndex PLD9 H 0 629 + FrameIndex PLD9 I 0 630 + FrameIndex PLD9 J 0 631 + FrameIndex PLD9 K 0 632 + FrameIndex PLD9 L 0 633 + FrameIndex PLD9 M 0 634 + FrameIndex PLD9 N 0 635 + FrameIndex PLD9 O 0 636 + FrameIndex PLD9 P 0 637 + FrameIndex PLD9 Q 0 638 + FrameIndex PLD9 R 0 639 + FrameIndex PLD9 S 0 640 + FrameIndex PLD9 T 0 641 + // + FrameIndex PD9B A 0 642 + FrameIndex PD9B B 0 643 + FrameIndex PD9B C 0 644 + FrameIndex PD9B D 0 645 + FrameIndex PD9B E 0 646 + FrameIndex PD9B F 0 647 + FrameIndex PD9B G 0 648 + FrameIndex PD9B H 0 649 + FrameIndex PD9B I 0 650 + FrameIndex PD9B J 0 651 + // Dead11 (Spinning) + FrameIndex PD11 A 0 652 + FrameIndex PD11 B 0 653 + FrameIndex PD11 C 0 654 + FrameIndex PD11 D 0 655 + FrameIndex PD11 E 0 656 + FrameIndex PD11 F 0 657 + FrameIndex PD11 G 0 658 + FrameIndex PD11 H 0 659 + FrameIndex PD11 I 0 660 + FrameIndex PD11 J 0 661 + FrameIndex PD11 K 0 662 + FrameIndex PD11 L 0 663 + FrameIndex PD11 M 0 664 + FrameIndex PD11 N 0 665 + FrameIndex PD11 O 0 666 + FrameIndex PD11 P 0 667 + FrameIndex PD11 Q 0 668 + FrameIndex PD11 R 0 669 + // Taunt1 + FrameIndex PLT1 A 0 5 + FrameIndex PLT1 B 0 6 + FrameIndex PLT1 C 0 7 + FrameIndex PLT1 D 0 8 + FrameIndex PLT1 E 0 9 + FrameIndex PLT1 F 0 10 + FrameIndex PLT1 G 0 11 + FrameIndex PLT1 H 0 12 + FrameIndex PLT1 I 0 13 + FrameIndex PLT1 J 0 14 + FrameIndex PLT1 K 0 15 + FrameIndex PLT1 L 0 16 + FrameIndex PLT1 M 0 17 + FrameIndex PLT1 N 0 18 + FrameIndex PLT1 O 0 19 + FrameIndex PLT1 P 0 20 + FrameIndex PLT1 Q 0 21 + FrameIndex PLT1 R 0 22 + FrameIndex PLT1 S 0 23 + FrameIndex PLT1 T 0 24 + // Victory + FrameIndex PLT2 A 0 265 + FrameIndex PLT2 B 0 266 + FrameIndex PLT2 C 0 267 + FrameIndex PLT2 D 0 268 + FrameIndex PLT2 E 0 269 + FrameIndex PLT2 F 0 270 + FrameIndex PLT2 G 0 271 + FrameIndex PLT2 H 0 272 + FrameIndex PLT2 I 0 273 + FrameIndex PLT2 J 0 274 + FrameIndex PLT2 K 0 275 + FrameIndex PLT2 L 0 276 + FrameIndex PLT2 M 0 277 + FrameIndex PLT2 N 0 278 + FrameIndex PLT2 O 0 279 + FrameIndex PLT2 P 0 280 + FrameIndex PLT2 Q 0 281 + FrameIndex PLT2 R 0 282 + // Wave + FrameIndex PLT3 A 0 448 + FrameIndex PLT3 B 0 449 + FrameIndex PLT3 C 0 450 + FrameIndex PLT3 D 0 451 + FrameIndex PLT3 E 0 452 + FrameIndex PLT3 F 0 453 + FrameIndex PLT3 G 0 454 + FrameIndex PLT3 H 0 455 + FrameIndex PLT3 I 0 456 + FrameIndex PLT3 J 0 457 + FrameIndex PLT3 K 0 458 + FrameIndex PLT3 L 0 459 + FrameIndex PLT3 M 0 460 + FrameIndex PLT3 N 0 461 + FrameIndex PLT3 O 0 462 + // Thrust + FrameIndex PLT4 A 0 486 + FrameIndex PLT4 B 0 487 + FrameIndex PLT4 C 0 488 + FrameIndex PLT4 D 0 489 + FrameIndex PLT4 E 0 490 + FrameIndex PLT4 F 0 491 + FrameIndex PLT4 G 0 492 + FrameIndex PLT4 H 0 493 + FrameIndex PLT4 I 0 494 + FrameIndex PLT4 J 0 495 + FrameIndex PLT4 K 0 496 + FrameIndex PLT4 L 0 497 + FrameIndex PLT4 M 0 498 + FrameIndex PLT4 N 0 499 + FrameIndex PLT4 O 0 500 +} diff --git a/modeldef.commando b/modeldef.commando new file mode 100644 index 0000000..f326cfe --- /dev/null +++ b/modeldef.commando @@ -0,0 +1,308 @@ +Model "UTPlayerTMale1" +{ + Path "models" + Model 0 "Commando_d.3d" + SurfaceSkin 0 0 "cmdo1.png" + SurfaceSkin 0 1 "cmdo2.png" + SurfaceSkin 0 2 "cmdo3.png" + SurfaceSkin 0 3 "cmdo4.png" + SurfaceSkin 0 5 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset 0 -5 29 + RollOffset -90 + AngleOffset -90 + IGNORETRANSLATION // I'll figure out eventually how to make color changes work, but for now this is it + // Still + FrameIndex PLAY A 0 373 + FrameIndex PLAY B 0 374 + FrameIndex PLAY C 0 375 + FrameIndex PLAY D 0 376 + FrameIndex PLAY E 0 377 + FrameIndex PLAY F 0 378 + FrameIndex PLAY G 0 379 + // Still (Air) + FrameIndex PLYA A 0 91 + // Land + FrameIndex PLYL A 0 93 + // Still (Swim) + FrameIndex PLYS A 0 235 + FrameIndex PLYS B 0 237 + FrameIndex PLYS C 0 239 + FrameIndex PLYS D 0 241 + FrameIndex PLYS E 0 243 + FrameIndex PLYS F 0 245 + FrameIndex PLYS G 0 247 + // Run + FrameIndex PLAY H 0 137 + FrameIndex PLAY I 0 139 + FrameIndex PLAY J 0 141 + FrameIndex PLAY K 0 143 + FrameIndex PLAY L 0 145 + // Run (Swim) + FrameIndex PLYS H 0 205 + FrameIndex PLYS I 0 208 + FrameIndex PLYS J 0 211 + FrameIndex PLYS K 0 214 + FrameIndex PLYS L 0 217 + // Fire (Loop) + FrameIndex PLAY R 0 177 + FrameIndex PLAY S 0 179 + FrameIndex PLAY T 0 181 + FrameIndex PLAY U 0 183 + FrameIndex PLAY V 0 185 + // Fire (Single) + FrameIndex PLAY M 0 187 + FrameIndex PLAY N 0 189 + FrameIndex PLAY O 0 191 + FrameIndex PLAY P 0 193 + FrameIndex PLAY Q 0 195 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 90 // head + FrameIndex PLAY Y 0 95 // left + FrameIndex PLAY Z 0 136 // right + // Reload + FrameIndex PLYR A 0 400 + FrameIndex PLYR B 0 401 + FrameIndex PLYR C 0 402 + FrameIndex PLYR D 0 403 + FrameIndex PLYR E 0 404 + FrameIndex PLYR F 0 405 + FrameIndex PLYR G 0 406 + FrameIndex PLYR H 0 407 + // Crouch + FrameIndex PLYC A 0 60 + FrameIndex PLYC B 0 63 + FrameIndex PLYC C 0 66 + FrameIndex PLYC D 0 69 + FrameIndex PLYC E 0 72 + // Turn + FrameIndex PLYT A 0 298 + FrameIndex PLYT B 0 299 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 525 + FrameIndex PLD1 B 0 526 + FrameIndex PLD1 C 0 527 + FrameIndex PLD1 D 0 528 + FrameIndex PLD1 E 0 529 + FrameIndex PLD1 F 0 530 + FrameIndex PLD1 G 0 531 + FrameIndex PLD1 H 0 532 + FrameIndex PLD1 I 0 533 + FrameIndex PLD1 J 0 534 + FrameIndex PLD1 K 0 535 + FrameIndex PLD1 L 0 536 + FrameIndex PLD1 M 0 537 + // Dead2 (Falling back) + FrameIndex PLD2 A 0 538 + FrameIndex PLD2 B 0 539 + FrameIndex PLD2 C 0 540 + FrameIndex PLD2 D 0 541 + FrameIndex PLD2 E 0 542 + FrameIndex PLD2 F 0 543 + FrameIndex PLD2 G 0 544 + FrameIndex PLD2 H 0 545 + FrameIndex PLD2 I 0 546 + FrameIndex PLD2 J 0 547 + FrameIndex PLD2 K 0 548 + FrameIndex PLD2 L 0 549 + FrameIndex PLD2 M 0 550 + FrameIndex PLD2 N 0 551 + FrameIndex PLD2 O 0 552 + FrameIndex PLD2 P 0 553 + // Dead3 (Falling forward) + FrameIndex PLD3 A 0 554 + FrameIndex PLD3 B 0 555 + FrameIndex PLD3 C 0 556 + FrameIndex PLD3 D 0 557 + FrameIndex PLD3 E 0 558 + FrameIndex PLD3 F 0 559 + FrameIndex PLD3 G 0 560 + FrameIndex PLD3 H 0 561 + FrameIndex PLD3 I 0 562 + FrameIndex PLD3 J 0 563 + FrameIndex PLD3 K 0 564 + FrameIndex PLD3 L 0 565 + FrameIndex PLD3 M 0 566 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 567 + FrameIndex PLD4 B 0 568 + FrameIndex PLD4 C 0 569 + FrameIndex PLD4 D 0 570 + FrameIndex PLD4 E 0 571 + FrameIndex PLD4 F 0 572 + FrameIndex PLD4 G 0 573 + FrameIndex PLD4 H 0 574 + FrameIndex PLD4 I 0 575 + FrameIndex PLD4 J 0 576 + FrameIndex PLD4 K 0 577 + FrameIndex PLD4 L 0 578 + FrameIndex PLD4 M 0 579 + FrameIndex PLD4 N 0 580 + FrameIndex PLD4 O 0 581 + FrameIndex PLD4 P 0 582 + // Dead7 (Headshot) + FrameIndex PLD7 A 0 583 + FrameIndex PLD7 B 0 584 + FrameIndex PLD7 C 0 585 + FrameIndex PLD7 D 0 586 + FrameIndex PLD7 E 0 587 + FrameIndex PLD7 F 0 588 + FrameIndex PLD7 G 0 589 + FrameIndex PLD7 H 0 590 + FrameIndex PLD7 I 0 591 + FrameIndex PLD7 J 0 592 + FrameIndex PLD7 K 0 593 + FrameIndex PLD7 L 0 594 + FrameIndex PLD7 M 0 595 + FrameIndex PLD7 N 0 596 + FrameIndex PLD7 O 0 597 + FrameIndex PLD7 P 0 598 + FrameIndex PLD7 Q 0 599 + FrameIndex PLD7 R 0 600 + FrameIndex PLD7 S 0 601 + FrameIndex PLD7 T 0 602 + FrameIndex PLD7 U 0 603 + // Dead8 (Stomach) + FrameIndex PLD8 A 0 604 + FrameIndex PLD8 B 0 605 + FrameIndex PLD8 C 0 606 + FrameIndex PLD8 D 0 607 + FrameIndex PLD8 E 0 608 + FrameIndex PLD8 F 0 609 + FrameIndex PLD8 G 0 610 + FrameIndex PLD8 H 0 611 + FrameIndex PLD8 I 0 612 + FrameIndex PLD8 J 0 613 + FrameIndex PLD8 K 0 614 + FrameIndex PLD8 L 0 615 + FrameIndex PLD8 M 0 616 + FrameIndex PLD8 N 0 617 + FrameIndex PLD8 O 0 618 + FrameIndex PLD8 P 0 619 + FrameIndex PLD8 Q 0 620 + FrameIndex PLD8 R 0 621 + // Dead9 (Zapped) + FrameIndex PLD9 A 0 622 + FrameIndex PLD9 B 0 623 + FrameIndex PLD9 C 0 624 + FrameIndex PLD9 D 0 625 + FrameIndex PLD9 E 0 626 + FrameIndex PLD9 F 0 627 + FrameIndex PLD9 G 0 628 + FrameIndex PLD9 H 0 629 + FrameIndex PLD9 I 0 630 + FrameIndex PLD9 J 0 631 + FrameIndex PLD9 K 0 632 + FrameIndex PLD9 L 0 633 + FrameIndex PLD9 M 0 634 + FrameIndex PLD9 N 0 635 + FrameIndex PLD9 O 0 636 + FrameIndex PLD9 P 0 637 + FrameIndex PLD9 Q 0 638 + FrameIndex PLD9 R 0 639 + FrameIndex PLD9 S 0 640 + FrameIndex PLD9 T 0 641 + // + FrameIndex PD9B A 0 642 + FrameIndex PD9B B 0 643 + FrameIndex PD9B C 0 644 + FrameIndex PD9B D 0 645 + FrameIndex PD9B E 0 646 + FrameIndex PD9B F 0 647 + FrameIndex PD9B G 0 648 + FrameIndex PD9B H 0 649 + FrameIndex PD9B I 0 650 + FrameIndex PD9B J 0 651 + // Dead11 (Spinning) + FrameIndex PD11 A 0 652 + FrameIndex PD11 B 0 653 + FrameIndex PD11 C 0 654 + FrameIndex PD11 D 0 655 + FrameIndex PD11 E 0 656 + FrameIndex PD11 F 0 657 + FrameIndex PD11 G 0 658 + FrameIndex PD11 H 0 659 + FrameIndex PD11 I 0 660 + FrameIndex PD11 J 0 661 + FrameIndex PD11 K 0 662 + FrameIndex PD11 L 0 663 + FrameIndex PD11 M 0 664 + FrameIndex PD11 N 0 665 + FrameIndex PD11 O 0 666 + FrameIndex PD11 P 0 667 + FrameIndex PD11 Q 0 668 + FrameIndex PD11 R 0 669 + // Taunt1 + FrameIndex PLT1 A 0 5 + FrameIndex PLT1 B 0 6 + FrameIndex PLT1 C 0 7 + FrameIndex PLT1 D 0 8 + FrameIndex PLT1 E 0 9 + FrameIndex PLT1 F 0 10 + FrameIndex PLT1 G 0 11 + FrameIndex PLT1 H 0 12 + FrameIndex PLT1 I 0 13 + FrameIndex PLT1 J 0 14 + FrameIndex PLT1 K 0 15 + FrameIndex PLT1 L 0 16 + FrameIndex PLT1 M 0 17 + FrameIndex PLT1 N 0 18 + FrameIndex PLT1 O 0 19 + FrameIndex PLT1 P 0 20 + FrameIndex PLT1 Q 0 21 + FrameIndex PLT1 R 0 22 + FrameIndex PLT1 S 0 23 + FrameIndex PLT1 T 0 24 + // Victory + FrameIndex PLT2 A 0 265 + FrameIndex PLT2 B 0 266 + FrameIndex PLT2 C 0 267 + FrameIndex PLT2 D 0 268 + FrameIndex PLT2 E 0 269 + FrameIndex PLT2 F 0 270 + FrameIndex PLT2 G 0 271 + FrameIndex PLT2 H 0 272 + FrameIndex PLT2 I 0 273 + FrameIndex PLT2 J 0 274 + FrameIndex PLT2 K 0 275 + FrameIndex PLT2 L 0 276 + FrameIndex PLT2 M 0 277 + FrameIndex PLT2 N 0 278 + FrameIndex PLT2 O 0 279 + FrameIndex PLT2 P 0 280 + FrameIndex PLT2 Q 0 281 + FrameIndex PLT2 R 0 282 + // Wave + FrameIndex PLT3 A 0 448 + FrameIndex PLT3 B 0 449 + FrameIndex PLT3 C 0 450 + FrameIndex PLT3 D 0 451 + FrameIndex PLT3 E 0 452 + FrameIndex PLT3 F 0 453 + FrameIndex PLT3 G 0 454 + FrameIndex PLT3 H 0 455 + FrameIndex PLT3 I 0 456 + FrameIndex PLT3 J 0 457 + FrameIndex PLT3 K 0 458 + FrameIndex PLT3 L 0 459 + FrameIndex PLT3 M 0 460 + FrameIndex PLT3 N 0 461 + FrameIndex PLT3 O 0 462 + // Thrust + FrameIndex PLT4 A 0 486 + FrameIndex PLT4 B 0 487 + FrameIndex PLT4 C 0 488 + FrameIndex PLT4 D 0 489 + FrameIndex PLT4 E 0 490 + FrameIndex PLT4 F 0 491 + FrameIndex PLT4 G 0 492 + FrameIndex PLT4 H 0 493 + FrameIndex PLT4 I 0 494 + FrameIndex PLT4 J 0 495 + FrameIndex PLT4 K 0 496 + FrameIndex PLT4 L 0 497 + FrameIndex PLT4 M 0 498 + FrameIndex PLT4 N 0 499 + FrameIndex PLT4 O 0 500 +} diff --git a/modeldef.fcommando b/modeldef.fcommando new file mode 100644 index 0000000..069c8b8 --- /dev/null +++ b/modeldef.fcommando @@ -0,0 +1,283 @@ +Model "UTPlayerTFemale1" +{ + Path "models" + Model 0 "FCommando_d.3d" + SurfaceSkin 0 0 "fcmd1.png" + SurfaceSkin 0 1 "fcmd2.png" + SurfaceSkin 0 2 "fcmd4.png" + SurfaceSkin 0 4 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset -3 3 36 + RollOffset -90 + AngleOffset -90 + IGNORETRANSLATION // I'll figure out eventually how to make color changes work, but for now this is it + // Still + FrameIndex PLAY A 0 359 + FrameIndex PLAY B 0 360 + FrameIndex PLAY C 0 361 + FrameIndex PLAY D 0 362 + FrameIndex PLAY E 0 363 + FrameIndex PLAY F 0 364 + FrameIndex PLAY G 0 365 + // Still (Air) + FrameIndex PLYA A 0 84 + // Land + FrameIndex PLYL A 0 86 + // Still (Swim) + FrameIndex PLYS A 0 229 + FrameIndex PLYS B 0 231 + FrameIndex PLYS C 0 233 + FrameIndex PLYS D 0 235 + FrameIndex PLYS E 0 237 + FrameIndex PLYS F 0 239 + FrameIndex PLYS G 0 241 + // Run + FrameIndex PLAY H 0 125 + FrameIndex PLAY I 0 127 + FrameIndex PLAY J 0 129 + FrameIndex PLAY K 0 131 + FrameIndex PLAY L 0 133 + // Run (Swim) + FrameIndex PLYS H 0 193 + FrameIndex PLYS I 0 196 + FrameIndex PLYS J 0 199 + FrameIndex PLYS K 0 202 + FrameIndex PLYS L 0 205 + // Fire (Loop) + FrameIndex PLAY R 0 165 + FrameIndex PLAY S 0 167 + FrameIndex PLAY T 0 169 + FrameIndex PLAY U 0 171 + FrameIndex PLAY V 0 173 + // Fire (Single) + FrameIndex PLAY M 0 175 + FrameIndex PLAY N 0 177 + FrameIndex PLAY O 0 179 + FrameIndex PLAY P 0 181 + FrameIndex PLAY Q 0 183 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 83 // head + FrameIndex PLAY Y 0 88 // left + FrameIndex PLAY Z 0 124 // right + // Reload + FrameIndex PLYR A 0 386 + FrameIndex PLYR B 0 387 + FrameIndex PLYR C 0 388 + FrameIndex PLYR D 0 389 + FrameIndex PLYR E 0 390 + FrameIndex PLYR F 0 391 + // Crouch + FrameIndex PLYC A 0 53 + FrameIndex PLYC B 0 56 + FrameIndex PLYC C 0 59 + FrameIndex PLYC D 0 62 + FrameIndex PLYC E 0 75 + // Turn + FrameIndex PLYT A 0 284 + FrameIndex PLYT B 0 285 + // Dead1 (Stomach) + FrameIndex PLD1 A 0 573 + FrameIndex PLD1 B 0 574 + FrameIndex PLD1 C 0 575 + FrameIndex PLD1 D 0 576 + FrameIndex PLD1 E 0 577 + FrameIndex PLD1 F 0 578 + FrameIndex PLD1 G 0 579 + FrameIndex PLD1 H 0 580 + FrameIndex PLD1 I 0 581 + FrameIndex PLD1 J 0 582 + FrameIndex PLD1 K 0 583 + FrameIndex PLD1 L 0 584 + FrameIndex PLD1 M 0 585 + FrameIndex PLD1 N 0 586 + FrameIndex PLD1 O 0 587 + FrameIndex PLD1 P 0 588 + FrameIndex PLD1 Q 0 589 + FrameIndex PLD1 R 0 590 + FrameIndex PLD1 S 0 591 + FrameIndex PLD1 T 0 592 + FrameIndex PLD1 U 0 593 + FrameIndex PLD1 V 0 594 + FrameIndex PLD1 W 0 595 + // Dead2 (Spin back) + FrameIndex PLD2 A 0 515 + FrameIndex PLD2 B 0 516 + FrameIndex PLD2 C 0 517 + FrameIndex PLD2 D 0 518 + FrameIndex PLD2 E 0 519 + FrameIndex PLD2 F 0 520 + FrameIndex PLD2 G 0 521 + FrameIndex PLD2 H 0 522 + FrameIndex PLD2 I 0 523 + FrameIndex PLD2 J 0 524 + FrameIndex PLD2 K 0 525 + FrameIndex PLD2 L 0 526 + FrameIndex PLD2 M 0 527 + FrameIndex PLD2 N 0 528 + FrameIndex PLD2 O 0 529 + FrameIndex PLD2 P 0 530 + FrameIndex PLD2 Q 0 531 + FrameIndex PLD2 R 0 532 + // Dead3 (Fall back) + FrameIndex PLD3 A 0 533 + FrameIndex PLD3 B 0 534 + FrameIndex PLD3 C 0 535 + FrameIndex PLD3 D 0 536 + FrameIndex PLD3 E 0 537 + FrameIndex PLD3 F 0 538 + FrameIndex PLD3 G 0 539 + FrameIndex PLD3 H 0 540 + FrameIndex PLD3 I 0 541 + FrameIndex PLD3 J 0 542 + FrameIndex PLD3 K 0 543 + FrameIndex PLD3 L 0 544 + FrameIndex PLD3 M 0 545 + FrameIndex PLD3 N 0 546 + FrameIndex PLD3 O 0 547 + FrameIndex PLD3 P 0 548 + // Dead4 (Fall forward) + FrameIndex PLD4 A 0 549 + FrameIndex PLD4 B 0 550 + FrameIndex PLD4 C 0 551 + FrameIndex PLD4 D 0 552 + FrameIndex PLD4 E 0 553 + FrameIndex PLD4 F 0 554 + FrameIndex PLD4 G 0 555 + FrameIndex PLD4 H 0 556 + FrameIndex PLD4 I 0 557 + FrameIndex PLD4 J 0 558 + FrameIndex PLD4 K 0 559 + FrameIndex PLD4 L 0 560 + FrameIndex PLD4 M 0 561 + // Dead5 (Leg blown) + FrameIndex PLD5 A 0 596 + FrameIndex PLD5 B 0 597 + FrameIndex PLD5 C 0 598 + FrameIndex PLD5 D 0 599 + FrameIndex PLD5 E 0 600 + FrameIndex PLD5 F 0 601 + FrameIndex PLD5 G 0 602 + FrameIndex PLD5 H 0 603 + FrameIndex PLD5 I 0 604 + FrameIndex PLD5 J 0 605 + FrameIndex PLD5 K 0 606 + FrameIndex PLD5 L 0 607 + FrameIndex PLD5 M 0 608 + // Dead6 (Decapitate) + FrameIndex PLD6 A 0 562 + FrameIndex PLD6 B 0 563 + FrameIndex PLD6 C 0 564 + FrameIndex PLD6 D 0 565 + FrameIndex PLD6 E 0 566 + FrameIndex PLD6 F 0 567 + FrameIndex PLD6 G 0 568 + FrameIndex PLD6 H 0 569 + FrameIndex PLD6 I 0 570 + FrameIndex PLD6 J 0 571 + FrameIndex PLD6 K 0 572 + // Dead7 (Turn and fall) + FrameIndex PLD7 A 0 640 + FrameIndex PLD7 B 0 641 + FrameIndex PLD7 C 0 642 + FrameIndex PLD7 D 0 643 + FrameIndex PLD7 E 0 644 + FrameIndex PLD7 F 0 645 + FrameIndex PLD7 G 0 646 + FrameIndex PLD7 H 0 647 + FrameIndex PLD7 I 0 648 + FrameIndex PLD7 J 0 649 + FrameIndex PLD7 K 0 650 + // Dead9 (Zapped) + FrameIndex PLD9 A 0 609 + FrameIndex PLD9 B 0 610 + FrameIndex PLD9 C 0 611 + FrameIndex PLD9 D 0 612 + FrameIndex PLD9 E 0 613 + FrameIndex PLD9 F 0 614 + FrameIndex PLD9 G 0 615 + FrameIndex PLD9 H 0 616 + FrameIndex PLD9 I 0 617 + FrameIndex PLD9 J 0 618 + FrameIndex PLD9 K 0 619 + FrameIndex PLD9 L 0 620 + FrameIndex PLD9 M 0 621 + FrameIndex PLD9 N 0 622 + FrameIndex PLD9 O 0 623 + FrameIndex PLD9 P 0 624 + FrameIndex PLD9 Q 0 625 + FrameIndex PLD9 R 0 626 + FrameIndex PLD9 S 0 627 + FrameIndex PLD9 T 0 628 + // + FrameIndex PD9B A 0 629 + FrameIndex PD9B B 0 630 + FrameIndex PD9B C 0 631 + FrameIndex PD9B D 0 632 + FrameIndex PD9B E 0 633 + FrameIndex PD9B F 0 634 + FrameIndex PD9B G 0 635 + FrameIndex PD9B H 0 636 + FrameIndex PD9B I 0 637 + FrameIndex PD9B J 0 638 + FrameIndex PD9B K 0 639 + // Taunt1 + FrameIndex PLT1 A 0 5 + FrameIndex PLT1 B 0 6 + FrameIndex PLT1 C 0 7 + FrameIndex PLT1 D 0 8 + FrameIndex PLT1 E 0 9 + FrameIndex PLT1 F 0 10 + FrameIndex PLT1 G 0 11 + FrameIndex PLT1 H 0 12 + FrameIndex PLT1 I 0 13 + FrameIndex PLT1 J 0 14 + FrameIndex PLT1 K 0 15 + FrameIndex PLT1 L 0 16 + FrameIndex PLT1 M 0 17 + FrameIndex PLT1 N 0 18 + FrameIndex PLT1 O 0 19 + // Victory + FrameIndex PLT2 A 0 259 + FrameIndex PLT2 B 0 260 + FrameIndex PLT2 C 0 261 + FrameIndex PLT2 D 0 262 + FrameIndex PLT2 E 0 263 + FrameIndex PLT2 F 0 264 + FrameIndex PLT2 G 0 265 + FrameIndex PLT2 H 0 266 + FrameIndex PLT2 I 0 267 + FrameIndex PLT2 J 0 268 + // Wave + FrameIndex PLT3 A 0 427 + FrameIndex PLT3 B 0 428 + FrameIndex PLT3 C 0 429 + FrameIndex PLT3 D 0 430 + FrameIndex PLT3 E 0 431 + FrameIndex PLT3 F 0 432 + FrameIndex PLT3 G 0 433 + FrameIndex PLT3 H 0 434 + FrameIndex PLT3 I 0 435 + FrameIndex PLT3 J 0 436 + FrameIndex PLT3 K 0 437 + FrameIndex PLT3 L 0 438 + FrameIndex PLT3 M 0 439 + FrameIndex PLT3 N 0 440 + FrameIndex PLT3 O 0 441 + // Thrust + FrameIndex PLT4 A 0 465 + FrameIndex PLT4 B 0 466 + FrameIndex PLT4 C 0 467 + FrameIndex PLT4 D 0 468 + FrameIndex PLT4 E 0 469 + FrameIndex PLT4 F 0 470 + FrameIndex PLT4 G 0 471 + FrameIndex PLT4 H 0 472 + FrameIndex PLT4 I 0 473 + FrameIndex PLT4 J 0 474 + FrameIndex PLT4 K 0 475 + FrameIndex PLT4 L 0 476 + FrameIndex PLT4 M 0 477 + FrameIndex PLT4 N 0 478 + FrameIndex PLT4 O 0 479 +} diff --git a/modeldef.gore b/modeldef.gore index f32a831..37444b8 100644 --- a/modeldef.gore +++ b/modeldef.gore @@ -130,7 +130,7 @@ Model "UTFemaleArm" Path "models" Model 0 "femalearmm_d.3d" Skin 0 "femalearmT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 1.5 USEACTORPITCH USEACTORROLL @@ -145,7 +145,7 @@ Model "UTFemaleFoot" Path "models" Model 0 "femalefootm_d.3d" Skin 0 "femalefootT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 1.5 USEACTORPITCH USEACTORROLL @@ -160,7 +160,7 @@ Model "UTFemaleTorso" Path "models" Model 0 "femaletorsom_d.3d" Skin 0 "femaletorsoT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 4 USEACTORPITCH USEACTORROLL @@ -175,7 +175,7 @@ Model "UTMaleArm" Path "models" Model 0 "malearmm_d.3d" Skin 0 "malearmT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 1.5 USEACTORPITCH USEACTORROLL @@ -190,7 +190,7 @@ Model "UTMaleFoot" Path "models" Model 0 "malefootm_d.3d" Skin 0 "malefootT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 1.5 USEACTORPITCH USEACTORROLL @@ -205,7 +205,7 @@ Model "UTMaleTorso" Path "models" Model 0 "maletorsom_d.3d" Skin 0 "maletorsoT.png" - Scale 0.16 0.16 0.192 + Scale 0.2 0.2 0.24 Offset 0 0 4 USEACTORPITCH USEACTORROLL @@ -215,12 +215,42 @@ Model "UTMaleTorso" FrameIndex UGIB A 0 0 } +Model "UTBossArm" +{ + Path "models" + Model 0 "bossarmm_d.3d" + Skin 0 "bossgibT.png" + Scale 0.12 0.12 0.144 + Offset 0 0 1.5 + USEACTORPITCH + USEACTORROLL + USEROTATIONCENTER + Rotation-Center 0 0 1.5 + + FrameIndex UGIB A 0 0 +} + +Model "UTBossFoot" +{ + Path "models" + Model 0 "bossthighm_d.3d" + Skin 0 "bossgibT.png" + Scale 0.12 0.12 0.144 + Offset 0 0 1.5 + USEACTORPITCH + USEACTORROLL + USEROTATIONCENTER + Rotation-Center 0 0 1.5 + + FrameIndex UGIB A 0 0 +} + Model "UTHeadFemale" { Path "models" Model 0 "HeadFemaleM_d.3d" Skin 0 "FMT1.png" - Scale 0.14 0.14 0.168 + Scale 0.2 0.2 0.24 Offset 0 0 3 AngleOffset -90 USEACTORPITCH @@ -236,7 +266,23 @@ Model "UTHeadMale" Path "models" Model 0 "headmalem_d.3d" Skin 0 "MMT1.png" - Scale 0.14 0.14 0.168 + Scale 0.2 0.2 0.24 + Offset 0 0 3 + AngleOffset -90 + USEACTORPITCH + USEACTORROLL + USEROTATIONCENTER + Rotation-Center 0 0 3 + + FrameIndex UGIB A 0 0 +} + +Model "UTHeadBoss" +{ + Path "models" + Model 0 "bossheadm_d.3d" + Skin 0 "bossgibT.png" + Scale 0.07 0.07 0.084 Offset 0 0 3 AngleOffset -90 USEACTORPITCH diff --git a/modeldef.sgirl b/modeldef.sgirl new file mode 100644 index 0000000..e07f12e --- /dev/null +++ b/modeldef.sgirl @@ -0,0 +1,284 @@ +Model "UTPlayerTFemale2" +{ + Path "models" + Model 0 "SGirl_d.3d" + SurfaceSkin 0 0 "army1.png" + SurfaceSkin 0 1 "army2.png" + SurfaceSkin 0 2 "army3.png" + SurfaceSkin 0 3 "army4.png" + SurfaceSkin 0 5 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset -3 3 36 + RollOffset -90 + AngleOffset -90 + IGNORETRANSLATION // I'll figure out eventually how to make color changes work, but for now this is it + // Still + FrameIndex PLAY A 0 359 + FrameIndex PLAY B 0 360 + FrameIndex PLAY C 0 361 + FrameIndex PLAY D 0 362 + FrameIndex PLAY E 0 363 + FrameIndex PLAY F 0 364 + FrameIndex PLAY G 0 365 + // Still (Air) + FrameIndex PLYA A 0 84 + // Land + FrameIndex PLYL A 0 86 + // Still (Swim) + FrameIndex PLYS A 0 229 + FrameIndex PLYS B 0 231 + FrameIndex PLYS C 0 233 + FrameIndex PLYS D 0 235 + FrameIndex PLYS E 0 237 + FrameIndex PLYS F 0 239 + FrameIndex PLYS G 0 241 + // Run + FrameIndex PLAY H 0 125 + FrameIndex PLAY I 0 127 + FrameIndex PLAY J 0 129 + FrameIndex PLAY K 0 131 + FrameIndex PLAY L 0 133 + // Run (Swim) + FrameIndex PLYS H 0 193 + FrameIndex PLYS I 0 196 + FrameIndex PLYS J 0 199 + FrameIndex PLYS K 0 202 + FrameIndex PLYS L 0 205 + // Fire (Loop) + FrameIndex PLAY R 0 165 + FrameIndex PLAY S 0 167 + FrameIndex PLAY T 0 169 + FrameIndex PLAY U 0 171 + FrameIndex PLAY V 0 173 + // Fire (Single) + FrameIndex PLAY M 0 175 + FrameIndex PLAY N 0 177 + FrameIndex PLAY O 0 179 + FrameIndex PLAY P 0 181 + FrameIndex PLAY Q 0 183 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 83 // head + FrameIndex PLAY Y 0 88 // left + FrameIndex PLAY Z 0 124 // right + // Reload + FrameIndex PLYR A 0 386 + FrameIndex PLYR B 0 387 + FrameIndex PLYR C 0 388 + FrameIndex PLYR D 0 389 + FrameIndex PLYR E 0 390 + FrameIndex PLYR F 0 391 + // Crouch + FrameIndex PLYC A 0 53 + FrameIndex PLYC B 0 56 + FrameIndex PLYC C 0 59 + FrameIndex PLYC D 0 62 + FrameIndex PLYC E 0 75 + // Turn + FrameIndex PLYT A 0 284 + FrameIndex PLYT B 0 285 + // Dead1 (Stomach) + FrameIndex PLD1 A 0 573 + FrameIndex PLD1 B 0 574 + FrameIndex PLD1 C 0 575 + FrameIndex PLD1 D 0 576 + FrameIndex PLD1 E 0 577 + FrameIndex PLD1 F 0 578 + FrameIndex PLD1 G 0 579 + FrameIndex PLD1 H 0 580 + FrameIndex PLD1 I 0 581 + FrameIndex PLD1 J 0 582 + FrameIndex PLD1 K 0 583 + FrameIndex PLD1 L 0 584 + FrameIndex PLD1 M 0 585 + FrameIndex PLD1 N 0 586 + FrameIndex PLD1 O 0 587 + FrameIndex PLD1 P 0 588 + FrameIndex PLD1 Q 0 589 + FrameIndex PLD1 R 0 590 + FrameIndex PLD1 S 0 591 + FrameIndex PLD1 T 0 592 + FrameIndex PLD1 U 0 593 + FrameIndex PLD1 V 0 594 + FrameIndex PLD1 W 0 595 + // Dead2 (Spin back) + FrameIndex PLD2 A 0 515 + FrameIndex PLD2 B 0 516 + FrameIndex PLD2 C 0 517 + FrameIndex PLD2 D 0 518 + FrameIndex PLD2 E 0 519 + FrameIndex PLD2 F 0 520 + FrameIndex PLD2 G 0 521 + FrameIndex PLD2 H 0 522 + FrameIndex PLD2 I 0 523 + FrameIndex PLD2 J 0 524 + FrameIndex PLD2 K 0 525 + FrameIndex PLD2 L 0 526 + FrameIndex PLD2 M 0 527 + FrameIndex PLD2 N 0 528 + FrameIndex PLD2 O 0 529 + FrameIndex PLD2 P 0 530 + FrameIndex PLD2 Q 0 531 + FrameIndex PLD2 R 0 532 + // Dead3 (Fall back) + FrameIndex PLD3 A 0 533 + FrameIndex PLD3 B 0 534 + FrameIndex PLD3 C 0 535 + FrameIndex PLD3 D 0 536 + FrameIndex PLD3 E 0 537 + FrameIndex PLD3 F 0 538 + FrameIndex PLD3 G 0 539 + FrameIndex PLD3 H 0 540 + FrameIndex PLD3 I 0 541 + FrameIndex PLD3 J 0 542 + FrameIndex PLD3 K 0 543 + FrameIndex PLD3 L 0 544 + FrameIndex PLD3 M 0 545 + FrameIndex PLD3 N 0 546 + FrameIndex PLD3 O 0 547 + FrameIndex PLD3 P 0 548 + // Dead4 (Fall forward) + FrameIndex PLD4 A 0 549 + FrameIndex PLD4 B 0 550 + FrameIndex PLD4 C 0 551 + FrameIndex PLD4 D 0 552 + FrameIndex PLD4 E 0 553 + FrameIndex PLD4 F 0 554 + FrameIndex PLD4 G 0 555 + FrameIndex PLD4 H 0 556 + FrameIndex PLD4 I 0 557 + FrameIndex PLD4 J 0 558 + FrameIndex PLD4 K 0 559 + FrameIndex PLD4 L 0 560 + FrameIndex PLD4 M 0 561 + // Dead5 (Leg blown) + FrameIndex PLD5 A 0 596 + FrameIndex PLD5 B 0 597 + FrameIndex PLD5 C 0 598 + FrameIndex PLD5 D 0 599 + FrameIndex PLD5 E 0 600 + FrameIndex PLD5 F 0 601 + FrameIndex PLD5 G 0 602 + FrameIndex PLD5 H 0 603 + FrameIndex PLD5 I 0 604 + FrameIndex PLD5 J 0 605 + FrameIndex PLD5 K 0 606 + FrameIndex PLD5 L 0 607 + FrameIndex PLD5 M 0 608 + // Dead6 (Decapitate) + FrameIndex PLD6 A 0 562 + FrameIndex PLD6 B 0 563 + FrameIndex PLD6 C 0 564 + FrameIndex PLD6 D 0 565 + FrameIndex PLD6 E 0 566 + FrameIndex PLD6 F 0 567 + FrameIndex PLD6 G 0 568 + FrameIndex PLD6 H 0 569 + FrameIndex PLD6 I 0 570 + FrameIndex PLD6 J 0 571 + FrameIndex PLD6 K 0 572 + // Dead7 (Turn and fall) + FrameIndex PLD7 A 0 640 + FrameIndex PLD7 B 0 641 + FrameIndex PLD7 C 0 642 + FrameIndex PLD7 D 0 643 + FrameIndex PLD7 E 0 644 + FrameIndex PLD7 F 0 645 + FrameIndex PLD7 G 0 646 + FrameIndex PLD7 H 0 647 + FrameIndex PLD7 I 0 648 + FrameIndex PLD7 J 0 649 + FrameIndex PLD7 K 0 650 + // Dead9 (Zapped) + FrameIndex PLD9 A 0 609 + FrameIndex PLD9 B 0 610 + FrameIndex PLD9 C 0 611 + FrameIndex PLD9 D 0 612 + FrameIndex PLD9 E 0 613 + FrameIndex PLD9 F 0 614 + FrameIndex PLD9 G 0 615 + FrameIndex PLD9 H 0 616 + FrameIndex PLD9 I 0 617 + FrameIndex PLD9 J 0 618 + FrameIndex PLD9 K 0 619 + FrameIndex PLD9 L 0 620 + FrameIndex PLD9 M 0 621 + FrameIndex PLD9 N 0 622 + FrameIndex PLD9 O 0 623 + FrameIndex PLD9 P 0 624 + FrameIndex PLD9 Q 0 625 + FrameIndex PLD9 R 0 626 + FrameIndex PLD9 S 0 627 + FrameIndex PLD9 T 0 628 + // + FrameIndex PD9B A 0 629 + FrameIndex PD9B B 0 630 + FrameIndex PD9B C 0 631 + FrameIndex PD9B D 0 632 + FrameIndex PD9B E 0 633 + FrameIndex PD9B F 0 634 + FrameIndex PD9B G 0 635 + FrameIndex PD9B H 0 636 + FrameIndex PD9B I 0 637 + FrameIndex PD9B J 0 638 + FrameIndex PD9B K 0 639 + // Taunt1 + FrameIndex PLT1 A 0 5 + FrameIndex PLT1 B 0 6 + FrameIndex PLT1 C 0 7 + FrameIndex PLT1 D 0 8 + FrameIndex PLT1 E 0 9 + FrameIndex PLT1 F 0 10 + FrameIndex PLT1 G 0 11 + FrameIndex PLT1 H 0 12 + FrameIndex PLT1 I 0 13 + FrameIndex PLT1 J 0 14 + FrameIndex PLT1 K 0 15 + FrameIndex PLT1 L 0 16 + FrameIndex PLT1 M 0 17 + FrameIndex PLT1 N 0 18 + FrameIndex PLT1 O 0 19 + // Victory + FrameIndex PLT2 A 0 259 + FrameIndex PLT2 B 0 260 + FrameIndex PLT2 C 0 261 + FrameIndex PLT2 D 0 262 + FrameIndex PLT2 E 0 263 + FrameIndex PLT2 F 0 264 + FrameIndex PLT2 G 0 265 + FrameIndex PLT2 H 0 266 + FrameIndex PLT2 I 0 267 + FrameIndex PLT2 J 0 268 + // Wave + FrameIndex PLT3 A 0 427 + FrameIndex PLT3 B 0 428 + FrameIndex PLT3 C 0 429 + FrameIndex PLT3 D 0 430 + FrameIndex PLT3 E 0 431 + FrameIndex PLT3 F 0 432 + FrameIndex PLT3 G 0 433 + FrameIndex PLT3 H 0 434 + FrameIndex PLT3 I 0 435 + FrameIndex PLT3 J 0 436 + FrameIndex PLT3 K 0 437 + FrameIndex PLT3 L 0 438 + FrameIndex PLT3 M 0 439 + FrameIndex PLT3 N 0 440 + FrameIndex PLT3 O 0 441 + // Thrust + FrameIndex PLT4 A 0 465 + FrameIndex PLT4 B 0 466 + FrameIndex PLT4 C 0 467 + FrameIndex PLT4 D 0 468 + FrameIndex PLT4 E 0 469 + FrameIndex PLT4 F 0 470 + FrameIndex PLT4 G 0 471 + FrameIndex PLT4 H 0 472 + FrameIndex PLT4 I 0 473 + FrameIndex PLT4 J 0 474 + FrameIndex PLT4 K 0 475 + FrameIndex PLT4 L 0 476 + FrameIndex PLT4 M 0 477 + FrameIndex PLT4 N 0 478 + FrameIndex PLT4 O 0 479 +} diff --git a/modeldef.soldier b/modeldef.soldier new file mode 100644 index 0000000..25c8cac --- /dev/null +++ b/modeldef.soldier @@ -0,0 +1,325 @@ +Model "UTPlayerTMale2" +{ + Path "models" + Model 0 "Soldier_d.3d" + SurfaceSkin 0 0 "sldr1.png" + SurfaceSkin 0 1 "sldr2.png" + SurfaceSkin 0 2 "sldr3.png" + SurfaceSkin 0 3 "sldr4.png" + SurfaceSkin 0 5 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset 0 -5 29 + RollOffset -90 + AngleOffset -90 + IGNORETRANSLATION // I'll figure out eventually how to make color changes work, but for now this is it + // Still + FrameIndex PLAY A 0 373 + FrameIndex PLAY B 0 374 + FrameIndex PLAY C 0 375 + FrameIndex PLAY D 0 376 + FrameIndex PLAY E 0 377 + FrameIndex PLAY F 0 378 + FrameIndex PLAY G 0 379 + // Still (Air) + FrameIndex PLYA A 0 91 + // Land + FrameIndex PLYL A 0 93 + // Still (Swim) + FrameIndex PLYS A 0 235 + FrameIndex PLYS B 0 237 + FrameIndex PLYS C 0 239 + FrameIndex PLYS D 0 241 + FrameIndex PLYS E 0 243 + FrameIndex PLYS F 0 245 + FrameIndex PLYS G 0 247 + // Run + FrameIndex PLAY H 0 137 + FrameIndex PLAY I 0 139 + FrameIndex PLAY J 0 141 + FrameIndex PLAY K 0 143 + FrameIndex PLAY L 0 145 + // Run (Swim) + FrameIndex PLYS H 0 205 + FrameIndex PLYS I 0 208 + FrameIndex PLYS J 0 211 + FrameIndex PLYS K 0 214 + FrameIndex PLYS L 0 217 + // Fire (Loop) + FrameIndex PLAY R 0 177 + FrameIndex PLAY S 0 179 + FrameIndex PLAY T 0 181 + FrameIndex PLAY U 0 183 + FrameIndex PLAY V 0 185 + // Fire (Single) + FrameIndex PLAY M 0 187 + FrameIndex PLAY N 0 189 + FrameIndex PLAY O 0 191 + FrameIndex PLAY P 0 193 + FrameIndex PLAY Q 0 195 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 90 // head + FrameIndex PLAY Y 0 95 // left + FrameIndex PLAY Z 0 136 // right + // Reload + FrameIndex PLYR A 0 400 + FrameIndex PLYR B 0 401 + FrameIndex PLYR C 0 402 + FrameIndex PLYR D 0 403 + FrameIndex PLYR E 0 404 + FrameIndex PLYR F 0 405 + FrameIndex PLYR G 0 406 + FrameIndex PLYR H 0 407 + // Crouch + FrameIndex PLYC A 0 60 + FrameIndex PLYC B 0 63 + FrameIndex PLYC C 0 66 + FrameIndex PLYC D 0 69 + FrameIndex PLYC E 0 72 + // Turn + FrameIndex PLYT A 0 298 + FrameIndex PLYT B 0 299 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 525 + FrameIndex PLD1 B 0 526 + FrameIndex PLD1 C 0 527 + FrameIndex PLD1 D 0 528 + FrameIndex PLD1 E 0 529 + FrameIndex PLD1 F 0 530 + FrameIndex PLD1 G 0 531 + FrameIndex PLD1 H 0 532 + FrameIndex PLD1 I 0 533 + FrameIndex PLD1 J 0 534 + FrameIndex PLD1 K 0 535 + FrameIndex PLD1 L 0 536 + FrameIndex PLD1 M 0 537 + // Dead2 (Falling back) + FrameIndex PLD2 A 0 538 + FrameIndex PLD2 B 0 539 + FrameIndex PLD2 C 0 540 + FrameIndex PLD2 D 0 541 + FrameIndex PLD2 E 0 542 + FrameIndex PLD2 F 0 543 + FrameIndex PLD2 G 0 544 + FrameIndex PLD2 H 0 545 + FrameIndex PLD2 I 0 546 + FrameIndex PLD2 J 0 547 + FrameIndex PLD2 K 0 548 + FrameIndex PLD2 L 0 549 + FrameIndex PLD2 M 0 550 + FrameIndex PLD2 N 0 551 + FrameIndex PLD2 O 0 552 + FrameIndex PLD2 P 0 553 + // Dead3 (Falling forward) + FrameIndex PLD3 A 0 554 + FrameIndex PLD3 B 0 555 + FrameIndex PLD3 C 0 556 + FrameIndex PLD3 D 0 557 + FrameIndex PLD3 E 0 558 + FrameIndex PLD3 F 0 559 + FrameIndex PLD3 G 0 560 + FrameIndex PLD3 H 0 561 + FrameIndex PLD3 I 0 562 + FrameIndex PLD3 J 0 563 + FrameIndex PLD3 K 0 564 + FrameIndex PLD3 L 0 565 + FrameIndex PLD3 M 0 566 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 567 + FrameIndex PLD4 B 0 568 + FrameIndex PLD4 C 0 569 + FrameIndex PLD4 D 0 570 + FrameIndex PLD4 E 0 571 + FrameIndex PLD4 F 0 572 + FrameIndex PLD4 G 0 573 + FrameIndex PLD4 H 0 574 + FrameIndex PLD4 I 0 575 + FrameIndex PLD4 J 0 576 + FrameIndex PLD4 K 0 577 + FrameIndex PLD4 L 0 578 + FrameIndex PLD4 M 0 579 + FrameIndex PLD4 N 0 580 + FrameIndex PLD4 O 0 581 + FrameIndex PLD4 P 0 582 + // Dead7 (Headshot) + FrameIndex PLD7 A 0 583 + FrameIndex PLD7 B 0 584 + FrameIndex PLD7 C 0 585 + FrameIndex PLD7 D 0 586 + FrameIndex PLD7 E 0 587 + FrameIndex PLD7 F 0 588 + FrameIndex PLD7 G 0 589 + FrameIndex PLD7 H 0 590 + FrameIndex PLD7 I 0 591 + FrameIndex PLD7 J 0 592 + FrameIndex PLD7 K 0 593 + FrameIndex PLD7 L 0 594 + FrameIndex PLD7 M 0 595 + FrameIndex PLD7 N 0 596 + FrameIndex PLD7 O 0 597 + FrameIndex PLD7 P 0 598 + FrameIndex PLD7 Q 0 599 + FrameIndex PLD7 R 0 600 + FrameIndex PLD7 S 0 601 + FrameIndex PLD7 T 0 602 + FrameIndex PLD7 U 0 603 + // Dead8 (Stomach) + FrameIndex PLD8 A 0 604 + FrameIndex PLD8 B 0 605 + FrameIndex PLD8 C 0 606 + FrameIndex PLD8 D 0 607 + FrameIndex PLD8 E 0 608 + FrameIndex PLD8 F 0 609 + FrameIndex PLD8 G 0 610 + FrameIndex PLD8 H 0 611 + FrameIndex PLD8 I 0 612 + FrameIndex PLD8 J 0 613 + FrameIndex PLD8 K 0 614 + FrameIndex PLD8 L 0 615 + FrameIndex PLD8 M 0 616 + FrameIndex PLD8 N 0 617 + FrameIndex PLD8 O 0 618 + FrameIndex PLD8 P 0 619 + FrameIndex PLD8 Q 0 620 + FrameIndex PLD8 R 0 621 + // Dead9 (Zapped) + FrameIndex PLD9 A 0 622 + FrameIndex PLD9 B 0 623 + FrameIndex PLD9 C 0 624 + FrameIndex PLD9 D 0 625 + FrameIndex PLD9 E 0 626 + FrameIndex PLD9 F 0 627 + FrameIndex PLD9 G 0 628 + FrameIndex PLD9 H 0 629 + FrameIndex PLD9 I 0 630 + FrameIndex PLD9 J 0 631 + FrameIndex PLD9 K 0 632 + FrameIndex PLD9 L 0 633 + FrameIndex PLD9 M 0 634 + FrameIndex PLD9 N 0 635 + FrameIndex PLD9 O 0 636 + FrameIndex PLD9 P 0 637 + FrameIndex PLD9 Q 0 638 + FrameIndex PLD9 R 0 639 + FrameIndex PLD9 S 0 640 + FrameIndex PLD9 T 0 641 + // + FrameIndex PD9B A 0 642 + FrameIndex PD9B B 0 643 + FrameIndex PD9B C 0 644 + FrameIndex PD9B D 0 645 + FrameIndex PD9B E 0 646 + FrameIndex PD9B F 0 647 + FrameIndex PD9B G 0 648 + FrameIndex PD9B H 0 649 + FrameIndex PD9B I 0 650 + FrameIndex PD9B J 0 651 + // Dead11 (Spinning) + FrameIndex PD11 A 0 652 + FrameIndex PD11 B 0 653 + FrameIndex PD11 C 0 654 + FrameIndex PD11 D 0 655 + FrameIndex PD11 E 0 656 + FrameIndex PD11 F 0 657 + FrameIndex PD11 G 0 658 + FrameIndex PD11 H 0 659 + FrameIndex PD11 I 0 660 + FrameIndex PD11 J 0 661 + FrameIndex PD11 K 0 662 + FrameIndex PD11 L 0 663 + FrameIndex PD11 M 0 664 + FrameIndex PD11 N 0 665 + FrameIndex PD11 O 0 666 + FrameIndex PD11 P 0 667 + FrameIndex PD11 Q 0 668 + FrameIndex PD11 R 0 669 + // Taunt1 + FrameIndex PLT1 A 0 5 + FrameIndex PLT1 B 0 6 + FrameIndex PLT1 C 0 7 + FrameIndex PLT1 D 0 8 + FrameIndex PLT1 E 0 9 + FrameIndex PLT1 F 0 10 + FrameIndex PLT1 G 0 11 + FrameIndex PLT1 H 0 12 + FrameIndex PLT1 I 0 13 + FrameIndex PLT1 J 0 14 + FrameIndex PLT1 K 0 15 + FrameIndex PLT1 L 0 16 + FrameIndex PLT1 M 0 17 + FrameIndex PLT1 N 0 18 + FrameIndex PLT1 O 0 19 + FrameIndex PLT1 P 0 20 + FrameIndex PLT1 Q 0 21 + FrameIndex PLT1 R 0 22 + FrameIndex PLT1 S 0 23 + FrameIndex PLT1 T 0 24 + // Victory + FrameIndex PLT2 A 0 265 + FrameIndex PLT2 B 0 266 + FrameIndex PLT2 C 0 267 + FrameIndex PLT2 D 0 268 + FrameIndex PLT2 E 0 269 + FrameIndex PLT2 F 0 270 + FrameIndex PLT2 G 0 271 + FrameIndex PLT2 H 0 272 + FrameIndex PLT2 I 0 273 + FrameIndex PLT2 J 0 274 + FrameIndex PLT2 K 0 275 + FrameIndex PLT2 L 0 276 + FrameIndex PLT2 M 0 277 + FrameIndex PLT2 N 0 278 + FrameIndex PLT2 O 0 279 + FrameIndex PLT2 P 0 280 + FrameIndex PLT2 Q 0 281 + FrameIndex PLT2 R 0 282 + // Wave + FrameIndex PLT3 A 0 448 + FrameIndex PLT3 B 0 449 + FrameIndex PLT3 C 0 450 + FrameIndex PLT3 D 0 451 + FrameIndex PLT3 E 0 452 + FrameIndex PLT3 F 0 453 + FrameIndex PLT3 G 0 454 + FrameIndex PLT3 H 0 455 + FrameIndex PLT3 I 0 456 + FrameIndex PLT3 J 0 457 + FrameIndex PLT3 K 0 458 + FrameIndex PLT3 L 0 459 + FrameIndex PLT3 M 0 460 + FrameIndex PLT3 N 0 461 + FrameIndex PLT3 O 0 462 + // Thrust + FrameIndex PLT4 A 0 486 + FrameIndex PLT4 B 0 487 + FrameIndex PLT4 C 0 488 + FrameIndex PLT4 D 0 489 + FrameIndex PLT4 E 0 490 + FrameIndex PLT4 F 0 491 + FrameIndex PLT4 G 0 492 + FrameIndex PLT4 H 0 493 + FrameIndex PLT4 I 0 494 + FrameIndex PLT4 J 0 495 + FrameIndex PLT4 K 0 496 + FrameIndex PLT4 L 0 497 + FrameIndex PLT4 M 0 498 + FrameIndex PLT4 N 0 499 + FrameIndex PLT4 O 0 500 +} + +// Will use Soldier model +Model "TranslocatorAfterimage" +{ + Path "models" + Model 0 "Soldier_d.3d" + SurfaceSkin 0 0 "sldr1.png" + SurfaceSkin 0 1 "sldr2.png" + SurfaceSkin 0 2 "sldr3.png" + SurfaceSkin 0 3 "sldr4.png" + SurfaceSkin 0 5 "GunPick1.png" + Scale 0.256 0.23 0.23 + Offset 0 -5 29 + RollOffset -90 + AngleOffset -90 + FrameIndex PLAY A 0 187 +} \ No newline at end of file diff --git a/models/Boss_a.3d b/models/Boss_a.3d new file mode 100644 index 0000000..f196f7c Binary files /dev/null and b/models/Boss_a.3d differ diff --git a/models/Boss_d.3d b/models/Boss_d.3d new file mode 100644 index 0000000..4ea7fe5 Binary files /dev/null and b/models/Boss_d.3d differ diff --git a/models/Commando_a.3d b/models/Commando_a.3d new file mode 100644 index 0000000..0460ccb Binary files /dev/null and b/models/Commando_a.3d differ diff --git a/models/Commando_d.3d b/models/Commando_d.3d new file mode 100644 index 0000000..0150765 Binary files /dev/null and b/models/Commando_d.3d differ diff --git a/models/FCommando_a.3d b/models/FCommando_a.3d new file mode 100644 index 0000000..8b6acab Binary files /dev/null and b/models/FCommando_a.3d differ diff --git a/models/FCommando_d.3d b/models/FCommando_d.3d new file mode 100644 index 0000000..8b30efc Binary files /dev/null and b/models/FCommando_d.3d differ diff --git a/models/GunPick1.png b/models/GunPick1.png new file mode 100644 index 0000000..fb9394e Binary files /dev/null and b/models/GunPick1.png differ diff --git a/models/JPulse3rd_01.png b/models/JPulse3rd_01.png new file mode 100644 index 0000000..ca7e9c9 Binary files /dev/null and b/models/JPulse3rd_01.png differ diff --git a/models/SGirl_a.3d b/models/SGirl_a.3d new file mode 100644 index 0000000..d20e6a9 Binary files /dev/null and b/models/SGirl_a.3d differ diff --git a/models/SGirl_d.3d b/models/SGirl_d.3d new file mode 100644 index 0000000..11d54fd Binary files /dev/null and b/models/SGirl_d.3d differ diff --git a/models/Soldier_a.3d b/models/Soldier_a.3d new file mode 100644 index 0000000..2b0b053 Binary files /dev/null and b/models/Soldier_a.3d differ diff --git a/models/Soldier_d.3d b/models/Soldier_d.3d new file mode 100644 index 0000000..6fa10d2 Binary files /dev/null and b/models/Soldier_d.3d differ diff --git a/models/army1.png b/models/army1.png new file mode 100644 index 0000000..166195f Binary files /dev/null and b/models/army1.png differ diff --git a/models/army2.png b/models/army2.png new file mode 100644 index 0000000..a2daf39 Binary files /dev/null and b/models/army2.png differ diff --git a/models/army3.png b/models/army3.png new file mode 100644 index 0000000..40f2dd2 Binary files /dev/null and b/models/army3.png differ diff --git a/models/army4.png b/models/army4.png new file mode 100644 index 0000000..a6872dd Binary files /dev/null and b/models/army4.png differ diff --git a/models/boss1.png b/models/boss1.png new file mode 100644 index 0000000..24aacc5 Binary files /dev/null and b/models/boss1.png differ diff --git a/models/boss2.png b/models/boss2.png new file mode 100644 index 0000000..72e1ead Binary files /dev/null and b/models/boss2.png differ diff --git a/models/boss3.png b/models/boss3.png new file mode 100644 index 0000000..e57ec71 Binary files /dev/null and b/models/boss3.png differ diff --git a/models/boss4.png b/models/boss4.png new file mode 100644 index 0000000..ed75c7a Binary files /dev/null and b/models/boss4.png differ diff --git a/models/bossarmm_a.3d b/models/bossarmm_a.3d new file mode 100644 index 0000000..015731f Binary files /dev/null and b/models/bossarmm_a.3d differ diff --git a/models/bossarmm_d.3d b/models/bossarmm_d.3d new file mode 100644 index 0000000..475f9b1 Binary files /dev/null and b/models/bossarmm_d.3d differ diff --git a/models/bossgibT.png b/models/bossgibT.png new file mode 100644 index 0000000..2b6c85e Binary files /dev/null and b/models/bossgibT.png differ diff --git a/models/bossthighm_a.3d b/models/bossthighm_a.3d new file mode 100644 index 0000000..40ad092 Binary files /dev/null and b/models/bossthighm_a.3d differ diff --git a/models/bossthighm_d.3d b/models/bossthighm_d.3d new file mode 100644 index 0000000..cd30ac0 Binary files /dev/null and b/models/bossthighm_d.3d differ diff --git a/models/cmdo1.png b/models/cmdo1.png new file mode 100644 index 0000000..46e9018 Binary files /dev/null and b/models/cmdo1.png differ diff --git a/models/cmdo2.png b/models/cmdo2.png new file mode 100644 index 0000000..6c08840 Binary files /dev/null and b/models/cmdo2.png differ diff --git a/models/cmdo3.png b/models/cmdo3.png new file mode 100644 index 0000000..b87ebc2 Binary files /dev/null and b/models/cmdo3.png differ diff --git a/models/cmdo4.png b/models/cmdo4.png new file mode 100644 index 0000000..0305e9e Binary files /dev/null and b/models/cmdo4.png differ diff --git a/models/fcmd1.png b/models/fcmd1.png new file mode 100644 index 0000000..bdeecef Binary files /dev/null and b/models/fcmd1.png differ diff --git a/models/fcmd2.png b/models/fcmd2.png new file mode 100644 index 0000000..6292b7a Binary files /dev/null and b/models/fcmd2.png differ diff --git a/models/fcmd4.png b/models/fcmd4.png new file mode 100644 index 0000000..38b5bef Binary files /dev/null and b/models/fcmd4.png differ diff --git a/models/sldr1.png b/models/sldr1.png new file mode 100644 index 0000000..d798678 Binary files /dev/null and b/models/sldr1.png differ diff --git a/models/sldr2.png b/models/sldr2.png new file mode 100644 index 0000000..038e7f2 Binary files /dev/null and b/models/sldr2.png differ diff --git a/models/sldr3.png b/models/sldr3.png new file mode 100644 index 0000000..6da9714 Binary files /dev/null and b/models/sldr3.png differ diff --git a/models/sldr4.png b/models/sldr4.png new file mode 100644 index 0000000..1396b08 Binary files /dev/null and b/models/sldr4.png differ diff --git a/sndinfo.txt b/sndinfo.txt index 7882490..08fbc39 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -42,7 +42,7 @@ $playeralias tmale1 neutral *pain50 ut/malepain3 $playeralias tmale1 neutral *pain25 ut/malepain4 $playeralias tmale1 neutral *grunt ut/malegrunt $playeralias tmale1 neutral *land DSEMPTY -$playeralias tmale1 neutral *uland ut/land1 +$playeralias tmale1 neutral *uland ut/land $playeralias tmale1 neutral *jump ut/malejump1 $playeralias tmale1 neutral *usefail ut/malehump1 $playeralias tmale1 neutral *surface ut/malesurface diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index 2c14cfa..95cc6f2 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -807,6 +807,8 @@ Class BioRifle : UTWeapon invoker.charge = min(5.1,invoker.charge+0.1); A_Overlay(-9999,null); A_WeaponOffset(0,32); // fix sudden psprite lowering + if ( self is 'UTPlayer' ) + UTPlayer(self).PlayAttacking3(); } BIOF A 2 A_BioFire(true); BIOF BCDEFGHI 2; diff --git a/zscript/compat.zsc b/zscript/compat.zsc index f2dfcb7..76015b4 100644 --- a/zscript/compat.zsc +++ b/zscript/compat.zsc @@ -251,159 +251,3 @@ Class ActMedBox : UTActivatableHealth Stop; } } - -// Alternative player classes for compatibility with Heretic sprites -Class UTPlayerHereticCompat : UTPlayer -{ - Default - { - Player.ColorRange 225, 240; - Player.Colorset 0, "Green", 225, 240, 238; - Player.Colorset 1, "Yellow", 114, 129, 127; - Player.Colorset 2, "Red", 145, 160, 158; - Player.Colorset 3, "Blue", 190, 205, 203; - Player.Colorset 4, "Brown", 67, 82, 80; - Player.Colorset 5, "Light Gray", 9, 24, 22; - Player.Colorset 6, "Light Brown", 74, 89, 87; - Player.Colorset 7, "Light Red", 150, 165, 163; - Player.Colorset 8, "Light Blue", 192, 207, 205; - Player.Colorset 9, "Beige", 95, 110, 108; - } - States - { - Spawn: - PLAY A -1; - Stop; - See: - PLAY ABCD 4; - Loop; - Melee: - Missile: - PLAY F 6 BRIGHT; - PLAY E 12; - Goto Spawn; - Pain: - PLAY G 4; - PLAY G 4 A_Pain; - Goto Spawn; - Death: - PLAY H 6 A_PlayerSkinCheck("AltSkinDeath"); - PLAY I 6 A_PlayerScream; - PLAY JK 6; - PLAY L 6 A_NoBlocking; - PLAY MNO 6; - PLAY P -1; - Stop; - XDeath: - PLAY Q 0 A_PlayerSkinCheck("AltSkinXDeath"); - PLAY Q 5 A_PlayerScream; - PLAY R 0 A_NoBlocking; - PLAY R 5 A_SkullPop; - PLAY STUVWX 5; - PLAY Y -1; - Stop; - Burn: - FDTH A 5 BRIGHT A_PlaySound("*burndeath"); - FDTH B 4 BRIGHT; - FDTH C 5 BRIGHT; - FDTH D 4 BRIGHT A_PlayerScream; - FDTH E 5 BRIGHT; - FDTH F 4 BRIGHT; - FDTH G 5 BRIGHT A_PlaySound("*burndeath"); - FDTH H 4 BRIGHT; - FDTH I 5 BRIGHT; - FDTH J 4 BRIGHT; - FDTH K 5 BRIGHT; - FDTH L 4 BRIGHT; - FDTH M 5 BRIGHT; - FDTH N 4 BRIGHT; - FDTH O 5 BRIGHT A_NoBlocking; - FDTH P 4 BRIGHT; - FDTH Q 5 BRIGHT; - FDTH R 4 BRIGHT; - ACLO E 35 A_CheckPlayerDone; - Wait; - AltSkinDeath: - PLAY H 10; - PLAY I 10 A_PlayerScream; - PLAY J 10 A_NoBlocking; - PLAY KLM 10; - PLAY N -1; - Stop; - AltSkinXDeath: - PLAY O 5; - PLAY P 5 A_XScream; - PLAY Q 5 A_NoBlocking; - PLAY RSTUV 5; - PLAY W -1; - Stop; - } -} - -Class UTPlayerHereticCompatTMale1 : UTPlayerHereticCompat -{ - Default - { - Player.SoundClass "tmale1"; - Player.DisplayName "$N_TMALE1"; - Player.Portrait "Blake"; - UTPlayer.VoiceType VOICE_MaleOne; - -NOMENU; - } -} -Class UTPlayerHereticCompatTMale2 : UTPlayerHereticCompat -{ - Default - { - Player.SoundClass "tmale2"; - Player.DisplayName "$N_TMALE2"; - Player.Portrait "Brock"; - UTPlayer.VoiceType VOICE_MaleTwo; - -NOMENU; - } -} -Class UTPlayerHereticCompatTFemale1 : UTPlayerHereticCompat -{ - Default - { - Player.SoundClass "tfemale"; - Player.DisplayName "$N_TFEMALE1"; - Player.Portrait "Ivana"; - UTPlayer.DollType DOLL_Female; - UTPlayer.VoiceType VOICE_FemaleOne; - -NOMENU; - } -} -Class UTPlayerHereticCompatTFemale2 : UTPlayerHereticCompat -{ - Default - { - Player.SoundClass "tfemale"; - Player.DisplayName "$N_TFEMALE2"; - Player.Portrait "Lauren"; - UTPlayer.DollType DOLL_Female; - UTPlayer.VoiceType VOICE_FemaleTwo; - -NOMENU; - } -} -Class UTPlayerHereticCompatTBoss : UTPlayerHereticCompat -{ - transient CVar bossfootsteps; - Default - { - Player.SoundClass "tboss"; - Player.DisplayName "$N_TBOSS"; - Player.Portrait "Xan"; - UTPlayer.DollType DOLL_Boss; - UTPlayer.VoiceType VOICE_Boss; - // should have NOBLOOD, but Xan did bleed in vanilla UT so... - // (this is what gave birth to the theory that Xan was actually Jerl Liandri himself) - -NOMENU; - } - override void PlayFootstep( double vol ) - { - if ( !bossfootsteps ) bossfootsteps = CVar.GetCVar('flak_bossfootsteps',players[consoleplayer]); - if ( bossfootsteps.GetBool() ) A_PlaySound("ut/bossfootstep",CHAN_5,vol); - else Super.PlayFootstep(vol); - } -} \ No newline at end of file diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index f47b3df..bdd04d2 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -360,6 +360,8 @@ Class UTRocketLauncher : UTWeapon else A_PlaySound("utrl/fire",CHAN_WEAPON); invoker.FireEffect(); UTMainHandler.DoFlash(self,Color(64,255,0,0),1); + if ( self is 'UTPlayer' ) + UTPlayer(self).PlayAttacking3(); A_AlertMonsters(); A_QuakeEx(2+num,2+num,2+num,6+num,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1+num*0.05); for ( int i=0; i= Min(50,invoker.Ammo1.Amount),"Idle"); - PGNR A 1 A_Reloading(); + PGNR A 1 + { + A_Reloading(); + if ( self is 'UTPlayer' ) + UTPlayer(self).PlayReloading(); + } PGNR BCDEFGHIJKLMNOPQRSTUVWXYZ 1; PGR2 ABCDEFGHIJKLMNOPQRSTUVWX 1; Goto Idle; diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index 4201941..289f7f9 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -267,8 +267,6 @@ Class TranslocatorAfterimage : Actor angle = target.angle; pitch = target.pitch; roll = target.roll; - sprite = target.sprite; - frame = target.frame; vel = (FRandom[Transloc](-.5,.5),FRandom[Transloc](-.5,.5),FRandom[Transloc](-.5,.5)); } action void A_Spread() @@ -279,8 +277,8 @@ Class TranslocatorAfterimage : Actor States { Spawn: - #### # 10 A_SetTics(Random[Transloc](20,50)); - #### # 1 A_Spread(); + PLAY A 10 A_SetTics(Random[Transloc](20,50)); + PLAY A 1 A_Spread(); Wait; } } diff --git a/zscript/utcommon.zsc b/zscript/utcommon.zsc index b66c5c8..a5c5a30 100644 --- a/zscript/utcommon.zsc +++ b/zscript/utcommon.zsc @@ -13,6 +13,7 @@ Class UTPlayer : DoomPlayer int tempslide; double ssup; + int corpsetime; int dolltype, voicetype; @@ -177,7 +178,7 @@ Class UTPlayer : DoomPlayer let type = (class)(AllActorClasses[i]); if ( !type ) continue; let def = GetDefaultByType(type); - if ( !(self is "UTPlayerHereticCompat") + if ( !(gameinfo.gametype&GAME_Raven) && ((type is "UTActivatable") || (type is "UTActivatableHealth")) ) continue; // don't give these outside of Heretic/Hexen if ( def.Icon.isValid() && (def.MaxAmount > 1) && @@ -242,6 +243,7 @@ Class UTPlayer : DoomPlayer else A_PlaySound("*uland",CHAN_AUTO,vol); } else forcefootstep = true; + if ( Health > 0 ) PlayLanding(); } if ( tempslide ) { @@ -506,6 +508,7 @@ Class UTPlayer : DoomPlayer if ( vel.length() > terminalvelocity/TICRATE ) vel = vel.unit()*(terminalvelocity/TICRATE); player.vel *= 0; player.jumptics = -2; + if ( !(player.cheats & CF_PREDICTING) ) PlayIdle(); } else if ( (bFly && bFlyCheat) || (player.cheats&CF_NOCLIP2) ) { @@ -708,6 +711,380 @@ Class UTPlayer : DoomPlayer { A_PlaySound("ut/playerfootstep",CHAN_5,vol); } + + override void PlayIdle() + { + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) + { + // Crouching + if ( !InStateSequence(CurState,FindState("SpawnCrouch")) ) + SetStateLabel("SpawnCrouch"); + } + else if ( !bNoGravity && player.onground && (waterlevel < 2) ) + { + // Ground + if ( (player && (player.mo == self)) && player.cmd.yaw ) + { + if ( InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("Spawn")+1) ) + SetStateLabel("Turn"); + } + else + { + if ( InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) ) + SetStateLabel("Spawn"); + } + } + else if ( !bNoGravity && (waterlevel < 2) ) + { + // Falling + if ( InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("Spawn")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("Turn")) ) + SetStateLabel("SpawnAir"); + } + else + { + // Swimming + if ( InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("Spawn")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("Turn")) ) + SetStateLabel("SpawnSwim"); + } + } + + override void PlayRunning() + { + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) + { + // Crouching + if ( !InStateSequence(CurState,FindState("SeeCrouch")) ) + SetStateLabel("SeeCrouch"); + } + else if ( !bNoGravity && player.onground && (waterlevel < 2) ) + { + // Ground + if ( InStateSequence(CurState,FindState("Spawn")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("Turn")) ) + SetStateLabel("See"); + } + else if ( !bNoGravity && (waterlevel < 2) ) + { + // Falling + if ( InStateSequence(CurState,FindState("Spawn")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeSwim")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("Turn")) ) + SetStateLabel("SeeAir"); + } + else + { + // Swimming + if ( InStateSequence(CurState,FindState("Spawn")) + || InStateSequence(CurState,FindState("SpawnAir")) + || InStateSequence(CurState,FindState("SpawnSwim")) + || InStateSequence(CurState,FindState("SpawnCrouch")) + || InStateSequence(CurState,FindState("See")) + || InStateSequence(CurState,FindState("SeeAir")) + || InStateSequence(CurState,FindState("SeeCrouch")) + || InStateSequence(CurState,FindState("Turn")) ) + SetStateLabel("SeeSwim"); + } + } + + override void PlayAttacking() + { + // no animation if crouched + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) return; + // check weapon type + if ( (player.ReadyWeapon is 'SniperRifle') && (player.buttons&BT_ALTATTACK) ) + return; + if ( ((player.ReadyWeapon is 'BioRifle') && (player.buttons&BT_ALTATTACK)) + || (player.ReadyWeapon is 'UTRocketLauncher') ) + { + if ( !InStateSequence(CurState,FindState("MissileRepStill")) ) + SetStateLabel("MissileRepStill"); + } + else if ( ((player.ReadyWeapon is 'ImpactHammer') && (player.buttons&BT_ATTACK)) + || ((player.ReadyWeapon is 'UTChainsaw') && (player.buttons&BT_ATTACK)) + || (player.ReadyWeapon is 'PulseGun') + || (player.ReadyWeapon is 'Minigun') ) + { + if ( !InStateSequence(CurState,FindState("MissileRep")) ) + SetStateLabel("MissileRep"); + } + else SetStateLabel("Missile"); + } + + override void PlayAttacking2() + { + PlayAttacking(); + } + + virtual void PlayAttacking3() + { + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) return; + SetStateLabel("Missile"); + } + + virtual void PlayReloading() + { + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) return; + SetStateLabel("Reload"); + } + + virtual void PlayLanding() + { + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) return; + SetStateLabel("Landing"); + } + + void A_HeadPop() + { + Class hclass = "UTHeadMale"; + if ( DollType == DOLL_Boss ) hclass = "UTHeadBoss"; + else if ( DollType == DOLL_Female ) hclass = "UTHeadFemale"; + let h = UTHead(Spawn(hclass,Vec3Offset(0,0,viewheight))); + if ( player ) + { + h.headowner = player; + player.camera = h; + } + double ang = FRandom[Blod](0,360); + double pt = FRandom[Blod](-90,-30); + Vector3 dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt)); + h.vel = vel*0.6+dir*FRandom[Blod](8.0,12.0); + } + + void A_GibMe() + { + let a = Actor.Spawn("UTPlayerGibber",pos); + a.vel = vel; + a.Scale = Scale; + a.A_SetSize(radius,height); + UTGibber(a).Gibbed = self; + } + + void A_DMFade() + { + if ( !deathmatch || player ) return; + corpsetime++; + if ( corpsetime > 350 ) A_FadeOut(0.03); + } + + States + { + Spawn: + #### # 5; + PLAY ABCDEFG 8; + Goto Spawn+1; + Turn: + #### # 6; + PLYT A 0 A_JumpIf(!player||!player.cmd.yaw,"Spawn"); + PLYT A 6; + PLYT A 0 A_JumpIf(!player||!player.cmd.yaw,"Spawn"); + PLYT A 6; + PLYT B 0 A_JumpIf(!player||!player.cmd.yaw,"Spawn"); + PLYT B 6; + PLYT B 0 A_JumpIf(!player||!player.cmd.yaw,"Spawn"); + PLYT B 6; + Goto Turn+1; + SpawnAir: + #### # 5; + PLYA A 50; + PLYL A 50; + Goto SpawnAir+1; + SpawnSwim: + #### # 5; + PLYS ABCDEFG 6; + Goto SpawnSwim+1; + SpawnCrouch: + #### # 5; + PLYC A -1; + Wait; + See: + #### # 5; + PLAY HIJKL 4; + Goto See+1; + SeeAir: + #### # 5; + PLYA A 50; + PLYL A 50; + Goto SeeAir+1; + SeeSwim: + #### # 5; + PLYS HIJKL 4; + Goto SeeSwim+1; + SeeCrouch: + #### # 5; + PLYC ABCDE 4; + Goto SeeCrouch+1; + Missile: + #### # 2; + PLAY MNOPQA 3; + Goto Spawn; + MissileRep: + #### # 2; + PLAY R 2; + PLAY S 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + PLAY S 2; + PLAY T 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + PLAY T 2; + PLAY U 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + PLAY U 2; + PLAY V 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + PLAY V 2; + PLAY R 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + Goto MissileRep+1; + MissileRepStill: + #### # 2; + PLAY R 2; + PLAY R 0 A_JumpIf(!player||!(player.buttons&(BT_ATTACK|BT_ALTATTACK)),"Spawn"); + Goto MissileRepStill+1; + Reload: + #### # 3; + PLYR ABCDEFGH 4; + Goto Spawn; + Landing: + #### # 4; + PLYL A 3; + Goto Spawn; + Pain: + #### # 0 A_Jump(256,1,3,5,7); + #### # 2; + PLAY W 3 A_Pain(); + Goto Spawn; + #### # 2; + PLAY Y 3 A_Pain(); + Goto Spawn; + #### # 2; + PLAY Z 3 A_Pain(); + Goto Spawn; + Pain.Decapitated: + #### # 2; + PLAY X 3 A_Pain(); + Goto Spawn; + Death.Decapitated: + #### # 0 A_HeadPop(); + PLD4 A 3 A_PlayerScream(); + PLD4 B 3 A_NoBlocking(); + PLD4 CDEFGHIJKLMNO 3; + PLD4 P 1 A_DMFade(); + Wait; + Death: + #### # 0 A_JumpIf(vel.length()>20,"Death11"); + #### # 0 A_JumpIf(vel.length()>10,"Death1"); + #### # 0 A_Jump(256,"Death2","Death3","Death7","Death8"); + Death11: + #### # 3; + PD11 A 3 A_PlayerScream(); + PD11 B 3 A_NoBlocking(); + PD11 CDEFGHIJKLMNOPQ 3; + PD11 R 1 A_DMFade(); + Wait; + Death.Zapped: + #### # 3; + PLD9 A 3 A_PlayerScream(); + PLD9 B 3 A_NoBlocking(); + PLD9 CDEFGHIJKLMNOPQRST 2; + PD9B ABCDEFGHI 2; + PD9B J 1 A_DMFade(); + Wait; + Death8: + #### # 3; + PLD8 A 3 A_PlayerScream(); + PLD8 B 3 A_NoBlocking(); + PLD8 CDEFGHIJKLMNOPQ 3; + PLD8 R 1 A_DMFade(); + Wait; + Death7: + #### # 3; + PLD7 A 3 A_PlayerScream(); + PLD7 B 3 A_NoBlocking(); + PLD7 CDEFGHIJKLMNOPQRST 3; + PLD7 U 1 A_DMFade(); + Wait; + Death3: + #### # 3; + PLD3 A 3 A_PlayerScream(); + PLD3 B 3 A_NoBlocking(); + PLD3 CDEFGHIJKL 3; + PLD3 M 1 A_DMFade(); + Wait; + Death2: + #### # 3; + PLD2 A 3 A_PlayerScream(); + PLD2 B 3 A_NoBlocking(); + PLD2 CDEFGHIJKLMNO 3; + PLD2 P 1 A_DMFade(); + Wait; + Death1: + #### # 3; + PLD1 A 3 A_PlayerScream(); + PLD1 B 3 A_NoBlocking(); + PLD1 CDEFGHIJKL 3; + PLD1 M 1 A_DMFade(); + Wait; + XDeath: + TNT1 A 1 + { + A_XScream(); + A_NoBlocking(); + A_GibMe(); + } + TNT1 A 1 A_CheckPlayerDone(); + Wait; + Taunt1: + #### # 5; + PLT1 ABCDEFGHIJKLMNOPQRST 3; + Goto Spawn; + Taunt2: + #### # 5; + PLT2 ABCDEFGHIJKLMNOPQR 4; + PLT2 R 8; + PLAY A 3; + Goto Spawn; + Taunt3: + #### # 5; + PLT3 ABCDEFGHIJKLMNO 3; + Goto Spawn; + Taunt4: + #### # 5; + PLT4 ABCDEFGHIJKLMNO 3; + Goto Spawn; + } } // these only exist for sound @@ -734,26 +1111,118 @@ Class UTPlayerTMale2 : UTPlayer -NOMENU; } } -Class UTPlayerTFemale1 : UTPlayer +Class UTPlayerTFemale : UTPlayer +{ + Default + { + UTPlayer.DollType DOLL_Female; + } + + void A_LegPop() + { + let a = Actor.Spawn("UTFemaleLegGibber",pos); + a.vel = vel; + a.Scale = Scale; + a.A_SetSize(radius,height); + UTGibber(a).Gibbed = self; + } + + States + { + Reload: + #### # 3; + PLYR ABCDEF 4; + Goto Spawn; + Taunt1: + #### # 5; + PLT1 ABCDEFGHIJKLMNO 3; + Goto Spawn; + Taunt2: + #### # 5; + PLT2 ABCDEFGHIJ 6; + PLAY A 3; + Goto Spawn; + Death.Decapitated: + #### # 0 A_HeadPop(); + PLD6 A 3 A_PlayerScream(); + PLD6 B 3 A_NoBlocking(); + PLD6 CDEFGHIJ 3; + PLD6 K 1 A_DMFade(); + Wait; + Death.Zapped: + #### # 3; + PLD9 A 3 A_PlayerScream(); + PLD9 B 3 A_NoBlocking(); + PLD9 CDEFGHIJKLMNOPQRST 2; + PD9B ABCDEFGHIJ 2; + PD9B K 1 A_DMFade(); + Wait; + Death: + #### # 0 A_JumpIf(vel.length()>20,"Death5"); + #### # 0 A_JumpIf(vel.length()>10,"Death2"); + #### # 0 A_Jump(256,"Death1","Death3","Death4","Death7"); + Death7: + #### # 3; + PLD7 A 3 A_PlayerScream(); + PLD7 B 3 A_NoBlocking(); + PLD7 CDEFGHIJ 3; + PLD7 K 1 A_DMFade(); + Wait; + Death5: + #### # 0 A_LegPop(); + PLD5 A 3 A_PlayerScream(); + PLD5 B 3 A_NoBlocking(); + PLD5 CDEFGHIJKL 3; + PLD5 M 1 A_DMFade(); + Wait; + Death4: + #### # 3; + PLD4 A 3 A_PlayerScream(); + PLD4 B 3 A_NoBlocking(); + PLD4 CDEFGHIJKL 3; + PLD4 M 1 A_DMFade(); + Wait; + Death3: + #### # 3; + PLD3 A 3 A_PlayerScream(); + PLD3 B 3 A_NoBlocking(); + PLD3 CDEFGHIJKLMNO 3; + PLD3 P 1 A_DMFade(); + Wait; + Death2: + #### # 3; + PLD2 A 3 A_PlayerScream(); + PLD2 B 3 A_NoBlocking(); + PLD2 CDEFGHIJKLMNOPQ 3; + PLD2 R 1 A_DMFade(); + Wait; + Death1: + #### # 3; + PLD1 A 3 A_PlayerScream(); + PLD1 B 3 A_NoBlocking(); + PLD1 CDEFGHIJKLMNOPQRSTUV 3; + PLD1 W 1 A_DMFade(); + Wait; + } +} +Class UTPlayerTFemale1 : UTPlayerTFemale { Default { Player.SoundClass "tfemale"; Player.DisplayName "$N_TFEMALE1"; Player.Portrait "Ivana"; - UTPlayer.DollType DOLL_Female; UTPlayer.VoiceType VOICE_FemaleOne; -NOMENU; } } -Class UTPlayerTFemale2 : UTPlayer +Class UTPlayerTFemale2 : UTPlayerTFemale { Default { Player.SoundClass "tfemale"; Player.DisplayName "$N_TFEMALE2"; Player.Portrait "Lauren"; - UTPlayer.DollType DOLL_Female; UTPlayer.VoiceType VOICE_FemaleTwo; -NOMENU; } @@ -1580,8 +2049,8 @@ Class GenericFlash : HUDMessageBase } override bool Tick() { - alpha -= 1./duration; - return (alpha<=0); + if ( duration > 0 ) alpha -= 1./duration; + return (alpha<=0)||(!cam); } override void Draw( int bottom, int visibility ) { @@ -2059,6 +2528,27 @@ Class UTMainHandler : EventHandler for ( int i=0; i parts[] = {"UTFemaleFoot","UTThigh"}; + static const double partofsy[] = {9,8}; + static const double partofsz[] = {9,20}; + Actor a; + double ang, pt; + Vector3 dir; + if ( !firstgib ) + { + firstgib = true; + for ( int i=0; i<2; i++ ) + { + Actor a = Spawn(parts[i],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i])); + ang = FRandom[Blod](0,360); + pt = FRandom[Blod](-90,90); + dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt)); + a.vel = rvel*0.6+dir*FRandom[Blod](8.0,12.0); + } + } + for ( int i=0; i bossparts[] = {"UTBossArm","UTBossArm","UTBossFoot","UTBossFoot","UTMaleTorso","UTHeadBoss"}; + static const class maleparts[] = {"UTMaleArm","UTMaleArm","UTMaleFoot","UTMaleFoot","UTMaleTorso","UTHeadMale"}; + static const class femaleparts[] = {"UTFemaleArm","UTFemaleArm","UTFemaleFoot","UTFemaleFoot","UTFemaleTorso","UTHeadFemale"}; + static const class extraparts[] = {"UTThigh","UTThigh","UTHeart","UTLiver","UTStomach"}; + static const double partofsy[] = + { + 14, + -14, + 9, + -9, + 0, + 0, + 8, + -8, + -2, + 5, + -3 + }; + static const double partofsz[] = + { + 36, + 36, + 9, + 9, + 32, + 48, + 20, + 20, + 40, + 32, + 35 + }; + Actor a; + double ang, pt; + Vector3 dir; + if ( !firstgib ) + { + firstgib = true; + for ( int i=0; i<11; i++ ) + { + Actor a; + if ( i < 6 ) + { + if ( UTPlayer(Gibbed).DollType == UTPlayer.DOLL_Boss ) + a = Spawn(bossparts[i],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i])); + else if ( UTPlayer(Gibbed).DollType == UTPlayer.DOLL_Female ) + a = Spawn(femaleparts[i],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i])); + else a = Spawn(maleparts[i],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i])); + } + else a = Spawn(extraparts[i-6],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i])); + ang = FRandom[Blod](0,360); + pt = FRandom[Blod](-90,90); + if ( a is 'UTHead' ) + { + pt = FRandom[Blod](-90,-15); + if ( UTPlayer(Gibbed).player ) + { + UTPlayer(Gibbed).player.Camera = a; + UTHead(a).headowner = UTPlayer(Gibbed).player; + } + } + dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt)); + a.vel = rvel*0.6+dir*FRandom[Blod](8.0,12.0); + } + } + for ( int i=0; i 20 ) vel *= 0.8; A_PlaySound("misc/gibp"); double ang, pt; - for ( int i=0; i<6; i++ ) + int max = flak_blood?6:2; + for ( int i=0; i 0) && (headowner.Camera == self) ) + { + headowner.Camera = headowner.mo; + headowner = null; + } + } + + override void OnDestroy() + { + if ( headowner && (headowner.Camera == self) && headowner.mo ) + { + headowner.Camera = headowner.mo; + headowner = null; + } + Super.OnDestroy(); + } + States + { + Death: + UGIB A 1 A_SetTics(Random[Blod](12,18)*15); + UGIB A 0 A_JumpIf(headowner,"Death"); + UGIB A 1 A_FadeOut(0.05); + Wait; + } +} +Class UTHeadFemale : UTHead {} +Class UTHeadMale : UTHead {} +Class UTHeadBoss : UTHead {}