- added the inventory bar on Heretic's status bar.

This commit is contained in:
Christoph Oelckers 2017-03-27 21:29:31 +02:00
parent 0537e9c1ba
commit bac464f2b7
2 changed files with 31 additions and 11 deletions

View file

@ -5,6 +5,7 @@ class HereticStatusBar : BaseStatusBar
HUDFont mIndexFont; HUDFont mIndexFont;
HUDFont mBigFont; HUDFont mBigFont;
InventoryBarState diparms; InventoryBarState diparms;
InventoryBarState diparms_sbar;
override void Init() override void Init()
@ -20,6 +21,7 @@ class HereticStatusBar : BaseStatusBar
fnt = "BIGFONT"; fnt = "BIGFONT";
mBigFont = HUDFont.Create(fnt, fnt.GetCharWidth("0"), true, 2, 2); mBigFont = HUDFont.Create(fnt, fnt.GetCharWidth("0"), true, 2, 2);
diparms = InventoryBarState.Create(mIndexFont); diparms = InventoryBarState.Create(mIndexFont);
diparms_sbar = InventoryBarState.CreateNoBox(mIndexFont, boxsize:(31, 31), arrowoffs:(0,-10));
mHealthInterpolator = DynamicValueInterpolator.Create(0, 0.25, 1, 8); mHealthInterpolator = DynamicValueInterpolator.Create(0, 0.25, 1, 8);
} }
@ -120,12 +122,11 @@ class HereticStatusBar : BaseStatusBar
DrawString(mIndexFont, FormatNumber(CPlayer.mo.InvSel.Amount, 3), (209, 182), DI_TEXT_ALIGN_RIGHT); DrawString(mIndexFont, FormatNumber(CPlayer.mo.InvSel.Amount, 3), (209, 182), DI_TEXT_ALIGN_RIGHT);
} }
} }
} }
else else
{ {
DrawImage("INVBAR", (34, 160), DI_ITEM_OFFSETS); DrawImage("INVBAR", (34, 160), DI_ITEM_OFFSETS);
//drawinventorybar Heretic, noartibox, 7, INDEXFONT_RAVEN, 50, 160, 77, 182, untranslated; DrawInventoryBar(diparms_sbar, (49, 160), 7, DI_ITEM_LEFT_TOP, HX_SHADOW);
} }
} }

View file

@ -39,17 +39,9 @@ class InventoryBarState ui
int cr; int cr;
int flags; int flags;
// The default settings here are what SBARINFO is using. private static void Init(InventoryBarState me, HUDFont indexfont, int cr, double itemalpha, Vector2 innersize, String leftgfx, String rightgfx, Vector2 arrowoffs, int flags)
static InventoryBarState Create(HUDFont indexfont = null, int cr = Font.CR_UNTRANSLATED, double itemalpha = 1.,
String boxgfx = "ARTIBOX", String selgfx = "SELECTBO", Vector2 innersize = (0, 0),
String leftgfx = "INVGEML1", String rightgfx = "INVGEMR1", Vector2 arrowoffs = (0, 0), int flags = 0)
{ {
let me = new ("InventoryBarState");
me.itemalpha = itemalpha; me.itemalpha = itemalpha;
me.box = TexMan.CheckForTexture(boxgfx, TexMan.TYPE_MiscPatch);
me.selector = TexMan.CheckForTexture(selgfx, TexMan.TYPE_MiscPatch);
if (me.box.IsValid() || me.selector.IsValid()) me.boxsize = TexMan.GetScaledSize(me.box.IsValid()? me.box : me.selector);
else me.boxsize = (32., 32.);
if (innersize == (0, 0)) if (innersize == (0, 0))
{ {
me.boxofs = (2, 2); me.boxofs = (2, 2);
@ -72,8 +64,35 @@ class InventoryBarState ui
else me.amountfont = indexfont; else me.amountfont = indexfont;
me.cr = cr; me.cr = cr;
me.flags = flags; me.flags = flags;
}
// The default settings here are what SBARINFO is using.
static InventoryBarState Create(HUDFont indexfont = null, int cr = Font.CR_UNTRANSLATED, double itemalpha = 1.,
String boxgfx = "ARTIBOX", String selgfx = "SELECTBO", Vector2 innersize = (0, 0),
String leftgfx = "INVGEML1", String rightgfx = "INVGEMR1", Vector2 arrowoffs = (0, 0), int flags = 0)
{
let me = new ("InventoryBarState");
me.box = TexMan.CheckForTexture(boxgfx, TexMan.TYPE_MiscPatch);
me.selector = TexMan.CheckForTexture(selgfx, TexMan.TYPE_MiscPatch);
if (me.box.IsValid() || me.selector.IsValid()) me.boxsize = TexMan.GetScaledSize(me.box.IsValid()? me.box : me.selector);
else me.boxsize = (32., 32.);
Init(me, indexfont, cr, itemalpha, innersize, leftgfx, rightgfx, arrowoffs, flags);
return me; return me;
} }
// The default settings here are what SBARINFO is using.
static InventoryBarState CreateNoBox(HUDFont indexfont = null, int cr = Font.CR_UNTRANSLATED, double itemalpha = 1.,
Vector2 boxsize = (32, 32), String selgfx = "SELECTBO", Vector2 innersize = (0, 0),
String leftgfx = "INVGEML1", String rightgfx = "INVGEMR1", Vector2 arrowoffs = (0, 0), int flags = 0)
{
let me = new ("InventoryBarState");
me.box.SetInvalid();
me.selector = TexMan.CheckForTexture(selgfx, TexMan.TYPE_MiscPatch);
me.boxsize = boxsize;
Init(me, indexfont, cr, itemalpha, innersize, leftgfx, rightgfx, arrowoffs, flags);
return me;
}
} }