- Exhumed alt hud.

This commit is contained in:
Christoph Oelckers 2022-10-17 21:22:13 +02:00
parent 7808dae81b
commit 2fbee8faf5
4 changed files with 82 additions and 1 deletions

View file

@ -1,5 +1,8 @@
x(Torch1, 338)
x(Torch2, 350)
x(WeaponSpriteMagnum, 488)
x(WeaponSpriteM60, 490)
x(WeaponSpriteFlamethrower, 491)
x(TileRamsesGold, 590)
x(TileRamsesWorkTile, 591)
x(TileRamsesNormal, 592)
@ -8,9 +11,15 @@ x(KeyIcon1, 675)
x(KeyIcon2, 679)
x(KeyIcon3, 683)
x(KeyIcon4, 687)
x(AmmoSpriteMagnum, 877)
x(AmmoSpriteGrenade, 878)
x(AmmoSpriteFuel, 879)
x(AmmoSpriteM60_1, 881)
x(WeaponSpriteCobra, 899)
x(CrosshairTile, 1579)
x(SkullJaw, 3437)
x(PowerslaveLogo, 3442)
x(AmmoSpriteCobra, 3457)
x(MenuNewGameTile, 3460)
x(MenuLoadGameTile, 3461)
x(MenuMusicTile, 3465)

View file

@ -2778,7 +2778,8 @@ DEFINE_FIELD_X(ExhumedPlayer, Player, keys);
DEFINE_FIELD_X(ExhumedPlayer, Player, nMagic);
DEFINE_FIELD_X(ExhumedPlayer, Player, nItem);
DEFINE_FIELD_X(ExhumedPlayer, Player, items);
DEFINE_FIELD_X(ExhumedPlayer, Player, nAmmo); // TODO - kMaxWeapons?
DEFINE_FIELD_X(ExhumedPlayer, Player, nAmmo); // TODO - kMaxWeapons?
DEFINE_FIELD_X(ExhumedPlayer, Player, nPlayerWeapons);
DEFINE_FIELD_X(ExhumedPlayer, Player, nCurrentWeapon);
DEFINE_FIELD_X(ExhumedPlayer, Player, nSeqSize2);

View file

@ -52,6 +52,7 @@ struct ExhumedPlayer native
native int16 nItem;
native uint8 items[8];
native int16 nAmmo[7]; // TODO - kMaxWeapons?
native int16 nPlayerWeapons;
native int16 nCurrentWeapon;
native int16 nSeqSize2;

View file

@ -170,6 +170,12 @@ class ExhumedStatusBar : RazeStatusBar
return chunk.tex;
}
String GetStatusSequenceName(int nSequence, int frameindex)
{
let texid = GetStatusSequencePic(nSequence, frameindex);
return TexMan.GetName(texid);
}
//---------------------------------------------------------------------------
//
// Frag display - very ugly and may have to be redone if multiplayer support gets added.
@ -803,4 +809,68 @@ class ExhumedStatusBar : RazeStatusBar
}
DoLevelStats(hud_size == Hud_Nothing ? 0 : hud_size == Hud_full ? 20 : 45, info);
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
override void GetAllStats(HudStats stats)
{
stats.Clear();
stats.info.fontscale = 1;
stats.info.spacing = 8;
stats.info.letterColor = Font.TEXTCOLOR_RED;
stats.info.standardColor = Font.TEXTCOLOR_UNTRANSLATED;
stats.info.completeColor = Font.TEXTCOLOR_DARKGREEN;
stats.info.statfont = SmallFont;
let pp = Exhumed.GetViewPlayer();
stats.healthicon = GetStatusSequenceName(125, 0);
stats.healthvalue = pp.nHealth >> 3;
SetMagicFrame(pp);
stats.armoricons.Push(GetStatusSequenceName(nItemSeq, nItemFrame));
stats.armorvalues.Push(pp.nMagic / 10);
if (pp.isUnderwater())
{
let img = GetStatusSequenceName(133, airframe);
stats.armoricons.Push(img);
stats.armorvalues.Push(-1);
}
int nKeys = pp.keys;
for (int i = 0; i < 4; i++)
{
if (nKeys & (0x1000 << i))
{
stats.keyicons.Push(String.Format("KeyIcon%d", i+1));
}
}
static const string weaponicons[] = { "", "WeaponSpriteMagnum", "WeaponSpriteM60", "WeaponSpriteFlamethrower", "", "WeaponSpriteCobra", "" /* sprite for ring?*/};
for (int i = 0; i < weaponicons.Size(); i++)
{
if (pp.nPlayerWeapons & (1 << i) && weaponicons[i] != "")
{
if (pp.nCurrentWeapon == i) stats.weaponselect = stats.weaponicons.Size();
stats.weaponicons.Push(weaponicons[i]);
}
}
static const string ammoicons[] = { "", "AmmoSpriteMagnum", "AmmoSpriteM60_1", "AmmoSpriteFuel", "AmmoSpriteGrenade", "AmmoSpriteCobra", "-" /* sprite for ring?*/};
for (int i = 0; i < ammoicons.Size(); i++)
{
if (pp.nCurrentWeapon == i) stats.ammoselect = stats.ammoicons.Size();
stats.ammoicons.Push(ammoicons[i]);
stats.ammovalues.Push(pp.nAmmo[i]);
stats.ammomaxvalues.Push(300);
}
}
}