VR-Engage  2.2
Loading...
Searching...
No Matches
actionMenuLogic.h
Go to the documentation of this file.
1/******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4******************************************************************************/
5
6//! \file actionMenuLogic.h
7//! \brief Defines the action menu management and logic for VR-Engage
8//!
9//! This file contains the DtActionMenuLogic class which manages the interaction
10//! menus for entities in the simulation. It controls the visibility and behavior
11//! of action menus, processes entity interactions, and handles user selections.
12//! The class manages both static action menus and context-sensitive quick menus
13//! that appear when the player approaches interactive objects.
14
15#pragma once
16
20
22
25
26#include <matrix/vlVector.h>
27
28namespace makVre
29{
30
32{
33//! \ingroup RoleConfigParams
34//! \defgroup ActionMenuLogicRoleParams Action Menu Logic Role Parameters
35//! \roleInherits{PlayerComponentRoleParams}
36//! Configuration Options for action menu logic component.
37//! @{
38
39//! \vreRoleParam{entityQuickMenus,table,{},actionMenuLogic,Configuration table defining quick menus for different entity types and interaction contexts.}
40constexpr const char* entityQuickMenus = "entityQuickMenus";
41
42//! \vreRoleParam{slotProximityAngleWeight,double,varies,actionMenuLogic,Weight factor for angle consideration in slot proximity calculations.}
43constexpr const char* slotProximityAngleWeight = "slotProximityAngleWeight";
44
45//! \vreRoleParam{slotProximityFov,double,varies,actionMenuLogic,Field of view angle in degrees for slot proximity detection.}
46constexpr const char* slotProximityFov = "slotProximityFov";
47
48//! \vreRoleParam{slotProximityMaxDistance,double,varies,actionMenuLogic,Maximum distance in meters for slot proximity detection.}
49constexpr const char* slotProximityMaxDistance = "slotProximityMaxDistance";
50
51//! \vreRoleParam{slotProximityOverlapDist,double,varies,actionMenuLogic,Distance threshold for handling overlapping slot proximity zones.}
52constexpr const char* slotProximityOverlapDist = "slotProximityOverlapDist";
53
54//! \vreRoleParam{slotProximityRearMaxDist,double,varies,actionMenuLogic,Maximum distance for rear-facing slot proximity detection.}
55constexpr const char* slotProximityRearMaxDist = "slotProximityRearMaxDist";
56
57//! \vreRoleParam{slotProximityZScale,double,varies,actionMenuLogic,Z-axis scaling factor for slot proximity calculations.}
58constexpr const char* slotProximityZScale = "slotProximityZScale";
59
60//! @}
61} // namespace ActionMenuLogicConfig
62
63} // namespace makVre
64
65namespace makVrv
66{
67class DtSceneObject;
68}
69
70namespace makVre
71{
72class DtActionJoystickControl;
73class DtActionMenuEventProcessor;
74class DtMenuManager;
75
76//! \brief Type identifier constant for DtActionMenuLogic components
77//!
78//! This constant defines the string identifier used to identify DtActionMenuLogic
79//! component types within the VR-Engage framework. It is used for component
80//! registration, type checking, and serialization operations.
81constexpr const char* DtActionMenuLogicType = "DtActionMenuLogic";
82
83//! \brief Component for managing entity interaction menus and their logic
84//!
85//! DtActionMenuLogic is responsible for handling all user interaction menus
86//! in VR-Engage. It manages both static menus (like the main action menu) and
87//! context-sensitive quick menus that appear when the player approaches interactive
88//! objects like vehicles for embarkation, control stations, or other entities with
89//! interaction points.
90//!
91//! The class processes entity proximity, evaluates interaction conditions, and
92//! provides the appropriate menu options based on the current context. It also
93//! handles menu selections and dispatches the appropriate actions in response.
95{
96public:
97 //! \brief Constructor
98 //!
99 //! Creates a new action menu logic component with default state.
101
102 //! \brief Virtual destructor
103 //!
104 //! Ensures proper cleanup of derived action menu logic classes.
105 virtual ~DtActionMenuLogic() override;
106
107 //! \brief Gets the menu manager instance
108 //! \return Pointer to the menu manager
109 //!
110 //! Provides access to the menu manager that controls all menus for this
111 //! player station instance. The menu manager handles the creation, organization,
112 //! and display of menus.
114
115 //! \brief Initializes the action menu logic
116 //! \param player Pointer to the owning player station
117 //! \param config Configuration data for initialization
118 //! \return True if initialization succeeded, false otherwise
119 //!
120 //! Sets up the action menu system based on the provided configuration.
121 //! This includes loading menu definitions, setting up input handlers,
122 //! and initializing the menu manager.
123 virtual bool initialize(DtPlayerStation* player, DtInitTable& config) override;
124
125 //! \brief Performs post-initialization setup
126 //! \return True if post-initialization succeeded, false otherwise
127 //!
128 //! Completes setup tasks that need to occur after basic initialization,
129 //! such as connecting to message handlers and setting up callbacks.
130 virtual bool postInitialize() override;
131
132 //! \brief Updates the menu system
133 //! \param dt Time interval since the last tick in seconds
134 //!
135 //! Called once per frame to update the menu system. This includes checking
136 //! for proximity to interaction points, updating menu visibility, and
137 //! processing any pending menu actions.
138 virtual void tick(double dt) override;
139
140 //! \brief Shuts down the action menu system
141 //!
142 //! Performs cleanup when the action menu system is no longer needed.
143 //! This includes disconnecting from message handlers, removing input
144 //! handlers, and destroying menu resources.
145 virtual void shutdown() override;
146
147 //! \brief Returns the component type identifier
148 //! \return String identifier for this component type
149 //!
150 //! Returns the type identifier string for this component, which is used
151 //! by the VR-Engage framework for component identification and management.
152 //! The returned value matches DtActionMenuLogicType.
153 virtual const char* type() const override;
154
155 //! \brief Handles changes in player embarkation state
156 //! \param embarked True if the player is now embarked, false if disembarked
157 //!
158 //! Called when the player's embarkation state changes. This affects the
159 //! available menu options, as different actions are available depending on
160 //! whether the player is on foot or in a vehicle.
161 virtual void handleEmbarkedChanged(bool embarked);
162
163 //! \brief Handles changes in player aiming state
164 //! \param aiming True if the player is now aiming, false otherwise
165 //!
166 //! Called when the player's aiming state changes. This may affect menu
167 //! visibility and available options, as some menus may be disabled while aiming.
168 virtual void handleAimingChanged(bool aiming);
169
170 //! \brief Handles changes in player health
171 //! \param health New health value
172 //!
173 //! Called when the player's health changes. This may affect available menu
174 //! options, such as enabling medical actions when health is low.
175 virtual void handleHealthChanged(double health);
176
177 //! \brief Handles changes in deployed objects list
178 //! \param deployableObjects Map of deployed object identifiers to entity data
179 //!
180 //! Called when the list of player-deployed objects (like sensors, markers, etc.)
181 //! changes. This affects the available menu options for interacting with
182 //! deployed objects.
185
186 //! \brief Shows a specific menu
187 //! \param name Name of the menu to show (defaults to "Action" for main menu)
188 //! \param type Type of menu display (static or dynamic/contextual)
189 //! \param selection Initial selection to make in the menu
190 //!
191 //! Displays the specified menu to the user. The menu type determines how it
192 //! behaves - static menus remain open until explicitly closed, while dynamic
193 //! menus may close automatically after selection or when context changes.
194 virtual void showMenu(const std::string& name = "Action",
195 MenuSetStateMessage::Type type = MenuSetStateMessage::Type_STATIC, const std::string& selection = "");
196
197 //! \brief Hides a specific menu
198 //! \param name Name of the menu to hide
199 //!
200 //! Hides the specified menu if it is currently visible.
201 virtual void hideMenu(const std::string& name);
202
203 //! \brief Hides the currently active quick menu
204 //!
205 //! Hides any context-sensitive quick menu that is currently visible.
206 //! Quick menus appear when the player approaches interactive objects.
207 virtual void hideQuickMenu();
208
209 //! \brief Toggles the main action menu
210 //! \param val Input value (typically 1.0 for full toggle)
211 //!
212 //! Toggles the visibility of the main action menu. If it's currently
213 //! visible, it will be hidden; if hidden, it will be shown. The value
214 //! parameter supports analog inputs like joysticks.
215 virtual void toggleActionMenu(float val = 1);
216
217 //! \brief Gets the entity ID associated with the current quick menu
218 //! \return Entity identifier for the current quick menu target
219 //!
220 //! Returns the identifier of the entity that the current quick menu
221 //! is associated with (e.g., a vehicle the player is interacting with).
222 //! Returns an empty identifier if no quick menu is active.
223 virtual DtEntityIdentifier currentQuickMenuEntityId();
224
225protected:
226 //! \brief Updates the current action object
227 //! \param entityId Identifier of the entity to set as the current action object
228 //! \param entityType Type of the entity
229 //! \param marking Entity marking or name
230 //!
231 //! Sets the specified entity as the current action object, which affects
232 //! the available menu options and context-sensitive actions.
233 virtual void updateActionObject(
234 const DtEntityIdentifier& entityId, const DtEntityType& entityType, const std::string& marking);
235
236 //! \brief Checks if menu display conditions are met
237 //! \return True if conditions for displaying menus are satisfied
238 //!
239 //! Evaluates the current state to determine if menus should be displayed.
240 //! This considers factors like player posture, health, and context.
242
243 //! \brief Updates quick menu visibility based on current state
244 //!
245 //! Determines whether context-sensitive quick menus should be shown or hidden
246 //! based on proximity to interactive objects and other conditions.
248
249 //! \brief Checks if action points in an entity's embarkation message are actionable
250 //! \param msg The embarkation information message to evaluate
251 //! \return True if any action points are actionable, false otherwise
252 //!
253 //! Examines embarkation information to determine if any action points
254 //! (like entry points, control stations, etc.) are within interactive range.
256
257 //! \brief Processes action points for a slotted entity
258 //! \param msg Embarkation information message containing action point data
259 //! \return True if action points were successfully processed
260 //!
261 //! Analyzes and processes action points for slotted entities (like vehicles
262 //! with multiple seats/positions), determining which are actionable and
263 //! should appear in menus.
265
266 //! \brief Finds the coordinate transformations needed for action point processing
267 //! \param obj Scene object representing the entity with action points
268 //! \param ownPos Output parameter for player's position
269 //! \param objPos Output parameter for object's position
270 //! \param worldToOwnRot Output parameter for world-to-player rotation matrix
271 //! \param objToWorldRot Output parameter for object-to-world rotation matrix
272 //! \return True if transforms were successfully computed
273 //!
274 //! Calculates the positions and rotation matrices needed to transform action points
275 //! from object space to world space for distance and angle calculations.
276 virtual bool findTransformsForSlotPointProcessing(const makVrv::DtSceneObject* obj, DtVector& ownPos,
277 DtVector& objPos, DtDcm& worldToOwnRot, DtDcm& objToWorldRot) const;
278
279 //! \brief Identifies actionable points based on proximity and orientation
280 //! \param ownPos Player's position
281 //! \param objPos Object's position
282 //! \param worldToOwnRot World-to-player rotation matrix
283 //! \param objToWorldRot Object-to-world rotation matrix
284 //! \param actionPoints List of action points to evaluate
285 //! \return True if any actionable points were found
286 //!
287 //! Analyzes each action point to determine if it's within actionable range
288 //! and orientation relative to the player, scoring them for priority.
289 virtual bool findActionablePoints(const DtVector& ownPos, const DtVector& objPos, const DtDcm& worldToOwnRot,
290 const DtDcm& objToWorldRot, const std::vector<EntityEmbarkationInformationMessage::ActionPoint>& actionPoints);
291
292 //! \brief Scores an action point for actionability
293 //! \param vecToPoint Vector from player to action point
294 //! \param maxDist Maximum distance for actionability
295 //! \param retScore Output parameter for the computed score
296 //! \return True if the action point is within actionable range
297 //!
298 //! Computes a score for an action point based on distance and orientation
299 //! relative to the player. Higher scores indicate more easily accessible points.
300 virtual bool scoreActionPoint(DtVector vecToPoint, double maxDist, double& retScore);
301
302 //! \brief Modifies a vector to an action point before scoring
303 //! \param vecToPoint Vector to modify
304 //!
305 //! Applies adjustments to the vector from player to action point before
306 //! scoring, such as scaling components or normalizing.
307 virtual void modifyActionPointVectorBeforeScore(DtVector& vecToPoint);
308
309 //! \brief Combines dot product and distance scores
310 //! \param dotScore Score based on dot product (angle)
311 //! \param distScore Score based on distance
312 //! \return Combined score
313 //!
314 //! Combines the orientation and distance scores into a single value
315 //! representing the overall accessibility of an action point.
316 virtual double combineDotAndDistScore(double dotScore, double distScore);
317
318 //! \brief Handles sensor update messages
319 //! \param message Pointer to the sensor update message
320 //! \return Message handling result
321 //!
322 //! Processes sensor update messages that may affect menu options
323 //! for sensor-related actions.
325
326 //! \brief Handles entity state boolean messages
327 //! \param msg Pointer to the entity state message
328 //! \return Message handling result
329 //!
330 //! Processes boolean state changes for entities that may affect
331 //! menu visibility and available options.
333
334 //! \brief Handles embarkation information messages
335 //! \param msg Pointer to the embarkation information message
336 //! \return Message handling result
337 //!
338 //! Processes embarkation information that describes interaction points
339 //! for entities like vehicles, which affects quick menu availability.
341
342 //! \brief Handles menu state messages
343 //! \param msg Pointer to the menu message
344 //! \return Message handling result
345 //!
346 //! Processes messages related to menu state changes, such as requests
347 //! to show or hide specific menus.
349
350 //! \brief Handles menu action messages
351 //! \param msg Pointer to the menu action message
352 //! \return Message handling result
353 //!
354 //! Processes action messages generated when a user selects an option
355 //! from a menu, executing the corresponding action.
357
358 //! \brief Handles entity discovery messages
359 //! \param msg Pointer to the entity discovered message
360 //! \return Message handling result
361 //!
362 //! Processes notifications about newly discovered entities that
363 //! may be candidates for interaction menus.
365
366 //! \brief Handles entity removal messages
367 //! \param msg Pointer to the entity removed message
368 //! \return Message handling result
369 //!
370 //! Processes notifications about entities being removed from the
371 //! simulation, cleaning up any associated menu resources.
373
374 //! \brief Handles responses to entity type queries
375 //! \param msg Pointer to the response message
376 //! \return Message handling result
377 //!
378 //! Processes responses to queries about entities of specific types,
379 //! which may affect available menu options for type-specific actions.
381
382 //! \brief Handles session play state changes
383 //! \param msg Pointer to the session play state message
384 //! \return Message handling result
385 //!
386 //! Processes notifications about simulation session state changes
387 //! (e.g., paused, playing, stopped), which may affect menu availability.
389
390 //! \brief Checks if an entity ID corresponds to a deployed object
391 //! \param entityId The entity identifier to check
392 //! \return True if the entity is a deployable object, false otherwise
393 //!
394 //! Determines whether the specified entity is one of the player's
395 //! deployable objects (like sensors, markers, etc.).
396 virtual bool entityIdIsDeployableObject(const DtEntityIdentifier& entityId);
397
398 //! \brief Checks if the player has a ground vehicle license
399 //! \return True if the player has a ground vehicle license, false otherwise
400 //!
401 //! Checks state attribute "GroundVehicleEnabled" to determine if player has a ground vehicle license.
402 virtual bool groundVehicleIsEnabled() const;
403
404 //! \brief Checks if a vehicle has an implicit driver
405 //! \param vehicleId Identifier of the vehicle to check
406 //! \return True if the vehicle has an implicit driver, false otherwise
407 //!
408 //! Checks if given vehicle has an implicit driver (a visual-only model of a driver occupant).
409 virtual bool vehicleHasImplicitDriver(const DtEntityIdentifier& vehicleId) const;
410
411 //! \brief Input logic handler for menu interactions
412 //!
413 //! Manages input mapping and handling for menu navigation and selection.
415
416 //! \brief Configuration table for quick menus
418
419 //! \brief Name of the currently active quick menu
421
422 //! \brief Entity ID associated with the current quick menu
423 DtEntityIdentifier myCurrentQuickMenuEntityId;
424
425 //! \brief Entity type of the current quick menu target
427
428 //! \brief Flag indicating if the current entity is a host entity
430
431 //! \brief Flag indicating if the current entity supports VRE slots
433
434 //! \brief Last received embarkation information message
435 //!
436 //! Stores the most recent embarkation information for slot processing,
437 //! containing action points and slot details for interactive entities.
439
440 //! \brief Timer for quick menu slot proximity checks
441 //!
442 //! Controls how frequently slot proximity is checked for quick menu updates.
444
445 //! \brief Maximum distance for slot proximity detection
446 //!
447 //! The maximum distance at which slots/action points are considered actionable.
449
450 //! \brief Scaling factor for vertical (Z) distance in proximity calculations
451 //!
452 //! Adjusts the importance of vertical distance in determining proximity to action points.
454
455 //! \brief Weight given to angle in proximity calculations
456 //!
457 //! Determines how heavily the angle between player and action point affects actionability.
459
460 //! \brief Field of view angle for forward-facing action points
461 //!
462 //! The angle (in radians) defining the forward field of view within which
463 //! action points are more easily actionable.
465
466 //! \brief Maximum distance for rear-facing action points
467 //!
468 //! The maximum distance at which action points behind the player are actionable.
470
471 //! \brief Distance overlap tolerance for action points
472 //!
473 //! The distance by which action point ranges can overlap before prioritization occurs.
475
476 //! \brief Map of actionable points and their priority scores
477 //!
478 //! Maps action point identifiers to their calculated priority scores.
479 std::map<std::string, int> myActionablePointsMap;
480
481 //! \brief Last notification or hint displayed to the user
482 //!
483 //! Stores the text of the last note shown to avoid duplicate notifications.
484 std::string myLastNote;
485
486 //! \brief Location of the current task objective
487 //!
488 //! Stores the position of the current objective or task target.
490
491 //! \brief Flag to toggle debug menu visibility
492 //!
493 //! Controls whether debug menus are shown for development and testing.
495
496 //! \brief Type definition for waypoint maps
497 //!
498 //! Maps waypoint identifiers to waypoint information.
499 using WaypointMap = std::map<std::string, std::string>;
500
501 //! \brief Type definition for route maps
502 //!
503 //! Maps route identifiers to route information.
504 using RouteMap = std::map<std::string, std::string>;
505
506 //! \brief Type definition for bullseye maps
507 //!
508 //! Maps bullseye identifiers to bullseye information.
509 //! Used to show VRF Bullseye list in VRE pilot Set Bullseye menu.
510 using BullseyeMap = std::map<std::string, std::string>;
511};
512
513} // namespace makVre
virtual bool findTransformsForSlotPointProcessing(const makVrv::DtSceneObject *obj, DtVector &ownPos, DtVector &objPos, DtDcm &worldToOwnRot, DtDcm &objToWorldRot) const
Finds the coordinate transformations needed for action point processing.
virtual DtVreMessageResult handleEntityDiscovered(DtVreMessage *msg)
Handles entity discovery messages.
std::map< std::string, std::string > BullseyeMap
Type definition for bullseye maps.
Definition actionMenuLogic.h:510
double mySlotProximityOverlapDist
Distance overlap tolerance for action points.
Definition actionMenuLogic.h:474
virtual bool scoreActionPoint(DtVector vecToPoint, double maxDist, double &retScore)
Scores an action point for actionability.
virtual void showMenu(const std::string &name="Action", MenuSetStateMessage::Type type=MenuSetStateMessage::Type_STATIC, const std::string &selection="")
Shows a specific menu.
double mySlotProximityRearMaxDist
Maximum distance for rear-facing action points.
Definition actionMenuLogic.h:469
virtual ~DtActionMenuLogic() override
Virtual destructor.
virtual void handleDeployableObjectsChanged(DtDeployableObjectsSimLogic::DeployableObjectStateMap deployableObjects)
Handles changes in deployed objects list.
DtInputLogic myInputLogic
Input logic handler for menu interactions.
Definition actionMenuLogic.h:414
virtual DtVreMessageResult handleEntityEmbarkationInformationMessage(DtVreMessage *msg)
Handles embarkation information messages.
bool myCurrentEntityIsHost
Flag indicating if the current entity is a host entity.
Definition actionMenuLogic.h:429
virtual void hideMenu(const std::string &name)
Hides a specific menu.
double mySlotProximityZScale
Scaling factor for vertical (Z) distance in proximity calculations.
Definition actionMenuLogic.h:453
virtual bool vehicleHasImplicitDriver(const DtEntityIdentifier &vehicleId) const
Checks if a vehicle has an implicit driver.
bool myCurrentEntitySupportsVreSlots
Flag indicating if the current entity supports VRE slots.
Definition actionMenuLogic.h:432
virtual bool checkMenuDisplayConditionsMet()
Checks if menu display conditions are met.
std::map< std::string, int > myActionablePointsMap
Map of actionable points and their priority scores.
Definition actionMenuLogic.h:479
std::map< std::string, std::string > WaypointMap
Type definition for waypoint maps.
Definition actionMenuLogic.h:499
virtual const char * type() const override
Returns the component type identifier.
virtual DtVreMessageResult handleSessionPlayState(DtVreMessage *msg)
Handles session play state changes.
virtual double combineDotAndDistScore(double dotScore, double distScore)
Combines dot product and distance scores.
std::map< std::string, std::string > RouteMap
Type definition for route maps.
Definition actionMenuLogic.h:504
DtEntityIdentifier myCurrentQuickMenuEntityId
Entity ID associated with the current quick menu.
Definition actionMenuLogic.h:423
virtual DtMenuManager * getMenuManager() const
Gets the menu manager instance.
virtual DtEntityIdentifier currentQuickMenuEntityId()
Gets the entity ID associated with the current quick menu.
virtual void handleAimingChanged(bool aiming)
Handles changes in player aiming state.
virtual void modifyActionPointVectorBeforeScore(DtVector &vecToPoint)
Modifies a vector to an action point before scoring.
double mySlotProximityFov
Field of view angle for forward-facing action points.
Definition actionMenuLogic.h:464
virtual bool findActionablePoints(const DtVector &ownPos, const DtVector &objPos, const DtDcm &worldToOwnRot, const DtDcm &objToWorldRot, const std::vector< EntityEmbarkationInformationMessage::ActionPoint > &actionPoints)
Identifies actionable points based on proximity and orientation.
std::string myLastNote
Last notification or hint displayed to the user.
Definition actionMenuLogic.h:484
virtual DtVreMessageResult handleSensorUpdate(DtVreMessage *message)
Handles sensor update messages.
virtual DtVreMessageResult handleEntityStateBool(DtVreMessage *msg)
Handles entity state boolean messages.
virtual DtVreMessageResult handleEntityRemoved(DtVreMessage *msg)
Handles entity removal messages.
double mySlotProximityAngleWeight
Weight given to angle in proximity calculations.
Definition actionMenuLogic.h:458
virtual bool initialize(DtPlayerStation *player, DtInitTable &config) override
Initializes the action menu logic.
bool myDebugMenuToggle
Flag to toggle debug menu visibility.
Definition actionMenuLogic.h:494
virtual DtVreMessageResult handleMenuAction(DtVreMessage *msg)
Handles menu action messages.
EntityEmbarkationInformationMessage myLastSlotDataMessage
Last received embarkation information message.
Definition actionMenuLogic.h:438
virtual DtVreMessageResult handleMenuMessage(DtVreMessage *msg)
Handles menu state messages.
DtActionMenuLogic()
Constructor.
double myQuickMenuSlotTickTimer
Timer for quick menu slot proximity checks.
Definition actionMenuLogic.h:443
virtual void handleHealthChanged(double health)
Handles changes in player health.
virtual bool postInitialize() override
Performs post-initialization setup.
virtual DtVreMessageResult handleRequestEntitiesByTypeResponse(DtVreMessage *msg)
Handles responses to entity type queries.
std::string myCurrentQuickMenu
Name of the currently active quick menu.
Definition actionMenuLogic.h:420
virtual void shutdown() override
Shuts down the action menu system.
double mySlotProximityMaxDistance
Maximum distance for slot proximity detection.
Definition actionMenuLogic.h:448
virtual bool entityIdIsDeployableObject(const DtEntityIdentifier &entityId)
Checks if an entity ID corresponds to a deployed object.
virtual void updateActionObject(const DtEntityIdentifier &entityId, const DtEntityType &entityType, const std::string &marking)
Updates the current action object.
virtual bool processSlotActionPoints(const EntityEmbarkationInformationMessage &msg)
Processes action points for a slotted entity.
virtual void updateQuickMenuVisibility()
Updates quick menu visibility based on current state.
virtual void hideQuickMenu()
Hides the currently active quick menu.
DtEntityType myCurrentQuickMenuEntityType
Entity type of the current quick menu target.
Definition actionMenuLogic.h:426
virtual bool groundVehicleIsEnabled() const
Checks if the player has a ground vehicle license.
virtual void toggleActionMenu(float val=1)
Toggles the main action menu.
virtual void tick(double dt) override
Updates the menu system.
virtual bool checkActionPointListActionable(const EntityEmbarkationInformationMessage &msg)
Checks if action points in an entity's embarkation message are actionable.
virtual void handleEmbarkedChanged(bool embarked)
Handles changes in player embarkation state.
DtInitTable myQuickMenuTable
Configuration table for quick menus.
Definition actionMenuLogic.h:417
DtVector myTaskLocation
Location of the current task objective.
Definition actionMenuLogic.h:489
std::map< std::string, DeployableObject > DeployableObjectStateMap
Definition deployableObjectsSimLogic.h:193
Table-based access to Lua state for configuration data.
Definition initializer.h:38
Class for managing input configuration and handling in VR-Engage.
Definition inputLogic.h:35
Central manager for all menus in VR-Engage.
Definition actionMenuManager.h:111
virtual DtPlayerStation & player()
Gets the player station.
virtual const std::string & name()
Gets the component name.
DtPlayerComponent()
Constructor.
Class for managing the user interface for engaged roles.
Definition playerStation.h:51
Abstract base class for all VREngage messages.
Definition vreMessage.h:50
Definition EntityEmbarkationInformation.h:31
Type
Definition menuSetState.h:32
@ Type_STATIC
Definition menuSetState.h:32
constexpr const char * slotProximityMaxDistance
Definition actionMenuLogic.h:49
constexpr const char * slotProximityFov
Definition actionMenuLogic.h:46
constexpr const char * slotProximityOverlapDist
Definition actionMenuLogic.h:52
constexpr const char * slotProximityRearMaxDist
Definition actionMenuLogic.h:55
constexpr const char * slotProximityAngleWeight
Definition actionMenuLogic.h:43
constexpr const char * slotProximityZScale
Definition actionMenuLogic.h:58
constexpr const char * entityQuickMenus
Definition actionMenuLogic.h:40
Defines export macros for the VR-Engage Player Station library.
#define PLAYERSTATION_DLL
Definition export.h:24
Defines the DtInputLogic class for handling input in VR-Engage.
Definition actionMenuLogic.h:32
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
constexpr const char * DtActionMenuLogicType
Type identifier constant for DtActionMenuLogic components.
Definition actionMenuLogic.h:81
DtVreMessageResult
Enumeration of possible message handling results.
Definition vreMessage.h:33
Definition appLauncherComponent.h:28
Defines the DtPlayerComponent base class for VR-Engage role components.