mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
- draft version of the secondary fullscreen HUD.
All elements are present, but the icons are still missing because I do not know the proper numbers yet.
This commit is contained in:
parent
25e8636a60
commit
f7291960c3
2 changed files with 98 additions and 60 deletions
|
@ -36,56 +36,7 @@ void MNU_DrawString(int x, int y, const char* string, int shade, int pal, int al
|
|||
void MNU_DrawSmallString(int x, int y, const char* string, int shade, int pal, int align = -1, double alpha = 1);
|
||||
void MNU_DrawStringLarge(int x, int y, const char* string, int shade = 0, int align = -1);
|
||||
|
||||
#define pic_none 0
|
||||
#define pic_radiobuttn1 2816
|
||||
#define pic_radiobuttn2 2817
|
||||
#define pic_newgame 2819
|
||||
#define pic_load 2820
|
||||
#define pic_save 2821
|
||||
#define pic_options 2822
|
||||
#define pic_orderinfo 2823
|
||||
#define pic_todemo 2824
|
||||
#define pic_togame 2825
|
||||
#define pic_quit 2826
|
||||
#define pic_newgametitl 2827
|
||||
#define pic_training 2828
|
||||
#define pic_easy 2829
|
||||
#define pic_normal 2830
|
||||
#define pic_hard 2831
|
||||
#define pic_impossible 2832
|
||||
#define pic_optionstitl 2833
|
||||
#define pic_endgame 2834
|
||||
#define pic_detail 2835
|
||||
#define pic_high 2836
|
||||
#define pic_low 2837
|
||||
#define pic_mousesense 2838
|
||||
#define pic_soundvol 2839
|
||||
#define pic_toggles 2845
|
||||
#define pic_togglestitl 2844
|
||||
#define pic_mousenable 2840
|
||||
#define pic_joyenable 2841
|
||||
#define pic_bobbing 2842
|
||||
#define pic_slidelend 2846
|
||||
#define pic_slidebar 2847
|
||||
#define pic_sliderend 2848
|
||||
#define pic_sliderknob 2849
|
||||
#define pic_shuriken1 2850
|
||||
#define pic_yinyang 2870
|
||||
#define pic_soundtitl 2870
|
||||
#define pic_sndfxvol 2871
|
||||
#define pic_musicvol 2872
|
||||
#define pic_episode1 2873
|
||||
#define pic_episode2 2874
|
||||
#define pic_episode3 2875
|
||||
#define pic_modem 2876
|
||||
#define pic_scrsize 2877
|
||||
#define pic_loadsavecursor 2918
|
||||
#define pic_loadgame 2915
|
||||
#define pic_savegame 2916
|
||||
#define pic_loading 2917
|
||||
#define pic_loadsavescreen 2919
|
||||
#define pic_loadsavescreenbak 2922
|
||||
#define pic_savedescr 2924
|
||||
#define pic_shadow_warrior 2366
|
||||
|
||||
#define m_defshade 2
|
||||
|
|
|
@ -67,7 +67,7 @@ static const short icons[] = {
|
|||
|
||||
class DSWStatusBar : public DBaseStatusBar
|
||||
{
|
||||
DHUDFont miniFont;
|
||||
DHUDFont miniFont, numberFont;
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -145,6 +145,7 @@ class DSWStatusBar : public DBaseStatusBar
|
|||
public:
|
||||
DSWStatusBar()
|
||||
{
|
||||
numberFont = { BigFont, 0, Off, 1, 1 };
|
||||
miniFont = { SmallFont2, 0, Off, 1, 1 };
|
||||
}
|
||||
|
||||
|
@ -424,7 +425,7 @@ private:
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void DisplayKeys(PLAYERp pp)
|
||||
void DisplayKeys(PLAYERp pp, double xs, double ys)
|
||||
{
|
||||
double x, y;
|
||||
int row, col;
|
||||
|
@ -453,8 +454,8 @@ private:
|
|||
{
|
||||
if (pp->HasKey[i])
|
||||
{
|
||||
x = PANEL_KEYS_BOX_X + PANEL_KEYS_XOFF + (row * xsize);
|
||||
y = PANEL_BOX_Y + PANEL_KEYS_YOFF + (col * ysize);
|
||||
x = xs + PANEL_KEYS_XOFF + (row * xsize);
|
||||
y = ys + PANEL_KEYS_YOFF + (col * ysize);
|
||||
DrawGraphic(tileGetTexture(StatusKeyPics[i]), x, y, DI_ITEM_LEFT_TOP, 1, -1, -1, 1, 1);
|
||||
}
|
||||
i++;
|
||||
|
@ -469,8 +470,8 @@ private:
|
|||
{
|
||||
if (pp->HasKey[i + 4])
|
||||
{
|
||||
x = PANEL_KEYS_BOX_X + PANEL_KEYS_XOFF + (row * xsize);
|
||||
y = PANEL_BOX_Y + PANEL_KEYS_YOFF + (col * ysize);
|
||||
x = xs + PANEL_KEYS_XOFF + (row * xsize);
|
||||
y = ys + PANEL_KEYS_YOFF + (col * ysize);
|
||||
DrawGraphic(tileGetTexture(StatusKeyPics[i + 4]), x, y, DI_ITEM_LEFT_TOP, 1, -1, -1, 1, 1);
|
||||
}
|
||||
i++;
|
||||
|
@ -523,13 +524,13 @@ private:
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void PlayerUpdateInventoryState(PLAYERp pp, int InventoryBoxX, int InventoryBoxY, int InventoryXoff, int InventoryYoff)
|
||||
void PlayerUpdateInventoryState(PLAYERp pp, double InventoryBoxX, double InventoryBoxY, int InventoryXoff, int InventoryYoff)
|
||||
{
|
||||
char ds[32];
|
||||
INVENTORY_DATAp id = &InventoryData[pp->InventoryNum];
|
||||
|
||||
int x = InventoryBoxX + INVENTORY_STATE_XOFF + InventoryXoff;
|
||||
int y = InventoryBoxY + INVENTORY_STATE_YOFF + InventoryYoff;
|
||||
double x = InventoryBoxX + INVENTORY_STATE_XOFF + InventoryXoff;
|
||||
double y = InventoryBoxY + INVENTORY_STATE_YOFF + InventoryYoff;
|
||||
|
||||
if (TEST(id->Flags, INVF_AUTO_USE))
|
||||
{
|
||||
|
@ -671,7 +672,7 @@ private:
|
|||
DisplayPanelNumber(PANEL_AMMO_BOX_X + PANEL_AMMO_XOFF, PANEL_BOX_Y + PANEL_AMMO_YOFF, pp->WpnAmmo[u->WeaponNum]);
|
||||
PlayerUpdateWeaponSummaryAll(pp);
|
||||
if (gNet.MultiGameType != MULTI_GAME_COMMBAT)
|
||||
DisplayKeys(pp);
|
||||
DisplayKeys(pp, PANEL_KEYS_BOX_X, PANEL_BOX_Y);
|
||||
else if (gNet.TimeLimit)
|
||||
DisplayTimeLimit(pp);
|
||||
DisplayBarInventory(pp);
|
||||
|
@ -745,6 +746,92 @@ private:
|
|||
DisplayMinibarInventory(pp);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// Fullscreen HUD variant #1
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DrawHUD2()
|
||||
{
|
||||
BeginHUD(320, 200, 1);
|
||||
const int HEALTH = 0, SHIELD = 0;
|
||||
|
||||
auto pp = Player + screenpeek;
|
||||
USERp u = User[pp->PlayerSprite];
|
||||
|
||||
double imgScale = (numberFont.mFont->GetHeight()) * 0.7;
|
||||
|
||||
//
|
||||
// Health
|
||||
//
|
||||
auto imgHealth = tileGetTexture(HEALTH);
|
||||
auto healthScale = imgScale / imgHealth->GetDisplayHeight();
|
||||
DrawGraphic(imgHealth, 2, -1.5, DI_ITEM_LEFT_BOTTOM, 1., -1, -1, healthScale, healthScale);
|
||||
|
||||
FString format;
|
||||
if (!althud_flashing || u->Health > (u->MaxHealth >> 2) || ((int)totalclock & 32))
|
||||
{
|
||||
int s = -8;
|
||||
if (althud_flashing && u->Health > u->MaxHealth)
|
||||
s += (sintable[((int)totalclock << 5) & 2047] >> 10);
|
||||
int intens = clamp(255 - 4 * s, 0, 255);
|
||||
auto pe = PalEntry(255, intens, intens, intens);
|
||||
format.Format("%d", u->Health);
|
||||
SBar_DrawString(this, &numberFont, format, 25, -numberFont.mFont->GetHeight(), DI_TEXT_ALIGN_LEFT, CR_UNTRANSLATED, 1, 0, 0, 1, 1);
|
||||
}
|
||||
|
||||
//
|
||||
// Armor
|
||||
//
|
||||
auto imgArmor = tileGetTexture(SHIELD);
|
||||
auto armorScale = imgScale / imgArmor->GetDisplayHeight();
|
||||
DrawGraphic(imgArmor, 77.375, -1.5, DI_ITEM_LEFT_BOTTOM, 1., -1, -1, armorScale, armorScale);
|
||||
|
||||
format.Format("%d", pp->Armor);
|
||||
SBar_DrawString(this, &numberFont, format, 95, -numberFont.mFont->GetHeight(), DI_TEXT_ALIGN_LEFT, CR_UNTRANSLATED, 1, 0, 0, 1, 1);
|
||||
|
||||
//
|
||||
// Weapon
|
||||
//
|
||||
int weapon = u->WeaponNum;
|
||||
|
||||
if (u->WeaponNum != WPN_SWORD && u->WeaponNum != WPN_FIST && (!althud_flashing || (int)totalclock & 32 || pp->WpnAmmo[weapon] > (DamageData[weapon].max_ammo / 10)))
|
||||
{
|
||||
format.Format("%d", pp->WpnAmmo[weapon]);
|
||||
SBar_DrawString(this, &numberFont, format, -3, -numberFont.mFont->GetHeight(), DI_TEXT_ALIGN_RIGHT, CR_UNTRANSLATED, 1, 0, 0, 1, 1);
|
||||
|
||||
int wicon = 0;// ammo_sprites[weapon];
|
||||
//if (wicon > 0)
|
||||
{
|
||||
auto imgWeap = tileGetTexture(wicon);
|
||||
auto weapScale = imgScale / imgWeap->GetDisplayHeight();
|
||||
auto imgX = 20.;
|
||||
auto strlen = format.Len();
|
||||
if (strlen > 1)
|
||||
{
|
||||
auto scaler = strlen - 1;
|
||||
imgX += ((imgX / 2.) * scaler) + ((imgX / (10.)) * scaler);
|
||||
}
|
||||
DrawGraphic(imgWeap, -imgX, -1.5, DI_ITEM_RIGHT_BOTTOM, 1, -1, -1, weapScale, weapScale);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Selected inventory item
|
||||
//
|
||||
|
||||
PlayerUpdateInventoryPic(pp, 148, -21.5, 1, 1);
|
||||
PlayerUpdateInventoryState(pp, 148, -21.5, 1, 1);
|
||||
PlayerUpdateInventoryPercent(pp, 148, -21.5, 1, 1);
|
||||
|
||||
//
|
||||
// keys
|
||||
//
|
||||
DisplayKeys(pp, -80, -20);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
@ -852,7 +939,7 @@ public:
|
|||
align = DI_SCREEN_CENTER_TOP;
|
||||
inv_x = -80 * hud_scale / 100.;
|
||||
inv_y = -70 * hud_scale / 100.;
|
||||
DrawHUD1(); // todo: Implement a proper view for this
|
||||
DrawHUD2(); // todo: Implement a proper view for this
|
||||
}
|
||||
else if (hud_size == Hud_Mini)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue