9 EventHandlerManagerComponent m_EventHandlerManager;
13 override void HandlerAttached(
Widget w)
15 GetGame().GetInputManager().AddActionListener(
"CharacterChangeAmmo",
EActionTrigger.DOWN, Action_ChangeAmmo);
16 GetGame().GetInputManager().AddActionListener(
"CharacterChangeMuzzle",
EActionTrigger.DOWN, Action_ChangeMuzzle);
18 m_wChangeAmmo = w.FindAnyWidget(
"ChangeAmmo");
19 m_wChangeMuzzle = w.FindAnyWidget(
"ChangeMuzzle");
20 m_wSafety = w.FindAnyWidget(
"Safety");
21 m_wRaiseWeapon = w.FindAnyWidget(
"RaiseWeapon");
27 m_EventHandlerManager = EventHandlerManagerComponent.Cast(character.FindComponent(EventHandlerManagerComponent));
28 if (m_EventHandlerManager)
29 m_EventHandlerManager.RegisterScriptHandler(
"OnWeaponChanged",
this, OnWeaponChanged,
true);
31 BaseWeaponManagerComponent weaponManager = BaseWeaponManagerComponent.Cast(character.FindComponent(BaseWeaponManagerComponent));
35 m_CurrentWeapon = weaponManager.GetCurrent();
36 OnWeaponChanged(m_CurrentWeapon);
39 override void HandlerDeattached(
Widget w)
41 if (m_EventHandlerManager)
42 m_EventHandlerManager.RemoveScriptHandler(
"OnWeaponChanged",
this, OnWeaponChanged,
true);
48 m_CurrentWeapon = weapon;
53 m_wRaiseWeapon.SetVisible(
false);
54 m_wChangeMuzzle.SetVisible(
false);
55 m_wChangeAmmo.SetVisible(
false);
56 m_wSafety.SetVisible(
false);
64 m_wRaiseWeapon.SetVisible(
true);
67 array<BaseMuzzleComponent> a;
68 int count = weapon.GetMuzzlesList(a);
69 m_wChangeMuzzle.SetVisible(count > 1);
72 bool hasSafetyMode =
false;
76 array<BaseFireMode> fireModes;
77 muzzle.GetFireModesList(fireModes);
87 m_wSafety.SetVisible(hasSafetyMode);
90 void Action_ChangeAmmo()
92 if (!m_CurrentWeapon || !m_wChangeAmmo.IsVisible())
98 void Action_ChangeMuzzle()
100 if (!m_CurrentWeapon || !m_wChangeMuzzle.IsVisible())