re3/src/render/Hud.h

140 lines
3.4 KiB
C
Raw Normal View History

#pragma once
2019-06-14 23:34:19 +00:00
#include "Sprite2d.h"
2020-10-10 11:23:17 +00:00
#define HELP_MSG_LENGTH 256
#define HUD_TEXT_SCALE_X 0.7f
#define HUD_TEXT_SCALE_Y 1.25f
enum eItems
{
ITEM_NONE = -1,
ITEM_ARMOUR = 3,
ITEM_HEALTH = 4,
ITEM_RADAR = 8
};
// Thanks for vague name, R*
enum DRAW_FADE_STATE
{
HUD_WANTED_FADING = 0,
HUD_ENERGY_FADING,
HUD_SCORE_FADING,
HUD_WEAPON_FADING,
};
// My name
enum eFadeOperation
{
FADED_OUT = 0,
START_FADE_OUT,
FADING_IN,
FADING_OUT,
FADE_DISABLED = 5,
};
enum eSprites
{
2019-06-14 23:34:19 +00:00
HUD_FIST,
2020-10-10 11:23:17 +00:00
HUD_SITEROCKET = 41,
HUD_RADARDISC = 50,
HUD_SITESNIPER = 63,
2020-04-10 15:06:49 +00:00
HUD_SITEM16,
2020-10-10 11:23:17 +00:00
HUD_SITELASER,
HUD_LASERDOT,
HUD_VIEWFINDER,
HUD_BLEEDER,
NUM_HUD_SPRITES = 69,
2019-06-14 23:34:19 +00:00
};
class CHud
{
public:
2020-04-10 15:06:49 +00:00
static CSprite2d Sprites[NUM_HUD_SPRITES];
2020-10-10 11:23:17 +00:00
static wchar m_HelpMessage[HELP_MSG_LENGTH];
static wchar m_LastHelpMessage[HELP_MSG_LENGTH];
2020-04-10 15:06:49 +00:00
static uint32 m_HelpMessageState;
static uint32 m_HelpMessageTimer;
static int32 m_HelpMessageFadeTimer;
2020-10-10 11:23:17 +00:00
static wchar m_HelpMessageToPrint[HELP_MSG_LENGTH];
static float m_HelpMessageDisplayTime;
static bool m_HelpMessageDisplayForever;
2020-04-10 15:06:49 +00:00
static bool m_HelpMessageQuick;
static uint32 m_ZoneState;
2019-06-14 23:34:19 +00:00
static int32 m_ZoneFadeTimer;
2020-04-10 15:06:49 +00:00
static uint32 m_ZoneNameTimer;
static wchar *m_pZoneName;
static wchar *m_pLastZoneName;
static wchar *m_ZoneToPrint;
2020-04-10 15:06:49 +00:00
static wchar *m_VehicleName;
static wchar *m_pLastVehicleName;
static wchar *m_pVehicleNameToPrint;
2020-04-10 15:06:49 +00:00
static uint32 m_VehicleState;
2019-06-14 23:34:19 +00:00
static int32 m_VehicleFadeTimer;
2020-04-10 15:06:49 +00:00
static uint32 m_VehicleNameTimer;
static wchar m_Message[256];
static wchar m_PagerMessage[256];
static bool m_Wants_To_Draw_Hud;
static bool m_Wants_To_Draw_3dMarkers;
static wchar m_BigMessage[6][128];
static int16 m_ItemToFlash;
static bool m_HideRadar;
2020-10-10 11:23:17 +00:00
static int32 m_ClockState;
// These aren't really in CHud
static float BigMessageInUse[6];
static float BigMessageAlpha[6];
static float BigMessageX[6];
2020-04-10 15:06:49 +00:00
static float OddJob2OffTimer;
2020-10-10 11:23:17 +00:00
static bool CounterOnLastFrame[NUMONSCREENCOUNTERS];
2020-04-10 15:06:49 +00:00
static float OddJob2XOffset;
2020-10-10 11:23:17 +00:00
static uint16 CounterFlashTimer[NUMONSCREENCOUNTERS];
2020-04-10 15:06:49 +00:00
static uint16 OddJob2Timer;
static bool TimerOnLastFrame;
static int16 OddJob2On;
static uint16 TimerFlashTimer;
static int16 PagerSoundPlayed;
static int32 SpriteBrightness;
static float PagerXOffset;
static int16 PagerTimer;
static int16 PagerOn;
2019-06-14 23:34:19 +00:00
static uint32 m_WantedFadeTimer;
static uint32 m_WantedState;
static uint32 m_WantedTimer;
static uint32 m_EnergyLostFadeTimer;
static uint32 m_EnergyLostState;
static uint32 m_EnergyLostTimer;
static uint32 m_DisplayScoreFadeTimer;
static uint32 m_DisplayScoreState;
static uint32 m_DisplayScoreTimer;
static uint32 m_WeaponFadeTimer;
static uint32 m_WeaponState;
static uint32 m_WeaponTimer;
static uint32 m_LastDisplayScore;
2020-05-21 23:44:01 +00:00
static uint32 m_LastWanted;
2020-10-10 11:23:17 +00:00
static uint32 m_LastWeapon;
static uint32 m_LastTimeEnergyLost;
2019-06-14 23:34:19 +00:00
public:
2019-06-27 07:47:03 +00:00
static void Draw();
static void DrawAfterFade();
static void GetRidOfAllHudMessages();
2020-05-21 13:47:48 +00:00
#ifdef RELOADABLES
static void ReloadTXD();
2020-05-21 13:47:48 +00:00
#endif
2019-06-14 23:34:19 +00:00
static void Initialise();
static void ReInitialise();
2020-10-10 11:23:17 +00:00
static void SetBigMessage(wchar *message, uint16 style);
static void SetHelpMessage(wchar *message, bool quick, bool displayForever = false);
static bool IsHelpMessageBeingDisplayed(void);
static void SetMessage(wchar *message);
static void SetPagerMessage(wchar *message);
2019-06-27 07:47:03 +00:00
static void SetVehicleName(wchar *name);
static void SetZoneName(wchar *name);
static void Shutdown();
static float DrawFadeState(DRAW_FADE_STATE, int);
static void ResetWastedText(void);
};