diff --git a/NOTCH.dat b/NOTCH.dat new file mode 100644 index 0000000..b582c8c --- /dev/null +++ b/NOTCH.dat @@ -0,0 +1 @@ +˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ \ No newline at end of file diff --git a/Readme.md b/Readme.md index 057329b..8a6892d 100644 --- a/Readme.md +++ b/Readme.md @@ -3,7 +3,7 @@ The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items (including dummied out stuff and others). -This mod requires GZDoom 4.1.0 or later, and runs on top of Doom Tournament. +This mod requires GZDoom 4.2.0 or later, and runs on top of Doom Tournament. ## Currently Implemented diff --git a/STARTUP.dat b/STARTUP.dat new file mode 100644 index 0000000..f5654a9 Binary files /dev/null and b/STARTUP.dat differ diff --git a/brightmaps/Ash.png b/brightmaps/Ash.png new file mode 100644 index 0000000..17589d4 Binary files /dev/null and b/brightmaps/Ash.png differ diff --git a/brightmaps/JPickup1.png b/brightmaps/JPickup1.png index b5569c5..b8a3108 100644 Binary files a/brightmaps/JPickup1.png and b/brightmaps/JPickup1.png differ diff --git a/fontdefs.txt b/fontdefs.txt index 8e91f48..71128eb 100644 --- a/fontdefs.txt +++ b/fontdefs.txt @@ -30,3 +30,16 @@ UTahoma10 { TEMPLATE tu10_%03d } +U083Digits +{ + 0 Zero083 + 1 One083 + 2 Two083 + 3 Three083 + 4 Four083 + 5 Five083 + 6 Six083 + 7 Seven083 + 8 Eight083 + 9 Nine083 +} diff --git a/gameinfo.txt b/gameinfo.txt new file mode 100644 index 0000000..5b8dc65 --- /dev/null +++ b/gameinfo.txt @@ -0,0 +1,6 @@ +STARTUPCOLORS = "AA AA AA", "22 1D 19" +STARTUPTITLE = "Doomreal" +STARTUPTYPE = "Hexen" +STARTUPSONG = "" +LOADLIGHTS = 1 +LOADBRIGHTMAPS = 1 diff --git a/gldefs.txt b/gldefs.txt index e582d31..ac05be4 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -43,4 +43,8 @@ HardwareShader Texture "graphics/97Bg.png" HardwareShader Texture "graphics/UnBg.png" { Shader "shaders/glsl/UnBg.fp" +} +Brightmap Texture "models/Ash.png" +{ + Map "brightmaps/Ash.png" } \ No newline at end of file diff --git a/graphics/95Bg.png b/graphics/95Bg.png index 43f1dd0..391bb0d 100644 Binary files a/graphics/95Bg.png and b/graphics/95Bg.png differ diff --git a/graphics/97Bg.png b/graphics/97Bg.png index 72f50c6..e09283b 100644 Binary files a/graphics/97Bg.png and b/graphics/97Bg.png differ diff --git a/graphics/BordB.png b/graphics/BordB.png new file mode 100644 index 0000000..02f2cee Binary files /dev/null and b/graphics/BordB.png differ diff --git a/graphics/BordBL.png b/graphics/BordBL.png new file mode 100644 index 0000000..3ab6372 Binary files /dev/null and b/graphics/BordBL.png differ diff --git a/graphics/BordBR.png b/graphics/BordBR.png new file mode 100644 index 0000000..bce60e8 Binary files /dev/null and b/graphics/BordBR.png differ diff --git a/graphics/BordL.png b/graphics/BordL.png new file mode 100644 index 0000000..7542603 Binary files /dev/null and b/graphics/BordL.png differ diff --git a/graphics/BordR.png b/graphics/BordR.png new file mode 100644 index 0000000..b74f4e7 Binary files /dev/null and b/graphics/BordR.png differ diff --git a/graphics/BordT.png b/graphics/BordT.png new file mode 100644 index 0000000..5cf09a4 Binary files /dev/null and b/graphics/BordT.png differ diff --git a/graphics/BordTL.png b/graphics/BordTL.png new file mode 100644 index 0000000..6c7ce65 Binary files /dev/null and b/graphics/BordTL.png differ diff --git a/graphics/BordTR.png b/graphics/BordTR.png new file mode 100644 index 0000000..36cebd5 Binary files /dev/null and b/graphics/BordTR.png differ diff --git a/graphics/CONBACK.png b/graphics/CONBACK.png new file mode 100644 index 0000000..5a2bba5 Binary files /dev/null and b/graphics/CONBACK.png differ diff --git a/graphics/Hud1.png b/graphics/Hud1.png index 2d32cd2..2705138 100644 Binary files a/graphics/Hud1.png and b/graphics/Hud1.png differ diff --git a/graphics/Hud2.png b/graphics/Hud2.png index 87841ed..3411742 100644 Binary files a/graphics/Hud2.png and b/graphics/Hud2.png differ diff --git a/graphics/Hud3.png b/graphics/Hud3.png index a7ecdd2..96f8a6c 100644 Binary files a/graphics/Hud3.png and b/graphics/Hud3.png differ diff --git a/graphics/Hud4.png b/graphics/Hud4.png index 7a99e0a..ab89df7 100644 Binary files a/graphics/Hud4.png and b/graphics/Hud4.png differ diff --git a/graphics/Hud5.png b/graphics/Hud5.png index 1c76b4d..59eb3e1 100644 Binary files a/graphics/Hud5.png and b/graphics/Hud5.png differ diff --git a/graphics/Hud6.png b/graphics/Hud6.png index d257622..ebc87b2 100644 Binary files a/graphics/Hud6.png and b/graphics/Hud6.png differ diff --git a/graphics/LargeRedFont/lrf_048.png b/graphics/LargeRedFont/lrf_048.png index 9f9e967..d6a643d 100644 Binary files a/graphics/LargeRedFont/lrf_048.png and b/graphics/LargeRedFont/lrf_048.png differ diff --git a/graphics/LargeRedFont/lrf_049.png b/graphics/LargeRedFont/lrf_049.png index 41a2a06..eaaaaa0 100644 Binary files a/graphics/LargeRedFont/lrf_049.png and b/graphics/LargeRedFont/lrf_049.png differ diff --git a/graphics/LargeRedFont/lrf_050.png b/graphics/LargeRedFont/lrf_050.png index 094e6af..dd8cd24 100644 Binary files a/graphics/LargeRedFont/lrf_050.png and b/graphics/LargeRedFont/lrf_050.png differ diff --git a/graphics/LargeRedFont/lrf_051.png b/graphics/LargeRedFont/lrf_051.png index 7c7e10c..7d7e194 100644 Binary files a/graphics/LargeRedFont/lrf_051.png and b/graphics/LargeRedFont/lrf_051.png differ diff --git a/graphics/LargeRedFont/lrf_052.png b/graphics/LargeRedFont/lrf_052.png index b3c639c..477e049 100644 Binary files a/graphics/LargeRedFont/lrf_052.png and b/graphics/LargeRedFont/lrf_052.png differ diff --git a/graphics/LargeRedFont/lrf_053.png b/graphics/LargeRedFont/lrf_053.png index 7aad435..e80ce2c 100644 Binary files a/graphics/LargeRedFont/lrf_053.png and b/graphics/LargeRedFont/lrf_053.png differ diff --git a/graphics/LargeRedFont/lrf_054.png b/graphics/LargeRedFont/lrf_054.png index e771258..255537b 100644 Binary files a/graphics/LargeRedFont/lrf_054.png and b/graphics/LargeRedFont/lrf_054.png differ diff --git a/graphics/LargeRedFont/lrf_055.png b/graphics/LargeRedFont/lrf_055.png index 5599bf1..2b807f0 100644 Binary files a/graphics/LargeRedFont/lrf_055.png and b/graphics/LargeRedFont/lrf_055.png differ diff --git a/graphics/LargeRedFont/lrf_056.png b/graphics/LargeRedFont/lrf_056.png index c67baea..c86bc9a 100644 Binary files a/graphics/LargeRedFont/lrf_056.png and b/graphics/LargeRedFont/lrf_056.png differ diff --git a/graphics/LargeRedFont/lrf_057.png b/graphics/LargeRedFont/lrf_057.png index 13d09ac..f9c3fb1 100644 Binary files a/graphics/LargeRedFont/lrf_057.png and b/graphics/LargeRedFont/lrf_057.png differ diff --git a/graphics/M_DOOM.png b/graphics/M_DOOM.png index 11308c3..294189e 100644 Binary files a/graphics/M_DOOM.png and b/graphics/M_DOOM.png differ diff --git a/graphics/MenuBarr.png b/graphics/MenuBarr.png index d7f42c1..f7a1b99 100644 Binary files a/graphics/MenuBarr.png and b/graphics/MenuBarr.png differ diff --git a/graphics/TinyFont/tf_048.png b/graphics/TinyFont/tf_048.png index eb398b5..1f4ee78 100644 Binary files a/graphics/TinyFont/tf_048.png and b/graphics/TinyFont/tf_048.png differ diff --git a/graphics/TinyFont/tf_050.png b/graphics/TinyFont/tf_050.png index 4d07919..d44983d 100644 Binary files a/graphics/TinyFont/tf_050.png and b/graphics/TinyFont/tf_050.png differ diff --git a/graphics/TinyFont/tf_051.png b/graphics/TinyFont/tf_051.png index 720bdae..ea130bc 100644 Binary files a/graphics/TinyFont/tf_051.png and b/graphics/TinyFont/tf_051.png differ diff --git a/graphics/TinyFont/tf_053.png b/graphics/TinyFont/tf_053.png index 45f77b4..6e2cd7b 100644 Binary files a/graphics/TinyFont/tf_053.png and b/graphics/TinyFont/tf_053.png differ diff --git a/graphics/TinyFont/tf_054.png b/graphics/TinyFont/tf_054.png index 3f145c3..2dba860 100644 Binary files a/graphics/TinyFont/tf_054.png and b/graphics/TinyFont/tf_054.png differ diff --git a/graphics/TinyFont/tf_055.png b/graphics/TinyFont/tf_055.png index 4e59c03..18df127 100644 Binary files a/graphics/TinyFont/tf_055.png and b/graphics/TinyFont/tf_055.png differ diff --git a/graphics/TinyFont/tf_056.png b/graphics/TinyFont/tf_056.png index 00d273a..0aae2c7 100644 Binary files a/graphics/TinyFont/tf_056.png and b/graphics/TinyFont/tf_056.png differ diff --git a/graphics/TinyFont/tf_057.png b/graphics/TinyFont/tf_057.png index 72788a9..09297a9 100644 Binary files a/graphics/TinyFont/tf_057.png and b/graphics/TinyFont/tf_057.png differ diff --git a/graphics/TinyRedFont/trf_045.png b/graphics/TinyRedFont/trf_045.png index d3db199..759314a 100644 Binary files a/graphics/TinyRedFont/trf_045.png and b/graphics/TinyRedFont/trf_045.png differ diff --git a/graphics/TinyWhiteFont/twf_048.png b/graphics/TinyWhiteFont/twf_048.png index 2ef9c1d..8ef067c 100644 Binary files a/graphics/TinyWhiteFont/twf_048.png and b/graphics/TinyWhiteFont/twf_048.png differ diff --git a/graphics/TranHUD3.png b/graphics/TranHUD3.png index c47d5b3..7472f24 100644 Binary files a/graphics/TranHUD3.png and b/graphics/TranHUD3.png differ diff --git a/graphics/UTahoma10/tu10_047.png b/graphics/UTahoma10/tu10_047.png index 1e1e975..f7d48ca 100644 Binary files a/graphics/UTahoma10/tu10_047.png and b/graphics/UTahoma10/tu10_047.png differ diff --git a/graphics/UTahoma10/tu10_092.png b/graphics/UTahoma10/tu10_092.png index 0bed4c3..e3090f5 100644 Binary files a/graphics/UTahoma10/tu10_092.png and b/graphics/UTahoma10/tu10_092.png differ diff --git a/graphics/UTahoma10/tu10_102.png b/graphics/UTahoma10/tu10_102.png index cabb15c..0fef26a 100644 Binary files a/graphics/UTahoma10/tu10_102.png and b/graphics/UTahoma10/tu10_102.png differ diff --git a/graphics/UnBg.png b/graphics/UnBg.png index 07b5558..172edba 100644 Binary files a/graphics/UnBg.png and b/graphics/UnBg.png differ diff --git a/graphics/UnLogo.png b/graphics/UnLogo.png index 0dfbc97..6fef9e4 100644 Binary files a/graphics/UnLogo.png and b/graphics/UnLogo.png differ diff --git a/graphics/UnLogo0.png b/graphics/UnLogo0.png index ab03d35..2fce75c 100644 Binary files a/graphics/UnLogo0.png and b/graphics/UnLogo0.png differ diff --git a/graphics/UnLogo1.png b/graphics/UnLogo1.png index e425416..40dc92f 100644 Binary files a/graphics/UnLogo1.png and b/graphics/UnLogo1.png differ diff --git a/graphics/UnLogo2.png b/graphics/UnLogo2.png index 2105819..b70afaa 100644 Binary files a/graphics/UnLogo2.png and b/graphics/UnLogo2.png differ diff --git a/graphics/WhiteFont/wf_032.png b/graphics/WhiteFont/wf_032.png index 51b4269..6734e79 100644 Binary files a/graphics/WhiteFont/wf_032.png and b/graphics/WhiteFont/wf_032.png differ diff --git a/graphics/WhiteFont/wf_173.png b/graphics/WhiteFont/wf_173.png index bedc580..0e56407 100644 Binary files a/graphics/WhiteFont/wf_173.png and b/graphics/WhiteFont/wf_173.png differ diff --git a/graphics/WhiteFont/wf_184.png b/graphics/WhiteFont/wf_184.png index eadb557..427ded0 100644 Binary files a/graphics/WhiteFont/wf_184.png and b/graphics/WhiteFont/wf_184.png differ diff --git a/graphics/WhiteFont/wf_227.png b/graphics/WhiteFont/wf_227.png index bedc580..0e56407 100644 Binary files a/graphics/WhiteFont/wf_227.png and b/graphics/WhiteFont/wf_227.png differ diff --git a/graphics/hud/HudAmmo.png b/graphics/hud/HudAmmo.png index 70de1f0..fd7c760 100644 Binary files a/graphics/hud/HudAmmo.png and b/graphics/hud/HudAmmo.png differ diff --git a/graphics/hud/IconHeal.png b/graphics/hud/IconHeal.png index 1133809..34338f5 100644 Binary files a/graphics/hud/IconHeal.png and b/graphics/hud/IconHeal.png differ diff --git a/graphics/hud/IconSel.png b/graphics/hud/IconSel.png index 99043e2..2f7c004 100644 Binary files a/graphics/hud/IconSel.png and b/graphics/hud/IconSel.png differ diff --git a/graphics/hud/IconSkul.png b/graphics/hud/IconSkul.png index 0d4551d..6c9d325 100644 Binary files a/graphics/hud/IconSkul.png and b/graphics/hud/IconSkul.png differ diff --git a/graphics/hud/KeyBase.png b/graphics/hud/KeyBase.png new file mode 100644 index 0000000..ff83320 Binary files /dev/null and b/graphics/hud/KeyBase.png differ diff --git a/graphics/hud083/Bar083.png b/graphics/hud083/Bar083.png new file mode 100644 index 0000000..49b1e85 Binary files /dev/null and b/graphics/hud083/Bar083.png differ diff --git a/graphics/hud083/Slot083.png b/graphics/hud083/Slot083.png new file mode 100644 index 0000000..464a325 Binary files /dev/null and b/graphics/hud083/Slot083.png differ diff --git a/graphics/hud083/Used083.png b/graphics/hud083/Used083.png new file mode 100644 index 0000000..e1111b7 Binary files /dev/null and b/graphics/hud083/Used083.png differ diff --git a/graphics/hud083/ammo/Clip083.png b/graphics/hud083/ammo/Clip083.png new file mode 100644 index 0000000..5112f1f Binary files /dev/null and b/graphics/hud083/ammo/Clip083.png differ diff --git a/graphics/hud083/ammo/Shell083.png b/graphics/hud083/ammo/Shell083.png new file mode 100644 index 0000000..3c44343 Binary files /dev/null and b/graphics/hud083/ammo/Shell083.png differ diff --git a/graphics/hud083/ammo/Tary083.png b/graphics/hud083/ammo/Tary083.png new file mode 100644 index 0000000..ded421c Binary files /dev/null and b/graphics/hud083/ammo/Tary083.png differ diff --git a/graphics/hud083/armor/Armor083.png b/graphics/hud083/armor/Armor083.png new file mode 100644 index 0000000..1dbb6e0 Binary files /dev/null and b/graphics/hud083/armor/Armor083.png differ diff --git a/graphics/hud083/font/Eight083.png b/graphics/hud083/font/Eight083.png new file mode 100644 index 0000000..57d23e1 Binary files /dev/null and b/graphics/hud083/font/Eight083.png differ diff --git a/graphics/hud083/font/Five083.png b/graphics/hud083/font/Five083.png new file mode 100644 index 0000000..9fb309c Binary files /dev/null and b/graphics/hud083/font/Five083.png differ diff --git a/graphics/hud083/font/Four083.png b/graphics/hud083/font/Four083.png new file mode 100644 index 0000000..96ac2c1 Binary files /dev/null and b/graphics/hud083/font/Four083.png differ diff --git a/graphics/hud083/font/Nine083.png b/graphics/hud083/font/Nine083.png new file mode 100644 index 0000000..070612b Binary files /dev/null and b/graphics/hud083/font/Nine083.png differ diff --git a/graphics/hud083/font/One083.png b/graphics/hud083/font/One083.png new file mode 100644 index 0000000..74cd7c9 Binary files /dev/null and b/graphics/hud083/font/One083.png differ diff --git a/graphics/hud083/font/Seven083.png b/graphics/hud083/font/Seven083.png new file mode 100644 index 0000000..7072eda Binary files /dev/null and b/graphics/hud083/font/Seven083.png differ diff --git a/graphics/hud083/font/Six083.png b/graphics/hud083/font/Six083.png new file mode 100644 index 0000000..03ac0b4 Binary files /dev/null and b/graphics/hud083/font/Six083.png differ diff --git a/graphics/hud083/font/Three083.png b/graphics/hud083/font/Three083.png new file mode 100644 index 0000000..3bc830e Binary files /dev/null and b/graphics/hud083/font/Three083.png differ diff --git a/graphics/hud083/font/Two083.png b/graphics/hud083/font/Two083.png new file mode 100644 index 0000000..fbb794d Binary files /dev/null and b/graphics/hud083/font/Two083.png differ diff --git a/graphics/hud083/font/Zero083.png b/graphics/hud083/font/Zero083.png new file mode 100644 index 0000000..00e3c05 Binary files /dev/null and b/graphics/hud083/font/Zero083.png differ diff --git a/graphics/icons/I_FlareB.png b/graphics/icons/I_FlareB.png index c42e28b..162ae45 100644 Binary files a/graphics/icons/I_FlareB.png and b/graphics/icons/I_FlareB.png differ diff --git a/graphics/icons/I_Napalm.png b/graphics/icons/I_Napalm.png index 5107622..d8f536e 100644 Binary files a/graphics/icons/I_Napalm.png and b/graphics/icons/I_Napalm.png differ diff --git a/graphics/rmetal.png b/graphics/rmetal.png index 7c9e140..715e3c6 100644 Binary files a/graphics/rmetal.png and b/graphics/rmetal.png differ diff --git a/menudef.txt b/menudef.txt index 0fc097c..6738bee 100644 --- a/menudef.txt +++ b/menudef.txt @@ -33,54 +33,54 @@ OptionMenu "UnrealCreditsMenu" { Title "$STING_MCREDS" - StaticText "$STING_CDR", "Red" + StaticText "$STING_CDR", "Gold" StaticText " " - StaticText "$STING_CLEAD", "Gold" - StaticText "Marisa Kirisame", "White" + StaticText "$STING_CLEAD", "White" + StaticText "Marisa Kirisame" StaticText " " - StaticText "$STING_CASSETS", "Gold" - StaticText "Epic Games, id Software, Bethesda Softworks", "White" + StaticText "$STING_CASSETS", "White" + StaticText "Epic Games, id Software, Bethesda Softworks" StaticText " " - StaticText "$STING_CPATRON", "Gold" - StaticText "Aisamai, Alexa Jones-Gonzales, Jonas Höglund,", "White" - StaticText "Zard1084, Jonathan Nemo, NekoMithos, 3d0xp0xy", "White" + StaticText "$STING_CPATRON", "White" + StaticText "Aisamai, Alexa Jones-Gonzales, Jonas Höglund," + StaticText "Zard1084, Jonathan Nemo, NekoMithos, 3d0xp0xy" StaticText " " - StaticText "$STING_CTHANK", "Gold" - StaticText "KynikossDragonn, Raffine52, The Cutting Room Floor", "White" + StaticText "$STING_CTHANK", "White" + StaticText "KynikossDragonn, Raffine52, The Cutting Room Floor" StaticText " " - StaticText "Unreal", "Red" + StaticText "$STING_CUNR", "Gold" StaticText " " - StaticText "$STING_CTOP", "White" + StaticText "$STING_CTOP" StaticText " " - StaticText "$STING_CGDES", "Gold" - StaticText "James Schmalz, Cliff Bleszinski", "White" + StaticText "$STING_CGDES", "White" + StaticText "James Schmalz, Cliff Bleszinski" StaticText " " - StaticText "$STING_CLEVEL", "Gold" - StaticText "Cliff Bleszinski, T. Elliot Cannon,", "White" - StaticText "Pancho Eekels, Jeremy War,", "White" - StaticText "Cedric Fiorentino, Shane Caudle", "White" + StaticText "$STING_CLEVEL", "White" + StaticText "Cliff Bleszinski, T. Elliot Cannon," + StaticText "Pancho Eekels, Jeremy War," + StaticText "Cedric Fiorentino, Shane Caudle" StaticText " " - StaticText "$STING_CANIM", "Gold" - StaticText "Dave Carter", "White" + StaticText "$STING_CANIM", "White" + StaticText "Dave Carter" StaticText " " - StaticText "$STING_CART", "Gold" - StaticText "James Schmalz, Mike Leatham, Artur Bialas", "White" + StaticText "$STING_CART", "White" + StaticText "James Schmalz, Mike Leatham, Artur Bialas" StaticText " " - StaticText "$STING_CPROG", "Gold" - StaticText "Tim Sweeney, Steven Polge, Erik de Neve,", "White" - StaticText "James Schmalz, Carlo Vogelsang, Nick Michon", "White" + StaticText "$STING_CPROG", "White" + StaticText "Tim Sweeney, Steven Polge, Erik de Neve," + StaticText "James Schmalz, Carlo Vogelsang, Nick Michon" StaticText " " - StaticText "$STING_CMUS", "Gold" - StaticText "Alexander Brandon, Michiel van den Bos", "White" + StaticText "$STING_CMUS", "White" + StaticText "Alexander Brandon, Michiel van den Bos" StaticText " " - StaticText "$STING_CSND", "Gold" - StaticText "Dave Ewing", "White" + StaticText "$STING_CSND", "White" + StaticText "Dave Ewing" StaticText " " - StaticText "$STING_CGT", "Gold" - StaticText "Jason Schreiber", "White" + StaticText "$STING_CGT", "White" + StaticText "Jason Schreiber" StaticText " " - StaticText "$STING_CBIZ", "Gold" - StaticText "Mark Rein, Nigel Kent, Craig Lafferty", "White" + StaticText "$STING_CBIZ", "White" + StaticText "Mark Rein, Nigel Kent, Craig Lafferty" StaticText " " } diff --git a/modeldef.female1 b/modeldef.female1 new file mode 100644 index 0000000..3d699c7 --- /dev/null +++ b/modeldef.female1 @@ -0,0 +1,254 @@ +Model "UPlayerFemale1" +{ + Path "models" + Model 0 "Female1_d.3d" + SurfaceSkin 0 0 "gina.png" + SurfaceSkin 0 1 "GunPick1.png" + Scale 0.216 -0.18 0.18 + Offset 0 0 35 + 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 512 + FrameIndex PLAY B 0 513 + FrameIndex PLAY C 0 514 + FrameIndex PLAY D 0 515 + FrameIndex PLAY E 0 516 + FrameIndex PLAY F 0 517 + FrameIndex PLAY G 0 518 + // Still (Air) + FrameIndex PLYA A 0 176 + // Land + FrameIndex PLYL A 0 178 + // Still (Swim) + FrameIndex PLYS A 0 316 + FrameIndex PLYS B 0 318 + FrameIndex PLYS C 0 320 + FrameIndex PLYS D 0 322 + FrameIndex PLYS E 0 324 + FrameIndex PLYS F 0 326 + FrameIndex PLYS G 0 328 + // Run + FrameIndex PLAY H 0 207 + FrameIndex PLAY I 0 209 + FrameIndex PLAY J 0 211 + FrameIndex PLAY K 0 213 + FrameIndex PLAY L 0 215 + // Run (Swim) + FrameIndex PLYS H 0 280 + FrameIndex PLYS I 0 283 + FrameIndex PLYS J 0 286 + FrameIndex PLYS K 0 289 + FrameIndex PLYS L 0 295 + // Fire (Loop) + FrameIndex PLAY R 0 247 + FrameIndex PLAY S 0 250 + FrameIndex PLAY T 0 253 + FrameIndex PLAY U 0 256 + FrameIndex PLAY V 0 259 + // Fire (Single) + FrameIndex PLAY M 0 262 + FrameIndex PLAY N 0 264 + FrameIndex PLAY O 0 266 + FrameIndex PLAY P 0 268 + FrameIndex PLAY Q 0 270 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 175 // head + FrameIndex PLAY Y 0 180 // left + FrameIndex PLAY Z 0 206 // right + // Reload + FrameIndex PLYR A 0 534 + FrameIndex PLYR B 0 535 + FrameIndex PLYR C 0 536 + FrameIndex PLYR D 0 537 + FrameIndex PLYR E 0 538 + FrameIndex PLYR F 0 539 + // Crouch + FrameIndex PLYC A 0 145 + FrameIndex PLYC B 0 148 + FrameIndex PLYC C 0 151 + FrameIndex PLYC D 0 154 + FrameIndex PLYC E 0 157 + // Turn + FrameIndex PLYT A 0 379 + FrameIndex PLYT B 0 380 + // Dead1 (Faint) + FrameIndex PLD1 A 0 439 + FrameIndex PLD1 B 0 441 + FrameIndex PLD1 C 0 443 + FrameIndex PLD1 D 0 445 + FrameIndex PLD1 E 0 447 + FrameIndex PLD1 F 0 449 + FrameIndex PLD1 G 0 451 + FrameIndex PLD1 H 0 453 + FrameIndex PLD1 I 0 455 + FrameIndex PLD1 J 0 457 + FrameIndex PLD1 K 0 459 + FrameIndex PLD1 L 0 461 + FrameIndex PLD1 M 0 463 + FrameIndex PLD1 N 0 465 + FrameIndex PLD1 O 0 467 + FrameIndex PLD1 P 0 469 + FrameIndex PLD1 Q 0 471 + FrameIndex PLD1 R 0 473 + FrameIndex PLD1 S 0 475 + FrameIndex PLD1 T 0 477 + FrameIndex PLD1 U 0 479 + FrameIndex PLD1 V 0 481 + // Dead2 (Spin back) + FrameIndex PLD2 A 0 48 + FrameIndex PLD2 B 0 49 + FrameIndex PLD2 C 0 50 + FrameIndex PLD2 D 0 51 + FrameIndex PLD2 E 0 52 + FrameIndex PLD2 F 0 53 + FrameIndex PLD2 G 0 54 + FrameIndex PLD2 H 0 55 + FrameIndex PLD2 I 0 56 + FrameIndex PLD2 J 0 57 + FrameIndex PLD2 K 0 58 + FrameIndex PLD2 L 0 59 + FrameIndex PLD2 M 0 60 + FrameIndex PLD2 N 0 61 + FrameIndex PLD2 O 0 62 + FrameIndex PLD2 P 0 63 + FrameIndex PLD2 Q 0 64 + FrameIndex PLD2 R 0 65 + // Dead3 (Fall back) + FrameIndex PLD3 A 0 66 + FrameIndex PLD3 B 0 67 + FrameIndex PLD3 C 0 68 + FrameIndex PLD3 D 0 69 + FrameIndex PLD3 E 0 70 + FrameIndex PLD3 F 0 71 + FrameIndex PLD3 G 0 72 + FrameIndex PLD3 H 0 73 + FrameIndex PLD3 I 0 74 + FrameIndex PLD3 J 0 75 + FrameIndex PLD3 K 0 76 + FrameIndex PLD3 L 0 77 + FrameIndex PLD3 M 0 78 + FrameIndex PLD3 N 0 79 + FrameIndex PLD3 O 0 80 + FrameIndex PLD3 P 0 81 + // Dead4 (Fall forward) + FrameIndex PLD4 A 0 82 + FrameIndex PLD4 B 0 83 + FrameIndex PLD4 C 0 84 + FrameIndex PLD4 D 0 85 + FrameIndex PLD4 E 0 86 + FrameIndex PLD4 F 0 87 + FrameIndex PLD4 G 0 88 + FrameIndex PLD4 H 0 89 + FrameIndex PLD4 I 0 90 + FrameIndex PLD4 J 0 91 + FrameIndex PLD4 K 0 92 + FrameIndex PLD4 L 0 93 + FrameIndex PLD4 M 0 94 + // Dead5 (SPIN) + FrameIndex PLD5 A 0 95 + FrameIndex PLD5 B 0 96 + FrameIndex PLD5 C 0 97 + FrameIndex PLD5 D 0 98 + FrameIndex PLD5 E 0 99 + FrameIndex PLD5 F 0 100 + FrameIndex PLD5 G 0 101 + FrameIndex PLD5 H 0 102 + FrameIndex PLD5 I 0 103 + FrameIndex PLD5 J 0 104 + FrameIndex PLD5 K 0 105 + FrameIndex PLD5 L 0 106 + FrameIndex PLD5 M 0 107 + FrameIndex PLD5 N 0 108 + FrameIndex PLD5 O 0 109 + FrameIndex PLD5 P 0 110 + // Dead6 (Decapitate) + FrameIndex PLD6 A 0 111 + FrameIndex PLD6 B 0 112 + FrameIndex PLD6 C 0 113 + FrameIndex PLD6 D 0 114 + FrameIndex PLD6 E 0 115 + FrameIndex PLD6 F 0 116 + FrameIndex PLD6 G 0 117 + FrameIndex PLD6 H 0 118 + FrameIndex PLD6 I 0 119 + FrameIndex PLD6 J 0 120 + FrameIndex PLD6 K 0 121 + // Dead7 (Arm blown off) + FrameIndex PLD7 A 0 122 + FrameIndex PLD7 B 0 123 + FrameIndex PLD7 C 0 124 + FrameIndex PLD7 D 0 125 + FrameIndex PLD7 E 0 126 + FrameIndex PLD7 F 0 127 + FrameIndex PLD7 G 0 128 + FrameIndex PLD7 H 0 129 + FrameIndex PLD7 I 0 130 + FrameIndex PLD7 J 0 131 + FrameIndex PLD7 K 0 132 + FrameIndex PLD7 L 0 133 + FrameIndex PLD7 M 0 134 + FrameIndex PLD7 N 0 135 + FrameIndex PLD7 O 0 136 + FrameIndex PLD7 P 0 137 + FrameIndex PLD7 Q 0 138 + FrameIndex PLD7 R 0 139 + FrameIndex PLD7 S 0 140 + FrameIndex PLD7 T 0 141 + FrameIndex PLD7 U 0 142 + FrameIndex PLD7 V 0 143 + FrameIndex PLD7 W 0 144 + // Taunt1 + FrameIndex PLT1 A 0 497 + FrameIndex PLT1 B 0 498 + FrameIndex PLT1 C 0 499 + FrameIndex PLT1 D 0 500 + FrameIndex PLT1 E 0 501 + FrameIndex PLT1 F 0 502 + FrameIndex PLT1 G 0 503 + FrameIndex PLT1 H 0 504 + FrameIndex PLT1 I 0 505 + FrameIndex PLT1 J 0 506 + FrameIndex PLT1 K 0 507 + FrameIndex PLT1 L 0 508 + FrameIndex PLT1 M 0 509 + FrameIndex PLT1 N 0 510 + FrameIndex PLT1 O 0 511 + // Victory + FrameIndex PLT2 A 0 565 + FrameIndex PLT2 B 0 566 + FrameIndex PLT2 C 0 567 + FrameIndex PLT2 D 0 568 + FrameIndex PLT2 E 0 569 + FrameIndex PLT2 F 0 570 + FrameIndex PLT2 G 0 571 + FrameIndex PLT2 H 0 572 + FrameIndex PLT2 I 0 573 + FrameIndex PLT2 J 0 574 + FrameIndex PLT2 K 0 575 + FrameIndex PLT2 L 0 576 + FrameIndex PLT2 M 0 577 + FrameIndex PLT2 N 0 578 + FrameIndex PLT2 O 0 579 + FrameIndex PLT2 P 0 580 + FrameIndex PLT2 Q 0 581 + FrameIndex PLT2 R 0 582 + // Wave + FrameIndex PLT3 A 0 583 + FrameIndex PLT3 B 0 584 + FrameIndex PLT3 C 0 585 + FrameIndex PLT3 D 0 586 + FrameIndex PLT3 E 0 587 + FrameIndex PLT3 F 0 588 + FrameIndex PLT3 G 0 589 + FrameIndex PLT3 H 0 590 + FrameIndex PLT3 I 0 591 + FrameIndex PLT3 J 0 592 + FrameIndex PLT3 K 0 593 + FrameIndex PLT3 L 0 594 + FrameIndex PLT3 M 0 595 + FrameIndex PLT3 N 0 596 + FrameIndex PLT3 O 0 597 +} diff --git a/modeldef.female2 b/modeldef.female2 new file mode 100644 index 0000000..60f672c --- /dev/null +++ b/modeldef.female2 @@ -0,0 +1,254 @@ +Model "UPlayerFemale2" +{ + Path "models" + Model 0 "Female2_d.3d" + SurfaceSkin 0 0 "Sonya.png" + SurfaceSkin 0 1 "GunPick1.png" + Scale 0.216 0.18 0.18 + Offset 0 0 35 + 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 512 + FrameIndex PLAY B 0 513 + FrameIndex PLAY C 0 514 + FrameIndex PLAY D 0 515 + FrameIndex PLAY E 0 516 + FrameIndex PLAY F 0 517 + FrameIndex PLAY G 0 518 + // Still (Air) + FrameIndex PLYA A 0 176 + // Land + FrameIndex PLYL A 0 178 + // Still (Swim) + FrameIndex PLYS A 0 316 + FrameIndex PLYS B 0 318 + FrameIndex PLYS C 0 320 + FrameIndex PLYS D 0 322 + FrameIndex PLYS E 0 324 + FrameIndex PLYS F 0 326 + FrameIndex PLYS G 0 328 + // Run + FrameIndex PLAY H 0 207 + FrameIndex PLAY I 0 209 + FrameIndex PLAY J 0 211 + FrameIndex PLAY K 0 213 + FrameIndex PLAY L 0 215 + // Run (Swim) + FrameIndex PLYS H 0 280 + FrameIndex PLYS I 0 283 + FrameIndex PLYS J 0 286 + FrameIndex PLYS K 0 289 + FrameIndex PLYS L 0 295 + // Fire (Loop) + FrameIndex PLAY R 0 247 + FrameIndex PLAY S 0 250 + FrameIndex PLAY T 0 253 + FrameIndex PLAY U 0 256 + FrameIndex PLAY V 0 259 + // Fire (Single) + FrameIndex PLAY M 0 262 + FrameIndex PLAY N 0 264 + FrameIndex PLAY O 0 266 + FrameIndex PLAY P 0 268 + FrameIndex PLAY Q 0 270 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 175 // head + FrameIndex PLAY Y 0 180 // left + FrameIndex PLAY Z 0 206 // right + // Reload + FrameIndex PLYR A 0 534 + FrameIndex PLYR B 0 535 + FrameIndex PLYR C 0 536 + FrameIndex PLYR D 0 537 + FrameIndex PLYR E 0 538 + FrameIndex PLYR F 0 539 + // Crouch + FrameIndex PLYC A 0 145 + FrameIndex PLYC B 0 148 + FrameIndex PLYC C 0 151 + FrameIndex PLYC D 0 154 + FrameIndex PLYC E 0 157 + // Turn + FrameIndex PLYT A 0 379 + FrameIndex PLYT B 0 380 + // Dead1 (Faint) + FrameIndex PLD1 A 0 439 + FrameIndex PLD1 B 0 441 + FrameIndex PLD1 C 0 443 + FrameIndex PLD1 D 0 445 + FrameIndex PLD1 E 0 447 + FrameIndex PLD1 F 0 449 + FrameIndex PLD1 G 0 451 + FrameIndex PLD1 H 0 453 + FrameIndex PLD1 I 0 455 + FrameIndex PLD1 J 0 457 + FrameIndex PLD1 K 0 459 + FrameIndex PLD1 L 0 461 + FrameIndex PLD1 M 0 463 + FrameIndex PLD1 N 0 465 + FrameIndex PLD1 O 0 467 + FrameIndex PLD1 P 0 469 + FrameIndex PLD1 Q 0 471 + FrameIndex PLD1 R 0 473 + FrameIndex PLD1 S 0 475 + FrameIndex PLD1 T 0 477 + FrameIndex PLD1 U 0 479 + FrameIndex PLD1 V 0 481 + // Dead2 (Spin back) + FrameIndex PLD2 A 0 48 + FrameIndex PLD2 B 0 49 + FrameIndex PLD2 C 0 50 + FrameIndex PLD2 D 0 51 + FrameIndex PLD2 E 0 52 + FrameIndex PLD2 F 0 53 + FrameIndex PLD2 G 0 54 + FrameIndex PLD2 H 0 55 + FrameIndex PLD2 I 0 56 + FrameIndex PLD2 J 0 57 + FrameIndex PLD2 K 0 58 + FrameIndex PLD2 L 0 59 + FrameIndex PLD2 M 0 60 + FrameIndex PLD2 N 0 61 + FrameIndex PLD2 O 0 62 + FrameIndex PLD2 P 0 63 + FrameIndex PLD2 Q 0 64 + FrameIndex PLD2 R 0 65 + // Dead3 (Fall back) + FrameIndex PLD3 A 0 66 + FrameIndex PLD3 B 0 67 + FrameIndex PLD3 C 0 68 + FrameIndex PLD3 D 0 69 + FrameIndex PLD3 E 0 70 + FrameIndex PLD3 F 0 71 + FrameIndex PLD3 G 0 72 + FrameIndex PLD3 H 0 73 + FrameIndex PLD3 I 0 74 + FrameIndex PLD3 J 0 75 + FrameIndex PLD3 K 0 76 + FrameIndex PLD3 L 0 77 + FrameIndex PLD3 M 0 78 + FrameIndex PLD3 N 0 79 + FrameIndex PLD3 O 0 80 + FrameIndex PLD3 P 0 81 + // Dead4 (Fall forward) + FrameIndex PLD4 A 0 82 + FrameIndex PLD4 B 0 83 + FrameIndex PLD4 C 0 84 + FrameIndex PLD4 D 0 85 + FrameIndex PLD4 E 0 86 + FrameIndex PLD4 F 0 87 + FrameIndex PLD4 G 0 88 + FrameIndex PLD4 H 0 89 + FrameIndex PLD4 I 0 90 + FrameIndex PLD4 J 0 91 + FrameIndex PLD4 K 0 92 + FrameIndex PLD4 L 0 93 + FrameIndex PLD4 M 0 94 + // Dead5 (SPIN) + FrameIndex PLD5 A 0 95 + FrameIndex PLD5 B 0 96 + FrameIndex PLD5 C 0 97 + FrameIndex PLD5 D 0 98 + FrameIndex PLD5 E 0 99 + FrameIndex PLD5 F 0 100 + FrameIndex PLD5 G 0 101 + FrameIndex PLD5 H 0 102 + FrameIndex PLD5 I 0 103 + FrameIndex PLD5 J 0 104 + FrameIndex PLD5 K 0 105 + FrameIndex PLD5 L 0 106 + FrameIndex PLD5 M 0 107 + FrameIndex PLD5 N 0 108 + FrameIndex PLD5 O 0 109 + FrameIndex PLD5 P 0 110 + // Dead6 (Decapitate) + FrameIndex PLD6 A 0 111 + FrameIndex PLD6 B 0 112 + FrameIndex PLD6 C 0 113 + FrameIndex PLD6 D 0 114 + FrameIndex PLD6 E 0 115 + FrameIndex PLD6 F 0 116 + FrameIndex PLD6 G 0 117 + FrameIndex PLD6 H 0 118 + FrameIndex PLD6 I 0 119 + FrameIndex PLD6 J 0 120 + FrameIndex PLD6 K 0 121 + // Dead7 (Arm blown off) + FrameIndex PLD7 A 0 122 + FrameIndex PLD7 B 0 123 + FrameIndex PLD7 C 0 124 + FrameIndex PLD7 D 0 125 + FrameIndex PLD7 E 0 126 + FrameIndex PLD7 F 0 127 + FrameIndex PLD7 G 0 128 + FrameIndex PLD7 H 0 129 + FrameIndex PLD7 I 0 130 + FrameIndex PLD7 J 0 131 + FrameIndex PLD7 K 0 132 + FrameIndex PLD7 L 0 133 + FrameIndex PLD7 M 0 134 + FrameIndex PLD7 N 0 135 + FrameIndex PLD7 O 0 136 + FrameIndex PLD7 P 0 137 + FrameIndex PLD7 Q 0 138 + FrameIndex PLD7 R 0 139 + FrameIndex PLD7 S 0 140 + FrameIndex PLD7 T 0 141 + FrameIndex PLD7 U 0 142 + FrameIndex PLD7 V 0 143 + FrameIndex PLD7 W 0 144 + // Taunt1 + FrameIndex PLT1 A 0 497 + FrameIndex PLT1 B 0 498 + FrameIndex PLT1 C 0 499 + FrameIndex PLT1 D 0 500 + FrameIndex PLT1 E 0 501 + FrameIndex PLT1 F 0 502 + FrameIndex PLT1 G 0 503 + FrameIndex PLT1 H 0 504 + FrameIndex PLT1 I 0 505 + FrameIndex PLT1 J 0 506 + FrameIndex PLT1 K 0 507 + FrameIndex PLT1 L 0 508 + FrameIndex PLT1 M 0 509 + FrameIndex PLT1 N 0 510 + FrameIndex PLT1 O 0 511 + // Victory + FrameIndex PLT2 A 0 565 + FrameIndex PLT2 B 0 566 + FrameIndex PLT2 C 0 567 + FrameIndex PLT2 D 0 568 + FrameIndex PLT2 E 0 569 + FrameIndex PLT2 F 0 570 + FrameIndex PLT2 G 0 571 + FrameIndex PLT2 H 0 572 + FrameIndex PLT2 I 0 573 + FrameIndex PLT2 J 0 574 + FrameIndex PLT2 K 0 575 + FrameIndex PLT2 L 0 576 + FrameIndex PLT2 M 0 577 + FrameIndex PLT2 N 0 578 + FrameIndex PLT2 O 0 579 + FrameIndex PLT2 P 0 580 + FrameIndex PLT2 Q 0 581 + FrameIndex PLT2 R 0 582 + // Wave + FrameIndex PLT3 A 0 583 + FrameIndex PLT3 B 0 584 + FrameIndex PLT3 C 0 585 + FrameIndex PLT3 D 0 586 + FrameIndex PLT3 E 0 587 + FrameIndex PLT3 F 0 588 + FrameIndex PLT3 G 0 589 + FrameIndex PLT3 H 0 590 + FrameIndex PLT3 I 0 591 + FrameIndex PLT3 J 0 592 + FrameIndex PLT3 K 0 593 + FrameIndex PLT3 L 0 594 + FrameIndex PLT3 M 0 595 + FrameIndex PLT3 N 0 596 + FrameIndex PLT3 O 0 597 +} diff --git a/modeldef.male1 b/modeldef.male1 new file mode 100644 index 0000000..e322caf --- /dev/null +++ b/modeldef.male1 @@ -0,0 +1,266 @@ +Model "UPlayerMale1" +{ + Path "models" + Model 0 "Male1_d.3d" + SurfaceSkin 0 0 "Kurgan.png" + SurfaceSkin 0 1 "GunPick1.png" + Scale 0.216 -0.18 0.18 + Offset 4 -5 28 + 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 480 + FrameIndex PLAY B 0 481 + FrameIndex PLAY C 0 482 + FrameIndex PLAY D 0 483 + FrameIndex PLAY E 0 484 + FrameIndex PLAY F 0 485 + FrameIndex PLAY G 0 486 + // Still (Air) + FrameIndex PLYA A 0 181 + // Land + FrameIndex PLYL A 0 183 + // Still (Swim) + FrameIndex PLYS A 0 315 + FrameIndex PLYS B 0 317 + FrameIndex PLYS C 0 319 + FrameIndex PLYS D 0 321 + FrameIndex PLYS E 0 323 + FrameIndex PLYS F 0 325 + FrameIndex PLYS G 0 327 + // Run + FrameIndex PLAY H 0 212 + FrameIndex PLAY I 0 214 + FrameIndex PLAY J 0 216 + FrameIndex PLAY K 0 218 + FrameIndex PLAY L 0 220 + // Run (Swim) + FrameIndex PLYS H 0 285 + FrameIndex PLYS I 0 288 + FrameIndex PLYS J 0 291 + FrameIndex PLYS K 0 294 + FrameIndex PLYS L 0 297 + // Fire (Loop) + FrameIndex PLAY R 0 252 + FrameIndex PLAY S 0 255 + FrameIndex PLAY T 0 258 + FrameIndex PLAY U 0 261 + FrameIndex PLAY V 0 264 + // Fire (Single) + FrameIndex PLAY M 0 267 + FrameIndex PLAY N 0 269 + FrameIndex PLAY O 0 271 + FrameIndex PLAY P 0 273 + FrameIndex PLAY Q 0 275 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 180 // head + FrameIndex PLAY Y 0 185 // left + FrameIndex PLAY Z 0 211 // right + // Reload + FrameIndex PLYR A 0 493 + FrameIndex PLYR B 0 494 + FrameIndex PLYR C 0 495 + FrameIndex PLYR D 0 496 + FrameIndex PLYR E 0 497 + FrameIndex PLYR F 0 498 + FrameIndex PLYR G 0 499 + FrameIndex PLYR H 0 500 + // Crouch + FrameIndex PLYC A 0 150 + FrameIndex PLYC B 0 153 + FrameIndex PLYC C 0 156 + FrameIndex PLYC D 0 159 + FrameIndex PLYC E 0 162 + // Turn + FrameIndex PLYT A 0 385 + FrameIndex PLYT B 0 386 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 445 + FrameIndex PLD1 B 0 446 + FrameIndex PLD1 C 0 447 + FrameIndex PLD1 D 0 448 + FrameIndex PLD1 E 0 449 + FrameIndex PLD1 F 0 450 + FrameIndex PLD1 G 0 451 + FrameIndex PLD1 H 0 452 + FrameIndex PLD1 I 0 453 + FrameIndex PLD1 J 0 454 + FrameIndex PLD1 K 0 455 + FrameIndex PLD1 L 0 456 + FrameIndex PLD1 M 0 457 + // Dead2 (Fall back) + FrameIndex PLD2 A 0 33 + FrameIndex PLD2 B 0 34 + FrameIndex PLD2 C 0 35 + FrameIndex PLD2 D 0 36 + FrameIndex PLD2 E 0 37 + FrameIndex PLD2 F 0 38 + FrameIndex PLD2 G 0 39 + FrameIndex PLD2 H 0 40 + FrameIndex PLD2 I 0 41 + FrameIndex PLD2 J 0 42 + FrameIndex PLD2 K 0 43 + FrameIndex PLD2 L 0 44 + FrameIndex PLD2 M 0 45 + FrameIndex PLD2 N 0 46 + FrameIndex PLD2 O 0 47 + FrameIndex PLD2 P 0 48 + // Dead3 (Fall forward) + FrameIndex PLD3 A 0 49 + FrameIndex PLD3 B 0 50 + FrameIndex PLD3 C 0 51 + FrameIndex PLD3 D 0 52 + FrameIndex PLD3 E 0 53 + FrameIndex PLD3 F 0 54 + FrameIndex PLD3 G 0 55 + FrameIndex PLD3 H 0 56 + FrameIndex PLD3 I 0 57 + FrameIndex PLD3 J 0 58 + FrameIndex PLD3 K 0 59 + FrameIndex PLD3 L 0 60 + FrameIndex PLD3 M 0 61 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 62 + FrameIndex PLD4 B 0 63 + FrameIndex PLD4 C 0 64 + FrameIndex PLD4 D 0 65 + FrameIndex PLD4 E 0 66 + FrameIndex PLD4 F 0 67 + FrameIndex PLD4 G 0 68 + FrameIndex PLD4 H 0 69 + FrameIndex PLD4 I 0 70 + FrameIndex PLD4 J 0 71 + FrameIndex PLD4 K 0 72 + FrameIndex PLD4 L 0 73 + FrameIndex PLD4 M 0 74 + FrameIndex PLD4 N 0 75 + FrameIndex PLD4 O 0 76 + FrameIndex PLD4 P 0 77 + // Dead5 (Torso blown off) + FrameIndex PLD5 A 0 78 + FrameIndex PLD5 B 0 79 + FrameIndex PLD5 C 0 80 + FrameIndex PLD5 D 0 81 + FrameIndex PLD5 E 0 82 + FrameIndex PLD5 F 0 83 + FrameIndex PLD5 G 0 84 + FrameIndex PLD5 H 0 85 + FrameIndex PLD5 I 0 86 + FrameIndex PLD5 J 0 87 + FrameIndex PLD5 K 0 88 + FrameIndex PLD5 L 0 89 + FrameIndex PLD5 M 0 90 + FrameIndex PLD5 N 0 91 + FrameIndex PLD5 O 0 92 + FrameIndex PLD5 P 0 93 + FrameIndex PLD5 Q 0 94 + FrameIndex PLD5 R 0 95 + FrameIndex PLD5 S 0 96 + FrameIndex PLD5 T 0 97 + FrameIndex PLD5 U 0 98 + FrameIndex PLD5 V 0 99 + FrameIndex PLD5 W 0 100 + // Dead6 (SPIN) + FrameIndex PLD6 A 0 101 + FrameIndex PLD6 B 0 102 + FrameIndex PLD6 C 0 103 + FrameIndex PLD6 D 0 104 + FrameIndex PLD6 E 0 105 + FrameIndex PLD6 F 0 106 + FrameIndex PLD6 G 0 107 + FrameIndex PLD6 H 0 108 + FrameIndex PLD6 I 0 109 + FrameIndex PLD6 J 0 110 + FrameIndex PLD6 K 0 111 + FrameIndex PLD6 L 0 112 + FrameIndex PLD6 M 0 113 + FrameIndex PLD6 N 0 114 + FrameIndex PLD6 O 0 115 + FrameIndex PLD6 P 0 116 + FrameIndex PLD6 Q 0 117 + FrameIndex PLD6 R 0 118 + FrameIndex PLD6 S 0 119 + FrameIndex PLD6 T 0 120 + FrameIndex PLD6 U 0 121 + FrameIndex PLD6 V 0 122 + FrameIndex PLD6 W 0 123 + FrameIndex PLD6 X 0 124 + FrameIndex PLD6 Y 0 125 + FrameIndex PLD6 Z 0 126 + FrameIndex PLD6 [ 0 127 + FrameIndex PLD6 \ 0 128 + // Dead7 (Faint) + FrameIndex PLD7 A 0 129 + FrameIndex PLD7 B 0 130 + FrameIndex PLD7 C 0 131 + FrameIndex PLD7 D 0 132 + FrameIndex PLD7 E 0 133 + FrameIndex PLD7 F 0 134 + FrameIndex PLD7 G 0 135 + FrameIndex PLD7 H 0 136 + FrameIndex PLD7 I 0 137 + FrameIndex PLD7 J 0 138 + FrameIndex PLD7 K 0 139 + FrameIndex PLD7 L 0 140 + FrameIndex PLD7 M 0 141 + FrameIndex PLD7 N 0 142 + FrameIndex PLD7 O 0 143 + FrameIndex PLD7 P 0 144 + FrameIndex PLD7 Q 0 145 + FrameIndex PLD7 R 0 146 + FrameIndex PLD7 S 0 147 + FrameIndex PLD7 T 0 148 + FrameIndex PLD7 U 0 149 + // Taunt1 + FrameIndex PLT1 A 0 473 + FrameIndex PLT1 B 0 474 + FrameIndex PLT1 C 0 475 + FrameIndex PLT1 D 0 476 + FrameIndex PLT1 E 0 477 + FrameIndex PLT1 F 0 478 + FrameIndex PLT1 G 0 479 + // Victory + FrameIndex PLT2 A 0 526 + FrameIndex PLT2 B 0 527 + FrameIndex PLT2 C 0 528 + FrameIndex PLT2 D 0 529 + FrameIndex PLT2 E 0 530 + FrameIndex PLT2 F 0 531 + FrameIndex PLT2 G 0 532 + FrameIndex PLT2 H 0 533 + FrameIndex PLT2 I 0 534 + FrameIndex PLT2 J 0 535 + FrameIndex PLT2 K 0 536 + FrameIndex PLT2 L 0 537 + FrameIndex PLT2 M 0 538 + FrameIndex PLT2 N 0 539 + FrameIndex PLT2 O 0 540 + FrameIndex PLT2 P 0 541 + FrameIndex PLT2 Q 0 542 + FrameIndex PLT2 R 0 543 + FrameIndex PLT2 S 0 544 + FrameIndex PLT2 T 0 545 + FrameIndex PLT2 U 0 546 + FrameIndex PLT2 V 0 547 + FrameIndex PLT2 W 0 548 + FrameIndex PLT2 X 0 549 + FrameIndex PLT2 Y 0 550 + // Wave + FrameIndex PLT3 A 0 551 + FrameIndex PLT3 B 0 552 + FrameIndex PLT3 C 0 553 + FrameIndex PLT3 D 0 554 + FrameIndex PLT3 E 0 555 + FrameIndex PLT3 F 0 556 + FrameIndex PLT3 G 0 557 + FrameIndex PLT3 H 0 558 + FrameIndex PLT3 I 0 559 + FrameIndex PLT3 J 0 560 + FrameIndex PLT3 K 0 561 + FrameIndex PLT3 L 0 562 + FrameIndex PLT3 M 0 563 + FrameIndex PLT3 N 0 564 + FrameIndex PLT3 O 0 565 +} \ No newline at end of file diff --git a/modeldef.male2 b/modeldef.male2 new file mode 100644 index 0000000..1b52723 --- /dev/null +++ b/modeldef.male2 @@ -0,0 +1,266 @@ +Model "UPlayerMale2" +{ + Path "models" + Model 0 "Male2_d.3d" + SurfaceSkin 0 0 "Ash.png" + SurfaceSkin 0 1 "GunPick1.png" + Scale 0.216 0.18 0.18 + Offset 4 -5 28 + 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 480 + FrameIndex PLAY B 0 481 + FrameIndex PLAY C 0 482 + FrameIndex PLAY D 0 483 + FrameIndex PLAY E 0 484 + FrameIndex PLAY F 0 485 + FrameIndex PLAY G 0 486 + // Still (Air) + FrameIndex PLYA A 0 181 + // Land + FrameIndex PLYL A 0 183 + // Still (Swim) + FrameIndex PLYS A 0 315 + FrameIndex PLYS B 0 317 + FrameIndex PLYS C 0 319 + FrameIndex PLYS D 0 321 + FrameIndex PLYS E 0 323 + FrameIndex PLYS F 0 325 + FrameIndex PLYS G 0 327 + // Run + FrameIndex PLAY H 0 212 + FrameIndex PLAY I 0 214 + FrameIndex PLAY J 0 216 + FrameIndex PLAY K 0 218 + FrameIndex PLAY L 0 220 + // Run (Swim) + FrameIndex PLYS H 0 285 + FrameIndex PLYS I 0 288 + FrameIndex PLYS J 0 291 + FrameIndex PLYS K 0 294 + FrameIndex PLYS L 0 297 + // Fire (Loop) + FrameIndex PLAY R 0 252 + FrameIndex PLAY S 0 255 + FrameIndex PLAY T 0 258 + FrameIndex PLAY U 0 261 + FrameIndex PLAY V 0 264 + // Fire (Single) + FrameIndex PLAY M 0 267 + FrameIndex PLAY N 0 269 + FrameIndex PLAY O 0 271 + FrameIndex PLAY P 0 273 + FrameIndex PLAY Q 0 275 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 180 // head + FrameIndex PLAY Y 0 185 // left + FrameIndex PLAY Z 0 211 // right + // Reload + FrameIndex PLYR A 0 493 + FrameIndex PLYR B 0 494 + FrameIndex PLYR C 0 495 + FrameIndex PLYR D 0 496 + FrameIndex PLYR E 0 497 + FrameIndex PLYR F 0 498 + FrameIndex PLYR G 0 499 + FrameIndex PLYR H 0 500 + // Crouch + FrameIndex PLYC A 0 150 + FrameIndex PLYC B 0 153 + FrameIndex PLYC C 0 156 + FrameIndex PLYC D 0 159 + FrameIndex PLYC E 0 162 + // Turn + FrameIndex PLYT A 0 385 + FrameIndex PLYT B 0 386 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 445 + FrameIndex PLD1 B 0 446 + FrameIndex PLD1 C 0 447 + FrameIndex PLD1 D 0 448 + FrameIndex PLD1 E 0 449 + FrameIndex PLD1 F 0 450 + FrameIndex PLD1 G 0 451 + FrameIndex PLD1 H 0 452 + FrameIndex PLD1 I 0 453 + FrameIndex PLD1 J 0 454 + FrameIndex PLD1 K 0 455 + FrameIndex PLD1 L 0 456 + FrameIndex PLD1 M 0 457 + // Dead2 (Fall back) + FrameIndex PLD2 A 0 33 + FrameIndex PLD2 B 0 34 + FrameIndex PLD2 C 0 35 + FrameIndex PLD2 D 0 36 + FrameIndex PLD2 E 0 37 + FrameIndex PLD2 F 0 38 + FrameIndex PLD2 G 0 39 + FrameIndex PLD2 H 0 40 + FrameIndex PLD2 I 0 41 + FrameIndex PLD2 J 0 42 + FrameIndex PLD2 K 0 43 + FrameIndex PLD2 L 0 44 + FrameIndex PLD2 M 0 45 + FrameIndex PLD2 N 0 46 + FrameIndex PLD2 O 0 47 + FrameIndex PLD2 P 0 48 + // Dead3 (Fall forward) + FrameIndex PLD3 A 0 49 + FrameIndex PLD3 B 0 50 + FrameIndex PLD3 C 0 51 + FrameIndex PLD3 D 0 52 + FrameIndex PLD3 E 0 53 + FrameIndex PLD3 F 0 54 + FrameIndex PLD3 G 0 55 + FrameIndex PLD3 H 0 56 + FrameIndex PLD3 I 0 57 + FrameIndex PLD3 J 0 58 + FrameIndex PLD3 K 0 59 + FrameIndex PLD3 L 0 60 + FrameIndex PLD3 M 0 61 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 62 + FrameIndex PLD4 B 0 63 + FrameIndex PLD4 C 0 64 + FrameIndex PLD4 D 0 65 + FrameIndex PLD4 E 0 66 + FrameIndex PLD4 F 0 67 + FrameIndex PLD4 G 0 68 + FrameIndex PLD4 H 0 69 + FrameIndex PLD4 I 0 70 + FrameIndex PLD4 J 0 71 + FrameIndex PLD4 K 0 72 + FrameIndex PLD4 L 0 73 + FrameIndex PLD4 M 0 74 + FrameIndex PLD4 N 0 75 + FrameIndex PLD4 O 0 76 + FrameIndex PLD4 P 0 77 + // Dead5 (Torso blown off) + FrameIndex PLD5 A 0 78 + FrameIndex PLD5 B 0 79 + FrameIndex PLD5 C 0 80 + FrameIndex PLD5 D 0 81 + FrameIndex PLD5 E 0 82 + FrameIndex PLD5 F 0 83 + FrameIndex PLD5 G 0 84 + FrameIndex PLD5 H 0 85 + FrameIndex PLD5 I 0 86 + FrameIndex PLD5 J 0 87 + FrameIndex PLD5 K 0 88 + FrameIndex PLD5 L 0 89 + FrameIndex PLD5 M 0 90 + FrameIndex PLD5 N 0 91 + FrameIndex PLD5 O 0 92 + FrameIndex PLD5 P 0 93 + FrameIndex PLD5 Q 0 94 + FrameIndex PLD5 R 0 95 + FrameIndex PLD5 S 0 96 + FrameIndex PLD5 T 0 97 + FrameIndex PLD5 U 0 98 + FrameIndex PLD5 V 0 99 + FrameIndex PLD5 W 0 100 + // Dead6 (SPIN) + FrameIndex PLD6 A 0 101 + FrameIndex PLD6 B 0 102 + FrameIndex PLD6 C 0 103 + FrameIndex PLD6 D 0 104 + FrameIndex PLD6 E 0 105 + FrameIndex PLD6 F 0 106 + FrameIndex PLD6 G 0 107 + FrameIndex PLD6 H 0 108 + FrameIndex PLD6 I 0 109 + FrameIndex PLD6 J 0 110 + FrameIndex PLD6 K 0 111 + FrameIndex PLD6 L 0 112 + FrameIndex PLD6 M 0 113 + FrameIndex PLD6 N 0 114 + FrameIndex PLD6 O 0 115 + FrameIndex PLD6 P 0 116 + FrameIndex PLD6 Q 0 117 + FrameIndex PLD6 R 0 118 + FrameIndex PLD6 S 0 119 + FrameIndex PLD6 T 0 120 + FrameIndex PLD6 U 0 121 + FrameIndex PLD6 V 0 122 + FrameIndex PLD6 W 0 123 + FrameIndex PLD6 X 0 124 + FrameIndex PLD6 Y 0 125 + FrameIndex PLD6 Z 0 126 + FrameIndex PLD6 [ 0 127 + FrameIndex PLD6 \ 0 128 + // Dead7 (Faint) + FrameIndex PLD7 A 0 129 + FrameIndex PLD7 B 0 130 + FrameIndex PLD7 C 0 131 + FrameIndex PLD7 D 0 132 + FrameIndex PLD7 E 0 133 + FrameIndex PLD7 F 0 134 + FrameIndex PLD7 G 0 135 + FrameIndex PLD7 H 0 136 + FrameIndex PLD7 I 0 137 + FrameIndex PLD7 J 0 138 + FrameIndex PLD7 K 0 139 + FrameIndex PLD7 L 0 140 + FrameIndex PLD7 M 0 141 + FrameIndex PLD7 N 0 142 + FrameIndex PLD7 O 0 143 + FrameIndex PLD7 P 0 144 + FrameIndex PLD7 Q 0 145 + FrameIndex PLD7 R 0 146 + FrameIndex PLD7 S 0 147 + FrameIndex PLD7 T 0 148 + FrameIndex PLD7 U 0 149 + // Taunt1 + FrameIndex PLT1 A 0 473 + FrameIndex PLT1 B 0 474 + FrameIndex PLT1 C 0 475 + FrameIndex PLT1 D 0 476 + FrameIndex PLT1 E 0 477 + FrameIndex PLT1 F 0 478 + FrameIndex PLT1 G 0 479 + // Victory + FrameIndex PLT2 A 0 526 + FrameIndex PLT2 B 0 527 + FrameIndex PLT2 C 0 528 + FrameIndex PLT2 D 0 529 + FrameIndex PLT2 E 0 530 + FrameIndex PLT2 F 0 531 + FrameIndex PLT2 G 0 532 + FrameIndex PLT2 H 0 533 + FrameIndex PLT2 I 0 534 + FrameIndex PLT2 J 0 535 + FrameIndex PLT2 K 0 536 + FrameIndex PLT2 L 0 537 + FrameIndex PLT2 M 0 538 + FrameIndex PLT2 N 0 539 + FrameIndex PLT2 O 0 540 + FrameIndex PLT2 P 0 541 + FrameIndex PLT2 Q 0 542 + FrameIndex PLT2 R 0 543 + FrameIndex PLT2 S 0 544 + FrameIndex PLT2 T 0 545 + FrameIndex PLT2 U 0 546 + FrameIndex PLT2 V 0 547 + FrameIndex PLT2 W 0 548 + FrameIndex PLT2 X 0 549 + FrameIndex PLT2 Y 0 550 + // Wave + FrameIndex PLT3 A 0 551 + FrameIndex PLT3 B 0 552 + FrameIndex PLT3 C 0 553 + FrameIndex PLT3 D 0 554 + FrameIndex PLT3 E 0 555 + FrameIndex PLT3 F 0 556 + FrameIndex PLT3 G 0 557 + FrameIndex PLT3 H 0 558 + FrameIndex PLT3 I 0 559 + FrameIndex PLT3 J 0 560 + FrameIndex PLT3 K 0 561 + FrameIndex PLT3 L 0 562 + FrameIndex PLT3 M 0 563 + FrameIndex PLT3 N 0 564 + FrameIndex PLT3 O 0 565 +} \ No newline at end of file diff --git a/modeldef.male3 b/modeldef.male3 new file mode 100644 index 0000000..ecfe356 --- /dev/null +++ b/modeldef.male3 @@ -0,0 +1,266 @@ +Model "UPlayerMale3" +{ + Path "models" + Model 0 "Male3_d.3d" + SurfaceSkin 0 0 "Dante.png" + SurfaceSkin 0 1 "GunPick1.png" + Scale 0.216 0.18 0.18 + Offset 4 -5 28 + 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 480 + FrameIndex PLAY B 0 481 + FrameIndex PLAY C 0 482 + FrameIndex PLAY D 0 483 + FrameIndex PLAY E 0 484 + FrameIndex PLAY F 0 485 + FrameIndex PLAY G 0 486 + // Still (Air) + FrameIndex PLYA A 0 181 + // Land + FrameIndex PLYL A 0 183 + // Still (Swim) + FrameIndex PLYS A 0 315 + FrameIndex PLYS B 0 317 + FrameIndex PLYS C 0 319 + FrameIndex PLYS D 0 321 + FrameIndex PLYS E 0 323 + FrameIndex PLYS F 0 325 + FrameIndex PLYS G 0 327 + // Run + FrameIndex PLAY H 0 212 + FrameIndex PLAY I 0 214 + FrameIndex PLAY J 0 216 + FrameIndex PLAY K 0 218 + FrameIndex PLAY L 0 220 + // Run (Swim) + FrameIndex PLYS H 0 285 + FrameIndex PLYS I 0 288 + FrameIndex PLYS J 0 291 + FrameIndex PLYS K 0 294 + FrameIndex PLYS L 0 297 + // Fire (Loop) + FrameIndex PLAY R 0 252 + FrameIndex PLAY S 0 255 + FrameIndex PLAY T 0 258 + FrameIndex PLAY U 0 261 + FrameIndex PLAY V 0 264 + // Fire (Single) + FrameIndex PLAY M 0 267 + FrameIndex PLAY N 0 269 + FrameIndex PLAY O 0 271 + FrameIndex PLAY P 0 273 + FrameIndex PLAY Q 0 275 + // Pain + FrameIndex PLAY W 0 0 // gut + FrameIndex PLAY X 0 180 // head + FrameIndex PLAY Y 0 185 // left + FrameIndex PLAY Z 0 211 // right + // Reload + FrameIndex PLYR A 0 493 + FrameIndex PLYR B 0 494 + FrameIndex PLYR C 0 495 + FrameIndex PLYR D 0 496 + FrameIndex PLYR E 0 497 + FrameIndex PLYR F 0 498 + FrameIndex PLYR G 0 499 + FrameIndex PLYR H 0 500 + // Crouch + FrameIndex PLYC A 0 150 + FrameIndex PLYC B 0 153 + FrameIndex PLYC C 0 156 + FrameIndex PLYC D 0 159 + FrameIndex PLYC E 0 162 + // Turn + FrameIndex PLYT A 0 385 + FrameIndex PLYT B 0 386 + // Dead1 (Backflip) + FrameIndex PLD1 A 0 445 + FrameIndex PLD1 B 0 446 + FrameIndex PLD1 C 0 447 + FrameIndex PLD1 D 0 448 + FrameIndex PLD1 E 0 449 + FrameIndex PLD1 F 0 450 + FrameIndex PLD1 G 0 451 + FrameIndex PLD1 H 0 452 + FrameIndex PLD1 I 0 453 + FrameIndex PLD1 J 0 454 + FrameIndex PLD1 K 0 455 + FrameIndex PLD1 L 0 456 + FrameIndex PLD1 M 0 457 + // Dead2 (Fall back) + FrameIndex PLD2 A 0 33 + FrameIndex PLD2 B 0 34 + FrameIndex PLD2 C 0 35 + FrameIndex PLD2 D 0 36 + FrameIndex PLD2 E 0 37 + FrameIndex PLD2 F 0 38 + FrameIndex PLD2 G 0 39 + FrameIndex PLD2 H 0 40 + FrameIndex PLD2 I 0 41 + FrameIndex PLD2 J 0 42 + FrameIndex PLD2 K 0 43 + FrameIndex PLD2 L 0 44 + FrameIndex PLD2 M 0 45 + FrameIndex PLD2 N 0 46 + FrameIndex PLD2 O 0 47 + FrameIndex PLD2 P 0 48 + // Dead3 (Fall forward) + FrameIndex PLD3 A 0 49 + FrameIndex PLD3 B 0 50 + FrameIndex PLD3 C 0 51 + FrameIndex PLD3 D 0 52 + FrameIndex PLD3 E 0 53 + FrameIndex PLD3 F 0 54 + FrameIndex PLD3 G 0 55 + FrameIndex PLD3 H 0 56 + FrameIndex PLD3 I 0 57 + FrameIndex PLD3 J 0 58 + FrameIndex PLD3 K 0 59 + FrameIndex PLD3 L 0 60 + FrameIndex PLD3 M 0 61 + // Dead4 (Decapitate) + FrameIndex PLD4 A 0 62 + FrameIndex PLD4 B 0 63 + FrameIndex PLD4 C 0 64 + FrameIndex PLD4 D 0 65 + FrameIndex PLD4 E 0 66 + FrameIndex PLD4 F 0 67 + FrameIndex PLD4 G 0 68 + FrameIndex PLD4 H 0 69 + FrameIndex PLD4 I 0 70 + FrameIndex PLD4 J 0 71 + FrameIndex PLD4 K 0 72 + FrameIndex PLD4 L 0 73 + FrameIndex PLD4 M 0 74 + FrameIndex PLD4 N 0 75 + FrameIndex PLD4 O 0 76 + FrameIndex PLD4 P 0 77 + // Dead5 (Torso blown off) + FrameIndex PLD5 A 0 78 + FrameIndex PLD5 B 0 79 + FrameIndex PLD5 C 0 80 + FrameIndex PLD5 D 0 81 + FrameIndex PLD5 E 0 82 + FrameIndex PLD5 F 0 83 + FrameIndex PLD5 G 0 84 + FrameIndex PLD5 H 0 85 + FrameIndex PLD5 I 0 86 + FrameIndex PLD5 J 0 87 + FrameIndex PLD5 K 0 88 + FrameIndex PLD5 L 0 89 + FrameIndex PLD5 M 0 90 + FrameIndex PLD5 N 0 91 + FrameIndex PLD5 O 0 92 + FrameIndex PLD5 P 0 93 + FrameIndex PLD5 Q 0 94 + FrameIndex PLD5 R 0 95 + FrameIndex PLD5 S 0 96 + FrameIndex PLD5 T 0 97 + FrameIndex PLD5 U 0 98 + FrameIndex PLD5 V 0 99 + FrameIndex PLD5 W 0 100 + // Dead6 (SPIN) + FrameIndex PLD6 A 0 101 + FrameIndex PLD6 B 0 102 + FrameIndex PLD6 C 0 103 + FrameIndex PLD6 D 0 104 + FrameIndex PLD6 E 0 105 + FrameIndex PLD6 F 0 106 + FrameIndex PLD6 G 0 107 + FrameIndex PLD6 H 0 108 + FrameIndex PLD6 I 0 109 + FrameIndex PLD6 J 0 110 + FrameIndex PLD6 K 0 111 + FrameIndex PLD6 L 0 112 + FrameIndex PLD6 M 0 113 + FrameIndex PLD6 N 0 114 + FrameIndex PLD6 O 0 115 + FrameIndex PLD6 P 0 116 + FrameIndex PLD6 Q 0 117 + FrameIndex PLD6 R 0 118 + FrameIndex PLD6 S 0 119 + FrameIndex PLD6 T 0 120 + FrameIndex PLD6 U 0 121 + FrameIndex PLD6 V 0 122 + FrameIndex PLD6 W 0 123 + FrameIndex PLD6 X 0 124 + FrameIndex PLD6 Y 0 125 + FrameIndex PLD6 Z 0 126 + FrameIndex PLD6 [ 0 127 + FrameIndex PLD6 \ 0 128 + // Dead7 (Faint) + FrameIndex PLD7 A 0 129 + FrameIndex PLD7 B 0 130 + FrameIndex PLD7 C 0 131 + FrameIndex PLD7 D 0 132 + FrameIndex PLD7 E 0 133 + FrameIndex PLD7 F 0 134 + FrameIndex PLD7 G 0 135 + FrameIndex PLD7 H 0 136 + FrameIndex PLD7 I 0 137 + FrameIndex PLD7 J 0 138 + FrameIndex PLD7 K 0 139 + FrameIndex PLD7 L 0 140 + FrameIndex PLD7 M 0 141 + FrameIndex PLD7 N 0 142 + FrameIndex PLD7 O 0 143 + FrameIndex PLD7 P 0 144 + FrameIndex PLD7 Q 0 145 + FrameIndex PLD7 R 0 146 + FrameIndex PLD7 S 0 147 + FrameIndex PLD7 T 0 148 + FrameIndex PLD7 U 0 149 + // Taunt1 + FrameIndex PLT1 A 0 473 + FrameIndex PLT1 B 0 474 + FrameIndex PLT1 C 0 475 + FrameIndex PLT1 D 0 476 + FrameIndex PLT1 E 0 477 + FrameIndex PLT1 F 0 478 + FrameIndex PLT1 G 0 479 + // Victory + FrameIndex PLT2 A 0 526 + FrameIndex PLT2 B 0 527 + FrameIndex PLT2 C 0 528 + FrameIndex PLT2 D 0 529 + FrameIndex PLT2 E 0 530 + FrameIndex PLT2 F 0 531 + FrameIndex PLT2 G 0 532 + FrameIndex PLT2 H 0 533 + FrameIndex PLT2 I 0 534 + FrameIndex PLT2 J 0 535 + FrameIndex PLT2 K 0 536 + FrameIndex PLT2 L 0 537 + FrameIndex PLT2 M 0 538 + FrameIndex PLT2 N 0 539 + FrameIndex PLT2 O 0 540 + FrameIndex PLT2 P 0 541 + FrameIndex PLT2 Q 0 542 + FrameIndex PLT2 R 0 543 + FrameIndex PLT2 S 0 544 + FrameIndex PLT2 T 0 545 + FrameIndex PLT2 U 0 546 + FrameIndex PLT2 V 0 547 + FrameIndex PLT2 W 0 548 + FrameIndex PLT2 X 0 549 + FrameIndex PLT2 Y 0 550 + // Wave + FrameIndex PLT3 A 0 551 + FrameIndex PLT3 B 0 552 + FrameIndex PLT3 C 0 553 + FrameIndex PLT3 D 0 554 + FrameIndex PLT3 E 0 555 + FrameIndex PLT3 F 0 556 + FrameIndex PLT3 G 0 557 + FrameIndex PLT3 H 0 558 + FrameIndex PLT3 I 0 559 + FrameIndex PLT3 J 0 560 + FrameIndex PLT3 K 0 561 + FrameIndex PLT3 L 0 562 + FrameIndex PLT3 M 0 563 + FrameIndex PLT3 N 0 564 + FrameIndex PLT3 O 0 565 +} \ No newline at end of file diff --git a/models/ASMDPick_d.3d b/models/ASMDPick_d.3d index c888e54..48f1956 100644 Binary files a/models/ASMDPick_d.3d and b/models/ASMDPick_d.3d differ diff --git a/models/AmplifierM_d.3d b/models/AmplifierM_d.3d index 6726896..39d83cf 100644 Binary files a/models/AmplifierM_d.3d and b/models/AmplifierM_d.3d differ diff --git a/models/ArmorM_d.3d b/models/ArmorM_d.3d index 23e3206..401996c 100644 Binary files a/models/ArmorM_d.3d and b/models/ArmorM_d.3d differ diff --git a/models/AutoHand2.png b/models/AutoHand2.png deleted file mode 100644 index 045db4c..0000000 Binary files a/models/AutoHand2.png and /dev/null differ diff --git a/models/AutoMagPickup_d.3d b/models/AutoMagPickup_d.3d index 4a87f53..7a99e64 100644 Binary files a/models/AutoMagPickup_d.3d and b/models/AutoMagPickup_d.3d differ diff --git a/models/Autom1_.png b/models/Autom1_.png new file mode 100644 index 0000000..5199eaf Binary files /dev/null and b/models/Autom1_.png differ diff --git a/models/BRiflePick_d.3d b/models/BRiflePick_d.3d index 84f6b5e..602b961 100644 Binary files a/models/BRiflePick_d.3d and b/models/BRiflePick_d.3d differ diff --git a/models/BRifle_d.3d b/models/BRifle_d.3d index 28da3d3..a64c51f 100644 Binary files a/models/BRifle_d.3d and b/models/BRifle_d.3d differ diff --git a/models/BioRGel_d.3d b/models/BioRGel_d.3d index 4285360..c352ebe 100644 Binary files a/models/BioRGel_d.3d and b/models/BioRGel_d.3d differ diff --git a/models/Branch_d.3d b/models/Branch_d.3d index 6e8c33b..64cefc8 100644 Binary files a/models/Branch_d.3d and b/models/Branch_d.3d differ diff --git a/models/Chnk1_d.3d b/models/Chnk1_d.3d index b4a8d97..83239af 100644 Binary files a/models/Chnk1_d.3d and b/models/Chnk1_d.3d differ diff --git a/models/Chnk2_d.3d b/models/Chnk2_d.3d index e15957a..375466f 100644 Binary files a/models/Chnk2_d.3d and b/models/Chnk2_d.3d differ diff --git a/models/Chnk3_d.3d b/models/Chnk3_d.3d index d4ecef0..ec23510 100644 Binary files a/models/Chnk3_d.3d and b/models/Chnk3_d.3d differ diff --git a/models/Chnk4_d.3d b/models/Chnk4_d.3d index cfedd24..6bd9a55 100644 Binary files a/models/Chnk4_d.3d and b/models/Chnk4_d.3d differ diff --git a/models/ClipM_d.3d b/models/ClipM_d.3d index 785c4c3..275c97a 100644 Binary files a/models/ClipM_d.3d and b/models/ClipM_d.3d differ diff --git a/models/DPistolPick_d.3d b/models/DPistolPick_d.3d index 30d3d68..a5eae26 100644 Binary files a/models/DPistolPick_d.3d and b/models/DPistolPick_d.3d differ diff --git a/models/DPistol_d.3d b/models/DPistol_d.3d index ea0ecbc..67e8129 100644 Binary files a/models/DPistol_d.3d and b/models/DPistol_d.3d differ diff --git a/models/DampenerM_d.3d b/models/DampenerM_d.3d index 4358fa6..d6ad0ec 100644 Binary files a/models/DampenerM_d.3d and b/models/DampenerM_d.3d differ diff --git a/models/Dante.png b/models/Dante.png new file mode 100644 index 0000000..a1d8e75 Binary files /dev/null and b/models/Dante.png differ diff --git a/models/DetectorMesh_d.3d b/models/DetectorMesh_d.3d index dbe61ae..db16f00 100644 Binary files a/models/DetectorMesh_d.3d and b/models/DetectorMesh_d.3d differ diff --git a/models/EightPick_d.3d b/models/EightPick_d.3d index 35b0530..a05c26b 100644 Binary files a/models/EightPick_d.3d and b/models/EightPick_d.3d differ diff --git a/models/Female1_a.3d b/models/Female1_a.3d index fc7708c..6b93740 100644 Binary files a/models/Female1_a.3d and b/models/Female1_a.3d differ diff --git a/models/Female1_d.3d b/models/Female1_d.3d index 7bf7416..999b93a 100644 Binary files a/models/Female1_d.3d and b/models/Female1_d.3d differ diff --git a/models/Female2_a.3d b/models/Female2_a.3d index 9afd630..2b54417 100644 Binary files a/models/Female2_a.3d and b/models/Female2_a.3d differ diff --git a/models/Female2_d.3d b/models/Female2_d.3d index fb24598..f8c1a4b 100644 Binary files a/models/Female2_d.3d and b/models/Female2_d.3d differ diff --git a/models/FlakPick_d.3d b/models/FlakPick_d.3d index f09d617..2a83af5 100644 Binary files a/models/FlakPick_d.3d and b/models/FlakPick_d.3d differ diff --git a/models/FlakSh_d.3d b/models/FlakSh_d.3d index 0557fdc..2ab4627 100644 Binary files a/models/FlakSh_d.3d and b/models/FlakSh_d.3d differ diff --git a/models/FlameTOld_d.3d b/models/FlameTOld_d.3d index ce76984..6cd7acb 100644 Binary files a/models/FlameTOld_d.3d and b/models/FlameTOld_d.3d differ diff --git a/models/Flashl_d.3d b/models/Flashl_d.3d index 79978d8..443fb17 100644 Binary files a/models/Flashl_d.3d and b/models/Flashl_d.3d differ diff --git a/models/ForceFieldM_d.3d b/models/ForceFieldM_d.3d index efcc06d..1d34d1a 100644 Binary files a/models/ForceFieldM_d.3d and b/models/ForceFieldM_d.3d differ diff --git a/models/GrenadeM_d.3d b/models/GrenadeM_d.3d index cd25c22..d8cdb40 100644 Binary files a/models/GrenadeM_d.3d and b/models/GrenadeM_d.3d differ diff --git a/models/ImpProjectile_a.3d b/models/ImpProjectile_a.3d deleted file mode 100644 index 9e5a5e1..0000000 Binary files a/models/ImpProjectile_a.3d and /dev/null differ diff --git a/models/ImpProjectile_d.3d b/models/ImpProjectile_d.3d deleted file mode 100644 index 64ac87e..0000000 Binary files a/models/ImpProjectile_d.3d and /dev/null differ diff --git a/models/ImpalerAmmo_a.3d b/models/ImpalerAmmo_a.3d new file mode 100644 index 0000000..dfc8b62 Binary files /dev/null and b/models/ImpalerAmmo_a.3d differ diff --git a/models/ImpalerAmmo_d.3d b/models/ImpalerAmmo_d.3d new file mode 100644 index 0000000..99d9e90 Binary files /dev/null and b/models/ImpalerAmmo_d.3d differ diff --git a/models/ImpalerProj_a.3d b/models/ImpalerProj_a.3d index 6b919f7..efeaef1 100644 Binary files a/models/ImpalerProj_a.3d and b/models/ImpalerProj_a.3d differ diff --git a/models/ImpalerProj_d.3d b/models/ImpalerProj_d.3d index c0ec46d..f2d199f 100644 Binary files a/models/ImpalerProj_d.3d and b/models/ImpalerProj_d.3d differ diff --git a/models/Jclip1.png b/models/Jclip1.png index ab8c598..523a345 100644 Binary files a/models/Jclip1.png and b/models/Jclip1.png differ diff --git a/models/KevSuit_d.3d b/models/KevSuit_d.3d index f2f4f93..2cdb458 100644 Binary files a/models/KevSuit_d.3d and b/models/KevSuit_d.3d differ diff --git a/models/Male1_a.3d b/models/Male1_a.3d index c921764..f5422f1 100644 Binary files a/models/Male1_a.3d and b/models/Male1_a.3d differ diff --git a/models/Male1_d.3d b/models/Male1_d.3d index 7baedca..66ed565 100644 Binary files a/models/Male1_d.3d and b/models/Male1_d.3d differ diff --git a/models/Male2_a.3d b/models/Male2_a.3d index 740162c..05c6000 100644 Binary files a/models/Male2_a.3d and b/models/Male2_a.3d differ diff --git a/models/Male2_d.3d b/models/Male2_d.3d index 40f94d9..fbfeb90 100644 Binary files a/models/Male2_d.3d and b/models/Male2_d.3d differ diff --git a/models/Male3_a.3d b/models/Male3_a.3d index ffb923f..492e36a 100644 Binary files a/models/Male3_a.3d and b/models/Male3_a.3d differ diff --git a/models/Male3_d.3d b/models/Male3_d.3d index 7b1cf29..e8b849a 100644 Binary files a/models/Male3_d.3d and b/models/Male3_d.3d differ diff --git a/models/NaliFruitMesh_d.3d b/models/NaliFruitMesh_d.3d index aca4a3f..a43cc50 100644 Binary files a/models/NaliFruitMesh_d.3d and b/models/NaliFruitMesh_d.3d differ diff --git a/models/RazPick_d.3d b/models/RazPick_d.3d index 7ab3ff5..623e2ab 100644 Binary files a/models/RazPick_d.3d and b/models/RazPick_d.3d differ diff --git a/models/RazorAmmoMesh_d.3d b/models/RazorAmmoMesh_d.3d index c9d3c70..e8fead9 100644 Binary files a/models/RazorAmmoMesh_d.3d and b/models/RazorAmmoMesh_d.3d differ diff --git a/models/Razor_d.3d b/models/Razor_d.3d index cb76ecc..8c98b03 100644 Binary files a/models/Razor_d.3d and b/models/Razor_d.3d differ diff --git a/models/RiPick_d.3d b/models/RiPick_d.3d index 6d9ad57..107b579 100644 Binary files a/models/RiPick_d.3d and b/models/RiPick_d.3d differ diff --git a/models/RifleBullets_d.3d b/models/RifleBullets_d.3d index 764d605..897f5d6 100644 Binary files a/models/RifleBullets_d.3d and b/models/RifleBullets_d.3d differ diff --git a/models/RocketCanMesh_d.3d b/models/RocketCanMesh_d.3d index f6306df..84504c8 100644 Binary files a/models/RocketCanMesh_d.3d and b/models/RocketCanMesh_d.3d differ diff --git a/models/RocketM_d.3d b/models/RocketM_d.3d index 17f8d30..8afb23a 100644 Binary files a/models/RocketM_d.3d and b/models/RocketM_d.3d differ diff --git a/models/Seed_d.3d b/models/Seed_d.3d index 0d6a169..7d86e77 100644 Binary files a/models/Seed_d.3d and b/models/Seed_d.3d differ diff --git a/models/ShellBoxMesh_d.3d b/models/ShellBoxMesh_d.3d index 3da88b7..d9c5f30 100644 Binary files a/models/ShellBoxMesh_d.3d and b/models/ShellBoxMesh_d.3d differ diff --git a/models/ShieldBeltMesh_d.3d b/models/ShieldBeltMesh_d.3d index fb982e1..a2b4686 100644 Binary files a/models/ShieldBeltMesh_d.3d and b/models/ShieldBeltMesh_d.3d differ diff --git a/models/StingerPickup_d.3d b/models/StingerPickup_d.3d index 537650f..c1805c1 100644 Binary files a/models/StingerPickup_d.3d and b/models/StingerPickup_d.3d differ diff --git a/models/Suit_d.3d b/models/Suit_d.3d index 7d5c650..0fffaf8 100644 Binary files a/models/Suit_d.3d and b/models/Suit_d.3d differ diff --git a/models/TarydiumPickup_d.3d b/models/TarydiumPickup_d.3d index f705d5c..438f43a 100644 Binary files a/models/TarydiumPickup_d.3d and b/models/TarydiumPickup_d.3d differ diff --git a/models/TarydiumProjectile_d.3d b/models/TarydiumProjectile_d.3d index 5079d78..a7be1eb 100644 Binary files a/models/TarydiumProjectile_d.3d and b/models/TarydiumProjectile_d.3d differ diff --git a/models/TazerExpl_d.3d b/models/TazerExpl_d.3d index 9f17860..0a9da03 100644 Binary files a/models/TazerExpl_d.3d and b/models/TazerExpl_d.3d differ diff --git a/models/TazerProja_d.3d b/models/TazerProja_d.3d index 360dc5b..32265be 100644 Binary files a/models/TazerProja_d.3d and b/models/TazerProja_d.3d differ diff --git a/models/ToxSuit_d.3d b/models/ToxSuit_d.3d index a9944ee..e83651d 100644 Binary files a/models/ToxSuit_d.3d and b/models/ToxSuit_d.3d differ diff --git a/models/VoiceBoxMesh_d.3d b/models/VoiceBoxMesh_d.3d index 87e83da..2c50185 100644 Binary files a/models/VoiceBoxMesh_d.3d and b/models/VoiceBoxMesh_d.3d differ diff --git a/models/bandage_d.3d b/models/bandage_d.3d index 9eb5c01..15a88e9 100644 Binary files a/models/bandage_d.3d and b/models/bandage_d.3d differ diff --git a/models/flakboxMesh_d.3d b/models/flakboxMesh_d.3d index f199c27..4452fed 100644 Binary files a/models/flakboxMesh_d.3d and b/models/flakboxMesh_d.3d differ diff --git a/models/gina.png b/models/gina.png index d12787f..0eb890d 100644 Binary files a/models/gina.png and b/models/gina.png differ diff --git a/models/minipick_d.3d b/models/minipick_d.3d index 4b52018..151362c 100644 Binary files a/models/minipick_d.3d and b/models/minipick_d.3d differ diff --git a/models/peace_d.3d b/models/peace_d.3d index 2925cfd..1f2fe6e 100644 Binary files a/models/peace_d.3d and b/models/peace_d.3d differ diff --git a/models/peacehand_d.3d b/models/peacehand_d.3d index fa7c627..16d71ae 100644 Binary files a/models/peacehand_d.3d and b/models/peacehand_d.3d differ diff --git a/models/peacepick_d.3d b/models/peacepick_d.3d index bf3dfcd..643690f 100644 Binary files a/models/peacepick_d.3d and b/models/peacepick_d.3d differ diff --git a/models/perock_d.3d b/models/perock_d.3d index 22f702f..25feed5 100644 Binary files a/models/perock_d.3d and b/models/perock_d.3d differ diff --git a/models/sludgemesh_d.3d b/models/sludgemesh_d.3d index 305016a..24cad67 100644 Binary files a/models/sludgemesh_d.3d and b/models/sludgemesh_d.3d differ diff --git a/shaders/glsl/95Bg.fp b/shaders/glsl/95Bg.fp index 1f3542d..3d14015 100644 --- a/shaders/glsl/95Bg.fp +++ b/shaders/glsl/95Bg.fp @@ -1,12 +1,11 @@ vec4 ProcessTexel() { - const vec3 col0 = vec3(.0625,.5,1.); - const vec3 col1 = vec3(.5,.0625,.375); + const vec3 fadecol = vec3(.9,.1,.2); vec2 coord = vTexCoord.st+vec2(timer*0.02,0.); coord = fract(coord); - float base = getTexel(coord).x; + vec3 base = getTexel(coord).rgb; double dist = abs(vTexCoord.s-.5)*2.; - vec3 col = mix(col0,col1,vec3(min(1.,dist*1.3))); + vec3 col = mix(vec3(1.),fadecol,vec3(min(1.,dist*1.3))); col = mix(col,vec3(0.),vec3(min(1.,dist))); return vec4(base*col,1.); } diff --git a/sndinfo.txt b/sndinfo.txt index cf426cf..8382640 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -1,5 +1,7 @@ $pitchshiftrange 0 +StartupTick DSEMPTY + // player sounds u1/maledie1 mdeath1 u1/maledie2 mdeath3 @@ -111,3 +113,5 @@ stinger/hit bladehit stinger/hit2 ricochet stinger/flesh chunkhit $pitchshift stinger/hit2 5 + +flak/click click \ No newline at end of file diff --git a/sounds/RazorHum.ogg b/sounds/RazorHum.ogg deleted file mode 100644 index 5bc47c2..0000000 Binary files a/sounds/RazorHum.ogg and /dev/null differ diff --git a/zmapinfo.txt b/zmapinfo.txt index 8a90a43..d5b5a9f 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -4,9 +4,15 @@ GameInfo PlayerClasses = "UPlayerFemale1", "UPlayerFemale2", "UPlayerMale1", "UPlayerMale2", "UPlayerMale3" StatusBarClass = "UnrealHud" BorderFlat = "Border" + Border = 17, 17, "BordTR", "BordT", "BordTL", "BordR", "BordL", "BordBR", "BordB", "BordBL" BackpackType = "UnrealBackpack" - menufontcolor_title = "Green" - menufontcolor_label = "DarkGreen" - menufontcolor_selection = "Green" + menufontcolor_title = "Gold" + menufontcolor_label = "Green" + menufontcolor_value = "DarkGreen" + menufontcolor_action = "Green" + menufontcolor_header = "Gold" + menufontcolor_highlight = "White" + menufontcolor_selection = "White" MenuSliderColor = "Red" + MessageBoxClass = "GreenMessageBox" } diff --git a/zscript.txt b/zscript.txt index b3d6609..92d14ab 100644 --- a/zscript.txt +++ b/zscript.txt @@ -1,9 +1,10 @@ -version "4.1" +version "4.2" #include "zscript/unrealcommon.zsc" #include "zscript/dispersionpistol.zsc" #include "zscript/utranslocator.zsc" #include "zscript/stunner.zsc" +#include "zscript/bonesaw.zsc" #include "zscript/automag.zsc" #include "zscript/betamag.zsc" #include "zscript/stinger.zsc" @@ -16,9 +17,11 @@ version "4.1" #include "zscript/razorjack.zsc" #include "zscript/ubiorifle.zsc" #include "zscript/napalm.zsc" +#include "zscript/flamegun.zsc" #include "zscript/rifle.zsc" #include "zscript/uminigun.zsc" #include "zscript/gatling.zsc" +#include "zscript/biggun.zsc" #include "zscript/uhealitems.zsc" #include "zscript/uarmoritems.zsc" #include "zscript/miscitems.zsc" diff --git a/zscript/biggun.zsc b/zscript/biggun.zsc new file mode 100644 index 0000000..e69de29 diff --git a/zscript/bonesaw.zsc b/zscript/bonesaw.zsc new file mode 100644 index 0000000..e69de29 diff --git a/zscript/flamegun.zsc b/zscript/flamegun.zsc new file mode 100644 index 0000000..e69de29 diff --git a/zscript/spawners.zsc b/zscript/spawners.zsc deleted file mode 100644 index dd8f851..0000000 --- a/zscript/spawners.zsc +++ /dev/null @@ -1,195 +0,0 @@ -// Unused dead code, kept for reference - -// Tier 1 (chainsaw) -Class Tier1Weapon : RandomSpawner2 replaces Chainsaw -{ - Default - { - DropItem "Stunner", 255; - DropItem "UnrealTranslocator", 255; - } -} - -// Tier 2 (pistol, clip) -Class Tier2Weapon : RandomSpawner2 replaces Pistol -{ - Default - { - DropItem "Automag", 255; - DropItem "OldAutomag", 255; - } -} - -Class Tier2Ammo : RandomSpawner2 replaces Clip -{ - Default - { - DropItem "UClip", 255; - } -} - -// Tier 3 (shotgun, shells) -Class Tier3Weapon : RandomSpawner2 replaces Shotgun -{ - Default - { - DropItem "Stinger", 255; - DropItem "ASMD", 255; - DropItem "Quadshot", 255; - DropItem "Impaler", 255; - } -} -Class Tier3Weapon2 : Tier3Weapon replaces SuperShotgun {} -Class Tier3Ammo : RandomSpawner2 replaces Shell -{ - Default - { - DropItem "StingerAmmo", 255; - DropItem "ASMDAmmo", 255; - DropItem "QShells", 255; - } -} -Class Tier3Ammo2 : Tier3Ammo replaces ShellBox {} - -// Tier 4 (chaingun, ammo box) -Class Tier4Weapon : RandomSpawner2 replaces Chaingun -{ - Default - { - DropItem "Razorjack", 255; - DropItem "UMinigun", 255; - } -} -Class Tier4Ammo : RandomSpawner2 replaces ClipBox -{ - Default - { - DropItem "RazorAmmo", 255; - DropItem "UMiniAmmo", 255; - } -} - -// Tier 5 (rocket launcher, rocket ammo) -Class Tier5Weapon : RandomSpawner2 replaces RocketLauncher -{ - Default - { - DropItem "Eightball", 255; - DropItem "UFlakCannon", 255; - } -} -Class Tier5Ammo : RandomSpawner2 replaces RocketAmmo -{ - Default - { - DropItem "RocketCan", 255; - DropItem "UFlakAmmo", 255; - } -} -Class Tier5Ammo2 : RandomSpawner2 replaces RocketBox -{ - Default - { - DropItem "RocketCan", 255; - DropItem "UFlakBox", 255; - } -} - -// Tier 6 (plasma rifle, cell) -Class Tier6Weapon : RandomSpawner2 replaces PlasmaRifle -{ - Default - { - DropItem "GESBioRifle", 255; - DropItem "Rifle", 255; - DropItem "Flamethrower", 255; - } -} -Class Tier6Ammo : RandomSpawner2 replaces Cell -{ - Default - { - DropItem "BioSludge", 255; - DropItem "URifleShell", 255; - DropItem "NapalmCan", 255; - } -} -Class Tier6Ammo2 : RandomSpawner2 replaces CellPack -{ - Default - { - DropItem "BioSludge", 255; - DropItem "URifleAmmo", 255; - DropItem "NapalmCan", 255; - } -} - -// Tier 7 (bfg9000) -Class Tier7Weapon : RandomSpawner2 replaces BFG9000 -{ - Default - { - DropItem "GatlingGun", 255; - } -} - -// Misc. -Class BerserkSpawner : RandomSpawner2 replaces Berserk -{ - Default - { - DropItem "Amplifier", 255; - DropItem "WeaponPowerup", 255; - DropItem "UPowerup", 255; - } -} - -Class LightSpawner : RandomSpawner2 replaces Infrared -{ - Default - { - DropItem "Flashlight", 255; - DropItem "USearchlight", 255; - } -} - -Class RadsuitSpawner : RandomSpawner2 replaces Radsuit -{ - Default - { - DropItem "UJumpBoots", 255; - DropItem "ToxinSuit", 255; - } -} - -Class BackpackSpawner : RandomSpawner2 replaces Backpack -{ - Default - { - DropItem "AsbestosSuit", 255; - DropItem "VoiceBox", 255; - DropItem "ForceField", 255; - DropItem "UnrealBackpack", 255; - DropItem "MinigunSentry", 255; - DropItem "Peacemaker", 255; - } -} - -Class BlursphereSpawner : RandomSpawner2 replaces Blursphere -{ - Default - { - DropItem "UInvisibility", 255; - DropItem "Dampener", 255; - DropItem "ChameleonHeart", 255; - } -} - -Class StimpakSpawner : RandomSpawner2 replaces Stimpack -{ - Default - { - DropItem "Bandages", 255; - DropItem "NaliFruit", 255; - } -} diff --git a/zscript/stinger.zsc b/zscript/stinger.zsc index 41875d2..5a8d2ca 100644 --- a/zscript/stinger.zsc +++ b/zscript/stinger.zsc @@ -72,12 +72,20 @@ Class Stinger : UTWeapon Weapon.AmmoGive 40; UTWeapon.DropAmmo 20; } - action void A_StingerFire() + action void A_StingerFire( bool hold = false ) { Weapon weap = Weapon(invoker); if ( !weap ) return; if ( weap.Ammo1.Amount <= 0 ) return; if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return; + if ( hold ) A_Overlay(PSP_FLASH,"MFlashHold"); + else + { + A_PlaySound("stinger/fire",CHAN_WEAPON); + A_Overlay(PSP_FLASH,"MFlash"); + } + A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); + A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); UTMainHandler.DoFlash(self,Color(16,0,64,255),1); UTMainHandler.DoSwing(self,(FRandom[Stinger](-0.1,-0.2),FRandom[Stinger](-0.1,0.1)),4,-1.5,2,SWING_Spring,2,2); A_AlertMonsters(); @@ -96,6 +104,10 @@ Class Stinger : UTWeapon Weapon weap = Weapon(invoker); if ( !weap ) return; if ( weap.Ammo1.Amount <= 0 ) return; + A_PlaySound("stinger/altfire",CHAN_WEAPON); + A_Overlay(PSP_FLASH,"MFlash"); + A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); + A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); UTMainHandler.DoFlash(self,Color(16,0,64,255),1); UTMainHandler.DoSwing(self,(FRandom[Stinger](-0.3,-0.8),FRandom[Stinger](-0.4,0.4)),4,-1,3,SWING_Spring,3,5); A_AlertMonsters(); @@ -104,7 +116,6 @@ Class Stinger : UTWeapon [x, y, z] = dt_Matrix4.GetAxes(pitch,angle,roll); Vector3 origin = (pos.x,pos.y,player.viewz)+10.0*x+8.0*y-9.0*z; [x, y, z] = dt_Matrix4.GetAxes(BulletSlope(),angle,roll); - A_PlaySound("stinger/altfire",CHAN_WEAPON); Actor p; double a, s; Vector3 dir; @@ -142,14 +153,7 @@ Class Stinger : UTWeapon } Wait; Fire: - STNF A 2 - { - A_PlaySound("stinger/fire",CHAN_WEAPON); - A_StingerFire(); - A_Overlay(PSP_FLASH,"MFlash"); - A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); - A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); - } + STNF A 2 A_StingerFire(); STNF BC 2; STNI A 3; STNI A 0 A_Refire(1); @@ -158,23 +162,17 @@ Class Stinger : UTWeapon Hold: STNH A 1 { - A_StingerFire(); - A_Overlay(PSP_FLASH,"MFlashHold"); - A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); - A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); + // need to make sure player does the repeat fire anim + if ( self is 'UPlayer' ) + UPlayer(self).PlayAttacking(); + A_StingerFire(true); } STNH BCDEFG 1; STNH A 0 A_Refire(); STNH A 2 A_PlaySound("stinger/release",CHAN_WEAPON); Goto Idle; AltFire: - STNF A 2 - { - A_StingerAltFire(); - A_Overlay(PSP_FLASH,"MFlash"); - A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); - A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); - } + STNF A 2 A_StingerAltFire(); STNF BC 2; STNI A 35; // yes, 1 second cooldown Goto Idle; diff --git a/zscript/uflakcannon.zsc b/zscript/uflakcannon.zsc index 217d9f2..1b8c1d1 100644 --- a/zscript/uflakcannon.zsc +++ b/zscript/uflakcannon.zsc @@ -49,6 +49,36 @@ Class UFlakCannon : UTWeapon if ( first ) A_PlaySound("flak/load",CHAN_WEAPON); else A_PlaySound("flak/reload",CHAN_6); } + action void A_FireChunks() + { + Weapon weap = Weapon(invoker); + if ( !weap ) return; + if ( weap.Ammo1.Amount <= 0 ) return; + if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return; + A_PlaySound("flak/fire",CHAN_WEAPON); + A_Overlay(PSP_FLASH,"Flash"); + A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); + A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); + UTMainHandler.DoFlash(self,Color(48,255,96,0),1); + UTMainHandler.DoSwing(self,(FRandom[Flak](-0.3,-0.8),FRandom[Flak](-0.5,0.5)),4,-1.5,2,SWING_Spring,2,2); + A_AlertMonsters(); + A_QuakeEx(1,1,1,3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.05); + } + action void A_FireSlug() + { + Weapon weap = Weapon(invoker); + if ( !weap ) return; + if ( weap.Ammo1.Amount <= 0 ) return; + if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return; + A_PlaySound("flak/altfire",CHAN_WEAPON); + A_Overlay(PSP_FLASH,"AltFlash"); + A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); + A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); + UTMainHandler.DoFlash(self,Color(32,255,96,0),1); + UTMainHandler.DoSwing(self,(FRandom[Flak](-0.4,-0.8),FRandom[Flak](0.4,0.8)),4,-1,3,SWING_Spring,3,5); + A_AlertMonsters(); + A_QuakeEx(2,2,2,6,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.1); + } Default { Tag "$T_FLAKCANNON"; @@ -91,23 +121,17 @@ Class UFlakCannon : UTWeapon FLKI A 1 A_WeaponReady(); Wait; Fire: - FLKF A 1 - { - A_Overlay(PSP_FLASH,"Flash"); - A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); - A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); - } - FLKF BCDEFGHIJ 1; - FLKE ABCDEFGHIJKLMNS 1; + FLKF A 1 A_FireChunks(); + FLKF BCDEFGHI 1; + FLKF J 5; + FLKE A 1 A_PlaySound("flak/click",CHAN_6); + FLKE BCDEFGHIJKLMN 1; + FLKE S 4; Goto Loading; AltFire: - FLKA A 2 - { - A_Overlay(PSP_FLASH,"AltFlash"); - A_OverlayFlags(PSP_FLASH,PSPF_RenderStyle,true); - A_OverlayRenderstyle(PSP_FLASH,STYLE_Add); - } - FLKA BCDEFGHIJK 2; + FLKA A 1 A_FireSlug(); + FLKA BCDEFGHIJK 1; + FLKA K 10; Goto Loading; Deselect: FLKD A 0 A_JumpIfNoAmmo("Deselect2"); @@ -122,7 +146,7 @@ Class UFlakCannon : UTWeapon FLFF ABCDEFGHIJ 1 Bright; Stop; AltFlash: - FLFA ABCDEFGHIJK 2 Bright; + FLFA ABCDEF 1 Bright; Stop; } } diff --git a/zscript/unrealcommon.zsc b/zscript/unrealcommon.zsc index 61bfd8d..d68e603 100644 --- a/zscript/unrealcommon.zsc +++ b/zscript/unrealcommon.zsc @@ -156,57 +156,318 @@ Class UPlayer : UTPlayer } else GiveInventory(type,amount,true); } + + override void PlayAttacking() + { + // no animation if crouched + if ( (player && (player.mo == self)) && (player.crouchdir == -1) ) return; + // check weapon type + let psp = player.FindPSprite(PSP_WEAPON); + if ( (player.ReadyWeapon is 'Stinger') && psp + && psp.CurState.InStateSequence(player.ReadyWeapon.FindState("Hold")) ) + { + if ( !InStateSequence(CurState,FindState("MissileRep")) ) + SetStateLabel("MissileRep"); + } + else SetStateLabel("Missile"); + } } -Class UPlayerFemale1 : UPlayer +Class UFemaleArmGibber : UTGibber +{ + bool firstgib; + + override void BurstGibs() + { + Actor a; + double ang, pt; + Vector3 dir; + if ( !firstgib ) + { + firstgib = true; + Actor a = Spawn("UTFemaleArm",Vec3Offset(-14*sin(angle),14*cos(angle),36)); + 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](3.0,6.0); + } + for ( int i=0; i20,"Death2"); + #### # 0 A_JumpIf(vel.length()>10,"Death5"); + #### # 0 A_Jump(256,"Death1","Death3","Death4"); + Death1: + #### # 3; + PLD1 A 3 A_PlayerScream(); + PLD1 B 3 A_NoBlocking(); + PLD1 CDEFGHIJKLMNOPQRSTU 3; + PLD1 V 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; + Death3: + #### # 3; + PLD3 A 3 A_PlayerScream(); + PLD3 B 3 A_NoBlocking(); + PLD3 CDEFGHIJKLMNO 3; + PLD3 P 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; + Death5: + #### # 3; + PLD5 A 3 A_PlayerScream(); + PLD5 B 3 A_NoBlocking(); + PLD5 CDEFGHIJKLMNO 3; + PLD5 P 1 A_DMFade(); + Wait; + Death7: + #### # 0 A_ArmPop(); + PLD7 A 3 A_PlayerScream(); + PLD7 B 3 A_NoBlocking(); + PLD7 CDEFGHIJKLMNOPQRSTUV 3; + PLD7 W 1 A_DMFade(); + Wait; + Taunt1: + #### # 5; + PLT1 ABCDEFGHIJKLMNO 3; + Goto Spawn+1; + Taunt2: + #### # 5; + PLT2 ABCDEFGHIJKLMNOPQR 4; + Goto Spawn+1; + Taunt3: + #### # 5; + PLT3 ABCDEFGHIJKLMNO 3; + Goto Spawn+1; + Taunt4: + #### # 0; + Goto Spawn; + } +} + +Class UPlayerFemale1 : UPlayerFemale +{ + Default + { Player.DisplayName "$N_FEMALE1"; Player.Portrait ""; UTPlayer.VoiceType VOICE_FemaleTwo; -NOMENU; } } -Class UPlayerFemale2 : UPlayer +Class UPlayerFemale2 : UPlayerFemale { Default { Player.SoundClass "ufemale"; Player.DisplayName "$N_FEMALE2"; Player.Portrait ""; - UTPlayer.VoiceType VOICE_FemaleOne; -NOMENU; } } -Class UPlayerMale1 : UPlayer + +Class UMaleTorsoGibber : UTGibber +{ + bool firstgib; + + override void BurstGibs() + { + static const class parts[] = {"UTMaleArm","UTMaleArm","UTMaleTorso","UTHeadMale","UTHeart","UTLiver","UTStomach"}; + static const double partofsy[] = {14,-14,0,0,-2,5,-3}; + static const double partofsz[] = {36,36,32,48,40,32,35}; + Actor a; + double ang, pt; + Vector3 dir; + if ( !firstgib ) + { + firstgib = true; + for ( int i=0; i<7; 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](3.0,6.0); + } + } + for ( int i=0; i20,"Death6"); + #### # 0 A_JumpIf(vel.length()>10,"Death1"); + #### # 0 A_Jump(256,"Death2","Death3","Death7"); + Death5: + #### # 0 A_TorsoPop(); + PLD5 A 3 A_PlayerScream(); + PLD5 B 3 A_NoBlocking(); + PLD5 CDEFGHIJKLMNOPQRSTUV 3; + PLD5 W 1 A_DMFade(); + Wait; + Death6: + #### # 3; + PLD6 A 3 A_PlayerScream(); + PLD6 B 3 A_NoBlocking(); + PLD6 CDEFGHIJKLMNOPQRSTUVWXYZ[ 3; + PLD6 \ 1 A_DMFade(); + Wait; + Taunt1: + #### # 5; + PLT1 ABCDEFG 6; + Goto Spawn+1; + Taunt2: + #### # 5; + PLT2 ABCDEFGHIJKLMNOPQRSTUVWXY 3; + Goto Spawn+1; + Taunt3: + #### # 5; + PLT3 ABCDEFGHIJKLMNO 3; + Goto Spawn+1; + Taunt4: + #### # 0; + Goto Spawn; + } +} +Class UPlayerMale1 : UPlayerMale +{ + Default + { Player.DisplayName "$N_MALE1"; Player.Portrait ""; - UTPlayer.VoiceType VOICE_MaleOne; -NOMENU; } } -Class UPlayerMale2 : UPlayer +Class UPlayerMale2 : UPlayerMale { Default { - Player.SoundClass "umale"; Player.DisplayName "$N_MALE2"; Player.Portrait ""; - UTPlayer.VoiceType VOICE_MaleOne; -NOMENU; } } -Class UPlayerMale3 : UPlayer +Class UPlayerMale3 : UPlayerMale { Default { - Player.SoundClass "umale"; Player.DisplayName "$N_MALE3"; Player.Portrait ""; UTPlayer.VoiceType VOICE_MaleTwo; @@ -282,12 +543,8 @@ Class UnrealStaticHandler : StaticEventHandler else mtics++; } - override void RenderOverlay( RenderEvent e ) + override void RenderUnderlay( RenderEvent e ) { - // we have to stand in for the UT handler on this function - // although it doesn't make much sense yet - if ( players[consoleplayer].camera.player && players[consoleplayer].camera.player.ReadyWeapon && (players[consoleplayer].camera.player.ReadyWeapon is 'UTWeapon') ) - UTWeapon(players[consoleplayer].camera.player.ReadyWeapon).RenderOverlay(e); if ( gamestate != GS_TITLELEVEL ) return; double ar = Screen.GetAspectRatio(); Vector2 tsize = TexMan.GetScaledSize(tex[cur+3]); @@ -307,6 +564,14 @@ Class UnrealStaticHandler : StaticEventHandler double alf = clamp(((mtics+e.FracTic)/Thinker.TICRATE)-8,0.,1.); Screen.DrawTexture(tex[cur],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_Alpha,alf); } + + override void RenderOverlay( RenderEvent e ) + { + // we have to stand in for the UT handler on this function + // although it doesn't make much sense yet + if ( players[consoleplayer].camera.player && players[consoleplayer].camera.player.ReadyWeapon && (players[consoleplayer].camera.player.ReadyWeapon is 'UTWeapon') ) + UTWeapon(players[consoleplayer].camera.player.ReadyWeapon).RenderOverlay(e); + } } Class UnrealMainHandler : EventHandler diff --git a/zscript/unrealhud.zsc b/zscript/unrealhud.zsc index 9eb28a9..95cb167 100644 --- a/zscript/unrealhud.zsc +++ b/zscript/unrealhud.zsc @@ -16,13 +16,16 @@ Class UnrealHUD : BaseStatusBar int lastseentic, Count; // Fonts - Font LargeFont, LargeRedFont, MedFont, WhiteFont, TinyFont, - TinyWhiteFont, TinyRedFont; + Font LargeFont, LargeRedFont, MedFont, WhiteFont, TinyFont, TinyWhiteFont, TinyRedFont; HUDFont mMapFont; // Common Textures - TextureID HalfHud, HudLine, HudAmmo, IconHeal, IconSkul, IconSel, - IconBase; + TextureID HalfHud, HudLine, HudAmmo, IconHeal, IconSkul, IconSel, IconBase; + + // 0.83 HUD stuff + String OldAmmo[32]; + Class OldAmmoType[32]; + HUDFont mOldDigits; // Translations int RedIcon; @@ -30,7 +33,7 @@ Class UnrealHUD : BaseStatusBar override void Init() { Super.Init(); - SetSize(0,320,200); + SetSize(64,640,400); // Initialize Count = 0; vtracer = new("ViewTracer"); @@ -54,6 +57,11 @@ Class UnrealHUD : BaseStatusBar IconSel = TexMan.CheckForTexture("IconSel",TexMan.Type_Any); IconBase = TexMan.CheckForTexture("IconBase",TexMan.Type_Any); RedIcon = Translation.GetID('RedIcon'); + mOldDigits = HUDFont.Create(Font.FindFont('U083Digits'),26,Mono_CellLeft); + OldAmmo[0] = "Clip083"; + OldAmmo[1] = "Shell083"; + OldAmmo[2] = "Tary083"; + OldAmmoType[2] = "StingerAmmo"; } override void Draw( int state, double TicFrac ) @@ -61,8 +69,7 @@ Class UnrealHUD : BaseStatusBar Super.Draw(state,TicFrac); HudMode = CVar.GetCVar('stinger_hudmode',players[consoleplayer]).GetInt(); scalev.x = scalev.y = Max(0,CVar.GetCVar('stinger_hudscale',players[consoleplayer]).GetInt()); - if ( scalev.x == 0 ) - scalev.x = scalev.y = max(1,min(Screen.GetWidth()/640.,Screen.GetHeight()/480.)); + if ( scalev.x == 0 ) scalev.x = scalev.y = max(1,min(Screen.GetWidth()/640.,Screen.GetHeight()/480.)); ClipX = Screen.GetWidth()/scalev.x; ClipY = Screen.GetHeight()/scalev.y; CurX = 0; @@ -73,7 +80,13 @@ Class UnrealHUD : BaseStatusBar UnrealInventory(i).PreRender(lbottom); if ( CPlayer.ReadyWeapon is 'UTWeapon' ) UTWeapon(CPlayer.ReadyWeapon).PreRender(lbottom); - if ( (state == HUD_StatusBar) || (state == HUD_Fullscreen) ) + if ( state == HUD_StatusBar ) + { + BeginStatusBar(); + FracTic = TicFrac; + DrawUnrealBar(); + } + else if ( state == HUD_Fullscreen ) { BeginHUD(); FracTic = TicFrac; @@ -145,14 +158,14 @@ Class UnrealHUD : BaseStatusBar Screen.DrawText(TinyWhiteFont,Font.CR_UNTRANSLATED,CurX,CurY,score,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); } - private void DrawInventory( double x, double y, bool bDrawOne ) + private void DrawInventory( double x, double y, bool bDrawOne = false, bool bNoWeapons = false ) { bool bGotNext, bGotPrev, bGotSelected, bRed, bFlashTranslator; Inventory Inv, Prev, Next, SelectedItem; UTranslator translator; double HalfHUDX, HalfHUDY; double AmmoBarSize; - if ( HudMode < 4 ) // then draw HalfHUD + if ( (HudMode < 4) && !bNoWeapons ) // then draw HalfHUD { HalfHUDX = ClipX-64; HalfHUDY = ClipY-32; @@ -194,71 +207,81 @@ Class UnrealHUD : BaseStatusBar // drawing weapon slots differently than Unreal 1 because we have better methods here let cw = CPlayer.ReadyWeapon; int cwslot = -1; - if ( cw && (cw.SlotNumber != -1) ) cwslot = cw.SlotNumber?(cw.SlotNumber-1):9; + if ( cw && (cw.SlotNumber != -1) ) cwslot = cw.SlotNumber; let pw = CPlayer.PendingWeapon; int pwslot = -1; - if ( pw && (pw != WP_NOCHANGE) && (pw.SlotNumber != -1) ) pwslot = pw.SlotNumber?(pw.SlotNumber-1):9; - Weapon wslots[10]; - // zero-initialize, fixes asmjit crash - for ( int i=0; i<10; i++ ) - wslots[i] = null; + if ( pw && (pw != WP_NOCHANGE) && (pw.SlotNumber != -1) ) pwslot = pw.SlotNumber; + Array wslots[10]; + // clear the arrays before work + for ( int i=0; i<10; i++ ) wslots[i].Clear(); // first run, populate the full array of weapons for ( int i=0; i<10; i++ ) { - int sslot = (i<9)?(i+1):0; for ( Inv = CPlayer.mo.Inv; Inv; Inv=Inv.Inv ) { if ( !(Inv is 'Weapon') ) continue; let w = Weapon(Inv); - if ( w.SlotNumber != sslot ) continue; - int slot = w.SlotNumber?(w.SlotNumber-1):9; - if ( !wslots[slot] ) + if ( w.SlotNumber != i ) continue; + int slot = w.SlotNumber; + wslots[slot].Push(w); + } + } + // second run, sort the slot arrays + for ( int i=0; i<10; i++ ) + { + int j = 1; + while ( j < wslots[i].Size() ) + { + int k = j; + while ( (k > 0) && (wslots[i][k-1].SelectionOrder >= wslots[i][k].SelectionOrder) ) { - wslots[slot] = w; - continue; + Weapon tmp = wslots[i][k]; + wslots[i][k] = wslots[i][k-1]; + wslots[i][k-1] = tmp; + k--; } - if ( (wslots[slot] == pw) || (wslots[slot] == cw) ) continue; - if ( (w == pw) || (w == cw) ) - { - wslots[slot] = w; - continue; - } - if ( (w.SelectionOrder < wslots[slot].SelectionOrder) && (!w.Ammo1 || (w.Ammo1.Amount > 0)) ) - wslots[slot] = w; - else if ( (w.SelectionOrder >= wslots[slot].SelectionOrder) && wslots[slot].Ammo1 && (wslots[slot].Ammo1.Amount <= 0) ) - wslots[slot] = w; + j++; } } // draw the slots - if ( HudMode < 4 ) + if ( (HudMode < 4) && !bNoWeapons ) { for ( int i=0; i<10; i++ ) { - if ( !wslots[i] ) continue; + if ( wslots[i].Size() <= 0 ) continue; Font cfont = TinyFont; if ( cwslot == i ) cfont = TinyWhiteFont; - int realslot = (i<9)?(i+1):9; + int realslot = i?i:10; CurX = HalfHUDX-3+realslot*6; CurY = HalfHUDY+4; - Screen.DrawText(cfont,Font.CR_UNTRANSLATED,CurX,CurY,String.Format("%d",realslot),DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); - // Draw ammo bar - let amo = wslots[i].Ammo1; - if ( !amo ) continue; - CurY = HalfHUDY+11; - AmmoBarSize = 16*min(1.0,amo.Amount/double(amo.MaxAmount)); - CurY = HalfHUDY+29-AmmoBarSize; - if ( (AmmoBarSize < 8) && (amo.Amount < 10) && (amo.Amount > 0) ) + Screen.DrawText(cfont,Font.CR_UNTRANSLATED,CurX,CurY,String.Format("%d",i),DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); + // Draw ammo bar(s) + int nammo = 0; + for ( int j=0; j 0 ) - { - Screen.DrawTexture(HudAmmo,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_FillColor,BlackColor,DTA_DestWidth,4,DTA_DestHeightF,AmmoBarSize); - Screen.DrawTexture(HudAmmo,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_AlphaChannel,true,DTA_FillColor,DrawColor,DTA_DestWidth,4,DTA_DestHeightF,AmmoBarSize); + let amo = wslots[i][j].Ammo1; + if ( !amo ) continue; + AmmoBarSize = 16*min(1.0,amo.Amount/double(amo.MaxAmount)); + CurX = HalfHUDX-3+realslot*6+(4./nammo)*cbar; + CurY = HalfHUDY+29-AmmoBarSize; + if ( (AmmoBarSize < 8) && (amo.Amount < 10) && (amo.Amount > 0) && (nammo == 1) ) + { + CurY -= 9; + Screen.DrawText(TinyRedFont,Font.CR_UNTRANSLATED,CurX,CurY,String.Format("%d",amo.Amount),DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); + CurY += 9; + } + DrawColor = Color(0,255,0); + if ( AmmoBarSize < 8 ) DrawColor = Color(255-int(AmmoBarSize)*30,int(AmmoBarSize)*30+40,0); + if ( wslots[i][j] != cw ) DrawColor = Color(DrawColor.r/2,DrawColor.g/2,DrawColor.b/2); + if ( amo.Amount > 0 ) + { + Screen.DrawTexture(HudAmmo,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_FillColor,BlackColor,DTA_DestWidthF,4./nammo,DTA_DestHeightF,AmmoBarSize); + Screen.DrawTexture(HudAmmo,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_AlphaChannel,true,DTA_FillColor,DrawColor,DTA_DestWidthF,4./nammo,DTA_DestHeightF,AmmoBarSize); + } + cbar++; } } } @@ -294,7 +317,7 @@ Class UnrealHUD : BaseStatusBar } } - private void DrawArmor( double x, double y, bool bDrawOne ) + private void DrawArmor( double x, double y, bool bDrawOne = false ) { int ArmorAmount = 0, CurAbs = 0; Inventory Inv, BestArmor; @@ -332,16 +355,12 @@ Class UnrealHUD : BaseStatusBar { CurX = x; CurY = y; - if ( !CPlayer.ReadyWeapon || !CPlayer.ReadyWeapon.Ammo1 ) - { - Screen.DrawTexture(IconBase,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); - return; - } + if ( !CPlayer.ReadyWeapon || !CPlayer.ReadyWeapon.Ammo1 ) return; Font cfont = LargeFont; - if ( CPlayer.ReadyWeapon.Ammo1.Amount < 10 ) cfont = LargeRedFont; + if ( CPlayer.ReadyWeapon.Ammo1.Amount <= min(9,CPlayer.ReadyWeapon.Ammo1.MaxAmount/3) ) cfont = LargeRedFont; if ( !HudMode ) { - CurX -= cfont.StringWidth(String.Format("%d",CPlayer.ReadyWeapon.Ammo1.Amount)); + CurX -= cfont.StringWidth(String.Format("%d",CPlayer.ReadyWeapon.Ammo1.Amount))+2; Screen.DrawText(cfont,Font.CR_UNTRANSLATED,CurX,CurY,String.Format("%d",CPlayer.ReadyWeapon.Ammo1.Amount),DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true); } CurX = x; @@ -360,6 +379,7 @@ Class UnrealHUD : BaseStatusBar CurY = Y+29; if ( (HudMode != 1) && (HudMode != 2) && (HudMode != 4) ) Screen.DrawTexture(HudLine,false,CurX,CurY,DTA_VirtualWidthF,ClipX,DTA_VirtualHeightF,ClipY,DTA_KeepRatio,true,DTA_WindowRightF,Min(27.*(CPlayer.ReadyWeapon.Ammo1.Amount/double(CPlayer.ReadyWeapon.Ammo1.MaxAmount)),27.)); + // TODO secondary ammo display } private void DrawHealth( double x, double y ) @@ -411,13 +431,13 @@ Class UnrealHUD : BaseStatusBar { if ( HudMode == 5 ) { - DrawInventory(ClipX-96,0,false); + DrawInventory(ClipX-96,0); return; } if ( ClipX < 320 ) HudMode = 4; // Draw Armor - if ( HudMode < 2 ) DrawArmor(0,0,false); - else if ( (HudMode == 3) || (HudMode == 2) ) DrawArmor(0,ClipY-32,false); + if ( HudMode < 2 ) DrawArmor(0,0); + else if ( (HudMode == 3) || (HudMode == 2) ) DrawArmor(0,ClipY-32); else if ( HudMode == 4 ) DrawArmor(ClipX-64,ClipY-64,true); // Draw Ammo if ( HudMode != 4 ) DrawAmmo(ClipX-96,ClipY-32); @@ -427,10 +447,10 @@ Class UnrealHUD : BaseStatusBar else if ( (HudMode == 3) || (HudMode == 2) ) DrawHealth(ClipX-128,ClipY-32); else if ( HudMode == 4 ) DrawHealth(ClipX-64,ClipY-32); // Display Inventory - if ( HudMode < 2 ) DrawInventory(ClipX-96,0,false); - else if ( HudMode == 3 ) DrawInventory(ClipX-96,ClipY-64,false); + if ( HudMode < 2 ) DrawInventory(ClipX-96,0); + else if ( HudMode == 3 ) DrawInventory(ClipX-96,ClipY-64); else if ( HudMode == 4 ) DrawInventory(ClipX-64,ClipY-64,true); - else if ( HudMode == 2 ) DrawInventory(ClipX/2-64,ClipY-32,false); + else if ( HudMode == 2 ) DrawInventory(ClipX/2-64,ClipY-32); // Display Frag count if ( HudMode < 3 ) DrawFragCount(ClipX-32,ClipY-64); else if ( HudMode == 3 ) DrawFragCount(0,ClipY-64); @@ -442,6 +462,51 @@ Class UnrealHUD : BaseStatusBar DrawIdentifyInfo(); } + private void DrawUnrealBar() + { + // 0.83 status bar, just for funsies + DrawImage("Bar083",(0,336),DI_ITEM_OFFSETS); + static const float slotofs[] = {525, 84, 128, 173, 216, 259, 349, 392, 436, 481}; + for ( int i=0; i<10; i++ ) + { + if ( !CPlayer.HasWeaponsInSlot(i) ) continue; + bool used = (CPlayer.ReadyWeapon&&(CPlayer.ReadyWeapon.SlotNumber==i)); + DrawImage("Slot083",(slotofs[i],342),DI_ITEM_OFFSETS,used?1.:.8); + } + DrawString(mOldDigits,FormatNumber(CPlayer.health,3),(359,367),DI_TEXT_ALIGN_RIGHT); + int ArmorAmount = 0, CurAbs = 0; + Inventory BestArmor = null; + for ( Inventory Inv=CPlayer.mo.Inv; Inv; Inv=Inv.Inv ) + { + if ( !(Inv is 'UTArmor') ) continue; + ArmorAmount += Inv.Amount; + if ( Inv.Amount <= 0 ) continue; + if ( UTArmor(Inv).absorb > CurAbs ) + { + CurAbs = UTArmor(Inv).absorb; + BestArmor = Inv; + } + } + // TODO draw different icons based on armor class + if ( BestArmor ) DrawImage("Armor083",(4,340),DI_ITEM_OFFSETS); + if ( ArmorAmount ) DrawString(mOldDigits,FormatNumber(ArmorAmount,3),(168,367),DI_TEXT_ALIGN_RIGHT); + Inventory Ammo1, Ammo2; + [Ammo1, Ammo2] = GetCurrentAmmo(); + if ( Ammo1 ) + { + if ( Ammo1.Amount ) DrawString(mOldDigits,FormatNumber(Ammo1.Amount,3),(550,367),DI_TEXT_ALIGN_RIGHT); + for ( int i=0; i<32; i++ ) + { + if ( !(Ammo1 is OldAmmoType[i]) ) continue; + DrawImage(OldAmmo[i],(560,336),DI_ITEM_OFFSETS); + break; + } + } + // Need to draw the inventory bar (and translator) + if ( ClipX < 320 ) HudMode = 4; + DrawInventory(ClipX-96,0,false,true); + } + override void Tick() { Super.Tick(); diff --git a/zscript/unrealmenus.zsc b/zscript/unrealmenus.zsc index f4e9289..ae4af7a 100644 --- a/zscript/unrealmenus.zsc +++ b/zscript/unrealmenus.zsc @@ -101,3 +101,35 @@ Class OptionMenuItemHudType : OptionMenuItem return -1; } } + +// because I can't change the font color in mapinfo +Class GreenMessageBox : MessageBoxMenu +{ + override void Drawer () + { + int i, y; + int fontheight = textFont.GetHeight(); + y = destHeight/2; + int c = mMessage.Count(); + y -= c*fontHeight/2; + for ( i=0; i= 0 ) + { + if ( (MenuTime()%8) < 6 ) + { + screen.DrawText(arrowFont,OptionMenuSettings.mFontColorSelection,(destWidth/2)-11,y+fontheight*messageSelection,selector,DTA_VirtualWidth,destWidth,DTA_VirtualHeight,destHeight,DTA_KeepRatio,true); + } + } + } + } +}