From 4661d0f2f3a80a0f47496c5f7395f0c16e3385cd Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Tue, 5 Jul 2022 22:18:04 +0200 Subject: [PATCH] Replace original hud with alt hud entirely. Remove unnecessary icons and doom builder hints for items. --- cvarinfo.base | 3 +- graphics/AltHUD/BiosparkDisplay.png | Bin 136 -> 0 bytes graphics/AltHUD/DashBar.png | Bin 83 -> 0 bytes graphics/AltHUD/DeepImpactBar.png | Bin 96 -> 0 bytes graphics/AltHUD/DeepImpactDisplay.png | Bin 140 -> 0 bytes graphics/AltHUD/EvisceratorDisplay.png | Bin 146 -> 0 bytes graphics/AltHUD/ExplodiumDisplay.png | Bin 144 -> 0 bytes graphics/AltHUD/FuelBar.png | Bin 111 -> 0 bytes graphics/AltHUD/FuelBarS.png | Bin 112 -> 0 bytes graphics/AltHUD/GenericAmmoBoxL.png | Bin 101 -> 0 bytes graphics/AltHUD/GenericAmmoBoxM.png | Bin 94 -> 0 bytes graphics/AltHUD/GenericAmmoBoxR.png | Bin 111 -> 0 bytes graphics/AltHUD/HealthBar0.png | Bin 97 -> 0 bytes graphics/AltHUD/HealthBar1.png | Bin 97 -> 0 bytes graphics/AltHUD/HealthBar2.png | Bin 97 -> 0 bytes graphics/AltHUD/HealthBar3.png | Bin 97 -> 0 bytes graphics/AltHUD/HealthBarD.png | Bin 100 -> 0 bytes graphics/AltHUD/HealthBarS.png | Bin 97 -> 0 bytes graphics/AltHUD/HellblazerCrackshot.png | Bin 147 -> 0 bytes graphics/AltHUD/HellblazerDisplay.png | Bin 137 -> 0 bytes graphics/AltHUD/HellblazerMissile.png | Bin 137 -> 0 bytes graphics/AltHUD/HellblazerRavager.png | Bin 147 -> 0 bytes graphics/AltHUD/HellblazerWarhead.png | Bin 152 -> 0 bytes graphics/AltHUD/ScoreBox.png | Bin 187 -> 0 bytes graphics/AltHUD/SilverBulletDisplay.png | Bin 137 -> 0 bytes graphics/AltHUD/SilverBulletFCB.png | Bin 128 -> 0 bytes graphics/AltHUD/SilverBulletXSB.png | Bin 132 -> 0 bytes graphics/AltHUD/SilverBulletZoomBar.png | Bin 106 -> 0 bytes graphics/AltHUD/SilverBulletZoomDisplay.png | Bin 137 -> 0 bytes graphics/AltHUD/SpreadgunDisplay.png | Bin 137 -> 0 bytes graphics/AltHUD/StatusBox.png | Bin 199 -> 0 bytes graphics/AltHUD/WallbusterDisplay.png | Bin 149 -> 0 bytes graphics/AltHUD/WeaponBox.png | Bin 148 -> 0 bytes graphics/AltHUD/YnykronDisplay.png | Bin 151 -> 0 bytes graphics/{AltHUD => HUD}/AmmoBoxB.png | Bin graphics/{AltHUD => HUD}/AmmoBoxM.png | Bin graphics/{AltHUD => HUD}/AmmoBoxT.png | Bin graphics/HUD/BiosparkBar.png | Bin 138 -> 0 bytes graphics/HUD/BiosparkBarGray.png | Bin 138 -> 0 bytes graphics/HUD/BiosparkBarRed.png | Bin 138 -> 0 bytes graphics/HUD/BiosparkBarSlim.png | Bin 133 -> 0 bytes graphics/HUD/BiosparkBarSlimGray.png | Bin 133 -> 0 bytes graphics/HUD/BiosparkBarSlimRed.png | Bin 133 -> 0 bytes graphics/HUD/BiosparkDisplay.png | Bin 551 -> 136 bytes graphics/{AltHUD => HUD}/BiosparkRed.png | Bin graphics/{AltHUD => HUD}/BiosparkShot.png | Bin graphics/HUD/BlackShell.png | Bin 157 -> 0 bytes graphics/{AltHUD => HUD}/BlastDisplay.png | Bin graphics/{AltHUD => HUD}/BlastRoundActive.png | Bin graphics/{AltHUD => HUD}/BlastRoundInert.png | Bin graphics/HUD/BlueShell.png | Bin 177 -> 0 bytes graphics/HUD/BossHealthBar.png | Bin 110 -> 102 bytes graphics/HUD/BossHealthBarDecay.png | Bin 110 -> 102 bytes graphics/{AltHUD => HUD}/CandyRound.png | Bin graphics/HUD/CandygunDisplay.png | Bin 1746 -> 0 bytes graphics/HUD/DashBar.png | Bin 83 -> 83 bytes graphics/HUD/DeepImpactBar.png | Bin 540 -> 96 bytes graphics/HUD/DeepImpactDisplay.png | Bin 168 -> 140 bytes graphics/HUD/DualExplodiumDisplay.png | Bin 547 -> 0 bytes graphics/HUD/EnemyBar0.png | Bin 84 -> 84 bytes graphics/HUD/EnemyBar1.png | Bin 86 -> 89 bytes graphics/HUD/EnemyBar2.png | Bin 89 -> 87 bytes graphics/HUD/EnemyBar3.png | Bin 86 -> 89 bytes graphics/HUD/EnemyBarD.png | Bin 144 -> 137 bytes graphics/HUD/EnemyBarS.png | Bin 89 -> 89 bytes graphics/HUD/EvisceratorDisplay.png | Bin 154 -> 146 bytes graphics/{AltHUD => HUD}/EvisceratorRound.png | Bin graphics/HUD/EvisceratorShell.png | Bin 447 -> 0 bytes graphics/{AltHUD => HUD}/EvisceratorTight.png | Bin graphics/{AltHUD => HUD}/EvisceratorWide.png | Bin graphics/HUD/ExplodiumDisplay.png | Bin 482 -> 144 bytes graphics/{AltHUD => HUD}/ExplodiumRound.png | Bin graphics/HUD/FuelBar.png | Bin 123 -> 111 bytes graphics/HUD/FuelBarS.png | Bin 125 -> 112 bytes graphics/HUD/GenericAmmoBoxL.png | Bin 115 -> 101 bytes graphics/HUD/GenericAmmoBoxM.png | Bin 95 -> 94 bytes graphics/HUD/GenericAmmoBoxR.png | Bin 241 -> 111 bytes graphics/HUD/GoldShell.png | Bin 168 -> 0 bytes graphics/HUD/GreenShell.png | Bin 168 -> 0 bytes graphics/HUD/HealthBar0.png | Bin 110 -> 97 bytes graphics/HUD/HealthBar1.png | Bin 110 -> 97 bytes graphics/HUD/HealthBar2.png | Bin 110 -> 97 bytes graphics/HUD/HealthBar3.png | Bin 110 -> 97 bytes graphics/HUD/HealthBarD.png | Bin 166 -> 100 bytes graphics/{AltHUD => HUD}/HealthBarF.png | Bin graphics/{AltHUD => HUD}/HealthBarL.png | Bin graphics/{AltHUD => HUD}/HealthBarP.png | Bin graphics/HUD/HealthBarS.png | Bin 110 -> 97 bytes graphics/HUD/HellblazerCrackshot.png | Bin 273 -> 147 bytes graphics/HUD/HellblazerCrackshotLoaded.png | Bin 411 -> 0 bytes graphics/HUD/HellblazerDisplay.png | Bin 174 -> 137 bytes graphics/HUD/HellblazerMissile.png | Bin 273 -> 137 bytes graphics/HUD/HellblazerMissileLoaded.png | Bin 421 -> 0 bytes graphics/HUD/HellblazerRavager.png | Bin 273 -> 147 bytes graphics/HUD/HellblazerRavagerLoaded.png | Bin 417 -> 0 bytes graphics/HUD/HellblazerWarhead.png | Bin 273 -> 152 bytes graphics/HUD/HellblazerWarheadLoaded.png | Bin 406 -> 0 bytes graphics/HUD/Icons/A_CandyBullet.png | Bin 226 -> 0 bytes graphics/HUD/Icons/A_CandyGun.png | Bin 349 -> 0 bytes graphics/HUD/Icons/A_Eviscerator.png | Bin 291 -> 0 bytes graphics/HUD/Icons/A_HellblazerCrackshot.png | Bin 197 -> 0 bytes graphics/HUD/Icons/A_HellblazerMissile.png | Bin 198 -> 0 bytes graphics/HUD/Icons/A_HellblazerRavager.png | Bin 200 -> 0 bytes graphics/HUD/Icons/A_HellblazerWarhead.png | Bin 195 -> 0 bytes graphics/HUD/Icons/A_MRAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_MRGrenade.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_MRRound.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_QuadAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_RayAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_RayBattery.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_RayBolt.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_SMW05Ammo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_SheenAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_ShellsBall.png | Bin 311 -> 0 bytes graphics/HUD/Icons/A_ShellsDragon.png | Bin 307 -> 0 bytes graphics/HUD/Icons/A_ShellsFuck.png | Bin 293 -> 0 bytes graphics/HUD/Icons/A_ShellsGold.png | Bin 314 -> 0 bytes graphics/HUD/Icons/A_ShellsKinylum.png | Bin 310 -> 0 bytes graphics/HUD/Icons/A_ShellsNormal.png | Bin 298 -> 0 bytes graphics/HUD/Icons/A_ShellsSlug.png | Bin 300 -> 0 bytes graphics/HUD/Icons/A_SilverBullet.png | Bin 2273 -> 0 bytes graphics/HUD/Icons/A_SilverBullet2.png | Bin 2324 -> 0 bytes graphics/HUD/Icons/A_SilverBulletBullet.png | Bin 530 -> 0 bytes graphics/HUD/Icons/A_SilverBulletBullet2.png | Bin 567 -> 0 bytes graphics/HUD/Icons/A_SparkBAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_SparkRAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_Sparkster.png | Bin 199 -> 0 bytes graphics/HUD/Icons/A_UltimateAmmo.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_UltimatePod.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/A_Ynykron.png | Bin 1162 -> 0 bytes graphics/HUD/Icons/I_Embiggener.png | Bin 1625 -> 0 bytes graphics/HUD/Icons/I_Fabricator1.png | Bin 1647 -> 0 bytes graphics/HUD/Icons/I_Fabricator2.png | Bin 1802 -> 0 bytes graphics/HUD/Icons/I_Fabricator3.png | Bin 1801 -> 0 bytes graphics/HUD/Icons/I_Fabricator4.png | Bin 1825 -> 0 bytes graphics/HUD/Icons/I_HealthNugget.png | Bin 1336 -> 0 bytes graphics/HUD/Icons/I_Omnisight.png | Bin 1232 -> 0 bytes graphics/HUD/Icons/W_CandyGun.png | Bin 1217 -> 0 bytes graphics/HUD/Icons/W_DeepImpact.png | Bin 2269 -> 0 bytes graphics/HUD/Icons/W_Eviscerator.png | Bin 2303 -> 0 bytes graphics/HUD/Icons/W_ExplodiumGun.png | Bin 1252 -> 0 bytes graphics/HUD/Icons/W_ExplodiumGun2.png | Bin 1678 -> 0 bytes graphics/HUD/Icons/W_Hellblazer.png | Bin 4090 -> 0 bytes graphics/HUD/Icons/W_ItamexHammer.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_MortalRifle.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_NewSparkster.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_PlasmaBlast.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_PlasmaBlast2.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_PuntzerBeta.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_PuntzerGamma.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_Quadravol.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_RafanKos.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_RayKhom.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_SheenHMG.png | Bin 1026 -> 0 bytes graphics/HUD/Icons/W_SilverBullet.png | Bin 15639 -> 0 bytes graphics/HUD/Icons/W_Sparkster.png | Bin 2825 -> 0 bytes graphics/HUD/Icons/W_Spreadgun.png | Bin 867 -> 0 bytes graphics/HUD/Icons/W_Wallbuster.png | Bin 8503 -> 0 bytes graphics/HUD/Icons/W_Ynykron.png | Bin 11551 -> 0 bytes graphics/{AltHUD => HUD}/ItamexBar.png | Bin graphics/{AltHUD => HUD}/ItamexDisplay.png | Bin graphics/HUD/LoadedBlackShell.png | Bin 256 -> 0 bytes graphics/HUD/LoadedBlueShell.png | Bin 287 -> 0 bytes graphics/HUD/LoadedGoldShell.png | Bin 285 -> 0 bytes graphics/HUD/LoadedGreenShell.png | Bin 270 -> 0 bytes graphics/HUD/LoadedPurpleShell.png | Bin 282 -> 0 bytes graphics/HUD/LoadedRedShell.png | Bin 261 -> 0 bytes graphics/HUD/MenuShellBlue.png | Bin 0 -> 129 bytes graphics/HUD/MenuShellGreen.png | Bin 0 -> 120 bytes graphics/HUD/MenuShellPurple.png | Bin 0 -> 129 bytes graphics/HUD/MenuShellRed.png | Bin 0 -> 119 bytes graphics/{AltHUD => HUD}/MisterDisplay.png | Bin graphics/{AltHUD => HUD}/MisterGrenade.png | Bin graphics/{AltHUD => HUD}/MisterRound.png | Bin .../{AltHUD => HUD}/PuntzerBetaDisplay.png | Bin graphics/{AltHUD => HUD}/PuntzerCasing.png | Bin .../{AltHUD => HUD}/PuntzerGammaDisplay.png | Bin graphics/{AltHUD => HUD}/PuntzerRound.png | Bin graphics/HUD/PurpleShell.png | Bin 175 -> 0 bytes graphics/{AltHUD => HUD}/QuadravolCasing.png | Bin graphics/{AltHUD => HUD}/QuadravolDisplay.png | Bin graphics/{AltHUD => HUD}/QuadravolRound.png | Bin graphics/{AltHUD => HUD}/RafankosCasing.png | Bin graphics/{AltHUD => HUD}/RafankosDisplay.png | Bin graphics/{AltHUD => HUD}/RafankosRound.png | Bin .../{AltHUD => HUD}/RafankosRoundGlow.png | Bin graphics/{AltHUD => HUD}/RayKhomBar.png | Bin graphics/{AltHUD => HUD}/RayKhomDisplay.png | Bin graphics/{AltHUD => HUD}/RayKhomRound.png | Bin graphics/HUD/RedShell.png | Bin 166 -> 0 bytes graphics/HUD/ScoreBox.png | Bin 227 -> 187 bytes graphics/{AltHUD => HUD}/SheenCasing.png | Bin graphics/{AltHUD => HUD}/SheenDisplay.png | Bin graphics/{AltHUD => HUD}/SheenRound.png | Bin graphics/{AltHUD => HUD}/ShellBlack.png | Bin graphics/{AltHUD => HUD}/ShellBlue.png | Bin graphics/{AltHUD => HUD}/ShellGold.png | Bin graphics/{AltHUD => HUD}/ShellGreen.png | Bin graphics/{AltHUD => HUD}/ShellPurple.png | Bin graphics/{AltHUD => HUD}/ShellRed.png | Bin graphics/HUD/SilverBulletDisplay.png | Bin 340 -> 137 bytes graphics/HUD/SilverBulletFCB.png | Bin 259 -> 128 bytes .../{AltHUD => HUD}/SilverBulletFCBCasing.png | Bin graphics/HUD/SilverBulletFCBMag.png | Bin 524 -> 0 bytes graphics/HUD/SilverBulletXSB.png | Bin 225 -> 132 bytes .../{AltHUD => HUD}/SilverBulletXSBCasing.png | Bin graphics/HUD/SilverBulletXSBMag.png | Bin 516 -> 0 bytes graphics/HUD/SilverBulletZoomBar.png | Bin 179 -> 106 bytes graphics/HUD/SilverBulletZoomDisplay.png | Bin 138 -> 137 bytes graphics/{AltHUD => HUD}/SparksterDisplay.png | Bin .../SparksterKinylumActive.png | Bin .../{AltHUD => HUD}/SparksterKinylumInert.png | Bin .../{AltHUD => HUD}/SparksterNokronActive.png | Bin .../{AltHUD => HUD}/SparksterNokronInert.png | Bin graphics/HUD/SpreadgunDisplay.png | Bin 191 -> 137 bytes graphics/HUD/StatusBox.png | Bin 203 -> 199 bytes graphics/HUD/WallbusterBlue.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterBlueUsed.png | Bin 128 -> 0 bytes graphics/{AltHUD => HUD}/WallbusterCursor.png | Bin graphics/HUD/WallbusterDisplay.png | Bin 188 -> 149 bytes graphics/HUD/WallbusterEmpty.png | Bin 122 -> 0 bytes graphics/HUD/WallbusterGreen.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterGreenUsed.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterMenu.png | Bin 191 -> 199 bytes graphics/HUD/WallbusterPurple.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterPurpleUsed.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterRed.png | Bin 128 -> 0 bytes graphics/HUD/WallbusterRedUsed.png | Bin 122 -> 0 bytes graphics/HUD/WeaponBox.png | Bin 157 -> 148 bytes graphics/HUD/YnykronBarA.png | Bin 348 -> 0 bytes graphics/HUD/YnykronBarB.png | Bin 329 -> 0 bytes graphics/{AltHUD => HUD}/YnykronBarBeam.png | Bin graphics/{AltHUD => HUD}/YnykronBarVortex.png | Bin graphics/HUD/YnykronDisplay.png | Bin 510 -> 151 bytes graphics/{AltHUD => HUD}/YnykronIconBeam.png | Bin .../{AltHUD => HUD}/YnykronIconVortex.png | Bin graphics/HUD/YnykronSideA.png | Bin 180 -> 0 bytes graphics/HUD/YnykronSideB.png | Bin 169 -> 0 bytes language.def_menu | 6 +- language.es_menu | 6 +- language.version | 4 +- menudef.txt | 3 +- zscript.txt | 3 - zscript/dlc1/swwm_ammoitems_dlc.zsc | 152 ---- zscript/dlc1/swwm_blastin.zsc | 6 - zscript/dlc1/swwm_blueballs.zsc | 5 - zscript/dlc1/swwm_dlcweapons_althud.zsc | 1 - zscript/dlc1/swwm_hammertime.zsc | 5 - zscript/dlc1/swwm_heavymahsheengun.zsc | 5 - zscript/dlc1/swwm_mister.zsc | 5 - zscript/dlc1/swwm_notashotgun.zsc | 5 - zscript/dlc1/swwm_rebolber.zsc | 5 - zscript/dlc1/swwm_supermarioworld.zsc | 5 - zscript/dlc1/swwm_thiccbolts.zsc | 5 - zscript/dlc1/swwm_ultimate.zsc | 5 - zscript/hud/swwm_althud.zsc | 790 ----------------- zscript/hud/swwm_hud.zsc | 807 ++++++++++++++---- zscript/items/swwm_ammoextra.zsc | 25 - zscript/items/swwm_ammoitems.zsc | 212 ----- zscript/items/swwm_armor.zsc | 12 - zscript/items/swwm_health.zsc | 16 - zscript/items/swwm_powerups.zsc | 49 -- zscript/weapons/swwm_baseweapon.zsc | 4 - zscript/weapons/swwm_blazeit.zsc | 5 - zscript/weapons/swwm_cbt.zsc | 5 - zscript/weapons/swwm_cbt_ui.zsc | 26 +- zscript/weapons/swwm_danmaku.zsc | 5 - zscript/weapons/swwm_deathlydeathcannon.zsc | 14 +- zscript/weapons/swwm_deepdarkimpact.zsc | 14 +- zscript/weapons/swwm_shot.zsc | 5 - zscript/weapons/swwm_sparkyboi.zsc | 13 - zscript/weapons/swwm_splode.zsc | 6 - zscript/weapons/swwm_tastytreat.zsc | 5 - zscript/weapons/swwm_thiccboolet.zsc | 14 +- zscript/weapons/swwm_weapons_althud.zsc | 298 ------- zscript/weapons/swwm_weapons_hud.zsc | 395 +++------ 276 files changed, 789 insertions(+), 2160 deletions(-) delete mode 100644 graphics/AltHUD/BiosparkDisplay.png delete mode 100644 graphics/AltHUD/DashBar.png delete mode 100644 graphics/AltHUD/DeepImpactBar.png delete mode 100644 graphics/AltHUD/DeepImpactDisplay.png delete mode 100644 graphics/AltHUD/EvisceratorDisplay.png delete mode 100644 graphics/AltHUD/ExplodiumDisplay.png delete mode 100644 graphics/AltHUD/FuelBar.png delete mode 100644 graphics/AltHUD/FuelBarS.png delete mode 100644 graphics/AltHUD/GenericAmmoBoxL.png delete mode 100644 graphics/AltHUD/GenericAmmoBoxM.png delete mode 100644 graphics/AltHUD/GenericAmmoBoxR.png delete mode 100644 graphics/AltHUD/HealthBar0.png delete mode 100644 graphics/AltHUD/HealthBar1.png delete mode 100644 graphics/AltHUD/HealthBar2.png delete mode 100644 graphics/AltHUD/HealthBar3.png delete mode 100644 graphics/AltHUD/HealthBarD.png delete mode 100644 graphics/AltHUD/HealthBarS.png delete mode 100644 graphics/AltHUD/HellblazerCrackshot.png delete mode 100644 graphics/AltHUD/HellblazerDisplay.png delete mode 100644 graphics/AltHUD/HellblazerMissile.png delete mode 100644 graphics/AltHUD/HellblazerRavager.png delete mode 100644 graphics/AltHUD/HellblazerWarhead.png delete mode 100644 graphics/AltHUD/ScoreBox.png delete mode 100644 graphics/AltHUD/SilverBulletDisplay.png delete mode 100644 graphics/AltHUD/SilverBulletFCB.png delete mode 100644 graphics/AltHUD/SilverBulletXSB.png delete mode 100644 graphics/AltHUD/SilverBulletZoomBar.png delete mode 100644 graphics/AltHUD/SilverBulletZoomDisplay.png delete mode 100644 graphics/AltHUD/SpreadgunDisplay.png delete mode 100644 graphics/AltHUD/StatusBox.png delete mode 100644 graphics/AltHUD/WallbusterDisplay.png delete mode 100644 graphics/AltHUD/WeaponBox.png delete mode 100644 graphics/AltHUD/YnykronDisplay.png rename graphics/{AltHUD => HUD}/AmmoBoxB.png (100%) rename graphics/{AltHUD => HUD}/AmmoBoxM.png (100%) rename graphics/{AltHUD => HUD}/AmmoBoxT.png (100%) delete mode 100644 graphics/HUD/BiosparkBar.png delete mode 100644 graphics/HUD/BiosparkBarGray.png delete mode 100644 graphics/HUD/BiosparkBarRed.png delete mode 100644 graphics/HUD/BiosparkBarSlim.png delete mode 100644 graphics/HUD/BiosparkBarSlimGray.png delete mode 100644 graphics/HUD/BiosparkBarSlimRed.png rename graphics/{AltHUD => HUD}/BiosparkRed.png (100%) rename graphics/{AltHUD => HUD}/BiosparkShot.png (100%) delete mode 100644 graphics/HUD/BlackShell.png rename graphics/{AltHUD => HUD}/BlastDisplay.png (100%) rename graphics/{AltHUD => HUD}/BlastRoundActive.png (100%) rename graphics/{AltHUD => HUD}/BlastRoundInert.png (100%) delete mode 100644 graphics/HUD/BlueShell.png rename graphics/{AltHUD => HUD}/CandyRound.png (100%) delete mode 100644 graphics/HUD/CandygunDisplay.png delete mode 100644 graphics/HUD/DualExplodiumDisplay.png rename graphics/{AltHUD => HUD}/EvisceratorRound.png (100%) delete mode 100644 graphics/HUD/EvisceratorShell.png rename graphics/{AltHUD => HUD}/EvisceratorTight.png (100%) rename graphics/{AltHUD => HUD}/EvisceratorWide.png (100%) rename graphics/{AltHUD => HUD}/ExplodiumRound.png (100%) delete mode 100644 graphics/HUD/GoldShell.png delete mode 100644 graphics/HUD/GreenShell.png rename graphics/{AltHUD => HUD}/HealthBarF.png (100%) rename graphics/{AltHUD => HUD}/HealthBarL.png (100%) rename graphics/{AltHUD => HUD}/HealthBarP.png (100%) delete mode 100644 graphics/HUD/HellblazerCrackshotLoaded.png delete mode 100644 graphics/HUD/HellblazerMissileLoaded.png delete mode 100644 graphics/HUD/HellblazerRavagerLoaded.png delete mode 100644 graphics/HUD/HellblazerWarheadLoaded.png delete mode 100644 graphics/HUD/Icons/A_CandyBullet.png delete mode 100644 graphics/HUD/Icons/A_CandyGun.png delete mode 100644 graphics/HUD/Icons/A_Eviscerator.png delete mode 100644 graphics/HUD/Icons/A_HellblazerCrackshot.png delete mode 100644 graphics/HUD/Icons/A_HellblazerMissile.png delete mode 100644 graphics/HUD/Icons/A_HellblazerRavager.png delete mode 100644 graphics/HUD/Icons/A_HellblazerWarhead.png delete mode 100644 graphics/HUD/Icons/A_MRAmmo.png delete mode 100644 graphics/HUD/Icons/A_MRGrenade.png delete mode 100644 graphics/HUD/Icons/A_MRRound.png delete mode 100644 graphics/HUD/Icons/A_QuadAmmo.png delete mode 100644 graphics/HUD/Icons/A_RayAmmo.png delete mode 100644 graphics/HUD/Icons/A_RayBattery.png delete mode 100644 graphics/HUD/Icons/A_RayBolt.png delete mode 100644 graphics/HUD/Icons/A_SMW05Ammo.png delete mode 100644 graphics/HUD/Icons/A_SheenAmmo.png delete mode 100644 graphics/HUD/Icons/A_ShellsBall.png delete mode 100644 graphics/HUD/Icons/A_ShellsDragon.png delete mode 100644 graphics/HUD/Icons/A_ShellsFuck.png delete mode 100644 graphics/HUD/Icons/A_ShellsGold.png delete mode 100644 graphics/HUD/Icons/A_ShellsKinylum.png delete mode 100644 graphics/HUD/Icons/A_ShellsNormal.png delete mode 100644 graphics/HUD/Icons/A_ShellsSlug.png delete mode 100644 graphics/HUD/Icons/A_SilverBullet.png delete mode 100644 graphics/HUD/Icons/A_SilverBullet2.png delete mode 100644 graphics/HUD/Icons/A_SilverBulletBullet.png delete mode 100644 graphics/HUD/Icons/A_SilverBulletBullet2.png delete mode 100644 graphics/HUD/Icons/A_SparkBAmmo.png delete mode 100644 graphics/HUD/Icons/A_SparkRAmmo.png delete mode 100644 graphics/HUD/Icons/A_Sparkster.png delete mode 100644 graphics/HUD/Icons/A_UltimateAmmo.png delete mode 100644 graphics/HUD/Icons/A_UltimatePod.png delete mode 100644 graphics/HUD/Icons/A_Ynykron.png delete mode 100644 graphics/HUD/Icons/I_Embiggener.png delete mode 100644 graphics/HUD/Icons/I_Fabricator1.png delete mode 100644 graphics/HUD/Icons/I_Fabricator2.png delete mode 100644 graphics/HUD/Icons/I_Fabricator3.png delete mode 100644 graphics/HUD/Icons/I_Fabricator4.png delete mode 100644 graphics/HUD/Icons/I_HealthNugget.png delete mode 100644 graphics/HUD/Icons/I_Omnisight.png delete mode 100644 graphics/HUD/Icons/W_CandyGun.png delete mode 100644 graphics/HUD/Icons/W_DeepImpact.png delete mode 100644 graphics/HUD/Icons/W_Eviscerator.png delete mode 100644 graphics/HUD/Icons/W_ExplodiumGun.png delete mode 100644 graphics/HUD/Icons/W_ExplodiumGun2.png delete mode 100644 graphics/HUD/Icons/W_Hellblazer.png delete mode 100644 graphics/HUD/Icons/W_ItamexHammer.png delete mode 100644 graphics/HUD/Icons/W_MortalRifle.png delete mode 100644 graphics/HUD/Icons/W_NewSparkster.png delete mode 100644 graphics/HUD/Icons/W_PlasmaBlast.png delete mode 100644 graphics/HUD/Icons/W_PlasmaBlast2.png delete mode 100644 graphics/HUD/Icons/W_PuntzerBeta.png delete mode 100644 graphics/HUD/Icons/W_PuntzerGamma.png delete mode 100644 graphics/HUD/Icons/W_Quadravol.png delete mode 100644 graphics/HUD/Icons/W_RafanKos.png delete mode 100644 graphics/HUD/Icons/W_RayKhom.png delete mode 100644 graphics/HUD/Icons/W_SheenHMG.png delete mode 100644 graphics/HUD/Icons/W_SilverBullet.png delete mode 100644 graphics/HUD/Icons/W_Sparkster.png delete mode 100644 graphics/HUD/Icons/W_Spreadgun.png delete mode 100644 graphics/HUD/Icons/W_Wallbuster.png delete mode 100644 graphics/HUD/Icons/W_Ynykron.png rename graphics/{AltHUD => HUD}/ItamexBar.png (100%) rename graphics/{AltHUD => HUD}/ItamexDisplay.png (100%) delete mode 100644 graphics/HUD/LoadedBlackShell.png delete mode 100644 graphics/HUD/LoadedBlueShell.png delete mode 100644 graphics/HUD/LoadedGoldShell.png delete mode 100644 graphics/HUD/LoadedGreenShell.png delete mode 100644 graphics/HUD/LoadedPurpleShell.png delete mode 100644 graphics/HUD/LoadedRedShell.png create mode 100644 graphics/HUD/MenuShellBlue.png create mode 100644 graphics/HUD/MenuShellGreen.png create mode 100644 graphics/HUD/MenuShellPurple.png create mode 100644 graphics/HUD/MenuShellRed.png rename graphics/{AltHUD => HUD}/MisterDisplay.png (100%) rename graphics/{AltHUD => HUD}/MisterGrenade.png (100%) rename graphics/{AltHUD => HUD}/MisterRound.png (100%) rename graphics/{AltHUD => HUD}/PuntzerBetaDisplay.png (100%) rename graphics/{AltHUD => HUD}/PuntzerCasing.png (100%) rename graphics/{AltHUD => HUD}/PuntzerGammaDisplay.png (100%) rename graphics/{AltHUD => HUD}/PuntzerRound.png (100%) delete mode 100644 graphics/HUD/PurpleShell.png rename graphics/{AltHUD => HUD}/QuadravolCasing.png (100%) rename graphics/{AltHUD => HUD}/QuadravolDisplay.png (100%) rename graphics/{AltHUD => HUD}/QuadravolRound.png (100%) rename graphics/{AltHUD => HUD}/RafankosCasing.png (100%) rename graphics/{AltHUD => HUD}/RafankosDisplay.png (100%) rename graphics/{AltHUD => HUD}/RafankosRound.png (100%) rename graphics/{AltHUD => HUD}/RafankosRoundGlow.png (100%) rename graphics/{AltHUD => HUD}/RayKhomBar.png (100%) rename graphics/{AltHUD => HUD}/RayKhomDisplay.png (100%) rename graphics/{AltHUD => HUD}/RayKhomRound.png (100%) delete mode 100644 graphics/HUD/RedShell.png rename graphics/{AltHUD => HUD}/SheenCasing.png (100%) rename graphics/{AltHUD => HUD}/SheenDisplay.png (100%) rename graphics/{AltHUD => HUD}/SheenRound.png (100%) rename graphics/{AltHUD => HUD}/ShellBlack.png (100%) rename graphics/{AltHUD => HUD}/ShellBlue.png (100%) rename graphics/{AltHUD => HUD}/ShellGold.png (100%) rename graphics/{AltHUD => HUD}/ShellGreen.png (100%) rename graphics/{AltHUD => HUD}/ShellPurple.png (100%) rename graphics/{AltHUD => HUD}/ShellRed.png (100%) rename graphics/{AltHUD => HUD}/SilverBulletFCBCasing.png (100%) delete mode 100644 graphics/HUD/SilverBulletFCBMag.png rename graphics/{AltHUD => HUD}/SilverBulletXSBCasing.png (100%) delete mode 100644 graphics/HUD/SilverBulletXSBMag.png rename graphics/{AltHUD => HUD}/SparksterDisplay.png (100%) rename graphics/{AltHUD => HUD}/SparksterKinylumActive.png (100%) rename graphics/{AltHUD => HUD}/SparksterKinylumInert.png (100%) rename graphics/{AltHUD => HUD}/SparksterNokronActive.png (100%) rename graphics/{AltHUD => HUD}/SparksterNokronInert.png (100%) delete mode 100644 graphics/HUD/WallbusterBlue.png delete mode 100644 graphics/HUD/WallbusterBlueUsed.png rename graphics/{AltHUD => HUD}/WallbusterCursor.png (100%) delete mode 100644 graphics/HUD/WallbusterEmpty.png delete mode 100644 graphics/HUD/WallbusterGreen.png delete mode 100644 graphics/HUD/WallbusterGreenUsed.png delete mode 100644 graphics/HUD/WallbusterPurple.png delete mode 100644 graphics/HUD/WallbusterPurpleUsed.png delete mode 100644 graphics/HUD/WallbusterRed.png delete mode 100644 graphics/HUD/WallbusterRedUsed.png delete mode 100644 graphics/HUD/YnykronBarA.png delete mode 100644 graphics/HUD/YnykronBarB.png rename graphics/{AltHUD => HUD}/YnykronBarBeam.png (100%) rename graphics/{AltHUD => HUD}/YnykronBarVortex.png (100%) rename graphics/{AltHUD => HUD}/YnykronIconBeam.png (100%) rename graphics/{AltHUD => HUD}/YnykronIconVortex.png (100%) delete mode 100644 graphics/HUD/YnykronSideA.png delete mode 100644 graphics/HUD/YnykronSideB.png delete mode 100644 zscript/dlc1/swwm_dlcweapons_althud.zsc delete mode 100644 zscript/hud/swwm_althud.zsc delete mode 100644 zscript/weapons/swwm_weapons_althud.zsc diff --git a/cvarinfo.base b/cvarinfo.base index 82d0fd327..2ba95b26f 100644 --- a/cvarinfo.base +++ b/cvarinfo.base @@ -121,8 +121,7 @@ server bool swwm_nodeathexit = false; // completely sidesteps the inventory res server bool swwm_extendedpickup = false; // items will have an additional "virtual hitbox" that's the same size as vanilla nosave bool swwm_voicelog = false; // adds player voicelines to the message log nosave bool swwm_skipskill = false; // skips skill confirmations -nosave bool swwm_althud = false; // alternate, more compact hud (like in the side mods) -nosave bool swwm_althud_trimammo = false; // only show ammo for owned weapons +nosave bool swwm_hudtrimammo = false; // only show ammo for owned weapons // minimap settings nosave bool swwm_mm_enable = true; // show a minimap below the score counter diff --git a/graphics/AltHUD/BiosparkDisplay.png b/graphics/AltHUD/BiosparkDisplay.png deleted file mode 100644 index 128285e226bbc2908ff8228ba1c0484daa400140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2VBlk6W?*1=P~otYfq_9Hz$e6&0R}jD1Oy}$ z6bu|366zEB_e<(8;bmZ8U@8gn3uZX;#L;;%0|SGsr;B3_;B&?Fzl%j>b$!zQ4wUKr>mdKI;Vst0Prav{Qv*} diff --git a/graphics/AltHUD/DashBar.png b/graphics/AltHUD/DashBar.png deleted file mode 100644 index 88de7a5c3affefd2b95539d30d5a396fc3462793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83 zcmeAS@N?(olHy`uVBq!ia0y~yV5neVU|`~4V_;yId{?5Bfq_BF)5S4F<9za;`l%1? n4{JzlYk2zR*+mD5a|{fnkt~sMZpqyY3=9mOu6{1-oD!M^>h4;HSEn;6_?3rubCIKGvEfq}u()z4*}Q$iB}XG9!S diff --git a/graphics/AltHUD/DeepImpactDisplay.png b/graphics/AltHUD/DeepImpactDisplay.png deleted file mode 100644 index 1cc86b6766358060efd82a5679e0687e316ae6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6V36WqW?*0l;%yUWU|^64@Ck8cfB_C30RagG z1p^0%g!+X3{gV1ico`TNm`Z~Df*H;{adckHz`&sB>Eak7aXC35otZg|jm^x>AR$re knogLQK|)$mLP8T01D_WY<7>U+93WFYUHx3vIVCg!0F3Y)-2eap diff --git a/graphics/AltHUD/EvisceratorDisplay.png b/graphics/AltHUD/EvisceratorDisplay.png deleted file mode 100644 index 9520ae6a1fa3d9b8cf52f3fee8479932d76b3c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8U=ZbCW?*1gzV69?1_lO+0G|+71{mPr5fG42 zP%v)f pnnpsZ+_oIEFpY%7w1kv4W`?dbrWd>0g=c}x^mO%eS?83{1ORBJAiDqn diff --git a/graphics/AltHUD/FuelBar.png b/graphics/AltHUD/FuelBar.png deleted file mode 100644 index 3b545dd459a5ff851691e39903fb0c10bf25557c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0y~yV5neVU|`~4V_;yId{?5Bfq}uy)5S4F<9u?8NAi#J z4J?-=E=i|*eF^ClyK*Oh^xw~Fghg0RyE Q1_lNOPgg&ebxsLQ08jiOFaQ7m diff --git a/graphics/AltHUD/FuelBarS.png b/graphics/AltHUD/FuelBarS.png deleted file mode 100644 index 15c6117268fa3d59ea5f0c943675964515ae3a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 zcmeAS@N?(olHy`uVBq!ia0y~yV5neVU|`~4V_;yId{?5Bfq}u?)5S4F<9xD@xA*V! z4J>(gcO4awlg=0q%frCHz~JfX=d#Wzp$PzgL=^@A diff --git a/graphics/AltHUD/GenericAmmoBoxR.png b/graphics/AltHUD/GenericAmmoBoxR.png deleted file mode 100644 index 1946be32b5de76b30b3cba1e1dd8bd1112cc1698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ooVBqFpV_;y|Rc(HWfq}uy)5S4_<9c#|$BO^! z6CQk+&&YL-!$adwdP2gF^G6z3R-8^0m=N&e{6Xap^BWr<+AA|NGv6s=*zdq?9{=X# RQw9bG22WQ%mvv4FO#lgmCHw#Y diff --git a/graphics/AltHUD/HealthBar0.png b/graphics/AltHUD/HealthBar0.png deleted file mode 100644 index 7514d1283ebeb90e54ef3c3bb90d82bcf09997b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{WDz$e6YCIiD628RC( z47Sg|w=*y>2z$CXhHykDCmvvpa5_05(svgRL#YyzXkKfa69WSSgQu&X%Q~loCIHM+ B7Y+ab diff --git a/graphics/AltHUD/HealthBar1.png b/graphics/AltHUD/HealthBar1.png deleted file mode 100644 index 1e480ff06628c3dcb5d6241803c3ab405a22ff5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{WDz$e6&VdhMRGiMn7 z|4(0HoX5bxAnfVl7{U>qoOpmW!s+CMNZ(yN45dm;qIs=xP7DkT44$rjF6*2UngAE1 B7<>Q# diff --git a/graphics/AltHUD/HealthBar2.png b/graphics/AltHUD/HealthBar2.png deleted file mode 100644 index b4858b97009fff93f9f5d1f705d7ec36a6b6fa9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{WDz$e7jmtkfa!ED> diff --git a/graphics/AltHUD/HealthBar3.png b/graphics/AltHUD/HealthBar3.png deleted file mode 100644 index 1a053fc1ab65b1f8816a062a662310f1daf7d985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{WDz$e6YW~=;}jhg@O z8lNfb_F`aQ5cYI&4B?1QPCURG;dF9Br0*^shEgRa(Y)3;Ck6%v22WQ%mvv4FO#n9# B84Lgb diff --git a/graphics/AltHUD/HealthBarD.png b/graphics/AltHUD/HealthBarD.png deleted file mode 100644 index 4f34d7ae6f17742256faf967e740f04cda8315ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{W1z$e6&fq`M>%$aA- zocaI%fBve^^$ZLQ!k#XUAso@koT&#GBTh_=^xeh7F#kJKma^@iE(Qh$22WQ%mvv4F FO#tMs9WVd@ diff --git a/graphics/AltHUD/HealthBarS.png b/graphics/AltHUD/HealthBarS.png deleted file mode 100644 index 829203140fd7c637a44796e6b67178b1c748cbd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{WDz$e6Y=FFLA&Yb!G z|Nl(|T}=iC24PPZ#}JO_BW?*1=x522Afq_9Hz$e7DkpT)gcmxC_ z6ch{`91`ji`uAVmY~sMcz`#@z8Vvu%E7sn6|*<=lG=0=7#7e|2tsj`v| gZVm}U1IFVdQ&MBb@04I1J=>Px# diff --git a/graphics/AltHUD/HellblazerMissile.png b/graphics/AltHUD/HellblazerMissile.png deleted file mode 100644 index 2804f44c443a28fda184e7a34ce4c5b54fb5dfda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|?loW?*1Qt-T$=z`!6H;1lASUzE$hz+lY5 zkfy{i)0g2)2gCoX43GR@vN13)FqQ=Q1v5B2yOGAgz@X&m;uyjqo19cyYM7Y7B_bjs ql2FCZ!sGM%;FI~gzuz-tVCd53@mttG(SU)0fx*+&&t;ucLK6T$v?KTc diff --git a/graphics/AltHUD/HellblazerRavager.png b/graphics/AltHUD/HellblazerRavager.png deleted file mode 100644 index 4749268eba5ece513a424cdaddaaf57fc460bb06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|{87V_;yI9(*jDfq@~))5S4_<9g{?L%|jY z0hf#0LtnQQIGN1hTa)mxWDT2-N8R5skz`)??>gTe~DWM4f Df~_|i diff --git a/graphics/AltHUD/HellblazerWarhead.png b/graphics/AltHUD/HellblazerWarhead.png deleted file mode 100644 index f398673f6f6fc9cf5442a3788dc7ac78dee36264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|?loW?*1Qt-T$=z`&pw;1lA?00zbkX~rB3 zz6>+d7|x_AF*GpzpXtkRri0=CRR+H0cONq_Fff(``2{mLJiC#`z`&sD>Eal|A)B1= z_05Td1dje$H#HAD;7Z{(*pRVgCZ~Y`2NxF?14E`K>*;q%+cH2lc)I$ztaD0e0sw@g BDS7|^ diff --git a/graphics/AltHUD/ScoreBox.png b/graphics/AltHUD/ScoreBox.png deleted file mode 100644 index 1bca2a6d78b3e0d62682bb3c808a816c5f9eaa05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0y~yU@&B0VBqFpW?*1=xOnPQ1_lPj0G|+71{mPr5fG42 zP%vo^P;7#NsJg8YIR&OC8+Ud+J2;O^<-7@~20>I6eB z1_O>GUsmP5{VyLQSiaNZjtIx8o2}pdcAU6&s7jqD^N!6q4i*dN`IFpSCWKZU3`-Ts jF1TN+9rpf66NiUg)=`%E_vi0s1v$dg)z4*}Q$iB}v*$YA diff --git a/graphics/AltHUD/SilverBulletDisplay.png b/graphics/AltHUD/SilverBulletDisplay.png deleted file mode 100644 index c815d621a33c4278b7366e72794f5dda44d91066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU=U_uW?*2*_MGsCfq_9Hz$e6&0R}jD1Oy}$ z6bu|366zEB_e<(8;bmZ8U@8gn3uZX;#L;;%0|SGcr;B3FMg{vd$@?2>`P`9zp;B diff --git a/graphics/AltHUD/SilverBulletFCB.png b/graphics/AltHUD/SilverBulletFCB.png deleted file mode 100644 index fda477d7fd61ed92748406fe3595feb06e026d1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8U|{B8V_;x#{r}aQfq}u@)5S4_<9hG$jhqbu zB1bPMTdXeLaV-9T@0)+Gj~rqw>B(N)I=4|^k*=*`?#q`dx99AseUr=8b3Bggc-(=i jy6#onMmF;HI~bXNYWAC0Zfa#bP0l+XkKMzJmz diff --git a/graphics/AltHUD/SilverBulletXSB.png b/graphics/AltHUD/SilverBulletXSB.png deleted file mode 100644 index 1d336045bcb760e9a2ec31f2fc3916399fe542d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8U|{B8V_;x#{r}aQfq}u>)5S4_<9hO(oo~+6 zoBAfVMPEN}BvC)_XhM$e(FVSAa<#`2CfRjQe0pu`W*!jOzHV-6LdDlPjM5g>-z=G# knGe^yY5ccm7Gz+kPZSU2Uwn|Afq{X+)78&qol`;+098gS1ONa4 diff --git a/graphics/AltHUD/SilverBulletZoomBar.png b/graphics/AltHUD/SilverBulletZoomBar.png deleted file mode 100644 index c1c8c2bedd6960fc16698a81d169410c961dd57c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0y~yU;wdMIoKE&7-~{#GZ+{c3_V>OLpZJ{rzkM|i%Km>HT)mbbv>O;1I@fdFThSo-jDdlH!PC{x JWt~$(69C2|Alv`| diff --git a/graphics/AltHUD/SilverBulletZoomDisplay.png b/graphics/AltHUD/SilverBulletZoomDisplay.png deleted file mode 100644 index 656f7db18d4cb59837aa84c1067422a6271876ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBlt9W?*1wIU@j)kO=Szabju^E(?^3_L`PwInS5{QvNX sG0xR~UroY~k58GIm8bllFEN>MU$yjdyB61T3=9kmp00i_>zopr07?EZumAu6 diff --git a/graphics/AltHUD/StatusBox.png b/graphics/AltHUD/StatusBox.png deleted file mode 100644 index c418c5b346db569391423ed231ab4f984e3178ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0y~yV5nnYU=U|vW?*2j|MpCifq_9Wz$e6&fq_B6z`-G* zKB0d<0~m1d2na|hzy&v|Toz?uU|=l?@(TvZp9$F6p~b+!5a8+J7-G?z9AP=Ryx#FMV`u%(7luTe;8r=9R(pi(i;jf#Q2!kslThS$ZCX)%GbsPa! ntLi&mtE>N2cF;TIJus!DJ?p_VoP>>~_u6{1-oD!MLP5d6 z!6BhOp?|-m{t{jW1_q{*AirRSGfy0y7c($0XnDFghG?8m*6?O-3Snz=aa0fpTwp2t rh>7JK7mq--sM}lFW#5c68ylDy{Cs>nxQf`UK*oEz`njxgN@xNAJp>_z diff --git a/graphics/AltHUD/WeaponBox.png b/graphics/AltHUD/WeaponBox.png deleted file mode 100644 index 71898b066d6fdbc4adad3fc3d80b225b9c9e45bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0y~yUS_6B-AJL@0ZkH!pp$Gz*G|C7tCwkFqH)P1v8v^;^@4Xfq_BC)5S4F;&O6AdNWfP8=IM%Mnd8u w&e>C0xn|6i5cpmdKI;Vst0Fp5zkpKVy diff --git a/graphics/AltHUD/AmmoBoxB.png b/graphics/HUD/AmmoBoxB.png similarity index 100% rename from graphics/AltHUD/AmmoBoxB.png rename to graphics/HUD/AmmoBoxB.png diff --git a/graphics/AltHUD/AmmoBoxM.png b/graphics/HUD/AmmoBoxM.png similarity index 100% rename from graphics/AltHUD/AmmoBoxM.png rename to graphics/HUD/AmmoBoxM.png diff --git a/graphics/AltHUD/AmmoBoxT.png b/graphics/HUD/AmmoBoxT.png similarity index 100% rename from graphics/AltHUD/AmmoBoxT.png rename to graphics/HUD/AmmoBoxT.png diff --git a/graphics/HUD/BiosparkBar.png b/graphics/HUD/BiosparkBar.png deleted file mode 100644 index 804110bf726501589e270e60cbd9de8c5e214544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U|?fmW?*2@Zgo~*U|>)T@Ck9Xk&%hC)F_QM zo>XVMZh`x$gZ?*f#NT^T`uKhCi$6<0{lD_e_}?Z51_l*R7sn6|+2klwThYE5|Mu7O tyZd~9x4&I^*>?|yshgkQskUHZczVQE^hwv+N(Kf722WQ%mvv4FO#pyEGCcqQ diff --git a/graphics/HUD/BiosparkBarGray.png b/graphics/HUD/BiosparkBarGray.png deleted file mode 100644 index 898cf80bdb367324f0bbad21f0804f4d2facd18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U|?fmW?*2@Zgo~*U|>)T@Ck7h5fPD*kx@`k zP*YRW(a|wCH+OV&ba!|6_4N%235kr1bm_8K%)r2);_2cT!XcX+Woj$hH{;*_dVY7G r@9*}vD=+)*!7z36^E=fRObkzt*or>sT3gA$z`)??>gTe~DWM4fsQ)ER diff --git a/graphics/HUD/BiosparkBarRed.png b/graphics/HUD/BiosparkBarRed.png deleted file mode 100644 index 8d1ee5d5c5e417c225499b9eba0f8db2752b465f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmeAS@N?(olHy`uVBq!ia0y~yV31&7U|?fmW?*2@Zgo~*U|>)T@Ck9Xk&%hjP^mN4 zT4<+t$kX^qu<4f+mp@&xe>c_tyS4cL=PN6+Sr#!cFsOLCIEHY@CP$gtiuTR;x4)j> t-RJwe{q4%jzI!lC-TeGcwFMKy(<8Q`PrBAtGB7YOc)I$ztaD0e0sx59F6jUO diff --git a/graphics/HUD/BiosparkBarSlim.png b/graphics/HUD/BiosparkBarSlim.png deleted file mode 100644 index 169a6f803e2179a2c2ac184036e8b2d5d2482bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0y~yVBle3U|?fmW?*1oJ&?4Cfq_9Wz$e7jMn)#mQlm85 zcv7A1x&`j14*K7`5r6MV>ErjkFa9k3^#95;<9{H<@}4e^Asn*FQG!>wTzuXiYf;${@qmn@7Ch~pRcUQW?96*z##AG;uyjqn;a#0mCMEF{lSKp o|8{?OU|GDNDgFLDb|r?$eR6?q0h(_a7#J8lUHx3vIVCg!0NQ{oVgLXD diff --git a/graphics/HUD/BiosparkDisplay.png b/graphics/HUD/BiosparkDisplay.png index cd0b3084312db193b40786d93a64329002097f4a..128285e226bbc2908ff8228ba1c0484daa400140 100644 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0y~yVBlb2VBlk6W?*1=P~otYfq_9Hz$e6&0R}jD1Oy}$ z6bu|366zEB_e<(8;bmZ8U@8gn3uZX;#L;;%0|SGsr;B3_;B&?Fzl%j>b$!zQ4wUKr>mdKI;Vst0Prav{Qv*} literal 551 zcmeAS@N?(olHy`uVBq!ia0y~yV2}l24rT@hhD6`#whRo6;sHJ(t_)zHuB6Psz`(}D z%)ukT$;86T#>L0R$VBnxADz7M^pe&)JEGw@pr=%vYq%NkRA*Q7%rLHBW zqou5_rJ}Aat*Nc5uB)!Cr>|GZ>*zltY>HY^HB$Wolt#Vr6e`<&aSC zWNq(c?cieLd+8|OAqRnmhpn!=cZio~ zGzQ(ddw1^ldcHiBmYYS-_t%|N*}VCM&0;kLlgWXXALnnalqs7$YuUjXwU?&J0Z(7w z{##UQV=nCB{Pt&-&0BdZP9EPd!PaYQgEI|QSX61oX9Y?rsmoZh7dXz5Ii8mI)H3P8-yYE`6`P}TzQ5WUCUNP|haGq3Z`*y8|Bzp61*W}V-D9Eu!Lh324=BPtUHx3vIVCg!0Irp!+5i9m diff --git a/graphics/AltHUD/BiosparkRed.png b/graphics/HUD/BiosparkRed.png similarity index 100% rename from graphics/AltHUD/BiosparkRed.png rename to graphics/HUD/BiosparkRed.png diff --git a/graphics/AltHUD/BiosparkShot.png b/graphics/HUD/BiosparkShot.png similarity index 100% rename from graphics/AltHUD/BiosparkShot.png rename to graphics/HUD/BiosparkShot.png diff --git a/graphics/HUD/BlackShell.png b/graphics/HUD/BlackShell.png deleted file mode 100644 index 373f1e7e15253e6b33f8b95da0705d591d560f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBq9nV_;wq&F@{nz`&5=>Eal|aox9jBkv&t z5!Uy$k#PsT12(%_X-$~XDSJa_QHh}D!Y%P#4>~^Gz5CcM_D`MdpFOd>0{2swo|E4e z#pvU8a;eDkIlLA*%nFEal|aozO9Zr(!< zBCHp0raLFBbrD>0B*ekXtwlAfh~LDCJ>`o-gTSF5n;(>Oim6Gy+;D$gNlun*SvF(D zcb_}!^lw#jFZgt1Qt_P+9DFeb$K;mrD=_rjl-bEqKS9#0#3%Gj!aI>dM%S4KIhRbS i=(lBPoKyFld(8&z$vqSI88a|2FnGH9xvXj28J^X4F4GzUfcifVqjp9@^oFVdQ&MBb@0CcAsz5oCK diff --git a/graphics/HUD/BossHealthBarDecay.png b/graphics/HUD/BossHealthBarDecay.png index cad0ec02415b5c4100dce34dabad55d99dfbcbfe..4070da777c22daa1c97e179fed76a984cdfcd131 100644 GIT binary patch delta 83 zcmc~xn;_xG#LU3Jz!L1u#K6G76W|l#YOKSR79ldTRsPII&DpXGwHO!}L_J*`LnNjq obEYnkN|0QWwpQ+68Y9D@Pt1~C2@xw87#J8lUHx3vIVCg!0APt1EC2ui delta 91 zcmYexn;;R!!py+H&@H@g5d#AQe}GSjtFan`uN6a@FGE8D!^~m^{S)yF3=9lXo-U3d u8t0P@(p(#HY;vY(S_Fhz5+1qQn z()X-N?%^XQlGba@RBv6mRg$!P+vKu0C7;5Voh?~rock~1_44QU6ecT`S(S;G8O@vd z{!aC|b98agBU#Qwt84cKBcG`+WZ3b&IqW&+@hXKCJ&Fe4&cV zYCo6kdB?+sH$L)g-#-7zW!~hPkit3kA-$hohqC`zx_t8KpSeC3X2n+LPKUice8zHu zt`eJjhz+w9|KeX-_k7+wTs-Z$M0ecb%WV4kYFj>EzTmL%HCSoXNVeTGM$6dd8OTA16Qg8{={Fxa#%5b<1QQx}Q7#v+h;h zPmRC-tgmy_YgwO*H>>TPWMI5s-}apDd(Uf{IeXsAJ=q)Tzrj$c`Q$Ufx^FKIS|2l( zKQD0G#B$TT{_H2x-^%VqY?-}X?ES+>k7|8x?3&^6;!&x)e)#lWVd+JWW={*tTPLAn z>T-Iu=3O5#z6ruY%FQta-|w>;>nB!kRg&D^5w!GS=M@g|HDOBvB=eR#&GedFaPZxW zAi=#!D}q!uYG#-?=3U0_kMjGn%+`fn#A4vg!#F~L4Mr_ zZl?tH-ddEItg7I-HEC#+(z839Ok#ZBxQj1(5_E^JC#iMY zs!eH9I^RnVa$^Hd)`h0|EDw3VVEuxLlcv;E2A>N!erfhw)i(1N8e>G4 z$^2%X;4#GPWsoocJ1jB>PO6 zFC%YYWzkkOV-=}*X34{cJUPN2l`r_atY|04C%1Qu`{wR%Ppr00J+-^|-~V(y&Se4V zO9N78iJn^Su=iGK#Z|spS7ug(X08#8d~xf9&wNHt18W}FKR-XX{<~K{F|ql%p2mEp zw-?1e-#s#S&*m=z!aM)YIr(PU@jchl9d3Fln+I=qe9BmtefNmVXVEuzzc85gn`edF>j$>g$|>JJ@`$W^8gsR5UR31qs>g`^v%eKE?4P@i6N{LI&$n`XawGMt0- zuK%9b|S@t?#IqeAHRSWV zck=#C%(i{}rflse`2g1)bN9UndZl#ff*!}T{ZciS>n@gSt2Efz{oZz__;+=}PMl=7P=qjFAj`X1{aC6Bn?_s@H{frIDXm74#I zPg|u{bQN3>k3K7SSb2`$ol`3+mesI^h|E3kVfwX?*M7zJtiN$!n`)lctA z``!AwQYg=)OD1k&tH0iP`CBx@P4xJ3hwnSS&tb4V5mC!$5`I-?rPkx~JD07t3+~nL b`p0{=>C|$$`ldDp1_lOCS3j3^P69fuS^#B{I$}xtoE3fx*+&&t;ucLK6UYxewI< delta 42 ycmWFzo}j1N@X-FShQzjp)`tf&6nN4Z8205cw}k$6ddR@Qz~JfX=d#Wzp$PzEG!LEt diff --git a/graphics/HUD/DeepImpactBar.png b/graphics/HUD/DeepImpactBar.png index 22be335fcc8c520c81a203fc49dd686fba98cb14..1403248c620e3207712ea19f0fe81c613c458f57 100644 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ooU=U#fk)~7g`571(cmjMvTz!Mnifd-hTy|#v z`Tsk^>h4;HSEn;6_?3rubCIKGvEfq}u()z4*}Q$iB}XG9!S literal 540 zcmeAS@N?(olHy`uVBq!ia0y~yU|?lnU@+ofVqjp9E^1rOz`*#})5S4F<9z5O-@YqW zB5tiyU;X%J$*0}Oc{)jXP4ip@Mq#l7(u;T8dUvDnjYX(Ohhxx+`**CY?%URV{&@L0 z|NHxY|2*Aa^Z(oZ{`GUWekzkW_SQ@y@z^H64ae`2;&=?o@oS@4dCMP1LrfodU`liMmCC&1V=^T%DBNQ{D4= z()J+puQF-nyziu(W(1$XZv2s4%++o$JbCUpqP*Re^OI;@|z^xVdyTlBJZZ!fEvv0T$fuSFpEOqaln__v~p z*+;Lr^DEk(NHsXZ!?D+^vf4A(@AahYn^Di5OZ0X$Pv2zqr$g}Lj`@n&scUwBxX4_s zJpFMUL)6l(#}4aH4>Eu1JSS$xvUYhU17pKO&Bw1zTAS3;;b53`*x&6z#lmS@&#gQf zF@5W_wVLl27wf-!}GhBlGv&otxEFDpAfA8IDpS%Bl-uK^czsJAbX8S?9%$<>efq}u()z4*}Q$iB} DI5qERN@z`(%Cz`!8I!OXzG5X9RiK2g!sOwrTDF+}2W zazZ*Ya~K<&nVUgEqSQ5=FfoIKw4{WDCME_xFDAyERN@z`&r&z`$V6!py+HP`Pg2f{BWzLAIVQjv*GO zlM@`+-ehKGuH;$K;2RJS;F1`U6Ot3c(;pEjCB)I(p~|JixP76v*rO&EpT--Jjg6k1 dvKkBw7ln-O|6%G%Vqjok@O1TaS?83{1OVM}BcK2P diff --git a/graphics/HUD/DualExplodiumDisplay.png b/graphics/HUD/DualExplodiumDisplay.png deleted file mode 100644 index 2629aa7c3e74169ca8d3e882620232dda3c3b8d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmeAS@N?(olHy`uVBq!ia0y~yU@&B0U=ZhEW?*2Lx;>ngfq~&?fKP}k0}OER2na|h zi1V>aittN`3do2H$x4gK3vtNH$tf5(s4IwSC`o84OKEDTYinuiXzS>Sap~*o8VYe4 zN(vb2Dw~;^SQzVBn3-8h@K{OkSV;?7TUptf>Dk)aI3(0NIv6^c$vE2@d%KzXcv%Jb z*#=1o1S|4{1P6wP*+)ma#6`I!^zTnp5>8Hz&yW(!$%xI%3a+lotF4M`Ru*f~5^vR$ z>gy_=&{H;{r+o6H2~+z^7S3*5VI;YB)vE1g(g)3Dk66kbIlTFVz2c>d7q7Xh-LR9r zcXh*~8!O+`)qi<+_*-@5|9Hdy)jt3KU;F?6?f?J(13BHS7#J9sN`m}?8O}U$bY9HB zz;NBu#WBR<^xn%S{g?s;S|4URn&04I;yR`Cd4Z9(aZ^*10>}IR2J4ngvf3`La%A(L z$@$?+vn1c{DT`fsrnSs(w_mzI+fwm**_Meu5mtq7f+Ws<{odW$v|Hri`MaOq&T=T2 zzG%;ledo0_c6bY}{~otnP~^_i4^wXWyYh3r3%XNcx9^yy$epDfeBWm~%CVMfUYdN^ ze}6;MZjp^I6R+-aKN#EPkZiZ=-ogiZt?wWHG_3A!+AT8uUyMct$ckkz%Vw%^y(`%5 q;?mM&{r5C~)!bW_Z>%(3)!&JS%W4ZpxEuL_BHPo|&t;ucLK6TQ!p@2S diff --git a/graphics/HUD/EnemyBar0.png b/graphics/HUD/EnemyBar0.png index d8874e9f54980e142fab9eede7062bcef88bbe78..93abcdd1b21a7f7fce74191fb6b93177ed8992af 100644 GIT binary patch delta 31 mcmWFunP4TAF4@M;!0^kSW$x6l;GGN%3=E#GelF{r5}E*#=LuZ^ delta 31 ncmWFunP4TgS)z@df#Fg*OV$VV@9P;D7#KWV{an^LB{Ts5qF@R; diff --git a/graphics/HUD/EnemyBar1.png b/graphics/HUD/EnemyBar1.png index 7fc4eb3ca304d6ceb6c1a6342c4107be8407d78c..dcc342adf7169b1c587a7c4204fdb1e497968c1b 100644 GIT binary patch delta 58 zcmWHGoS*?YcqH#Vs#l!mZ{6q-`F*eQQwucWVZrdvs=pZR^4$(zp%3=9mO Lu6{1-oD!MFVdQ&MBb@03Y!a2mk;8 delta 58 zcmWHKoSbP0l+XkKqoEde diff --git a/graphics/HUD/EnemyBar3.png b/graphics/HUD/EnemyBar3.png index 176ee937a69aff3ff4e08ae9e8a465555cff213e..3cb589b43ea888ff140a6bc4a12cd5b1df674f91 100644 GIT binary patch delta 58 zcmWHGoS?Y`@;qdJ^$ZJ@pJcYn6vj&uEmdLMg}%*?YcqH#Xi#<=^T{b2)!p8xzj{QVow+&W{R!@%&_nXUYxSdJV60|SGn LtDnm{r-UW|D9aNh diff --git a/graphics/HUD/EnemyBarD.png b/graphics/HUD/EnemyBarD.png index a4193981539971884318be4dad023caeba517b95..1d65d1e74dd505d24658024a20c01f1c50d46021 100644 GIT binary patch delta 88 zcmbQh*vUA-B9Jq{C&ZP3f#J-VGynhp|JvzV$-uzCSQ6wH%;50sMj8VHgOsO>V~9j} ta)QL822&AEhn5{-ii~qswHYultV?z}9V!3- delta 95 zcmeBVoWMB2B7!HtC&ZP3fno37y>H*X{r~^}y=9*L3=9m6B|(0{3=Yq3q%kls$a%Ur zhDb;zOT22x78OchVE*^tqk)kp!g(UY;Q)4q3)dvrx8BvNWnf@n@O1TaS?83{1OT^; BA@cwL diff --git a/graphics/HUD/EnemyBarS.png b/graphics/HUD/EnemyBarS.png index fb3306c3edc4f7bdd45707dae0ec3c08ffa77f4b..9c5a682e83c09af1d32484ba829dc9042315fa58 100644 GIT binary patch delta 34 qcma!yoM0nc^zF^fhY$GK7zF2Vp7pP)na{w$z~JfX=d#Wzp$P!_*bMjp delta 34 qcma!yoM0nslznZ@!w39q4728OnyAm8lgGfoz~JfX=d#Wzp$P!o9}CC; diff --git a/graphics/HUD/EvisceratorDisplay.png b/graphics/HUD/EvisceratorDisplay.png index c8713bf816f07ceda6a82f1516169e91911845d9..9520ae6a1fa3d9b8cf52f3fee8479932d76b3c81 100644 GIT binary patch delta 102 zcmbQmIEhiQGr-TCmrII^fq{Y7)59f*fq{XWfq_AkgPDPWVfnfz|0gP%+NgWFIEHXs zPfkd0W(s3tGjr2ONL<7@dnzl}jF}Pw-;6F^jbl@@U|^6`XHtH3V@ezY0|SGntDnm{ Hr-UW|;z=7X delta 110 zcmbQlIEzuSGr-TCmrII^fq{Y7)59f*fq_Avfq_Agg_(hYVSnWdr-_QDF8ZD>jv*44 zlQq1Vn?9JBOgMF5f(8dmUQ>pHOJYcql#rsHL&B>jwmG5_Gp1}{VrBSdWXLXd!*Ue^ P0|SGntDnm{r-UW|-s2uU diff --git a/graphics/AltHUD/EvisceratorRound.png b/graphics/HUD/EvisceratorRound.png similarity index 100% rename from graphics/AltHUD/EvisceratorRound.png rename to graphics/HUD/EvisceratorRound.png diff --git a/graphics/HUD/EvisceratorShell.png b/graphics/HUD/EvisceratorShell.png deleted file mode 100644 index 7b6f93e1fe00e10b3e48497c738fb3f45cf06966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`&tZJsWUAsXjfC+^L^?7(oe zK7IaM3twMPk4tG8)10hACa%)a`EXsy@Wb>HhL!+TEpY**3vCuF{F3g^-QTxxi%@LE zT9e(aR?{svHlzC^%7K#eDn1C#Oe0CYi5~zx!LJ zA$@YE?`089+gCwKa~S3{l&%xF^z>)<^ly3!jMGlH?2Y4p=~);1|H+yADQJ}?qUdgCvTHzX1(nGdm|~{k4xRxUswGQ{laN;gihz<^)>V3KPTI{ zdtFz}Y47>g&cn{U=&mf=UpuDuTTRW~VXVhOwl96XENymbPI2q(H7iz4+8}!AW^YE; z2b=kR>bs;xB1J@JmmD_o4Dd?yakS2v{G4qmx81z?#l@S|BLD8=jj8#iFVdQ&MBb@ E0Fdv=)f pnnpsZ+_oIEFpY%7w1kv4W`?dbrWd>0g=c}x^mO%eS?83{1ORBJAiDqn literal 482 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BU=ZhEW?*1AX)B`0z`*b`z$e6&0R}jD1Oy}$ z#QE4IMfjye1!Tm9WTnOAg*fEpWGysQHJ zY=fi(f)#l}f&;_D?4zSy;-cIV`u8U)2`4AVXGn?VWW?rW1y@())mB9|D~q*giMQ%W z^>r0b=qa1fQ$BgpgsJ@{3uia3Fp^xmYSnf#>4WC7M=a%z9Nv7wUh&e!i`QJ$ZrI7* zySm}gjg@ce>c6}@{H?n3f4t%UYM=lAul@i3_W%F?ft+qu3=9lRB|(0{3}>D=Ixl8m zV3_9V;uxY4JoTij&>;sA)&nQijU9yU%zg0g-Md-8<=aGei?4c-ySa@ov*)Fd%4PY( zqLUwX?qF))zW#e-lUhN|JTp6{;9K_FUK`DdDBdE&c5%hgyuAw+ef-Why;8_G<<~yn zqKqK!$EN2NcdqLxR_{G__tsghM3cU({nI!XZnWMU*U#N6V76KyLq$oc>GRiO6Uj{i b$tjPRn{7nr-_N>r5foRRu6{1-oD!Mu4Z6hknnVI4B?PXPD=0yx>TUZZ@?MEFyme@1A}Udw}0#3FGm>|7#KWV L{an^LB{Ts5A)Oyw diff --git a/graphics/HUD/FuelBarS.png b/graphics/HUD/FuelBarS.png index a9bc63aa15a80200e9752349887a814f4acc57aa..15c6117268fa3d59ea5f0c943675964515ae3a90 100644 GIT binary patch delta 94 zcmb;|m>?d>#KFeEz%co)L@5IUgSn@RV~EE2WFK$u-{%`x^6u_BDj+G@sdHpQ>S?hy z-`Qq{JxvSQBhJmU?N<8m^K&{|(h;|V7Z@0pq=>!zRK``vz`(%Z>FVdQ&MBb@07VER Av;Y7A delta 107 zcmXS@ogkjZ%)-pTz_4olwZ{w$4AKEUA+D;bs+yXbUS3{7K|#U6!BeJ8S-N!Tv17;X z+_}?h#_G?&z#!}C;uyklJvksKiI-PPo!>x0x_jx;k_qe*8XF}U(iR6dR<);xFfcGM Nc)I$ztaD0e0su%WBAoyL diff --git a/graphics/HUD/GenericAmmoBoxL.png b/graphics/HUD/GenericAmmoBoxL.png index 0fde3042142c6e75dd4fbb342ee2b9e1b3a6fbe2..208a28db8d963369c9d46bc72fc5630011f83fb2 100644 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ckVBqFpV_;wi-5K+Sfq_BC)5S4_<9f2si~Ilo zA3Vy;!^6k<^}nQq#5n^)2gXXCG&Z(lY;0_7nlld6GrW4ix%JZRUM&U&1_n=8KbLh* G2~7a-gdGq7 literal 115 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ooVBqIqV_;xVd{ugcfq}uw)5S4_<9f2si~Ilo zA3Vy;0|tDYU;j%=NSre;Fqo5=`L(A#eZy diff --git a/graphics/HUD/GenericAmmoBoxM.png b/graphics/HUD/GenericAmmoBoxM.png index a0ac05e43030454dfec3d887614a875ab062a756..8110ca2d9e98b063db2ca329d782bc0e79f1480a 100644 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBqFpV_;y2Sgy00fq_BQ)5S4_<9c$5$BO^w y8(1VHB_z%%a2psdVEn~lz~!NlV8P?cz~I`<>g=0q%frCHz~JfX=d#Wzp$PzgL=^@A literal 95 zcmeAS@N?(olHy`uVBq!ia0y~yU|?flVBqHfk;f13YhYktQ1f(g43W5;T;j3f|M>=1 x10w^2IS17a9%*3iiQ#l(I8D9VZ diff --git a/graphics/HUD/GenericAmmoBoxR.png b/graphics/HUD/GenericAmmoBoxR.png index 7fd2e0d13306b1b39173c9651e8e8bf6e9f5a70e..1946be32b5de76b30b3cba1e1dd8bd1112cc1698 100644 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ooVBqFpV_;y|Rc(HWfq}uy)5S4_<9c#|$BO^! z6CQk+&&YL-!$adwdP2gF^G6z3R-8^0m=N&e{6Xap^BWr<+AA|NGv6s=*zdq?9{=X# RQw9bG22WQ%mvv4FO#lgmCHw#Y literal 241 zcmeAS@N?(olHy`uVBq!ia0y~yVBlk5VBqIqW?*1=e2UMFfq}s2pSJvb5&8fB!vFubt(%dzgn@y9sU*lRnBmM5N9V;13=9FDE{-7_*K^Og^EDXo zxC9!v#5pEal|aozNcHP;~r z28V+uXE|})df}Pl@+Q+Q8_ocOy*?}!feh2+g^!c$RWV2wx&ILN|FPOhiJD%N;)ba5E Zf2g90=80(i84L^z44$rjF6*2UngHFQL5KhV diff --git a/graphics/HUD/GreenShell.png b/graphics/HUD/GreenShell.png deleted file mode 100644 index abb6ade7a9703adee288c589d30eaf74fb96e5f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBq9nV_;wq&F@{nz`&62>Eal|aozUJUfx3n z5^N7Yi=RGau<~Y8Uzf+sPT3i4s+SgMWcoBZJ)J+DX|neGM?2=R-_2jV?6fDtx61cN zQWN_H9sX_HcjMWC;%U|t>B8ofq_BT)5S4_BRV

t>B8osXp%wU|x;5(Bc?F>W1{~Ir7erI4{kn(hK x4AGdFESRDox`8K3_r2$Jr%io<(H?9J&0Z{qAM_qyVqjok@O1TaS?83{1OSFi8?XQX diff --git a/graphics/HUD/HealthBar2.png b/graphics/HUD/HealthBar2.png index 2f33f438c8209cee68b191b5c6eb8cfd995c2d74..b4858b97009fff93f9f5d1f705d7ec36a6b6fa9d 100644 GIT binary patch delta 79 zcmc~xoFMMS%EZjTz;I4wp#=j2180Cwh^sHd%ru5G4GjN(yf5!&U|t>B8o`$d9Dx7; diff --git a/graphics/HUD/HealthBar3.png b/graphics/HUD/HealthBar3.png index 9ae091bdba3d3bee7adcf6eab10356fc103d3484..1a053fc1ab65b1f8816a062a662310f1daf7d985 100644 GIT binary patch delta 79 zcmc~xoFMMS%EZjTz;I4wp#=j2180Cwi0jN&`7;|e|KBw}Q`qgrz`!8v>Eal|5uKcP jfHlJDN=%}8t#M8a3=9mOu6{1-oD!Mt>B8oNAm!=e x7@{#TSujOGbOTS6?t9PcPMi7yqdnLdn!Q*IKj=Na#K6G7;OXk;vd$@?2>_%v90&ja diff --git a/graphics/HUD/HealthBarD.png b/graphics/HUD/HealthBarD.png index a84068c4cac6580f40bc5b43b85b5fca60b403ff..4f34d7ae6f17742256faf967e740f04cda8315ef 100644 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0y~yU`SzLU|?lpW?*1Ar?Sw3fq{W1z$e6&fq`M>%$aA- zocaI%fBve^^$ZLQ!k#XUAso@koT&#GBTh_=^xeh7F#kJKma^@iE(Qh$22WQ%mvv4F FO#tMs9WVd@ literal 166 zcmeAS@N?(olHy`uVBq!ia0y~yV5neVU{GLTW?*2@p1!b}fq{V|y~r_%fq?;}h)d(< zoSO^`3_<}uA+8MhIZKx=y?F8Bt5>hSfB*jf|NjkIyRR@XFff(``2{mLJiC#`z`&sA z>Eak-aXLA10mFu#EV-*bbJA2NeZA|PA-3emv&PGR>JB(nUwJk$@$-sj57$XDl&Z7E Vb6F?4FfcGMc)I$ztaD0e0sy<1JM{nn diff --git a/graphics/AltHUD/HealthBarF.png b/graphics/HUD/HealthBarF.png similarity index 100% rename from graphics/AltHUD/HealthBarF.png rename to graphics/HUD/HealthBarF.png diff --git a/graphics/AltHUD/HealthBarL.png b/graphics/HUD/HealthBarL.png similarity index 100% rename from graphics/AltHUD/HealthBarL.png rename to graphics/HUD/HealthBarL.png diff --git a/graphics/AltHUD/HealthBarP.png b/graphics/HUD/HealthBarP.png similarity index 100% rename from graphics/AltHUD/HealthBarP.png rename to graphics/HUD/HealthBarP.png diff --git a/graphics/HUD/HealthBarS.png b/graphics/HUD/HealthBarS.png index 7544045bdd88a62f2d60f6640d4b75cf9f320b77..829203140fd7c637a44796e6b67178b1c748cbd5 100644 GIT binary patch delta 79 zcmc~xoFMMS%EZjTz;I4wp#=j2180Cwi0jOmGtZnk^Z)<% k2UsJVPELsQ-NnODs>CFk*Ba-FVdQ&MBb@0PCO`0ssI2 delta 92 zcmYeyn;;&}!@|tKz>t>B8oYj-#q^oH_H*=0Q=&SGw%-_k^zRW(7Y1I*U6MQtze z*x8@Bw%msWW(Ee9 zjny(;*@fHximNmhGN0M^`M^)}i3T~>g&x-NDAm4;Jo0)s$NsrojuX89oU&?sW2N1w ZQd@VDIV4ilyLk|(8h$s!_zhec3skt)HM7g z(Ux}R>#Xy8YQ(17)ZM;pxxDy6_tL|GrE{VJ{x~t5$^X8RaX0(!HC=m;Ec&JV%XD&# zmD`^*=G!`K0SrkwT&hov^*XTll$CPCa;(BW?*1=x522Afq_9Hz$e7DkpT)gcmxC_ z6ch{`91`ji`uAVmY~sMcz`#@z8Vvu%E7sn6|*<=lG=0=7#7e|2tsj`v| gZVm}U1IFVdQ&MBb@04I1J=>Px# literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yV6bFhU@&4~W?*0t`IuMAz`!68;1lA?00SI60s;~W z3I+}i3H1s6`z7_4@G>wkFqH)P1v8v^;^@4Xfq}u<)5S5w;&ifxw=>hq6*g>bE{-Y+ zO{an-rpiv0o!WY;ZHEG5ddNH`X0LrttSd9r7Bfu@yg5;~d(xx;MuS*G&4+AU3=1aC Ua)0n*t~khEPgg&ebxsLQ0Qy)iqyPW_ diff --git a/graphics/HUD/HellblazerMissile.png b/graphics/HUD/HellblazerMissile.png index 2aeff31b3bfe54a907778ec91bf11339e3fa5510..2804f44c443a28fda184e7a34ce4c5b54fb5dfda 100644 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|?loW?*1Qt-T$=z`!6H;1lASUzE$hz+lY5 zkfy{i)0g2)2gCoX43GR@vN13)FqQ=Q1v5B2yOGAgz@X&m;uyjqo19cyYM7Y7B_bjs ql2FCZ!sGM%;FI~gzuz-tVCd53@mttG(SU)0fx*+&&t;ucLK6T$v?KTc literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yU|?lnVBq0kW?*2LyRTiIfq|hez$e6&0St=t6)GIG zs=RgE?6o_b3_5LedYlYljKkV<+xW8|g z{o9oL?^gZ)t*QU_6#YM5{3m#QBLf2iV@Z%-FoVOh8)*y-433^Ijv*YftOr{en;95b zHdf1YWfyM$E3VS`mEp{DAB7v+qa@;9aMjQGr?hXq-=DVa;$fGcFzopr09in9OaK4? diff --git a/graphics/HUD/HellblazerMissileLoaded.png b/graphics/HUD/HellblazerMissileLoaded.png deleted file mode 100644 index 3161ec2b241b8ba4dd7ef7119c27e1b798337b49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0y~yU|?rpU=ZM7V_;yo)tLH$fq^l{)5S4F;&SYSvtH7H z46XaCpO*!!U)iU!P|7FJt;hXNBu7)U zr9(ln`^roIIWv7WoSfnL=xvhDwz}JgE!&G9Ok2PEwVK6kvp>x&7PqQWpQV51Nfo_% z+4l4N8M|LD*fYPwfBwlA5(gL}-iL{weY_=Y$IZi6oNBfoytCoK;gd&~S*@>#*%khU zpYK72>m3{Q7b^f7{{zR1n8QgaTPfocpZA&n7i<9z(jf?bB z*H1kX_E)X>{wt4_9FO&;mU)ziZwX&zFtvO_E&qqxY~L5v hUH|$0#qU3i7uI#GDGGdffq{X6!PC{xWt~$(698)5!;%01 diff --git a/graphics/HUD/HellblazerRavager.png b/graphics/HUD/HellblazerRavager.png index 9a32061b3161c2eda411755ef466d2d4fe78bfda..4749268eba5ece513a424cdaddaaf57fc460bb06 100644 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|{87V_;yI9(*jDfq@~))5S4_<9g{?L%|jY z0hf#0LtnQQIGN1hTa)mxWDT2-N8R5skz`)??>gTe~DWM4f Df~_|i literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yU|?lnVBq0kW?*2LyRTiIfq|hez$e6&0Sv0VbsM=j z+U&JEoD6zH`TBUdXT({|;^UcH=r^CAZ)u{?lyvJ1EW6<2Be%XBAooq}Y$+l>8Z#Lw;e>-yu)+z-pPi@V)j#-u%M!)K$07dBjt ZDz%+{%vpYd$Jjw$^K|udS?83{1OSvJYoY)E diff --git a/graphics/HUD/HellblazerRavagerLoaded.png b/graphics/HUD/HellblazerRavagerLoaded.png deleted file mode 100644 index 313a677c7fd2751d98278153d34664583039aa47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmeAS@N?(olHy`uVBq!ia0y~yU|?rpU=ZM7V_;yo)tLH$fq^l@)5S4F;&SW+Yj5R1 ziMIKc#WKlifo^I-%4{O~YZho+bUWfCAQr}5-}aBiTKnyqKkT{t;~}pQEu)kwNd-vCx{bSpo5LF1?%X$k4J> zWykJ=cW*AY6k`lvD7w8Z8;m~ znk$*BwoI_7>s|A_;H}vtsRK?%3)QN0e(6r$5}o$c;I6>+G`G<3_Dst^9X zow)R?vhO#)Z$_4;J+@bRHS7w@W-Wbkq(NDAyV?IhkMx(`Q5^xouKp8u>(<`=BlAoB a{qA4g0rws)5N2RtVDNPHb6Mw<&;$TtUb5o= diff --git a/graphics/HUD/HellblazerWarhead.png b/graphics/HUD/HellblazerWarhead.png index 34d90d66d8a3918f28370a45c88a759b24e497ba..f398673f6f6fc9cf5442a3788dc7ac78dee36264 100644 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6U|?loW?*1Qt-T$=z`&pw;1lA?00zbkX~rB3 zz6>+d7|x_AF*GpzpXtkRri0=CRR+H0cONq_Fff(``2{mLJiC#`z`&sD>Eal|A)B1= z_05Td1dje$H#HAD;7Z{(*pRVgCZ~Y`2NxF?14E`K>*;q%+cH2lc)I$ztaD0e0sw@g BDS7|^ literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yU|?lnVBq0kW?*2LyRTiIfq|hez$e6&0Sv0Vb!(-Y z+U&L4)n{}#8T5wo%}`x9BhF%u*7CW9eoGT=R#|OdRTH#2z-&!h)H;jp+Y3B)_9yOb ziQE@|>tavDjjA^{CmP+KmGJ09-IMLb?-!(eoG$wLgw40p-QPPueeeJLwf*- z{`>ctKYw2S{dcSW|JKz1$BV@(X5gcy=R=fq}u%)5S4_LzeYmD`PVQ z1Ixy0nXc@@?SI8p8b33=NnWoIHQjB7<1^0kIscSu-ueAFe4Bf5UU1`74~xp5%@wn` a8&zt%ZZT)=X>~Xb@|vfspUXO@geCxqaCeaa diff --git a/graphics/HUD/HellblazerWarheadLoaded.png b/graphics/HUD/HellblazerWarheadLoaded.png deleted file mode 100644 index 78d86982c3b060301930046aab99382526b81e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0y~yU|?rpU=ZM7V_;yo)tLH$fq^mB)5S4F;&SYSv)U|$ z636X7&o+!qo_=%Mo|Nv0K$jgkesg60O8;Xqw=4*FcW#PI>=K!ijV{~vEcv>tW$xX; zwDh#{W9Jh+e#Xpy|GBbi--p9@qg<_)2Ys6V+SU77AG741wo7*ZxH%eH0v^PEDwRkw zVN_r|5?1EUHs7?#yZ^(f$H~W2tDiA2y#4d9<;1cz`)7ajX*yG&zG;24SmJ}d znj5zCKieI8i0i{Q&XYoy0t~afzIcU-|MA@TTXyO?R2zc;+VmosgvGpMT5c%JsyblMV&{eE%%};{Ts)Pv1{kVra9* Rnt_3V!PC{xWt~$(698W{zjOcq diff --git a/graphics/HUD/Icons/A_CandyBullet.png b/graphics/HUD/Icons/A_CandyBullet.png deleted file mode 100644 index 8003a594d6e98e47710d6abbe7ea5fb1c76ecc08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBq3lV_;yI{QEy20|Ns`dXZxi0|NsS0|Nt_ zp!{rO1_p+yo-U3d9M^Tv*$N$WU}(5_KJDU?6DxY!++5w(mvXcA&XeBRpuFNt0b{P( z+_}Cwo%3&;TqEdvk5i6e_s2bp)V7^2{pu~NttNUw=-sS|v)L`h5|pz`(%Fz`($z zdh*{21_nj}PZ!4!iOasdd%c()McmHsHQqftM@enL5rKe%;v2Sp2(97cww`}{yFkvH zoGlwah>JQIyiU7*^2}Bbrg`5A_W7SXm3;c@#MSB%DN@g4uJSW2Se$es(emMn`U5L& zI36vYXgmGGts-eV0p6a^ zddAUAG290tjBkHdZ9P40eQxRJIkSQtejHa#a9}vc_>Y0Ns3d;#qlNbv7#J8lUHx3v IIVCg!0O7ZkhX4Qo diff --git a/graphics/HUD/Icons/A_Eviscerator.png b/graphics/HUD/Icons/A_Eviscerator.png deleted file mode 100644 index f19e260a6bfe72edc56814d4bd6d5cde206aa24f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmeAS@N?(olHy`uVBq!ia0y~yVBln6VBp|jV_;y=K6`a5h?8FAn8d)qzyiVrf&BX! z7#Oa3x;TbNTrNGo(eF?IL+iu+Mb*(!x4pc(Jr*-Iy=ysg^`iI(&62|F&kg$aG5V<3 z^{7p<5K_#@$X|cGaYDkP`z39YC(GO@EEA3Sz@9DL*H=9GyLC_7bDpZ@cjE3x?DzUt zmvEG9FaQ7m diff --git a/graphics/HUD/Icons/A_HellblazerCrackshot.png b/graphics/HUD/Icons/A_HellblazerCrackshot.png deleted file mode 100644 index b92e92408d9939570d3ed113c2af5d661e7e0437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBp|jV_;yoXB@{0;-nWjCNVHDFo7ih3;vR4 zU|^{5ba4#fxUPF*BUe*^gu}z+I1i6WhfXprJajhw#l|YJ`3o2B4bLdrcs5Y{;Wn2q z_rH|ynEUhqyF=;T7jNS<8#K?YwA;>{Pio&yQ;e z`yDx~pj`X^*v<9rHgQEa)Q`MmYhalF?>x`fIcl6sy%{1H7#J8lUHx3vIVCg!0J0}b AJ^%m! diff --git a/graphics/HUD/Icons/A_HellblazerMissile.png b/graphics/HUD/Icons/A_HellblazerMissile.png deleted file mode 100644 index 330132b4fced2197b9378707c815a3c66a673f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBp|jV_;yoXB@{0;-nWjCNVHDFo7ih3;vR4 zU|^{9ba4#fxUPG`k*mo;!r@_fkCMv5D@q;{tQ@|-(2;ZdAh+v1k5hGdZc+zJ@S+Tp zdhy4%ZGJGE*zBU`s>SeX&;1jd_bl2a-mv1;<)Z449rt7#o*s-AT&Fze?n$T5vOi`| zyvHM!WxVL??0r8YJ8GvVi#*6@W)QoPVkfN5r#4r9%X2>l1_lOCS3j3^P6B7-CLsHYrtQcqP*IDaU%+b@ql8b_O!r^21iL9k{(ddD4~x=ll8CayLFZ zp0TER`pg~o?RpMhKd8s0@rgHZ8pDPIs-J%{|94S7pD;`MBm)BjgQu&X%Q~loCIGY_ BM9}~M diff --git a/graphics/HUD/Icons/A_HellblazerWarhead.png b/graphics/HUD/Icons/A_HellblazerWarhead.png deleted file mode 100644 index 5357004d13b2eebdcfcbdf7f6cf5d682b4cdcc38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBp|jV_;yoXB@{0;-nWjCNVHDFo7ih3;vR4 zU|=Zoba4#fxUPF*FIQ85jKjyr>>iI6D4Dfz?sKj_e{J`ZSI?e2dgslO)ZFCkR=ECK z{*HN15AZj93iGVZXF0I9CA@Nr?X?Ovf$~MkPh9`_F>dH?K5TgDhx+jYemdKI;Vst0Lh$3EdT%j diff --git a/graphics/HUD/Icons/A_MRAmmo.png b/graphics/HUD/Icons/A_MRAmmo.png deleted file mode 100644 index b516b82d21e5aceaf0f8d0da7a474bc9f8c9ca23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 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 My85}Sb4q9e0O6N`V*mgE diff --git a/graphics/HUD/Icons/A_ShellsFuck.png b/graphics/HUD/Icons/A_ShellsFuck.png deleted file mode 100644 index b3484f4e14353b52686b42fad682686b12082ba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8VBp|jW?*2Dc=mM{h?8FAn8d)qz{y6lkQ%HhB?i*Lz`)Q|>BhjopeD`3z`(%7#Kg?Z%)-LL%F4>d#>URd z#Lmvn!NI}F!N$qS$;HLR&B4sg&BepR!^_Ld$H^|p%_hRnDJRY&FU6}Q&7&?a5b7Ww z>#vm=q?H|_U6x^8nP%Qz;vl{%CmQ6Uk|4ie1{Q~snwrnw6<#DVFfcH$?hDcm)?c43e>?qN?|K{K8hm>}Q-OKvOsFPd6!p+JWuP}A0?*Z;3Uebb} zSnQfQT3w^ox?GCTyybF4#4+7y^X79mR^;T^6m%6gFaFVd*-za}%2H|5?yWluBhD|; zi>m%Dl(gjkpN9WyZr%U(USZ{Q@9e*iYx%!cIWMeccw1!`wr|&-4MsbZ=lc{~E8eu( zsw~j-`n2$v884pARGd6TCG?D+|3uG2Cp2A{Zo5C{QrKB5RodPxZq&GQ=A5Igm0e2i zvxSbP0l+XkKHB)~W diff --git a/graphics/HUD/Icons/A_ShellsKinylum.png b/graphics/HUD/Icons/A_ShellsKinylum.png deleted file mode 100644 index 1cab3f0d5e8db2eca0517fb86550e7933e82a9da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8VBp|jV_;y=w_xo6ang$%lNcBnSQ!`?SbPoD z_!$@&UV6GXhDcm)?c43e?8xAH-o`A!V1=TPfUZssOLli|&L5_a>?{ZMJ=8e_KS{4V z>b2owQns|cgMdzrpbpb-sq(V49G@FEDjte`XAS?r-n`jjO{vn9yt({t<+$4 zab4KHXJ2`nwA=T8t5KMp8k{^o-YajD?z$Vy5@w%UKOKI&d#AbdlDB*zZTCK&Jmk7@ zr@Xul`|KJQZ4OOAFU4!WD`XXOTUqw4JI>^=&2IiA&#*x4-uGWQZ(DD;b#yxGHA|<4 zr9TW9R-9_>&VOBaOrc9=VtPgP%V)v2E_1HDAaYXI!EU$kzeKJN%+8- zRx0kVSKRt`%jWd@L#b~^HQ2s7#V8cBik3w zZ_@EO=cA*?q1hWB%E+xyog*23x3T)foj<1f9G*RMlW$kMrA-l9nQikaj=@g%^3P3~ znv;L9aCJsKsgTe~DWM4f&B%8l diff --git a/graphics/HUD/Icons/A_ShellsSlug.png b/graphics/HUD/Icons/A_ShellsSlug.png deleted file mode 100644 index ca030736ff2e2224eb4e72a10873a7625e8cd53b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8VBp|jV_;y=w_xo6ang$%lNcBnSQ!`?SbPoD z_!$@&?t8j8hDcm)?c3|c94OGbe`k5wceULD7cV(E3VadGsbP|ijy@>f5f;X^Z?bQk z!VK#cY6K$ckl9No9F61U*7)e z@uchjB)rQ$r~YSI!a0AgOoZ+1&jz!Eu3oH{S!S9yno_DH6q*tm4#lXP8;OXk;vd$@? F2>`_Od%yqy diff --git a/graphics/HUD/Icons/A_SilverBullet.png b/graphics/HUD/Icons/A_SilverBullet.png deleted file mode 100644 index 591a16bd794dc500d78e5349a4dfe2556dc453ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2273 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 b-}zJ8t~!U>%UCfmFfe$!`njxgN@xNAybS(y diff --git a/graphics/HUD/Icons/A_SparkBAmmo.png b/graphics/HUD/Icons/A_SparkBAmmo.png deleted file mode 100644 index b516b82d21e5aceaf0f8d0da7a474bc9f8c9ca23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04rT@h2A+3u6Brm6IMRz8lNcBn_!$@&r2h6X zpJiZR5(w}Kab;j&VCNC!}VBNcORSzTLMT^j}l z24)sER!$x^P98RHL3Un{UEBhq+=Ajfg5o?v5@0 z)v=P*wUN`ck<+u4)3=w`w^J~1P%v~XLGW1S1@=7-HPBHdP zHStR~@yjsr&om9lG7ZQ!4a_nN%r*bDYt+9`-wU4W{kE?TtuXBj6cSvY(1ffR9#74)&CdZ^EClG3O zN@{URZgEa-bxvt@PHA&VZF5O&cg^T>%jkB`>h;L(^T?UtnLE+9c!q!Zynyog!PQHH zYnF!8E)S_&5n8u0w0>n+!|L$HHQ|kG!<*JcG_8whUKi24KB8qqWXp!g)=g1uo1@#e z#&m4Eu5SlQKnf*6e!&b18V(K)4KUC$W%Ks^`|rPpg3sT7wk@`1U|`Jkba4#PIG>!L zz*Vs6!Q@nv3!j9a9MC)~|Mc0MuorI+pX&;>+M*J0eetTbs`kfYTiBhaS=ai_Tpt-x z>YiQf96L>8*Ou#NR5u&P>IhX?-Hwuaot+w(S{W>^A8Dp}{)XY=^}82uUAZty#`RYH zu}7+>!$W^q?-cv~wPf2ilWAVcx94ms_;~5*>StkYFMePB{=ID5c9W@|3QL-o=|}A; zIl9VpbCJ)M!_w+szB0r{uw6et)kI!tZ<*J+&azKWI{zw&PxE$KYP+m)N%*?B&1H_h z4YSj~J?RwwwaY5%)Y1c+YC1nBTzV~bwN1kE`0=C1T%L=Fs-0|D@^qQflI#B323Id` zF}r49VsIhYT%6hK^y6t^qQ}yAG&dQ@Ex*~AT3C5TOsQKr;!WbF2M{?L$SF%QR<rjq_=Ty!ayg5@uMMQ4Q*r-;* j=*r5fXvQ{&VYeAW-KSey3*(}VBNcORSzTLMT^j}l z24)sER!$x^P98RHL3Un{UEBhq+=Ajfg5o?v5@0 z)v=P*wUN`ck<+u4)3=w`w^J~1P%v~XLGW1S1@=7-HPBHdP zHStR~@yjsr&om9lG7ZQ!4a_nN%r*bDYt+9`-wU4W{kE?TtuXBj6cSvY(1ffR9#74)&CdZ^EClG3O zN@{URZgEa-bxvt@PHA&VZF5O&cg^T>%jkB`>h;L(^T?UtnLE+9c!q!Zynyog!PQHH zYnF!8E)S_&5n8u0w0>n+!|L$HHQ|kG!<*JcG_8whUKi24KB8qqWXp!g)=g1uo1@#e z#&m4Eu5SlQKnf*6e!&b18V(K)4KUC$W%Ks^`|rPpg3sT7wk@`1U|`Jkba4#PIG>!L zz*Vs6!Q@nv3!j9a9MC)~|Mc0MuorI+pX&;>+M*J0eetTbs`kfYTiBhaS=ai_Tpt-x z>YiQf96L>8*Ou#NR5u&P>IhX?-Hwuaot+w(S{W>^A8Dp}{)XY=^}82uUAZty#`RYH zu}7+>!$W^q?-cv~wPf2ilWAVcx94ms_;~5*>StkYFMePB{=ID5c9W@|3QL-o=|}A; zIl9VpbCJ)M!_w+szB0r{uw6et)kI!tZ<*J+&azKWI{zw&PxE$KYP+m)N%*?B&1H_h z4YSj~J?RwwwaY5%)Y1c+YC1nBTzV~bwN1kE`0=C1T%L=Fs-0|D@^qQflI#B323Id` zF}r49VsIhYT%6hK^y6t^qQ}yAG&dQ@Ex*~AT3C5TOsQKr;!WbF2M{?L$SF%QR<rjq_=Ty!ayg5@uMMQ4Q*r-;* j=*r5fXvQ{&VYeAW-KSey3*(nlDPH$4b+43XfUD5LWt_~I0Xvcogh zvcA9G{`<2cLx1gwzb1mJ5z}TqPV{5Yncp?%;jD+VuBtX}xp>p)>eMhP*Hl}D2`x`^ z8Mgh|>^bSctbi%AoL{@}R=wxgac5n})F=J=Khz|*XrEm7o`HdZ!PC{xWt~$(6956R BOt=65 diff --git a/graphics/HUD/Icons/A_UltimateAmmo.png b/graphics/HUD/Icons/A_UltimateAmmo.png deleted file mode 100644 index b516b82d21e5aceaf0f8d0da7a474bc9f8c9ca23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1026 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 diff --git a/graphics/HUD/Icons/I_Embiggener.png b/graphics/HUD/Icons/I_Embiggener.png deleted file mode 100644 index a756dbd0c8bc8262b860e409e5e88ce254385746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1625 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W?o630L zEN!@OojdMwl0BALBW@+7<9 zym>8OQl?)DmMkoIbXh;&^84-kbGOYrZZiMz*4~YEbur;V9bTG&%AdcbtU*|!zaLg_zb)Q4pJArx*;D=J-{!rY z@XdWvu~$d8byVC9SrPH=*_-!A&Wc@oRL<+|t4%tuodTz^rJ5Yl*mQBmL55RZ9Skc^ zI9>QI`#J4c(Z&antx>zpYk7Y#7fcoXds*Ggt?ke3&#nK?{ak1m{dm^fx2CJ!`ktw1 zxx%%Oap{6pita@m3apy0K|KnhPF_XnAJ;B@E!(^G%RQmmgyM)|gH^t!uj?+PuiLap ze(me<_=7e7XL3g;Z7^ISk*{FBeZ~q8xkG+(4jdDNPI$c2IToH~Nv(Cb!5gpTi&Eb7e`ux)L>(_cE)~uh%Q*nENJgeHX9(8`!zq{FA zBwReEutcTZ!B6r%lbK7+i7$p1+YWqOv#_`?Gh0*ON^6RsQ2Xt!y^V>!rw&gRx!w?b zcXvtdJSMH`DH@)ZM%iK!cLT4?duetAc3zckJJ=W_nxq?BqQC z=rXOtRhcuk_Q|fStiNX<*3|2?F?_|}ey2OkeoMVy&N{EjttfabLD*;8`HEk+dDE1Q z?!+2Q5{+`=n71z5(rTu1@}q))q5x5wh^U(Um(}ObUT%{RHdH+q^I+!ISsN!^3EC8v z#aPoU>iOhFu=v`!UpZE;=t+5BBK!5ZZJ)h}jvSAqjP|tdwsqwuxyQd=X5D&1r{>7g zBdviaZCuK-4o^SEdb{=Er*kukmp**7;K~&t^v$?0G-L|>N;da!ndy9IHc$|HBtl{_C^vfRS!r3%cTbWF?EMMDBzV>Ou`8j3t zTsuTGH%DrG^E&KMu=K3RuFi{5$G>JAep+`?Fvdl*(|WthtFD)(hjq&jZGO(185F2- zFnBSOxY6Zvh1b6LBro|s^Kaon8`ZK`O;KEB*=Of2J^XEA>T}7=gKd-I=Prp@{o3xy z`s+uF<2A2*Keg+?#F?|_UF_~-cYj^7%2EC3gPm;$6O$^}RP6Zh=V?lxcjwt#1$6-h znQIrFYO+(an^mfl>%i@ps}kMnvgC+Oie2QbU%~SAYa@5wKDymLrh;$!w7l3&rAwDi zopslnyKMio4ZJPws&h?x+SqoTDgSFb(=*yE zxG5nd!|`?8r8N= zX1HmuSY%nFnOad_$C3R%TzEL=D{_92^pNDYnD~OVg!!;fnwnv8^}WxD$&r#-Veg{% z?+BhTTR%nbC*QfK(+hZ17H5b}QrA;mrs&+qBJU~abV`9WkfZ60iy{Y8PVR@PheRi_ z?J&)(c>iwBY;|w7T#xP(F-&ooPA^W5|&YI|y!+~W{4G|rT{-1+=i%E7gh`;w*a=sc}H zVERDogIIy=iyu5^lQ-+!|F5#df@g(`+G?N2#u|>{94?w3UPb#q+E`>-#98E>uYR{> zUZz)h)N`)(!@Ap9)D0Y*go<0=Xut1lV^Qe zdHSd91KtN(9~cXGQvUfio!=28c0PP*Rq|Ss=wj&^yAQ1F-|4wBzi1!ZAI=KdAJPVl xGXI@_A6Va@{NVY4{s!g+kGSK1@c&`vc|Gr(#fk587#J8BJYD@<);T3K0RWCA3XlK* diff --git a/graphics/HUD/Icons/I_Fabricator1.png b/graphics/HUD/Icons/I_Fabricator1.png deleted file mode 100644 index 6d791bc3b4022b70acc4b7875f73b0f71c046590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1647 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25WHo z^lNeCj}3b5^XDI(XgPh)3-x#f*RXZ6+2Q;9Hcc`Y$ei!aY}|cywNS;vghrQktzPlg zJC|Q{o_YN1czI#oJELu1=D9uF^jDuxFX+|+WA?yoUIq1PuD!GMlX7yzKHks?OFfhL z^wLRjX7N+m3pSS?Na1&m32k4qhI38aKQpr@Y7-9UIxY<0nzuoS@4njiMGVr`Z5K=} zIu9JXyJF@0mRmASi;gi*J;}ZE8spxrqHfU)TFJ^K-xzErCYHRf5Z=vq{%%EH#sc-i zh*fLbZ^|B@_VKcWeF>xRaXY8;-xe4A_??jT!l~eKw#1wnuK(vnetA>VeL&g3{P@M2 z`_(o7em=PNp09zyTLUA-h*-m(_xA1oE=tPS7E6cc{cq%d|EKlt@pVbBk3=46TOM#- zr1jc8uc_M?>{-S3w{zu}-|JGF%vH14u5PVkIrMnN8nfh-@0>k*teV~atJ(beEWfAz zvHO;i_in+@4Q8#plro>UPhe|dC3$tD1z+6hTjrqO zb}an?C*Pyx@tl8d){0CGJ1BjZv-c|d+^hb%oQpRsVMau3p<{W@yZ{R+mHkWKPBlg_mm{hWW!gqQcY`A>QbRn?z>{oceO%_HD)MrU|}c=0ELBE3V&h zo^rzH#jP@dvmXsDZf~E+v^L<{mBWsI&CFdRDtmczQ*k( z4wXv_9rKdC9$dKT?h(g#aUt`EV`T>(bt-;3rSj+F+<@z*8`HD|LKKvhnJZhBCRwrg zTQml|XRO$DY{BL&4vW?#FZEk}exERZMxtTOM?ovI#T!)eoR@74PMD*#VRoMc^Jd$Y zUB3(@;^qI`{hbk9eex-%#S4`wr?*a+wAv#w!oxrDjdWtZWRur>1=Xf6dK^pVHJ*Ic7M1TSt5YC*vAXY$V_>A} z6gBmnkCQph|989ee|f{DCruM%;`Ed&dT0NVQTvhRvATq#G_Uozxa*3={5_jX8LKo^ zH`vrXTTuCind68Tm!R^D+|M6m|F`k7$CpT`rE|0%4VvPyrKIfjP3|MowW0^-ao#vt zqLyvEN;h{3kiJ^actN2jceu8Ce05H;9^vrGv|QW zd$BKXW*lRPRnuh--r#?)?UZc;)2)oCgvT$$HCFov7`;58snhuXhwTYx<0&ac2KOWy zl}?-#Z-`%~aM&_Iz4+&%>ICWi9kc#^50JC>*UgA(xaVWLQz*W9`75OjZF;|)Dwgec zU#QfU)O9Q>U7Gv+xyPHiJg%C|HHcktvzoi>V)P0QzuFf#W=jD-x1U#}W2c(wHm5t)lHb1VeIaYb)V;a;?3*nIAH67j zQdFsuDq8eI>;|7r%K4I+G49h_8Pj&XyO#F6@wE8HoiVG5E}p&8UGUz{!lv-arL_O; z%h>NN@Vzj<^2Fn*P0_YIpO2J3n0_)q>*}H%dxWkn^E-7v=7|``i3XEKshBqx7A#Nv zpqcQx*jFL@+Vc(E9*5sMZT~CG6u#+_`q^cht5!UU$$20)@nMQcch-~+)AQj^jptQn zei3qM%oMrUa&URp^^~UpGFcPuM3}W75Bq!RQY!a>Y5{`r>(D%+Op!3-Rk@AmMi=^8u2+^q`>X< VY_^MM7#J8BJYD@<);T3K0RUW&7_iO{AWM)&Rkxpa;{KA zlkflUD+l<6bszUTuHODT;NY}toNdd~^izYGnOnQgS+jC`7F~$W-PLq{>mnZ;%O7|D zX>Z;1Jj$Ej^;Nolov+u^qGa>+H6NZId~{^ZB9ATGx8K}n&^P(~rTvQ)r z>B0abPOjv|Pq>u}6Ic9rJ%8Vyz3=O_R`$=e{r>p2dEUMUyX__$7t2^ycKr-ifBE|T z;qS33o{4Kr&c1mm++$~Sa-oylX_FPX_XQtmSVe2}#YODj`scR)m5;^xwdpsuoaxG) z5vkebxg=!&6`TxYVy-^y4n6)7;@Vb;1K) z^Ilu0uh^v&w!Z!5+o1LD6;4d5-`{7?^iEz!YVxjxJDdBnJS&Yn~12>4kr@y!Ltytv;Cs*{&IuU=t0_25ONwNbp5D-%j~rTp65 zGd<0)bnd6AtY%u~nm)46PAs1P`{;k;CwmWU%hZiJzB}c#+(7V8Me5Z1*`kd z)%^2beqU$r&-Lr$pLVA2>$&&((N43dy`8x;c>H@F+|cvV>dc)HlD~FCtls1^d;wOK zO^?o~tn`uE8n=9JXnOHav3aRBoO^yB=$oGZzxHoS#G#i`9!wm8Ew?w%v@YfezP#dI zl>4OAYwPqk7FSO_FDx%}E2{>a~&%M52m+Oa~p%%Exx@_secu6VU}#ufy1RXyY|YRY^*!t;gr8}%jwW5 z%#sX7GZ}wP$`lDqDBl0z<;;VL_df`#3NBu~P$uL>CfB~liQh_C0u??m>jb-dcxkNT zIbt#G;F&Kr+m=qAC$;!)X3^G9atB`jW=e1Wp5*>Nwaf1U!obWOJIw|GX2~B zmvbkI1h?#S7jb{`shOu=Bs2frqZd}z6W!OZOM0nw;Am~5@zH;Kwq+`KD)l8!vQk*| z_KO3{{nCjlg7=F9FL5R*%sp!mqA_7oa7!ik?->5?p%=uj{`OmLdoamQa^q^XMH-K0 zh;{C9`uaDP#qq#aSr=EeF6TuC3`#C6R&Uv^2}j?UEL)bp`pbIJjU}=VKK(m8RiLZv zs#>el6Sp6c0pcMkp2tdMgifjiiU_qa28t}2Ep^Y_{AJR^z1&Ne8o${Q>f_5?QFh-y z?M0RI!!~D;mI-1VK}!F4**(P!ujoyx$?rKX&@7mFCA9ZXwCcPp`}W&qfzn@hcfBdL zTKd9!)v`K+8y`5D1=Lhx6rJ96c}!|ajj)*J{9w0BqQ`^ZJC>dOApcC$>hc=h@D)0` zoA&Pdbl}Bj!3{d<&EIZYpDw?j)3VsJX~k0Rk~2}1i4GEO73;chWhiwiHNHz947Ea$yOXayNetJs|DxY122 zU71u`7!L9ZZ4vMAU6D0a!z5+n;~O6>-uuhS z8~^|Mabe*}*1P5Dml6v$`FreD_53qq@7o6cz)Qb%HTvY0ymtCGY|J$=R?sTW%C-W`OKM9Xhn>Ekr z?Mc3QbN2tayXwy0w8O>a^EGZ6{=cJIxg`wGtH_uK@6ua~I!CTF~5OLmFh zze;Y;YwK%o)sw!8>(xZQdwEJE|LpxA#}n3BtUT3pH>#DpH}um&H_MyHlT?b0uQs+Qim2lDIwotD31Z}Q{m`a0#;yYFqi(|Bh}Ze-5X?Ho4z=gU1g3S?&c_=~l) zJl?fLr1jy##81qvKN9wRn0!61{_9o#)UPXp&+pk*Q~t1f-g9F^v!k6ag>6dTsMyBd zW!cv~CqTm5=3M7YVHrtFpMMV=eJ&>~-=peUSdx~o;>XXammcZcO?c!TUzK{nq-Rp{ z49QN3&_K)bZ;>Ujk6%0qT()evhjl1v-UQnl^EzuzWMU;8GYRc>dwKp_V3dB~>g$2QFT=mFUW*FdAEA-Q$18Tx zckZRVsW$dWnYpb?rwaY7Vf36PaAL_75ktf1sj*d?Yu{YWUUDVx(%ro$COKTTR+;?j z{I}dvFJIj!#g)h0)hDzZc{{c8*KfXp*XMXcLJu0*-g;}*dXQ;r6sxP}rAsEeE=L}7 zQ#au4-TAYA^R}w?M;{dZY)YTC|3B|x!;=$v?auKnY{j+gGw0fPEe>6NZO!8yVq4RC zFFjI{mVUir)v3JH*%u#a%zGYq?`~pdC7-LOp|PoV;R=W7>o;}Y*Kk|##MI=3r~A*Z ze)#LlnRva}{fE@g@9$VxS`gb_wYe=ZT1HCdP?_zO6sFTgnrqi?C|mCmZgu$07ae!L z-V0N`0<*8&Tz54ha%cDB8S|O+?87#i)fdP1^j_TP(=wr>ai^)@1~Y#Y_Yaj*Zp|LAN?;A%WH03XP>K}Fu~#V z7LQX+?|1OM-%~yH<0Hi-7Eb0lYU+KT4}BK5{QE_HhMaZNq>v4=+?TiA%)Zj0;wa$C zU+c#oTI1ElE^F!N#F6#Y)-Tm)&O9r>-}(6$GE6y{{I|=rMxEwWDguQq zPbGT%&m=`k{XE2RHf*l+_4N#Y65}7ls0FVmi8|qQ%!Ie-rd`&wP64KllV#sG?7Z$E zq}gPkz~@}FlaY(r`AvxSi)o%4o(H}&G5l(FU}-^dHOeP ziF$PIlFj#by7p$jY#64As8+1L7%^pnLGJ9wE*Xw4N)r{jl68)|i8X0-eW;zU@TJfw za#rK{JCAbp;%jH0J$vb|-?VRcV+wam{?oW!9k}CN+~EtBMs_Fr9xHhZv?#XaCPs)k zP3l-AaJ!V_vDnnC*0pa-4;{E49_MdkbE$0A|GR%)pPXW}`A*&(zQY0&Ht2NkO`B}d z*YTL+w$aM#t6xM(CrC@&^xxxalV>#dWSwr}ZR^j|T<5$x^w}on{Nj6S6k8NN)Xs|f zTPMuRbX8sGMeX@sQOk>aq};@L7TnEDo@q5L_3=)=X{kcTFV<%J&MT3%necm_&S^sd g=JfeTX8vcqW8G{NE8n?}fq{X+)78&qol`;+08&DOqW}N^ diff --git a/graphics/HUD/Icons/I_Fabricator4.png b/graphics/HUD/Icons/I_Fabricator4.png deleted file mode 100644 index 2f2f8f52c5fb21459bdd7e603a9898fedaa971f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1825 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25WA6QsM1urta`VL=a1TaJBxoud}?gw zojApOc(X)Q>({S4SKHTy)^eS>^|xthwd#{yk0;J6c@ti{bKk+2Cp&K3{;wjud>_w8 z&qYOA|8M+Q``%>MzxdU@`TrL-Y3E+HHoW(}x5R(b?f~D*vav2)&RM0RiUBX*YZ@4d z{QPxlRekX0J=y%Oue#^g2Ax{^`0(`md;cA~5mDyU=X&$jIz#K^$!9yJXenmT=98Xn zG)d;ek(=<=Srt9=wmOS$Dg5&CkY~XDiZf<%oIhXl&2?so-L$(>$%fb94L0zx33XyIWLOO}cCx zyd;QI=D4~Nw@)8$QCU^fN%uC16RClw&1;=pKm2)cXJO;M=hO1?_7}yA?*FruyYj5T zHLJdV-G)aDzTjT|2+28RI#hf-3=RKE`HirB?_{+~S^(Nor#g*5%d}mozI86%w|3fUccKM3!vU>V4 z>6N9kla?N}zJ5*6wR2foKz^o(cc_xkyY|o;=^p`ZoomFk;&0r{zm)Of#j0a(R&t7o z=R3Sua6-r_<1rgkeO)b|=cFB5_a478QE*Dcl)qWcF=l7CZe^O9)tjPJ^wHtL-DPk4 zdOU|1qC)0x7Tz{pqd(oE? zZI49`d)H15SQ0NE@oL?SO*U8NKYcP$ktP1Y+nuJL_TG)zwZ|!DQem#_)@x}w7RS%k z&7C2%@Ltx%xn0GNZYYM_eG<=|trL4c_0a_e@pH02fBrXqV%=!nR+(zS?rMDMd6g*ZLc?MjDGm(lG(`_N8WTAy0!n#+-7>M z{M$ZO8>T%4;UDtO?)tQNy55IJ{PEAfd%v8! zb93e_x^^id^1j+Kjy;?AocmPO`S@|Wm*udz zF#nY3w`GQcLbm4MA3?7w@`^C%jjl)^SOdRmT6zhw0j` ztIqPV|1)B&nsg~4(cf9X)#UObec|-g0j>frKBpZgso2;bDP;b`z!JD5CU?OU?m1qs zL|#|FS*@4l&i>kx3=u|A39Ge8nWi)&GeY$vv{r2X{AJs2kj0V z%knN5h3bWiPWgB|BU`O{s@gj7JN;KSUCJ~yZr#-UzLMu_Cr3nyj-;j1;+JY|nTeKq zbpnre$n8q}_&%t`CBN(^&=?JqAB=zIKVhh0#J<7M4vVqrgS&*qMa)vmp8Qa)>K-s@M>Zhfr({QX1ggbguo zX6*U#$K>dyMun#5KTArQ`<69pJo=@$D^ZxuuJx~!xtaEjyaI*&b;k==ZQFY4cYD3H z;gmU1w^z*n`j>(6LP>MbRyTnbmPC)^8*Z$g6>^*HfSy5-K(+S$+|A~q|5v?;I=VWW zx5?l@p-s;5r7_t`T}pkg16RGacyAggx57rmIo~QyVrt8=KeN7Op5|O(e%qu}`tAn9 zoc6xN$LtT;FTJvPBk{(2zs$rV-`m?i^FKcKpHb>V&D4T@Ddr3e3=E#GelF{r5}E+v CnuWpu diff --git a/graphics/HUD/Icons/I_HealthNugget.png b/graphics/HUD/Icons/I_HealthNugget.png deleted file mode 100644 index f234a37d61f22be0646c789d9f886932cb307ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1336 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25WS2KEnx2feSQzy_5nkE)Y?;cFH_d_xh{PFPxF%xFt@wL#a#V<=T7I=NA{3oPS^b;Pa0j zr+Fm_g+>v>AQ_V<&&@_cs8A9BNW1#}&XCfLoopSHNTcio$f#h=d2 zKKWNXwes!Oxo_j&)@wbucWJZUti_RiS$-$Dbu9A)zjLtlF?Mw*?edVTl6mv*UnlF! z^epFQcQ1yGwwsXC|A=o#+b;H@QwIRUH0$&wS^l>b7Ib$9`-zzxV5%ws_O- z@O|%H11E@1Tyxv~u;CWxH8UToReY-4Y@?_(gIU6F`jgl@N)sA{rn^p2?fPRCd(-Yl z&4z49EhN9qd?RzY@B4=x zyj47L%888`j2HP%f>7t$I_0DOHCM|muesCUQSudY>_1b>JbL%CT^AGwR?Aus2F|Eeyd(p}1 z`D-WWe&6{yZ;6%Uq*=-)?EI%)_I8Q03JED1Z&{bHsdp*k&J<%p+W=#)8gzWh8KE&T5rzp7l$q;z4M?h{E1e*ZE3q;GR}is~wN z;Wf4ntDX1Q9=&C#$5ik=XVSU+t>GO#2c*}q-AG+!d+*Boj9twO^L{ylHRkhw$^O#9ijxxW>|ROnC9xYL&Jb z-#_f>PBC3IVL7AOE90H@?a!JOtwK}&FviKAOTU%7j{m9E=Bjtf4`X)n7;$OcFDySI z8Y3vQMC`lRbQ%4qO|Q*gd=VDP-t)$=YD4c_zec{0;}_52RoEH7cNiR6vUKU`f(YZ=x0L1Nn@T(rTW_e{;VRNz znVvlBrq}__4WC*p**14%DfTwlmKZTgK?qp8eR&HTN(#wGi1e_*?I!6!$yXKVJnNgT?Ss(;hDrWY`uI~{Ht z9dzx3!`jk=VbZPplV$Ca-hI*Oe9)9H`Son@iL=4R*Ve{Fo)$4RzZ%8pRxBR#Pn2cX zwv2qC+pa&XBZblzT&q%;s8Zwl@Z+C`?p)tByKh>WTlg(hF5%pJF_z;>%EgK14;B}1 zzvfc-X67DdF8^n2b7n6;wW#R-N^`p$HM8RzFV?!W>nG-ivfsdY>t99_MOPyLbG=7qxHp`#N8|uq!mXbtUuhDqYL9x}xbKqx z(|N}j4CUs<96vfeU%|-Ex!9Jy`m)NVer>*)ECp}!O4&|6ZajEJQ7b~+a80&lum0sn zAF`(lv90W#l_S{|WUb;p?}63jk4L*+?eSoAmh9>nSIAr8cSt@CXS9=NB`dJEJ$vqx(#G zq~+?2H8V`V&D+y=u(SNZC*H(@H@QMHHutAl{n!6>y0Ff8?)tvSoZ1zuIy-LNy;m#w zurXXv@!3R0HMQ&&*)r`udC7fO5A#N7ZC05m{y$OmL6p{Z^$lGCPox^(O)S&zC^~h_ zH=E-@#-)wbcN*rO)|}{(`t1F`MBN|fE=J}r+WlW^>OY&AC#0h8bf;(-etMa7Eb3^m zlfSf&P*%D^YkQl%iI6{^ZK{)nESe{!N?oOGQp~v-o%WbrNrNZ@K;#`(d7#ET3iY?0Ovo0|SGntDnm{r-UW|dUR3C diff --git a/graphics/HUD/Icons/W_CandyGun.png b/graphics/HUD/Icons/W_CandyGun.png deleted file mode 100644 index c4e5802e4324753f532989fc768d733c9b8161e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1217 zcmeAS@N?(olHy`uVBq!ia0y~yV31{CU=ZP8V_;w?oMU#Jfq{V|y~r_%fq{XKfq_9l z!TNAA0|QHmr;B5V$MLOGPxgnpN*t{>y;FU^WVbwjRnxMWEKWRJoJx%g7PK9a<(}r2 zdeA<>OZ%Zw`o1he$V>If1Zy&9wzL$njf)$*1xaX8gZ-B*7wSB{?oj8`r!icpdb$A zk}1n2rcVfBoR_w^)r;r;m315pe}5d#eHuDtd3EBp&W%CyZ-3ioZ(r8C^=Dm^!2zwt zNm8qIrzSDJl!=^lv8-*+*BMt5_b7jr6G%ysNIo&8an6!ClmA70pEN`GZup%It8;~z zW-DAMG4`I=Atz}ZB%u_}#d+GY#8JVS(~NPxqk@Bj+0{cPj;=z}EjNh0X33m%F~@9% zpHR|Nc8ew3_2P<{_5;$mLmZe!;oI+?dGf0W$XDYdv)I_6EEp^R=?LY81#Pt&!G zwHK{aP6sJHUb$3v4#&#beCL`!^S#!|&7QH5H*4MDndf*JzT7<~k~_I!>zwUvjONhzw&?uz6}!v=)918#bF`=ka4E8K_TBJ|x~J5#D3e#tQH42Z`obkkp6)&~ zLv8w9odcPS3k2f0PPRL*-=yGBX3#oc#W9$>Z1U;T9LRvo2?uZ~tRrxmNT`?NAG&x@qOt z-=+L~R2TQ_-3Q^zO7phW2|i_JapDjW>Q!)IQfPHi=4@3`XL@%#a@uO6X02zdW~R7& zHCS^x#zXyv2;YXa<&w#7rRHC8pMOD!yJznI1?B7$8CG(01a0{|rL=GI*Z2*Gif#6K z-z|%r9DgVxU8d0_WnN?L*(9>15=VH*=-w{encsQ>LYgf6lhv;6P8a@L^o?ozCQdD*<2%3T@z>0aV4dUruHdeZ zk|591s>+2nkM2iotjv?OvXOIq#B=WV{`lO_TW;{5vguCg+r!~lv1a?7Gg%>f7p`Es zve<)Xsaol@E75F=X0$Imdw5IlVf*fC#iO0FN8`jYkMpNBsV-b5#1^ub@y6XvZdW$9 ztjaW=Y34cSVD<68dA(V;e#I7i-+$|i{;Q_@;`-lzpIYtLbK=Dd<>lwvo%`SYiN9ha l>}R87#rWozzRP|_$0fg$bZr*~GB7YOc)I$ztaD0e0syw@Fx>zE diff --git a/graphics/HUD/Icons/W_DeepImpact.png b/graphics/HUD/Icons/W_DeepImpact.png deleted file mode 100644 index 01e07d9e34908c3f179a5035fd5ee5a008d00de3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2269 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 E0I~y0lK=n! diff --git a/graphics/HUD/Icons/W_Eviscerator.png b/graphics/HUD/Icons/W_Eviscerator.png deleted file mode 100644 index f8dbcb485be8abb42cdd03c22d5779dcf91c48f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2303 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 Ul}{%yFfcH9y85}Sb4q9e02dKKSO5S3 diff --git a/graphics/HUD/Icons/W_ExplodiumGun2.png b/graphics/HUD/Icons/W_ExplodiumGun2.png deleted file mode 100644 index 3c4380d55343aab6c7364aaebd09eae9cb13f1ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1678 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 j=*r5fXvQ{&VYeAW-KSey3*(D_0%-p{*S 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 AW&i*H diff --git a/graphics/HUD/Icons/W_Sparkster.png b/graphics/HUD/Icons/W_Sparkster.png deleted file mode 100644 index 08fb600674fa5ed4382b304d118450a09247b5fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2825 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 diff --git a/graphics/HUD/Icons/W_Wallbuster.png b/graphics/HUD/Icons/W_Wallbuster.png deleted file mode 100644 index 94b41b97380a76d8225fde8b2370d5101264e62b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8503 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 diff --git a/graphics/HUD/Icons/W_Ynykron.png b/graphics/HUD/Icons/W_Ynykron.png deleted file mode 100644 index 8351904d67508af9aaf3a2f7c1234dc38b572e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11551 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 z +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 Pfq}u()z4*}Q$iB}1S4@C diff --git a/graphics/HUD/LoadedBlueShell.png b/graphics/HUD/LoadedBlueShell.png deleted file mode 100644 index ac091f4bdda50d6693e1155691b6be9305b13258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U|{25V_;yAxp}0Cfq~(fr;B5V#O1jY_In); zkZ?a=UOai(b+xdl{|y>0M;1G4l9c)xd#Px z_MDrzO`AnT0|fsm-Bae+R+IQh>(@&@*MG-qerlD~n5q_XMm^0j&)%c8sEhG~Zjug< zdrSZKnD}c;e(%;1^FK4)ca*PIL8+mrkJbl$mOKyD1W%@Q*KR{pR83$nV7izfun(Qjx4-YZf zUFTXi@2Su8IsM9$d3^a99Db}`(c0^v@*(WdCfP|UoS~tKYejeNap?c`;UAa${09xO z|AWOEC0;E5u%+o-h2y;W1;w>TYs{SUmcMu@a7TQK>K3lKwi%4d3QWfuf-6qGJF#ib z@%HL->d8ID4{R!0?jbPA7#J8lUHx3vIVCg!0Bd1(B>(^b diff --git a/graphics/HUD/LoadedGreenShell.png b/graphics/HUD/LoadedGreenShell.png deleted file mode 100644 index 680f994e5fca4855c35d9c8829bf31c18f796edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U|{25V_;yAxp}0Cfq~(wr;B5V#O0|I4*DGm z5O6)e<^9xc)66>B1h&oC@xlBL$NrleQZMo*F4k7{$PB*q{aCB+uCHm6JoAc-i`N}7 zUK}XH)X?J{ATnk3`*XJa-AyX~KmS;4yeoTjjodRIA@AEIU*{UhG85{^M&ty)RtY~x?$Cp-@<0PD_@`^vKz7#J8lUHx3vIVCg!0B&V&iU0rr diff --git a/graphics/HUD/LoadedPurpleShell.png b/graphics/HUD/LoadedPurpleShell.png deleted file mode 100644 index a9ee7a45d588a030e6bdf092fa1a5dda589332e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U|{25V_;yAxp}0Cfq~(nr;B5V#O0~|XZ;Q( zh`5~JJ7wCoOV>OYldtf43(q?&{$Xw8j)N_{*7ZVL0y>t}-!E-Ecw}z6t+BfD^nX{* z{Sxd_TJ$GL;=vh3rJUJKucMWHl>lSzdu*0JeBqJOwnEged&}ZA3LsX%~>tmCG?F=eSb%S#O9BplP_u??rvEhDIf9R zsMMra0?XZQdB0f0>>&6cA}7W-=wB|^^x(`~yZ<``Tl})s q%uVY=3V*Drtf_MTr}F=(c~NWFw}W5ZeHj=S7(8A5T-G@yGywoCCwxZ$ diff --git a/graphics/HUD/LoadedRedShell.png b/graphics/HUD/LoadedRedShell.png deleted file mode 100644 index bd884107122e9b4f5a6ae04b622ddfd4bc4f37e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U|{25V_;yAxp}0Cfq~(Sr;B5V#O1mDhTex0 zBwFTs-_!6lNy^^Mp|`gA0e?Z+=i}uCD=#d4pujO}k(ldc{pS~yWam_!)-AUw-!&CIbvB$E}tq-N_3T;q1-f?`LcohS^Lyj4OFdWpIOG>7U^cRWyW3M zlh0CfFTI+*j%(U`U4~s#Vi-5_u1hqoJ diff --git a/graphics/HUD/MenuShellBlue.png b/graphics/HUD/MenuShellBlue.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f574cf28e86727ca93e7930b0513e07fb03188 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBln7W?*1=?l@sG0|SFZfKP}k0|ca{G0dFF zaOTX+G~Y8b)Bay+*vF($&A`CGSQ6wH%;50sMj8VHgSe-QV+eEal|aXs0>*!b=L z|JuC&&!6%6eg43K0|$z}y(wk`0gb=&Rp%xeGaDr&IWVViY%rM9x@m!l@|555%a|B$ YXbEkwNV~4fz`(%Z>FVdQ&MBb@024wcy8r+H literal 0 HcmV?d00001 diff --git a/graphics/HUD/MenuShellPurple.png b/graphics/HUD/MenuShellPurple.png new file mode 100644 index 0000000000000000000000000000000000000000..1e15c89e21c1a5d73d5760f33b005d1516bd6ab5 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBln7W?*1=?l@sG0|SFZfKP}k0~i=Hr1>(; zOk+4RGtKwR%(VYk8XobjzRtkFz*rLG7tG-B>_!>`1B1Ayi(?3fY_f-c0ta`BfuW1z dsV<(LCI-6+%==Cqog57^%G1@)Wt~$(699IeB4hvn literal 0 HcmV?d00001 diff --git a/graphics/HUD/MenuShellRed.png b/graphics/HUD/MenuShellRed.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed3dae450c757c4616fe0a11b42fae3db79bd72 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0y~yU|?ZjVBq9nV_;wq&F@{nz`$VV>Eal|aXs0>*!b=L z|JuC&&!6%6eg43K0|$z}y(wk`0gb=&TNAIPv85b1(!h2?AiEal|ab5R}H5Zei zNZUnyb0Jsm@Wk}DdT-W<#7wR(@W0m7pQX?tF;nvWAF-L=MB4wBt^NFR!Q(t-2JQ7u z`%G(Q@hmv`chi$!aUW|^7}k89=BOl~rQ+?u>?Eoq@$`GD*mBXBb4q7B#k4tI>{ gE@6%Y^8Eal|aozWfA=e=X z5ta+vcOP{7pmy!vp>u95>z~NlbgwO+FlD2F%i_RKx|13%^YHXo^P;7#NsJg8YIR&OC8+Ud+J2;O^<-7@~20>I6eB z1_O>GUsmP5{VyLQSiaNZjtIx8o2}pdcAU6&s7jqD^N!6q4i*dN`IFpSCWKZU3`-Ts jF1TN+9rpf66NiUg)=`%E_vi0s1v$dg)z4*}Q$iB}v*$YA literal 227 zcmeAS@N?(olHy`uVBq!ia0y~yVDMsKU=UsQ8WaNsIPS1~WKvHG)zs9|6bf6qeuaOFmaVF-Qix{k zE|(UqxyI=ohTgL!u4k`}a_xznb!3L>iiI9NH?#$pdQHgsDDjAiWtm<@qagESAwdR) XRMh}>m5x98Ajf*T`njxgN@xNAgs4IT diff --git a/graphics/AltHUD/SheenCasing.png b/graphics/HUD/SheenCasing.png similarity index 100% rename from graphics/AltHUD/SheenCasing.png rename to graphics/HUD/SheenCasing.png diff --git a/graphics/AltHUD/SheenDisplay.png b/graphics/HUD/SheenDisplay.png similarity index 100% rename from graphics/AltHUD/SheenDisplay.png rename to graphics/HUD/SheenDisplay.png diff --git a/graphics/AltHUD/SheenRound.png b/graphics/HUD/SheenRound.png similarity index 100% rename from graphics/AltHUD/SheenRound.png rename to graphics/HUD/SheenRound.png diff --git a/graphics/AltHUD/ShellBlack.png b/graphics/HUD/ShellBlack.png similarity index 100% rename from graphics/AltHUD/ShellBlack.png rename to graphics/HUD/ShellBlack.png diff --git a/graphics/AltHUD/ShellBlue.png b/graphics/HUD/ShellBlue.png similarity index 100% rename from graphics/AltHUD/ShellBlue.png rename to graphics/HUD/ShellBlue.png diff --git a/graphics/AltHUD/ShellGold.png b/graphics/HUD/ShellGold.png similarity index 100% rename from graphics/AltHUD/ShellGold.png rename to graphics/HUD/ShellGold.png diff --git a/graphics/AltHUD/ShellGreen.png b/graphics/HUD/ShellGreen.png similarity index 100% rename from graphics/AltHUD/ShellGreen.png rename to graphics/HUD/ShellGreen.png diff --git a/graphics/AltHUD/ShellPurple.png b/graphics/HUD/ShellPurple.png similarity index 100% rename from graphics/AltHUD/ShellPurple.png rename to graphics/HUD/ShellPurple.png diff --git a/graphics/AltHUD/ShellRed.png b/graphics/HUD/ShellRed.png similarity index 100% rename from graphics/AltHUD/ShellRed.png rename to graphics/HUD/ShellRed.png diff --git a/graphics/HUD/SilverBulletDisplay.png b/graphics/HUD/SilverBulletDisplay.png index 5c62f04527f09b522e4ca1e14ee37c639d7ebe2b..c815d621a33c4278b7366e72794f5dda44d91066 100644 GIT binary patch delta 125 zcmcb@)XAvR8Q|y6%O%Cdz`(%k>ERN@z`!8Dz`!8P!py+HknK6)4+8^(M1W6-D+2?= z#0F6hN&O|f3=9lRB|(0{3}>D=Ixl8mV36~4aSY**P1f*cZf0n6aWp89(&-TpH!w&_ d2x?+r;Myv7a^vZb!3+!x44$rjF6*2UngC1S9diHx literal 340 zcmeAS@N?(olHy`uVBq!ia0y~yV6b3dV9@1YW?*1A;~c@lz`&3b;1lA?z`!6Yt)!%+ zrmU>4uCA@2uB)l3tD|M0qiv|8ZLF(fsIP0HuV-SQZ(?j@Zf0s@Zfav;Zf9w3XK86~ zWod71B(N)I=4|^k*=*`?#q`dx99AseUr=8b3Bggc-(=i jy6#onMmF;HI~bXNYWAC0Zfa#bP0l+XkKMzJmz literal 259 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU|`{3V_;xt-?IM=0|Ub;PZ!4!iOW+D?)7R4 zlsWM5{>JMEay}+|uoO>V+kU}Se}UeCo8B+@WajQ=6?eQP6(uue+l3Go$3rC-926@} zJ*IqrJg0v1;`56cmi5kxQO}>rntbE2Rp#$jhmV5Uw;a>GS=I|>yiMM6@N-O^xwqP4 zR{yK(Hr+er`m?U~S$_KEUDXO(ez&w9E-+KDzyEn+W^rNWLkqU+#yj>stoRVX$g04# zV3N1z=WO1I79Te(-0ELj)XTd&nYfe{nA{Frcd}6Vq8=@>yv6u0bG%B3;c9uu RFANL}44$rjF6*2UngAmQZZ`k` diff --git a/graphics/AltHUD/SilverBulletFCBCasing.png b/graphics/HUD/SilverBulletFCBCasing.png similarity index 100% rename from graphics/AltHUD/SilverBulletFCBCasing.png rename to graphics/HUD/SilverBulletFCBCasing.png diff --git a/graphics/HUD/SilverBulletFCBMag.png b/graphics/HUD/SilverBulletFCBMag.png deleted file mode 100644 index e78d1646ab9f99d30e76e6eb9f8f138e260ef1f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U=ZM7V_;x78K%m@z`%If)5S4F<9zQVZ~qWS z0XP59uWuVUbWCPRJZ@u^{{Mfz;Ucw$&cHUwXQlb&;nTYrQz9hxyXvlbwPYSsL0z5T zVS@#$1RPh2mb<&Wc-Nt&)wJr-y&vEH1~CX7xcO4@U0+vX+LDl&SqBA}6qw%6U0}>3 zsledLkan!(Yis%XK1;LYqV(%Bf*m)~x7~}J-n75+{9+*oxwI#X&qQY~Dd0NS$@VEg ziK8ei&t&tK5{_=JX07r?E-b<9?;BTMU|q!i=+G6JKceChD9vqH<<&dpR*&C1phD-M}D<&xqYoryXdWAt|X`8D%s zk)KP#G=V9GHG|CyK*fB6LFnGH9xvXnZx diff --git a/graphics/HUD/SilverBulletXSB.png b/graphics/HUD/SilverBulletXSB.png index b01292e9265db7b14752d618bca074610f94712e..1d336045bcb760e9a2ec31f2fc3916399fe542d6 100644 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8U|{B8V_;x#{r}aQfq}u>)5S4_<9hO(oo~+6 zoBAfVMPEN}BvC)_XhM$e(FVSAa<#`2CfRjQe0pu`W*!jOzHV-6LdDlPjM5g>-z=G# knGe^yY5ccm7Gz+kPZSU2Uwn|Afq{X+)78&qol`;+098gS1ONa4 literal 225 zcmeAS@N?(olHy`uVBq!ia0y~yU=UznU|`{3V_;xt-?IM=0|UbfPZ!4!iOW;Zo#kRo zlxTbSd+x@IKRPG%7PXu^bSW&-g42>KRk3T6(dK{-A7!KaHSe<@roWH6*S*~RM?~JX zGTZk%RfA{s%3gKj)=*At@!)*VeMS4+(-?ow*RDS6?S&!mBS zTqbxg+}hUhV6Eb+6&$O)vZubcf5)Q07!x0RIm-E{fpL)58P#MCMghlS^@3gN*f|_T z4xG7Rlande;J_i|rO?7ICm`5!xS{>?5|#_)+Io8W7WVeep@G6d=^Wf5ESjY&xKdv%b{&PZwGmW;WY&m6z8`5x;33({ALM->Ln5Ds8u#l7TnJ zsl4q^ufL!FB&tG_^@OUi5A$P_g8KjM4=a|uuMU|KWTfi9BYaPoOWZ-11xg({d$(O% zv2;P&3eAlX8e0WEa)}AflVLhjxoip#OA~|B4&y%NudZKM7GzbVWMwmK36p%z8JIlF z%}cYwf}j8U6Px1V&y8o(_8w?IJn!*_=LI*C({`9&d%a)gw{7vf%(WMm_B}30nB(Rn zs_^9T^79KfmE62Dy_ZY<&h$R{%PuSr&poX8A#Z(N_+g*>hTFN7i=X_g_@k;Wo`2E) Z-X-bP>*ogiVPIfj@O1TaS?83{1OQHY+iw5> diff --git a/graphics/HUD/SilverBulletZoomBar.png b/graphics/HUD/SilverBulletZoomBar.png index 99e182306413e173d4b3d7fbcff8a099d7856e14..c1c8c2bedd6960fc16698a81d169410c961dd57c 100644 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0y~yU;wdMIoKE&7-~{#GZ+{c3_V>OLpZJ{rzkM|i%Km>HT)mbbv>O;1I@fdFThSo-jDdlH!PC{x JWt~$(69C2|Alv`| literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yV322EVBp|jV_;xltW}X>U|^{7ba4#PIG>!d!1%}a zw=e41*x1_6&k5tv*|P1;>#+I%d3bnuVzin-6wm*OPgdmpoXa*DEV?I1hUIEd&d-Gb zk{zi+GAgfCZ+;S8W+QO=houIeYST3T;O2;9Ctd%3X-KT>=1}o1D7s|#bn}$YPCChn eX$!0w7&=2mOFei+?lCYhFnGH9xvX||8z4DfU3<&xrJU|`_&^l%AcU||#{x4DfU3<&xrJU|`_&^l%AcU|>)Iv00cI7#NIuFNRK3G&Pa;ba4#fxSp)x w?aa)`)7g}9AX9_0b;klmWi~a{5(Wl^bMpG`$D6|$7#J8lUHx3vIVCg!0HAgjKL7v# diff --git a/graphics/AltHUD/SparksterDisplay.png b/graphics/HUD/SparksterDisplay.png similarity index 100% rename from graphics/AltHUD/SparksterDisplay.png rename to graphics/HUD/SparksterDisplay.png diff --git a/graphics/AltHUD/SparksterKinylumActive.png b/graphics/HUD/SparksterKinylumActive.png similarity index 100% rename from graphics/AltHUD/SparksterKinylumActive.png rename to graphics/HUD/SparksterKinylumActive.png diff --git a/graphics/AltHUD/SparksterKinylumInert.png b/graphics/HUD/SparksterKinylumInert.png similarity index 100% rename from graphics/AltHUD/SparksterKinylumInert.png rename to graphics/HUD/SparksterKinylumInert.png diff --git a/graphics/AltHUD/SparksterNokronActive.png b/graphics/HUD/SparksterNokronActive.png similarity index 100% rename from graphics/AltHUD/SparksterNokronActive.png rename to graphics/HUD/SparksterNokronActive.png diff --git a/graphics/AltHUD/SparksterNokronInert.png b/graphics/HUD/SparksterNokronInert.png similarity index 100% rename from graphics/AltHUD/SparksterNokronInert.png rename to graphics/HUD/SparksterNokronInert.png diff --git a/graphics/HUD/SpreadgunDisplay.png b/graphics/HUD/SpreadgunDisplay.png index 4e3c6e8bbbab35055ccc6c659aa5811c330ce6dd..387d9d898b8486b96e366f706c021ed72ed27355 100644 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8VBp|jV_;y=w_xpHU|ju^E(?^3_L`PwInS5{QvNX sG0xR~UroY~k58GIm8bllFEN>MU$yjdyB61T3=9kmp00i_>zopr07?EZumAu6 literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yV9;k^U~phzW?*2bSZyr8z`&pw;1lA?z`!6Np`c*k z;E+(y00ta90&tOp{{0nAyon4946G$Ve!(F5GXXn0v=|r|JUm?-LoEE06B-!T&GblM zV`eJYrNH>TA+R&BQ&BsShk4eH5|2Kw9tuLx9J8)yFbM&IUGF(QdCOSki eFlTFo2{17H4p7ZY7HH%L8Sd%o=d#Wzp$PySm@t3< diff --git a/graphics/HUD/StatusBox.png b/graphics/HUD/StatusBox.png index 1692dd4500f3bf7aa5cd051fc2c3befe48962f46..c418c5b346db569391423ed231ab4f984e3178ae 100644 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0y~yV5nnYU=U|vW?*2j|MpCifq_9Wz$e6&fq_B6z`-G* zKB0d<0~m1d2na|hzy&v|Toz?uU|=l?@(TvZp9$F6p~b+!5a8+J7-G?z9AP=Ryx#FMV`u%(7luTe;8r=9R(pi(i;jf#Q2!kslThS$ZCX)%GbsPa! ntLi&mtE>N2cF;TIJus!DJ?p_VoP>>~_u6{1-oD!MEak-aXR_N)-I+EmyRBt z*_fEA!K$Ft*qC{xBQf(x4K2i&Zzxo0?LolBBsR-mO={H0cV*ENMr# l%8Pw#mfJQq>h?NKU|?{FnswfG$9@-(EuOA^F6*2UngF?YInn?C diff --git a/graphics/HUD/WallbusterBlue.png b/graphics/HUD/WallbusterBlue.png deleted file mode 100644 index 725ef339586de729d85e68e2f5f29d2856c897df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeAS@N?(olHy`uVBq!ia0y~yU|7Y>2 zs@yW=xy$J&1_lPkk|4ie28U-i(ij*RWISCQLpWrU6T%V_3^cDFfh0rRA^&hV2}v#32|j$V3?>c z8X~E`gqMMVfvF_OFPP!X6G!L83=9lfo-U3d8t0QWyqTLq*xFni6$AnoSjs+PVmZgf nBTy~s_EvV;HzUo)1||kSAKwnHA~q`q1_lOCS3j3^P66I5;HKC-m>vEi0PLz`(#<666=mz;GsGi5Ez aragznG8WiuQDv9Y#VVr6 zEpH&K>Z9k(z`(#*666=m;PC858Uq7^jHioZ2#0KP0%t-(fl+D#N0?wjLa9hXfE*k@zd|E=b9a`}& q@NUUv*(O_ip`&36#??;7nhcjj&szo0Y5}>5!IRz9&t;ucLK6Uf@;y%g literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yU}$AvV31~EW?*1gFeA_g#0l^Tab;j&a7d_U00Ryl z0RagG1p^0%g!+X3{b$+2lXC;Kvmb5KmGB>H?aAalUc@f!_643Tid{X196_Sh7czBI3 kY!*4mFyr}*UQJduhWI+~Six<ug1_lPkk|4ie28U-i(ij*RWISCQLpWrU6O0lP0yxtW3`&I(62e3h5(H8h Y7zBPWmW9X}@q||+%G$%l zHIs)&VCk)w3=9m6B|(0{3=Yq3q%kls$auOqhH%IxCm1Cp1aPJ$7?cVnB!r11BnYH1 YFbMo$EDMn{;s=@J>FVdQ&MBb@0M3;f!T0 diff --git a/graphics/HUD/WeaponBox.png b/graphics/HUD/WeaponBox.png index d41af5bd4caf40bc1edf621c7131206cb8c4e0da..71898b066d6fdbc4adad3fc3d80b225b9c9e45bf 100644 GIT binary patch delta 104 zcmbQsIE7KMGr-TCmrII^fq{Y7)59f*fq@~Afq{XWg_(hY;p>)~DH9bnz`bqO?!x`hfYH9B(i=uC+<2M#Q8kqKa6i1-{B+pjtCF#`hwgQu&X J%Q~loCIAtt9O(c6 delta 113 zcmbQjIG0heGr-TCmrII^fq{Y7)59f*fq}u6fq_Amg_(hY;q`;cHxm_2-Hkk5978nD zCu?{!H-*HgFgq_&5a@WIBMGyPXnId%R0 zdHZVqxA>o*uPPU7bz$9vC%>PuMfmL*E{vz>Fkj;+xX^Od$c*Zx1KH8ks+`6 zl9Aq}OUt{@?zJ%fUc&Wu58I}$hFpH8vJ0Ht&)JR%7p406U#TshrgeY%PR|v;4^POP zDRuq61Ml>uCK9FI$Gn=CTv{{5r_aCVk+{_!p4F1sTg}dtz3kIDZsnV}T>RVra~iI3 z=XQvt*951mynf`YgrZCG{3)+e*j8^ZiQV-7frZ|^ojY8XUw){xS?r#<#nP?%dyaSU zZvEhQTRo!P*6YSm6S3C$mfx*Ei3=V7qjToqyvL>sBBoyv9)(0Po=5D0Y0L+Mq%>Cl+LDnjz1!L6>hXq$ z7I|+PrYP%dNQC%ar=$zk?6qD~LLF#eXCRv26LA8I&t@mOOKTFTQ+@?e!~{KV7JQV*mnIpuS=MBsm!^%HbZj5+%LYzS=HnZ l&0fize%-LwP~o9HL*j`A*Zpcb7#J8BJYD@<);T3K0RYtCi6a02 diff --git a/graphics/AltHUD/YnykronBarBeam.png b/graphics/HUD/YnykronBarBeam.png similarity index 100% rename from graphics/AltHUD/YnykronBarBeam.png rename to graphics/HUD/YnykronBarBeam.png diff --git a/graphics/AltHUD/YnykronBarVortex.png b/graphics/HUD/YnykronBarVortex.png similarity index 100% rename from graphics/AltHUD/YnykronBarVortex.png rename to graphics/HUD/YnykronBarVortex.png diff --git a/graphics/HUD/YnykronDisplay.png b/graphics/HUD/YnykronDisplay.png index 754791903accc0459f5f898ef7cc5ce34d16a5c9..20decd7e8d68632c801aeb58051efd4d4b92f213 100644 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0y~yVBlt8V9?}XW?*2rBBrd#z`!68;1lA?00SI60s;~W z3I+}i3H1s6`z7_4@G>wkFqH)P1v8v^;^@4Xfq_BC)5S4F;&O6AdNWfP8=IM%Mnd8u w&e>C0xn|6i5cpmdKI;Vst0Fp5zkpKVy literal 510 zcmeAS@N?(olHy`uVBq!ia0y~yU{GRUV9@1YW?*3WbKX;xfq~(CfKP}k0}L=SGP1I; zva@oqvvIO>a&hnoaB=bSaPshQ@$m5o@(Bp>bMp#t3JORl2=ej?@(K&_^9c*^iwaAL ziAak{$VlkH%ScHp7&s`&$|{SgC@UzcDk&Y1zDVZAS z8Jij!o2gh?=<8Xk+gh2JSee+^S(w>bSUV)tJ6YR0+d4SgI=LBmxj8s_8u|LTdHI=! z1er$!xqAnD`v&_4#RT}p1O+Gb?@x}1&dScKs;jGRsBg(D_ zxhEU6Ki~&pZDLrQvS%MaPq$=;+Xzbvx9dRgP*=9*<8>z8*iALzKLy+-V8)Qd%nQ3xv4IGF^BM^9Hjmvv4FO#s3~ Bp&|eP diff --git a/graphics/AltHUD/YnykronIconBeam.png b/graphics/HUD/YnykronIconBeam.png similarity index 100% rename from graphics/AltHUD/YnykronIconBeam.png rename to graphics/HUD/YnykronIconBeam.png diff --git a/graphics/AltHUD/YnykronIconVortex.png b/graphics/HUD/YnykronIconVortex.png similarity index 100% rename from graphics/AltHUD/YnykronIconVortex.png rename to graphics/HUD/YnykronIconVortex.png diff --git a/graphics/HUD/YnykronSideA.png b/graphics/HUD/YnykronSideA.png deleted file mode 100644 index e669cbb2ea559775be0a5b1e74358baee8c82d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp@3=9n1EX)iH3}JJmKmsZOJ|V6Q3=BN1YIY1IJ`CMa z3=1I-)7 gp1pF_s!z;6Tv?U28Mu7!A2`$U= zX6&n5eztGZr3HJgZ#;hY(B&sr9=wj got; - int flashtime; -} - -Enum EMiniHUDFontColor -{ - MCR_DEMOHUD, - MCR_IBUKIHUD, - MCR_SAYAHUD, - MCR_KIRINHUD, - MCR_MARISAHUD, - MCR_VOIDHUD, - MCR_WHITE, - MCR_RED, - MCR_GREEN, - MCR_BLUE, - MCR_YELLOW, - MCR_CYAN, - MCR_PURPLE, - MCR_BRASS, - MCR_SILVER, - MCR_GOLD, - MCR_MANA, - MCR_CRIMSON, - MCR_ELDRITCH, - MCR_KINYLUM, - MCR_NOKRON, - MCR_NOKOROKINYLUM, - MCR_DEMOBLUE, - MCR_DEMOPINK, - MCR_FLASH, - MCR_REDFLASH, - NUM_MINIHUD_COLOR -}; - -extend Class SWWMStatusBar -{ - TextureID AltStatusTex, AltWeaponTex, AltScoreTex, AltHealthTex[9], - AltFuelTex[2], AltDashTex, AltGenericAmmoTex[3], AltAmmoTex[3]; - Font MiniHUDFont, MiniHUDFontOutline; - int mhudfontcol[NUM_MINIHUD_COLOR]; - - int PulsePhase; // for health pulsing - - // for flashing some elements in the hud - Array keyflash; - int oldkills, olditems, oldsecrets; - int oldtkills, oldtitems, oldtsecrets; - int killflash, itemflash, secretflash; - int tkillflash, titemflash, tsecretflash; - - // top stuff colors - int tclabel, tcvalue, tcextra, tccompl, tcsucks; - String tclabel_s, tcextra_s; - - int AmmoFlash[26]; // flash when new ammo is received - int AmmoOldAmounts[26]; // to detect when to flash - int AmmoMaxFlash[26]; // flash when ammo max amount changes - int AmmoOldMaxAmounts[26]; // to detect when to flash - Class AmmoSlots[26]; // ammo type on each slot - String AmmoNames[26]; // ammo 4-letter names - int HealthFlash; // flash when healing - int LastHealth; // to detect when to flash - int LagHealth[10]; // for delayed decay bar - - SmoothDynamicValueInterpolator AltHealthInter, AltFuelInter, AltDashInter; - SmoothLinearValueInterpolator LagHealthInter; - - void Alt_FlushInterpolators() - { - int hp = CPlayer.Health; - AltHealthInter.Reset(hp); - for ( int i=9; i>0; i-- ) - LagHealth[i] = hp; - LagHealthInter.Reset(hp); - let d = Demolitionist(CPlayer.mo); - if ( d ) - { - AltFuelInter.Reset(d.dashfuel/2); - AltDashInter.Reset((40-d.dashcooldown)*3); - } - else - { - AltFuelInter.Reset(0); - AltDashInter.Reset(0); - } - } - - void Alt_UpdateInterpolators() - { - int hp = CPlayer.Health; - AltHealthInter.Update(hp); - // flash 'em - if ( hp > LastHealth ) HealthFlash = gametic+25; - // lag - if ( hp > LastHealth ) - { - for ( int i=9; i>0; i-- ) - LagHealth[i] = hp; - } - LagHealth[0] = LastHealth = hp; - LagHealthInter.Update(LagHealth[9]); - for ( int i=9; i>0; i-- ) - LagHealth[i] = LagHealth[i-1]; - // ammo updates - for ( int i=0; i<26; i++ ) - { - let a = SWWMAmmo(CPlayer.mo.FindInventory(AmmoSlots[i])); - int amt = 0; - int maxamt = 0; - if ( a ) - { - amt = a.Amount; - maxamt = a.MaxAmount; - if ( a.MagAmmoType ) - { - let m = MagAmmo(CPlayer.mo.FindInventory(a.MagAmmoType)); - if ( m ) - { - amt *= m.ClipSize; - amt += m.Amount; - maxamt *= m.ClipSize; - } - } - } - else - { - let a = GetDefaultByType(AmmoSlots[i]); - maxamt = a.MaxAmount; - if ( a.MagAmmoType ) - { - let m = GetDefaultByType(a.MagAmmoType); - maxamt *= m.ClipSize; - } - } - if ( (amt > AmmoOldAmounts[i]) && (AmmoOldAmounts[i] != int.min) ) - AmmoFlash[i] = gametic+25; - AmmoOldAmounts[i] = amt; - if ( (maxamt > AmmoOldMaxAmounts[i]) && (AmmoOldMaxAmounts[i] != int.min) ) - AmmoMaxFlash[i] = gametic+25; - AmmoOldMaxAmounts[i] = maxamt; - } - } - - void Alt_Tick() - { - let d = Demolitionist(CPlayer.mo); - if ( d ) - { - AltFuelInter.Update(d.dashfuel/2); - AltDashInter.Update((40-d.dashcooldown)*3); - } - else - { - AltFuelInter.Update(0); - AltDashInter.Update(0); - } - // stats flashing - if ( level.killed_monsters > oldkills ) - { - oldkills = level.killed_monsters; - killflash = gametic+25; - } - if ( level.found_items > olditems ) - { - olditems = level.found_items; - itemflash = gametic+25; - } - if ( level.found_secrets > oldsecrets ) - { - oldsecrets = level.found_secrets; - secretflash = gametic+25; - } - if ( level.total_monsters > oldtkills ) - { - oldtkills = level.total_monsters; - tkillflash = gametic+25; - } - if ( level.total_items > oldtitems ) - { - oldtitems = level.total_items; - titemflash = gametic+25; - } - if ( level.total_secrets > oldtsecrets ) - { - oldtsecrets = level.total_secrets; - tsecretflash = gametic+25; - } - // purge expired key flashes - for ( int i=0; i= gametic ) continue; - keyflash.Delete(i--); - } - // low health pulsing - if ( (CPlayer.health <= 0) || (CPlayer.health > 25) ) - { - PulsePhase = 0; - return; - } - PulsePhase--; - if ( (PulsePhase < 0) || (PulsePhase > CPlayer.health*2+25) ) - PulsePhase = CPlayer.health*2+25; - } - - // hello??? why is this function clearscope??? - override void ReceivedWeapon( Weapon weapn ) - { - Super.ReceivedWeapon(weapn); - int dummy, slot; - [dummy, slot] = players[consoleplayer].weapons.LocateWeapon(weapn.GetClass()); - EventHandler.SendNetworkEvent("swwmweaponreceive",slot,consoleplayer); - } - - void Alt_Init() - { - AltStatusTex = TexMan.CheckForTexture("graphics/AltHUD/StatusBox.png",TexMan.Type_Any); - AltWeaponTex = TexMan.CheckForTexture("graphics/AltHUD/WeaponBox.png",TexMan.Type_Any); - AltScoreTex = TexMan.CheckForTexture("graphics/AltHUD/ScoreBox.png",TexMan.Type_Any); - AltHealthTex[0] = TexMan.CheckForTexture("graphics/AltHUD/HealthBar0.png",TexMan.Type_Any); - AltHealthTex[1] = TexMan.CheckForTexture("graphics/AltHUD/HealthBar1.png",TexMan.Type_Any); - AltHealthTex[2] = TexMan.CheckForTexture("graphics/AltHUD/HealthBar2.png",TexMan.Type_Any); - AltHealthTex[3] = TexMan.CheckForTexture("graphics/AltHUD/HealthBar3.png",TexMan.Type_Any); - AltHealthTex[4] = TexMan.CheckForTexture("graphics/AltHUD/HealthBarS.png",TexMan.Type_Any); - AltHealthTex[5] = TexMan.CheckForTexture("graphics/AltHUD/HealthBarD.png",TexMan.Type_Any); - AltHealthTex[6] = TexMan.CheckForTexture("graphics/AltHUD/HealthBarP.png",TexMan.Type_Any); - AltHealthTex[7] = TexMan.CheckForTexture("graphics/AltHUD/HealthBarF.png",TexMan.Type_Any); - AltHealthTex[8] = TexMan.CheckForTexture("graphics/AltHUD/HealthBarL.png",TexMan.Type_Any); - AltFuelTex[0] = TexMan.CheckForTexture("graphics/AltHUD/FuelBar.png",TexMan.Type_Any); - AltFuelTex[1] = TexMan.CheckForTexture("graphics/AltHUD/FuelBarS.png",TexMan.Type_Any); - AltDashTex = TexMan.CheckForTexture("graphics/AltHUD/DashBar.png",TexMan.Type_Any); - AltGenericAmmoTex[0] = TexMan.CheckForTexture("graphics/AltHUD/GenericAmmoBoxL.png",TexMan.Type_Any); - AltGenericAmmoTex[1] = TexMan.CheckForTexture("graphics/AltHUD/GenericAmmoBoxM.png",TexMan.Type_Any); - AltGenericAmmoTex[2] = TexMan.CheckForTexture("graphics/AltHUD/GenericAmmoBoxR.png",TexMan.Type_Any); - AltAmmoTex[0] = TexMan.CheckForTexture("graphics/AltHUD/AmmoBoxT.png",TexMan.Type_Any); - AltAmmoTex[1] = TexMan.CheckForTexture("graphics/AltHUD/AmmoBoxM.png",TexMan.Type_Any); - AltAmmoTex[2] = TexMan.CheckForTexture("graphics/AltHUD/AmmoBoxB.png",TexMan.Type_Any); - MiniHudFont = Font.GetFont("MiniHUDShadow"); - MiniHudFontOutline = Font.GetFont("MiniHUDOutline"); - mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor("MiniDemoHUD"); - mhudfontcol[MCR_IBUKIHUD] = Font.FindFontColor("MiniIbukiHUD"); - mhudfontcol[MCR_SAYAHUD] = Font.FindFontColor("MiniSayaHUD"); - mhudfontcol[MCR_KIRINHUD] = Font.FindFontColor("MiniKirinHUD"); - mhudfontcol[MCR_MARISAHUD] = Font.FindFontColor("MiniMarisaHUD"); - mhudfontcol[MCR_VOIDHUD] = Font.FindFontColor("MiniVoidHUD"); - mhudfontcol[MCR_WHITE] = Font.FindFontColor("MiniWhite"); - mhudfontcol[MCR_RED] = Font.FindFontColor("MiniRed"); - mhudfontcol[MCR_GREEN] = Font.FindFontColor("MiniGreen"); - mhudfontcol[MCR_BLUE] = Font.FindFontColor("MiniBlue"); - mhudfontcol[MCR_YELLOW] = Font.FindFontColor("MiniYellow"); - mhudfontcol[MCR_CYAN] = Font.FindFontColor("MiniCyan"); - mhudfontcol[MCR_PURPLE] = Font.FindFontColor("MiniPurple"); - mhudfontcol[MCR_BRASS] = Font.FindFontColor("MiniBrass"); - mhudfontcol[MCR_SILVER] = Font.FindFontColor("MiniSilver"); - mhudfontcol[MCR_GOLD] = Font.FindFontColor("MiniGold"); - mhudfontcol[MCR_MANA] = Font.FindFontColor("MiniMana"); - mhudfontcol[MCR_CRIMSON] = Font.FindFontColor("MiniCrimson"); - mhudfontcol[MCR_ELDRITCH] = Font.FindFontColor("MiniEldritch"); - mhudfontcol[MCR_KINYLUM] = Font.FindFontColor("MiniKinylum"); - mhudfontcol[MCR_NOKRON] = Font.FindFontColor("MiniNokron"); - mhudfontcol[MCR_NOKOROKINYLUM] = Font.FindFontColor("MiniNokorokinylum"); - mhudfontcol[MCR_DEMOBLUE] = Font.FindFontColor("MiniDemoBlue"); - mhudfontcol[MCR_DEMOPINK] = Font.FindFontColor("MiniDemoPink"); - mhudfontcol[MCR_FLASH] = Font.FindFontColor("MiniFlash"); - mhudfontcol[MCR_REDFLASH] = Font.FindFontColor("MiniRedFlash"); - tclabel = mhudfontcol[MCR_BRASS]; - tcvalue = mhudfontcol[MCR_WHITE]; - tcextra = mhudfontcol[MCR_IBUKIHUD]; - tccompl = mhudfontcol[MCR_YELLOW]; - tcsucks = mhudfontcol[MCR_RED]; - tclabel_s = "[MiniBrass]"; - tcextra_s = "[MiniIbukiHUD]"; - LastHealth = CPlayer?CPlayer.health:100; - let d = Demolitionist(CPlayer?CPlayer.mo:null); - AltHealthInter = SmoothDynamicValueInterpolator.Create(LastHealth,.5,1,100); - AltFuelInter = SmoothDynamicValueInterpolator.Create(d?(d.dashfuel/2):120,.5,1,120); - AltDashInter = SmoothDynamicValueInterpolator.Create(d?((40-d.dashcooldown)*3):40,.5,1,40); - LagHealthInter = SmoothLinearValueInterpolator.Create(LastHealth,2); - for ( int i=0; i<10; i++ ) LagHealth[i] = LastHealth; - AmmoSlots[0] = 'RedShell'; - AmmoSlots[1] = 'GreenShell'; - AmmoSlots[2] = 'BlueShell'; - AmmoSlots[3] = 'PurpleShell'; - AmmoSlots[4] = 'BlackShell'; - AmmoSlots[5] = 'GoldShell'; - AmmoSlots[6] = 'SMW05Ammo'; - AmmoSlots[7] = 'EvisceratorShell'; - AmmoSlots[8] = 'SheenAmmo'; - AmmoSlots[9] = 'HellblazerMissiles'; - AmmoSlots[10] = 'HellblazerCrackshots'; - AmmoSlots[11] = 'HellblazerRavagers'; - AmmoSlots[12] = 'HellblazerWarheads'; - AmmoSlots[13] = 'QuadravolAmmo'; - AmmoSlots[14] = 'SparkUnit'; - AmmoSlots[15] = 'SparksterBAmmo'; - AmmoSlots[16] = 'SparksterRAmmo'; - AmmoSlots[17] = 'SilverBulletAmmo'; - AmmoSlots[18] = 'SilverBulletAmmo2'; - AmmoSlots[19] = 'RayAmmo'; - AmmoSlots[20] = 'CandyGunAmmo'; - AmmoSlots[21] = 'CandyGunSpares'; - AmmoSlots[22] = 'MisterAmmo'; - AmmoSlots[23] = 'MisterGAmmo'; - AmmoSlots[24] = 'YnykronAmmo'; - AmmoSlots[25] = 'UltimateAmmo'; - AmmoNames[0] = "SHOT"; - AmmoNames[1] = "SLUG"; - AmmoNames[2] = "SALT"; - AmmoNames[3] = "BALL"; - AmmoNames[4] = "FLCH"; - AmmoNames[5] = "GOLD"; - AmmoNames[6] = "SCRW"; - AmmoNames[7] = "FLAK"; - AmmoNames[8] = "MACH"; - AmmoNames[9] = "RCKT"; - AmmoNames[10] = "CLUS"; - AmmoNames[11] = "RAVG"; - AmmoNames[12] = "WARH"; - AmmoNames[13] = "QUAD"; - AmmoNames[14] = "BSPK"; - AmmoNames[15] = "KINY"; - AmmoNames[16] = "NOKR"; - AmmoNames[17] = "RIFL"; - AmmoNames[18] = "CHOD"; - AmmoNames[19] = "BOLT"; - AmmoNames[20] = "CAND"; - AmmoNames[21] = "CGUN"; - AmmoNames[22] = "MSTR"; - AmmoNames[23] = "MGRN"; - AmmoNames[24] = "CRYS"; - AmmoNames[25] = "ULTI"; - for ( int i=0; i<26; i++ ) - { - AmmoFlash[i] = 0; - AmmoOldAmounts[i] = int.min; - AmmoMaxFlash[i] = 0; - AmmoOldMaxAmounts[i] = int.min; - } - } - - void Alt_DrawTopStuff() - { - int xx, yy = margin; - if ( !automapactive && swwm_mm_enable ) - yy += ((HALFMAPSIZE+2)*2)+5; - // draw stats and timer when automap is open - int fstats = swwm_forcestats; - if ( automapactive || (fstats > 0) ) - { - xx = int(ss.x-(margin+2)); - String str; - if ( automapactive || (fstats > 1) ) - { - int label = am_showmaplabel; - String ln = level.levelname; - int iof = ln.IndexOf(" - by: "); - if ( iof != -1 ) ln.Truncate(iof); - if ( !label || ((level.clusterflags&level.CLUSTER_HUB) && (label == 2)) ) str = ln; - else str = String.Format("%s - %s",level.mapname.MakeUpper(),ln); - Screen.DrawText(mBigFont,tclabel,xx-mBigFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mBigFont.GetHeight()+4; - } - if ( (level.total_monsters > 0) && am_showmonsters && !deathmatch ) - { - str = String.Format("\c"..tclabel_s.."K \c-%d\c"..tcextra_s.."/\c-%d",level.killed_monsters,level.total_monsters); - Screen.DrawText(MiniHUDFontOutline,(level.killed_monsters>=level.total_monsters)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( killflash && (gametic < killflash) ) - { - double alph = max((killflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d/%d",level.killed_monsters,level.total_monsters); - int slashpos = str.IndexOf("/"); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - if ( tkillflash && (gametic < tkillflash) ) - { - double alph = max((tkillflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d",level.total_monsters); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - yy += MiniHUDFontOutline.GetHeight()+2; - } - if ( (level.total_items > 0) && am_showitems && !deathmatch ) - { - str = String.Format("\c"..tclabel_s.."I \c-%d\c"..tcextra_s.."/\c-%d",level.found_items,level.total_items); - Screen.DrawText(MiniHUDFontOutline,(level.found_items>=level.total_items)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( itemflash && (gametic < itemflash) ) - { - double alph = max((itemflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d/%d",level.found_items,level.total_items); - int slashpos = str.IndexOf("/"); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - if ( titemflash && (gametic < titemflash) ) - { - double alph = max((titemflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d",level.total_items); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - yy += MiniHUDFontOutline.GetHeight()+2; - } - if ( (level.total_secrets > 0) && am_showsecrets && !deathmatch ) - { - str = String.Format("\c"..tclabel_s.."S \c-%d\c"..tcextra_s.."/\c-%d",level.found_secrets,level.total_secrets); - Screen.DrawText(MiniHUDFontOutline,(level.found_secrets>=level.total_secrets)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( secretflash && (gametic < secretflash) ) - { - double alph = max((secretflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d/%d",level.found_secrets,level.total_secrets); - int slashpos = str.IndexOf("/"); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - if ( tsecretflash && (gametic < tsecretflash) ) - { - double alph = max((tsecretflash-(gametic+FracTic))/25.,0.)**1.5; - str = String.Format("%d",level.total_secrets); - Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - yy += MiniHUDFontOutline.GetHeight()+2; - } - int sec; - if ( am_showtime ) - { - sec = Thinker.Tics2Seconds(level.maptime); - str = String.Format("\c"..tclabel_s.."T \c-%02d\c"..tcextra_s..":\c-%02d\c"..tcextra_s..":\c-%02d",sec/3600,(sec%3600)/60,sec%60); - Screen.DrawText(MiniHUDFontOutline,((level.sucktime>0)&&(sec>=(level.sucktime*3600)))?tcsucks:((level.partime>0)&&(sec<=level.partime))?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += MiniHUDFontOutline.GetHeight()+2; - } - // don't show total time if it's equal to map time - if ( am_showtotaltime && (level.totaltime != level.maptime) ) - { - sec = Thinker.Tics2Seconds(level.totaltime); - str = String.Format("\c"..tclabel_s.."TT \c-%02d\c"..tcextra_s..":\c-%02d\c"..tcextra_s..":\c-%02d",sec/3600,(sec%3600)/60,sec%60); - Screen.DrawText(MiniHUDFontOutline,tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += MiniHUDFontOutline.GetHeight()+2; - } - yy += 3; - } - // draw key icons - Vector2 keypos = (ss.x-(margin+2),yy); - int colc = 0; - double colh = 0; - int n = Key.GetKeyTypeCount(); - Array klist; - for ( int i=0; i= keyflash[j].flashtime) ) continue; - double alph = max((keyflash[j].flashtime-(gametic+FracTic))/25.,0.)**1.5; - Screen.DrawTexture(icon,false,keypos.x-siz.x,keypos.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_TopLeft,true,DTA_ColorOverlay,0xFFFFC040,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - break; - } - keypos.x -= siz.x+2; - colh = max(colh,siz.y); - if ( ++colc == maxcolc ) - { - keypos.x = ss.x-(margin+2); - keypos.y += colh+2; - colh = colc = 0; - } - } - } - - void Alt_DrawWeapons() - { - Screen.DrawTexture(AltWeaponTex,false,ss.x-(margin+80),ss.y-(margin+10),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - double xx = ss.x-(margin+78), yy = ss.y-(margin+8); - for ( int i=1; i<=10; i++,xx+=8 ) - { - int ncolor = mhudfontcol[MCR_WHITE]; - if ( !CPlayer.HasWeaponsInSlot(i%10) ) - { - Screen.DrawText(MiniHUDFont,ncolor,xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(128,0,0,0)); - continue; - } - bool selected = false; - bool dummy; - int slot; - SWWMGesture hasgesture = null; - SWWMItemGesture hasitemgesture = null; - if ( CPlayer.PendingWeapon is 'SWWMGesture' ) hasgesture = SWWMGesture(CPlayer.PendingWeapon); - else if ( CPlayer.ReadyWeapon is 'SWWMGesture' ) hasgesture = SWWMGesture(CPlayer.ReadyWeapon); - if ( CPlayer.PendingWeapon is 'SWWMItemGesture' ) hasitemgesture = SWWMItemGesture(CPlayer.PendingWeapon); - else if ( CPlayer.ReadyWeapon is 'SWWMItemGesture' ) hasitemgesture = SWWMItemGesture(CPlayer.ReadyWeapon); - if ( hasgesture && hasgesture.formerweapon ) - { - [dummy, slot] = CPlayer.weapons.LocateWeapon(hasgesture.formerweapon.GetClass()); - if ( slot == (i%10) ) selected = true; - } - else if ( hasitemgesture && hasitemgesture.gest.formerweapon ) - { - [dummy, slot] = CPlayer.weapons.LocateWeapon(hasitemgesture.gest.formerweapon.GetClass()); - if ( slot == (i%10) ) selected = true; - } - else if ( CPlayer.PendingWeapon && (CPlayer.PendingWeapon != WP_NOCHANGE) ) - { - [dummy, slot] = CPlayer.weapons.LocateWeapon(CPlayer.PendingWeapon.GetClass()); - if ( slot == (i%10) ) selected = true; - } - else if ( (!CPlayer.PendingWeapon || (CPlayer.PendingWeapon == WP_NOCHANGE)) && CPlayer.ReadyWeapon ) - { - [dummy, slot] = CPlayer.weapons.LocateWeapon(CPlayer.ReadyWeapon.GetClass()); - if ( slot == (i%10) ) selected = true; - } - if ( selected ) ncolor = mhudfontcol[MCR_BRASS]; - else - { - bool hasammo = (i==1); - for ( Inventory inv=CPlayer.mo.Inv; inv; inv=inv.Inv ) - { - if ( inv is 'Weapon' ) [dummy, slot] = CPlayer.weapons.LocateWeapon(Weapon(inv).GetClass()); - else continue; - if ( slot != (i%10) ) continue; - // CheckAmmo can't be called from ui, so we have to improvise - // for SWWM weapons I made a function for this at least - if ( (inv is 'SWWMWeapon') && SWWMWeapon(inv).ReportHUDAmmo() ) - hasammo = true; - else if ( !(inv is 'SWWMWeapon') && ((!Weapon(inv).Ammo1 || (Weapon(inv).Ammo1.Amount > 0) || Weapon(inv).bAMMO_OPTIONAL) || (Weapon(inv).Ammo2 && ((Weapon(inv).Ammo2.Amount > 0) || Weapon(inv).bALT_AMMO_OPTIONAL))) ) - hasammo = true; - } - if ( !hasammo ) ncolor = mhudfontcol[MCR_RED]; - } - Screen.DrawText(MiniHUDFont,ncolor,xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int f = hnd.WeaponFlash[i%10]; - if ( f && (gametic < f) ) - { - double alph = max((f-(gametic+FracTic))/25.,0.)**1.5; - Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_FLASH],xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph,DTA_LegacyRenderStyle,STYLE_Add); - } - } - xx = ss.x-(margin+54); - yy = ss.y-(margin+14); - bool bDrewAmmo = false; - bool checkowned = swwm_althud_trimammo; - Array OwnedWeapons; - if ( checkowned ) for ( Inventory i=CPlayer.mo.inv; i; i=i.inv ) - { - if ( !(i is 'SWWMWeapon') ) continue; - OwnedWeapons.Push(SWWMWeapon(i)); - } - String str; - for ( int i=25; i>=0; i-- ) - { - let a = AmmoSlots[i]; - // check if owned - if ( checkowned ) - { - bool owned = false; - for ( int j=0; j0)?scol:mhudfontcol[MCR_RED]; - int dcnt1 = 2-int(Log10(clamp(amt,1,999))); - int dcnt2 = 2-int(Log10(clamp(amax,1,999))); - for ( int j=0; j 500 ) hcolor = MCR_YELLOW; - else if ( round(ht) > 200 ) hcolor = MCR_PURPLE; - else if ( round(ht) > 100 ) hcolor = MCR_CYAN; - if ( isInvulnerable() || CPlayer.mo.FindInventory("InvinciballPower") ) - { - Screen.DrawTexture(AltHealthTex[0],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltHealthTex[4],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - hcolor = MCR_WHITE; - } - else - { - Screen.DrawTexture(AltHealthTex[0],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltHealthTex[0],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - if ( ht > 100 ) - { - hw = min(ht-100,100); - Screen.DrawTexture(AltHealthTex[1],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - } - if ( ht > 200 ) - { - hw = min(ht-200,300)/3.; - Screen.DrawTexture(AltHealthTex[2],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - } - if ( ht > 500 ) - { - hw = min(ht-500,500)/5.; - Screen.DrawTexture(AltHealthTex[3],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - } - } - if ( CPlayer.mo.FindInventory("DivineSpriteEffect") ) - { - double falph = clamp((ht-1000)/6000.,0.,1.); - Screen.DrawTexture(AltHealthTex[5],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph,DTA_LegacyRenderStyle,STYLE_Add); - String tst; - double alph = .1; - int trl = 9; - for ( double alph = .1; alph <= .5; alph += .1 ) - { - tst = "AAA"; - SWWMUtility.ObscureText(tst,(gametic-trl)/3,true); - trl--; - Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_WHITE],margin+107,ss.y-(margin+20),tst,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph*alph,DTA_LegacyRenderStyle,STYLE_Add); - } - Screen.DrawText(MiniHUDFont,mhudfontcol[hcolor],margin+107,ss.y-(margin+20),String.Format("%3d",clamp(round(ht),0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,1.-falph); - } - else - { - Screen.DrawText(MiniHUDFont,mhudfontcol[hcolor],margin+107,ss.y-(margin+20),String.Format("%3d",clamp(round(ht),0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int f = HealthFlash; - if ( f && (gametic < f) ) - { - double alph = max((f-(gametic+FracTic))/25.,0.)**1.5; - Screen.DrawTexture(AltHealthTex[7],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,bhw,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_FLASH],margin+107,ss.y-(margin+20),str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); - } - if ( (CPlayer.health > 0) && (CPlayer.health <= 25) && (PulsePhase <= 15) ) - { - double alph = clamp(sin((PulsePhase-FracTic)*12.),0.,1.); - Screen.DrawTexture(AltHealthTex[6],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_Alpha,alph); - Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_REDFLASH],margin+107,ss.y-(margin+20),str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); - } - ht = clamp(LagHealthInter.GetValue(fractic),0,1000); - double hwl = min(ht,100); - if ( hwl > bhw ) - { - Screen.DrawTexture(AltHealthTex[8],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowLeftF,bhw,DTA_WindowRightF,hwl,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltHealthTex[8],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowLeftF,bhw,DTA_WindowRightF,hwl); - } - } - double ft = clamp(AltFuelInter.GetValue(fractic),0,120); - Screen.DrawTexture(AltFuelTex[swwm_superfuel],false,margin+3,ss.y-(margin+7),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,ft,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltFuelTex[swwm_superfuel],false,margin+2,ss.y-(margin+8),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,ft); - let d = Demolitionist(CPlayer.mo); - bool blink = (!d || (d.dashfuel > 20) || ((gametic%10) < 5)); - double dt = clamp(AltDashInter.GetValue(fractic),0,120); - Screen.DrawTexture(AltDashTex,false,margin+3,ss.y-(margin+4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,dt,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltDashTex,false,margin+2,ss.y-(margin+5),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,dt,DTA_ColorOverlay,Color(blink?0:96,0,0,0)); - } -} diff --git a/zscript/hud/swwm_hud.zsc b/zscript/hud/swwm_hud.zsc index 8cdb0c7bd..194955f1e 100644 --- a/zscript/hud/swwm_hud.zsc +++ b/zscript/hud/swwm_hud.zsc @@ -28,13 +28,51 @@ Class MsgLine } } +Class KeyGet +{ + Class got; + int flashtime; +} + +Enum EMiniHUDFontColor +{ + MCR_DEMOHUD, + MCR_IBUKIHUD, + MCR_SAYAHUD, + MCR_KIRINHUD, + MCR_MARISAHUD, + MCR_VOIDHUD, + MCR_WHITE, + MCR_RED, + MCR_GREEN, + MCR_BLUE, + MCR_YELLOW, + MCR_CYAN, + MCR_PURPLE, + MCR_BRASS, + MCR_SILVER, + MCR_GOLD, + MCR_MANA, + MCR_CRIMSON, + MCR_ELDRITCH, + MCR_KINYLUM, + MCR_NOKRON, + MCR_NOKOROKINYLUM, + MCR_DEMOBLUE, + MCR_DEMOPINK, + MCR_FLASH, + MCR_REDFLASH, + NUM_MINIHUD_COLOR +}; + Class SWWMStatusBar : BaseStatusBar { TextureID StatusTex, WeaponTex, ScoreTex, InventoryTex, ChatTex[6], - HealthTex[6], FuelTex[2], DashTex, EnemyBTex, EnemyHTex[6], - GenericAmmoTex[3], MiniBox, bgtex; + HealthTex[9], FuelTex[2], DashTex, EnemyBTex, EnemyHTex[6], + GenericAmmoTex[3], AmmoTex[3], MiniBox, bgtex; - Font mSmallFont, mBigFont, mTinyFont; + Font mSmallFont, mBigFont, mTinyFont, MiniHUDFont, MiniHUDFontOutline; + int mhudfontcol[NUM_MINIHUD_COLOR]; Array MainQueue, PickupQueue; @@ -68,7 +106,6 @@ Class SWWMStatusBar : BaseStatusBar bool camhidden; int pausetime; Vector2 pausepos, pausedir; - bool isalthud; // shared from renderunderlay, needed for proper interpolation of some things Vector3 viewpos, viewrot; @@ -76,7 +113,7 @@ Class SWWMStatusBar : BaseStatusBar // projection data cache SWWMProjectionData projdata; - DynamicValueInterpolator HealthInter, ScoreInter, FuelInter, DashInter; + SmoothDynamicValueInterpolator ScoreInter; Inventory lastsel; Weapon lastwep; @@ -112,15 +149,53 @@ Class SWWMStatusBar : BaseStatusBar Array teamactive; Array teamscore; + int PulsePhase; // for health pulsing + + // for flashing some elements in the hud + Array keyflash; + int oldkills, olditems, oldsecrets; + int oldtkills, oldtitems, oldtsecrets; + int killflash, itemflash, secretflash; + int tkillflash, titemflash, tsecretflash; + + // top stuff colors + int tclabel, tcvalue, tcextra, tccompl, tcsucks; + String tclabel_s, tcextra_s; + + int AmmoFlash[26]; // flash when new ammo is received + int AmmoOldAmounts[26]; // to detect when to flash + int AmmoMaxFlash[26]; // flash when ammo max amount changes + int AmmoOldMaxAmounts[26]; // to detect when to flash + Class AmmoSlots[26]; // ammo type on each slot + String AmmoNames[26]; // ammo 4-letter names + int HealthFlash; // flash when healing + int LastHealth; // to detect when to flash + int LagHealth[10]; // for delayed decay bar + + SmoothDynamicValueInterpolator HealthInter, FuelInter, DashInter; + SmoothLinearValueInterpolator LagHealthInter; + override void FlushNotify() { // flush interpolators (useful since this virtual gets called // when loading saves, too) - HealthInter.Reset(CPlayer.Health); ScoreInter.Reset(SWWMCredits.Get(CPlayer)); - FuelInter.Reset((CPlayer.mo is 'Demolitionist')?int(Demolitionist(CPlayer.mo).dashfuel):0); - DashInter.Reset((CPlayer.mo is 'Demolitionist')?int((40-Demolitionist(CPlayer.mo).dashcooldown)*3.):0); - Alt_FlushInterpolators(); + int hp = CPlayer.Health; + HealthInter.Reset(hp); + for ( int i=9; i>0; i-- ) + LagHealth[i] = hp; + LagHealthInter.Reset(hp); + let d = Demolitionist(CPlayer.mo); + if ( d ) + { + FuelInter.Reset(d.dashfuel/2); + DashInter.Reset((40-d.dashcooldown)*3); + } + else + { + FuelInter.Reset(0); + DashInter.Reset(0); + } if ( level.maptime <= 1 ) { // flush ALL messages @@ -952,9 +1027,59 @@ Class SWWMStatusBar : BaseStatusBar // separated so they can be auto-ticked by the demolitionist menu void TickInterpolators() { - HealthInter.Update(CPlayer.health); ScoreInter.Update(SWWMCredits.Get(CPlayer)); - Alt_UpdateInterpolators(); + int hp = CPlayer.Health; + HealthInter.Update(hp); + // flash 'em + if ( hp > LastHealth ) HealthFlash = gametic+25; + // lag + if ( hp > LastHealth ) + { + for ( int i=9; i>0; i-- ) + LagHealth[i] = hp; + } + LagHealth[0] = LastHealth = hp; + LagHealthInter.Update(LagHealth[9]); + for ( int i=9; i>0; i-- ) + LagHealth[i] = LagHealth[i-1]; + // ammo updates + for ( int i=0; i<26; i++ ) + { + let a = SWWMAmmo(CPlayer.mo.FindInventory(AmmoSlots[i])); + int amt = 0; + int maxamt = 0; + if ( a ) + { + amt = a.Amount; + maxamt = a.MaxAmount; + if ( a.MagAmmoType ) + { + let m = MagAmmo(CPlayer.mo.FindInventory(a.MagAmmoType)); + if ( m ) + { + amt *= m.ClipSize; + amt += m.Amount; + maxamt *= m.ClipSize; + } + } + } + else + { + let a = GetDefaultByType(AmmoSlots[i]); + maxamt = a.MaxAmount; + if ( a.MagAmmoType ) + { + let m = GetDefaultByType(a.MagAmmoType); + maxamt *= m.ClipSize; + } + } + if ( (amt > AmmoOldAmounts[i]) && (AmmoOldAmounts[i] != int.min) ) + AmmoFlash[i] = gametic+25; + AmmoOldAmounts[i] = amt; + if ( (maxamt > AmmoOldMaxAmounts[i]) && (AmmoOldMaxAmounts[i] != int.min) ) + AmmoMaxFlash[i] = gametic+25; + AmmoOldMaxAmounts[i] = maxamt; + } } override void Tick() @@ -984,14 +1109,60 @@ Class SWWMStatusBar : BaseStatusBar let d = Demolitionist(CPlayer.mo); if ( d ) { - FuelInter.Update(int(d.dashfuel)); - DashInter.Update(int((40-d.dashcooldown)*3.)); + FuelInter.Update(d.dashfuel/2); + DashInter.Update((40-d.dashcooldown)*3); } else { FuelInter.Update(0); DashInter.Update(0); } + // stats flashing + if ( level.killed_monsters > oldkills ) + { + oldkills = level.killed_monsters; + killflash = gametic+25; + } + if ( level.found_items > olditems ) + { + olditems = level.found_items; + itemflash = gametic+25; + } + if ( level.found_secrets > oldsecrets ) + { + oldsecrets = level.found_secrets; + secretflash = gametic+25; + } + if ( level.total_monsters > oldtkills ) + { + oldtkills = level.total_monsters; + tkillflash = gametic+25; + } + if ( level.total_items > oldtitems ) + { + oldtitems = level.total_items; + titemflash = gametic+25; + } + if ( level.total_secrets > oldtsecrets ) + { + oldtsecrets = level.total_secrets; + tsecretflash = gametic+25; + } + // purge expired key flashes + for ( int i=0; i= gametic ) continue; + keyflash.Delete(i--); + } + // low health pulsing + if ( (CPlayer.health <= 0) || (CPlayer.health > 25) ) + PulsePhase = 0; + else + { + PulsePhase--; + if ( (PulsePhase < 0) || (PulsePhase > CPlayer.health*2+25) ) + PulsePhase = CPlayer.health*2+25; + } // let weapons update their own interpolators if ( CPlayer.ReadyWeapon is 'SWWMWeapon' ) SWWMWeapon(CPlayer.ReadyWeapon).HudTick(); @@ -1158,7 +1329,6 @@ Class SWWMStatusBar : BaseStatusBar } } lastwep = CPlayer.PendingWeapon; - Alt_Tick(); // make sure vanilla nametags don't display DetachMessageID(0x5745504e); // WEPN DetachMessageID(0x53494e56); // SINV @@ -1216,6 +1386,15 @@ Class SWWMStatusBar : BaseStatusBar lead = CPlayer.fragcount-highscore; } + // hello??? why is this function clearscope??? + override void ReceivedWeapon( Weapon weapn ) + { + Super.ReceivedWeapon(weapn); + int dummy, slot; + [dummy, slot] = players[consoleplayer].weapons.LocateWeapon(weapn.GetClass()); + EventHandler.SendNetworkEvent("swwmweaponreceive",slot,consoleplayer); + } + override void Init() { StatusTex = TexMan.CheckForTexture("graphics/HUD/StatusBox.png",TexMan.Type_Any); @@ -1228,6 +1407,9 @@ Class SWWMStatusBar : BaseStatusBar HealthTex[3] = TexMan.CheckForTexture("graphics/HUD/HealthBar3.png",TexMan.Type_Any); HealthTex[4] = TexMan.CheckForTexture("graphics/HUD/HealthBarS.png",TexMan.Type_Any); HealthTex[5] = TexMan.CheckForTexture("graphics/HUD/HealthBarD.png",TexMan.Type_Any); + HealthTex[6] = TexMan.CheckForTexture("graphics/HUD/HealthBarP.png",TexMan.Type_Any); + HealthTex[7] = TexMan.CheckForTexture("graphics/HUD/HealthBarF.png",TexMan.Type_Any); + HealthTex[8] = TexMan.CheckForTexture("graphics/HUD/HealthBarL.png",TexMan.Type_Any); ScoreTex = TexMan.CheckForTexture("graphics/HUD/ScoreBox.png",TexMan.Type_Any); WeaponTex = TexMan.CheckForTexture("graphics/HUD/WeaponBox.png",TexMan.Type_Any); ChatTex[0] = TexMan.CheckForTexture("graphics/HUD/ChatBoxTop.png",TexMan.Type_Any); @@ -1247,18 +1429,118 @@ Class SWWMStatusBar : BaseStatusBar GenericAmmoTex[0] = TexMan.CheckForTexture("graphics/HUD/GenericAmmoBoxL.png",TexMan.Type_Any); GenericAmmoTex[1] = TexMan.CheckForTexture("graphics/HUD/GenericAmmoBoxM.png",TexMan.Type_Any); GenericAmmoTex[2] = TexMan.CheckForTexture("graphics/HUD/GenericAmmoBoxR.png",TexMan.Type_Any); + AmmoTex[0] = TexMan.CheckForTexture("graphics/HUD/AmmoBoxT.png",TexMan.Type_Any); + AmmoTex[1] = TexMan.CheckForTexture("graphics/HUD/AmmoBoxM.png",TexMan.Type_Any); + AmmoTex[2] = TexMan.CheckForTexture("graphics/HUD/AmmoBoxB.png",TexMan.Type_Any); MiniBox = TexMan.CheckForTexture("graphics/HUD/MinimapBox.png",TexMan.Type_Any); bgtex = TexMan.CheckForTexture("graphics/tempbg.png",TexMan.Type_Any); mSmallFont = Font.GetFont('TewiFont'); mBigFont = Font.GetFont('TewiFontOutline'); mTinyFont = Font.GetFont('MiniwiFont'); + MiniHudFont = Font.GetFont("MiniHUDShadow"); + MiniHudFontOutline = Font.GetFont("MiniHUDOutline"); + mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor("MiniDemoHUD"); + mhudfontcol[MCR_IBUKIHUD] = Font.FindFontColor("MiniIbukiHUD"); + mhudfontcol[MCR_SAYAHUD] = Font.FindFontColor("MiniSayaHUD"); + mhudfontcol[MCR_KIRINHUD] = Font.FindFontColor("MiniKirinHUD"); + mhudfontcol[MCR_MARISAHUD] = Font.FindFontColor("MiniMarisaHUD"); + mhudfontcol[MCR_VOIDHUD] = Font.FindFontColor("MiniVoidHUD"); + mhudfontcol[MCR_WHITE] = Font.FindFontColor("MiniWhite"); + mhudfontcol[MCR_RED] = Font.FindFontColor("MiniRed"); + mhudfontcol[MCR_GREEN] = Font.FindFontColor("MiniGreen"); + mhudfontcol[MCR_BLUE] = Font.FindFontColor("MiniBlue"); + mhudfontcol[MCR_YELLOW] = Font.FindFontColor("MiniYellow"); + mhudfontcol[MCR_CYAN] = Font.FindFontColor("MiniCyan"); + mhudfontcol[MCR_PURPLE] = Font.FindFontColor("MiniPurple"); + mhudfontcol[MCR_BRASS] = Font.FindFontColor("MiniBrass"); + mhudfontcol[MCR_SILVER] = Font.FindFontColor("MiniSilver"); + mhudfontcol[MCR_GOLD] = Font.FindFontColor("MiniGold"); + mhudfontcol[MCR_MANA] = Font.FindFontColor("MiniMana"); + mhudfontcol[MCR_CRIMSON] = Font.FindFontColor("MiniCrimson"); + mhudfontcol[MCR_ELDRITCH] = Font.FindFontColor("MiniEldritch"); + mhudfontcol[MCR_KINYLUM] = Font.FindFontColor("MiniKinylum"); + mhudfontcol[MCR_NOKRON] = Font.FindFontColor("MiniNokron"); + mhudfontcol[MCR_NOKOROKINYLUM] = Font.FindFontColor("MiniNokorokinylum"); + mhudfontcol[MCR_DEMOBLUE] = Font.FindFontColor("MiniDemoBlue"); + mhudfontcol[MCR_DEMOPINK] = Font.FindFontColor("MiniDemoPink"); + mhudfontcol[MCR_FLASH] = Font.FindFontColor("MiniFlash"); + mhudfontcol[MCR_REDFLASH] = Font.FindFontColor("MiniRedFlash"); + tclabel = mhudfontcol[MCR_BRASS]; + tcvalue = mhudfontcol[MCR_WHITE]; + tcextra = mhudfontcol[MCR_IBUKIHUD]; + tccompl = mhudfontcol[MCR_YELLOW]; + tcsucks = mhudfontcol[MCR_RED]; + tclabel_s = "[MiniBrass]"; + tcextra_s = "[MiniIbukiHUD]"; minimapzoom = oldminimapzoom = 1.; - HealthInter = DynamicValueInterpolator.Create(100,.1,1,100); - ScoreInter = DynamicValueInterpolator.Create(0,.1,1,999999999); - FuelInter = DynamicValueInterpolator.Create(120,.5,1,100); - DashInter = DynamicValueInterpolator.Create(120,.5,1,40); + LastHealth = CPlayer?CPlayer.health:100; + let d = Demolitionist(CPlayer?CPlayer.mo:null); + HealthInter = SmoothDynamicValueInterpolator.Create(LastHealth,.5,1,100); + FuelInter = SmoothDynamicValueInterpolator.Create(d?(d.dashfuel/2):120,.5,1,120); + DashInter = SmoothDynamicValueInterpolator.Create(d?((40-d.dashcooldown)*3):40,.5,1,40); + LagHealthInter = SmoothLinearValueInterpolator.Create(LastHealth,2); + for ( int i=0; i<10; i++ ) LagHealth[i] = LastHealth; + AmmoSlots[0] = 'RedShell'; + AmmoSlots[1] = 'GreenShell'; + AmmoSlots[2] = 'BlueShell'; + AmmoSlots[3] = 'PurpleShell'; + AmmoSlots[4] = 'BlackShell'; + AmmoSlots[5] = 'GoldShell'; + AmmoSlots[6] = 'SMW05Ammo'; + AmmoSlots[7] = 'EvisceratorShell'; + AmmoSlots[8] = 'SheenAmmo'; + AmmoSlots[9] = 'HellblazerMissiles'; + AmmoSlots[10] = 'HellblazerCrackshots'; + AmmoSlots[11] = 'HellblazerRavagers'; + AmmoSlots[12] = 'HellblazerWarheads'; + AmmoSlots[13] = 'QuadravolAmmo'; + AmmoSlots[14] = 'SparkUnit'; + AmmoSlots[15] = 'SparksterBAmmo'; + AmmoSlots[16] = 'SparksterRAmmo'; + AmmoSlots[17] = 'SilverBulletAmmo'; + AmmoSlots[18] = 'SilverBulletAmmo2'; + AmmoSlots[19] = 'RayAmmo'; + AmmoSlots[20] = 'CandyGunAmmo'; + AmmoSlots[21] = 'CandyGunSpares'; + AmmoSlots[22] = 'MisterAmmo'; + AmmoSlots[23] = 'MisterGAmmo'; + AmmoSlots[24] = 'YnykronAmmo'; + AmmoSlots[25] = 'UltimateAmmo'; + AmmoNames[0] = "SHOT"; + AmmoNames[1] = "SLUG"; + AmmoNames[2] = "SALT"; + AmmoNames[3] = "BALL"; + AmmoNames[4] = "FLCH"; + AmmoNames[5] = "GOLD"; + AmmoNames[6] = "SCRW"; + AmmoNames[7] = "FLAK"; + AmmoNames[8] = "MACH"; + AmmoNames[9] = "RCKT"; + AmmoNames[10] = "CLUS"; + AmmoNames[11] = "RAVG"; + AmmoNames[12] = "WARH"; + AmmoNames[13] = "QUAD"; + AmmoNames[14] = "BSPK"; + AmmoNames[15] = "KINY"; + AmmoNames[16] = "NOKR"; + AmmoNames[17] = "RIFL"; + AmmoNames[18] = "CHOD"; + AmmoNames[19] = "BOLT"; + AmmoNames[20] = "CAND"; + AmmoNames[21] = "CGUN"; + AmmoNames[22] = "MSTR"; + AmmoNames[23] = "MGRN"; + AmmoNames[24] = "CRYS"; + AmmoNames[25] = "ULTI"; + for ( int i=0; i<26; i++ ) + { + AmmoFlash[i] = 0; + AmmoOldAmounts[i] = int.min; + AmmoMaxFlash[i] = 0; + AmmoOldMaxAmounts[i] = int.min; + } + ScoreInter = SmoothDynamicValueInterpolator.Create(0,.1,1,999999999); hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); - Alt_Init(); PrevFrame = MSTimeF(); } @@ -2199,18 +2481,9 @@ Class SWWMStatusBar : BaseStatusBar return StringTable.Localize("$SWWM_PLACE"..val); } - private void DrawTopStuff( bool minimaponly = false ) + private void DrawTopStuff() { int xx, yy = margin; - if ( !minimaponly ) - { - String sstr = String.Format("%09d",ScoreInter.GetValue()); - xx = 73; - Screen.DrawTexture(ScoreTex,false,ss.x-(margin+xx),margin,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - xx -= 15; - Screen.DrawText(mSmallFont,Font.CR_FIRE,ss.x-(margin+xx),margin+2,sstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy = margin+19; - } // obviously, don't draw the minimap if the automap is open if ( !automapactive && swwm_mm_enable ) { @@ -2234,9 +2507,8 @@ Class SWWMStatusBar : BaseStatusBar for ( int i=0; i<3; i++ ) tv[i] = (tv[i]+basemappos)*hs; for ( int i=0; i<3; i++ ) Screen.DrawThickLine(int(tv[i].x),int(tv[i].y),int(tv[(i+1)%3].x),int(tv[(i+1)%3].y),max(1.,hs*.5),mm_yourcolor); Screen.ClearClipRect(); - yy += ((HALFMAPSIZE+2)*2)+3; + yy += ((HALFMAPSIZE+2)*2)+5; } - if ( minimaponly ) return; // draw stats and timer when automap is open int fstats = swwm_forcestats; if ( automapactive || (fstats > 0) ) @@ -2251,42 +2523,81 @@ Class SWWMStatusBar : BaseStatusBar if ( iof != -1 ) ln.Truncate(iof); if ( !label || ((level.clusterflags&level.CLUSTER_HUB) && (label == 2)) ) str = ln; else str = String.Format("%s - %s",level.mapname.MakeUpper(),ln); - Screen.DrawText(mSmallFont,Font.CR_FIRE,xx-mSmallFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mSmallFont.GetHeight(); + Screen.DrawText(mBigFont,tclabel,xx-mBigFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + yy += mBigFont.GetHeight()+4; } if ( (level.total_monsters > 0) && am_showmonsters && !deathmatch ) { - str = String.Format("\cxK \c-%d\cu/\c-%d",level.killed_monsters,level.total_monsters); - Screen.DrawText(mTinyFont,(level.killed_monsters>=level.total_monsters)?Font.CR_GOLD:Font.CR_WHITE,xx-mTinyFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mTinyFont.GetHeight(); + str = String.Format("\c"..tclabel_s.."K \c-%d\c"..tcextra_s.."/\c-%d",level.killed_monsters,level.total_monsters); + Screen.DrawText(MiniHUDFontOutline,(level.killed_monsters>=level.total_monsters)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( killflash && (gametic < killflash) ) + { + double alph = max((killflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d/%d",level.killed_monsters,level.total_monsters); + int slashpos = str.IndexOf("/"); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + if ( tkillflash && (gametic < tkillflash) ) + { + double alph = max((tkillflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d",level.total_monsters); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + yy += MiniHUDFontOutline.GetHeight()+2; } if ( (level.total_items > 0) && am_showitems && !deathmatch ) { - str = String.Format("\cxI \c-%d\cu/\c-%d",level.found_items,level.total_items); - Screen.DrawText(mTinyFont,(level.found_items>=level.total_items)?Font.CR_GOLD:Font.CR_WHITE,xx-mTinyFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mTinyFont.GetHeight(); + str = String.Format("\c"..tclabel_s.."I \c-%d\c"..tcextra_s.."/\c-%d",level.found_items,level.total_items); + Screen.DrawText(MiniHUDFontOutline,(level.found_items>=level.total_items)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( itemflash && (gametic < itemflash) ) + { + double alph = max((itemflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d/%d",level.found_items,level.total_items); + int slashpos = str.IndexOf("/"); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + if ( titemflash && (gametic < titemflash) ) + { + double alph = max((titemflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d",level.total_items); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + yy += MiniHUDFontOutline.GetHeight()+2; } if ( (level.total_secrets > 0) && am_showsecrets && !deathmatch ) { - str = String.Format("\cxS \c-%d\cu/\c-%d",level.found_secrets,level.total_secrets); - Screen.DrawText(mTinyFont,(level.found_secrets>=level.total_secrets)?Font.CR_GOLD:Font.CR_WHITE,xx-mTinyFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mTinyFont.GetHeight(); + str = String.Format("\c"..tclabel_s.."S \c-%d\c"..tcextra_s.."/\c-%d",level.found_secrets,level.total_secrets); + Screen.DrawText(MiniHUDFontOutline,(level.found_secrets>=level.total_secrets)?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( secretflash && (gametic < secretflash) ) + { + double alph = max((secretflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d/%d",level.found_secrets,level.total_secrets); + int slashpos = str.IndexOf("/"); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str.Left(slashpos),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + if ( tsecretflash && (gametic < tsecretflash) ) + { + double alph = max((tsecretflash-(gametic+FracTic))/25.,0.)**1.5; + str = String.Format("%d",level.total_secrets); + Screen.DrawText(MiniHUDFontOutline,mhudfontcol[MCR_FLASH],xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + yy += MiniHUDFontOutline.GetHeight()+2; } int sec; if ( am_showtime ) { sec = Thinker.Tics2Seconds(level.maptime); - str = String.Format("\cxT \c-%02d\cu:\c-%02d\cu:\c-%02d",sec/3600,(sec%3600)/60,sec%60); - Screen.DrawText(mTinyFont,((level.sucktime>0)&&(sec>=(level.sucktime*3600)))?Font.CR_RED:(sec<=level.partime)?Font.CR_GOLD:Font.CR_WHITE,xx-mTinyFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mTinyFont.GetHeight(); + str = String.Format("\c"..tclabel_s.."T \c-%02d\c"..tcextra_s..":\c-%02d\c"..tcextra_s..":\c-%02d",sec/3600,(sec%3600)/60,sec%60); + Screen.DrawText(MiniHUDFontOutline,((level.sucktime>0)&&(sec>=(level.sucktime*3600)))?tcsucks:((level.partime>0)&&(sec<=level.partime))?tccompl:tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + yy += MiniHUDFontOutline.GetHeight()+2; } // don't show total time if it's equal to map time if ( am_showtotaltime && (level.totaltime != level.maptime) ) { sec = Thinker.Tics2Seconds(level.totaltime); - str = String.Format("\cxTT \c-%02d\cu:\c-%02d\cu:\c-%02d",sec/3600,(sec%3600)/60,sec%60); - Screen.DrawText(mTinyFont,Font.CR_WHITE,xx-mTinyFont.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - yy += mTinyFont.GetHeight(); + str = String.Format("\c"..tclabel_s.."TT \c-%02d\c"..tcextra_s..":\c-%02d\c"..tcextra_s..":\c-%02d",sec/3600,(sec%3600)/60,sec%60); + Screen.DrawText(MiniHUDFontOutline,tcvalue,xx-MiniHUDFontOutline.StringWidth(str),yy,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + yy += MiniHUDFontOutline.GetHeight()+2; } yy += 3; } @@ -2349,6 +2660,14 @@ Class SWWMStatusBar : BaseStatusBar TextureID icon = (k is 'HexenKey')?k.SpawnState.GetSpriteTexture(0):k.Icon; Vector2 siz = TexMan.GetScaledSize(icon); Screen.DrawTexture(icon,false,keypos.x-siz.x,keypos.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_TopLeft,true); + for ( int j=0; j= keyflash[j].flashtime) ) continue; + double alph = max((keyflash[j].flashtime-(gametic+FracTic))/25.,0.)**1.5; + Screen.DrawTexture(icon,false,keypos.x-siz.x,keypos.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_TopLeft,true,DTA_ColorOverlay,0xFFFFC040,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + break; + } keypos.x -= siz.x+2; colh = max(colh,siz.y); if ( ++colc == maxcolc ) @@ -2371,48 +2690,24 @@ Class SWWMStatusBar : BaseStatusBar { Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,Powerup(i).IsBlinking()?alpha*.5:alpha,DTA_TopOffset,0,DTA_LeftOffset,0); String nstr = String.Format("%ds",Powerup(i).EffectTics/GameTicRate); - if ( isalthud ) - { - int len = MiniHudFontOutline.StringWidth(nstr); - Screen.DrawText(MiniHudFontOutline,mhudfontcol[MCR_BRASS],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,Powerup(i).IsBlinking()?alpha*.5:alpha); - } - else - { - int len = mSmallFont.StringWidth(nstr); - Screen.DrawText(mSmallFont,Font.CR_FIRE,(xx+30)-len,(yy+30)-10,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,Powerup(i).IsBlinking()?alpha*.5:alpha); - } + int len = MiniHudFontOutline.StringWidth(nstr); + Screen.DrawText(MiniHudFontOutline,mhudfontcol[MCR_BRASS],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,Powerup(i).IsBlinking()?alpha*.5:alpha); return true; } if ( (i is 'SWWMLamp') && aspowerup ) { Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,SWWMLamp(i).isBlinking()?alpha*.5:alpha,DTA_TopOffset,0,DTA_LeftOffset,0); String nstr = String.Format("%d%%",SWWMLamp(i).Charge); - if ( isalthud ) - { - int len = MiniHudFontOutline.StringWidth(nstr); - Screen.DrawText(MiniHudFontOutline,mhudfontcol[SWWMLamp(i).bActive?MCR_BRASS:MCR_WHITE],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,SWWMLamp(i).isBlinking()?alpha*.5:alpha); - } - else - { - int len = mSmallFont.StringWidth(nstr); - Screen.DrawText(mSmallFont,SWWMLamp(i).bActive?Font.CR_FIRE:Font.CR_WHITE,(xx+30)-len,(yy+30)-10,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,SWWMLamp(i).isBlinking()?alpha*.5:alpha); - } + int len = MiniHudFontOutline.StringWidth(nstr); + Screen.DrawText(MiniHudFontOutline,mhudfontcol[SWWMLamp(i).bActive?MCR_BRASS:MCR_WHITE],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,SWWMLamp(i).isBlinking()?alpha*.5:alpha); return true; } if ( (i is 'DivineSpriteEffect') && aspowerup ) { Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,DivineSpriteEffect(i).isBlinking()?alpha*.5:alpha,DTA_TopOffset,0,DTA_LeftOffset,0); String nstr = String.Format("%ds",DivineSpriteEffect(i).healtim/GameTicRate); - if ( isalthud ) - { - int len = MiniHudFontOutline.StringWidth(nstr); - Screen.DrawText(MiniHudFontOutline,mhudfontcol[MCR_BRASS],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,DivineSpriteEffect(i).isBlinking()?alpha*.5:alpha); - } - else - { - int len = mSmallFont.StringWidth(nstr); - Screen.DrawText(mSmallFont,Font.CR_FIRE,(xx+30)-len,(yy+30)-10,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,DivineSpriteEffect(i).isBlinking()?alpha*.5:alpha); - } + int len = MiniHudFontOutline.StringWidth(nstr); + Screen.DrawText(MiniHudFontOutline,mhudfontcol[MCR_BRASS],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,DivineSpriteEffect(i).isBlinking()?alpha*.5:alpha); return true; } Screen.DrawTexture(i.Icon,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_TopOffset,0,DTA_LeftOffset,0); @@ -2421,21 +2716,13 @@ Class SWWMStatusBar : BaseStatusBar String nstr; if ( (i.Amount > 99999) && !forceamt ) nstr = "99999"; else nstr = String.Format("%d",i.Amount); - if ( isalthud ) - { - int len = MiniHudFontOutline.StringWidth(nstr); - Screen.DrawText(MiniHudFontOutline,mhudfontcol[(i.Amount<=0)?MCR_RED:selected?MCR_BRASS:MCR_WHITE],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha); - } - else - { - int len = mSmallFont.StringWidth(nstr); - Screen.DrawText(mSmallFont,(i.Amount<=0)?Font.CR_RED:selected?Font.CR_FIRE:Font.CR_WHITE,(xx+30)-len,(yy+30)-10,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha); - } + int len = MiniHudFontOutline.StringWidth(nstr); + Screen.DrawText(MiniHudFontOutline,mhudfontcol[(i.Amount<=0)?MCR_RED:selected?MCR_BRASS:MCR_WHITE],(xx+30)-len,(yy+30)-6,nstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alpha); } return true; } - private void DrawInventory( int invy = 58 ) + private void DrawInventory( int invy = 56 ) { // active items (armor / powerups) double xx = margin+2; @@ -2509,65 +2796,51 @@ Class SWWMStatusBar : BaseStatusBar private void DrawWeapons() { - if ( CPlayer.ReadyWeapon is 'SWWMWeapon' ) SWWMWeapon(CPlayer.ReadyWeapon).DrawWeapon(FracTic,ss.x-margin,ss.y-(margin+28),hs,ss); - else if ( CPlayer.ReadyWeapon ) + Screen.DrawTexture(WeaponTex,false,ss.x-(margin+80),ss.y-(margin+10),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + double xx = ss.x-(margin+78), yy = ss.y-(margin+8); + for ( int i=1; i<=10; i++,xx+=8 ) { - // generic display - double xx = ss.x-(margin+13), yy = ss.y-(margin+42); - int maxlen = 0; - String astr2, astr1; - if ( CPlayer.ReadyWeapon.Ammo2 ) astr2 = String.Format("%d",CPlayer.ReadyWeapon.Ammo2.Amount); - if ( CPlayer.ReadyWeapon.Ammo1 ) astr1 = String.Format("%d",CPlayer.ReadyWeapon.Ammo1.Amount); - maxlen = max(astr1.Length(),astr2.Length()); - if ( CPlayer.ReadyWeapon.Ammo2 && (CPlayer.ReadyWeapon.Ammo2 != CPlayer.ReadyWeapon.Ammo1) ) + int ncolor = mhudfontcol[MCR_WHITE]; + if ( !CPlayer.HasWeaponsInSlot(i%10) ) { - yy -= 14; - Screen.DrawTexture(GenericAmmoTex[2],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - for ( int i=0; i 0) || Weapon(inv).bAMMO_OPTIONAL) || (Weapon(inv).Ammo2 && ((Weapon(inv).Ammo2.Amount > 0) || Weapon(inv).bALT_AMMO_OPTIONAL))) ) hasammo = true; } - if ( !hasammo ) ncolor = Font.CR_RED; + if ( !hasammo ) ncolor = mhudfontcol[MCR_RED]; } - Screen.DrawText(mSmallFont,ncolor,xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - xx += 12; - if ( i == 5 ) + Screen.DrawText(MiniHUDFont,ncolor,xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + int f = hnd.WeaponFlash[i%10]; + if ( f && (gametic < f) ) { - xx = ss.x-(margin+57); - yy += 14; + double alph = max((f-(gametic+FracTic))/25.,0.)**1.5; + Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_FLASH],xx,yy,String.Format("%d",(i%10)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph,DTA_LegacyRenderStyle,STYLE_Add); + } + } + xx = ss.x-(margin+54); + yy = ss.y-(margin+14); + bool bDrewAmmo = false; + bool checkowned = swwm_hudtrimammo; + Array OwnedWeapons; + if ( checkowned ) for ( Inventory i=CPlayer.mo.inv; i; i=i.inv ) + { + if ( !(i is 'SWWMWeapon') ) continue; + OwnedWeapons.Push(SWWMWeapon(i)); + } + String str; + for ( int i=25; i>=0; i-- ) + { + let a = AmmoSlots[i]; + // check if owned + if ( checkowned ) + { + bool owned = false; + for ( int j=0; j0)?scol:mhudfontcol[MCR_RED]; + int dcnt1 = 2-int(Log10(clamp(amt,1,999))); + int dcnt2 = 2-int(Log10(clamp(amax,1,999))); + for ( int j=0; j 20) || ((gametic%10) < 5) ) alph = 1.; - Screen.DrawTexture(DashTex,false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,dw,DTA_Alpha,alph); - double fw = FuelInter.GetValue()/2.; - Screen.DrawTexture(FuelTex[swwm_superfuel],false,margin+2,ss.y-(margin+24),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,fw); - double ht = clamp(HealthInter.GetValue(),0,10000); + Screen.DrawTexture(StatusTex,false,margin,ss.y-(margin+22),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + String str; + double ht = clamp(HealthInter.GetValue(fractic),0,10000); + str = String.Format("%3d",clamp(round(ht),0,999)); double hw = min(ht,100); - int hcolor = Font.CR_RED; - if ( ht > 500 ) hcolor = Font.CR_GOLD; - else if ( ht > 200 ) hcolor = Font.CR_PURPLE; - else if ( ht > 100 ) hcolor = Font.CR_CYAN; + double bhw = hw; + int hcolor = MCR_RED; + if ( round(ht) > 500 ) hcolor = MCR_YELLOW; + else if ( round(ht) > 200 ) hcolor = MCR_PURPLE; + else if ( round(ht) > 100 ) hcolor = MCR_CYAN; if ( isInvulnerable() || CPlayer.mo.FindInventory("InvinciballPower") ) { - Screen.DrawTexture(HealthTex[4],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); - hcolor = Font.CR_WHITE; + Screen.DrawTexture(HealthTex[0],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(HealthTex[4],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); + hcolor = MCR_WHITE; } else { - Screen.DrawTexture(HealthTex[0],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); + Screen.DrawTexture(HealthTex[0],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(HealthTex[0],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); if ( ht > 100 ) { hw = min(ht-100,100); - Screen.DrawTexture(HealthTex[1],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); + Screen.DrawTexture(HealthTex[1],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); } if ( ht > 200 ) { hw = min(ht-200,300)/3.; - Screen.DrawTexture(HealthTex[2],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); + Screen.DrawTexture(HealthTex[2],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); } if ( ht > 500 ) { hw = min(ht-500,500)/5.; - Screen.DrawTexture(HealthTex[3],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); + Screen.DrawTexture(HealthTex[3],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw); } } if ( CPlayer.mo.FindInventory("DivineSpriteEffect") ) { double falph = clamp((ht-1000)/6000.,0.,1.); - Screen.DrawTexture(HealthTex[5],false,margin+2,ss.y-(margin+14),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph,DTA_LegacyRenderStyle,STYLE_Add); + Screen.DrawTexture(HealthTex[5],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph,DTA_LegacyRenderStyle,STYLE_Add); String tst; double alph = .1; int trl = 9; - for ( double alph = .1; alph <= 1.; alph += .1 ) + for ( double alph = .1; alph <= .5; alph += .1 ) { tst = "AAA"; - SWWMUtility.ObscureText(tst,(gametic-trl)/3); + SWWMUtility.ObscureText(tst,(gametic-trl)/3,true); trl--; - Screen.DrawText(mSmallFont,Font.CR_WHITE,margin+108,ss.y-(margin+14),tst,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph*alph,DTA_LegacyRenderStyle,STYLE_Add); + Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_WHITE],margin+107,ss.y-(margin+20),tst,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,falph*alph,DTA_LegacyRenderStyle,STYLE_Add); } - Screen.DrawText(mSmallFont,hcolor,margin+108,ss.y-(margin+14),String.Format("%3d",clamp(ht,0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,1.-falph); + Screen.DrawText(MiniHUDFont,mhudfontcol[hcolor],margin+107,ss.y-(margin+20),String.Format("%3d",clamp(round(ht),0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,1.-falph); } - else Screen.DrawText(mSmallFont,hcolor,margin+108,ss.y-(margin+14),String.Format("%3d",clamp(ht,0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + else + { + Screen.DrawText(MiniHUDFont,mhudfontcol[hcolor],margin+107,ss.y-(margin+20),String.Format("%3d",clamp(round(ht),0,999)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + int f = HealthFlash; + if ( f && (gametic < f) ) + { + double alph = max((f-(gametic+FracTic))/25.,0.)**1.5; + Screen.DrawTexture(HealthTex[7],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,bhw,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_FLASH],margin+107,ss.y-(margin+20),str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add,DTA_Alpha,alph); + } + if ( (CPlayer.health > 0) && (CPlayer.health <= 25) && (PulsePhase <= 15) ) + { + double alph = clamp(sin((PulsePhase-FracTic)*12.),0.,1.); + Screen.DrawTexture(HealthTex[6],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,hw,DTA_Alpha,alph); + Screen.DrawText(MiniHUDFont,mhudfontcol[MCR_REDFLASH],margin+107,ss.y-(margin+20),str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph); + } + ht = clamp(LagHealthInter.GetValue(fractic),0,1000); + double hwl = min(ht,100); + if ( hwl > bhw ) + { + Screen.DrawTexture(HealthTex[8],false,margin+3,ss.y-(margin+19),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowLeftF,bhw,DTA_WindowRightF,hwl,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(HealthTex[8],false,margin+2,ss.y-(margin+20),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowLeftF,bhw,DTA_WindowRightF,hwl); + } + } + double ft = clamp(FuelInter.GetValue(fractic),0,120); + Screen.DrawTexture(FuelTex[swwm_superfuel],false,margin+3,ss.y-(margin+7),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,ft,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(FuelTex[swwm_superfuel],false,margin+2,ss.y-(margin+8),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,ft); + let d = Demolitionist(CPlayer.mo); + bool blink = (!d || (d.dashfuel > 20) || ((gametic%10) < 5)); + double dt = clamp(DashInter.GetValue(fractic),0,120); + Screen.DrawTexture(DashTex,false,margin+3,ss.y-(margin+4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,dt,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(DashTex,false,margin+2,ss.y-(margin+5),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,dt,DTA_ColorOverlay,Color(blink?0:96,0,0,0)); } private void DrawPickups() @@ -2935,7 +3390,6 @@ Class SWWMStatusBar : BaseStatusBar ssi = (Screen.GetWidth()/hsi,Screen.GetHeight()/hsi); ssd = (Screen.GetWidth()/hsd,Screen.GetHeight()/hsd); FracTic = TicFrac; - isalthud = swwm_althud; if ( camhidden ) { if ( hnd ) hnd.DrawBossBar(self); @@ -2946,21 +3400,10 @@ Class SWWMStatusBar : BaseStatusBar else { DrawTarget(); - if ( isalthud ) - { - DrawTopStuff(true); - Alt_DrawTopStuff(); - DrawInventory(56); - Alt_DrawStatus(); - Alt_DrawWeapons(); - } - else - { - DrawTopStuff(); - DrawInventory(); - DrawStatus(); - DrawWeapons(); - } + DrawTopStuff(); + DrawInventory(); + DrawStatus(); + DrawWeapons(); if ( hnd ) hnd.DrawBossBar(self); DrawPickups(); double malph = DrawDeath(); diff --git a/zscript/items/swwm_ammoextra.zsc b/zscript/items/swwm_ammoextra.zsc index 0ef80dabe..fddf54f98 100644 --- a/zscript/items/swwm_ammoextra.zsc +++ b/zscript/items/swwm_ammoextra.zsc @@ -265,12 +265,7 @@ Class FabricatorTier1 : AmmoFabricator Default { - //$Title Fabricator (Common) - //$Group Ammo - //$Sprite graphics/HUD/Icons/I_Fabricator1.png - //$Icon ammo Tag "$T_FABRICATOR1"; - Inventory.Icon "graphics/HUD/Icons/I_Fabricator1.png"; Inventory.PickupMessage "$T_FABRICATOR1"; AmmoFabricator.Budget 3000; AmmoFabricator.PerType 1; @@ -287,12 +282,7 @@ Class FabricatorTier2 : AmmoFabricator Default { - //$Title Fabricator (Rare) - //$Group Ammo - //$Sprite graphics/HUD/Icons/I_Fabricator2.png - //$Icon ammo Tag "$T_FABRICATOR2"; - Inventory.Icon "graphics/HUD/Icons/I_Fabricator2.png"; Inventory.PickupMessage "$T_FABRICATOR2"; AmmoFabricator.Budget 20000; AmmoFabricator.PerType 1; @@ -309,12 +299,7 @@ Class FabricatorTier3 : AmmoFabricator Default { - //$Title Fabricator (Very Rare) - //$Group Ammo - //$Sprite graphics/HUD/Icons/I_Fabricator3.png - //$Icon ammo Tag "$T_FABRICATOR3"; - Inventory.Icon "graphics/HUD/Icons/I_Fabricator3.png"; Inventory.PickupMessage "$T_FABRICATOR3"; AmmoFabricator.Budget 60000; AmmoFabricator.PerType 2; @@ -331,12 +316,7 @@ Class FabricatorTier4 : AmmoFabricator Default { - //$Title Fabricator (Super Rare) - //$Group Ammo - //$Sprite graphics/HUD/Icons/I_Fabricator4.png - //$Icon ammo Tag "$T_FABRICATOR4"; - Inventory.Icon "graphics/HUD/Icons/I_Fabricator4.png"; Inventory.PickupMessage "$T_FABRICATOR4"; AmmoFabricator.Budget int.max; AmmoFabricator.PerType -50; @@ -539,13 +519,8 @@ Class HammerspaceEmbiggener : Inventory Default { - //$Title Hammerspace Embiggener - //$Group Ammo - //$Sprite graphics/HUD/Icons/I_Embiggener.png - //$Icon ammo Tag "$T_EMBIGGENER"; Stamina -800000; - Inventory.Icon "graphics/HUD/Icons/I_Embiggener.png"; Inventory.PickupMessage "$T_EMBIGGENER"; Inventory.MaxAmount 8; Inventory.InterHubAmount 8; diff --git a/zscript/items/swwm_ammoitems.zsc b/zscript/items/swwm_ammoitems.zsc index bd42a88a7..aba991cf8 100644 --- a/zscript/items/swwm_ammoitems.zsc +++ b/zscript/items/swwm_ammoitems.zsc @@ -6,14 +6,9 @@ Class RedShell : SWWMAmmo { Default { - //$Title 1x Red Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsNormal.png - //$Icon ammo Tag "$T_REDSHELL"; SWWMAmmo.PickupTag "REDSHELL"; Stamina 500; - Inventory.Icon "graphics/HUD/Icons/A_ShellsNormal.png"; Inventory.Amount 1; Inventory.MaxAmount 30; Ammo.BackpackAmount 3; @@ -36,10 +31,6 @@ Class RedShell2 : RedShell { Default { - //$Title 2x Red Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsNormal.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -48,10 +39,6 @@ Class RedShell4 : RedShell { Default { - //$Title 4x Red Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsNormal.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -61,14 +48,9 @@ Class GreenShell : SWWMAmmo { Default { - //$Title 1x Green Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsSlug.png - //$Icon ammo Tag "$T_GREENSHELL"; SWWMAmmo.PickupTag "GREENSHELL"; Stamina 800; - Inventory.Icon "graphics/HUD/Icons/A_ShellsSlug.png"; Inventory.Amount 1; Inventory.MaxAmount 25; Ammo.BackpackAmount 2; @@ -91,10 +73,6 @@ Class GreenShell2 : GreenShell { Default { - //$Title 2x Green Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsSlug.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -103,10 +81,6 @@ Class GreenShell4 : GreenShell { Default { - //$Title 4x Green Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsSlug.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -116,14 +90,9 @@ Class BlueShell : SWWMAmmo { Default { - //$Title 1x Blue Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsKinylum.png - //$Icon ammo Tag "$T_BLUESHELL"; SWWMAmmo.PickupTag "BLUESHELL"; Stamina 1500; - Inventory.Icon "graphics/HUD/Icons/A_ShellsKinylum.png"; Inventory.Amount 1; Inventory.MaxAmount 20; Ammo.BackpackAmount 1; @@ -146,10 +115,6 @@ Class BlueShell2 : BlueShell { Default { - //$Title 2x Blue Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsKinylum.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -158,10 +123,6 @@ Class BlueShell4 : BlueShell { Default { - //$Title 4x Blue Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsKinylum.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -171,14 +132,9 @@ Class PurpleShell : SWWMAmmo { Default { - //$Title 1x Purple Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsBall.png - //$Icon ammo Tag "$T_PURPLESHELL"; SWWMAmmo.PickupTag "PURPLESHELL"; Stamina 2500; - Inventory.Icon "graphics/HUD/Icons/A_ShellsBall.png"; Inventory.Amount 1; Inventory.MaxAmount 15; Ammo.BackpackAmount 1; @@ -201,10 +157,6 @@ Class PurpleShell2 : PurpleShell { Default { - //$Title 2x Purple Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsBall.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -213,10 +165,6 @@ Class PurpleShell4 : PurpleShell { Default { - //$Title 4x Purple Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsBall.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -226,14 +174,9 @@ Class BlackShell : SWWMAmmo { Default { - //$Title 1x Black Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsFuck.png - //$Icon ammo Tag "$T_BLACKSHELL"; SWWMAmmo.PickupTag "BLACKSHELL"; Stamina 4000; - Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png"; Inventory.Amount 1; Inventory.MaxAmount 10; Ammo.BackpackAmount 0; @@ -256,10 +199,6 @@ Class BlackShell2 : BlackShell { Default { - //$Title 2x Black Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsFuck.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -268,10 +207,6 @@ Class BlackShell4 : BlackShell { Default { - //$Title 4x Black Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsFuck.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -321,15 +256,10 @@ Class GoldShell : SWWMAmmo Default { - //$Title 1x Gold Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsGold.png - //$Icon ammo Tag "$T_GOLDSHELL"; SWWMAmmo.PickupTag "GOLDSHELL"; Inventory.PickupSound "misc/ammo_pkup_vip"; Stamina -1000000; - Inventory.Icon "graphics/HUD/Icons/A_ShellsGold.png"; Inventory.Amount 1; Inventory.MaxAmount 7; Ammo.BackpackAmount 0; @@ -352,10 +282,6 @@ Class GoldShell2 : GoldShell { Default { - //$Title 2x Gold Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsGold.png - //$Icon ammo Inventory.Amount 2; Radius 6; } @@ -364,10 +290,6 @@ Class GoldShell4 : GoldShell { Default { - //$Title 4x Gold Shells - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_ShellsGold.png - //$Icon ammo Inventory.Amount 4; Radius 6; } @@ -381,15 +303,10 @@ Class EvisceratorShell : SWWMAmmo { Default { - //$Title Eviscerator Shell - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Eviscerator.png - //$Icon ammo Tag "$T_EVISHELL"; SWWMAmmo.PickupTag "EVISHELL"; Inventory.PickupMessage "$T_EVISHELL"; Stamina 3000; - Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png"; Inventory.Amount 1; Inventory.MaxAmount 20; Ammo.BackpackAmount 3; @@ -418,10 +335,6 @@ Class EvisceratorShell2 : EvisceratorShell { Default { - //$Title Eviscerator Dual Clip - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Eviscerator.png - //$Icon ammo Inventory.PickupMessage "$I_EVISHELLCLIP2"; Inventory.Amount 2; Radius 16; @@ -431,10 +344,6 @@ Class EvisceratorShell3 : EvisceratorShell { Default { - //$Title Eviscerator Triple Clip - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Eviscerator.png - //$Icon ammo Inventory.PickupMessage "$I_EVISHELLCLIP3"; Inventory.Amount 3; Radius 16; @@ -445,10 +354,6 @@ Class EvisceratorSixPack : EvisceratorShell { Default { - //$Title Eviscerator Six-Pack - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Eviscerator.png - //$Icon ammo Inventory.PickupMessage "$I_EVISHELLPAK"; Inventory.Amount 6; Radius 20; @@ -464,14 +369,9 @@ Class HellblazerMissiles : SWWMAmmo { Default { - //$Title Hellblazer Missile - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerMissile.png - //$Icon ammo Tag "$T_HELLMISSILE"; SWWMAmmo.PickupTag "HELLMISSILE"; Stamina 8000; - Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png"; Inventory.Amount 1; Inventory.MaxAmount 18; Ammo.BackpackAmount 2; @@ -499,10 +399,6 @@ Class HellblazerMissiles2 : HellblazerMissiles { Default { - //$Title 2x Hellblazer Missile - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerMissile.png - //$Icon ammo Inventory.Amount 2; } } @@ -510,10 +406,6 @@ Class HellblazerMissiles3 : HellblazerMissiles { Default { - //$Title 3x Hellblazer Missile - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerMissile.png - //$Icon ammo Inventory.Amount 3; } } @@ -521,10 +413,6 @@ Class HellblazerMissileMag : HellblazerMissiles { Default { - //$Title Hellblazer Missile Mag - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerMissile.png - //$Icon ammo Inventory.PickupMessage "$T_HELLMISSILEMAG"; Inventory.Amount 6; +SWWMAMMO.USEPICKUPMSG; @@ -537,14 +425,9 @@ Class HellblazerCrackshots : SWWMAmmo { Default { - //$Title Hellblazer Crackshot - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png - //$Icon ammo Tag "$T_HELLCLUSTER"; SWWMAmmo.PickupTag "HELLCLUSTER"; Stamina 15000; - Inventory.Icon "graphics/HUD/Icons/A_HellblazerCrackshot.png"; Inventory.Amount 1; Inventory.MaxAmount 12; Ammo.BackpackAmount 1; @@ -567,10 +450,6 @@ Class HellblazerCrackshots2 : HellblazerCrackshots { Default { - //$Title 2x Hellblazer Crackshots - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png - //$Icon ammo Inventory.Amount 2; } } @@ -578,10 +457,6 @@ Class HellblazerCrackshotMag : HellblazerCrackshots { Default { - //$Title Hellblazer Crackshot Mag - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png - //$Icon ammo Inventory.PickupMessage "$T_HELLCLUSTERMAG"; Inventory.Amount 3; +SWWMAMMO.USEPICKUPMSG; @@ -594,14 +469,9 @@ Class HellblazerRavagers : SWWMAmmo { Default { - //$Title Hellblazer Ravager - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerRavager.png - //$Icon ammo Tag "$T_HELLBURNINATOR"; SWWMAmmo.PickupTag "HELLBURNINATOR"; Stamina 25000; - Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png"; Inventory.Amount 1; Inventory.MaxAmount 6; Ammo.BackpackAmount 0; @@ -624,10 +494,6 @@ Class HellblazerRavagerMag : HellblazerRavagers { Default { - //$Title Hellblazer Ravager Mag - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerRavager.png - //$Icon ammo Inventory.PickupMessage "$T_HELLBURNINATORMAG"; Inventory.Amount 3; +SWWMAMMO.USEPICKUPMSG; @@ -640,14 +506,9 @@ Class HellblazerWarheads : SWWMAmmo { Default { - //$Title Hellblazer Warhead - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerWarhead.png - //$Icon ammo Tag "$T_HELLNUKE"; SWWMAmmo.PickupTag "HELLNUKE"; Stamina 40000; - Inventory.Icon "graphics/HUD/Icons/A_HellblazerWarhead.png"; Inventory.Amount 1; Inventory.MaxAmount 2; Ammo.BackpackAmount 0; @@ -670,10 +531,6 @@ Class HellblazerWarheadMag : HellblazerWarheads { Default { - //$Title Hellblazer Warhead Mag - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_HellblazerWarhead.png - //$Icon ammo Inventory.PickupMessage "$T_HELLNUKEMAG"; Inventory.Amount 2; +SWWMAMMO.USEPICKUPMSG; @@ -690,14 +547,9 @@ Class SparkUnit : SWWMAmmo { Default { - //$Title Spark Unit - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Sparkster.png - //$Icon ammo Tag "$T_SPARKUNIT"; SWWMAmmo.PickupTag "SPARKUNIT"; Stamina 50000; - Inventory.Icon "graphics/HUD/Icons/A_Sparkster.png"; Inventory.Amount 1; Inventory.MaxAmount 8; Ammo.BackpackAmount 1; @@ -720,10 +572,6 @@ Class SparkUnit2 : SparkUnit { Default { - //$Title 2x Spark Unit - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Sparkster.png - //$Icon ammo Inventory.Amount 2; Radius 8; } @@ -737,14 +585,9 @@ Class SilverBulletAmmo : SWWMAmmo { Default { - //$Title Silver Bullet Mag (XSB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBullet.png - //$Icon ammo Tag "$T_XSBMAG"; SWWMAmmo.PickupTag "XSBMAG"; Stamina 70000; - Inventory.Icon "graphics/HUD/Icons/A_SilverBullet.png"; Inventory.Amount 1; Inventory.MaxAmount 3; Ammo.BackpackAmount 0; @@ -769,14 +612,9 @@ Class SilverBulletAmmo2 : SWWMAmmo { Default { - //$Title Silver Bullet Mag (FCB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBullet2.png - //$Icon ammo Tag "$T_FCBMAG"; SWWMAmmo.PickupTag "FCBMAG"; Stamina 80000; - Inventory.Icon "graphics/HUD/Icons/A_SilverBullet2.png"; Inventory.Amount 1; Inventory.MaxAmount 2; Ammo.BackpackAmount 0; @@ -801,14 +639,9 @@ Class SilverBullets : MagAmmo { Default { - //$Title Silver Bullet Round (XSB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png - //$Icon ammo Tag "$T_XSBBULLET"; MagAmmo.PickupTag "XSBBULLET"; Stamina -12000; - Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet.png"; MagAmmo.ParentAmmo "SilverBulletAmmo"; MagAmmo.ClipSize 5; Inventory.MaxAmount 5; @@ -828,10 +661,6 @@ Class SilverBullets_2 : SilverBullets { Default { - //$Title 2x Silver Bullet Round (XSB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png - //$Icon ammo Inventory.Amount 2; Radius 6; Height 24; @@ -841,10 +670,6 @@ Class SilverBullets_3 : SilverBullets { Default { - //$Title 3x Silver Bullet Round (XSB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png - //$Icon ammo Inventory.Amount 3; Radius 6; Height 24; @@ -854,14 +679,9 @@ Class SilverBullets2 : MagAmmo { Default { - //$Title Silver Bullet Round (FCB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png - //$Icon ammo Tag "$T_FCBBULLET"; MagAmmo.PickupTag "FCBBULLET"; Stamina -15000; - Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet2.png"; MagAmmo.ParentAmmo "SilverBulletAmmo2"; MagAmmo.ClipSize 5; Inventory.MaxAmount 5; @@ -881,10 +701,6 @@ Class SilverBullets2_2 : SilverBullets2 { Default { - //$Title 2x Silver Bullet Round (FCB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png - //$Icon ammo Inventory.Amount 2; Radius 6; Height 24; @@ -894,10 +710,6 @@ Class SilverBullets2_3 : SilverBullets2 { Default { - //$Title 3x Silver Bullet Round (FCB) - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png - //$Icon ammo Inventory.Amount 3; Radius 6; Height 24; @@ -912,14 +724,9 @@ Class CandyGunAmmo : SWWMAmmo { Default { - //$Title Candy Gun Mag - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_CandyGun.png - //$Icon ammo Tag "$T_CANDYMAG"; SWWMAmmo.PickupTag "CANDYMAG"; Stamina 100000; - Inventory.Icon "graphics/HUD/Icons/A_CandyGun.png"; Inventory.Amount 1; Inventory.MaxAmount 1; Ammo.BackpackAmount 0; @@ -944,14 +751,9 @@ Class CandyGunBullets : MagAmmo { Default { - //$Title Candy Gun Round - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_CandyBullet.png - //$Icon ammo Tag "$T_CANDYBULLET"; MagAmmo.PickupTag "CANDYBULLET"; Stamina -14000; - Inventory.Icon "graphics/HUD/Icons/A_CandyBullet.png"; MagAmmo.ParentAmmo "CandyGunAmmo"; MagAmmo.ClipSize 7; Inventory.MaxAmount 7; @@ -971,10 +773,6 @@ Class CandyGunBullets2 : CandyGunBullets { Default { - //$Title 2x Candy Gun Round - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_CandyBullet.png - //$Icon ammo Inventory.Amount 2; Radius 2.5; } @@ -983,10 +781,6 @@ Class CandyGunBullets3 : CandyGunBullets { Default { - //$Title 2x Candy Gun Round - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_CandyBullet.png - //$Icon ammo Inventory.Amount 3; Radius 3; } @@ -999,7 +793,6 @@ Class CandyGunSpares : SWWMAmmo Tag "$T_CANDYSPARE"; SWWMAmmo.PickupTag "CANDYSPARE"; Stamina 600000; - Inventory.Icon "graphics/HUD/Icons/W_CandyGun.png"; Inventory.Amount 1; Inventory.MaxAmount 4; Ammo.BackpackAmount 0; @@ -1034,15 +827,10 @@ Class YnykronAmmo : SWWMAmmo { Default { - //$Title Ynykron Ammo - //$Group Ammo - //$Sprite graphics/HUD/Icons/A_Ynykron.png - //$Icon ammo Tag "$T_YNYKRONAMMO"; SWWMAmmo.PickupTag "YNYKRONAMMO"; Inventory.PickupSound "misc/ammo_pkup_vip"; Stamina -3000000; - Inventory.Icon "graphics/HUD/Icons/A_Ynykron.png"; Inventory.Amount 1; Inventory.MaxAmount 1; Ammo.BackpackAmount 0; diff --git a/zscript/items/swwm_armor.zsc b/zscript/items/swwm_armor.zsc index a40628ec2..a9cf7d88d 100644 --- a/zscript/items/swwm_armor.zsc +++ b/zscript/items/swwm_armor.zsc @@ -47,10 +47,6 @@ Class ArmorNuggetItem : SWWMSpareArmor Default { - //$Title Armor Nugget - //$Group Armor - //$Sprite graphics/HUD/Icons/I_ArmorNugget.png - //$Icon armour Tag "$T_NUGGETA"; Stamina 1200; Inventory.PickupMessage "$T_NUGGETA"; @@ -107,10 +103,6 @@ Class BlastSuitItem : SWWMSpareArmor } Default { - //$Title Blast Suit - //$Group Armor - //$Sprite graphics/HUD/Icons/I_BlastSuit.png - //$Icon armour Tag "$T_BLASTSUIT"; Stamina 40000; Inventory.Icon "graphics/HUD/Icons/I_BlastSuit.png"; @@ -163,10 +155,6 @@ Class WarArmorItem : SWWMSpareArmor } Default { - //$Title War Armor - //$Group Armor - //$Sprite graphics/HUD/Icons/I_WarArmor.png - //$Icon armour Tag "$T_WARARMOR"; Stamina 100000; Inventory.Icon "graphics/HUD/Icons/I_WarArmor.png"; diff --git a/zscript/items/swwm_health.zsc b/zscript/items/swwm_health.zsc index 6fdc89acc..a61358dab 100644 --- a/zscript/items/swwm_health.zsc +++ b/zscript/items/swwm_health.zsc @@ -91,10 +91,6 @@ Class HealthNuggetItem : SWWMHealth } Default { - //$Title Health Nugget - //$Group Health - //$Sprite graphics/HUD/Icons/I_HealthNugget.png - //$Icon health Tag "$T_NUGGETH"; Stamina 500; Inventory.PickupMessage "$T_NUGGETH"; @@ -130,10 +126,6 @@ Class TetraHealthItem : SWWMHealth } Default { - //$Title Health Tetrahedron - //$Group Health - //$Sprite graphics/HUD/Icons/I_HealthTetra.png - //$Icon health Tag "$T_TETRAHEALTH"; Stamina 2000; Inventory.Icon "graphics/HUD/Icons/I_HealthTetra.png"; @@ -161,10 +153,6 @@ Class CubeHealthItem : SWWMHealth } Default { - //$Title Health Cube - //$Group Health - //$Sprite graphics/HUD/Icons/I_HealthCube.png - //$Icon health Tag "$T_CUBEHEALTH"; Stamina 4000; Inventory.Icon "graphics/HUD/Icons/I_HealthCube.png"; @@ -210,10 +198,6 @@ Class RefresherItem : SWWMHealth } Default { - //$Title Refresher - //$Group Health - //$Sprite graphics/HUD/Icons/I_Refresher.png - //$Icon health Tag "$T_REFRESHER"; Stamina 160000; Inventory.Icon "graphics/HUD/Icons/I_Refresher.png"; diff --git a/zscript/items/swwm_powerups.zsc b/zscript/items/swwm_powerups.zsc index f68875e00..3a140327b 100644 --- a/zscript/items/swwm_powerups.zsc +++ b/zscript/items/swwm_powerups.zsc @@ -211,10 +211,6 @@ Class GrilledCheeseSandwich : Inventory Default { - //$Title Grilled Cheese Sandwich - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Sandwich.png - //$Icon powerup Tag "$T_SANDWICH"; Stamina 800000; Inventory.Icon "graphics/HUD/Icons/I_Sandwich.png"; @@ -470,10 +466,6 @@ Class GhostArtifact : Inventory Default { - //$Title Ghost Artifact - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Ghost.png - //$Icon powerup Tag "$T_GHOSTARTI"; Stamina 120000; Inventory.Icon "graphics/HUD/Icons/I_Ghost.png"; @@ -687,10 +679,6 @@ Class GravitySuppressor : Inventory Default { - //$Title Gravity Suppressor - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Gravity.png - //$Icon powerup Tag "$T_GRAVITYS"; Stamina 150000; Inventory.Icon "graphics/HUD/Icons/I_Gravity.png"; @@ -939,10 +927,6 @@ Class FuckingInvinciball : Inventory Default { - //$Title Invinciball - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Invinciball.png - //$Icon powerup Tag "$T_INVINCIBALL"; Stamina 640000; Inventory.Icon "graphics/HUD/Icons/I_Invinciball.png"; @@ -1231,10 +1215,6 @@ Class Ragekit : Inventory Default { - //$Title Ragekit - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Ragekit.png - //$Icon powerup Tag "$T_RAGEKIT"; Stamina 500000; Inventory.Icon "graphics/HUD/Icons/I_Ragekit.png"; @@ -1307,12 +1287,7 @@ Class Omnisight : Inventory } Default { - //$Title Omnisight - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Omnisight.png - //$Icon powerup Tag "$T_OMNISIGHT"; - Inventory.Icon "graphics/HUD/Icons/I_Omnisight.png"; Inventory.PickupSound "misc/p_pkup"; Inventory.PickupMessage "$I_OMNISIGHT"; Inventory.RestrictedTo "Demolitionist"; @@ -1988,10 +1963,6 @@ Class SWWMLamp : Inventory } Default { - //$Title Lamp - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_LampOff.png - //$Icon powerup Tag "$T_LAMP"; Inventory.Icon "graphics/HUD/Icons/I_LampOff.png"; Inventory.PickupSound "misc/p_pkup"; @@ -2285,10 +2256,6 @@ Class EBarrier : Inventory Default { - //$Title Barrier - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Barrier.png - //$Icon powerup Tag "$T_BARRIER"; Stamina 80000; Inventory.Icon "graphics/HUD/Icons/I_Barrier.png"; @@ -2969,10 +2936,6 @@ Class Mykradvo : Inventory Default { - //$Title Mykradvo - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Mykradvo.png - //$Icon powerup Tag "$T_MYKRADVO"; Stamina -1200000; Inventory.Icon "graphics/HUD/Icons/I_Mykradvo.png"; @@ -3183,10 +3146,6 @@ Class SafetyTether : Inventory Default { - //$Title Safety Tether - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Safety.png - //$Icon powerup Tag "$T_SAFETY"; Stamina 240000; Inventory.Icon "graphics/HUD/Icons/I_Safety.png"; @@ -3400,10 +3359,6 @@ Class AngerySigil : Inventory } Default { - //$Title Devastation Sigil - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Devastation.png - //$Icon powerup Tag "$T_DEVASTATION"; Stamina -1500000; Inventory.Icon "graphics/HUD/Icons/I_Devastation.png"; @@ -3679,10 +3634,6 @@ Class DivineSprite : Inventory Default { - //$Title Divine Sprite - //$Group Powerups - //$Sprite graphics/HUD/Icons/I_Divine.png - //$Icon powerup Tag "$T_DIVINE"; Stamina -3600000; Inventory.Icon "graphics/HUD/Icons/I_Divine.png"; diff --git a/zscript/weapons/swwm_baseweapon.zsc b/zscript/weapons/swwm_baseweapon.zsc index aaedb4b00..6e3345a01 100644 --- a/zscript/weapons/swwm_baseweapon.zsc +++ b/zscript/weapons/swwm_baseweapon.zsc @@ -343,10 +343,6 @@ Class SWWMWeapon : Weapon abstract virtual ui void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { } - // for alt hud - virtual ui void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - } // HUD-side ticking virtual ui void HudTick() { diff --git a/zscript/weapons/swwm_blazeit.zsc b/zscript/weapons/swwm_blazeit.zsc index fb13efb5d..701e0772e 100644 --- a/zscript/weapons/swwm_blazeit.zsc +++ b/zscript/weapons/swwm_blazeit.zsc @@ -571,16 +571,11 @@ Class Hellblazer : SWWMWeapon Default { - //$Title Hellblazer - //$Group Weapons - //$Sprite graphics/HUD/Icons/W_Hellblazer.png - //$Icon weapon Tag "$T_HELLBLAZER"; Inventory.PickupMessage "$I_HELLBLAZER"; Obituary "$O_HELLBLAZER"; SWWMWeapon.Tooltip "$TT_HELLBLAZER"; SWWMWeapon.GetLine "gethellblazer"; - Inventory.Icon "graphics/HUD/Icons/W_Hellblazer.png"; Weapon.SlotNumber 6; Weapon.SelectionOrder 700; Weapon.UpSound "hellblazer/select"; diff --git a/zscript/weapons/swwm_cbt.zsc b/zscript/weapons/swwm_cbt.zsc index e11f0129f..f96c37cdb 100644 --- a/zscript/weapons/swwm_cbt.zsc +++ b/zscript/weapons/swwm_cbt.zsc @@ -755,16 +755,11 @@ Class Wallbuster : SWWMWeapon Default { - //$Title Wallbuster - //$Group Weapons - //$Sprite graphics/HUD/Icons/W_Wallbuster.png - //$Icon weapon Tag "$T_WALLBUSTER"; Inventory.PickupMessage "$I_WALLBUSTER"; Obituary "$O_WALLBUSTER_RED"; SWWMWeapon.Tooltip "$TT_WALLBUSTER"; SWWMWeapon.GetLine "getwallbuster"; - Inventory.Icon "graphics/HUD/Icons/W_Wallbuster.png"; Weapon.SlotNumber 4; Weapon.SelectionOrder 400; Weapon.UpSound "wallbuster/select"; diff --git a/zscript/weapons/swwm_cbt_ui.zsc b/zscript/weapons/swwm_cbt_ui.zsc index 8ef1de769..e9f463dff 100644 --- a/zscript/weapons/swwm_cbt_ui.zsc +++ b/zscript/weapons/swwm_cbt_ui.zsc @@ -24,10 +24,10 @@ Class WallbusterReloadMenu : GenericMenu return; } MainWindow = TexMan.CheckForTexture("graphics/HUD/WallbusterMenu.png",TexMan.Type_Any); - AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/RedShell.png",TexMan.Type_Any); - AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/GreenShell.png",TexMan.Type_Any); - AmmoIcon[2] = TexMan.CheckForTexture("graphics/HUD/BlueShell.png",TexMan.Type_Any); - AmmoIcon[3] = TexMan.CheckForTexture("graphics/HUD/PurpleShell.png",TexMan.Type_Any); + AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/MenuShellRed.png",TexMan.Type_Any); + AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/MenuShellGreen.png",TexMan.Type_Any); + AmmoIcon[2] = TexMan.CheckForTexture("graphics/HUD/MenuShellBlue.png",TexMan.Type_Any); + AmmoIcon[3] = TexMan.CheckForTexture("graphics/HUD/MenuShellPurple.png",TexMan.Type_Any); mSmallFont = Font.GetFont('TewiFont'); mTinyFont = Font.GetFont('MiniwiFont'); MenuSound("menu/demotab"); @@ -291,7 +291,7 @@ Class WallbusterReloadMenu : GenericMenu Super.Drawer(); double hs = max(min(floor(Screen.GetWidth()/640.),floor(Screen.GetHeight()/400.)),1.); Vector2 ss = (Screen.GetWidth(),Screen.GetHeight())/hs; - Vector2 origin = (ss.x-132,ss.y-26)/2.; + Vector2 origin = (ss.x-120,ss.y-28)/2.; Screen.DrawTexture(MainWindow,false,origin.x,origin.y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); int ox = 27, oy = 2; for ( int i=0; i<4; i++ ) @@ -299,18 +299,16 @@ Class WallbusterReloadMenu : GenericMenu Screen.DrawTexture(AmmoIcon[i],false,origin.x+ox,origin.y+oy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(i==sel0)?Color(0,0,0,0):Color(128,0,0,0)); String astr = String.Format("%3d",players[consoleplayer].mo.CountInv(types[i])-AmmoSets[i]); Screen.DrawText(mSmallFont,Font.CR_FIRE,origin.x+ox-(mSmallFont.StringWidth(astr)+1),origin.y+oy-1,astr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(i==sel0)?Color(0,0,0,0):Color(128,0,0,0)); - ox += 33; + ox += 27; } - // pointer (▸) - Screen.DrawChar(mSmallFont,Font.CR_GREEN,origin.x+2+33*sel0,origin.y+1,0x25B8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); int siz = queue.Size()-1; - ox = 2+siz*5+(siz/5); - oy = 15; - for ( int i=0; i<=siz; i++ ) + ox = 2; + oy = 17; + for ( int i=siz; i>=0; i-- ) { Screen.DrawTexture(AmmoIcon[queue[i]],false,origin.x+ox,origin.y+oy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - ox -= 5; - if ( !((i+1)%5) ) ox--; + ox += 4; + if ( !((siz-(i-1))%5) ) ox += 4; } // text stuff String str; @@ -334,7 +332,7 @@ Class WallbusterReloadMenu : GenericMenu sw = mTinyFont.StringWidth(str); x = floor((ss.x-sw)/2.); Screen.DrawText(mTinyFont,Font.CR_GOLD,x,y,str,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - y = origin.y+36; + y = origin.y+38; boxw = 0; for ( int i=0; igametic)&&((failtime-gametic)%8>=4); - Screen.DrawTexture(AltAmmoBar,false,bx-5,by-(2+ch),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcY,20.-ch,DTA_SrcHeight,ch,DTA_DestHeightF,ch,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltAmmoBar,false,bx-6,by-(3+ch),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcY,20.-ch,DTA_SrcHeight,ch,DTA_DestHeightF,ch,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); - } -} - -// Explodium Gun -extend Class ExplodiumGun -{ - ui TextureID AltWeaponBox, AltRoundTex; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/ExplodiumDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex ) AltRoundTex = TexMan.CheckForTexture("graphics/AltHUD/ExplodiumRound.png",TexMan.Type_Any); - Screen.DrawTexture(AltWeaponBox,false,bx-10,by-21,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( chambered ) Screen.DrawTexture(AltRoundTex,false,bx-8,by-19,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - for ( int i=0; i types[] = {"RedShell","GreenShell","BlueShell","PurpleShell","BlackShell","GoldShell"}; - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/SpreadgunDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex[0] ) AltRoundTex[0] = TexMan.CheckForTexture("graphics/AltHUD/ShellRed.png",TexMan.Type_Any); - if ( !AltRoundTex[1] ) AltRoundTex[1] = TexMan.CheckForTexture("graphics/AltHUD/ShellGreen.png",TexMan.Type_Any); - if ( !AltRoundTex[2] ) AltRoundTex[2] = TexMan.CheckForTexture("graphics/AltHUD/ShellBlue.png",TexMan.Type_Any); - if ( !AltRoundTex[3] ) AltRoundTex[3] = TexMan.CheckForTexture("graphics/AltHUD/ShellPurple.png",TexMan.Type_Any); - if ( !AltRoundTex[4] ) AltRoundTex[4] = TexMan.CheckForTexture("graphics/AltHUD/ShellBlack.png",TexMan.Type_Any); - if ( !AltRoundTex[5] ) AltRoundTex[5] = TexMan.CheckForTexture("graphics/AltHUD/ShellGold.png",TexMan.Type_Any); - Screen.DrawTexture(AltWeaponBox,false,bx-10,by-7,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( !chambered ) return; - for ( int i=0; i<6; i++ ) - { - if ( loadammo != types[i] ) continue; - Screen.DrawTexture(AltRoundTex[i],false,bx-8,by-5,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(fired?128:0,0,0,0)); - break; - } - } -} - -// Wallbuster (less of a fuck in the alt hud) -extend Class Wallbuster -{ - ui TextureID AltWeaponBox, AltRoundTex[4], AltCursorTex; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - static const Class types[] = {"RedShell","GreenShell","BlueShell","PurpleShell"}; - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/WallbusterDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex[0] ) AltRoundTex[0] = TexMan.CheckForTexture("graphics/AltHUD/ShellRed.png",TexMan.Type_Any); - if ( !AltRoundTex[1] ) AltRoundTex[1] = TexMan.CheckForTexture("graphics/AltHUD/ShellGreen.png",TexMan.Type_Any); - if ( !AltRoundTex[2] ) AltRoundTex[2] = TexMan.CheckForTexture("graphics/AltHUD/ShellBlue.png",TexMan.Type_Any); - if ( !AltRoundTex[3] ) AltRoundTex[3] = TexMan.CheckForTexture("graphics/AltHUD/ShellPurple.png",TexMan.Type_Any); - if ( !AltCursorTex ) AltCursorTex = TexMan.CheckForTexture("graphics/AltHUD/WallbusterCursor.png",TexMan.Type_Any); - Screen.DrawTexture(AltWeaponBox,false,bx-12,by-75,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int curpos = 73-(rotation[5]*15+rotation[rotation[5]]*2); - Screen.DrawTexture(AltCursorTex,false,bx-10,by-curpos,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - for ( int i=0; i<25; i++ ) - { - curpos = 73-(i*2+(i/5)*5); - if ( !loaded[i] ) continue; - for ( int j=0; j<4; j++ ) - { - if ( loaded[i] != types[j] ) continue; - Screen.DrawTexture(AltRoundTex[j],false,bx-8,by-curpos,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(fired[i]?128:0,0,0,0)); - break; - } - } - } -} - -// Eviscerator -extend Class Eviscerator -{ - ui TextureID AltWeaponBox, AltRoundTex, AltSpreadIcon[2]; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/EvisceratorDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex ) AltRoundTex = TexMan.CheckForTexture("graphics/AltHUD/EvisceratorRound.png",TexMan.Type_Any); - if ( !AltSpreadIcon[0] ) AltSpreadIcon[0] = TexMan.CheckForTexture("graphics/AltHUD/EvisceratorWide.png",TexMan.Type_Any); - if ( !AltSpreadIcon[1] ) AltSpreadIcon[1] = TexMan.CheckForTexture("graphics/AltHUD/EvisceratorTight.png",TexMan.Type_Any); - Screen.DrawTexture(AltWeaponBox,false,bx-10,by-20,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AltRoundTex,false,bx-8,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,chambered?Color(0,0,0,0):Color(128,0,0,0)); - Screen.DrawTexture(AltSpreadIcon[extended],false,bx-8,by-18,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - } -} - -// Hellblazer -extend Class Hellblazer -{ - ui TextureID AltWeaponBox, AltRoundTex[4]; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - static const Class types[] = {"HellblazerMissiles","HellblazerCrackshots","HellblazerRavagers","HellblazerWarheads"}; - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/HellblazerDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex[0] ) AltRoundTex[0] = TexMan.CheckForTexture("graphics/AltHUD/HellblazerMissile.png",TexMan.Type_Any); - if ( !AltRoundTex[1] ) AltRoundTex[1] = TexMan.CheckForTexture("graphics/AltHUD/HellblazerCrackshot.png",TexMan.Type_Any); - if ( !AltRoundTex[2] ) AltRoundTex[2] = TexMan.CheckForTexture("graphics/AltHUD/HellblazerRavager.png",TexMan.Type_Any); - if ( !AltRoundTex[3] ) AltRoundTex[3] = TexMan.CheckForTexture("graphics/AltHUD/HellblazerWarhead.png",TexMan.Type_Any); - Screen.DrawTexture(AltWeaponBox,false,bx-13,by-29,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int curtype = 0; - for ( int i=0; i<4; i++ ) - { - if ( loadammo != types[i] ) continue; - curtype = i; - break; - } - int yy = 27; - switch ( curtype ) - { - case 0: - for ( int i=0; i<6; i++ ) - { - Screen.DrawTexture(AltRoundTex[0],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - yy -= 4; - } - break; - case 1: - yy = 25; - for ( int i=0; i<3; i++ ) - { - Screen.DrawTexture(AltRoundTex[1],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - yy -= 8; - } - break; - case 2: - yy = 25; - for ( int i=0; i<3; i++ ) - { - Screen.DrawTexture(AltRoundTex[2],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - yy -= 8; - } - break; - case 3: - yy = 23; - for ( int i=0; i<2; i++ ) - { - Screen.DrawTexture(AltRoundTex[3],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - yy -= 12; - } - break; - } - } -} - -// Biospark Carbine -extend Class Sparkster -{ - ui TextureID AltWeaponBox, AltRoundTex[2]; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - if ( !AltWeaponBox ) AltWeaponBox = TexMan.CheckForTexture("graphics/AltHUD/BiosparkDisplay.png",TexMan.Type_Any); - if ( !AltRoundTex[0] ) AltRoundTex[0] = TexMan.CheckForTexture("graphics/AltHUD/BiosparkShot.png",TexMan.Type_Any); - if ( !AltRoundTex[1] ) AltRoundTex[1] = TexMan.CheckForTexture("graphics/AltHUD/BiosparkRed.png",TexMan.Type_Any); - bool blinking = (failtime>gametic)&&((failtime-gametic)%16>=8); - if ( doublestacc ) - { - Screen.DrawTexture(AltWeaponBox,false,bx-7,by-26,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AltWeaponBox,false,bx-7,by-13,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( nomag ) return; - bool bRed; - int yy = 24; - for ( int i=0; i<8; i++ ) - { - if ( clipcount <= i ) Screen.DrawTexture(AltRoundTex[0],false,bx-4,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Desaturate,255,DTA_ColorOverlay,Color(160,0,0,0)); - else - { - bRed = ((i>=4)&&(clipcount<6)||(i<4)&&(clipcount<2)); - Screen.DrawTexture(AltRoundTex[bRed],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(blinking?96:0,0,0,0)); - } - yy -= 2; - if ( i == 3 ) yy -= 5; - } - } - else - { - Screen.DrawTexture(AltWeaponBox,false,bx-7,by-13,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( nomag ) return; - bool bRed; - int yy = 11; - for ( int i=0; i<4; i++ ) - { - if ( clipcount <= i ) Screen.DrawTexture(AltRoundTex[0],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Desaturate,255,DTA_ColorOverlay,Color(160,0,0,0)); - else - { - bRed = (clipcount<2); - Screen.DrawTexture(AltRoundTex[bRed],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(blinking?96:0,0,0,0)); - } - yy -= 2; - } - } - } -} - -// Silver Bullet JET -extend Class SilverBullet -{ - ui TextureID AltWeaponBox[2], AltZoomBar, AltRoundTex[4]; - - override void DrawWeaponAlt( double TicFrac, double bx, double by, double hs, Vector2 ss ) - { - if ( !AltWeaponBox[0] ) AltWeaponBox[0] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletDisplay.png",TexMan.Type_Any); - if ( !AltWeaponBox[1] ) AltWeaponBox[1] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletZoomDisplay.png",TexMan.Type_Any); - if ( !AltZoomBar ) AltZoomBar = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletZoomBar.png",TexMan.Type_Any); - if ( !AltRoundTex[0] ) AltRoundTex[0] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletXSB.png",TexMan.Type_Any); - if ( !AltRoundTex[1] ) AltRoundTex[1] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletFCB.png",TexMan.Type_Any); - if ( !AltRoundTex[2] ) AltRoundTex[2] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletXSBCasing.png",TexMan.Type_Any); - if ( !AltRoundTex[3] ) AltRoundTex[3] = TexMan.CheckForTexture("graphics/AltHUD/SilverBulletFCBCasing.png",TexMan.Type_Any); - double zl = clamp(AltZoomInter?AltZoomInter.GetValue(TicFrac):(zoomlevel*10),0.,160.); - if ( zl >= 10. ) - { - Screen.DrawTexture(AltWeaponBox[1],false,bx-15,by-28,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - double zw = zl*10./160.; - Screen.DrawTexture(AltZoomBar,false,bx-12,by-25,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw,DTA_ColorOverlay,Color(255,0,0,0)); - Screen.DrawTexture(AltZoomBar,false,bx-13,by-26,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw); - } - Screen.DrawTexture(AltWeaponBox[0],false,bx-15,by-18,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( chambered ) Screen.DrawTexture(AltRoundTex[fcbchambered+fired*2],false,bx-13,by-16,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - for ( int i=0; igametic)&&((failtime-gametic)%8>=4); - Screen.DrawTexture(AmmoBar,false,bx-7,by-52,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ClipTop,ct,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-35,by-12,String.Format("%3d%%",chg),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); + Screen.DrawTexture(AmmoBar,false,bx-5,by-(2+ch),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcY,20.-ch,DTA_SrcHeight,ch,DTA_DestHeightF,ch,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(AmmoBar,false,bx-6,by-(3+ch),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_SrcY,20.-ch,DTA_SrcHeight,ch,DTA_DestHeightF,ch,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); } } // Explodium Gun extend Class ExplodiumGun { - ui TextureID WeaponBox; + ui TextureID WeaponBox, RoundTex; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/ExplodiumDisplay.png",TexMan.Type_Any); - Screen.DrawTexture(WeaponBox,false,bx-24,by-22,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( chambered ) Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-22,by-20,"⁺¹",DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Spacing,-1); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-19,by-13,String.Format("%d",max(clipcount,0)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( !RoundTex ) RoundTex = TexMan.CheckForTexture("graphics/HUD/ExplodiumRound.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-10,by-21,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( chambered ) Screen.DrawTexture(RoundTex,false,bx-8,by-19,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + for ( int i=0; i types[] = {"RedShell","GreenShell","BlueShell","PurpleShell","BlackShell","GoldShell"}; - if ( !WeaponBox ) - { - WeaponBox = TexMan.CheckForTexture("graphics/HUD/SpreadgunDisplay.png",TexMan.Type_Any); - AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/RedShell.png",TexMan.Type_Any); - AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/GreenShell.png",TexMan.Type_Any); - AmmoIcon[2] = TexMan.CheckForTexture("graphics/HUD/BlueShell.png",TexMan.Type_Any); - AmmoIcon[3] = TexMan.CheckForTexture("graphics/HUD/PurpleShell.png",TexMan.Type_Any); - AmmoIcon[4] = TexMan.CheckForTexture("graphics/HUD/BlackShell.png",TexMan.Type_Any); - AmmoIcon[5] = TexMan.CheckForTexture("graphics/HUD/GoldShell.png",TexMan.Type_Any); - LoadedIcon[0] = TexMan.CheckForTexture("graphics/HUD/LoadedRedShell.png",TexMan.Type_Any); - LoadedIcon[1] = TexMan.CheckForTexture("graphics/HUD/LoadedGreenShell.png",TexMan.Type_Any); - LoadedIcon[2] = TexMan.CheckForTexture("graphics/HUD/LoadedBlueShell.png",TexMan.Type_Any); - LoadedIcon[3] = TexMan.CheckForTexture("graphics/HUD/LoadedPurpleShell.png",TexMan.Type_Any); - LoadedIcon[4] = TexMan.CheckForTexture("graphics/HUD/LoadedBlackShell.png",TexMan.Type_Any); - LoadedIcon[5] = TexMan.CheckForTexture("graphics/HUD/LoadedGoldShell.png",TexMan.Type_Any); - } - Screen.DrawTexture(WeaponBox,false,bx-46,by-63,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int ox = 6; - int oy = 11; - for ( int i=0; i<6; i++ ) - { - Screen.DrawTexture(AmmoIcon[i],false,bx-ox,by-oy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(types[i]==nextammo)?Color(0,0,0,0):Color(128,0,0,0)); - String astr = String.Format("%3d",Owner.CountInv(types[i])); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-ox-(SWWMStatusBar(StatusBar).mSmallFont.StringWidth(astr)+1),by-oy-1,astr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(types[i]==nextammo)?Color(0,0,0,0):Color(128,0,0,0)); - oy += 10; - } + if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/SpreadgunDisplay.png",TexMan.Type_Any); + if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/ShellRed.png",TexMan.Type_Any); + if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/ShellGreen.png",TexMan.Type_Any); + if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/ShellBlue.png",TexMan.Type_Any); + if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/ShellPurple.png",TexMan.Type_Any); + if ( !RoundTex[4] ) RoundTex[4] = TexMan.CheckForTexture("graphics/HUD/ShellBlack.png",TexMan.Type_Any); + if ( !RoundTex[5] ) RoundTex[5] = TexMan.CheckForTexture("graphics/HUD/ShellGold.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-10,by-7,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); if ( !chambered ) return; for ( int i=0; i<6; i++ ) { if ( loadammo != types[i] ) continue; - Screen.DrawTexture(LoadedIcon[i],false,bx-44,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fired?Color(128,0,0,0):Color(0,0,0,0)); + Screen.DrawTexture(RoundTex[i],false,bx-8,by-5,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(fired?128:0,0,0,0)); break; } } } -// Wallbuster (oh good lord why) +// Wallbuster (less of a fuck in the alt hud) extend Class Wallbuster { - ui TextureID WeaponBox, AmmoIcon[4], LoadIcon[4], UsedIcon[4], EmptyIcon; + ui TextureID WeaponBox, RoundTex[4], CursorTex; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { static const Class types[] = {"RedShell","GreenShell","BlueShell","PurpleShell"}; - /* - (Layout of indices) - - 0 - 4 1 - 3 2 - L 9 - K M 8 5 - O N 7 6 - - H D - G I C E - F J B A - - */ - static const int barrelposx[] = - { - 29,24,26,32,34, - 10,12,18,20,15, - 17,23,25,20,15, - 41,43,38,33,35, - 48,43,38,40,46 - }; - static const int barrelposy[] = - { - 46,42,36,36,42, - 31,25,25,31,35, - 8, 8,14,18,14, - 8,14,18,14, 8, - 31,35,31,25,25 - }; - if ( !WeaponBox ) - { - WeaponBox = TexMan.CheckForTexture("graphics/HUD/WallbusterDisplay.png",TexMan.Type_Any); - AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/RedShell.png",TexMan.Type_Any); - AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/GreenShell.png",TexMan.Type_Any); - AmmoIcon[2] = TexMan.CheckForTexture("graphics/HUD/BlueShell.png",TexMan.Type_Any); - AmmoIcon[3] = TexMan.CheckForTexture("graphics/HUD/PurpleShell.png",TexMan.Type_Any); - LoadIcon[0] = TexMan.CheckForTexture("graphics/HUD/WallbusterRed.png",TexMan.Type_Any); - LoadIcon[1] = TexMan.CheckForTexture("graphics/HUD/WallbusterGreen.png",TexMan.Type_Any); - LoadIcon[2] = TexMan.CheckForTexture("graphics/HUD/WallbusterBlue.png",TexMan.Type_Any); - LoadIcon[3] = TexMan.CheckForTexture("graphics/HUD/WallbusterPurple.png",TexMan.Type_Any); - UsedIcon[0] = TexMan.CheckForTexture("graphics/HUD/WallbusterRedUsed.png",TexMan.Type_Any); - UsedIcon[1] = TexMan.CheckForTexture("graphics/HUD/WallbusterGreenUsed.png",TexMan.Type_Any); - UsedIcon[2] = TexMan.CheckForTexture("graphics/HUD/WallbusterBlueUsed.png",TexMan.Type_Any); - UsedIcon[3] = TexMan.CheckForTexture("graphics/HUD/WallbusterPurpleUsed.png",TexMan.Type_Any); - EmptyIcon = TexMan.CheckForTexture("graphics/HUD/WallbusterEmpty.png",TexMan.Type_Any); - } - Screen.DrawTexture(WeaponBox,false,bx-54,by-72,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - int ox = 6; - int oy = 60; - for ( int i=0; i<4; i++ ) - { - Screen.DrawTexture(AmmoIcon[i],false,bx-ox,by-oy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - String astr = String.Format("%3d",Owner.CountInv(types[i])); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-ox-(SWWMStatusBar(StatusBar).mSmallFont.StringWidth(astr)+1),by-oy-1,astr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - oy += 10; - if ( i == 1 ) - { - oy = 60; - ox = 33; - } - } - // and here's the big clusterdick + if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/WallbusterDisplay.png",TexMan.Type_Any); + if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/ShellRed.png",TexMan.Type_Any); + if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/ShellGreen.png",TexMan.Type_Any); + if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/ShellBlue.png",TexMan.Type_Any); + if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/ShellPurple.png",TexMan.Type_Any); + if ( !CursorTex ) CursorTex = TexMan.CheckForTexture("graphics/HUD/WallbusterCursor.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-12,by-75,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + int curpos = 73-(rotation[5]*15+rotation[rotation[5]]*2); + Screen.DrawTexture(CursorTex,false,bx-10,by-curpos,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); for ( int i=0; i<25; i++ ) { - int idx = i; - int group = idx/5; - // shift based on group rotation - int gidx = i%5; - gidx = (gidx-rotation[group]); - while ( gidx < 0 ) gidx += 5; - idx = gidx+group*5; - // shift based on full rotation - idx = (idx-rotation[5]*5); - while ( idx < 0 ) idx += 25; - if ( !loaded[i] ) - { - Screen.DrawTexture(EmptyIcon,false,bx-barrelposx[idx],by-barrelposy[idx],DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - continue; - } - int which = 0; + curpos = 73-(i*2+(i/5)*5); + if ( !loaded[i] ) continue; for ( int j=0; j<4; j++ ) { - if ( !(loaded[i] is types[j]) ) continue; - which = j; + if ( loaded[i] != types[j] ) continue; + Screen.DrawTexture(RoundTex[j],false,bx-8,by-curpos,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(fired[i]?128:0,0,0,0)); break; } - Screen.DrawTexture(fired[i]?UsedIcon[which]:LoadIcon[which],false,bx-barrelposx[idx],by-barrelposy[idx],DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); } } } @@ -194,42 +109,34 @@ extend Class Wallbuster // Eviscerator extend Class Eviscerator { - ui TextureID WeaponBox, AmmoIcon; + ui TextureID WeaponBox, RoundTex, SpreadIcon[2]; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/EvisceratorDisplay.png",TexMan.Type_Any); - if ( !AmmoIcon ) AmmoIcon = TexMan.CheckForTexture("graphics/HUD/EvisceratorShell.png",TexMan.Type_Any); - Screen.DrawTexture(WeaponBox,false,bx-46,by-16,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - String astr = String.Format("%d",Ammo1.Amount); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-14-(SWWMStatusBar(StatusBar).mSmallFont.StringWidth(astr)+1),by-14,astr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AmmoIcon,false,bx-14,by-14,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,chambered?Color(0,0,0,0):Color(128,0,0,0)); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_WHITE,bx-44,by-14,extended?"►":"",DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( !RoundTex ) RoundTex = TexMan.CheckForTexture("graphics/HUD/EvisceratorRound.png",TexMan.Type_Any); + if ( !SpreadIcon[0] ) SpreadIcon[0] = TexMan.CheckForTexture("graphics/HUD/EvisceratorWide.png",TexMan.Type_Any); + if ( !SpreadIcon[1] ) SpreadIcon[1] = TexMan.CheckForTexture("graphics/HUD/EvisceratorTight.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-10,by-20,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + Screen.DrawTexture(RoundTex,false,bx-8,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,chambered?Color(0,0,0,0):Color(128,0,0,0)); + Screen.DrawTexture(SpreadIcon[extended],false,bx-8,by-18,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); } } // Hellblazer extend Class Hellblazer { - ui TextureID WeaponBox, AmmoIcon[4], LoadedIcon[4]; + ui TextureID WeaponBox, RoundTex[4]; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { static const Class types[] = {"HellblazerMissiles","HellblazerCrackshots","HellblazerRavagers","HellblazerWarheads"}; - if ( !WeaponBox ) - { - WeaponBox = TexMan.CheckForTexture("graphics/HUD/HellblazerDisplay.png",TexMan.Type_Any); - AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/HellblazerMissile.png",TexMan.Type_Any); - AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/HellblazerCrackshot.png",TexMan.Type_Any); - AmmoIcon[2] = TexMan.CheckForTexture("graphics/HUD/HellblazerRavager.png",TexMan.Type_Any); - AmmoIcon[3] = TexMan.CheckForTexture("graphics/HUD/HellblazerWarhead.png",TexMan.Type_Any); - LoadedIcon[0] = TexMan.CheckForTexture("graphics/HUD/HellblazerMissileLoaded.png",TexMan.Type_Any); - LoadedIcon[1] = TexMan.CheckForTexture("graphics/HUD/HellblazerCrackshotLoaded.png",TexMan.Type_Any); - LoadedIcon[2] = TexMan.CheckForTexture("graphics/HUD/HellblazerRavagerLoaded.png",TexMan.Type_Any); - LoadedIcon[3] = TexMan.CheckForTexture("graphics/HUD/HellblazerWarheadLoaded.png",TexMan.Type_Any); - } - double xx = -56, yy = -49; - Screen.DrawTexture(WeaponBox,false,bx+xx,by+yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/HellblazerDisplay.png",TexMan.Type_Any); + if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/HellblazerMissile.png",TexMan.Type_Any); + if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/HellblazerCrackshot.png",TexMan.Type_Any); + if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/HellblazerRavager.png",TexMan.Type_Any); + if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/HellblazerWarhead.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-13,by-29,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); int curtype = 0; for ( int i=0; i<4; i++ ) { @@ -237,54 +144,38 @@ extend Class Hellblazer curtype = i; break; } - xx += 2; - yy += 2; - for ( int i=0; i<4; i++ ) - { - int amt = Owner.CountInv(types[i]); - String amtstr = String.Format("%3d",amt); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx+xx,by+yy,amtstr,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(types[i]==nextammo)?Color(0,0,0,0):Color(128,0,0,0)); - Screen.DrawTexture(AmmoIcon[i],false,bx+xx+19,by+yy+1,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,(types[i]==nextammo)?Color(0,0,0,0):Color(128,0,0,0)); - yy += 13; - if ( i%2 ) - { - yy -= 26; - xx += 28; - } - } - yy = -18; + int yy = 27; switch ( curtype ) { case 0: - xx = -54; for ( int i=0; i<6; i++ ) { - Screen.DrawTexture(LoadedIcon[0],false,bx+xx,by+yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(192,0,0,0):Color(0,0,0,0):magstate[i]?Color(224,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - xx += 9; + Screen.DrawTexture(RoundTex[0],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); + yy -= 4; } break; case 1: - xx = -49; + yy = 25; for ( int i=0; i<3; i++ ) { - Screen.DrawTexture(LoadedIcon[1],false,bx+xx,by+yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(192,0,0,0):Color(0,0,0,0):magstate[i]?Color(224,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - xx += 18; + Screen.DrawTexture(RoundTex[1],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); + yy -= 8; } break; case 2: - xx = -49; + yy = 25; for ( int i=0; i<3; i++ ) { - Screen.DrawTexture(LoadedIcon[2],false,bx+xx,by+yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(192,0,0,0):Color(0,0,0,0):magstate[i]?Color(224,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - xx += 18; + Screen.DrawTexture(RoundTex[2],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); + yy -= 8; } break; case 3: - xx = -45; + yy = 23; for ( int i=0; i<2; i++ ) { - Screen.DrawTexture(LoadedIcon[3],false,bx+xx,by+yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(192,0,0,0):Color(0,0,0,0):magstate[i]?Color(224,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); - xx += 27; + Screen.DrawTexture(RoundTex[3],false,bx-11,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,((i<=magpos)&&(i>=(magpos-preload)))?magstate[i]?Color(128,0,0,0):Color(0,0,0,0):magstate[i]?Color(160,0,0,0):Color(96,0,0,0),DTA_Desaturate,magstate[i]?192:0); + yy -= 12; } break; } @@ -294,36 +185,49 @@ extend Class Hellblazer // Biospark Carbine extend Class Sparkster { - ui TextureID WeaponBox, AmmoBar[6]; + ui TextureID WeaponBox, RoundTex[2]; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { - if ( !WeaponBox ) - { - WeaponBox = TexMan.CheckForTexture("graphics/HUD/BiosparkDisplay.png",TexMan.Type_Any); - AmmoBar[0] = TexMan.CheckForTexture("graphics/HUD/BiosparkBar.png",TexMan.Type_Any); - AmmoBar[1] = TexMan.CheckForTexture("graphics/HUD/BiosparkBarRed.png",TexMan.Type_Any); - AmmoBar[2] = TexMan.CheckForTexture("graphics/HUD/BiosparkBarGray.png",TexMan.Type_Any); - AmmoBar[3] = TexMan.CheckForTexture("graphics/HUD/BiosparkBarSlim.png",TexMan.Type_Any); - AmmoBar[4] = TexMan.CheckForTexture("graphics/HUD/BiosparkBarSlimRed.png",TexMan.Type_Any); - AmmoBar[5] = TexMan.CheckForTexture("graphics/HUD/BiosparkBarSlimGray.png",TexMan.Type_Any); - } - Screen.DrawTexture(WeaponBox,false,bx-28,by-28,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-26,by-25,String.Format("%2d",Ammo1.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( nomag ) return; + if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/BiosparkDisplay.png",TexMan.Type_Any); + if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/BiosparkShot.png",TexMan.Type_Any); + if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/BiosparkRed.png",TexMan.Type_Any); bool blinking = (failtime>gametic)&&((failtime-gametic)%16>=8); if ( doublestacc ) { - Screen.DrawTexture(AmmoBar[5],false,bx-26,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AmmoBar[5],false,bx-14,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AmmoBar[3+(clipcount<2)],false,bx-26,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,iclip?(iclip.GetValue()/10.):0.,DTA_ColorOverlay,(blinking&&(clipcount<=4))?Color(128,0,0,0):Color(0,0,0,0)); - if ( (iclip && (iclip.GetValue() > 120)) || (!iclip && (clipcount > 4)) ) - Screen.DrawTexture(AmmoBar[3+(clipcount<6)],false,bx-14,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,iclip?(((iclip.GetValue()/10.))-12.):0.,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); + Screen.DrawTexture(WeaponBox,false,bx-7,by-26,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + Screen.DrawTexture(WeaponBox,false,bx-7,by-13,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( nomag ) return; + bool bRed; + int yy = 24; + for ( int i=0; i<8; i++ ) + { + if ( clipcount <= i ) Screen.DrawTexture(RoundTex[0],false,bx-4,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Desaturate,255,DTA_ColorOverlay,Color(160,0,0,0)); + else + { + bRed = ((i>=4)&&(clipcount<6)||(i<4)&&(clipcount<2)); + Screen.DrawTexture(RoundTex[bRed],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(blinking?96:0,0,0,0)); + } + yy -= 2; + if ( i == 3 ) yy -= 5; + } } else { - Screen.DrawTexture(AmmoBar[2],false,bx-26,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawTexture(AmmoBar[clipcount<2],false,bx-26,by-8,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,iclip?(iclip.GetValue()/5.):0.,DTA_ColorOverlay,blinking?Color(128,0,0,0):Color(0,0,0,0)); + Screen.DrawTexture(WeaponBox,false,bx-7,by-13,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( nomag ) return; + bool bRed; + int yy = 11; + for ( int i=0; i<4; i++ ) + { + if ( clipcount <= i ) Screen.DrawTexture(RoundTex[0],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Desaturate,255,DTA_ColorOverlay,Color(160,0,0,0)); + else + { + bRed = (clipcount<2); + Screen.DrawTexture(RoundTex[bRed],false,bx-5,by-yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,Color(blinking?96:0,0,0,0)); + } + yy -= 2; + } } } } @@ -331,73 +235,44 @@ extend Class Sparkster // Silver Bullet JET extend Class SilverBullet { - ui TextureID WeaponBox[2], ZoomBar, BulletIcon[2], AmmoIcon[2]; + ui TextureID WeaponBox[2], ZoomBar, RoundTex[4]; override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss ) { if ( !WeaponBox[0] ) WeaponBox[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletDisplay.png",TexMan.Type_Any); if ( !WeaponBox[1] ) WeaponBox[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomDisplay.png",TexMan.Type_Any); - if ( !BulletIcon[0] ) BulletIcon[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSB.png",TexMan.Type_Any); - if ( !BulletIcon[1] ) BulletIcon[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCB.png",TexMan.Type_Any); - if ( !AmmoIcon[0] ) AmmoIcon[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSBMag.png",TexMan.Type_Any); - if ( !AmmoIcon[1] ) AmmoIcon[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCBMag.png",TexMan.Type_Any); if ( !ZoomBar ) ZoomBar = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomBar.png",TexMan.Type_Any); - int zl = clamp(ZoomInter?ZoomInter.GetValue():int(zoomlevel*10),0,160); - if ( zl >= 10 ) + if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSB.png",TexMan.Type_Any); + if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCB.png",TexMan.Type_Any); + if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSBCasing.png",TexMan.Type_Any); + if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCBCasing.png",TexMan.Type_Any); + double zl = clamp(ZoomInter?ZoomInter.GetValue(TicFrac):(zoomlevel*10),0.,160.); + if ( zl >= 10. ) { - Screen.DrawTexture(WeaponBox[1],false,bx-35,by-56,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - double zw = zl*31./160.; - Screen.DrawTexture(ZoomBar,false,bx-33,by-54,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw); + Screen.DrawTexture(WeaponBox[1],false,bx-15,by-28,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + double zw = zl*10./160.; + Screen.DrawTexture(ZoomBar,false,bx-12,by-25,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw,DTA_ColorOverlay,Color(255,0,0,0)); + Screen.DrawTexture(ZoomBar,false,bx-13,by-26,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw); } - Screen.DrawTexture(WeaponBox[0],false,bx-55,by-44,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - if ( chambered ) Screen.DrawTexture(BulletIcon[fcbchambered],false,bx-53,by-30,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fired?Color(128,0,0,0):Color(0,0,0,0)); - for ( int i=0; i9)?32:29; - int sb = Owner.CountInv("SilverBullets"); - if ( sb > 0 ) - { - int cbx = (sb>9)?34:30; - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cbx,by-20,String.Format("⁺%s",SWWMUtility.SuperscriptNum(sb)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Spacing,-1,DTA_ColorOverlay,fcbselected?Color(128,0,0,0):Color(0,0,0,0)); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-13,String.Format("%d",Ammo1.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fcbselected?Color(128,0,0,0):Color(0,0,0,0)); - } - else Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-15,String.Format("%d",Ammo1.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fcbselected?Color(128,0,0,0):Color(0,0,0,0)); - cx = (Ammo2.Amount>9)?32:29; - sb = Owner.CountInv("SilverBullets2"); - if ( sb > 0 ) - { - int cbx = (sb>9)?34:30; - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cbx,by-42,String.Format("⁺%s",SWWMUtility.SuperscriptNum(sb)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Spacing,-1,DTA_ColorOverlay,fcbselected?Color(0,0,0,0):Color(128,0,0,0)); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-35,String.Format("%d",Ammo2.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fcbselected?Color(0,0,0,0):Color(128,0,0,0)); - } - else Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-39,String.Format("%d",Ammo2.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_ColorOverlay,fcbselected?Color(0,0,0,0):Color(128,0,0,0)); + Screen.DrawTexture(WeaponBox[0],false,bx-15,by-18,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( chambered ) Screen.DrawTexture(RoundTex[fcbchambered+fired*2],false,bx-13,by-16,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + for ( int i=0; i9)?48:45; - int sb = Owner.CountInv("CandyGunBullets"); - if ( sb > 0 ) - { - int cbx = (sb>9)?50:47; - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cbx,by-20,String.Format("⁺%s",SWWMUtility.SuperscriptNum(sb)),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Spacing,-1); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-13,String.Format("%d",Ammo1.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - } - else Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-cx,by-17,String.Format("%d",Ammo1.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawText(SWWMStatusBar(StatusBar).mSmallFont,Font.CR_FIRE,bx-37,by-39,String.Format("%d",Ammo2.Amount),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( !WeaponBox ) WeaponBox = TexMan.CheckForTexture("graphics/HUD/ExplodiumDisplay.png",TexMan.Type_Any); + if ( !RoundTex ) RoundTex = TexMan.CheckForTexture("graphics/HUD/CandyRound.png",TexMan.Type_Any); + Screen.DrawTexture(WeaponBox,false,bx-10,by-21,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + if ( chambered ) Screen.DrawTexture(RoundTex,false,bx-8,by-19,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + for ( int i=0; i