2019-05-30 19:24:47 +00:00
|
|
|
#pragma once
|
2019-06-14 23:34:19 +00:00
|
|
|
#include "Sprite2d.h"
|
2019-05-30 19:24:47 +00:00
|
|
|
|
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
|
|
|
|
|
2019-06-17 00:10:55 +00:00
|
|
|
enum eItems
|
|
|
|
{
|
2019-06-20 00:31:03 +00:00
|
|
|
ITEM_NONE = -1,
|
2019-06-17 00:10:55 +00:00
|
|
|
ITEM_ARMOUR = 3,
|
|
|
|
ITEM_HEALTH = 4,
|
|
|
|
ITEM_RADAR = 8
|
|
|
|
};
|
|
|
|
|
2020-05-19 14:39:19 +00:00
|
|
|
// 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,
|
|
|
|
};
|
|
|
|
|
2019-06-17 00:10:55 +00:00
|
|
|
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
|
|
|
};
|
|
|
|
|
2019-06-17 00:10:55 +00:00
|
|
|
class CHud
|
|
|
|
{
|
2019-05-30 19:24:47 +00:00
|
|
|
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;
|
2019-06-28 11:28:42 +00:00
|
|
|
static wchar *m_pLastZoneName;
|
2019-06-17 00:10:55 +00:00
|
|
|
static wchar *m_ZoneToPrint;
|
2020-04-10 15:06:49 +00:00
|
|
|
static wchar *m_VehicleName;
|
2019-06-28 11:28:42 +00:00
|
|
|
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;
|
2020-07-08 14:26:23 +00:00
|
|
|
static bool m_HideRadar;
|
2020-10-10 11:23:17 +00:00
|
|
|
static int32 m_ClockState;
|
2019-06-28 11:28:42 +00:00
|
|
|
|
|
|
|
// These aren't really in CHud
|
2019-06-25 00:34:29 +00:00
|
|
|
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
|
|
|
|
2020-05-19 14:39: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;
|
2020-05-19 14:39:19 +00:00
|
|
|
|
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
|
2020-05-21 13:25:46 +00:00
|
|
|
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);
|
2020-07-30 12:11:06 +00:00
|
|
|
static bool IsHelpMessageBeingDisplayed(void);
|
2019-06-17 00:10:55 +00:00
|
|
|
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();
|
2020-05-19 14:39:19 +00:00
|
|
|
static float DrawFadeState(DRAW_FADE_STATE, int);
|
2020-09-29 19:53:12 +00:00
|
|
|
static void ResetWastedText(void);
|
2019-06-17 00:10:55 +00:00
|
|
|
};
|