mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 07:12:02 +00:00
- implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
This commit is contained in:
parent
0cbbd8d4b1
commit
e791c957d9
12 changed files with 131 additions and 100 deletions
|
@ -2568,14 +2568,8 @@ void D_DoomMain (void)
|
||||||
|
|
||||||
P_SetupWeapons_ntohton();
|
P_SetupWeapons_ntohton();
|
||||||
|
|
||||||
//SBarInfo support.
|
//SBarInfo support. Note that the first SBARINFO lump contains the mugshot definition so it even needs to be read when a regular status bar is being used.
|
||||||
// This needs special checking because there are two distinct methods of defining status bars.
|
SBarInfo::Load();
|
||||||
// SBARINFO should only be picked if it is the most recently defined one, so that both
|
|
||||||
// methods can override each other if loaded in sequence.
|
|
||||||
if (gameinfo.statusbarfile > gameinfo.statusbarclassfile)
|
|
||||||
{
|
|
||||||
SBarInfo::Load();
|
|
||||||
}
|
|
||||||
HUD_InitHud();
|
HUD_InitHud();
|
||||||
|
|
||||||
if (!batchrun)
|
if (!batchrun)
|
||||||
|
|
|
@ -532,6 +532,7 @@ public:
|
||||||
|
|
||||||
// [Nash] set player FOV
|
// [Nash] set player FOV
|
||||||
void SetFOV(float fov);
|
void SetFOV(float fov);
|
||||||
|
bool HasWeaponsInSlot(int slot) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Bookkeeping on players - state.
|
// Bookkeeping on players - state.
|
||||||
|
|
|
@ -464,7 +464,7 @@ void P_DeinitKeyMessages()
|
||||||
//
|
//
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
bool P_CheckKeys (AActor *owner, int keynum, bool remote)
|
bool P_CheckKeys (AActor *owner, int keynum, bool remote, bool quiet)
|
||||||
{
|
{
|
||||||
const char *failtext = NULL;
|
const char *failtext = NULL;
|
||||||
FSoundID *failsound;
|
FSoundID *failsound;
|
||||||
|
@ -479,6 +479,7 @@ bool P_CheckKeys (AActor *owner, int keynum, bool remote)
|
||||||
|
|
||||||
if (!locks[keynum])
|
if (!locks[keynum])
|
||||||
{
|
{
|
||||||
|
if (quiet) return false;
|
||||||
if (keynum == 103 && (gameinfo.flags & GI_SHAREWARE))
|
if (keynum == 103 && (gameinfo.flags & GI_SHAREWARE))
|
||||||
failtext = "$TXT_RETAIL_ONLY";
|
failtext = "$TXT_RETAIL_ONLY";
|
||||||
else
|
else
|
||||||
|
@ -490,6 +491,7 @@ bool P_CheckKeys (AActor *owner, int keynum, bool remote)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (locks[keynum]->check(owner)) return true;
|
if (locks[keynum]->check(owner)) return true;
|
||||||
|
if (quiet) return false;
|
||||||
failtext = remote? locks[keynum]->RemoteMsg : locks[keynum]->Message;
|
failtext = remote? locks[keynum]->RemoteMsg : locks[keynum]->Message;
|
||||||
failsound = &locks[keynum]->locksound[0];
|
failsound = &locks[keynum]->locksound[0];
|
||||||
numfailsounds = locks[keynum]->locksound.Size();
|
numfailsounds = locks[keynum]->locksound.Size();
|
||||||
|
@ -519,6 +521,15 @@ bool P_CheckKeys (AActor *owner, int keynum, bool remote)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEFINE_ACTION_FUNCTION(AActor, CheckKeys)
|
||||||
|
{
|
||||||
|
PARAM_SELF_PROLOGUE(AActor);
|
||||||
|
PARAM_INT(locknum);
|
||||||
|
PARAM_BOOL(remote);
|
||||||
|
PARAM_BOOL_DEF(quiet);
|
||||||
|
ACTION_RETURN_BOOL(P_CheckKeys(self, locknum, remote, quiet));
|
||||||
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
// These functions can be used to get color information for
|
// These functions can be used to get color information for
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
class AActor;
|
class AActor;
|
||||||
class AInventory;
|
class AInventory;
|
||||||
|
|
||||||
bool P_CheckKeys (AActor *owner, int keynum, bool remote);
|
bool P_CheckKeys (AActor *owner, int keynum, bool remote, bool quiet = false);
|
||||||
void P_InitKeyMessages ();
|
void P_InitKeyMessages ();
|
||||||
void P_DeinitKeyMessages ();
|
void P_DeinitKeyMessages ();
|
||||||
int P_GetMapColorForLock (int lock);
|
int P_GetMapColorForLock (int lock);
|
||||||
|
|
|
@ -530,6 +530,7 @@ enum DI_Flags
|
||||||
DI_TEXT_ALIGN = 0x1800000,
|
DI_TEXT_ALIGN = 0x1800000,
|
||||||
|
|
||||||
DI_ALPHAMAPPED = 0x2000000,
|
DI_ALPHAMAPPED = 0x2000000,
|
||||||
|
DI_NOSHADOW = 0x4000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __SBAR_H__ */
|
#endif /* __SBAR_H__ */
|
||||||
|
|
|
@ -446,6 +446,7 @@ void SBarInfo::Load()
|
||||||
{
|
{
|
||||||
FreeSBarInfoScript();
|
FreeSBarInfoScript();
|
||||||
MugShotStates.Clear();
|
MugShotStates.Clear();
|
||||||
|
|
||||||
if(gameinfo.statusbar.IsNotEmpty())
|
if(gameinfo.statusbar.IsNotEmpty())
|
||||||
{
|
{
|
||||||
int lump = Wads.CheckNumForFullName(gameinfo.statusbar, true);
|
int lump = Wads.CheckNumForFullName(gameinfo.statusbar, true);
|
||||||
|
|
|
@ -1846,7 +1846,7 @@ void DBaseStatusBar::DrawString(FFont *font, const FString &cstring, double x, d
|
||||||
}
|
}
|
||||||
// This is not really such a great way to draw shadows because they can overlap with previously drawn characters.
|
// This is not really such a great way to draw shadows because they can overlap with previously drawn characters.
|
||||||
// This may have to be changed to draw the shadow text up front separately.
|
// This may have to be changed to draw the shadow text up front separately.
|
||||||
if (shadowX != 0 || shadowY != 0)
|
if ((shadowX != 0 || shadowY != 0) && !(flags & DI_NOSHADOW))
|
||||||
{
|
{
|
||||||
screen->DrawChar(font, CR_UNTRANSLATED, rx + shadowX, ry + shadowY, ch,
|
screen->DrawChar(font, CR_UNTRANSLATED, rx + shadowX, ry + shadowY, ch,
|
||||||
DTA_DestWidthF, rw,
|
DTA_DestWidthF, rw,
|
||||||
|
@ -2033,10 +2033,9 @@ DEFINE_ACTION_FUNCTION(DBaseStatusBar, ReceivedWeapon)
|
||||||
DEFINE_ACTION_FUNCTION(DBaseStatusBar, GetMugshot)
|
DEFINE_ACTION_FUNCTION(DBaseStatusBar, GetMugshot)
|
||||||
{
|
{
|
||||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||||
PARAM_POINTER(player, player_t);
|
|
||||||
PARAM_STRING(def_face);
|
|
||||||
PARAM_INT(accuracy);
|
PARAM_INT(accuracy);
|
||||||
PARAM_INT_DEF(stateflags);
|
PARAM_INT_DEF(stateflags);
|
||||||
auto tex = self->mugshot.GetFace(player, def_face, accuracy, (FMugShot::StateFlags)stateflags);
|
PARAM_STRING_DEF(def_face);
|
||||||
|
auto tex = self->mugshot.GetFace(self->CPlayer, def_face, accuracy, (FMugShot::StateFlags)stateflags);
|
||||||
ACTION_RETURN_INT(tex ? tex->id.GetIndex() : -1);
|
ACTION_RETURN_INT(tex ? tex->id.GetIndex() : -1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -707,6 +707,24 @@ void player_t::SendPitchLimits() const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool player_t::HasWeaponsInSlot(int slot) const
|
||||||
|
{
|
||||||
|
for (int i = 0; i < weapons.Slots[slot].Size(); i++)
|
||||||
|
{
|
||||||
|
PClassActor *weap = weapons.Slots[slot].GetWeapon(i);
|
||||||
|
if (weap != NULL && mo->FindInventory(weap)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_ACTION_FUNCTION(_PlayerInfo, HasWeaponsInSlot)
|
||||||
|
{
|
||||||
|
PARAM_SELF_STRUCT_PROLOGUE(player_t);
|
||||||
|
PARAM_INT(slot);
|
||||||
|
ACTION_RETURN_BOOL(self->HasWeaponsInSlot(slot));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION(_PlayerInfo, GetUserName)
|
DEFINE_ACTION_FUNCTION(_PlayerInfo, GetUserName)
|
||||||
{
|
{
|
||||||
PARAM_SELF_STRUCT_PROLOGUE(player_t);
|
PARAM_SELF_STRUCT_PROLOGUE(player_t);
|
||||||
|
|
|
@ -501,6 +501,7 @@ class Actor : Thinker native
|
||||||
native static int FindUniqueTid(int start = 0, int limit = 0);
|
native static int FindUniqueTid(int start = 0, int limit = 0);
|
||||||
native void SetShade(color col);
|
native void SetShade(color col);
|
||||||
native clearscope int GetRenderStyle() const;
|
native clearscope int GetRenderStyle() const;
|
||||||
|
native clearscope bool CheckKeys(int locknum, bool remote, bool quiet = false);
|
||||||
|
|
||||||
native clearscope string GetTag(string defstr = "") const;
|
native clearscope string GetTag(string defstr = "") const;
|
||||||
native void SetTag(string defstr = "");
|
native void SetTag(string defstr = "");
|
||||||
|
|
|
@ -373,6 +373,7 @@ usercmd_t original_cmd;
|
||||||
native float GetAutoaim() const;
|
native float GetAutoaim() const;
|
||||||
native bool GetNoAutostartMap() const;
|
native bool GetNoAutostartMap() const;
|
||||||
native void SetFOV(float fov);
|
native void SetFOV(float fov);
|
||||||
|
native clearscope bool HasWeaponsInSlot(int slot) const;
|
||||||
|
|
||||||
clearscope int fragSum () const
|
clearscope int fragSum () const
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
class DoomStatusBar : BaseStatusBar
|
class DoomStatusBar : BaseStatusBar
|
||||||
{
|
{
|
||||||
HUDFont mHUDFont;
|
HUDFont mHUDFont;
|
||||||
|
HUDFont mIndexFont;
|
||||||
//DrawInventoryBarParms diparms;
|
//DrawInventoryBarParms diparms;
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,6 +21,8 @@ class DoomStatusBar : BaseStatusBar
|
||||||
// Create the font used for the fullscreen HUD
|
// Create the font used for the fullscreen HUD
|
||||||
Font fnt = "HUDFONT_DOOM";
|
Font fnt = "HUDFONT_DOOM";
|
||||||
mHUDFont = HUDFont.Create(fnt, fnt.GetCharWidth("0"), true, 1, 1);
|
mHUDFont = HUDFont.Create(fnt, fnt.GetCharWidth("0"), true, 1, 1);
|
||||||
|
fnt = "INDEXFONT_DOOM";
|
||||||
|
mIndexFont = HUDFont.Create(fnt, fnt.GetCharWidth("0"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void NewGame ()
|
override void NewGame ()
|
||||||
|
@ -48,11 +51,83 @@ class DoomStatusBar : BaseStatusBar
|
||||||
|
|
||||||
protected void DrawMainBar (double TicFrac)
|
protected void DrawMainBar (double TicFrac)
|
||||||
{
|
{
|
||||||
//DrawTexture(Images[imgINVBACK], (0, 0), true, 1.0, itemAlign:ALIGN_OFFSETS);
|
DrawImage("STBAR", (0, 0), DI_ITEM_OFFSETS);
|
||||||
//DrawTexture(Images[imgINVTOP], (0, -8), true, 1.0, itemAlign:ALIGN_OFFSETS);
|
DrawImage("STTPRCNT", (90, 3), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage("STTPRCNT", (221, 3), DI_ITEM_OFFSETS);
|
||||||
|
|
||||||
// Health
|
Inventory a1, a2;
|
||||||
//DrawString("Indexfont_Strife_Green", FormatNumber(CPlayer.health, 3, 5, 0), (86, -6), 1.0, Font.CR_UNTRANSLATED, TEXT_RIGHT, 0, 7, true, 1, 1);
|
int amt1;
|
||||||
|
[a1, a2, amt1] = GetCurrentAmmo();
|
||||||
|
DrawString(mHUDFont, FormatNumber(amt1, 3), (44, 3), DI_TEXT_ALIGN_RIGHT|DI_NOSHADOW);
|
||||||
|
DrawString(mHUDFont, FormatNumber(CPlayer.health, 3), (90, 3), DI_TEXT_ALIGN_RIGHT|DI_NOSHADOW);
|
||||||
|
DrawString(mHUDFont, FormatNumber(GetArmorAmount(), 3), (221, 3), DI_TEXT_ALIGN_RIGHT|DI_NOSHADOW);
|
||||||
|
|
||||||
|
bool locks[6];
|
||||||
|
String image;
|
||||||
|
for(int i = 0; i < 6; i++) locks[i] = CPlayer.mo.CheckKeys(i + 1, false, true);
|
||||||
|
// key 1
|
||||||
|
if (locks[1] && locks[4]) image = "STKEYS6";
|
||||||
|
else if (locks[1]) image = "STKEYS0";
|
||||||
|
else if (locks[4]) image = "STKEYS3";
|
||||||
|
DrawImage(image, (239, 3), DI_ITEM_OFFSETS);
|
||||||
|
// key 2
|
||||||
|
if (locks[2] && locks[5]) image = "STKEYS7";
|
||||||
|
else if (locks[2]) image = "STKEYS1";
|
||||||
|
else if (locks[5]) image = "STKEYS4";
|
||||||
|
else image = "";
|
||||||
|
DrawImage(image, (239, 13), DI_ITEM_OFFSETS);
|
||||||
|
// key 3
|
||||||
|
if (locks[0] && locks[3]) image = "STKEYS8";
|
||||||
|
else if (locks[0]) image = "STKEYS2";
|
||||||
|
else if (locks[3]) image = "STKEYS5";
|
||||||
|
else image = "";
|
||||||
|
DrawImage(image, (239, 23), DI_ITEM_OFFSETS);
|
||||||
|
|
||||||
|
int maxamt;
|
||||||
|
[amt1, maxamt] = GetAmount("Clip");
|
||||||
|
DrawString(mIndexFont, FormatNumber(amt1, 3), (288, 5), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
DrawString(mIndexFont, FormatNumber(maxamt, 3), (314, 5), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
|
||||||
|
[amt1, maxamt] = GetAmount("Shell");
|
||||||
|
DrawString(mIndexFont, FormatNumber(amt1, 3), (288, 11), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
DrawString(mIndexFont, FormatNumber(maxamt, 3), (314, 11), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
|
||||||
|
[amt1, maxamt] = GetAmount("RocketAmmo");
|
||||||
|
DrawString(mIndexFont, FormatNumber(amt1, 3), (288, 17), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
DrawString(mIndexFont, FormatNumber(maxamt, 3), (314, 17), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
|
||||||
|
[amt1, maxamt] = GetAmount("Cell");
|
||||||
|
DrawString(mIndexFont, FormatNumber(amt1, 3), (288, 23), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
DrawString(mIndexFont, FormatNumber(maxamt, 3), (314, 23), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
|
||||||
|
if (deathmatch || teamplay)
|
||||||
|
{
|
||||||
|
DrawString(mHUDFont, FormatNumber(CPlayer.FragCount, 3), (138, 3), DI_TEXT_ALIGN_RIGHT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawImage("STARMS", (104, 0), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(2)? "STYSNUM2" : "STGNUM2", (111, 3), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(3)? "STYSNUM3" : "STGNUM3", (123, 3), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(4)? "STYSNUM4" : "STGNUM4", (135, 3), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(5)? "STYSNUM5" : "STGNUM5", (111, 13), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(6)? "STYSNUM6" : "STGNUM6", (123, 13), DI_ITEM_OFFSETS);
|
||||||
|
DrawImage(CPlayer.HasWeaponsInSlot(7)? "STYSNUM7" : "STGNUM7", (135, 13), DI_ITEM_OFFSETS);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (multiplayer)
|
||||||
|
{
|
||||||
|
DrawImage("STFBANY", (143, 0), DI_ITEM_OFFSETS|DI_TRANSLATABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CPlayer.mo.InvSel != null)
|
||||||
|
{
|
||||||
|
//drawinventorybar Doom, 7, INDEXFONT, 50, 170;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DrawTexture(GetMugShot(5), (143, 0), DI_ITEM_OFFSETS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void DrawFullScreenStuff ()
|
protected void DrawFullScreenStuff ()
|
||||||
|
@ -91,7 +166,7 @@ class DoomStatusBar : BaseStatusBar
|
||||||
}
|
}
|
||||||
if (deathmatch)
|
if (deathmatch)
|
||||||
{
|
{
|
||||||
DrawString(mHUDFont, FormatNumber(CPlayer.fragSum(), 3), (-3, 1), DI_TEXT_ALIGN_RIGHT);
|
DrawString(mHUDFont, FormatNumber(CPlayer.FragCount, 3), (-3, 1), DI_TEXT_ALIGN_RIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw the keys. This does not use a special draw function like SBARINFO because the specifics will be different for each mod
|
// Draw the keys. This does not use a special draw function like SBARINFO because the specifics will be different for each mod
|
||||||
|
@ -122,61 +197,3 @@ class DoomStatusBar : BaseStatusBar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
statusbar normal // Standard Doom Status bar
|
|
||||||
{
|
|
||||||
drawimage "STBAR", 0, 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_DOOM, untranslated, ammo(Clip), 288, 173;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammo(Shell), 288, 179;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammo(RocketAmmo), 288, 185;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammo(Cell), 288, 191;
|
|
||||||
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammocapacity(Clip), 314, 173;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammocapacity(Shell), 314, 179;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, ammocapacity(RocketAmmo), 314, 185;
|
|
||||||
drawnumber 3, INDEXFONT_DOOM, untranslated, 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", 143, 169;
|
|
||||||
}
|
|
||||||
drawselectedinventory alternateonempty, INDEXFONT, 143, 168
|
|
||||||
{
|
|
||||||
drawmugshot "STF", 5, 143, 168;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
statusbar inventory // Standard bar overlay (ZDoom Addition)
|
|
||||||
{
|
|
||||||
drawinventorybar Doom, 7, INDEXFONT, 50, 170;
|
|
||||||
}
|
|
||||||
|
|
||||||
statusbar inventoryfullscreen, fullscreenoffsets // ZDoom HUD overlay.
|
|
||||||
{
|
|
||||||
}
|
|
||||||
*/
|
|
|
@ -129,6 +129,7 @@ class BaseStatusBar native ui
|
||||||
DI_TEXT_ALIGN_CENTER = 0x1000000,
|
DI_TEXT_ALIGN_CENTER = 0x1000000,
|
||||||
|
|
||||||
DI_ALPHAMAPPED = 0x2000000,
|
DI_ALPHAMAPPED = 0x2000000,
|
||||||
|
DI_NOSHADOW = 0x4000000,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum IconType
|
enum IconType
|
||||||
|
@ -151,14 +152,6 @@ class BaseStatusBar native ui
|
||||||
HEXENARMOR_AMULET,
|
HEXENARMOR_AMULET,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SBGameModes
|
|
||||||
{
|
|
||||||
GAMEMODE_SINGLEPLAYER = 0x1,
|
|
||||||
GAMEMODE_COOPERATIVE = 0x2,
|
|
||||||
GAMEMODE_DEATHMATCH = 0x4,
|
|
||||||
GAMEMODE_TEAMGAME = 0x8
|
|
||||||
};
|
|
||||||
|
|
||||||
enum AmmoModes
|
enum AmmoModes
|
||||||
{
|
{
|
||||||
AMMO_PRIMARY,
|
AMMO_PRIMARY,
|
||||||
|
@ -226,7 +219,7 @@ class BaseStatusBar native ui
|
||||||
virtual bool MustDrawLog(int state) { return true; }
|
virtual bool MustDrawLog(int state) { return true; }
|
||||||
|
|
||||||
native void RefreshBackground () const;
|
native void RefreshBackground () const;
|
||||||
native TextureID GetMugshot(PlayerInfo player, String default_face, int accuracy, int stateflags=MugShot.STANDARD);
|
native TextureID GetMugshot(int accuracy, int stateflags=MugShot.STANDARD, String default_face = "STF");
|
||||||
|
|
||||||
// These functions are kept native solely for performance reasons. They get called repeatedly and can drag down performance easily if they get too slow.
|
// These functions are kept native solely for performance reasons. They get called repeatedly and can drag down performance easily if they get too slow.
|
||||||
native Inventory ValidateInvFirst (int numVisible) const;
|
native Inventory ValidateInvFirst (int numVisible) const;
|
||||||
|
@ -338,6 +331,14 @@ class BaseStatusBar native ui
|
||||||
return armor? armor.Amount : 0;
|
return armor? armor.Amount : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int, int GetAmount(class<Inventory> item)
|
||||||
|
{
|
||||||
|
let it = CPlayer.mo.FindInventory(item);
|
||||||
|
int ret1 = it? it.Amount : GetDefaultByType(item).Amount;
|
||||||
|
int ret2 = it? it.MaxAmount : GetDefaultByType(item).MaxAmount;
|
||||||
|
return ret1, ret2;
|
||||||
|
}
|
||||||
|
|
||||||
int GetMaxAmount(class<Inventory> item)
|
int GetMaxAmount(class<Inventory> item)
|
||||||
{
|
{
|
||||||
let it = CPlayer.mo.FindInventory(item);
|
let it = CPlayer.mo.FindInventory(item);
|
||||||
|
@ -393,20 +394,6 @@ class BaseStatusBar native ui
|
||||||
//
|
//
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
//============================================================================
|
|
||||||
//
|
|
||||||
// checks current game mode against a flag mask
|
|
||||||
//
|
|
||||||
//============================================================================
|
|
||||||
|
|
||||||
bool CheckGameMode(int ValidModes)
|
|
||||||
{
|
|
||||||
return (!multiplayer && (ValidModes & GAMEMODE_SINGLEPLAYER)) ||
|
|
||||||
(deathmatch && (ValidModes & GAMEMODE_DEATHMATCH)) ||
|
|
||||||
(multiplayer && !deathmatch && (ValidModes & GAMEMODE_COOPERATIVE)) ||
|
|
||||||
(teamplay && (ValidModes & GAMEMODE_TEAMGAME));
|
|
||||||
}
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
//
|
//
|
||||||
// checks ammo use of current weapon
|
// checks ammo use of current weapon
|
||||||
|
|
Loading…
Reference in a new issue