33class IngameHudVisibility :
Managed
37 protected EHudContextFlags m_CtxFlags;
42 EHudContextFlags QUICKBAR_HIDE_FLAGS = (EHudContextFlags.QUICKBAR_HIDE | EHudContextFlags.QUICKBAR_DISABLE | EHudContextFlags.QUICKBAR_GLOBAL);
43 static EHudContextFlags HUD_HIDE_FLAGS = (EHudContextFlags.HUD_DISABLE | EHudContextFlags.HUD_HIDE | EHudContextFlags.MENU_OPEN | EHudContextFlags.UNCONSCIOUS);
50 InitElementMap(panel);
51 LinkElementsToFlags();
54 protected void InitElementMap(
Widget panel)
56 Widget leftHUDPanel = panel.FindAnyWidget(
"LeftHUDPanel");
57 m_ElementMap.Insert(
EHudElement.LHUD_PRESENCE, leftHUDPanel.FindAnyWidget(
"PresencePanel"));
58 m_ElementMap.Insert(
EHudElement.LHUD_STANCE, leftHUDPanel.FindAnyWidget(
"StancePanel"));
59 m_ElementMap.Insert(
EHudElement.LHUD_PLAYER, leftHUDPanel.FindAnyWidget(
"PlayerPanel"));
60 m_ElementMap.Insert(
EHudElement.LHUD_VEHICLE, leftHUDPanel.FindAnyWidget(
"VehicleHUDPanels"));
61 m_ElementMap.Insert(
EHudElement.RHUD_BADGES, panel.FindAnyWidget(
"BadgesPanel"));
62 m_ElementMap.Insert(
EHudElement.RHUD_DIVIDER, panel.FindAnyWidget(
"BadgeNotifierDivider"));
63 m_ElementMap.Insert(
EHudElement.RHUD_NOTIFIERS, panel.FindAnyWidget(
"NotifiersPanel"));
64 m_ElementMap.Insert(
EHudElement.QUICKBAR, panel.FindAnyWidget(
"QuickbarGrid"));
69 protected void LinkElementsToFlags()
75 m_ElementLinkMap.Insert(EHudContextFlags.HUD_DISABLE, hud);
76 m_ElementLinkMap.Insert(EHudContextFlags.HUD_HIDE, hud);
77 m_ElementLinkMap.Insert(EHudContextFlags.VEHICLE_DISABLE, {EHudElement.LHUD_VEHICLE});
78 m_ElementLinkMap.Insert(EHudContextFlags.DRIVER, {EHudElement.LHUD_VEHICLE});
79 m_ElementLinkMap.Insert(EHudContextFlags.VEHICLE, lHud);
80 m_ElementLinkMap.Insert(EHudContextFlags.MENU_OPEN, hudVeh);
81 m_ElementLinkMap.Insert(EHudContextFlags.NO_BADGE, {EHudElement.RHUD_DIVIDER});
82 m_ElementLinkMap.Insert(EHudContextFlags.QUICKBAR_DISABLE, {EHudElement.QUICKBAR});
83 m_ElementLinkMap.Insert(EHudContextFlags.QUICKBAR_HIDE, {EHudElement.QUICKBAR});
84 m_ElementLinkMap.Insert(EHudContextFlags.QUICKBAR_GLOBAL, {EHudElement.QUICKBAR});
85 m_ElementLinkMap.Insert(EHudContextFlags.INVENTORY_OPEN, hud);
86 m_ElementLinkMap.Insert(EHudContextFlags.UNCONSCIOUS, hud);
90 void SetContextFlag(EHudContextFlags flag,
bool state)
97 array<EHudElement> affectedElements = m_ElementLinkMap.Get(flag);
100 UpdateElement(element);
107 Widget widget = m_ElementMap.Get(element);
109 return widget.IsVisible());
115 bool IsContextFlagActive(EHudContextFlags flag)
117 if (m_CtxFlags & flag)
133 if (m_CtxFlags & (HUD_HIDE_FLAGS | EHudContextFlags.VEHICLE) && (m_CtxFlags & EHudContextFlags.INVENTORY_OPEN) == 0)
139 if ((m_CtxFlags & EHudContextFlags.DRIVER) == 0 || m_CtxFlags & (EHudContextFlags.VEHICLE_DISABLE | EHudContextFlags.MENU_OPEN | EHudContextFlags.UNCONSCIOUS))
146 if (m_CtxFlags & EHudContextFlags.NO_BADGE)
151 if (m_CtxFlags & HUD_HIDE_FLAGS && (m_CtxFlags & EHudContextFlags.INVENTORY_OPEN) == 0)
157 if (m_CtxFlags & QUICKBAR_HIDE_FLAGS)
169 Widget widget = m_ElementMap.Get(element);
173 if (target && !widget.IsVisible())
179 if (!target && widget.IsVisible())
enum EHudElement VEHICLE_DISABLE
enum EHudElement QUICKBAR_HIDE
enum EHudElement NO_BADGE
enum EHudElement MENU_OPEN
enum EHudElement HUD_DISABLE
enum EHudElement INVENTORY_OPEN
enum EHudElement QUICKBAR_DISABLE
enum EHudElement HUD_HIDE
enum EHudElement QUICKBAR_GLOBAL
void UpdateVisibility(bool state)