Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
pperequesterbank.c
Go to the documentation of this file.
1
4class PPERequesterBank extends Managed
5{
6 private static ref map<int,ref PPERequesterBase> m_Instances;
7 private static bool m_Initialized = false;
8
9 static int m_lastID = -1;
10
11 static const int INVALID = -1;
12 static const int REQ_INVENTORYBLUR = RegisterRequester(PPERequester_InventoryBlur);
13 static const int REQ_CONTROLLERDISCONNECT = RegisterRequester(PPERequester_ControllerDisconnectBlur);
14 static const int REQ_GLASSESSPORTBLACK = RegisterRequester(PPERequester_GlassesSportBlack);
15 static const int REQ_GLASSESSPORTBLUE = RegisterRequester(PPERequester_GlassesSportBlue);
16 static const int REQ_GLASSESSPORTGREEN = RegisterRequester(PPERequester_GlassesSportGreen);
17 static const int REQ_GLASSESSPORTORANGE = RegisterRequester(PPERequester_GlassesSportOrange);
18 static const int REQ_GLASSESAVIATOR = RegisterRequester(PPERequester_GlassesAviator);
19 static const int REQ_GLASSESDESIGNER = RegisterRequester(PPERequester_GlassesDesignerBlack);
20 static const int REQ_GLASSESTACTICAL = RegisterRequester(PPERequester_TacticalGoggles);
21 static const int REQ_MOTOHELMETBLACK = RegisterRequester(PPERequester_MotoHelmetBlack);
22 static const int REQ_GLASSESWELDING = RegisterRequester(PPERequester_WeldingMask);
23 static const int REQ_CAMERANV = RegisterRequester(PPERequester_CameraNV);
24 static const int REQ_CAMERAADS = RegisterRequester(PPERequester_CameraADS);
25 static const int REQ_BLOODLOSS = RegisterRequester(PPERequester_BloodLoss);
26 static const int REQ_DEATHEFFECTS = RegisterRequester(PPERequester_DeathDarkening);
27 static const int REQ_UNCONEFFECTS = RegisterRequester(PPERequester_UnconEffects);
28 static const int REQ_TUNELVISSION = RegisterRequester(PPERequester_TunnelVisionEffects);
29 static const int REQ_BURLAPSACK = RegisterRequester(PPERequester_BurlapSackEffects);
30 static const int REQ_INTROCHROMABB = RegisterRequester(PPERequester_IntroChromAbb);
31 static const int REQ_FEVEREFFECTS = RegisterRequester(PPERequester_FeverEffects);
32 static const int REQ_FLASHBANGEFFECTS = RegisterRequester(PPERequester_FlashbangEffects);
33 static const int REQ_SHOCKHITEFFECTS = RegisterRequester(PPERequester_ShockHitReaction);
34 static const int REQ_HEALTHHITEFFECTS = RegisterRequester(PPERequester_HealthHitReaction);
35 static const int REQ_MENUEFFECTS = RegisterRequester(PPERequester_MenuEffects);
36 static const int REQ_CONTROLLERBLUR = RegisterRequester(PPERequester_ControlsBlur);
37 static const int REQ_SERVERBROWSEREFFECTS = RegisterRequester(PPERequester_ServerBrowserBlur);
38 static const int REQ_TUTORIALEFFECTS = RegisterRequester(PPERequester_TutorialMenu);
39 static const int REQ_CONTAMINATEDAREA = RegisterRequester(PPERequester_ContaminatedAreaTint);
40 static const int REQ_SPOOKYAREA = RegisterRequester(PPERequester_SpookyAreaTint);
41 static const int REQ_PAINBLUR = RegisterRequester(PPERequester_PainBlur);
42 static const int REQ_UNDERGROUND = RegisterRequester(PPERUndergroundAcco);
43 static const int REQ_DROWNING = RegisterRequester(PPERequester_Drowning);
44 //static const int REQ_HMP_LVL3 = RegisterRequester(PPERequester_HeavyMetalPoisoning_3);
45 static const int REQ_HMP_GHOST = RegisterRequester(PPERequester_HMPGhosts);
46 static const int REQ_LATENCYBLUR = RegisterRequester(PPERequester_LatencyBlur);
47 static const int REQ_FEEDBACKBLUR = RegisterRequester(PPERequester_FeedbackBlur);
48
49 private static ref PPERequesterRegistrations m_Registrations; //more registrations to be placed here
50
51 static void Init()
52 {
53 m_Registrations = new PPERequesterRegistrations;
54
55 if (!m_Instances)
56 m_Instances = new map<int,ref PPERequesterBase>;
57
58 m_Initialized = true;
59 }
60
61 static void Cleanup()
62 {
63 if (m_Initialized)
64 {
65 delete m_Registrations;
66 m_Instances.Clear();
67 }
68 }
69
76 static PPERequesterBase GetRequester(typename type)
77 {
78 if (!type)
79 {
80 Error("Requested type is NULL!");
81 return null;
82 }
83
86 for (int i = 0; i < m_Instances.Count(); i++)
87 {
88 temp = m_Instances.GetElement(i);
89 if (temp.Type() == type)
90 {
91 Class.CastTo(ret,temp);
92 break;
93 }
94 }
95
96 if (!ret)
97 {
98 Debug.Log("'" + type.ToString() + "' not found in bank! Register first in 'RegisterRequester' method.");
99 }
100 return ret;
101 }
102
109 static PPERequesterBase GetRequester(int index)
110 {
111 PPERequesterBase ret = m_Instances.Get(index);
112
113 if (!ret)
114 {
115 Debug.Log("Requester idx '" + index + "' not found in bank! Register first in 'RegisterRequester' method.");
116 }
117 return ret;
118 }
119
126 static int GetRequesterID(typename type)
127 {
128 int ret = -1;
129 PPERequesterBase temp;
130
131 for (int i = 0; i < m_Instances.Count(); i++)
132 {
133 temp = m_Instances.GetElement(i);
134 if (temp.Type() == type)
135 {
136 ret = m_Instances.GetKey(i);
137 }
138 }
139
140 if ( ret == -1 )
141 {
142 Debug.Log("Requester instance of the '" + type.ToString() + "' type not found in bank! Register first in 'RegisterRequester' method.");
143 }
144 return ret;
145 }
146
152 static typename GetRequesterTypename(int index)
153 {
154 typename ret;
155 PPERequesterBase temp = m_Instances.Get(index);
156 if ( !temp )
157 {
158 Debug.Log("No requester exists under idx '" + index + "' in bank! Register first in 'RegisterRequester' method.");
159 }
160 else
161 {
162 ret = temp.Type();
163 }
164
165 return ret;
166 }
167
172 static int RegisterRequester(typename type)
173 {
174 if (!m_Instances)
175 m_Instances = new map<int,ref PPERequesterBase>;
176
177 if ( GetRequester(type) != null )
178 {
179 //Error("Trying to register an already existing requester type: " + type);
180 Debug.Log("Trying to register an already existing requester type: " + type);
181 return -1;
182 }
183
184 m_lastID++;
185
187 req = PPERequesterBase.Cast(type.Spawn());
188 req.SetRequesterIDX(m_lastID);
189 m_Instances.Set(m_lastID,req);
190
191 return m_lastID;
192 }
193
195 static bool VerifyRequester(PPERequesterBase req)
196 {
197 if (!m_Initialized) //initial registrations are fair game
198 {
199 return true;
200 }
201
202 PPERequesterBase temp;
203 for (int i = 0; i < m_Instances.Count(); i++)
204 {
205 temp = m_Instances.GetElement(i);
206 if (temp == req)
207 {
208 return true;
209 }
210 }
211
212 //Error("Requester instance " + req + " not valid! Please use registered instances from PPERequesterBank.");
213 Debug.Log("Requester instance '" + req + "' not valid! Please use registered instances from PPERequesterBank.");
214 return false;
215 }
216
217 /*static void DumpInstances()
218 {
219 Print("DumpInstances");
220 for (int i = 0; i < m_Instances.Count(); i++)
221 {
222 Print(m_Instances.GetKey(i));
223 Print(m_Instances.GetElement(i));
224 }
225 }*/
226}
227
230{
232 {
234 }
235
237 {
238 //PPERequesterBank.RegisterRequester(TestReq);
239 }
240}
241
242/*modded class PPERequesterRegistrations extends Managed
243{
244 override protected void RegisterAdditionalRequesters()
245 {
246 PPERequesterBank.RegisterRequester(TestReq2);
247 }
248}*/
bool m_Initialized
Super root of all classes in Enforce script.
Definition enscript.c:11
Definition debug.c:2
TODO doc.
Definition enscript.c:118
void SetRequesterIDX(int idx)
automatically assigned by PPERequesterBank
override Widget Init()
Definition dayzgame.c:127
void Error(string err)
Messagebox with error message.
Definition endebug.c:90
@ INVALID
Invalid file.
Definition ensystem.c:510
void Cleanup()
Definition ppemanager.c:70
void RegisterAdditionalRequesters()
class PPERequesterBank extends Managed PPERequesterRegistrations()
Mod this, if you wish to register custom requesters inside 'RegisterAdditionalRequesters' override.
PPERUndergroundAcco GetRequester()