From 347e2d408f0c3f59dfd9276c8a2a78014aa92419 Mon Sep 17 00:00:00 2001 From: Ayub Ahmed Date: Tue, 13 Dec 2016 01:17:10 +0000 Subject: [PATCH] Widescreen statusbar (#341) This adds an SBARINFO lump which is recognized by ZDoom and other compatible ports to show a larger widescreen status bar on modern monitors. --- buildcfg.txt | 5 ++ graphics/stbarl.gif | Bin 0 -> 3064 bytes graphics/stbarr.gif | Bin 0 -> 3075 bytes lumps/sbarinfo.lmp | 118 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 graphics/stbarl.gif create mode 100644 graphics/stbarr.gif create mode 100644 lumps/sbarinfo.lmp diff --git a/buildcfg.txt b/buildcfg.txt index 90d05fbf..5d505bee 100644 --- a/buildcfg.txt +++ b/buildcfg.txt @@ -177,6 +177,9 @@ FREEDOOM ; Big font used by ZDoom-based ports for menu text. DBIGFONT +; Widescreen statusbar for ZDoom-based ports +SBARINFO + #ifdef FREEDM DEHACKED = fdm_deh ZMAPINFO = fdmmpinf @@ -638,6 +641,8 @@ AMMNUM7 -1 0 AMMNUM8 -1 0 AMMNUM9 -1 0 STBAR 0 0 +STBARR 0 0 +STBARL 0 0 STGNUM0 0 0 STGNUM1 0 0 STGNUM2 0 0 diff --git a/graphics/stbarl.gif b/graphics/stbarl.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b6e69096760aebe6af5d98004a8b5d935365c06 GIT binary patch literal 3064 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 literal 0 HcmV?d00001 diff --git a/graphics/stbarr.gif b/graphics/stbarr.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1d94393afb4a0c92adf20811ba48716f366771e GIT binary patch literal 3075 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 F{|B6xeDweT literal 0 HcmV?d00001 diff --git a/lumps/sbarinfo.lmp b/lumps/sbarinfo.lmp new file mode 100644 index 00000000..79ff6bf9 --- /dev/null +++ b/lumps/sbarinfo.lmp @@ -0,0 +1,118 @@ +//This file is used to add widescreen +//support to Freedoom's status bar. +height 32; +monospacefonts true, "0"; + +statusbar fullscreen, fullscreenoffsets // ZDoom HUD +{ + //health + drawimage "MEDIA0", 20, -2, centerbottom; + drawnumber 3, HUDFONT_DOOM, untranslated, health, drawshadow, 82, -20; + + //armor + drawimage armoricon, 20, -24, centerbottom; + drawnumber 3, HUDFONT_DOOM, untranslated, armor, drawshadow, whennotzero, 82, -39; + + //ammo + drawimage ammoicon1, -14, -4, centerbottom; + drawnumber 3, HUDFONT_DOOM, untranslated, ammo1, drawshadow, -25, -20; + + usesammo + { + //secondary ammo and inventory + usessecondaryammo + { + drawimage ammoicon2, -14, -22, centerbottom; + drawnumber 3, HUDFONT_DOOM, untranslated, ammo2, drawshadow, -25, -38; + inventorybarnotvisible + { + drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -39, -26, -56, untranslated; + } + } + //no secondary ammo + usessecondaryammo not + { + inventorybarnotvisible + { + drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -21, -26, -38, untranslated; + } + } + } + + // no ammo but inventory + usesammo not + { + inventorybarnotvisible + { + drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -3, -26, -20, untranslated; + } + } + + gamemode deathmatch + { + drawnumber 2, HUDFONT_DOOM, untranslated, frags, drawshadow, -3, 1; + } + gamemode singleplayer, cooperative, teamgame + { + drawkeybar 6, vertical, reverserows, auto, -10, 2, 0, 3, auto; + } +} + +statusbar normal // Freedoom status bar with widescreen enhancements +{ + drawimage "STBAR", 0, 168; + drawimage "STBARL", -120, 168; + drawimage "STBARR", 320, 168; + drawimage "STTPRCNT", 90, 171; + drawimage "STTPRCNT", 221, 171; + drawnumber 3, HUDFONT_DOOM, untranslated, ammo1, 44, 171; + drawnumber 3, HUDFONT_DOOM, untranslated, health, 90, 171; + drawnumber 3, HUDFONT_DOOM, untranslated, armor, 221, 171; + + //keys + drawswitchableimage keyslot 2 && 5, "nullimage", "STKEYS0", "STKEYS3", "STKEYS6", 239, 171; + drawswitchableimage keyslot 3 && 6, "nullimage", "STKEYS1", "STKEYS4", "STKEYS7", 239, 181; + drawswitchableimage keyslot 1 && 4, "nullimage", "STKEYS2", "STKEYS5", "STKEYS8", 239, 191; + + drawnumber 3, INDEXFONT, gold, ammo Clip, 288, 173; + drawnumber 3, INDEXFONT, gold, ammo Shell, 288, 179; + drawnumber 3, INDEXFONT, gold, ammo RocketAmmo, 288, 185; + drawnumber 3, INDEXFONT, gold, ammo Cell, 288, 191; + + drawnumber 3, INDEXFONT, gold, ammocapacity Clip, 314, 173; + drawnumber 3, INDEXFONT, gold, ammocapacity Shell, 314, 179; + drawnumber 3, INDEXFONT, gold, ammocapacity RocketAmmo, 314, 185; + drawnumber 3, INDEXFONT, gold, ammocapacity Cell, 314, 191; + gamemode deathmatch, teamgame + { + drawnumber 2, HUDFONT_DOOM, untranslated, frags, 138, 171; + } + gamemode cooperative, singleplayer + { + drawimage "STARMS", 104, 168; + drawswitchableimage weaponslot 2, "STGNUM2", "STYSNUM2", 111, 172; + drawswitchableimage weaponslot 3, "STGNUM3", "STYSNUM3", 123, 172; + drawswitchableimage weaponslot 4, "STGNUM4", "STYSNUM4", 135, 172; + drawswitchableimage weaponslot 5, "STGNUM5", "STYSNUM5", 111, 182; + drawswitchableimage weaponslot 6, "STGNUM6", "STYSNUM6", 123, 182; + drawswitchableimage weaponslot 7, "STGNUM7", "STYSNUM7", 135, 182; + } + gamemode cooperative, deathmatch, teamgame + { + drawimage translatable "STFBANY", 144, 169; + } + drawselectedinventory alternateonempty, INDEXFONT, 143, 168 + { + drawmugshot 5, 143, 168; + } +} + +statusbar inventory // Standard bar overlay (ZDoom Addition) +{ + drawinventorybar Doom, 7, INDEXFONT, 50, 170; +} + +statusbar inventoryfullscreen // ZDoom HUD overlay. +{ + drawinventorybar Doom, translucent, 7, INDEXFONT, 50, 170; +}