VR-Engage  2.2
Loading...
Searching...
No Matches
makVre::DtActionMenuLogic Class Reference

Detailed Description

DtActionMenuLogic is responsible for handling all user interaction menus in VR-Engage. It manages both static menus (like the main action menu) and context-sensitive quick menus that appear when the player approaches interactive objects like vehicles for embarkation, control stations, or other entities with interaction points.

The class processes entity proximity, evaluates interaction conditions, and provides the appropriate menu options based on the current context. It also handles menu selections and dispatches the appropriate actions in response.

#include <actionMenuLogic.h>

Inheritance diagram for makVre::DtActionMenuLogic:
[legend]

Public Member Functions

 DtActionMenuLogic ()
 
virtual ~DtActionMenuLogic () override
 
virtual DtMenuManagergetMenuManager () const
 
virtual bool initialize (DtPlayerStation *player, DtInitTable &config) override
 
virtual bool postInitialize () override
 
virtual void tick (double dt) override
 
virtual void shutdown () override
 
virtual const char * type () const override
 
virtual void handleEmbarkedChanged (bool embarked)
 
virtual void handleAimingChanged (bool aiming)
 
virtual void handleHealthChanged (double health)
 
virtual void handleDeployableObjectsChanged (DtDeployableObjectsSimLogic::DeployableObjectStateMap deployableObjects)
 
virtual void showMenu (const std::string &name="Action", MenuSetStateMessage::Type type=MenuSetStateMessage::Type_STATIC, const std::string &selection="")
 
virtual void hideMenu (const std::string &name)
 
virtual void hideQuickMenu ()
 
virtual void toggleActionMenu (float val=1)
 
virtual DtEntityIdentifier currentQuickMenuEntityId ()
 
- Public Member Functions inherited from makVre::DtPlayerComponent
 DtPlayerComponent ()
 
virtual ~DtPlayerComponent ()
 
virtual void setName (const std::string &name)
 
virtual const std::string & name ()
 
virtual DtPlayerStationplayer ()
 
virtual DtAttributeHandleplayerAttributeStore ()
 
virtual const DtAttributeHandleplayerAttributeStore () const
 

Protected Types

using WaypointMap = std::map<std::string, std::string>
 
using RouteMap = std::map<std::string, std::string>
 
using BullseyeMap = std::map<std::string, std::string>
 

Protected Member Functions

virtual void updateActionObject (const DtEntityIdentifier &entityId, const DtEntityType &entityType, const std::string &marking)
 
virtual bool checkMenuDisplayConditionsMet ()
 
virtual void updateQuickMenuVisibility ()
 
virtual bool checkActionPointListActionable (const EntityEmbarkationInformationMessage &msg)
 
virtual bool processSlotActionPoints (const EntityEmbarkationInformationMessage &msg)
 
virtual bool findTransformsForSlotPointProcessing (const makVrv::DtSceneObject *obj, DtVector &ownPos, DtVector &objPos, DtDcm &worldToOwnRot, DtDcm &objToWorldRot) const
 
virtual bool findActionablePoints (const DtVector &ownPos, const DtVector &objPos, const DtDcm &worldToOwnRot, const DtDcm &objToWorldRot, const std::vector< EntityEmbarkationInformationMessage::ActionPoint > &actionPoints)
 
virtual bool scoreActionPoint (DtVector vecToPoint, double maxDist, double &retScore)
 
virtual void modifyActionPointVectorBeforeScore (DtVector &vecToPoint)
 
virtual double combineDotAndDistScore (double dotScore, double distScore)
 
virtual DtVreMessageResult handleSensorUpdate (DtVreMessage *message)
 
virtual DtVreMessageResult handleEntityStateBool (DtVreMessage *msg)
 
virtual DtVreMessageResult handleEntityEmbarkationInformationMessage (DtVreMessage *msg)
 
virtual DtVreMessageResult handleMenuMessage (DtVreMessage *msg)
 
virtual DtVreMessageResult handleMenuAction (DtVreMessage *msg)
 
virtual DtVreMessageResult handleEntityDiscovered (DtVreMessage *msg)
 
virtual DtVreMessageResult handleEntityRemoved (DtVreMessage *msg)
 
virtual DtVreMessageResult handleRequestEntitiesByTypeResponse (DtVreMessage *msg)
 
virtual DtVreMessageResult handleSessionPlayState (DtVreMessage *msg)
 
virtual bool entityIdIsDeployableObject (const DtEntityIdentifier &entityId)
 
virtual bool groundVehicleIsEnabled () const
 
virtual bool vehicleHasImplicitDriver (const DtEntityIdentifier &vehicleId) const
 
- Protected Member Functions inherited from makVre::DtPlayerComponent
virtual void initializeStateAttributes ()
 

Protected Attributes

DtInputLogic myInputLogic
 
DtInitTable myQuickMenuTable
 
std::string myCurrentQuickMenu
 
DtEntityIdentifier myCurrentQuickMenuEntityId
 
DtEntityType myCurrentQuickMenuEntityType
 
bool myCurrentEntityIsHost
 
bool myCurrentEntitySupportsVreSlots
 
EntityEmbarkationInformationMessage myLastSlotDataMessage
 
double myQuickMenuSlotTickTimer
 
double mySlotProximityMaxDistance
 
double mySlotProximityZScale
 
double mySlotProximityAngleWeight
 
double mySlotProximityFov
 
double mySlotProximityRearMaxDist
 
double mySlotProximityOverlapDist
 
std::map< std::string, int > myActionablePointsMap
 
std::string myLastNote
 
DtVector myTaskLocation
 
bool myDebugMenuToggle
 
- Protected Attributes inherited from makVre::DtPlayerComponent
std::string myName
 
DtInitTable myConfig
 
DtPlayerStationmyPlayer
 
makVrv::DtDe * myDe
 
DtEntityResolvermyResolver
 
DtAttributeCallbackManager myAttributeCallbacks
 

Member Typedef Documentation

◆ WaypointMap

using makVre::DtActionMenuLogic::WaypointMap = std::map<std::string, std::string>
protected

Type definition for waypoint maps.

Maps waypoint identifiers to waypoint information.

◆ RouteMap

using makVre::DtActionMenuLogic::RouteMap = std::map<std::string, std::string>
protected

Type definition for route maps.

Maps route identifiers to route information.

◆ BullseyeMap

using makVre::DtActionMenuLogic::BullseyeMap = std::map<std::string, std::string>
protected

Type definition for bullseye maps.

Maps bullseye identifiers to bullseye information. Used to show VRF Bullseye list in VRE pilot Set Bullseye menu.

Constructor & Destructor Documentation

◆ DtActionMenuLogic()

makVre::DtActionMenuLogic::DtActionMenuLogic ( )

Constructor.

Creates a new action menu logic component with default state.

◆ ~DtActionMenuLogic()

virtual makVre::DtActionMenuLogic::~DtActionMenuLogic ( )
overridevirtual

Virtual destructor.

Ensures proper cleanup of derived action menu logic classes.

Member Function Documentation

◆ getMenuManager()

virtual DtMenuManager * makVre::DtActionMenuLogic::getMenuManager ( ) const
virtual

Gets the menu manager instance.

Returns
Pointer to the menu manager

Provides access to the menu manager that controls all menus for this player station instance. The menu manager handles the creation, organization, and display of menus.

◆ initialize()

virtual bool makVre::DtActionMenuLogic::initialize ( DtPlayerStation * player,
DtInitTable & config )
overridevirtual

Initializes the action menu logic.

Parameters
playerPointer to the owning player station
configConfiguration data for initialization
Returns
True if initialization succeeded, false otherwise

Sets up the action menu system based on the provided configuration. This includes loading menu definitions, setting up input handlers, and initializing the menu manager.

Reimplemented from makVre::DtPlayerComponent.

References makVre::DtPlayerComponent::player().

◆ postInitialize()

virtual bool makVre::DtActionMenuLogic::postInitialize ( )
overridevirtual

Performs post-initialization setup.

Returns
True if post-initialization succeeded, false otherwise

Completes setup tasks that need to occur after basic initialization, such as connecting to message handlers and setting up callbacks.

Reimplemented from makVre::DtPlayerComponent.

◆ tick()

virtual void makVre::DtActionMenuLogic::tick ( double dt)
overridevirtual

Updates the menu system.

Parameters
dtTime interval since the last tick in seconds

Called once per frame to update the menu system. This includes checking for proximity to interaction points, updating menu visibility, and processing any pending menu actions.

Implements makVre::DtPlayerComponent.

◆ shutdown()

virtual void makVre::DtActionMenuLogic::shutdown ( )
overridevirtual

Shuts down the action menu system.

Performs cleanup when the action menu system is no longer needed. This includes disconnecting from message handlers, removing input handlers, and destroying menu resources.

Reimplemented from makVre::DtPlayerComponent.

◆ type()

virtual const char * makVre::DtActionMenuLogic::type ( ) const
overridevirtual

Returns the component type identifier.

Returns
String identifier for this component type

Returns the type identifier string for this component, which is used by the VR-Engage framework for component identification and management. The returned value matches DtActionMenuLogicType.

Implements makVre::DtPlayerComponent.

Referenced by showMenu().

◆ handleEmbarkedChanged()

virtual void makVre::DtActionMenuLogic::handleEmbarkedChanged ( bool embarked)
virtual

Handles changes in player embarkation state.

Parameters
embarkedTrue if the player is now embarked, false if disembarked

Called when the player's embarkation state changes. This affects the available menu options, as different actions are available depending on whether the player is on foot or in a vehicle.

◆ handleAimingChanged()

virtual void makVre::DtActionMenuLogic::handleAimingChanged ( bool aiming)
virtual

Handles changes in player aiming state.

Parameters
aimingTrue if the player is now aiming, false otherwise

Called when the player's aiming state changes. This may affect menu visibility and available options, as some menus may be disabled while aiming.

◆ handleHealthChanged()

virtual void makVre::DtActionMenuLogic::handleHealthChanged ( double health)
virtual

Handles changes in player health.

Parameters
healthNew health value

Called when the player's health changes. This may affect available menu options, such as enabling medical actions when health is low.

◆ handleDeployableObjectsChanged()

virtual void makVre::DtActionMenuLogic::handleDeployableObjectsChanged ( DtDeployableObjectsSimLogic::DeployableObjectStateMap deployableObjects)
virtual

Handles changes in deployed objects list.

Parameters
deployableObjectsMap of deployed object identifiers to entity data

Called when the list of player-deployed objects (like sensors, markers, etc.) changes. This affects the available menu options for interacting with deployed objects.

◆ showMenu()

virtual void makVre::DtActionMenuLogic::showMenu ( const std::string & name = "Action",
MenuSetStateMessage::Type type = MenuSetStateMessage::Type_STATIC,
const std::string & selection = "" )
virtual

Shows a specific menu.

Parameters
nameName of the menu to show (defaults to "Action" for main menu)
typeType of menu display (static or dynamic/contextual)
selectionInitial selection to make in the menu

Displays the specified menu to the user. The menu type determines how it behaves - static menus remain open until explicitly closed, while dynamic menus may close automatically after selection or when context changes.

References makVre::DtPlayerComponent::name(), type(), and makVre::MenuSetStateMessage::Type_STATIC.

◆ hideMenu()

virtual void makVre::DtActionMenuLogic::hideMenu ( const std::string & name)
virtual

Hides a specific menu.

Parameters
nameName of the menu to hide

Hides the specified menu if it is currently visible.

References makVre::DtPlayerComponent::name().

◆ hideQuickMenu()

virtual void makVre::DtActionMenuLogic::hideQuickMenu ( )
virtual

Hides the currently active quick menu.

Hides any context-sensitive quick menu that is currently visible. Quick menus appear when the player approaches interactive objects.

◆ toggleActionMenu()

virtual void makVre::DtActionMenuLogic::toggleActionMenu ( float val = 1)
virtual

Toggles the main action menu.

Parameters
valInput value (typically 1.0 for full toggle)

Toggles the visibility of the main action menu. If it's currently visible, it will be hidden; if hidden, it will be shown. The value parameter supports analog inputs like joysticks.

◆ currentQuickMenuEntityId()

virtual DtEntityIdentifier makVre::DtActionMenuLogic::currentQuickMenuEntityId ( )
virtual

Gets the entity ID associated with the current quick menu.

Returns
Entity identifier for the current quick menu target

Returns the identifier of the entity that the current quick menu is associated with (e.g., a vehicle the player is interacting with). Returns an empty identifier if no quick menu is active.

◆ updateActionObject()

virtual void makVre::DtActionMenuLogic::updateActionObject ( const DtEntityIdentifier & entityId,
const DtEntityType & entityType,
const std::string & marking )
protectedvirtual

Updates the current action object.

Parameters
entityIdIdentifier of the entity to set as the current action object
entityTypeType of the entity
markingEntity marking or name

Sets the specified entity as the current action object, which affects the available menu options and context-sensitive actions.

◆ checkMenuDisplayConditionsMet()

virtual bool makVre::DtActionMenuLogic::checkMenuDisplayConditionsMet ( )
protectedvirtual

Checks if menu display conditions are met.

Returns
True if conditions for displaying menus are satisfied

Evaluates the current state to determine if menus should be displayed. This considers factors like player posture, health, and context.

◆ updateQuickMenuVisibility()

virtual void makVre::DtActionMenuLogic::updateQuickMenuVisibility ( )
protectedvirtual

Updates quick menu visibility based on current state.

Determines whether context-sensitive quick menus should be shown or hidden based on proximity to interactive objects and other conditions.

◆ checkActionPointListActionable()

virtual bool makVre::DtActionMenuLogic::checkActionPointListActionable ( const EntityEmbarkationInformationMessage & msg)
protectedvirtual

Checks if action points in an entity's embarkation message are actionable.

Parameters
msgThe embarkation information message to evaluate
Returns
True if any action points are actionable, false otherwise

Examines embarkation information to determine if any action points (like entry points, control stations, etc.) are within interactive range.

◆ processSlotActionPoints()

virtual bool makVre::DtActionMenuLogic::processSlotActionPoints ( const EntityEmbarkationInformationMessage & msg)
protectedvirtual

Processes action points for a slotted entity.

Parameters
msgEmbarkation information message containing action point data
Returns
True if action points were successfully processed

Analyzes and processes action points for slotted entities (like vehicles with multiple seats/positions), determining which are actionable and should appear in menus.

◆ findTransformsForSlotPointProcessing()

virtual bool makVre::DtActionMenuLogic::findTransformsForSlotPointProcessing ( const makVrv::DtSceneObject * obj,
DtVector & ownPos,
DtVector & objPos,
DtDcm & worldToOwnRot,
DtDcm & objToWorldRot ) const
protectedvirtual

Finds the coordinate transformations needed for action point processing.

Parameters
objScene object representing the entity with action points
ownPosOutput parameter for player's position
objPosOutput parameter for object's position
worldToOwnRotOutput parameter for world-to-player rotation matrix
objToWorldRotOutput parameter for object-to-world rotation matrix
Returns
True if transforms were successfully computed

Calculates the positions and rotation matrices needed to transform action points from object space to world space for distance and angle calculations.

◆ findActionablePoints()

virtual bool makVre::DtActionMenuLogic::findActionablePoints ( const DtVector & ownPos,
const DtVector & objPos,
const DtDcm & worldToOwnRot,
const DtDcm & objToWorldRot,
const std::vector< EntityEmbarkationInformationMessage::ActionPoint > & actionPoints )
protectedvirtual

Identifies actionable points based on proximity and orientation.

Parameters
ownPosPlayer's position
objPosObject's position
worldToOwnRotWorld-to-player rotation matrix
objToWorldRotObject-to-world rotation matrix
actionPointsList of action points to evaluate
Returns
True if any actionable points were found

Analyzes each action point to determine if it's within actionable range and orientation relative to the player, scoring them for priority.

◆ scoreActionPoint()

virtual bool makVre::DtActionMenuLogic::scoreActionPoint ( DtVector vecToPoint,
double maxDist,
double & retScore )
protectedvirtual

Scores an action point for actionability.

Parameters
vecToPointVector from player to action point
maxDistMaximum distance for actionability
retScoreOutput parameter for the computed score
Returns
True if the action point is within actionable range

Computes a score for an action point based on distance and orientation relative to the player. Higher scores indicate more easily accessible points.

◆ modifyActionPointVectorBeforeScore()

virtual void makVre::DtActionMenuLogic::modifyActionPointVectorBeforeScore ( DtVector & vecToPoint)
protectedvirtual

Modifies a vector to an action point before scoring.

Parameters
vecToPointVector to modify

Applies adjustments to the vector from player to action point before scoring, such as scaling components or normalizing.

◆ combineDotAndDistScore()

virtual double makVre::DtActionMenuLogic::combineDotAndDistScore ( double dotScore,
double distScore )
protectedvirtual

Combines dot product and distance scores.

Parameters
dotScoreScore based on dot product (angle)
distScoreScore based on distance
Returns
Combined score

Combines the orientation and distance scores into a single value representing the overall accessibility of an action point.

◆ handleSensorUpdate()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleSensorUpdate ( DtVreMessage * message)
protectedvirtual

Handles sensor update messages.

Parameters
messagePointer to the sensor update message
Returns
Message handling result

Processes sensor update messages that may affect menu options for sensor-related actions.

◆ handleEntityStateBool()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleEntityStateBool ( DtVreMessage * msg)
protectedvirtual

Handles entity state boolean messages.

Parameters
msgPointer to the entity state message
Returns
Message handling result

Processes boolean state changes for entities that may affect menu visibility and available options.

◆ handleEntityEmbarkationInformationMessage()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleEntityEmbarkationInformationMessage ( DtVreMessage * msg)
protectedvirtual

Handles embarkation information messages.

Parameters
msgPointer to the embarkation information message
Returns
Message handling result

Processes embarkation information that describes interaction points for entities like vehicles, which affects quick menu availability.

◆ handleMenuMessage()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleMenuMessage ( DtVreMessage * msg)
protectedvirtual

Handles menu state messages.

Parameters
msgPointer to the menu message
Returns
Message handling result

Processes messages related to menu state changes, such as requests to show or hide specific menus.

◆ handleMenuAction()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleMenuAction ( DtVreMessage * msg)
protectedvirtual

Handles menu action messages.

Parameters
msgPointer to the menu action message
Returns
Message handling result

Processes action messages generated when a user selects an option from a menu, executing the corresponding action.

◆ handleEntityDiscovered()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleEntityDiscovered ( DtVreMessage * msg)
protectedvirtual

Handles entity discovery messages.

Parameters
msgPointer to the entity discovered message
Returns
Message handling result

Processes notifications about newly discovered entities that may be candidates for interaction menus.

◆ handleEntityRemoved()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleEntityRemoved ( DtVreMessage * msg)
protectedvirtual

Handles entity removal messages.

Parameters
msgPointer to the entity removed message
Returns
Message handling result

Processes notifications about entities being removed from the simulation, cleaning up any associated menu resources.

◆ handleRequestEntitiesByTypeResponse()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleRequestEntitiesByTypeResponse ( DtVreMessage * msg)
protectedvirtual

Handles responses to entity type queries.

Parameters
msgPointer to the response message
Returns
Message handling result

Processes responses to queries about entities of specific types, which may affect available menu options for type-specific actions.

◆ handleSessionPlayState()

virtual DtVreMessageResult makVre::DtActionMenuLogic::handleSessionPlayState ( DtVreMessage * msg)
protectedvirtual

Handles session play state changes.

Parameters
msgPointer to the session play state message
Returns
Message handling result

Processes notifications about simulation session state changes (e.g., paused, playing, stopped), which may affect menu availability.

◆ entityIdIsDeployableObject()

virtual bool makVre::DtActionMenuLogic::entityIdIsDeployableObject ( const DtEntityIdentifier & entityId)
protectedvirtual

Checks if an entity ID corresponds to a deployed object.

Parameters
entityIdThe entity identifier to check
Returns
True if the entity is a deployable object, false otherwise

Determines whether the specified entity is one of the player's deployable objects (like sensors, markers, etc.).

◆ groundVehicleIsEnabled()

virtual bool makVre::DtActionMenuLogic::groundVehicleIsEnabled ( ) const
protectedvirtual

Checks if the player has a ground vehicle license.

Returns
True if the player has a ground vehicle license, false otherwise

Checks state attribute "GroundVehicleEnabled" to determine if player has a ground vehicle license.

◆ vehicleHasImplicitDriver()

virtual bool makVre::DtActionMenuLogic::vehicleHasImplicitDriver ( const DtEntityIdentifier & vehicleId) const
protectedvirtual

Checks if a vehicle has an implicit driver.

Parameters
vehicleIdIdentifier of the vehicle to check
Returns
True if the vehicle has an implicit driver, false otherwise

Checks if given vehicle has an implicit driver (a visual-only model of a driver occupant).

Member Data Documentation

◆ myInputLogic

DtInputLogic makVre::DtActionMenuLogic::myInputLogic
protected

Input logic handler for menu interactions.

Manages input mapping and handling for menu navigation and selection.

◆ myQuickMenuTable

DtInitTable makVre::DtActionMenuLogic::myQuickMenuTable
protected

Configuration table for quick menus.

◆ myCurrentQuickMenu

std::string makVre::DtActionMenuLogic::myCurrentQuickMenu
protected

Name of the currently active quick menu.

◆ myCurrentQuickMenuEntityId

DtEntityIdentifier makVre::DtActionMenuLogic::myCurrentQuickMenuEntityId
protected

Entity ID associated with the current quick menu.

◆ myCurrentQuickMenuEntityType

DtEntityType makVre::DtActionMenuLogic::myCurrentQuickMenuEntityType
protected

Entity type of the current quick menu target.

◆ myCurrentEntityIsHost

bool makVre::DtActionMenuLogic::myCurrentEntityIsHost
protected

Flag indicating if the current entity is a host entity.

◆ myCurrentEntitySupportsVreSlots

bool makVre::DtActionMenuLogic::myCurrentEntitySupportsVreSlots
protected

Flag indicating if the current entity supports VRE slots.

◆ myLastSlotDataMessage

EntityEmbarkationInformationMessage makVre::DtActionMenuLogic::myLastSlotDataMessage
protected

Last received embarkation information message.

Stores the most recent embarkation information for slot processing, containing action points and slot details for interactive entities.

◆ myQuickMenuSlotTickTimer

double makVre::DtActionMenuLogic::myQuickMenuSlotTickTimer
protected

Timer for quick menu slot proximity checks.

Controls how frequently slot proximity is checked for quick menu updates.

◆ mySlotProximityMaxDistance

double makVre::DtActionMenuLogic::mySlotProximityMaxDistance
protected

Maximum distance for slot proximity detection.

The maximum distance at which slots/action points are considered actionable.

◆ mySlotProximityZScale

double makVre::DtActionMenuLogic::mySlotProximityZScale
protected

Scaling factor for vertical (Z) distance in proximity calculations.

Adjusts the importance of vertical distance in determining proximity to action points.

◆ mySlotProximityAngleWeight

double makVre::DtActionMenuLogic::mySlotProximityAngleWeight
protected

Weight given to angle in proximity calculations.

Determines how heavily the angle between player and action point affects actionability.

◆ mySlotProximityFov

double makVre::DtActionMenuLogic::mySlotProximityFov
protected

Field of view angle for forward-facing action points.

The angle (in radians) defining the forward field of view within which action points are more easily actionable.

◆ mySlotProximityRearMaxDist

double makVre::DtActionMenuLogic::mySlotProximityRearMaxDist
protected

Maximum distance for rear-facing action points.

The maximum distance at which action points behind the player are actionable.

◆ mySlotProximityOverlapDist

double makVre::DtActionMenuLogic::mySlotProximityOverlapDist
protected

Distance overlap tolerance for action points.

The distance by which action point ranges can overlap before prioritization occurs.

◆ myActionablePointsMap

std::map<std::string, int> makVre::DtActionMenuLogic::myActionablePointsMap
protected

Map of actionable points and their priority scores.

Maps action point identifiers to their calculated priority scores.

◆ myLastNote

std::string makVre::DtActionMenuLogic::myLastNote
protected

Last notification or hint displayed to the user.

Stores the text of the last note shown to avoid duplicate notifications.

◆ myTaskLocation

DtVector makVre::DtActionMenuLogic::myTaskLocation
protected

Location of the current task objective.

Stores the position of the current objective or task target.

◆ myDebugMenuToggle

bool makVre::DtActionMenuLogic::myDebugMenuToggle
protected

Flag to toggle debug menu visibility.

Controls whether debug menus are shown for development and testing.


The documentation for this class was generated from the following file: