diff --git a/fonts/MiniHUD/0025.png b/fonts/MiniHUD/0025.png new file mode 100644 index 000000000..1099ee784 Binary files /dev/null and b/fonts/MiniHUD/0025.png differ diff --git a/fonts/MiniHUDFlat/002B.png b/fonts/MiniHUD/002B.png similarity index 100% rename from fonts/MiniHUDFlat/002B.png rename to fonts/MiniHUD/002B.png diff --git a/fonts/MiniHUDFlat/002D.png b/fonts/MiniHUD/002D.png similarity index 100% rename from fonts/MiniHUDFlat/002D.png rename to fonts/MiniHUD/002D.png diff --git a/fonts/MiniHUDFlat/002F.png b/fonts/MiniHUD/002F.png similarity index 100% rename from fonts/MiniHUDFlat/002F.png rename to fonts/MiniHUD/002F.png diff --git a/fonts/MiniHUDFlat/0030.png b/fonts/MiniHUD/0030.png similarity index 100% rename from fonts/MiniHUDFlat/0030.png rename to fonts/MiniHUD/0030.png diff --git a/fonts/MiniHUDFlat/0031.png b/fonts/MiniHUD/0031.png similarity index 100% rename from fonts/MiniHUDFlat/0031.png rename to fonts/MiniHUD/0031.png diff --git a/fonts/MiniHUDFlat/0032.png b/fonts/MiniHUD/0032.png similarity index 100% rename from fonts/MiniHUDFlat/0032.png rename to fonts/MiniHUD/0032.png diff --git a/fonts/MiniHUDFlat/0033.png b/fonts/MiniHUD/0033.png similarity index 100% rename from fonts/MiniHUDFlat/0033.png rename to fonts/MiniHUD/0033.png diff --git a/fonts/MiniHUDFlat/0034.png b/fonts/MiniHUD/0034.png similarity index 100% rename from fonts/MiniHUDFlat/0034.png rename to fonts/MiniHUD/0034.png diff --git a/fonts/MiniHUDFlat/0035.png b/fonts/MiniHUD/0035.png similarity index 100% rename from fonts/MiniHUDFlat/0035.png rename to fonts/MiniHUD/0035.png diff --git a/fonts/MiniHUDFlat/0036.png b/fonts/MiniHUD/0036.png similarity index 100% rename from fonts/MiniHUDFlat/0036.png rename to fonts/MiniHUD/0036.png diff --git a/fonts/MiniHUDFlat/0037.png b/fonts/MiniHUD/0037.png similarity index 100% rename from fonts/MiniHUDFlat/0037.png rename to fonts/MiniHUD/0037.png diff --git a/fonts/MiniHUDFlat/0038.png b/fonts/MiniHUD/0038.png similarity index 100% rename from fonts/MiniHUDFlat/0038.png rename to fonts/MiniHUD/0038.png diff --git a/fonts/MiniHUDFlat/0039.png b/fonts/MiniHUD/0039.png similarity index 100% rename from fonts/MiniHUDFlat/0039.png rename to fonts/MiniHUD/0039.png diff --git a/fonts/MiniHUDFlat/003A.png b/fonts/MiniHUD/003A.png similarity index 100% rename from fonts/MiniHUDFlat/003A.png rename to fonts/MiniHUD/003A.png diff --git a/fonts/MiniHUDFlat/0041.png b/fonts/MiniHUD/0041.png similarity index 100% rename from fonts/MiniHUDFlat/0041.png rename to fonts/MiniHUD/0041.png diff --git a/fonts/MiniHUDFlat/0042.png b/fonts/MiniHUD/0042.png similarity index 100% rename from fonts/MiniHUDFlat/0042.png rename to fonts/MiniHUD/0042.png diff --git a/fonts/MiniHUDFlat/0043.png b/fonts/MiniHUD/0043.png similarity index 100% rename from fonts/MiniHUDFlat/0043.png rename to fonts/MiniHUD/0043.png diff --git a/fonts/MiniHUDFlat/0044.png b/fonts/MiniHUD/0044.png similarity index 100% rename from fonts/MiniHUDFlat/0044.png rename to fonts/MiniHUD/0044.png diff --git a/fonts/MiniHUDFlat/0045.png b/fonts/MiniHUD/0045.png similarity index 100% rename from fonts/MiniHUDFlat/0045.png rename to fonts/MiniHUD/0045.png diff --git a/fonts/MiniHUDFlat/0046.png b/fonts/MiniHUD/0046.png similarity index 100% rename from fonts/MiniHUDFlat/0046.png rename to fonts/MiniHUD/0046.png diff --git a/fonts/MiniHUDFlat/0047.png b/fonts/MiniHUD/0047.png similarity index 100% rename from fonts/MiniHUDFlat/0047.png rename to fonts/MiniHUD/0047.png diff --git a/fonts/MiniHUDFlat/0048.png b/fonts/MiniHUD/0048.png similarity index 100% rename from fonts/MiniHUDFlat/0048.png rename to fonts/MiniHUD/0048.png diff --git a/fonts/MiniHUDFlat/0049.png b/fonts/MiniHUD/0049.png similarity index 100% rename from fonts/MiniHUDFlat/0049.png rename to fonts/MiniHUD/0049.png diff --git a/fonts/MiniHUDFlat/004A.png b/fonts/MiniHUD/004A.png similarity index 100% rename from fonts/MiniHUDFlat/004A.png rename to fonts/MiniHUD/004A.png diff --git a/fonts/MiniHUDFlat/004B.png b/fonts/MiniHUD/004B.png similarity index 100% rename from fonts/MiniHUDFlat/004B.png rename to fonts/MiniHUD/004B.png diff --git a/fonts/MiniHUDFlat/004C.png b/fonts/MiniHUD/004C.png similarity index 100% rename from fonts/MiniHUDFlat/004C.png rename to fonts/MiniHUD/004C.png diff --git a/fonts/MiniHUDFlat/004D.png b/fonts/MiniHUD/004D.png similarity index 100% rename from fonts/MiniHUDFlat/004D.png rename to fonts/MiniHUD/004D.png diff --git a/fonts/MiniHUDFlat/004E.png b/fonts/MiniHUD/004E.png similarity index 100% rename from fonts/MiniHUDFlat/004E.png rename to fonts/MiniHUD/004E.png diff --git a/fonts/MiniHUDFlat/004F.png b/fonts/MiniHUD/004F.png similarity index 100% rename from fonts/MiniHUDFlat/004F.png rename to fonts/MiniHUD/004F.png diff --git a/fonts/MiniHUDFlat/0050.png b/fonts/MiniHUD/0050.png similarity index 100% rename from fonts/MiniHUDFlat/0050.png rename to fonts/MiniHUD/0050.png diff --git a/fonts/MiniHUDFlat/0051.png b/fonts/MiniHUD/0051.png similarity index 100% rename from fonts/MiniHUDFlat/0051.png rename to fonts/MiniHUD/0051.png diff --git a/fonts/MiniHUDFlat/0052.png b/fonts/MiniHUD/0052.png similarity index 100% rename from fonts/MiniHUDFlat/0052.png rename to fonts/MiniHUD/0052.png diff --git a/fonts/MiniHUDFlat/0053.png b/fonts/MiniHUD/0053.png similarity index 100% rename from fonts/MiniHUDFlat/0053.png rename to fonts/MiniHUD/0053.png diff --git a/fonts/MiniHUDFlat/0054.png b/fonts/MiniHUD/0054.png similarity index 100% rename from fonts/MiniHUDFlat/0054.png rename to fonts/MiniHUD/0054.png diff --git a/fonts/MiniHUDFlat/0055.png b/fonts/MiniHUD/0055.png similarity index 100% rename from fonts/MiniHUDFlat/0055.png rename to fonts/MiniHUD/0055.png diff --git a/fonts/MiniHUDFlat/0056.png b/fonts/MiniHUD/0056.png similarity index 100% rename from fonts/MiniHUDFlat/0056.png rename to fonts/MiniHUD/0056.png diff --git a/fonts/MiniHUDFlat/0057.png b/fonts/MiniHUD/0057.png similarity index 100% rename from fonts/MiniHUDFlat/0057.png rename to fonts/MiniHUD/0057.png diff --git a/fonts/MiniHUDFlat/0058.png b/fonts/MiniHUD/0058.png similarity index 100% rename from fonts/MiniHUDFlat/0058.png rename to fonts/MiniHUD/0058.png diff --git a/fonts/MiniHUDFlat/0059.png b/fonts/MiniHUD/0059.png similarity index 100% rename from fonts/MiniHUDFlat/0059.png rename to fonts/MiniHUD/0059.png diff --git a/fonts/MiniHUDFlat/005A.png b/fonts/MiniHUD/005A.png similarity index 100% rename from fonts/MiniHUDFlat/005A.png rename to fonts/MiniHUD/005A.png diff --git a/fonts/MiniHUDFlat/0073.png b/fonts/MiniHUD/0073.png similarity index 100% rename from fonts/MiniHUDFlat/0073.png rename to fonts/MiniHUD/0073.png diff --git a/fonts/MiniHUDFlat/207A.png b/fonts/MiniHUD/207A.png similarity index 100% rename from fonts/MiniHUDFlat/207A.png rename to fonts/MiniHUD/207A.png diff --git a/fonts/MiniHUDFlat/221E.png b/fonts/MiniHUD/221E.png similarity index 100% rename from fonts/MiniHUDFlat/221E.png rename to fonts/MiniHUD/221E.png diff --git a/fonts/MiniHUDFlat/font.inf b/fonts/MiniHUD/font.inf similarity index 100% rename from fonts/MiniHUDFlat/font.inf rename to fonts/MiniHUD/font.inf diff --git a/fonts/MiniHUDOutline/0025.png b/fonts/MiniHUDOutline/0025.png new file mode 100644 index 000000000..932518658 Binary files /dev/null and b/fonts/MiniHUDOutline/0025.png differ diff --git a/language.version b/language.version index b9c3def2f..0dba92a11 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r108 \cu(Thu 9 Jun 10:51:16 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r108 \cu(2022-06-09 10:51:16)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r109 \cu(Thu 9 Jun 11:35:24 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r109 \cu(2022-06-09 11:35:24)\c-"; diff --git a/zscript/hud/swwm_althud.zsc b/zscript/hud/swwm_althud.zsc index 4c56ba747..c8465adc1 100644 --- a/zscript/hud/swwm_althud.zsc +++ b/zscript/hud/swwm_althud.zsc @@ -237,7 +237,7 @@ extend Class SWWMStatusBar 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("MiniHUDFlat"); + MiniHudFont = Font.GetFont("MiniHUD"); MiniHudFontOutline = Font.GetFont("MiniHUDOutline"); mhudfontcol[MCR_DEMOHUD] = Font.FindFontColor("MiniDemoHUD"); mhudfontcol[MCR_IBUKIHUD] = Font.FindFontColor("MiniIbukiHUD"); @@ -584,36 +584,46 @@ extend Class SWWMStatusBar yy = ss.y-(margin+12); Screen.DrawTexture(AltAmmoTex[2],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); String str; - bool drewammo = false; - for ( int i=0; i<26; i++ ) + for ( int i=25; i>=0; i-- ) { - let a = AmmoSlots[i]; - let cur = Ammo(CPlayer.mo.FindInventory(a)); - if ( !cur ) continue; - drewammo = true; yy -= 6; Screen.DrawTexture(AltAmmoTex[1],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); xx += 2; + let a = AmmoSlots[i]; + let cur = Ammo(CPlayer.mo.FindInventory(a)); int amt, amax; - bool selected = false, used = false; - amt = cur.Amount; - amax = cur.MaxAmount; - if ( (cur is 'SWWMAmmo') && SWWMAmmo(cur).MagAmmoType ) + if ( !cur ) { - let mag = MagAmmo(CPlayer.mo.FindInventory(SWWMAmmo(cur).MagAmmoType)); - // theoretically this should never be null, but nevertheless... - if ( mag ) + amt = 0; + amax = GetDefaultByType(a).MaxAmount; + if ( a is 'SWWMAmmo' ) { - amt = amt*mag.ClipSize+mag.Amount; - amax = amax*mag.ClipSize+mag.MaxAmount; - } - else - { - let def = GetDefaultByType(SWWMAmmo(cur).MagAmmoType); - amt = amt*def.ClipSize; - amax = amax*def.ClipSize+def.MaxAmount; + let def = GetDefaultByType((Class)(a)); + if ( def.MagAmmoType ) amax *= GetDefaultByType(def.MagAmmoType).ClipSize; } } + else + { + amt = cur.Amount; + amax = cur.MaxAmount; + if ( (cur is 'SWWMAmmo') && SWWMAmmo(cur).MagAmmoType ) + { + let mag = MagAmmo(CPlayer.mo.FindInventory(SWWMAmmo(cur).MagAmmoType)); + // theoretically this should never be null, but nevertheless... + if ( mag ) + { + amt = amt*mag.ClipSize+mag.Amount; + amax = amax*mag.ClipSize+mag.MaxAmount; + } + else + { + let def = GetDefaultByType(SWWMAmmo(cur).MagAmmoType); + amt = amt*def.ClipSize; + amax = amax*def.ClipSize+def.MaxAmount; + } + } + } + bool selected = false, used = false; if ( CPlayer.ReadyWeapon ) { if ( CPlayer.ReadyWeapon is 'SWWMWeapon' ) @@ -627,8 +637,8 @@ extend Class SWWMStatusBar int ncolor = (amt>0)?scol:mhudfontcol[MCR_RED]; int dcnt1 = 2-int(Log10(clamp(amt,1,999))); int dcnt2 = 2-int(Log10(clamp(amax,1,999))); - for ( int i=0; i 99999) && !forceamt ) nstr = "99999"; else nstr = String.Format("%d",i.Amount); - 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,alpha); + 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); + } } return true; } @@ -2416,7 +2449,7 @@ Class SWWMStatusBar : BaseStatusBar for ( Inventory i=CPlayer.mo.Inv; i; i=i.Inv ) { if ( (i.Amount <= 0) || (!(i is 'SWWMArmor') && !(i is 'BasicArmor')) ) continue; - if ( !DrawInvIcon(i,xx,yy,forceamt:true) ) continue; + if ( !DrawInvIcon(i,xx,yy,forceamt:true,selected:true) ) continue; yy -= 34; drewarmor = true; } @@ -2427,13 +2460,13 @@ Class SWWMStatusBar : BaseStatusBar { if ( (i is 'SWWMLamp') && SWWMLamp(i).bActivated ) { - DrawInvIcon(i,xx,yy,aspowerup:true); + DrawInvIcon(i,xx,yy,selected:true,aspowerup:true); yy -= 34; continue; } if ( (i is 'DivineSpriteEffect') && !DivineSpriteEffect(i).bHealDone ) { - DrawInvIcon(i,xx,yy,aspowerup:true); + DrawInvIcon(i,xx,yy,selected:true,aspowerup:true); yy -= 34; continue; } @@ -2467,7 +2500,7 @@ Class SWWMStatusBar : BaseStatusBar xx = (ss.x-34)/2; yy = (ss.y+64)/2; Screen.DrawTexture(InventoryTex,false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - DrawInvIcon(CPlayer.mo.InvSel,xx+2,yy+2); + DrawInvIcon(CPlayer.mo.InvSel,xx+2,yy+2,selected:true); DrawInvIcon(prev[0],xx-32,yy+2,2./3.); DrawInvIcon(prev[1],xx-66,yy+2,1./3.); DrawInvIcon(next[0],xx+36,yy+2,2./3.); @@ -2475,7 +2508,7 @@ Class SWWMStatusBar : BaseStatusBar return; } Screen.DrawTexture(InventoryTex,false,margin,ss.y-(margin+invy+2),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - DrawInvIcon(CPlayer.mo.InvSel,margin+2,ss.y-(margin+invy)); + DrawInvIcon(CPlayer.mo.InvSel,margin+2,ss.y-(margin+invy),selected:true); } private void DrawWeapons() @@ -2906,6 +2939,7 @@ 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); @@ -2916,7 +2950,7 @@ Class SWWMStatusBar : BaseStatusBar else { DrawTarget(); - if ( swwm_althud ) + if ( isalthud ) { DrawTopStuff(true); Alt_DrawTopStuff();