16#include <vrvCore/DtBoundingBox.h>
36constexpr const char*
hud =
"hud";
42constexpr const char*
nvg =
"nvg";
73class DtChannelConfiguration;
79class DtOverlayRenderer;
117 virtual void tick(
double dt)
override;
121 virtual const char*
type()
const override;
340 virtual void resetPostureQuads(makVrv::DtOverlayRenderer* overlay,
const std::vector<HudImageConfig>& configs);
399 virtual void createQuads(makVrv::DtOverlayRenderer* overlay,
const std::vector<HudImageConfig>& configs)
override;
Handle class for safe access to attributes.
Definition attributeHandle.h:30
Type-specific handle class for attributes.
Definition attributeHandle.h:181
DtHudUpdater()
Constructor.
virtual void updateVisionOverlays(bool visible)
Updates vision enhancement overlays like NVG.
virtual void updateReticle(bool visible)
Updates the weapon reticle display.
makVrv::DtTextProxy * myLauncherAmmoText
launcher ammunition count text
Definition humanHudUpdater.h:429
virtual void setupHealthElements()
Sets up health bar and related HUD elements.
makVrv::DtQuadProxy * myHealthBarBacker
Health bar background quad.
Definition humanHudUpdater.h:513
virtual void updateFatigueElements(bool visible)
Updates fatigue-related HUD elements.
virtual void updateGunReticles(bool visible)
Updates gun crosshair display.
makVrv::DtTextProxy * myFatigueText
Fatigue status gui related variables.
Definition humanHudUpdater.h:525
makVrv::DtQuadProxy * myCrouchingQuad
Crouching posture indicator quad.
Definition humanHudUpdater.h:468
virtual void onViewportChanged() override
Handles viewport change events.
virtual void updateGrenadeReticle(bool visible)
Updates grenade reticle display.
virtual void onDeleteAll() override
Called when all HUD elements are being deleted.
virtual bool postInitialize() override
Performs post-initialization setup.
virtual const char * type() const override
Returns the component type identifier.
double myMaxAimingErrorCircleRadius
Maximum aiming error circle radius in pixels.
Definition humanHudUpdater.h:543
virtual void setupFatigueElements()
Sets up fatigue bar and related HUD elements.
makVre::DtMenuCursor * myLocationCursor
Definition humanHudUpdater.h:560
virtual void updateMissileLauncher(bool visible=true, bool reset=false)
Updates missile launcher display elements.
std::vector< makVrv::DtTextProxy * > myClipTexts
Vector of clip count text proxies.
Definition humanHudUpdater.h:441
std::vector< makVrv::DtTextProxy * > myAmmoTexts
Vector of ammunition count text proxies.
Definition humanHudUpdater.h:438
virtual void positionParachuteText()
Positions parachute-related text elements on the HUD.
double myMaxAimingError
Maximum aiming error in radians.
Definition humanHudUpdater.h:549
virtual void onStart() override
Called when this HUD updater is started.
DtAttributeHandleType< DtEntityIdentifier > myLauncherId
Definition humanHudUpdater.h:582
makVrv::DtBoundingBox myNVGCrosshairOriginalBoundingBox
Original bounding box of the NVG crosshair.
Definition humanHudUpdater.h:423
virtual void updateHealthElements(bool visible)
Updates health-related HUD elements.
virtual void onWeaponIndexChanged(int index)
Handles changes in the current weapon index.
makVrv::DtQuadProxy * myNVGOverlayQuad
Night vision goggles overlay quad.
Definition humanHudUpdater.h:407
virtual void updateWindOverlay()
Updates wind indicator display.
makVrv::DtQuadProxy * myFatigueBarBacker
Fatigue bar background quad.
Definition humanHudUpdater.h:531
DtWeaponResourceLogic * myWeaponResourceLogic
Pointer to the weapon resource logic.
Definition humanHudUpdater.h:566
virtual void updateAll() override
Updates all HUD elements.
float myOriginalHealthBarWidth
Original width of the health bar.
Definition humanHudUpdater.h:516
ColorQuads
Enumeration of colored quad indices used in the HUD.
Definition humanHudUpdater.h:376
@ FATIGUE_BAR
Fatigue bar colored quad.
Definition humanHudUpdater.h:378
@ HEALTH_BAR
Health bar colored quad.
Definition humanHudUpdater.h:377
@ COLOR_QUADS_CONFIG_COUNT
Total number of colored quad configurations.
Definition humanHudUpdater.h:379
makVrv::DtQuadProxy * myCrosshairQuad
Standard crosshair quad.
Definition humanHudUpdater.h:410
Textures
Enumeration of texture indices used in the HUD.
Definition humanHudUpdater.h:348
@ CURRENT_WEAPON_DOWN
Current weapon down indicator texture.
Definition humanHudUpdater.h:365
@ FIRST_WEAPON_TEXTURE
Index of first weapon-specific texture.
Definition humanHudUpdater.h:370
@ WEAPON_PROTOTYPE
Generic weapon prototype texture.
Definition humanHudUpdater.h:366
@ CIVILIAN_STANDING_TEX
Civilian standing posture indicator texture.
Definition humanHudUpdater.h:357
@ DRONE_VIEW_FRAME
Drone view frame texture.
Definition humanHudUpdater.h:369
@ NVG_CROSSHAIR
Night vision crosshair texture.
Definition humanHudUpdater.h:362
@ CROSSHAIR
Standard crosshair texture.
Definition humanHudUpdater.h:361
@ FATIGUE_BAR_BACKER
Background for fatigue bar.
Definition humanHudUpdater.h:352
@ CROUCHING_TEX
Crouching posture indicator texture.
Definition humanHudUpdater.h:354
@ DRONE_TEX
Drone indicator texture.
Definition humanHudUpdater.h:368
@ HEALTH_BAR_BACKER
Background for health bar.
Definition humanHudUpdater.h:351
@ STANDING_TEX
Standing posture indicator texture.
Definition humanHudUpdater.h:353
@ CURRENT_WEAPON_STOWED
Current weapon stowed indicator texture.
Definition humanHudUpdater.h:364
@ TEXTURES_CONFIG_COUNT
Total number of texture configurations.
Definition humanHudUpdater.h:371
@ PRONE_TEX
Prone posture indicator texture.
Definition humanHudUpdater.h:355
@ WEAPON_AIMING_OVERLAY
Weapon aiming overlay texture.
Definition humanHudUpdater.h:350
@ NVG_OVERLAY
Night vision goggles overlay texture.
Definition humanHudUpdater.h:349
@ CIVILIAN_PRONE_TEX
Civilian prone posture indicator texture.
Definition humanHudUpdater.h:359
@ MISSILE_LAUNCHER
Missile launcher texture.
Definition humanHudUpdater.h:367
@ CIVILIAN_CROUCHING_TEX
Civilian crouching posture indicator texture.
Definition humanHudUpdater.h:358
@ CURRENT_WEAPON
Current weapon indicator texture.
Definition humanHudUpdater.h:363
@ CIVILIAN_KNEELING_TEX
Civilian kneeling posture indicator texture.
Definition humanHudUpdater.h:360
@ KNEELING_TEX
Kneeling posture indicator texture.
Definition humanHudUpdater.h:356
double myDroneBatteryAmount
Drone battery amount.
Definition humanHudUpdater.h:498
makVre::DtVector2DD myReticleRandomDirection
Current reticle position in normalized screen coordinates.
Definition humanHudUpdater.h:558
virtual void onWeaponListChanged(const DtAttributeHandle &)
Handles changes in the weapon list.
makVrv::DtTextProxy * myWindDirectionText
Wind direction text display.
Definition humanHudUpdater.h:456
makVrv::DtTextProxy * myDroneAltitude
Drone altitude text display.
Definition humanHudUpdater.h:486
makVrv::DtQuadProxy * myDroneViewFrame
Drone view frame quad.
Definition humanHudUpdater.h:477
virtual void updateHudElements(bool visible) override
Updates all HUD elements based on visibility.
virtual void onLauncherIdChanged(DtEntityIdentifier id)
Handles changes in the launcher entity ID.
virtual bool loadWeaponIconExtentConfig(makVre::DtInitTable &initTable, std::string tableName)
Loads weapon icon extent configuration.
virtual void resetPostureQuads(makVrv::DtOverlayRenderer *overlay, const std::vector< HudImageConfig > &configs)
Resets posture indicator quads.
Extent2D myWeaponIconExtent
Extent of weapon icons in normalized screen coordinates.
Definition humanHudUpdater.h:576
virtual void updateWeaponAmmoCounts()
Updates ammunition count displays for all weapons.
makVrv::DtQuadProxy * myDrone
Drone indicator quad.
Definition humanHudUpdater.h:474
makVrv::DtTextProxy * myAltText
Altitude text display for parachute mode.
Definition humanHudUpdater.h:447
std::vector< makVre::DtVector2DD > myWeaponIconPositions
Vector of weapon icon positions in normalized screen coordinates.
Definition humanHudUpdater.h:579
makVrv::DtTextProxy * myDroneBatteryText
Drone battery text display.
Definition humanHudUpdater.h:480
virtual bool initialize(makVre::DtPlayerStation *player, makVre::DtInitTable &config) override
Initializes the human HUD updater.
makVrv::DtQuadProxy * myFatigueBar
Fatigue bar colored quad.
Definition humanHudUpdater.h:528
virtual void repositionReticleIntoAimingErrorCircle(makVre::DtVector2DD &newReticlePosition, double aimingErrorCircleRadius)
Repositions reticle to keep it within the aiming error circle.
virtual void ammoTextPosition(unsigned i, unsigned total, float &x, float &y) const
Calculates position for an ammo text display.
std::vector< HudValueColorPair > myHealthBarValueColorPairs
Vector of health bar value-color pairs.
Definition humanHudUpdater.h:519
DtHumanHudUpdater()
Default constructor.
virtual void updateMissileLauncherAmmoCount(float count)
Updates missile launcher ammunition count display.
virtual makVre::DtVreMessageResult handleWindUpdate(makVre::DtVreMessage *msg)
Handles wind update messages.
virtual void computeAimingError(const makVre::DtVector2DD &newReticlePosition)
Computes the aiming error based on current factors.
std::vector< makVrv::DtQuadProxy * > myWeaponIcons
Vector of weapon icon quads.
Definition humanHudUpdater.h:435
makVrv::DtTextProxy * createAndInitTextProxy(Texts index)
Creates and initializes a text proxy for a specific text element.
double myReticleDirectionRandomTimerDuration
Timer for random reticle position updates in seconds.
Definition humanHudUpdater.h:553
virtual void onReloadTimerChanged(float time)
Handles changes in reload timer.
makVrv::DtQuadProxy * myStandingQuad
Standing posture indicator quad.
Definition humanHudUpdater.h:462
bool myLauncherHudVisible
Flag indicating if the launcher HUD is visible.
Definition humanHudUpdater.h:432
virtual void clipTextPosition(unsigned i, unsigned total, float &x, float &y) const
Calculates position for a clip text display.
makVrv::DtQuadProxy * myProneQuad
Prone posture indicator quad.
Definition humanHudUpdater.h:465
Texts
Enumeration of text element indices used in the HUD.
Definition humanHudUpdater.h:384
@ TEXT_HEALTH
Health value text.
Definition humanHudUpdater.h:389
@ PARACHUTE_WIND_SPEED
Parachute wind speed text.
Definition humanHudUpdater.h:385
@ TEXT_FATIGUE
Fatigue value text.
Definition humanHudUpdater.h:390
@ PARACHUTE_ALTITUDE
Parachute altitude text.
Definition humanHudUpdater.h:388
@ PARACHUTE_OXYGEN_PERCENT
Parachute oxygen percentage text.
Definition humanHudUpdater.h:387
@ PARACHUTE_WIND_DIRECTION
Parachute wind direction text.
Definition humanHudUpdater.h:386
@ TEXT_CONFIG_COUNT
Total number of text configurations.
Definition humanHudUpdater.h:391
float myOriginalFatigueBarWidth
Original width of the fatigue bar.
Definition humanHudUpdater.h:534
virtual makVre::DtVreMessageResult handleResourceUpdate(makVre::DtVreMessage *msg)
Handles resource update messages.
makVrv::DtQuadProxy * myLauncherQuad
missile launcher indicator quad
Definition humanHudUpdater.h:426
virtual void onWeaponStateChanged(int state)
Handles changes in weapon state.
makVrv::DtTextProxy * myOxygenText
Oxygen percentage text display for parachute mode.
Definition humanHudUpdater.h:450
DtAttributeHandleType< std::vector< std::string > > myWeaponList
Definition humanHudUpdater.h:581
makVre::DtVector2DD myCenterOfGuiLocation
Reticle gui related variables.
Definition humanHudUpdater.h:540
makVrv::DtTextProxy * myDroneBearing
Drone bearing text display.
Definition humanHudUpdater.h:489
virtual void redirectReticleIntoAimingErrorCircle()
Computes a new direction for the reticle when it reaches the edge.
makVrv::DtTextProxy * myDroneDistance
Drone distance text display.
Definition humanHudUpdater.h:483
makVrv::DtQuadProxy * myHealthBar
Health bar colored quad.
Definition humanHudUpdater.h:510
virtual void tick(double dt) override
Updates the HUD elements for the current frame.
makVrv::DtQuadProxy * myCurrentWeaponIndicator
Current weapon indicator quad.
Definition humanHudUpdater.h:459
double myCurrentTime
Current time in seconds.
Definition humanHudUpdater.h:492
virtual void weaponIconPosition(unsigned i, unsigned total, float &x, float &y) const
Calculates position for a weapon icon.
bool myShowAmmoCounts
Flag indicating if ammunition counts should be shown.
Definition humanHudUpdater.h:444
DtVector myWindRequestLocation
Location of last wind request.
Definition humanHudUpdater.h:501
makVrv::DtBoundingBox myCrosshairOriginalBoundingBox
Original bounding box of the standard crosshair.
Definition humanHudUpdater.h:418
virtual ~DtHumanHudUpdater() override
Virtual destructor.
virtual void setupCurrentWeaponQuad(int pos=-1, int total=-1, int state=-1)
Sets up the current weapon indicator quad.
makVrv::DtQuadProxy * myNVGCrosshairQuad
Night vision crosshair quad.
Definition humanHudUpdater.h:413
virtual void onStop() override
Called when this HUD updater is stopped.
std::string myCachedLauncherMarking
Cached launcher marking.
Definition humanHudUpdater.h:563
virtual void resetWeaponQuads()
Resets weapon indicator quads.
virtual bool amReticleProvider() const
Checks if this updater provides the reticle.
virtual bool isReticleInsideAimingErrorCircle(double aimingErrorCircleRadius, makVre::DtVector2DD &reticleTestPosition)
Checks if the reticle is inside the aiming error circle.
makVrv::DtTextProxy * myWindSpeedText
Wind speed text display.
Definition humanHudUpdater.h:453
makVrv::DtTextProxy * myHealthText
Health status gui related variables.
Definition humanHudUpdater.h:507
makVrv::DtQuadProxy * myKneelingQuad
Kneeling posture indicator quad.
Definition humanHudUpdater.h:471
double myReticleSpeed
Reticle speed in pixels per second.
Definition humanHudUpdater.h:546
virtual void initParachuteText()
Initializes parachute-related text elements.
virtual bool loadWeaponIconPositionsConfig(makVre::DtInitTable &initTable, std::string tableName)
Loads weapon icon position configuration.
virtual void updateGunReticlePosition(makVre::DtVector2DD &newReticlePosition, makVrv::DtQuadProxy *myCrosshairQuad, double dt)
Updates the position of the gun reticle.
virtual void createQuads(makVrv::DtOverlayRenderer *overlay, const std::vector< HudImageConfig > &configs) override
Creates quad elements for the HUD.
virtual void computeReticleRandomDirection(double deltaTime)
Computes a new random direction for reticle movement.
virtual void onHasWeaponsChanged(bool hasWeapons)
Handles changes in weapon availability.
double myTimeLastWindSpeedRequested
Time of last wind speed request in seconds.
Definition humanHudUpdater.h:495
Table-based access to Lua state for configuration data.
Definition initializer.h:38
virtual DtPlayerStation & player()
Gets the player station.
Class for managing the user interface for engaged roles.
Definition playerStation.h:51
Class representing a 2D vector with double precision.
Definition vector2DD.h:20
Abstract base class for all VREngage messages.
Definition vreMessage.h:50
Component for managing weapon resources, equipment, and related state attributes.
Definition weaponResourceLogic.h:45
constexpr const char * hud
Definition humanHudUpdater.h:36
constexpr const char * fatigueBarColor
Definition humanHudUpdater.h:33
constexpr const char * centerOfGuiLocation
\vreRoleParam{centerOfGuiLocation,DtVector2DD,"DtVector2DD(0.48333, 0.471296)",humanHudUpdater,...
Definition humanHudUpdater.h:30
constexpr const char * showHUD
Definition humanHudUpdater.h:57
constexpr const char * showAmmoCounts
Definition humanHudUpdater.h:54
constexpr const char * nvg
Definition humanHudUpdater.h:42
constexpr const char * weaponAimingOverlay
Definition humanHudUpdater.h:60
constexpr const char * maxAimingErrorCircleRadius
Definition humanHudUpdater.h:39
constexpr const char * reticleDirectionRandomTimerDuration
Definition humanHudUpdater.h:48
constexpr const char * parachute
Definition humanHudUpdater.h:45
constexpr const char * reticleSpeed
Definition humanHudUpdater.h:51
Defines DtHudUpdater base class for managing HUD elements in the human role.
Defines export macros for the Human Frontend library.
#define HUMAN_DLL
Definition export.h:19
Definition humanHudUpdater.h:22
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
DtVreMessageResult
Enumeration of possible message handling results.
Definition vreMessage.h:33
constexpr const char * DtHumanHudUpdaterType
Type identifier for DtHumanHudUpdater component.
Definition humanHudUpdater.h:88
Definition appLauncherComponent.h:28
Structure for 2D extent.
Definition humanHudUpdater.h:570
double width
Definition humanHudUpdater.h:571
double height
Definition humanHudUpdater.h:572
Provides a class for 2D vector operations with double precision.