diff --git a/animdefs.txt b/animdefs.txt index 265161e..1365cc2 100644 --- a/animdefs.txt +++ b/animdefs.txt @@ -20,3 +20,36 @@ texture FIZZHP20 pic FIZZHP21 tics 8 pic FIZZHP22 tics 8 pic FIZZHP23 tics 8 +texture invis00 + pic invis00 tics 2 + pic invis01 tics 2 + pic invis02 tics 2 + pic invis03 tics 2 + pic invis04 tics 2 + pic invis05 tics 2 + pic invis06 tics 2 + pic invis07 tics 2 + pic invis08 tics 2 + pic invis09 tics 2 + pic invis10 tics 2 + pic invis11 tics 2 + pic invis12 tics 2 + pic invis13 tics 2 + pic invis14 tics 2 + pic invis15 tics 2 + pic invis16 tics 2 + pic invis17 tics 2 + pic invis18 tics 2 + pic invis19 tics 2 + pic invis20 tics 2 + pic invis21 tics 2 + pic invis22 tics 2 + pic invis23 tics 2 + pic invis24 tics 2 + pic invis25 tics 2 + pic invis26 tics 2 + pic invis27 tics 2 + pic invis28 tics 2 + pic invis29 tics 2 + pic invis30 tics 2 + pic invis31 tics 2 diff --git a/brightmaps/Eight_t1.png b/brightmaps/Eight_t1.png new file mode 100644 index 0000000..83fb6b8 Binary files /dev/null and b/brightmaps/Eight_t1.png differ diff --git a/brightmaps/Eight_t4.png b/brightmaps/Eight_t4.png new file mode 100644 index 0000000..760e0bc Binary files /dev/null and b/brightmaps/Eight_t4.png differ diff --git a/brightmaps/JBigFlash1.png b/brightmaps/JBigFlash1.png new file mode 100644 index 0000000..16c2e8a Binary files /dev/null and b/brightmaps/JBigFlash1.png differ diff --git a/brightmaps/JImpactHammer4.png b/brightmaps/JImpactHammer4.png new file mode 100644 index 0000000..e12325f Binary files /dev/null and b/brightmaps/JImpactHammer4.png differ diff --git a/brightmaps/JRazor2.png b/brightmaps/JRazor2.png new file mode 100644 index 0000000..3b1e6e8 Binary files /dev/null and b/brightmaps/JRazor2.png differ diff --git a/brightmaps/JRazor4.png b/brightmaps/JRazor4.png new file mode 100644 index 0000000..486dc13 Binary files /dev/null and b/brightmaps/JRazor4.png differ diff --git a/brightmaps/JRazor5.png b/brightmaps/JRazor5.png new file mode 100644 index 0000000..c4f0b11 Binary files /dev/null and b/brightmaps/JRazor5.png differ diff --git a/brightmaps/JRazorw.png b/brightmaps/JRazorw.png new file mode 100644 index 0000000..d82ebfd Binary files /dev/null and b/brightmaps/JRazorw.png differ diff --git a/brightmaps/JTranslator1.png b/brightmaps/JTranslator1.png new file mode 100644 index 0000000..ddeb237 Binary files /dev/null and b/brightmaps/JTranslator1.png differ diff --git a/brightmaps/RazSkin.png b/brightmaps/RazSkin.png new file mode 100644 index 0000000..a1995eb Binary files /dev/null and b/brightmaps/RazSkin.png differ diff --git a/brightmaps/tloc1.png b/brightmaps/tloc1.png new file mode 100644 index 0000000..838dcbd Binary files /dev/null and b/brightmaps/tloc1.png differ diff --git a/brightmaps/tloc2.png b/brightmaps/tloc2.png new file mode 100644 index 0000000..9180aed Binary files /dev/null and b/brightmaps/tloc2.png differ diff --git a/gldefs.txt b/gldefs.txt index e797ed2..baf2d55 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -126,6 +126,34 @@ HardwareShader Texture "models/JShockCore.png" { Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" } +/*Brightmap Texture "models/SASMD_t.png" +{ + Map "brightmaps/ASMD_t.png" +}*/ +HardwareShader Texture "models/SASMD_t.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} +Brightmap Texture "models/SASMD_t1.png" +{ + Map "brightmaps/ASMD_t1.png" +} +Brightmap Texture "models/SASMD_t3.png" +{ + Map "brightmaps/ASMD_t3.png" +} +Brightmap Texture "models/SASMD_t4.png" +{ + Map "brightmaps/ASMD_t4.png" +} +/*Brightmap Texture "models/JSShockCore.png" +{ + Map "brightmaps/JShockCore.png" +}*/ +HardwareShader Texture "models/JSShockCore.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} Brightmap Texture "models/Jwarhead2.png" { Map "brightmaps/Jwarhead2.png" @@ -274,6 +302,246 @@ HardwareShader Texture "models/RedSkin2.png" { Shader "shaders/glsl/MeshEnviroMap_AmbientGlow.fp" } +HardwareShader Texture "models/bpak.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/JEClip.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/BladeHopperT.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/JM21.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/JRocketPack1.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/JuRocket1_.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/BulletBoxT.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/RifleR1.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +HardwareShader Texture "models/JRifle2.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +/*Brightmap Texture "models/JRazorw.png" +{ + Map "brightmaps/JRazorw.png" +}*/ +HardwareShader Texture "models/JRazorw.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} +Brightmap Texture "models/JRazor2.png" +{ + Map "brightmaps/JRazor2.png" +} +Brightmap Texture "models/JRazor4.png" +{ + Map "brightmaps/JRazor4.png" +} +Brightmap Texture "models/JRazor5.png" +{ + Map "brightmaps/JRazor5.png" +} +Brightmap Texture "models/RazSkin.png" +{ + Map "brightmaps/RazSkin.png" +} +Brightmap Texture "models/RazTrail.png" +{ + Map "brightmaps/fullbright.png" +} +Brightmap Texture "models/JImpactHammer4.png" +{ + Map "brightmaps/JImpactHammer4.png" +} +Brightmap Texture "models/tloc1.png" +{ + Map "brightmaps/tloc1.png" +} +Brightmap Texture "models/tloc2.png" +{ + Map "brightmaps/tloc2.png" +} +Brightmap Texture "models/Eight_t1.png" +{ + Map "brightmaps/Eight_t1.png" +} +Brightmap Texture "models/Eight_t4.png" +{ + Map "brightmaps/Eight_t4.png" +} +Brightmap Texture "models/miniammoledbase.png" +{ + Map "brightmaps/fullbright.png" +} +HardwareShader Texture "models/tloc1_.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} +HardwareShader Texture "invis00" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis01" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis02" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis03" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis04" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis05" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis06" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis07" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis08" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis09" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis10" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis11" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis12" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis13" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis14" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis15" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis16" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis17" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis18" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis19" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis20" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis21" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis22" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis23" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis24" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis25" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis26" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis27" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis28" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis29" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis30" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +HardwareShader Texture "invis31" +{ + Shader "shaders/glsl/MeshEnviroMap.fp" +} +/*Brightmap Texture "models/JTranslator1.png" +{ + Map "brightmaps/JTranslator1.png" +}*/ +HardwareShader Texture "models/JTranslator1.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} +HardwareShader Texture "models/ShieldSuit.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} +/*Brightmap Texture "models/JBigFlash1.png" +{ + Map "brightmaps/JBigFlash1.png" +}*/ +HardwareShader Texture "models/JBigFlash1.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} PulseLight "UTRedKeyLight" { Color 1.0 0.0 0.0 diff --git a/graphics/BlueSky.png b/graphics/BlueSky.png new file mode 100644 index 0000000..9911a7e Binary files /dev/null and b/graphics/BlueSky.png differ diff --git a/graphics/RReticle.tga b/graphics/RReticle.tga new file mode 100644 index 0000000..98454f6 Binary files /dev/null and b/graphics/RReticle.tga differ diff --git a/graphics/hud/AmoBar.png b/graphics/hud/AmoBar.png new file mode 100644 index 0000000..7523106 Binary files /dev/null and b/graphics/hud/AmoBar.png differ diff --git a/graphics/hud/AmoBox.png b/graphics/hud/AmoBox.png new file mode 100644 index 0000000..1dba713 Binary files /dev/null and b/graphics/hud/AmoBox.png differ diff --git a/graphics/hud/ArmoBox.png b/graphics/hud/ArmoBox.png new file mode 100644 index 0000000..1317086 Binary files /dev/null and b/graphics/hud/ArmoBox.png differ diff --git a/graphics/hud/BKey.png b/graphics/hud/BKey.png new file mode 100644 index 0000000..c5e5e5a Binary files /dev/null and b/graphics/hud/BKey.png differ diff --git a/graphics/hud/BSkul.png b/graphics/hud/BSkul.png new file mode 100644 index 0000000..11f6426 Binary files /dev/null and b/graphics/hud/BSkul.png differ diff --git a/graphics/hud/Big0.png b/graphics/hud/Big0.png new file mode 100644 index 0000000..49c620f Binary files /dev/null and b/graphics/hud/Big0.png differ diff --git a/graphics/hud/Big1.png b/graphics/hud/Big1.png new file mode 100644 index 0000000..b1299c9 Binary files /dev/null and b/graphics/hud/Big1.png differ diff --git a/graphics/hud/Big2.png b/graphics/hud/Big2.png new file mode 100644 index 0000000..4d702ed Binary files /dev/null and b/graphics/hud/Big2.png differ diff --git a/graphics/hud/Big3.png b/graphics/hud/Big3.png new file mode 100644 index 0000000..ab182bf Binary files /dev/null and b/graphics/hud/Big3.png differ diff --git a/graphics/hud/Big4.png b/graphics/hud/Big4.png new file mode 100644 index 0000000..be2759a Binary files /dev/null and b/graphics/hud/Big4.png differ diff --git a/graphics/hud/Big5.png b/graphics/hud/Big5.png new file mode 100644 index 0000000..9929b06 Binary files /dev/null and b/graphics/hud/Big5.png differ diff --git a/graphics/hud/Big6.png b/graphics/hud/Big6.png new file mode 100644 index 0000000..f730ebb Binary files /dev/null and b/graphics/hud/Big6.png differ diff --git a/graphics/hud/Big7.png b/graphics/hud/Big7.png new file mode 100644 index 0000000..550c11c Binary files /dev/null and b/graphics/hud/Big7.png differ diff --git a/graphics/hud/Big8.png b/graphics/hud/Big8.png new file mode 100644 index 0000000..a6123e5 Binary files /dev/null and b/graphics/hud/Big8.png differ diff --git a/graphics/hud/Big9.png b/graphics/hud/Big9.png new file mode 100644 index 0000000..7221d9b Binary files /dev/null and b/graphics/hud/Big9.png differ diff --git a/graphics/hud/BigColon.png b/graphics/hud/BigColon.png new file mode 100644 index 0000000..e2360af Binary files /dev/null and b/graphics/hud/BigColon.png differ diff --git a/graphics/hud/BigMinus.png b/graphics/hud/BigMinus.png new file mode 100644 index 0000000..aa47aa1 Binary files /dev/null and b/graphics/hud/BigMinus.png differ diff --git a/graphics/hud/FragBox.png b/graphics/hud/FragBox.png new file mode 100644 index 0000000..b6b48c5 Binary files /dev/null and b/graphics/hud/FragBox.png differ diff --git a/graphics/hud/GKey.png b/graphics/hud/GKey.png new file mode 100644 index 0000000..68587d1 Binary files /dev/null and b/graphics/hud/GKey.png differ diff --git a/graphics/hud/GSkul.png b/graphics/hud/GSkul.png new file mode 100644 index 0000000..7fc9799 Binary files /dev/null and b/graphics/hud/GSkul.png differ diff --git a/graphics/hud/HFlash.png b/graphics/hud/HFlash.png new file mode 100644 index 0000000..2903d23 Binary files /dev/null and b/graphics/hud/HFlash.png differ diff --git a/graphics/hud/HPBox.png b/graphics/hud/HPBox.png new file mode 100644 index 0000000..801ece6 Binary files /dev/null and b/graphics/hud/HPBox.png differ diff --git a/graphics/hud/Icon8bal.png b/graphics/hud/Icon8bal.png new file mode 100644 index 0000000..241d7bb Binary files /dev/null and b/graphics/hud/Icon8bal.png differ diff --git a/graphics/hud/IconASMD.png b/graphics/hud/IconASMD.png new file mode 100644 index 0000000..f791160 Binary files /dev/null and b/graphics/hud/IconASMD.png differ diff --git a/graphics/hud/IconAuto.png b/graphics/hud/IconAuto.png new file mode 100644 index 0000000..5551387 Binary files /dev/null and b/graphics/hud/IconAuto.png differ diff --git a/graphics/hud/IconBio.png b/graphics/hud/IconBio.png new file mode 100644 index 0000000..3df8d42 Binary files /dev/null and b/graphics/hud/IconBio.png differ diff --git a/graphics/hud/IconFlak.png b/graphics/hud/IconFlak.png new file mode 100644 index 0000000..ee18dda Binary files /dev/null and b/graphics/hud/IconFlak.png differ diff --git a/graphics/hud/IconImpH.png b/graphics/hud/IconImpH.png new file mode 100644 index 0000000..bf253a4 Binary files /dev/null and b/graphics/hud/IconImpH.png differ diff --git a/graphics/hud/IconMini.png b/graphics/hud/IconMini.png new file mode 100644 index 0000000..d0164b3 Binary files /dev/null and b/graphics/hud/IconMini.png differ diff --git a/graphics/hud/IconPuls.png b/graphics/hud/IconPuls.png new file mode 100644 index 0000000..d1eb345 Binary files /dev/null and b/graphics/hud/IconPuls.png differ diff --git a/graphics/hud/IconRifl.png b/graphics/hud/IconRifl.png new file mode 100644 index 0000000..8068ef1 Binary files /dev/null and b/graphics/hud/IconRifl.png differ diff --git a/graphics/hud/IconRip.png b/graphics/hud/IconRip.png new file mode 100644 index 0000000..9dfc899 Binary files /dev/null and b/graphics/hud/IconRip.png differ diff --git a/graphics/hud/IconSaw.png b/graphics/hud/IconSaw.png new file mode 100644 index 0000000..e78dceb Binary files /dev/null and b/graphics/hud/IconSaw.png differ diff --git a/graphics/hud/IconTrns.png b/graphics/hud/IconTrns.png new file mode 100644 index 0000000..d04dc13 Binary files /dev/null and b/graphics/hud/IconTrns.png differ diff --git a/graphics/hud/IconWarH.png b/graphics/hud/IconWarH.png new file mode 100644 index 0000000..f25e50e Binary files /dev/null and b/graphics/hud/IconWarH.png differ diff --git a/graphics/hud/Man.png b/graphics/hud/Man.png new file mode 100644 index 0000000..e3dd24e Binary files /dev/null and b/graphics/hud/Man.png differ diff --git a/graphics/hud/ManArmo.png b/graphics/hud/ManArmo.png new file mode 100644 index 0000000..b7a0359 Binary files /dev/null and b/graphics/hud/ManArmo.png differ diff --git a/graphics/hud/ManBelt.png b/graphics/hud/ManBelt.png new file mode 100644 index 0000000..ee195c9 Binary files /dev/null and b/graphics/hud/ManBelt.png differ diff --git a/graphics/hud/ManBoot.png b/graphics/hud/ManBoot.png new file mode 100644 index 0000000..bb04d22 Binary files /dev/null and b/graphics/hud/ManBoot.png differ diff --git a/graphics/hud/ManPad.png b/graphics/hud/ManPad.png new file mode 100644 index 0000000..8bd3adb Binary files /dev/null and b/graphics/hud/ManPad.png differ diff --git a/graphics/hud/RKey.png b/graphics/hud/RKey.png new file mode 100644 index 0000000..447fa1a Binary files /dev/null and b/graphics/hud/RKey.png differ diff --git a/graphics/hud/RSkul.png b/graphics/hud/RSkul.png new file mode 100644 index 0000000..314ecbe Binary files /dev/null and b/graphics/hud/RSkul.png differ diff --git a/graphics/hud/Slot8bal.png b/graphics/hud/Slot8bal.png new file mode 100644 index 0000000..dfefa73 Binary files /dev/null and b/graphics/hud/Slot8bal.png differ diff --git a/graphics/hud/SlotASMD.png b/graphics/hud/SlotASMD.png new file mode 100644 index 0000000..b8c3e11 Binary files /dev/null and b/graphics/hud/SlotASMD.png differ diff --git a/graphics/hud/SlotAuto.png b/graphics/hud/SlotAuto.png new file mode 100644 index 0000000..692b223 Binary files /dev/null and b/graphics/hud/SlotAuto.png differ diff --git a/graphics/hud/SlotBio.png b/graphics/hud/SlotBio.png new file mode 100644 index 0000000..9928b80 Binary files /dev/null and b/graphics/hud/SlotBio.png differ diff --git a/graphics/hud/SlotFlak.png b/graphics/hud/SlotFlak.png new file mode 100644 index 0000000..b7c73e2 Binary files /dev/null and b/graphics/hud/SlotFlak.png differ diff --git a/graphics/hud/SlotImp.png b/graphics/hud/SlotImp.png new file mode 100644 index 0000000..830d58f Binary files /dev/null and b/graphics/hud/SlotImp.png differ diff --git a/graphics/hud/SlotMini.png b/graphics/hud/SlotMini.png new file mode 100644 index 0000000..5dddc42 Binary files /dev/null and b/graphics/hud/SlotMini.png differ diff --git a/graphics/hud/SlotPuls.png b/graphics/hud/SlotPuls.png new file mode 100644 index 0000000..976306b Binary files /dev/null and b/graphics/hud/SlotPuls.png differ diff --git a/graphics/hud/SlotRifl.png b/graphics/hud/SlotRifl.png new file mode 100644 index 0000000..a9a1974 Binary files /dev/null and b/graphics/hud/SlotRifl.png differ diff --git a/graphics/hud/SlotRip.png b/graphics/hud/SlotRip.png new file mode 100644 index 0000000..692bd21 Binary files /dev/null and b/graphics/hud/SlotRip.png differ diff --git a/graphics/hud/Use8bal.png b/graphics/hud/Use8bal.png new file mode 100644 index 0000000..9ad8796 Binary files /dev/null and b/graphics/hud/Use8bal.png differ diff --git a/graphics/hud/UseASMD.png b/graphics/hud/UseASMD.png new file mode 100644 index 0000000..d9d548e Binary files /dev/null and b/graphics/hud/UseASMD.png differ diff --git a/graphics/hud/UseAuto.png b/graphics/hud/UseAuto.png new file mode 100644 index 0000000..7202ad5 Binary files /dev/null and b/graphics/hud/UseAuto.png differ diff --git a/graphics/hud/UseBio.png b/graphics/hud/UseBio.png new file mode 100644 index 0000000..6607ed8 Binary files /dev/null and b/graphics/hud/UseBio.png differ diff --git a/graphics/hud/UseFlak.png b/graphics/hud/UseFlak.png new file mode 100644 index 0000000..ddb214c Binary files /dev/null and b/graphics/hud/UseFlak.png differ diff --git a/graphics/hud/UseImpH.png b/graphics/hud/UseImpH.png new file mode 100644 index 0000000..8e29f1f Binary files /dev/null and b/graphics/hud/UseImpH.png differ diff --git a/graphics/hud/UseMini.png b/graphics/hud/UseMini.png new file mode 100644 index 0000000..8b5bba2 Binary files /dev/null and b/graphics/hud/UseMini.png differ diff --git a/graphics/hud/UsePuls.png b/graphics/hud/UsePuls.png new file mode 100644 index 0000000..aff6eea Binary files /dev/null and b/graphics/hud/UsePuls.png differ diff --git a/graphics/hud/UseRifl.png b/graphics/hud/UseRifl.png new file mode 100644 index 0000000..def352c Binary files /dev/null and b/graphics/hud/UseRifl.png differ diff --git a/graphics/hud/UseRip.png b/graphics/hud/UseRip.png new file mode 100644 index 0000000..b5a30cd Binary files /dev/null and b/graphics/hud/UseRip.png differ diff --git a/graphics/hud/UseSaw.png b/graphics/hud/UseSaw.png new file mode 100644 index 0000000..7ec8b14 Binary files /dev/null and b/graphics/hud/UseSaw.png differ diff --git a/graphics/hud/UseTrns.png b/graphics/hud/UseTrns.png new file mode 100644 index 0000000..153d255 Binary files /dev/null and b/graphics/hud/UseTrns.png differ diff --git a/graphics/hud/UseWarH.png b/graphics/hud/UseWarH.png new file mode 100644 index 0000000..74b5af9 Binary files /dev/null and b/graphics/hud/UseWarH.png differ diff --git a/graphics/hud/Woman.png b/graphics/hud/Woman.png new file mode 100644 index 0000000..07181bd Binary files /dev/null and b/graphics/hud/Woman.png differ diff --git a/graphics/hud/WomanArm.png b/graphics/hud/WomanArm.png new file mode 100644 index 0000000..d8ba27d Binary files /dev/null and b/graphics/hud/WomanArm.png differ diff --git a/graphics/hud/WomanBlt.png b/graphics/hud/WomanBlt.png new file mode 100644 index 0000000..cc095b1 Binary files /dev/null and b/graphics/hud/WomanBlt.png differ diff --git a/graphics/hud/WomanBot.png b/graphics/hud/WomanBot.png new file mode 100644 index 0000000..4ab8aba Binary files /dev/null and b/graphics/hud/WomanBot.png differ diff --git a/graphics/hud/WomanPad.png b/graphics/hud/WomanPad.png new file mode 100644 index 0000000..8a00bbf Binary files /dev/null and b/graphics/hud/WomanPad.png differ diff --git a/graphics/hud/WpSel.png b/graphics/hud/WpSel.png new file mode 100644 index 0000000..6374524 Binary files /dev/null and b/graphics/hud/WpSel.png differ diff --git a/graphics/impactcrack.tga b/graphics/impactcrack.tga new file mode 100644 index 0000000..0e8bc56 Binary files /dev/null and b/graphics/impactcrack.tga differ diff --git a/graphics/pock0_t.tga b/graphics/pock0_t.tga new file mode 100644 index 0000000..046da9e Binary files /dev/null and b/graphics/pock0_t.tga differ diff --git a/graphics/pock2_t.tga b/graphics/pock2_t.tga new file mode 100644 index 0000000..8603e63 Binary files /dev/null and b/graphics/pock2_t.tga differ diff --git a/graphics/pock4_t.tga b/graphics/pock4_t.tga new file mode 100644 index 0000000..366cab0 Binary files /dev/null and b/graphics/pock4_t.tga differ diff --git a/graphics/ripperblast.tga b/graphics/ripperblast.tga new file mode 100644 index 0000000..bb70715 Binary files /dev/null and b/graphics/ripperblast.tga differ diff --git a/modeldef.txt b/modeldef.txt index ef06a9a..61ac2c7 100644 --- a/modeldef.txt +++ b/modeldef.txt @@ -253,6 +253,107 @@ Model "UTBlueKey" FrameIndex UKEY C 0 0 } +Model "UTBackpack" +{ + Path "models" + Model 0 "Backpack2_d.3d" // cheaply edited out of SelectionMale1 (offsets weren't even readjusted) + Skin 0 "bpak.png" + Offset -20 12 -16 + Scale -0.36 0.3 0.3 + ROTATING + + FrameIndex BPAK A 0 0 +} + +Model "UTInvisibility" +{ + Path "models" + Model 0 "invis2M_d.3d" + SurfaceSkin 0 0 "jinvis.png" + Scale -0.12 0.1 0.1 + PitchOffset 90 + ZOffset 9 + + FrameIndex INVS A 0 0 +} +Model "UTInvisibilityX" +{ + Path "models" + Model 0 "invis2M_d.3d" + SurfaceSkin 0 1 "invis00" + Scale -0.12 0.1 0.1 + PitchOffset 90 + ZOffset 9 + + FrameIndex INVS A 0 0 +} + +Model "UTMapRevealer" +{ + Path "models" + Model 0 "TranslatorMesh_d.3d" + Skin 0 "JTranslator1.png" + Scale -0.096 0.08 0.08 + PitchOffset 90 + ZOffset 4 + + FrameIndex TRNS A 0 0 +} + +Model "ShieldingSuit" +{ + Path "models" + Model 0 "ToxSuit_d.3d" + Skin 0 "ShieldSuit.png" + Scale -0.12 0.12 0.134 + PitchOffset 180 + ZOffset 24 + ROTATING + + FrameIndex SSUT A 0 0 +} + +Model "Searchlight" +{ + Path "models" + Model 0 "BigFlash_d.3d" + Skin 0 "JBigFlash1.png" + Scale -0.084 0.084 0.07 + PitchOffset 90 + AngleOffset 180 + ZOffset 9 + + FrameIndex SLIT A 0 0 +} + +//============================================================================= +// IMPACT HAMMER +//============================================================================= + +//============================================================================= +// CHAINSAW +//============================================================================= + +//============================================================================= +// TRANSLOCATOR +//============================================================================= + +//============================================================================= +// ENFORCER +//============================================================================= + +Model "EClip" +{ + Path "models" + Model 0 "EClipM_d.3d" + Skin 0 "JEClip.png" + Scale -0.0864 0.072 0.072 + PitchOffset 90 + ZOffset 2.5 + + FrameIndex ECLP A 0 0 +} + //============================================================================= // GES BIORIFLE //============================================================================= @@ -524,7 +625,6 @@ Model "BioRifle" PitchOffset 94.21875 Scale 0.125 0.06 0.125 Offset 9.8 -17.6 -10.4 - INTERPOLATEDOUBLEDFRAMES // select FrameIndex BIOS A 0 0 @@ -626,6 +726,18 @@ Model "ShockAmmo" FrameIndex SHOA A 0 0 } +Model "EnhancedShockAmmo" +{ + Path "models" + Model 0 "ShockCoreM_d.3d" + Skin 0 "JSShockCore.png" + PitchOffset 90 + Scale -0.132 0.11 0.11 + ZOffset 12 + + FrameIndex SHOA A 0 0 +} + Model "ShockRifleWave" { Path "models" @@ -636,6 +748,16 @@ Model "ShockRifleWave" FrameIndex SWAV B 0 1 } +Model "SuperShockRifleWave" +{ + Path "models" + Model 0 "shockrwm_d.3d" + Skin 0 "sshocktt1.png" + + FrameIndex SWAV A 0 0 + FrameIndex SWAV B 0 1 +} + Model "ShockBeamRing" { Path "models" @@ -644,7 +766,28 @@ Model "ShockBeamRing" DONTCULLBACKFACES USEACTORPITCH USEACTORROLL - Scale 1.2 1.0 1.2 + Scale 1.2 1.0 1.0 + + FrameIndex SRNG A 0 0 + FrameIndex SRNG B 0 1 + FrameIndex SRNG C 0 2 + FrameIndex SRNG D 0 3 + FrameIndex SRNG E 0 4 + FrameIndex SRNG F 0 5 + FrameIndex SRNG G 0 6 + FrameIndex SRNG H 0 7 + FrameIndex SRNG I 0 8 +} + +Model "SuperShockBeamRing" +{ + Path "models" + Model 0 "utringex_d.3d" + Skin 0 "ASasRing.png" + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + Scale 1.2 1.0 1.0 FrameIndex SRNG A 0 0 FrameIndex SRNG B 0 1 @@ -665,7 +808,28 @@ Model "ShockBlastRing" DONTCULLBACKFACES USEACTORPITCH USEACTORROLL - Scale 1.2 1.0 1.2 + Scale 1.2 1.0 1.0 + + FrameIndex SRNG A 0 0 + FrameIndex SRNG B 0 1 + FrameIndex SRNG C 0 2 + FrameIndex SRNG D 0 3 + FrameIndex SRNG E 0 4 + FrameIndex SRNG F 0 5 + FrameIndex SRNG G 0 6 + FrameIndex SRNG H 0 7 + FrameIndex SRNG I 0 8 +} + +Model "SuperShockBlastRing" +{ + Path "models" + Model 0 "utringex_d.3d" + Skin 0 "ASasRing.png" + DONTCULLBACKFACES + USEACTORPITCH + USEACTORROLL + Scale 1.2 1.0 1.0 FrameIndex SRNG A 0 0 FrameIndex SRNG B 0 1 @@ -767,6 +931,95 @@ Model "ShockRifle" FrameIndex ASMA J 0 49 } +Model "EnhancedShockRifle" +{ + Path "models" + Model 1 "asmd2pick_d.3d" + Skin 1 "sasmd_t.png" + AngleOffset 270 + PitchOffset 90 + Scale -0.14 0.18 0.14 + ZOffset 12 + ROTATING + + FrameIndex ASMP A 1 0 +} +Model "EnhancedShockRifle" +{ + Path "models" + Model 1 "asmd2pick_d.3d" + Skin 1 "sasmd_t.png" + AngleOffset 270 + PitchOffset 90 + Scale -0.14 0.18 0.14 + ZOffset 12 + + FrameIndex ASMP B 1 0 +} + +Model "EnhancedShockRifle" +{ + Path "models" + Model 0 "asmd2m_d.3d" + SurfaceSkin 0 0 "sasmd_t1.png" + SurfaceSkin 0 1 "sasmd_t2.png" + SurfaceSkin 0 2 "sasmd_t3.png" + SurfaceSkin 0 3 "sasmd_t3.png" + SurfaceSkin 0 4 "sasmd_t4.png" + PitchOffset 90 + Scale 0.15 0.12 0.15 + Offset 4.9 -16.6 -7.1 + + // select + FrameIndex ASMS A 0 0 + FrameIndex ASMS B 0 1 + FrameIndex ASMS C 0 2 + FrameIndex ASMS D 0 3 + FrameIndex ASMS E 0 4 + FrameIndex ASMS F 0 5 + FrameIndex ASMS G 0 6 + FrameIndex ASMS H 0 7 + FrameIndex ASMS I 0 8 + FrameIndex ASMS J 0 9 + FrameIndex ASMS K 0 10 + FrameIndex ASMS L 0 11 + FrameIndex ASMS M 0 12 + FrameIndex ASMS N 0 13 + FrameIndex ASMS O 0 14 + // idle + FrameIndex ASMI A 0 15 + // deselect + FrameIndex ASMD A 0 17 + FrameIndex ASMD B 0 18 + FrameIndex ASMD C 0 19 + FrameIndex ASMD D 0 20 + FrameIndex ASMD E 0 21 + FrameIndex ASMD F 0 22 + FrameIndex ASMD G 0 23 + // fire + FrameIndex ASMF A 0 30 + FrameIndex ASMF B 0 31 + FrameIndex ASMF C 0 32 + FrameIndex ASMF D 0 33 + FrameIndex ASMF E 0 34 + FrameIndex ASMF F 0 35 + FrameIndex ASMF G 0 36 + FrameIndex ASMF H 0 37 + FrameIndex ASMF I 0 38 + FrameIndex ASMF J 0 39 + // altfire + FrameIndex ASMA A 0 40 + FrameIndex ASMA B 0 41 + FrameIndex ASMA C 0 42 + FrameIndex ASMA D 0 43 + FrameIndex ASMA E 0 44 + FrameIndex ASMA F 0 45 + FrameIndex ASMA G 0 46 + FrameIndex ASMA H 0 47 + FrameIndex ASMA I 0 48 + FrameIndex ASMA J 0 49 +} + //============================================================================= // PULSE GUN //============================================================================= @@ -1026,6 +1279,40 @@ Model "PulseGun" FrameIndex PGF2 N 0 254 } +//============================================================================= +// RIPPER +//============================================================================= + +Model "RipperAmmo" +{ + Path "models" + Model 0 "BladeHopperM_d.3d" + Skin 0 "BladeHopperT.png" + PitchOffset 90 + Scale -0.12 0.1 0.1 + ZOffset 10 + + FrameIndex BHOP A 0 0 +} + +//============================================================================= +// MINIGUN +//============================================================================= + +Model "MiniAmmo" +{ + + Path "models" + Model 0 "MiniAmmom_d.3d" + Skin 0 "JM21.png" + Offset 2 0 8 + PitchOffset 90 + AngleOffset 90 + Scale 0.12 -0.134 0.12 + + FrameIndex MAMO A 0 0 +} + //============================================================================= // FLAK CANNON //============================================================================= @@ -1785,9 +2072,66 @@ Model "FlakCannon" FrameIndex FLKD J 0 91 } +//============================================================================= +// ROCKET LAUNCHER +//============================================================================= + +Model "UTRocketAmmo" +{ + Path "models" + Model 0 "RocketPackMesh_d.3d" + Skin 0 "JRocketPack1.png" + Scale 0.072 -0.0864 0.072 + AngleOffset 270 + ZOffset 6 + + FrameIndex RPAK A 0 0 +} + +Model "UTRocketAmmo2" +{ + Path "models" + Model 0 "UTRocket_d.3d" + Skin 0 "JuRocket1_.png" + Scale -0.0822 0.0685 0.07 + ZOffset 6 + + FrameIndex RCKT A 0 0 +} + +//============================================================================= +// SNIPER RIFLE +//============================================================================= + +Model "RifleAmmo" +{ + Path "models" + Model 0 "BulletBoxM_d.3d" + Skin 0 "BulletBoxT.png" + Scale -0.084 0.07 0.07 + PitchOffset 90 + AngleOffset 180 + ZOffset 3 + + FrameIndex SBOX A 0 0 +} + +Model "RifleAmmo2" +{ + Path "models" + Model 0 "RifleRoundM_d.3d" + Skin 0 "RifleR1.png" + Scale -0.024 0.02 0.02 + PitchOffset 90 + ZOffset 4 + + FrameIndex SRND A 0 0 +} + //============================================================================= // REDEEMER //============================================================================= + Model "WarheadAmmo" { Path "models" diff --git a/models/ASasRing.png b/models/ASasRing.png new file mode 100644 index 0000000..dc25590 Binary files /dev/null and b/models/ASasRing.png differ diff --git a/models/AToxSuit1.png b/models/AToxSuit1.png deleted file mode 100644 index b6ff333..0000000 Binary files a/models/AToxSuit1.png and /dev/null differ diff --git a/models/AutoML_a.3d b/models/AutoML_a.3d new file mode 100644 index 0000000..cebf94b Binary files /dev/null and b/models/AutoML_a.3d differ diff --git a/models/AutoML_d.3d b/models/AutoML_d.3d new file mode 100644 index 0000000..e7478e0 Binary files /dev/null and b/models/AutoML_d.3d differ diff --git a/models/AutoMR_a.3d b/models/AutoMR_a.3d new file mode 100644 index 0000000..e4c258c Binary files /dev/null and b/models/AutoMR_a.3d differ diff --git a/models/AutoMR_d.3d b/models/AutoMR_d.3d new file mode 100644 index 0000000..e5be9bf Binary files /dev/null and b/models/AutoMR_d.3d differ diff --git a/models/Backpack2_a.3d b/models/Backpack2_a.3d new file mode 100644 index 0000000..dfc4172 Binary files /dev/null and b/models/Backpack2_a.3d differ diff --git a/models/Backpack2_d.3d b/models/Backpack2_d.3d new file mode 100644 index 0000000..8928716 Binary files /dev/null and b/models/Backpack2_d.3d differ diff --git a/models/BigFlash_a.3d b/models/BigFlash_a.3d new file mode 100644 index 0000000..9d152ec Binary files /dev/null and b/models/BigFlash_a.3d differ diff --git a/models/BigFlash_d.3d b/models/BigFlash_d.3d new file mode 100644 index 0000000..afb24e5 Binary files /dev/null and b/models/BigFlash_d.3d differ diff --git a/models/BladeHopperM_a.3d b/models/BladeHopperM_a.3d new file mode 100644 index 0000000..fc8b826 Binary files /dev/null and b/models/BladeHopperM_a.3d differ diff --git a/models/BladeHopperM_d.3d b/models/BladeHopperM_d.3d new file mode 100644 index 0000000..470cd30 Binary files /dev/null and b/models/BladeHopperM_d.3d differ diff --git a/models/BladeHopperT.png b/models/BladeHopperT.png new file mode 100644 index 0000000..dbf0700 Binary files /dev/null and b/models/BladeHopperT.png differ diff --git a/models/BulletBoxM_a.3d b/models/BulletBoxM_a.3d new file mode 100644 index 0000000..2d2f980 Binary files /dev/null and b/models/BulletBoxM_a.3d differ diff --git a/models/BulletBoxM_d.3d b/models/BulletBoxM_d.3d new file mode 100644 index 0000000..9e46f8b Binary files /dev/null and b/models/BulletBoxM_d.3d differ diff --git a/models/BulletBoxT.png b/models/BulletBoxT.png new file mode 100644 index 0000000..ee16f22 Binary files /dev/null and b/models/BulletBoxT.png differ diff --git a/models/ChainSawPick_a.3d b/models/ChainSawPick_a.3d new file mode 100644 index 0000000..5ab91de Binary files /dev/null and b/models/ChainSawPick_a.3d differ diff --git a/models/ChainSawPick_d.3d b/models/ChainSawPick_d.3d new file mode 100644 index 0000000..6416940 Binary files /dev/null and b/models/ChainSawPick_d.3d differ diff --git a/models/EClipM_a.3d b/models/EClipM_a.3d new file mode 100644 index 0000000..da14e6c Binary files /dev/null and b/models/EClipM_a.3d differ diff --git a/models/EClipM_d.3d b/models/EClipM_d.3d new file mode 100644 index 0000000..410a065 Binary files /dev/null and b/models/EClipM_d.3d differ diff --git a/models/Eight2Pick_a.3d b/models/Eight2Pick_a.3d new file mode 100644 index 0000000..8a1f4a1 Binary files /dev/null and b/models/Eight2Pick_a.3d differ diff --git a/models/Eight2Pick_d.3d b/models/Eight2Pick_d.3d new file mode 100644 index 0000000..cd57c5e Binary files /dev/null and b/models/Eight2Pick_d.3d differ diff --git a/models/Eight_t.png b/models/Eight_t.png new file mode 100644 index 0000000..eafa344 Binary files /dev/null and b/models/Eight_t.png differ diff --git a/models/Eight_t1.png b/models/Eight_t1.png new file mode 100644 index 0000000..d2b4343 Binary files /dev/null and b/models/Eight_t1.png differ diff --git a/models/Eight_t2.png b/models/Eight_t2.png new file mode 100644 index 0000000..6bcd266 Binary files /dev/null and b/models/Eight_t2.png differ diff --git a/models/Eight_t3.png b/models/Eight_t3.png new file mode 100644 index 0000000..459ad54 Binary files /dev/null and b/models/Eight_t3.png differ diff --git a/models/Eight_t4.png b/models/Eight_t4.png new file mode 100644 index 0000000..73481d4 Binary files /dev/null and b/models/Eight_t4.png differ diff --git a/models/Eightm_a.3d b/models/Eightm_a.3d new file mode 100644 index 0000000..a8610fc Binary files /dev/null and b/models/Eightm_a.3d differ diff --git a/models/Eightm_d.3d b/models/Eightm_d.3d new file mode 100644 index 0000000..8d3d51e Binary files /dev/null and b/models/Eightm_d.3d differ diff --git a/models/JBigFlash1.png b/models/JBigFlash1.png new file mode 100644 index 0000000..ee3cb1c Binary files /dev/null and b/models/JBigFlash1.png differ diff --git a/models/JChainSawPick1.png b/models/JChainSawPick1.png new file mode 100644 index 0000000..b9d85de Binary files /dev/null and b/models/JChainSawPick1.png differ diff --git a/models/JEClip.png b/models/JEClip.png new file mode 100644 index 0000000..9472b4c Binary files /dev/null and b/models/JEClip.png differ diff --git a/models/JImpPick1.png b/models/JImpPick1.png new file mode 100644 index 0000000..81ec617 Binary files /dev/null and b/models/JImpPick1.png differ diff --git a/models/JImpactHammer1.png b/models/JImpactHammer1.png new file mode 100644 index 0000000..b181813 Binary files /dev/null and b/models/JImpactHammer1.png differ diff --git a/models/JImpactHammer2.png b/models/JImpactHammer2.png new file mode 100644 index 0000000..9dd8a21 Binary files /dev/null and b/models/JImpactHammer2.png differ diff --git a/models/JImpactHammer3.png b/models/JImpactHammer3.png new file mode 100644 index 0000000..4367c98 Binary files /dev/null and b/models/JImpactHammer3.png differ diff --git a/models/JImpactHammer4.png b/models/JImpactHammer4.png new file mode 100644 index 0000000..2e14f56 Binary files /dev/null and b/models/JImpactHammer4.png differ diff --git a/models/JM21.png b/models/JM21.png new file mode 100644 index 0000000..8c59f3f Binary files /dev/null and b/models/JM21.png differ diff --git a/models/JRazor2.png b/models/JRazor2.png new file mode 100644 index 0000000..18fec06 Binary files /dev/null and b/models/JRazor2.png differ diff --git a/models/JRazor3.png b/models/JRazor3.png new file mode 100644 index 0000000..3622368 Binary files /dev/null and b/models/JRazor3.png differ diff --git a/models/JRazor4.png b/models/JRazor4.png new file mode 100644 index 0000000..f6322dc Binary files /dev/null and b/models/JRazor4.png differ diff --git a/models/JRazor5.png b/models/JRazor5.png new file mode 100644 index 0000000..f2bdd6e Binary files /dev/null and b/models/JRazor5.png differ diff --git a/models/JRazorw.png b/models/JRazorw.png new file mode 100644 index 0000000..c99521b Binary files /dev/null and b/models/JRazorw.png differ diff --git a/models/JRifle2.png b/models/JRifle2.png new file mode 100644 index 0000000..ed9009b Binary files /dev/null and b/models/JRifle2.png differ diff --git a/models/JRocketPack1.png b/models/JRocketPack1.png new file mode 100644 index 0000000..485874c Binary files /dev/null and b/models/JRocketPack1.png differ diff --git a/models/JSShockCore.png b/models/JSShockCore.png new file mode 100644 index 0000000..d4ce869 Binary files /dev/null and b/models/JSShockCore.png differ diff --git a/models/JTranslator1.png b/models/JTranslator1.png new file mode 100644 index 0000000..f72c4f4 Binary files /dev/null and b/models/JTranslator1.png differ diff --git a/models/JUT_Tracer_01.png b/models/JUT_Tracer_01.png new file mode 100644 index 0000000..1b06499 Binary files /dev/null and b/models/JUT_Tracer_01.png differ diff --git a/models/Jautot1.png b/models/Jautot1.png new file mode 100644 index 0000000..5c51472 Binary files /dev/null and b/models/Jautot1.png differ diff --git a/models/Jchainsaw1.png b/models/Jchainsaw1.png new file mode 100644 index 0000000..17a5864 Binary files /dev/null and b/models/Jchainsaw1.png differ diff --git a/models/Jchainsaw2.png b/models/Jchainsaw2.png new file mode 100644 index 0000000..9db62bd Binary files /dev/null and b/models/Jchainsaw2.png differ diff --git a/models/Jchainsaw3.png b/models/Jchainsaw3.png new file mode 100644 index 0000000..b825c17 Binary files /dev/null and b/models/Jchainsaw3.png differ diff --git a/models/Jchainsaw4.png b/models/Jchainsaw4.png new file mode 100644 index 0000000..6ee4850 Binary files /dev/null and b/models/Jchainsaw4.png differ diff --git a/models/Jtutot1.png b/models/Jtutot1.png new file mode 100644 index 0000000..5b0fc65 Binary files /dev/null and b/models/Jtutot1.png differ diff --git a/models/Jtutot2.png b/models/Jtutot2.png new file mode 100644 index 0000000..21ddc5a Binary files /dev/null and b/models/Jtutot2.png differ diff --git a/models/Jtutot3.png b/models/Jtutot3.png new file mode 100644 index 0000000..4502c09 Binary files /dev/null and b/models/Jtutot3.png differ diff --git a/models/Jtutot4.png b/models/Jtutot4.png new file mode 100644 index 0000000..3abca80 Binary files /dev/null and b/models/Jtutot4.png differ diff --git a/models/JuRocket1.png b/models/JuRocket1.png new file mode 100644 index 0000000..2ad01b4 Binary files /dev/null and b/models/JuRocket1.png differ diff --git a/models/JuRocket1_.png b/models/JuRocket1_.png new file mode 100644 index 0000000..2ad01b4 Binary files /dev/null and b/models/JuRocket1_.png differ diff --git a/models/MagPick_a.3d b/models/MagPick_a.3d new file mode 100644 index 0000000..e6e3651 Binary files /dev/null and b/models/MagPick_a.3d differ diff --git a/models/MagPick_d.3d b/models/MagPick_d.3d new file mode 100644 index 0000000..115f118 Binary files /dev/null and b/models/MagPick_d.3d differ diff --git a/models/MiniAmmom_a.3d b/models/MiniAmmom_a.3d new file mode 100644 index 0000000..360460a Binary files /dev/null and b/models/MiniAmmom_a.3d differ diff --git a/models/MiniAmmom_d.3d b/models/MiniAmmom_d.3d new file mode 100644 index 0000000..39b465f Binary files /dev/null and b/models/MiniAmmom_d.3d differ diff --git a/models/MiniTrace_a.3d b/models/MiniTrace_a.3d new file mode 100644 index 0000000..d8fb750 Binary files /dev/null and b/models/MiniTrace_a.3d differ diff --git a/models/MiniTrace_d.3d b/models/MiniTrace_d.3d new file mode 100644 index 0000000..a79c7d6 Binary files /dev/null and b/models/MiniTrace_d.3d differ diff --git a/models/Mini_t.png b/models/Mini_t.png new file mode 100644 index 0000000..672593d Binary files /dev/null and b/models/Mini_t.png differ diff --git a/models/Mini_t1.png b/models/Mini_t1.png new file mode 100644 index 0000000..8898ef6 Binary files /dev/null and b/models/Mini_t1.png differ diff --git a/models/Mini_t2.png b/models/Mini_t2.png new file mode 100644 index 0000000..d797759 Binary files /dev/null and b/models/Mini_t2.png differ diff --git a/models/Mini_t3.png b/models/Mini_t3.png new file mode 100644 index 0000000..9f37b6a Binary files /dev/null and b/models/Mini_t3.png differ diff --git a/models/Mini_t4.png b/models/Mini_t4.png new file mode 100644 index 0000000..684e5c8 Binary files /dev/null and b/models/Mini_t4.png differ diff --git a/models/Minigun2m_a.3d b/models/Minigun2m_a.3d new file mode 100644 index 0000000..6be862e Binary files /dev/null and b/models/Minigun2m_a.3d differ diff --git a/models/Minigun2m_d.3d b/models/Minigun2m_d.3d new file mode 100644 index 0000000..486f54f Binary files /dev/null and b/models/Minigun2m_d.3d differ diff --git a/models/MinigunPick_a.3d b/models/MinigunPick_a.3d new file mode 100644 index 0000000..a79bfb2 Binary files /dev/null and b/models/MinigunPick_a.3d differ diff --git a/models/MinigunPick_d.3d b/models/MinigunPick_d.3d new file mode 100644 index 0000000..62528ba Binary files /dev/null and b/models/MinigunPick_d.3d differ diff --git a/models/Module_a.3d b/models/Module_a.3d new file mode 100644 index 0000000..d221858 Binary files /dev/null and b/models/Module_a.3d differ diff --git a/models/Module_d.3d b/models/Module_d.3d new file mode 100644 index 0000000..8f1b0cf Binary files /dev/null and b/models/Module_d.3d differ diff --git a/models/RazPick2_a.3d b/models/RazPick2_a.3d new file mode 100644 index 0000000..4b0d21f Binary files /dev/null and b/models/RazPick2_a.3d differ diff --git a/models/RazPick2_d.3d b/models/RazPick2_d.3d new file mode 100644 index 0000000..cacee39 Binary files /dev/null and b/models/RazPick2_d.3d differ diff --git a/models/RazSkin.png b/models/RazSkin.png new file mode 100644 index 0000000..2b64708 Binary files /dev/null and b/models/RazSkin.png differ diff --git a/models/RazTrail.png b/models/RazTrail.png new file mode 100644 index 0000000..494ef94 Binary files /dev/null and b/models/RazTrail.png differ diff --git a/models/Razor2_a.3d b/models/Razor2_a.3d new file mode 100644 index 0000000..f6ecd98 Binary files /dev/null and b/models/Razor2_a.3d differ diff --git a/models/Razor2_d.3d b/models/Razor2_d.3d new file mode 100644 index 0000000..2cdee43 Binary files /dev/null and b/models/Razor2_d.3d differ diff --git a/models/RazorBlade_a.3d b/models/RazorBlade_a.3d new file mode 100644 index 0000000..0f0c6d2 Binary files /dev/null and b/models/RazorBlade_a.3d differ diff --git a/models/RazorBlade_d.3d b/models/RazorBlade_d.3d new file mode 100644 index 0000000..3e60aa9 Binary files /dev/null and b/models/RazorBlade_d.3d differ diff --git a/models/Rifle2a.png b/models/Rifle2a.png new file mode 100644 index 0000000..fbcf033 Binary files /dev/null and b/models/Rifle2a.png differ diff --git a/models/Rifle2b.png b/models/Rifle2b.png new file mode 100644 index 0000000..fff42d1 Binary files /dev/null and b/models/Rifle2b.png differ diff --git a/models/Rifle2c.png b/models/Rifle2c.png new file mode 100644 index 0000000..feae76e Binary files /dev/null and b/models/Rifle2c.png differ diff --git a/models/Rifle2d.png b/models/Rifle2d.png new file mode 100644 index 0000000..bc5de07 Binary files /dev/null and b/models/Rifle2d.png differ diff --git a/models/Rifle2m_a.3d b/models/Rifle2m_a.3d new file mode 100644 index 0000000..851e991 Binary files /dev/null and b/models/Rifle2m_a.3d differ diff --git a/models/Rifle2m_d.3d b/models/Rifle2m_d.3d new file mode 100644 index 0000000..74cc9b7 Binary files /dev/null and b/models/Rifle2m_d.3d differ diff --git a/models/RiflePick_a.3d b/models/RiflePick_a.3d new file mode 100644 index 0000000..d7e6176 Binary files /dev/null and b/models/RiflePick_a.3d differ diff --git a/models/RiflePick_d.3d b/models/RiflePick_d.3d new file mode 100644 index 0000000..301319e Binary files /dev/null and b/models/RiflePick_d.3d differ diff --git a/models/RifleR1.png b/models/RifleR1.png new file mode 100644 index 0000000..8b1f7e8 Binary files /dev/null and b/models/RifleR1.png differ diff --git a/models/RifleRoundM_a.3d b/models/RifleRoundM_a.3d new file mode 100644 index 0000000..3af94fd Binary files /dev/null and b/models/RifleRoundM_a.3d differ diff --git a/models/RifleRoundM_d.3d b/models/RifleRoundM_d.3d new file mode 100644 index 0000000..efb9505 Binary files /dev/null and b/models/RifleRoundM_d.3d differ diff --git a/models/RocketPackMesh_a.3d b/models/RocketPackMesh_a.3d new file mode 100644 index 0000000..2985c77 Binary files /dev/null and b/models/RocketPackMesh_a.3d differ diff --git a/models/RocketPackMesh_d.3d b/models/RocketPackMesh_d.3d new file mode 100644 index 0000000..55b98ad Binary files /dev/null and b/models/RocketPackMesh_d.3d differ diff --git a/models/SASMD_t.png b/models/SASMD_t.png new file mode 100644 index 0000000..54b0417 Binary files /dev/null and b/models/SASMD_t.png differ diff --git a/models/SASMD_t1.png b/models/SASMD_t1.png new file mode 100644 index 0000000..380e8ee Binary files /dev/null and b/models/SASMD_t1.png differ diff --git a/models/SASMD_t2.png b/models/SASMD_t2.png new file mode 100644 index 0000000..5351691 Binary files /dev/null and b/models/SASMD_t2.png differ diff --git a/models/SASMD_t3.png b/models/SASMD_t3.png new file mode 100644 index 0000000..a33a5f5 Binary files /dev/null and b/models/SASMD_t3.png differ diff --git a/models/SASMD_t4.png b/models/SASMD_t4.png new file mode 100644 index 0000000..b709d8f Binary files /dev/null and b/models/SASMD_t4.png differ diff --git a/models/SShocktT1.png b/models/SShocktT1.png new file mode 100644 index 0000000..7fd1037 Binary files /dev/null and b/models/SShocktT1.png differ diff --git a/models/Shellc_a.3d b/models/Shellc_a.3d new file mode 100644 index 0000000..4c345ee Binary files /dev/null and b/models/Shellc_a.3d differ diff --git a/models/Shellc_d.3d b/models/Shellc_d.3d new file mode 100644 index 0000000..65b433a Binary files /dev/null and b/models/Shellc_d.3d differ diff --git a/models/Shellcase1.png b/models/Shellcase1.png new file mode 100644 index 0000000..8b57970 Binary files /dev/null and b/models/Shellcase1.png differ diff --git a/models/ShieldSuit.png b/models/ShieldSuit.png new file mode 100644 index 0000000..7cd843c Binary files /dev/null and b/models/ShieldSuit.png differ diff --git a/models/Trans3loc_a.3d b/models/Trans3loc_a.3d new file mode 100644 index 0000000..8c86bcb Binary files /dev/null and b/models/Trans3loc_a.3d differ diff --git a/models/Trans3loc_d.3d b/models/Trans3loc_d.3d new file mode 100644 index 0000000..be1fe8b Binary files /dev/null and b/models/Trans3loc_d.3d differ diff --git a/models/TranslatorMesh_a.3d b/models/TranslatorMesh_a.3d new file mode 100644 index 0000000..ca8e876 Binary files /dev/null and b/models/TranslatorMesh_a.3d differ diff --git a/models/TranslatorMesh_d.3d b/models/TranslatorMesh_d.3d new file mode 100644 index 0000000..c4113b1 Binary files /dev/null and b/models/TranslatorMesh_d.3d differ diff --git a/models/Transloc_a.3d b/models/Transloc_a.3d new file mode 100644 index 0000000..a2fc0d7 Binary files /dev/null and b/models/Transloc_a.3d differ diff --git a/models/Transloc_d.3d b/models/Transloc_d.3d new file mode 100644 index 0000000..fca918c Binary files /dev/null and b/models/Transloc_d.3d differ diff --git a/models/UTRocket_a.3d b/models/UTRocket_a.3d new file mode 100644 index 0000000..cde9a7d Binary files /dev/null and b/models/UTRocket_a.3d differ diff --git a/models/UTRocket_d.3d b/models/UTRocket_d.3d new file mode 100644 index 0000000..3bcf43c Binary files /dev/null and b/models/UTRocket_d.3d differ diff --git a/models/bpak.png b/models/bpak.png new file mode 100644 index 0000000..90e2dc5 Binary files /dev/null and b/models/bpak.png differ diff --git a/models/chainsawM_a.3d b/models/chainsawM_a.3d new file mode 100644 index 0000000..27244c1 Binary files /dev/null and b/models/chainsawM_a.3d differ diff --git a/models/chainsawM_d.3d b/models/chainsawM_d.3d new file mode 100644 index 0000000..2a0b39c Binary files /dev/null and b/models/chainsawM_d.3d differ diff --git a/models/invis2M_a.3d b/models/invis2M_a.3d new file mode 100644 index 0000000..c78c52f Binary files /dev/null and b/models/invis2M_a.3d differ diff --git a/models/invis2M_d.3d b/models/invis2M_d.3d new file mode 100644 index 0000000..6005be7 Binary files /dev/null and b/models/invis2M_d.3d differ diff --git a/models/jboot_a.3d b/models/jboot_a.3d new file mode 100644 index 0000000..933790e Binary files /dev/null and b/models/jboot_a.3d differ diff --git a/models/jboot_d.3d b/models/jboot_d.3d new file mode 100644 index 0000000..88b4a6e Binary files /dev/null and b/models/jboot_d.3d differ diff --git a/models/miniammoledbase.png b/models/miniammoledbase.png new file mode 100644 index 0000000..70a1f24 Binary files /dev/null and b/models/miniammoledbase.png differ diff --git a/models/tloc1.png b/models/tloc1.png new file mode 100644 index 0000000..1fe26e8 Binary files /dev/null and b/models/tloc1.png differ diff --git a/models/tloc1_.png b/models/tloc1_.png new file mode 100644 index 0000000..68138ff Binary files /dev/null and b/models/tloc1_.png differ diff --git a/models/tloc2.png b/models/tloc2.png new file mode 100644 index 0000000..ae1e830 Binary files /dev/null and b/models/tloc2.png differ diff --git a/models/tloc3.png b/models/tloc3.png new file mode 100644 index 0000000..fc8d4ba Binary files /dev/null and b/models/tloc3.png differ diff --git a/models/tloc4.png b/models/tloc4.png new file mode 100644 index 0000000..2736bfe Binary files /dev/null and b/models/tloc4.png differ diff --git a/readme.txt b/readme.txt index 2f29d54..e7f0eec 100644 --- a/readme.txt +++ b/readme.txt @@ -10,24 +10,29 @@ Currently implemented: - Redeemer (slot 0) - GES Biorifle (slot 3) - Pulsegun (slot 5) (with beta animations) - - Big Keg O' Health (soulsphere) - - Beta Super Health (medkit) - - Health Pack (stimpak) - - Health Vial (health bonus) + - Health + - Big Keg O' Health (soulsphere) + - Beta Super Health (medkit) + - Health Pack (stimpak) + - Health Vial (health bonus) - Some configuration options - - Damage Amplifier (invulnerability sphere) - - Mesh replacements for the keys - -In progress: - - - Armor system - - Something to replace armor bonus (armor bonus) + - Damage Amplifier (berserk) + - Keys + - Backpack + - Armor + - Armor Bonus (armor bonus) - Thigh Pads (green armor) - Body Armor (blue armor) - Shield Belt (megasphere) - Invisibility (blursphere) + - Computer Map (computer area map) + - Shielding Suit (hybrid of U1 asbestos/toxin suits, radsuit) - Searchlight (light amplification visor) - - Toxin Suit (radsuit) + - Enhanced Shock Rifle (slot 4, limited ammo, invulnerability sphere) + +In progress: + + - UT HUD To be done: @@ -40,11 +45,3 @@ To be done: - Minigun (slot 7) - Rocket Launcher (slot 9) - Sniper Rifle (slot 0) - - - UT HUD - - - An alternate invulnerability sphere replacement that actually is invulnerability - - Something to replace berserk (candidates: make it spawn another enforcer, with a small chance of a limited ammo instagib shockrifle instead) - - Something to replace computer map (just a mesh replacement maybe) - - Replace the barrels (there are perfect candidates in Unreal 1) - - ... maybe more diff --git a/sndinfo.txt b/sndinfo.txt index fdc9571..ae97f7f 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -111,6 +111,8 @@ udamage/pickup amppckup udamage/fire1 ampfire udamage/fire2 ampfire2 udamage/drain ampout +trans/pickup voicesnd +suit/pickup suitsnd misc/gibbed1 gib1 misc/gibbed2 gib2 misc/gibbed3 gib3 @@ -141,6 +143,7 @@ $pitchshiftrange 5 shock/ball expla02 $pitchshift shock/ball 5 $pitchshiftrange 0 +sshock/blast expl2 warhead/explode warexplo warhead/fly warfly diff --git a/sounds/VoiceSnd.wav b/sounds/VoiceSnd.wav new file mode 100644 index 0000000..92cf622 Binary files /dev/null and b/sounds/VoiceSnd.wav differ diff --git a/sounds/expl2.wav b/sounds/expl2.wav new file mode 100644 index 0000000..0923277 Binary files /dev/null and b/sounds/expl2.wav differ diff --git a/sounds/suitsnd.wav b/sounds/suitsnd.wav new file mode 100644 index 0000000..008cd1d Binary files /dev/null and b/sounds/suitsnd.wav differ diff --git a/sprites/REXPA0.png b/sprites/REXPA0.png new file mode 100644 index 0000000..882df34 Binary files /dev/null and b/sprites/REXPA0.png differ diff --git a/sprites/REXPB0.png b/sprites/REXPB0.png new file mode 100644 index 0000000..b1aea54 Binary files /dev/null and b/sprites/REXPB0.png differ diff --git a/sprites/REXPC0.png b/sprites/REXPC0.png new file mode 100644 index 0000000..a0860b3 Binary files /dev/null and b/sprites/REXPC0.png differ diff --git a/sprites/REXPD0.png b/sprites/REXPD0.png new file mode 100644 index 0000000..8e0d4fd Binary files /dev/null and b/sprites/REXPD0.png differ diff --git a/sprites/REXPE0.png b/sprites/REXPE0.png new file mode 100644 index 0000000..2ddc4f5 Binary files /dev/null and b/sprites/REXPE0.png differ diff --git a/sprites/REXPF0.png b/sprites/REXPF0.png new file mode 100644 index 0000000..4f7528c Binary files /dev/null and b/sprites/REXPF0.png differ diff --git a/sprites/REXPG0.png b/sprites/REXPG0.png new file mode 100644 index 0000000..b840b28 Binary files /dev/null and b/sprites/REXPG0.png differ diff --git a/sprites/RFLAA0.png b/sprites/RFLAA0.png new file mode 100644 index 0000000..c0ab813 Binary files /dev/null and b/sprites/RFLAA0.png differ diff --git a/sprites/SBALA0.png b/sprites/SBALA0.png new file mode 100644 index 0000000..0ea3272 Binary files /dev/null and b/sprites/SBALA0.png differ diff --git a/sprites/SBALB0.png b/sprites/SBALB0.png new file mode 100644 index 0000000..5b35a83 Binary files /dev/null and b/sprites/SBALB0.png differ diff --git a/sprites/SBALC0.png b/sprites/SBALC0.png new file mode 100644 index 0000000..ad0f6cd Binary files /dev/null and b/sprites/SBALC0.png differ diff --git a/sprites/SBALD0.png b/sprites/SBALD0.png new file mode 100644 index 0000000..52584e9 Binary files /dev/null and b/sprites/SBALD0.png differ diff --git a/sprites/SEXPA0.png b/sprites/SEXPA0.png new file mode 100644 index 0000000..164a7f5 Binary files /dev/null and b/sprites/SEXPA0.png differ diff --git a/sprites/SEXPB0.png b/sprites/SEXPB0.png new file mode 100644 index 0000000..9c9440d Binary files /dev/null and b/sprites/SEXPB0.png differ diff --git a/sprites/SEXPC0.png b/sprites/SEXPC0.png new file mode 100644 index 0000000..07c13fd Binary files /dev/null and b/sprites/SEXPC0.png differ diff --git a/sprites/SEXPD0.png b/sprites/SEXPD0.png new file mode 100644 index 0000000..d08309b Binary files /dev/null and b/sprites/SEXPD0.png differ diff --git a/sprites/SEXPE0.png b/sprites/SEXPE0.png new file mode 100644 index 0000000..78b3686 Binary files /dev/null and b/sprites/SEXPE0.png differ diff --git a/sprites/SEXPF0.png b/sprites/SEXPF0.png new file mode 100644 index 0000000..9b5c994 Binary files /dev/null and b/sprites/SEXPF0.png differ diff --git a/sprites/SEXPG0.png b/sprites/SEXPG0.png new file mode 100644 index 0000000..33a4383 Binary files /dev/null and b/sprites/SEXPG0.png differ diff --git a/sprites/SEXPH0.png b/sprites/SEXPH0.png new file mode 100644 index 0000000..dc82a7c Binary files /dev/null and b/sprites/SEXPH0.png differ diff --git a/sprites/SEXPI0.png b/sprites/SEXPI0.png new file mode 100644 index 0000000..3930665 Binary files /dev/null and b/sprites/SEXPI0.png differ diff --git a/sprites/SEXPJ0.png b/sprites/SEXPJ0.png new file mode 100644 index 0000000..56b4009 Binary files /dev/null and b/sprites/SEXPJ0.png differ diff --git a/textures.chainsaw b/textures.chainsaw new file mode 100644 index 0000000..e69de29 diff --git a/textures.eightball b/textures.eightball new file mode 100644 index 0000000..8523fb9 --- /dev/null +++ b/textures.eightball @@ -0,0 +1,2 @@ +Sprite "RPAKA0",1,1{} +Sprite "RCKTA0",1,1{} diff --git a/textures.enforcer b/textures.enforcer new file mode 100644 index 0000000..f63d645 --- /dev/null +++ b/textures.enforcer @@ -0,0 +1 @@ +Sprite "ECLPA0",1,1{} diff --git a/textures.impact b/textures.impact new file mode 100644 index 0000000..e69de29 diff --git a/textures.minigun b/textures.minigun new file mode 100644 index 0000000..2af5ba4 --- /dev/null +++ b/textures.minigun @@ -0,0 +1 @@ +Sprite "MAMOA0",1,1{} diff --git a/textures.misc b/textures.misc index a7285b8..3b0f71f 100644 --- a/textures.misc +++ b/textures.misc @@ -1,3 +1,11 @@ +// shrunk version of -noflat- for Kinsie's test map, looks better +Texture "-kinsie-",128,128 +{ + XScale 8 + YScale 8 + WorldPanning + Patch "-noflat-",0,0{} +} Texture "FIZZHP00",256,256 { Patch "LAVA1",0,0{Translation "0:255=#[0,0,255]"} @@ -134,4 +142,8 @@ Sprite "USKLC0",1,1{} Sprite "UKEYA0",1,1{} Sprite "UKEYB0",1,1{} Sprite "UKEYC0",1,1{} - +Sprite "BPAKA0",1,1{} +Sprite "INVSA0",1,1{} +Sprite "TRNSA0",1,1{} +Sprite "SSUTA0",1,1{} +Sprite "SLITA0",1,1{} diff --git a/textures.ripper b/textures.ripper new file mode 100644 index 0000000..1fdbffc --- /dev/null +++ b/textures.ripper @@ -0,0 +1 @@ +Sprite "BHOPA0",1,1{} diff --git a/textures.sniper b/textures.sniper new file mode 100644 index 0000000..ecf03e1 --- /dev/null +++ b/textures.sniper @@ -0,0 +1,2 @@ +Sprite "SBOXA0",1,1{} +Sprite "SRNDA0",1,1{} diff --git a/textures.transloc b/textures.transloc new file mode 100644 index 0000000..e69de29 diff --git a/textures/-noflat-.png b/textures/-noflat-.png index 6562923..745abfe 100644 Binary files a/textures/-noflat-.png and b/textures/-noflat-.png differ diff --git a/textures/invis00.png b/textures/invis00.png new file mode 100644 index 0000000..f5e69fc Binary files /dev/null and b/textures/invis00.png differ diff --git a/textures/invis01.png b/textures/invis01.png new file mode 100644 index 0000000..dfe5fc0 Binary files /dev/null and b/textures/invis01.png differ diff --git a/textures/invis02.png b/textures/invis02.png new file mode 100644 index 0000000..3d2860d Binary files /dev/null and b/textures/invis02.png differ diff --git a/textures/invis03.png b/textures/invis03.png new file mode 100644 index 0000000..19a6173 Binary files /dev/null and b/textures/invis03.png differ diff --git a/textures/invis04.png b/textures/invis04.png new file mode 100644 index 0000000..7b1074d Binary files /dev/null and b/textures/invis04.png differ diff --git a/textures/invis05.png b/textures/invis05.png new file mode 100644 index 0000000..0139318 Binary files /dev/null and b/textures/invis05.png differ diff --git a/textures/invis06.png b/textures/invis06.png new file mode 100644 index 0000000..d14e9dc Binary files /dev/null and b/textures/invis06.png differ diff --git a/textures/invis07.png b/textures/invis07.png new file mode 100644 index 0000000..7199c26 Binary files /dev/null and b/textures/invis07.png differ diff --git a/textures/invis08.png b/textures/invis08.png new file mode 100644 index 0000000..5c19840 Binary files /dev/null and b/textures/invis08.png differ diff --git a/textures/invis09.png b/textures/invis09.png new file mode 100644 index 0000000..a1edc87 Binary files /dev/null and b/textures/invis09.png differ diff --git a/textures/invis10.png b/textures/invis10.png new file mode 100644 index 0000000..90f7bbb Binary files /dev/null and b/textures/invis10.png differ diff --git a/textures/invis11.png b/textures/invis11.png new file mode 100644 index 0000000..2759658 Binary files /dev/null and b/textures/invis11.png differ diff --git a/textures/invis12.png b/textures/invis12.png new file mode 100644 index 0000000..c6709e9 Binary files /dev/null and b/textures/invis12.png differ diff --git a/textures/invis13.png b/textures/invis13.png new file mode 100644 index 0000000..4af9516 Binary files /dev/null and b/textures/invis13.png differ diff --git a/textures/invis14.png b/textures/invis14.png new file mode 100644 index 0000000..707c86a Binary files /dev/null and b/textures/invis14.png differ diff --git a/textures/invis15.png b/textures/invis15.png new file mode 100644 index 0000000..1eca321 Binary files /dev/null and b/textures/invis15.png differ diff --git a/textures/invis16.png b/textures/invis16.png new file mode 100644 index 0000000..bec66fb Binary files /dev/null and b/textures/invis16.png differ diff --git a/textures/invis17.png b/textures/invis17.png new file mode 100644 index 0000000..7582565 Binary files /dev/null and b/textures/invis17.png differ diff --git a/textures/invis18.png b/textures/invis18.png new file mode 100644 index 0000000..d0e944c Binary files /dev/null and b/textures/invis18.png differ diff --git a/textures/invis19.png b/textures/invis19.png new file mode 100644 index 0000000..efb02a7 Binary files /dev/null and b/textures/invis19.png differ diff --git a/textures/invis20.png b/textures/invis20.png new file mode 100644 index 0000000..2469f33 Binary files /dev/null and b/textures/invis20.png differ diff --git a/textures/invis21.png b/textures/invis21.png new file mode 100644 index 0000000..a385bdd Binary files /dev/null and b/textures/invis21.png differ diff --git a/textures/invis22.png b/textures/invis22.png new file mode 100644 index 0000000..a1cd050 Binary files /dev/null and b/textures/invis22.png differ diff --git a/textures/invis23.png b/textures/invis23.png new file mode 100644 index 0000000..02cf6e5 Binary files /dev/null and b/textures/invis23.png differ diff --git a/textures/invis24.png b/textures/invis24.png new file mode 100644 index 0000000..c3d9bc1 Binary files /dev/null and b/textures/invis24.png differ diff --git a/textures/invis25.png b/textures/invis25.png new file mode 100644 index 0000000..84e76f3 Binary files /dev/null and b/textures/invis25.png differ diff --git a/textures/invis26.png b/textures/invis26.png new file mode 100644 index 0000000..7df7bfb Binary files /dev/null and b/textures/invis26.png differ diff --git a/textures/invis27.png b/textures/invis27.png new file mode 100644 index 0000000..ba6f2a1 Binary files /dev/null and b/textures/invis27.png differ diff --git a/textures/invis28.png b/textures/invis28.png new file mode 100644 index 0000000..9cccdd9 Binary files /dev/null and b/textures/invis28.png differ diff --git a/textures/invis29.png b/textures/invis29.png new file mode 100644 index 0000000..1a559fb Binary files /dev/null and b/textures/invis29.png differ diff --git a/textures/invis30.png b/textures/invis30.png new file mode 100644 index 0000000..93815cf Binary files /dev/null and b/textures/invis30.png differ diff --git a/textures/invis31.png b/textures/invis31.png new file mode 100644 index 0000000..b7cddfb Binary files /dev/null and b/textures/invis31.png differ diff --git a/zmapinfo.txt b/zmapinfo.txt index 094b365..21b5f92 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -1,4 +1,7 @@ GameInfo { AddEventHandlers = "RedeemerHUDHandler", "UTMenuHandler" + PlayerClasses = "UTPlayer" + StatusBarClass = "UTHud" + BackpackType = "UTBackpack" } diff --git a/zscript.txt b/zscript.txt index 7cb7662..805e312 100644 --- a/zscript.txt +++ b/zscript.txt @@ -3,11 +3,20 @@ version "3.3" #include "zscript/mk_matrix.zsc" #include "zscript/mk_coordutil.zsc" #include "zscript/utcommon.zsc" +#include "zscript/impacthammer.zsc" +#include "zscript/chainsaw.zsc" +#include "zscript/translocator.zsc" +#include "zscript/enforcer.zsc" #include "zscript/biorifle.zsc" #include "zscript/shockrifle.zsc" #include "zscript/pulsegun.zsc" +#include "zscript/ripper.zsc" +#include "zscript/minigun.zsc" #include "zscript/flakcannon.zsc" +#include "zscript/eightball.zsc" +#include "zscript/sniperrifle.zsc" #include "zscript/warheadlauncher.zsc" #include "zscript/healitems.zsc" #include "zscript/armoritems.zsc" #include "zscript/powerups.zsc" +#include "zscript/uthud.zsc" diff --git a/zscript/armoritems.zsc b/zscript/armoritems.zsc index e9c326e..6a216bb 100644 --- a/zscript/armoritems.zsc +++ b/zscript/armoritems.zsc @@ -1,9 +1,43 @@ -Class UTArmorBonus : ArmorBonus replaces ArmorBonus +Class UTArmor : Armor +{ + int absorb; + + Property ArmorAbsorption : absorb; + + Default + { + +INVENTORY.AUTOACTIVATE; + +INVENTORY.UNTOSSABLE; + } + override void AbsorbDamage( int damage, Name damageType, out int newdamage ) + { + int saved; + if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) ) + { + saved = damage*absorb/100.; + if ( amount <= saved ) saved = amount; + newdamage -= saved; + amount -= saved; + damage = newdamage; + } + if ( damage > 0 ) newdamage = ApplyDamageFactors(GetClass(),damageType,damage,damage); + if ( amount <= 0 ) Destroy(); + } +} + +Class UTArmorBonus : UTArmor replaces ArmorBonus { Default { Tag "Armor Bonus"; - Armor.SaveAmount 5; + +COUNTITEM; + +INVENTORY.AUTOACTIVATE; + +INVENTORY.UNTOSSABLE; + +INVENTORY.ALWAYSPICKUP; + Inventory.Amount 5; + Inventory.MaxAmount 50; + Inventory.InterHubAmount 50; + UTArmor.ArmorAbsorption 25; Inventory.PickupMessage "You picked up an Armor Bonus."; Inventory.PickupSound "misc/ut_shard"; } @@ -15,18 +49,15 @@ Class UTArmorBonus : ArmorBonus replaces ArmorBonus } } -// TODO system for separating the 4 armor pickups (like Hexen's, but not as strict) -Class UTArmor : Inventory -{ -} - -Class UTThighPads : BasicArmorPickup replaces GreenArmor +Class UTThighPads : UTArmor replaces GreenArmor { Default { Tag "Thigh Pads"; - Armor.SaveAmount 50; - Armor.SavePercent 50; + Inventory.Amount 50; + Inventory.MaxAmount 50; + Inventory.InterHubAmount 50; + UTArmor.ArmorAbsorption 50; Inventory.PickupMessage "You got the Thigh Pads."; Inventory.PickupSound "misc/ut_armor"; } @@ -38,13 +69,15 @@ Class UTThighPads : BasicArmorPickup replaces GreenArmor } } -Class UTBodyArmor : BasicArmorPickup replaces BlueArmor +Class UTBodyArmor : UTArmor replaces BlueArmor { Default { Tag "Body Armor"; - Armor.SaveAmount 100; - Armor.SavePercent 75; + Inventory.Amount 100; + Inventory.MaxAmount 100; + Inventory.InterHubAmount 100; + UTArmor.ArmorAbsorption 75; Inventory.PickupMessage "You got the Body Armor."; Inventory.PickupSound "misc/ut_armor"; } @@ -56,29 +89,43 @@ Class UTBodyArmor : BasicArmorPickup replaces BlueArmor } } -Class UTShieldBelt : Inventory replaces Megasphere +Class UTShieldBelt : UTArmor replaces Megasphere { - override void ModifyDamage( int damage, Name damageType, out int newdamage, bool passive ) + override void AbsorbDamage( int damage, Name damageType, out int newdamage ) { - if ( !passive || (damage <= 0) ) return; - newdamage = max(0,damage-Amount); - Owner.A_PlaySound("belt/absorb"); - if ( amount-damage <= 0 ) Owner.A_Print("The Shield Belt has depleted."); - Owner.TakeInventory("UTShieldBelt",min(amount,damage)); + if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) ) Owner.A_PlaySound("belt/absorb"); + Super.AbsorbDamage(damage,damageType,newdamage); + } + override void OnDestroy() + { + Super.OnDestroy(); + if ( amount <= 0 && Owner ) PrintPickupMessage(true,"The Shield Belt has depleted."); + } + override bool Use( bool pickup ) + { + // removes thigh pads and body armor like in UT + Owner.TakeInventory("UTThighPads",50); + Owner.TakeInventory("UTBodyArmor",150); + return false; + } + override bool HandlePickup( Inventory item ) + { + if ( (item is 'UTThighPads') || (item is 'UTBodyArmor') ) return true; + return Super.HandlePickup(item); } Default { Tag "Shield Belt"; +COUNTITEM; - +INVENTORY.AUTOACTIVATE; - +Inventory.UNTOSSABLE; +INVENTORY.ALWAYSPICKUP; +INVENTORY.BIGPOWERUP; Inventory.Amount 150; Inventory.MaxAmount 150; Inventory.InterHubAmount 150; + UTArmor.ArmorAbsorption 100; Inventory.PickupMessage "You got the Shield Belt."; Inventory.PickupSound "belt/pickup"; + Inventory.RespawnTics 2100; } States { diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index c4ae539..2c95227 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -17,7 +17,7 @@ Class Tier3Weapon : RandomSpawner replaces Shotgun } Class Tier3Weapon2 : Tier3Weapon replaces SuperShotgun {} -Class BioAmmo : Ammo +Class BioAmmo : UTAmmo { Default { @@ -28,6 +28,7 @@ Class BioAmmo : Ammo Ammo.BackpackAmount 50; Ammo.BackpackMaxAmount 200; Ammo.DropAmount 25; + UTAmmo.UsedInSlot AMMO_SLOT3; } States { diff --git a/zscript/chainsaw.zsc b/zscript/chainsaw.zsc new file mode 100644 index 0000000..fb2751a --- /dev/null +++ b/zscript/chainsaw.zsc @@ -0,0 +1,11 @@ +Class UTChainsaw : Weapon replaces Chainsaw +{ + Default + { + Tag "Chainsaw"; + Inventory.PickupMessage "It's been twenty five years since I've seen one of these."; // was five years in UT99 + Weapon.UpSound ""; + Weapon.SlotNumber 1; + +WEAPON.MELEEWEAPON; + } +} diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc new file mode 100644 index 0000000..8c55e62 --- /dev/null +++ b/zscript/eightball.zsc @@ -0,0 +1,54 @@ +Class UTRocketAmmo : UTAmmo +{ + Default + { + Tag "Rocket Pack"; + Inventory.PickupMessage "You picked up a Rocket Pack."; + Inventory.Amount 12; + Inventory.MaxAmount 48; + Ammo.BackpackAmount 12; + Ammo.BackpackMaxAmount 96; + Ammo.DropAmount 12; + UTAmmo.UsedInSlot AMMO_SLOT9; + } + States + { + Spawn: + RPAK A -1; + Stop; + } +} + +// There was no single rocket ammo in UT, so this one is also just improvised like the Redeemer ammo pickup +Class UTRocketAmmo2 : UTRocketAmmo +{ + Default + { + Tag "Single Rocket"; + Inventory.PickupMessage "You picked up a Single Rocket."; + Inventory.Amount 1; + Ammo.DropAmount 1; + } + States + { + Spawn: + RCKT A -1; + Stop; + } +} + +Class UTRocketLauncher : UTWeapon +{ + Default + { + Tag "Rocket Launcher"; + Inventory.PickupMessage "You got the Rocket Launcher."; + Weapon.UpSound ""; + Weapon.SlotNumber 9; + Weapon.AmmoType "UTRocketAmmo"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "UTRocketAmmo"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 6; + } +} diff --git a/zscript/enforcer.zsc b/zscript/enforcer.zsc new file mode 100644 index 0000000..e02b3d8 --- /dev/null +++ b/zscript/enforcer.zsc @@ -0,0 +1,61 @@ +Class EClip : MiniAmmo replaces Clip +{ + Default + { + Tag "Clip"; // "Large Bullets" in UT, but I think that's an oversight, since it's the same as the Minigun ammo + Inventory.PickupMessage "You picked up a Clip."; + Inventory.Amount 20; + Ammo.DropAmount 20; + } + States + { + Spawn: + ECLP A -1; + Stop; + } +} + +Class Enforcer : UTWeapon replaces Pistol +{ + bool Akimbo; + + override string PickupMessage() + { + if ( Owner.CountInv(GetClass()) ) return "You picked up another Enforcer!"; + else return PickupMsg; + } + + override bool HandlePickup (Inventory item) + { + if (item.GetClass() == GetClass()) + { + if ( !Enforcer(item).Akimbo ) + { + Enforcer(item).Akimbo = true; + item.bPickupGood = true; + item.SetTag("Dual Enforcers"); + } + return Super.HandlePickup(item); + } + return false; + } + + override Inventory CreateTossable( int amt ) + { + // TODO separate drops + return Super.CreateTossable(amt); + } + + Default + { + Tag "Enforcer"; + Inventory.PickupMessage "You picked up an Enforcer."; + Weapon.UpSound ""; + Weapon.SlotNumber 2; + Weapon.AmmoType "MiniAmmo"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "MiniAmmo"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 30; + } +} diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index c5a6aed..9d0740c 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -3,7 +3,7 @@ Class Tier5Ammo : RandomSpawner replaces RocketAmmo Default { DropItem "FlakAmmo2", 255, 1; - //DropItem "UTRocketAmmo2", 255, 1; + DropItem "UTRocketAmmo2", 255, 1; } } Class Tier5Ammo2 : RandomSpawner replaces RocketBox @@ -11,7 +11,7 @@ Class Tier5Ammo2 : RandomSpawner replaces RocketBox Default { DropItem "FlakAmmo", 255, 1; - //DropItem "UTRocketAmmo", 255, 1; + DropItem "UTRocketAmmo", 255, 1; } } @@ -20,11 +20,11 @@ Class Tier5Weapon : RandomSpawner replaces RocketLauncher Default { DropItem "FlakCannon", 255, 1; - //DropItem "UTRocketLauncher", 255, 1; + DropItem "UTRocketLauncher", 255, 1; } } -Class FlakAmmo : Ammo +Class FlakAmmo : UTAmmo { Default { @@ -32,9 +32,10 @@ Class FlakAmmo : Ammo Inventory.PickupMessage "You picked up 10 Flak Shells."; Inventory.Amount 10; Inventory.MaxAmount 50; - Ammo.BackpackAmount 50; + Ammo.BackpackAmount 20; Ammo.BackpackMaxAmount 100; Ammo.DropAmount 10; + UTAmmo.UsedInSlot AMMO_SLOT8; } States { diff --git a/zscript/healitems.zsc b/zscript/healitems.zsc index c4c0877..08df1b9 100644 --- a/zscript/healitems.zsc +++ b/zscript/healitems.zsc @@ -11,6 +11,7 @@ Class UTHealthPack : Health replaces Soulsphere Inventory.MaxAmount 200; Inventory.PickupMessage "You picked up the Big Keg O' Health."; Inventory.PickupSound "misc/ut_keg"; + Inventory.RespawnTics 3500; } States { @@ -46,6 +47,7 @@ Class UTMedBox : Health replaces Stimpack Inventory.Amount 20; Inventory.PickupMessage "You picked up a Health Pack."; Inventory.PickupSound "misc/ut_heal"; + Inventory.RespawnTics 700; } States { diff --git a/zscript/impacthammer.zsc b/zscript/impacthammer.zsc new file mode 100644 index 0000000..e24f467 --- /dev/null +++ b/zscript/impacthammer.zsc @@ -0,0 +1,12 @@ +Class ImpactHammer : UTWeapon replaces Fist +{ + Default + { + Tag "Impact Hammer"; + Inventory.PickupMessage "You got the Impact Hammer."; + Weapon.UpSound ""; + Weapon.SlotNumber 1; + +WEAPON.MELEEWEAPON; + +INVENTORY.UNTOSSABLE; + } +} diff --git a/zscript/minigun.zsc b/zscript/minigun.zsc new file mode 100644 index 0000000..84fe742 --- /dev/null +++ b/zscript/minigun.zsc @@ -0,0 +1,62 @@ +Class Tier6Ammo : RandomSpawner replaces Cell +{ + Default + { + DropItem "EClip", 255, 1; + DropItem "RifleAmmo2", 255, 1; + } +} +Class Tier6Ammo2 : RandomSpawner replaces CellPack +{ + Default + { + DropItem "MiniAmmo", 255, 1; + DropItem "RifleAmmo", 255, 1; + } +} + +Class Tier6Weapon : RandomSpawner replaces PlasmaRifle +{ + Default + { + DropItem "Minigun", 255, 1; + DropItem "SniperRifle", 255, 1; + } +} + +Class MiniAmmo : UTAmmo +{ + Default + { + Tag "Large Bullets"; + Inventory.PickupMessage "You picked up 50 bullets."; + Inventory.Amount 50; + Inventory.MaxAmount 200; + Ammo.BackpackAmount 100; + Ammo.BackpackMaxAmount 400; + Ammo.DropAmount 50; + UTAmmo.UsedInSlot AMMO_SLOT2|AMMO_SLOT7; + } + States + { + Spawn: + MAMO A -1; + Stop; + } +} + +Class Minigun : UTWeapon +{ + Default + { + Tag "Minigun"; + Inventory.PickupMessage "You got the Minigun."; + Weapon.UpSound ""; + Weapon.SlotNumber 7; + Weapon.AmmoType "MiniAmmo"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "MiniAmmo"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 50; + } +} diff --git a/zscript/powerups.zsc b/zscript/powerups.zsc index 30f4e7d..e8db1f0 100644 --- a/zscript/powerups.zsc +++ b/zscript/powerups.zsc @@ -1,4 +1,4 @@ -Class UDamage : PowerupGiver replaces InvulnerabilitySphere +Class UDamage : PowerupGiver replaces Berserk { Default { @@ -11,6 +11,7 @@ Class UDamage : PowerupGiver replaces InvulnerabilitySphere Inventory.MaxAmount 0; Powerup.Type "DamageAmplifier"; Inventory.PickupSound "udamage/pickup"; + Inventory.RespawnTics 4200; } action void A_CheckSkin() { @@ -74,6 +75,12 @@ Class DamageAmplifier : Powerup Owner.A_PlaySound("udamage/drain",CHAN_6,1.0,false,0.25); } + override void EndEffect() + { + Super.EndEffect(); + PrintPickupMessage(true,"Damage Amplifier has worn off."); + } + override bool isBlinking() { return ((EffectTics <= 175) && (EffectTics%35 >= 30)); @@ -92,3 +99,373 @@ Class DamageAmplifier : Powerup if ( !(Owner.player.ReadyWeapon is 'UTWeapon') ) FireEffect(); } } + +// Backpack that handles UT ammo types +Class UTBackpack : BackpackItem replaces Backpack +{ + override Inventory CreateCopy( Actor other ) + { + // Find every unique type of ammoitem. Give it to the player if + // he doesn't have it already, and double its maximum capacity. + for ( int i=0; i)(AllActorClasses[i]); + if ( !type || ((type.GetParentClass() != 'Ammo') && (type.GetParentClass() != 'UTAmmo')) ) continue; + // check that it's for a valid weapon + bool isvalid = false; + for ( int j=0; j)(AllActorClasses[j]); + if ( !type2 ) continue; + let rep = GetReplacement(type2); + if ( (rep != type2) && !(rep is "DehackedPickup") ) continue; + readonly weap = GetDefaultByType(type2); + if ( !other.player || !other.player.weapons.LocateWeapon(type2) || weap.bCheatNotWeapon ) continue; + if ( (weap.AmmoType1 == type) || (weap.AmmoType2 == type) ) + { + isvalid = true; + break; + } + } + if ( !isvalid ) continue; + let ammoitem = Ammo(other.FindInventory(type)); + int amount = GetDefaultByType(type).BackpackAmount; + // extra ammo in baby mode and nightmare mode + if ( !bIgnoreSkill ) amount = int(amount*G_SkillPropertyFloat(SKILLP_AmmoFactor)); + if ( amount < 0 ) amount = 0; + if ( !ammoitem ) + { + // The player did not have the ammoitem. Add it. + ammoitem = Ammo(Spawn(type)); + ammoitem.Amount = bDepleted?0:amount; + if ( ammoitem.BackpackMaxAmount > ammoitem.MaxAmount ) + ammoitem.MaxAmount = ammoitem.BackpackMaxAmount; + if ( ammoitem.Amount > ammoitem.MaxAmount ) + ammoitem.Amount = ammoitem.MaxAmount; + ammoitem.AttachToOwner(other); + } + else + { + // The player had the ammoitem. Give some more. + if ( ammoitem.MaxAmount < ammoitem.BackpackMaxAmount ) + ammoitem.MaxAmount = ammoitem.BackpackMaxAmount; + if ( !bDepleted && (ammoitem.Amount < ammoitem.MaxAmount) ) + { + ammoitem.Amount += amount; + if ( ammoitem.Amount > ammoitem.MaxAmount ) + ammoitem.Amount = ammoitem.MaxAmount; + } + } + } + return Inventory.CreateCopy(other); + } + override bool HandlePickup (Inventory item) + { + // Since you already have a backpack, that means you already have every + // kind of ammo in your inventory, so we don't need to look at the + // entire PClass list to discover what kinds of ammo exist, and we don't + // have to alter the MaxAmount either. + if ( item is 'BackpackItem' ) + { + for ( let probe = Owner.Inv; probe; probe = probe.Inv ) + { + if ( (probe.GetParentClass() != 'Ammo') && (probe.GetParentClass() != 'UTAmmo') ) continue; + if ( probe.Amount >= probe.MaxAmount && !sv_unlimited_pickup ) continue; + int amount = Ammo(probe).Default.BackpackAmount; + // extra ammo in baby mode and nightmare mode + if ( !bIgnoreSkill ) + amount = int(amount*G_SkillPropertyFloat(SKILLP_AmmoFactor)); + probe.Amount += amount; + if ( (probe.Amount > probe.MaxAmount) && !sv_unlimited_pickup ) + probe.Amount = probe.MaxAmount; + } + // The pickup always succeeds, even if you didn't get anything + item.bPickupGood = true; + return true; + } + return false; + } + Default + { + Tag "Backpack"; + Inventory.PickupMessage "You got a Backpack."; + Inventory.RespawnTics 2100; + } + States + { + Spawn: + BPAK A -1; + Stop; + } +} + +Class PowerUTInvisibility : PowerInvisibility +{ + Default + { + Powerup.Duration -50; + Powerup.Strength 95; + Powerup.Mode "Translucent"; + Powerup.Color "FFFFFF", 0.15; + } + override void EndEffect() + { + Super.EndEffect(); + PrintPickupMessage(true,"Invisibility has worn off."); + } +} + +Class UTInvisibility : PowerupGiver replaces BlurSphere +{ + Default + { + Tag "Invisibility"; + +COUNTITEM; + +INVENTORY.AUTOACTIVATE; + +INVENTORY.ALWAYSPICKUP; + +INVENTORY.BIGPOWERUP; + Inventory.MaxAmount 0; + Powerup.Type "PowerUTInvisibility"; + Inventory.PickupMessage "You have Invisibility."; + Inventory.PickupSound "invis/pickup"; + Inventory.RespawnTics 4200; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + tracer = Spawn("UTInvisibilityX",pos); + tracer.angle = angle; + tracer.target = self; + } + States + { + Spawn: + INVS A -1 Bright; + Stop; + } +} + +Class UTInvisibilityX : Actor +{ + Default + { + RenderStyle "Add"; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + } + override void Tick() + { + Super.Tick(); + if ( !target ) + { + Destroy(); + return; + } + SetOrigin(target.pos,true); + A_SetAngle(target.angle,SPF_INTERPOLATE); + bInvisible = target.bInvisible; + } + States + { + Spawn: + INVS A -1 Bright; + Stop; + } +} + +Class UTMapRevealer : MapRevealer replaces Allmap +{ + Default + { + +COUNTITEM; + +INVENTORY.FANCYPICKUPSOUND; + +INVENTORY.ALWAYSPICKUP; + Inventory.MaxAmount 0; + Inventory.PickupSound "trans/pickup"; + Inventory.PickupMessage "You got the Computer Map."; + } + States + { + Spawn: + TRNS A -1; + Stop; + } +} + + +Class ShieldingSuit : PowerupGiver replaces RadSuit +{ + Default + { + Tag "Shielding Suit"; + +INVENTORY.AUTOACTIVATE; + +INVENTORY.ALWAYSPICKUP; + Inventory.MaxAmount 0; + Powerup.Type "PowerShieldingSuit"; + Inventory.PickupMessage "You got the Shielding Suit."; + Inventory.PickupSound "suit/pickup"; + Inventory.RespawnTics 2100; + } + States + { + Spawn: + SSUT A -1; + Stop; + } +} + +Class PowerShieldingSuit : PowerIronFeet +{ + Default + { + Powerup.Duration -60; + Powerup.Color "C0FFEE", 0.35; + } + override void AbsorbDamage( int damage, Name damageType, out int newdamage ) + { + if ( (damageType == 'Slime') || (damageType == 'Fire') || (damageType == 'Ice') || (damageType == 'Poison') ) + newdamage = 0; + } + override void EndEffect() + { + PrintPickupMessage(true,"Air supply in the Shielding Suit has expired."); + } +} + +Class Searchlight : Inventory replaces Infrared +{ + Actor lt[3]; + int ticcnt; + Default + { + Tag "Searchligh"; + +COUNTITEM; + +INVENTORY.UNTOSSABLE; + +INVENTORY.FANCYPICKUPSOUND; + +INVENTORY.AUTOACTIVATE; + +INVENTORY.ALWAYSPICKUP; + Inventory.Amount 200; + Inventory.MaxAmount 200; + Inventory.InterHubAmount 0; + Inventory.PickupMessage "You picked up the Searchlight."; + } + + override bool Use( bool pickup ) + { + if ( !lt[0] ) lt[0] = Spawn("mkLight"); + lt[0].target = owner; + lt[0].master = self; + if ( !lt[1] ) lt[1] = Spawn("mkLight2"); + lt[1].target = owner; + lt[1].master = self; + if ( !lt[2] ) lt[2] = Spawn("mkLight3"); + lt[2].target = owner; + lt[2].master = self; + return Super.Use(pickup); + } + override void DetachFromOwner() + { + Super.DetachFromOwner(); + if ( lt[0] ) lt[0].Destroy(); + if ( lt[1] ) lt[1].Destroy(); + if ( lt[2] ) lt[2].Destroy(); + } + override void DoEffect() + { + Super.DoEffect(); + if ( !Owner ) return; + if ( ticcnt++ < TICRATE ) return; + ticcnt = 0; + if ( --Amount <= 0 ) + { + PrintPickupMessage(true,"Searchlight batteries have died."); + DepleteOrDestroy(); + } + } + States + { + Spawn: + SLIT A -1; + Stop; + } +} + +/* hello, Soundless Mound copypasted lights */ +Class mkLight : DynamicLight +{ + Default + { + DynamicLight.Type "Point"; + +DynamicLight.SPOT; + +DynamicLight.ATTENUATE; + +DynamicLight.DONTLIGHTSELF; + args 255,224,160,350; + DynamicLight.SpotInnerAngle 20; + DynamicLight.SpotOuterAngle 35; + } + override void Tick() + { + Super.Tick(); + if ( !target || !Inventory(master) ) + { + Destroy(); + return; + } + if ( target.player ) SetOrigin((target.pos.x,target.pos.y,target.player.viewz),true); + else SetOrigin(target.vec3Offset(0,0,target.height*0.75),true); + A_SetAngle(target.angle,SPF_INTERPOLATE); + A_SetPitch(target.pitch,SPF_INTERPOLATE); + args[LIGHT_RED] = GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40.,0.,1.); + args[LIGHT_GREEN] = GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40.,0.,1.); + args[LIGHT_BLUE] = GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40.,0.,1.); + bDORMANT = (target.health <= 0); + if ( Inventory(target) && target.bInvisible ) bDORMANT = true; + // alert monsters hit by the light + if ( GetClass() != "mkLight" ) return; + if ( !bDORMANT && target.player && (target.health > 0) ) + { + BlockThingsIterator bt = BlockThingsIterator.Create(target,args[LIGHT_INTENSITY]); + while ( bt.Next() ) + { + if ( !bt.Thing || (Distance3D(bt.Thing) > args[LIGHT_INTENSITY]) ) continue; + Vector3 aimdir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); + Vector3 reldir = Vec3To(bt.Thing).unit(); + if ( (acos(aimdir dot reldir) < SpotOuterAngle+5) && bt.Thing.CheckSight(target) ) bt.Thing.LastHeard = target; + } + } + } +} + +Class mkLight2 : mkLight +{ + Default + { + args 128,112,96,450; + DynamicLight.SpotInnerAngle 0; + DynamicLight.SpotOuterAngle 50; + } +} + +Class mkLight3 : DynamicLight +{ + Default + { + DynamicLight.Type "Point"; + +DynamicLight.ATTENUATE; + args 32,28,24,0; + } + override void Tick() + { + Super.Tick(); + if ( !target || Inventory(target) || !Inventory(master) ) + { + Destroy(); + return; + } + args[LIGHT_RED] = GetDefaultByType(GetClass()).args[LIGHT_RED]*clamp(Inventory(master).amount/40,0.,1.); + args[LIGHT_GREEN] = GetDefaultByType(GetClass()).args[LIGHT_GREEN]*clamp(Inventory(master).amount/40,0.,1.); + args[LIGHT_BLUE] = GetDefaultByType(GetClass()).args[LIGHT_BLUE]*clamp(Inventory(master).amount/40,0.,1.); + SetOrigin(target.vec3Offset(0,0,target.height*0.5),true); + } +} diff --git a/zscript/pulsegun.zsc b/zscript/pulsegun.zsc index 750d72c..416d2f2 100644 --- a/zscript/pulsegun.zsc +++ b/zscript/pulsegun.zsc @@ -3,7 +3,7 @@ Class Tier4Ammo : RandomSpawner replaces ClipBox Default { DropItem "PulseAmmo", 255, 1; - //DropItem "RipperAmmo", 255, 1; + DropItem "RipperAmmo", 255, 1; } } @@ -12,11 +12,11 @@ Class Tier4Weapon : RandomSpawner replaces Chaingun Default { DropItem "PulseGun", 255, 1; - //DropItem "Ripper", 255, 1; + DropItem "Ripper2", 255, 1; } } -Class PulseAmmo : Ammo +Class PulseAmmo : UTAmmo { Default { @@ -27,6 +27,7 @@ Class PulseAmmo : Ammo Ammo.BackpackAmount 50; Ammo.BackpackMaxAmount 400; Ammo.DropAmount 25; + UTAmmo.UsedInSlot AMMO_SLOT5; } States { @@ -486,7 +487,7 @@ Class PulseGun : UTWeapon Release: PGNC A 0 A_PlaySound("pulse/down",CHAN_WEAPON); PGNC ABCDEFGHIJKLMNOPQRSTUVWXY 1; - PGNI A 1; + PGNC Y 0; Goto Idle; AltFire: PGBS ABCDE 1; @@ -526,7 +527,8 @@ Class PulseGun : UTWeapon PGBE ABCDE 1; Goto Idle; Reload: - PGNI A 1 A_JumpIf(invoker.clipcount >= 50,"Idle"); + PGNI A 1; + PGNI A 0 A_JumpIf(invoker.clipcount >= 50,"Idle"); PGNR A 1 A_Reloading(); PGNR BCDEFGHIJKLMNOPQRSTUVWXYZ 1; PGR2 ABCDEFGHIJKLMNOPQRSTUVWX 1; diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc new file mode 100644 index 0000000..0f91296 --- /dev/null +++ b/zscript/ripper.zsc @@ -0,0 +1,36 @@ +Class RipperAmmo : UTAmmo +{ + Default + { + Tag "Razor Blades"; + Inventory.PickupMessage "You picked up Razor Blades."; + Inventory.Amount 25; + Inventory.MaxAmount 75; + Ammo.BackpackAmount 50; + Ammo.BackpackMaxAmount 150; + Ammo.DropAmount 25; + UTAmmo.UsedInSlot AMMO_SLOT6; + } + States + { + Spawn: + BHOP A -1; + Stop; + } +} + +Class Ripper2 : UTWeapon +{ + Default + { + Tag "Ripper"; + Inventory.PickupMessage "You got the Ripper."; + Weapon.UpSound ""; + Weapon.SlotNumber 6; + Weapon.AmmoType "RipperAmmo"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "RipperAmmo"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 15; + } +} diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 3c849c8..486eb1c 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -1,14 +1,15 @@ -Class ShockAmmo : Ammo +Class ShockAmmo : UTAmmo { Default { - Tag "ShockCore"; + Tag "Shock Core"; Inventory.PickupMessage "You picked up a Shock Core."; Inventory.Amount 10; Inventory.MaxAmount 50; - Ammo.BackpackAmount 50; + Ammo.BackpackAmount 20; Ammo.BackpackMaxAmount 100; Ammo.DropAmount 10; + UTAmmo.UsedInSlot AMMO_SLOT4; } States { @@ -20,13 +21,13 @@ Class ShockAmmo : Ammo Class ShockBeamTracer : LineTracer { - Actor owner, ignore; + Actor owner, ignore, lasthit; override ETraceStatus TraceCallback() { if ( Results.HitType == TRACE_HitActor ) { - if ( (Results.HitActor == owner) || (Results.HitActor == ignore) ) return TRACE_Skip; + if ( (Results.HitActor == owner) || (Results.HitActor == ignore) || (Results.HitActor == lasthit) ) return TRACE_Skip; if ( Results.HitActor.bSHOOTABLE || Results.HitActor is 'ShockHitbox' ) return TRACE_Stop; return TRACE_Skip; } @@ -67,6 +68,33 @@ Class ShockRifleWave : Actor } } +Class SuperShockRifleWave : Actor +{ + Default + { + RenderStyle "Add"; + Radius 0.1; + Height 0; + Scale 1.2; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + } + override void Tick() + { + Super.Tick(); + if ( globalfreeze || level.frozen ) return; + alpha -= 1/50.; + } + States + { + Spawn: + SWAV A 50 Bright; + SWAV B 0 Bright; + Stop; + } +} + Class ShockBeamRing : Actor { Default @@ -94,6 +122,33 @@ Class ShockBeamRing : Actor } } +Class SuperShockBeamRing : Actor +{ + Default + { + RenderStyle "Add"; + Radius 0.1; + Height 0; + Scale 0.9; + ReactionTime 18; + +NOBLOCKMAP; + +NOGRAVITY; + +DONTSPLASH; + } + override void Tick() + { + Super.Tick(); + if ( globalfreeze || level.frozen ) return; + alpha -= 1./ReactionTime; + } + States + { + Spawn: + SRNG ABCDEFGHI 2 Bright; + Stop; + } +} + Class ShockBlastRing : ShockBeamRing { Default @@ -109,6 +164,21 @@ Class ShockBlastRing : ShockBeamRing } } +Class SuperShockBlastRing : ShockBeamRing +{ + Default + { + Scale 5.0; + ReactionTime 45; + } + States + { + Spawn: + SRNG ABCDEFGHI 5 Bright; + Stop; + } +} + Class ShockBeam : Actor { ShockBeamTracer t; @@ -267,6 +337,168 @@ Class ShockBeam : Actor } } +Class SuperShockBeam : Actor +{ + ShockBeamTracer t; + Vector3 tracedir; + bool moving; + double totaldist; + + Default + { + Obituary "%k electrified %o with the Enhanced Shock Rifle."; + DamageType 'jolted'; + RenderStyle "Add"; + Radius 0.1; + Height 0; + Scale 0.7; + +NOGRAVITY; + +NOCLIP; + +DONTSPLASH; + +FORCEXYBILLBOARD; + +EXTREMEDEATH; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + t = new("ShockBeamTracer"); + t.owner = target; + t.ignore = self; + moving = true; + } + override void Tick() + { + Super.Tick(); + if ( globalfreeze || level.frozen ) return; + if ( !moving ) return; + // step trace + tracedir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); + t.Trace(pos,cursector,tracedir,2000,0); + totaldist += t.Results.Distance; + // spawn particles + for ( int i=0; i= 10000.0 ) + { + // reposition and explode on air + SetOrigin(t.Results.HitPos-t.Results.HitVector*4,true); + ExplodeMissile(t.Results.HitLine,null); + moving = false; + let r = Spawn("SuperShockBeamRing",pos); + r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); + r.pitch = asin(-t.Results.HitVector.z); + } + else if ( t.Results.HitType == TRACE_HitNone ) + { + // reposition + SetOrigin(t.Results.HitPos+t.Results.HitVector,true); + angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); + pitch = asin(-t.Results.HitVector.z); + } + else if ( t.Results.HitType == TRACE_HitActor ) + { + // reposition and explode on actor + SetOrigin(t.Results.HitPos-t.Results.HitVector*4,true); + ExplodeMissile(null,t.Results.HitActor); + if ( t.Results.HitActor is 'ShockHitbox' ) + { + if ( target ) target.TakeInventory('EnhancedShockAmmo',2); + let b = t.Results.HitActor.target; + b.ExplodeMissile(null,self); + b.A_Explode(Random[ASMD](15000,16000),400); + b.A_QuakeEx(9,9,9,60,0,2400,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.4); + b.A_SprayDecal("BigShockMark1",100); + b.A_SprayDecal("SBigShockMark2",100); + Spawn("SuperShockRifleWave",b.pos); + Spawn("SuperShockBlastLight",b.pos); + let r = Spawn("SuperShockBlastRing",b.pos); + r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); + r.pitch = asin(-t.Results.HitVector.z); + A_PlaySound("shock/blast",CHAN_WEAPON,attenuation:0.5); + A_PlaySound("sshock/blast",CHAN_6,attenuation:0.5); + int numpt = Random[ASMD](400,600); + for ( int i=0; i 0 ) + { + health += amount; + player.health = health; + } + else player.health = health = GetMaxHealth(true); + } + if ( giveall || (name ~== "backpack") ) + { + // Select the correct type of backpack based on the game + let type = (class)(gameinfo.backpacktype); + if ( type ) GiveInventory(type,1,true); + if ( !giveall ) return; + } + if ( giveall || (name ~== "ammo") ) + { + // Find every unique type of ammo. Give it to the player if + // he doesn't have it already, and set each to its maximum. + for ( int i=0; i)(AllActorClasses[i]); + if ( !type || ((type.GetParentClass() != "Ammo") && (type.GetParentClass() != "UTAmmo")) ) + continue; + // Only give if it's for a valid weapon, unless using "give everything" + bool isvalid = false; + for ( int j=0; j)(AllActorClasses[j]); + if ( !type2 ) continue; + let rep = GetReplacement(type2); + if ( (rep != type2) && !(rep is "DehackedPickup") ) continue; + readonly weap = GetDefaultByType(type2); + if ( !player.weapons.LocateWeapon(type2) || (weap.bCheatNotWeapon && (giveall != ALL_YESYES)) ) continue; + if ( (weap.AmmoType1 == type) || (weap.AmmoType2 == type) ) + { + isvalid = true; + break; + } + } + if ( !isvalid ) continue; + let ammoitem = FindInventory(type); + if ( !ammoitem ) + { + ammoitem = Inventory(Spawn(type)); + ammoitem.AttachToOwner(self); + ammoitem.Amount = ammoitem.MaxAmount; + } + else if ( ammoitem.Amount < ammoitem.MaxAmount ) + ammoitem.Amount = ammoitem.MaxAmount; + } + if ( !giveall ) return; + } + if ( giveall || (name ~== "armor") ) + { + // Doom Tournament just gives the player a shield belt and maximum bonuses + let belt = Inventory(Spawn("UTShieldBelt")); + if ( !belt.CallTryPickup(self) ) belt.Destroy(); + let bonus = Inventory(Spawn("UTArmorBonus")); + bonus.Amount = bonus.MaxAmount; + if ( !bonus.CallTryPickup(self) ) bonus.Destroy(); + level.total_items -= 2; // spawning them in raises item count + if ( !giveall ) return; + } + if ( giveall || (name ~== "keys") ) + { + for ( int i=0; i)(AllActorClasses[i]); + if ( !type || (type == "Weapon") ) continue; + // Don't give replaced weapons unless the replacement was done by Dehacked. + let rep = GetReplacement(type); + if ( (rep == type) || (rep is "DehackedPickup") ) + { + // Give the weapon only if it is set in a weapon slot. + if ( !player.weapons.LocateWeapon(type) ) continue; + readonly def = GetDefaultByType(type); + if ( (giveall == ALL_YESYES) || !def.bCheatNotWeapon ) + GiveInventory(type,1,true); + } + } + player.PendingWeapon = savedpending; + if ( !giveall ) return; + } + if ( giveall || (name ~== "artifacts") ) + { + for ( int i=0; i)(AllActorClasses[i]); + if ( !type ) continue; + let def = GetDefaultByType (type); + if ( def.Icon.isValid() && (def.MaxAmount > 1) && + !(type is "PuzzleItem") && !(type is "Powerup") && !(type is "Ammo") && !(type is "Armor")) + { + // Do not give replaced items unless using "give everything" + if ( (giveall == ALL_YESYES) || (GetReplacement(type) == type) ) + GiveInventory(type,(amount<=0)?def.MaxAmount:amount,true); + } + } + if ( !giveall ) return; + } + if ( giveall || (name ~== "puzzlepieces") ) + { + for ( int i=0; i)(AllActorClasses[i]); + if ( !type ) continue; + let def = GetDefaultByType(type); + if ( !def.Icon.isValid() ) continue; + // Do not give replaced items unless using "give everything" + if ( (giveall == ALL_YESYES) || (GetReplacement(type) == type) ) + GiveInventory(type,(amount<=0)?def.MaxAmount:amount,true); + } + if ( !giveall ) return; + } + if ( giveall ) return; + let type = name; + if ( !type ) + { + if ( PlayerNumber() == consoleplayer ) + A_Log(String.Format("Unknown item \"%s\"\n",name)); + } + else GiveInventory(type,amount,true); + } +} + +enum EAmmoSlot +{ + AMMO_SLOT10 = 1, + AMMO_SLOT1 = 2, + AMMO_SLOT2 = 4, + AMMO_SLOT3 = 8, + AMMO_SLOT4 = 16, + AMMO_SLOT5 = 32, + AMMO_SLOT6 = 64, + AMMO_SLOT7 = 128, + AMMO_SLOT8 = 256, + AMMO_SLOT9 = 512, +}; + +Class UTAmmo : Ammo +{ + int usedinslot; // bitfield indicating which weapon slots use this ammo + + Property UsedInSlot : usedinslot; + + Default + { + UTAmmo.UsedInSlot 0; + } +} + Class UTWeapon : Weapon { override Inventory CreateTossable( int amt ) @@ -61,6 +247,29 @@ Class UTTeleportLight : DynamicLight } } +Class UTItemLight : DynamicLight +{ + Default + { + DynamicLight.Type "Point"; + Args 255,224,160,48; + } + override void Tick() + { + Super.Tick(); + if ( alpha <= 0 ) + { + Destroy(); + return; + } + args[LIGHT_RED] = 255*alpha; + args[LIGHT_GREEN] = 224*alpha; + args[LIGHT_BLUE] = 160*alpha; + args[LIGHT_INTENSITY] = Random[Tele](6,8)*8; + alpha -= 3./35; + } +} + Class UTTeleportFog : Actor replaces TeleportFog { Default @@ -85,6 +294,28 @@ Class UTTeleportFog : Actor replaces TeleportFog } } +Class UTItemFog : Actor replaces ItemFog +{ + Default + { + +NOBLOCKMAP; + +NOTELEPORT; + +NOGRAVITY; + RenderStyle "Add"; + } + override void PostBeginPlay() + { + Super.PostBeginPlay(); + Spawn("UTItemLight",pos+(0,0,16)); + } + States + { + Spawn: + TNT1 A 1; + Stop; + } +} + Class UTRedSkull : RedSkull replaces RedSkull { Default @@ -174,6 +405,17 @@ Class UTMenuHandler : StaticEventHandler { ui TextureID tex; + override void WorldLoaded( WorldEvent e ) + { + if ( gamestate != GS_LEVEL || e.IsSaveGame ) return; + if ( level.levelname ~== "Modder Test Map" ) + { + TexMan.ReplaceTextures("-noflat-","-kinsie-",0); + TextureID skytx = TexMan.CheckForTexture("BlueSky",TexMan.Type_Any); + level.ChangeSky(skytx,skytx); + } + } + ui void StartMenu() { if ( gamestate != GS_TITLELEVEL ) return; diff --git a/zscript/uthud.zsc b/zscript/uthud.zsc new file mode 100644 index 0000000..6c86731 --- /dev/null +++ b/zscript/uthud.zsc @@ -0,0 +1,23 @@ +// An almost 1:1 recreation of the UT HUD, uses player color for tinting +Class UTHud : BaseStatusBar +{ + override void Init() + { + Super.Init(); + SetSize(0,1280,960); + } + + override void Draw( int state, double TicFrac ) + { + Super.Draw(state,TicFrac); + if ( (state == HUD_StatusBar) || (state == HUD_Fullscreen) ) + { + BeginHUD(); + DrawUTHUD(TicFrac); + } + } + + private void DrawUTHUD( double TicFrac ) + { + } +} diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index ffdeddf..e6639b3 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -1,5 +1,5 @@ // shouldn't be placed in the world (it wasn't in UT99) -Class WarheadAmmo : Ammo +Class WarheadAmmo : UTAmmo { Default { @@ -10,6 +10,8 @@ Class WarheadAmmo : Ammo Ammo.BackpackAmount 0; Ammo.BackpackMaxAmount 2; Ammo.DropAmount 1; + Inventory.RespawnTics 2100; + UTAmmo.UsedInSlot AMMO_SLOT10; } States { @@ -379,6 +381,12 @@ Class MidTracer : LineTracer } } +Class TargetActor +{ + Vector2 vpos; + String diststr; +} + Class RedeemerHUD : HUDMessageBase { Actor Camera; @@ -388,6 +396,7 @@ Class RedeemerHUD : HUDMessageBase Font whfont; ThinkerIterator t; MidTracer tr; + Array ta; RedeemerHUD Init() { @@ -401,16 +410,11 @@ Class RedeemerHUD : HUDMessageBase } override bool Tick() { - return !Camera; - } - override void Draw( int bottom, int visibility ) - { - if ( visibility != StatusBar.HUDMSGLayer_UnderHUD ) return; - Screen.Dim("Red",0.5,0,0,Screen.GetWidth(),Screen.GetHeight()); // shootable targetting if ( CVar.GetCVar('flak_redeemerreadout',players[consoleplayer]).GetBool() ) { t.Reinit(); + ta.Clear(); Actor a; Vector3 vdir = (cos(ViewAngle)*cos(ViewPitch),sin(ViewAngle)*cos(ViewPitch),-sin(ViewPitch)); while ( a = Actor(t.Next()) ) @@ -420,11 +424,26 @@ Class RedeemerHUD : HUDMessageBase Vector3 wpos = ViewPos+tdir; Vector3 spos = mkCoordUtil.WorldToScreen(wpos,ViewPos,ViewPitch,ViewAngle,ViewRoll,players[consoleplayer].FOV); if ( spos.z > 1.0 ) continue; - Vector2 vpos = mkCoordUtil.ToViewport(spos); - Screen.DrawTexture(mark,false,vpos.x,vpos.y); - String diststr = String.Format("%f",tdir.length()); - diststr.Replace(".",""); - Screen.DrawText(whfont,Font.CR_UNTRANSLATED,(vpos.x-whfont.StringWidth(diststr)/2)-12,vpos.y+8,diststr); + TargetActor te = new("TargetActor"); + te.vpos = mkCoordUtil.ToViewport(spos); + te.diststr = String.Format("%f",tdir.length()); + te.diststr.Replace(".",""); + ta.Push(te); + } + } + return !Camera; + } + override void Draw( int bottom, int visibility ) + { + if ( visibility != StatusBar.HUDMSGLayer_UnderHUD ) return; + Screen.Dim("Red",0.5,0,0,Screen.GetWidth(),Screen.GetHeight()); + // shootable targetting + if ( CVar.GetCVar('flak_redeemerreadout',players[consoleplayer]).GetBool() ) + { + for ( int i=0; i