Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_WeaponSwitchingHints.c
Go to the documentation of this file.
1//---- REFACTOR NOTE START: This code will need to be refactored as current implementation is not conforming to the standards ----
2// TODO: Remove this dead code
4{
5 Widget m_wChangeAmmo;
6 Widget m_wChangeMuzzle;
7 Widget m_wSafety;
8 Widget m_wRaiseWeapon;
9 EventHandlerManagerComponent m_EventHandlerManager;
10
11 BaseWeaponComponent m_CurrentWeapon;
12
13 override void HandlerAttached(Widget w)
14 {
15 GetGame().GetInputManager().AddActionListener("CharacterChangeAmmo", EActionTrigger.DOWN, Action_ChangeAmmo);
16 GetGame().GetInputManager().AddActionListener("CharacterChangeMuzzle", EActionTrigger.DOWN, Action_ChangeMuzzle);
17
18 m_wChangeAmmo = w.FindAnyWidget("ChangeAmmo");
19 m_wChangeMuzzle = w.FindAnyWidget("ChangeMuzzle");
20 m_wSafety = w.FindAnyWidget("Safety");
21 m_wRaiseWeapon = w.FindAnyWidget("RaiseWeapon");
22
24 if (!character)
25 return;
26
27 m_EventHandlerManager = EventHandlerManagerComponent.Cast(character.FindComponent(EventHandlerManagerComponent));
28 if (m_EventHandlerManager)
29 m_EventHandlerManager.RegisterScriptHandler("OnWeaponChanged", this, OnWeaponChanged, true);
30
31 BaseWeaponManagerComponent weaponManager = BaseWeaponManagerComponent.Cast(character.FindComponent(BaseWeaponManagerComponent));
32 if (!weaponManager)
33 return;
34
35 m_CurrentWeapon = weaponManager.GetCurrent();
36 OnWeaponChanged(m_CurrentWeapon);
37 }
38
39 override void HandlerDeattached(Widget w)
40 {
41 if (m_EventHandlerManager)
42 m_EventHandlerManager.RemoveScriptHandler("OnWeaponChanged", this, OnWeaponChanged, true);
43 }
44
45
46 void OnWeaponChanged(BaseWeaponComponent weapon)
47 {
48 m_CurrentWeapon = weapon;
49
50 // If the current item is not a weapon, hide all widgets
51 if (!weapon)
52 {
53 m_wRaiseWeapon.SetVisible(false);
54 m_wChangeMuzzle.SetVisible(false);
55 m_wChangeAmmo.SetVisible(false);
56 m_wSafety.SetVisible(false);
57 return;
58 }
59
60 // Ammo
61 // TODO: How do I get the current ammo types???
62
63
64 m_wRaiseWeapon.SetVisible(true);
65
66 // Muzzles
67 array<BaseMuzzleComponent> a;
68 int count = weapon.GetMuzzlesList(a);
69 m_wChangeMuzzle.SetVisible(count > 1);
70
71 // Safety
72 bool hasSafetyMode = false;
73 BaseMuzzleComponent muzzle = weapon.GetCurrentMuzzle();
74 if (muzzle)
75 {
76 array<BaseFireMode> fireModes;
77 muzzle.GetFireModesList(fireModes);
78 foreach (BaseFireMode mode : fireModes)
79 {
80 if (mode.GetFiremodeType() != EWeaponFiremodeType.Safety)
81 continue;
82
83 hasSafetyMode = true;
84 break;
85 }
86 }
87 m_wSafety.SetVisible(hasSafetyMode);
88 }
89
90 void Action_ChangeAmmo()
91 {
92 if (!m_CurrentWeapon || !m_wChangeAmmo.IsVisible())
93 return;
94
95 // MUST BE IMPLEMENTED BY PROGRAMMER!
96 }
97
98 void Action_ChangeMuzzle()
99 {
100 if (!m_CurrentWeapon || !m_wChangeMuzzle.IsVisible())
101 return;
102
103 // MUST BE IMPLEMENTED BY PROGRAMMER!
104 }
105};
106//---- REFACTOR NOTE END ----
ArmaReforgerScripted GetGame()
Definition game.c:1398
static IEntity GetLocalControlledEntity()
EActionTrigger
EWeaponFiremodeType