DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
Guards.c
Go to the documentation of this file.
1
5{
11 bool GuardCondition (WeaponEventBase e) { return true; }
12};
13
14class GuardAnd extends WeaponGuardBase
15{
18
19 void GuardAnd (WeaponGuardBase arg0 = NULL, WeaponGuardBase arg1 = NULL) { m_arg0 = arg0; m_arg1 = arg1; }
20
22 {
23 bool result = m_arg0.GuardCondition(e) && m_arg1.GuardCondition(e);
24 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - " + m_arg0.Type() + " && " + m_arg1.Type() + " = " + result); }
25 return result;
26 }
27};
28
29class GuardNot extends WeaponGuardBase
30{
32
33 void GuardNot (WeaponGuardBase arg0 = NULL) { m_arg0 = arg0; }
34
36 {
37 bool result = !m_arg0.GuardCondition(e);
38 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - ! " + m_arg0.Type() + " = " + result); }
39 return result;
40 }
41};
42
43class GuardOr extends WeaponGuardBase
44{
47
48 void GuardOr (WeaponGuardBase arg0 = NULL, WeaponGuardBase arg1 = NULL) { m_arg0 = arg0; m_arg1 = arg1; }
49
51 {
52 bool result = m_arg0.GuardCondition(e) || m_arg1.GuardCondition(e);
53 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - " + m_arg0.Type() + " || " + m_arg1.Type() + " = " + result); }
54 return result;
55 }
56};
57
58// guards /////////////////////////////////////////////////////////////////////////////////////////////////////////////
59
60class WeaponGuardJammed extends WeaponGuardBase
61{
63 void WeaponGuardJammed (Weapon_Base w = NULL) { m_weapon = w; }
64
66 {
67 /*int mi = m_weapon.GetCurrentMuzzle();
68 if (m_weapon.IsChamberJammed(mi))*/
69 if(m_weapon.IsJammed())
70 {
71 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - jammed"); }
72 return true;
73 }
74 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - not jammed"); }
75 return false;
76 }
77};
78
79class WeaponGuardIsDestroyed extends WeaponGuardBase
80{
81 protected Weapon_Base m_weapon;
83
85 {
86 if (m_weapon.IsDamageDestroyed())
87 {
88 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - weapon destroyed"); }
89 return true;
90 }
91 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - weapon not destroyed"); }
92 return false;
93 }
94}
95
97{
99 void WeaponGuardHasAmmo (Weapon_Base w = NULL) { m_weapon = w; }
100
102 {
103 int mi = m_weapon.GetCurrentMuzzle();
104 Magazine mag = m_weapon.GetMagazine(mi);
105 if (mag != NULL && mag.GetAmmoCount() > 0)
106 {
107 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - has ammo"); }
108 return true;
109 }
110 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - no ammo"); }
111 return false;
112 }
113};
114
115class WeaponGuardHasAmmoInnerMagazine extends WeaponGuardBase
116{
117 protected Weapon_Base m_weapon;
119
121 {
122 int mi = m_weapon.GetCurrentMuzzle();
123 if (m_weapon.GetInternalMagazineCartridgeCount(mi) >= 1)
124 {
125 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - has ammo in inner magazine"); }
126 return true;
127 }
128 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - no ammo in inner magazine"); }
129 return false;
130 }
131};
132
133class WeaponGuardHasAmmoInEvent extends WeaponGuardBase
134{
135 protected Weapon_Base m_weapon;
137
139 {
140 Magazine mag = e.m_magazine;
141 if (mag != NULL && mag.GetAmmoCount() > 0)
142 {
143 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - has ammo in event"); }
144 return true;
145 }
146 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - no ammo in event"); }
147 return false;
148 }
149};
150
151
152class WeaponGuardHasMag extends WeaponGuardBase
153{
154 protected Weapon_Base m_weapon;
155 void WeaponGuardHasMag (Weapon_Base w = NULL) { m_weapon = w; }
156
158 {
159 int mi = m_weapon.GetCurrentMuzzle();
160 Magazine mag = m_weapon.GetMagazine(mi);
161 if (mag != NULL)
162 {
163 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - has magazine"); }
164 return true;
165 }
166 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - no magazine"); }
167 return false;
168 }
169};
170
171class WeaponGuardChamberEmpty extends WeaponGuardBase
172{
173 protected Weapon_Base m_weapon;
174 protected int m_muzzle;
175 void WeaponGuardChamberEmpty (Weapon_Base w = NULL, int muzzle_index = 0 ) { m_weapon = w; m_muzzle = muzzle_index; }
176
178 {
179 if (m_weapon.IsChamberEmpty(m_muzzle))
180 {
181 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") empty"); }
182 return true;
183 }
184 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") not empty"); }
185 return false;
186 }
187};
188
189class WeaponGuardCurrentChamberEmpty extends WeaponGuardBase
190{
191 protected Weapon_Base m_weapon;
193
195 {
196 int mi = m_weapon.GetCurrentMuzzle();
197 if (m_weapon.IsChamberEmpty(mi))
198 {
199 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber empty"); }
200 return true;
201 }
202 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber not empty"); }
203 return false;
204 }
205};
206
207class WeaponGuardAnyChamberEmpty extends WeaponGuardBase
208{
209 protected Weapon_Base m_weapon;
210 protected int m_muzzle;
211 void WeaponGuardAnyChamberEmpty (Weapon_Base w = NULL, int muzzle_index = 0 ) { m_weapon = w; m_muzzle = muzzle_index; }
212
214 {
215 for (int i = 0; i < m_weapon.GetMuzzleCount(); i++)
216 {
217 if (m_weapon.IsChamberEmpty(i))
218 {
219 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - multi chamber (" + i + ") empty"); }
220 return true;
221 }
222 }
223 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - no chamber empty"); }
224 return false;
225 }
226};
227
228class WeaponGuardChamberFull extends WeaponGuardBase
229{
230 protected Weapon_Base m_weapon;
231 protected int m_muzzle;
232 void WeaponGuardChamberFull (Weapon_Base w = NULL, int muzzle_index = 0 ) { m_weapon = w; m_muzzle = muzzle_index; }
233
235 {
236 if (m_weapon.IsChamberFull(m_muzzle))
237 {
238 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") full"); }
239 return true;
240 }
241 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") not full"); }
242 return false;
243 }
244};
245
246class WeaponGuardCurrentChamberFull extends WeaponGuardBase
247{
248 protected Weapon_Base m_weapon;
250
252 {
253 int mi = m_weapon.GetCurrentMuzzle();
254 if (m_weapon.IsChamberFull(mi))
255 {
256 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber full"); }
257 return true;
258 }
259 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber not full"); }
260 return false;
261 }
262};
263
264
265class WeaponGuardInnerMagazineFull extends WeaponGuardBase
266{
267 protected Weapon_Base m_weapon;
269
271 {
272 int mi = m_weapon.GetCurrentMuzzle();
273 if (m_weapon.IsInternalMagazineFull(mi))
274 {
275 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - internal magazine full"); }
276 return true;
277 }
278 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - internal magazine not full"); }
279 return false;
280 }
281};
282
283class WeaponGuardInnerMagazineFullShareChamber extends WeaponGuardBase
284{
285 protected Weapon_Base m_weapon;
287
289 {
290 int mi = m_weapon.GetCurrentMuzzle();
291
292 if ( m_weapon.IsChamberFull(mi) && m_weapon.IsInternalMagazineFull(mi))
293 {
294 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - internal magazine with share chamber is full"); }
295 return true;
296 }
297 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - internal magazine with share chamber is not full"); }
298 return false;
299 }
300};
301
302class WeaponGuardChamberFiredOut extends WeaponGuardBase
303{
304 protected Weapon_Base m_weapon;
305 protected int m_muzzle;
306 void WeaponGuardChamberFiredOut (Weapon_Base w = NULL, int muzzle_index = 0 ) { m_weapon = w; m_muzzle = muzzle_index; }
307
309 {
310 if (m_weapon.IsChamberFiredOut(m_muzzle))
311 {
312 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") fireout"); }
313 return true;
314 }
315 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber (" + m_muzzle + ") not fireout"); }
316 return false;
317 }
318};
319
320class WeaponGuardCurrentChamberFiredOut extends WeaponGuardBase
321{
322 protected Weapon_Base m_weapon;
324
326 {
327 int mi = m_weapon.GetCurrentMuzzle();
328 if (m_weapon.IsChamberFiredOut(mi))
329 {
330 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber fired out"); }
331 return true;
332 }
333 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber not fired out"); }
334 return false;
335 }
336};
337
338class WeaponGuardAnyChamberFiredOut extends WeaponGuardBase
339{
340 protected Weapon_Base m_weapon;
342
344 {
345 for (int i = 0; i < m_weapon.GetMuzzleCount(); i++)
346 {
347 if (m_weapon.IsChamberFiredOut(i))
348 {
349 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - multi chamber (" + i + ") fired out"); }
350 return true;
351 }
352 }
353
354 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - any chamber has not fired out"); }
355 return false;
356 }
357};
358
359class WeaponGuardCanAttachMag extends WeaponGuardBase
360{
361 protected Weapon_Base m_weapon;
363
365 {
366 int mi = m_weapon.GetCurrentMuzzle();
367 if (m_weapon && e.m_magazine && m_weapon.CanAttachMagazine(mi, e.m_magazine))
368 {
369 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - can attach magazine"); }
370 return true;
371 }
372 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - cannot attach magazine"); }
373 return false;
374 }
375};
376
377class WeaponGuardCanSwapMag extends WeaponGuardBase
378{
379 protected Weapon_Base m_weapon;
381
383 {
384 int mi = m_weapon.GetCurrentMuzzle();
385 Magazine attached_mag = m_weapon.GetMagazine(mi);
386 if (m_weapon && e.m_magazine && e.m_magazine != attached_mag /*&& m_weapon.CanSwapMagazine(mi, e.m_magazine)*/)
387 {
388 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - can swap magazine"); }
389 return true;
390 }
391 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - cannot swap magazine"); }
392 return false;
393 }
394};
395
396class WeaponGuardCanDetachMag extends WeaponGuardBase
397{
398 protected Weapon_Base m_weapon;
400
402 {
403 int mi = m_weapon.GetCurrentMuzzle();
404 if (m_weapon && e.m_magazine && m_weapon.GetMagazine(mi)/* && m_weapon.CanDetachMagazine(mi, e.m_magazine)*/)
405 {
406 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - can detach magazine"); }
407 return true;
408 }
409 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - cannot detach magazine"); }
410 return false;
411 }
412};
413
414class WeaponGuardChamberHasRoomForMoreThanOne extends WeaponGuardBase
415{
416 protected Weapon_Base m_weapon;
418
420 {
421 int mi = m_weapon.GetCurrentMuzzle();
422 if (m_weapon.GetInternalMagazineMaxCartridgeCount(mi) - m_weapon.GetInternalMagazineCartridgeCount(mi) > 1)
423 {
424 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has room for more than 1b"); }
425 return true;
426 }
427 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has no room for more than 1b"); }
428 return false;
429 }
430};
431
432class WeaponGuardChamberHasRoomForOne extends WeaponGuardBase
433{
434 protected Weapon_Base m_weapon;
436
438 {
439 int mi = m_weapon.GetCurrentMuzzle();
440 if (m_weapon.GetTotalMaxCartridgeCount(mi) - m_weapon.GetTotalCartridgeCount(mi) == 1)
441 {
442 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has room for 1b"); }
443 return true;
444 }
445 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has no room for 1b"); }
446 return false;
447 }
448};
449
450class WeaponGuardChamberMultiHasRoomBulltet extends WeaponGuardBase
451{
452 protected Weapon_Base m_weapon;
454
456 {
457 int i = m_weapon.GetMuzzleCount() - 1;
458 for ( ; i >= 0; i--)
459 {
460 if (m_weapon.GetTotalMaxCartridgeCount(i) - m_weapon.GetTotalCartridgeCount(i) >= 1)
461 {
462 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has room for 1b"); }
463 return true;
464 }
465 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has no room for 1b"); }
466 }
467 return false;
468 }
469};
470
471class WeaponGuardChamberMultiHasRoomBulltetIgnoreLast extends WeaponGuardBase
472{
473 protected Weapon_Base m_weapon;
475
477 {
478 int i = m_weapon.GetMuzzleCount() - 1;
479 bool emty_one = false;
480 for ( ; i >= 0; i--)
481 {
482 if (m_weapon.GetTotalMaxCartridgeCount(i) - m_weapon.GetTotalCartridgeCount(i) >= 1)
483 {
484 if ( !emty_one )
485 {
486 emty_one = true;
487 }
488 else
489 {
490 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has room for 1b"); }
491 return true;
492 }
493 }
494 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - chamber has no room for 1b"); }
495 }
496 return false;
497 }
498};
499
500
501class WeaponGuardHasAmmoInLoopedState extends WeaponGuardBase
502{
505
507 {
508 Magazine mag = m_state.m_srcMagazine;
509 if (mag != NULL && mag.GetAmmoCount() > 0)
510 {
511 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - has ammo in looped state"); }
512 return true;
513 }
514 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] guard - no ammo in looped state"); }
515 return false;
516 }
517};
518
519class WeaponGuardMagazinesHaveEqualSizes extends WeaponGuardBase
520{
521 protected Weapon_Base m_weapon;
523
525 {
526 int mi = m_weapon.GetCurrentMuzzle();
527 Magazine mag = m_weapon.GetMagazine(mi);
528 Magazine mag2 = e.m_magazine;
529 if (mag != NULL && mag2 != NULL)
530 {
531 bool eq = magazinesHaveEqualSizes(mag, mag2);
532 if (eq)
533 {
534 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - same inventory sizes"); }
535 return true;
536 }
537
538 if (LogManager.IsWeaponLogEnable()) { wpnDebugPrint("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - different inventory sizes"); }
539 return false;
540 }
541 Error("[wpnfsm] " + Object.GetDebugName(m_weapon) + " guard - mag == NULL or mag2 == NULL, cannot perform comparison");
542 return false;
543 }
544};
545
546class WeaponGuardWeaponManagerWantContinue extends WeaponGuardBase
547{
549 {
550 PlayerBase player = PlayerBase.Cast(e.m_player);
551 return player.GetWeaponManager().WantContinue();
552 }
553};
554
void wpnDebugPrint(string s)
Definition Debug.c:9
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
Definition Guards.c:99
class WeaponGuardIsDestroyed extends WeaponGuardBase m_weapon
static bool IsWeaponLogEnable()
Definition Debug.c:640
signalize mechanism manipulation
Definition Events.c:35
Magazine m_magazine
Definition Events.c:38
DayZPlayer m_player
Definition Events.c:37
represents guard on a transition from state to state
Definition Guards.c:5
void GuardNot(WeaponGuardBase arg0=NULL)
Definition Guards.c:33
void WeaponGuardInnerMagazineFullShareChamber(Weapon_Base w=NULL)
Definition Guards.c:286
void WeaponGuardHasAmmoInLoopedState(WeaponChambering_Base state)
Definition Guards.c:504
void WeaponGuardCanAttachMag(Weapon_Base w=NULL)
Definition Guards.c:362
override bool GuardCondition(WeaponEventBase e)
Definition Guards.c:21
void WeaponGuardIsDestroyed(Weapon_Base w=NULL)
Definition Guards.c:82
ref WeaponGuardBase m_arg1
Definition Guards.c:17
void WeaponGuardChamberHasRoomForOne(Weapon_Base w=NULL)
Definition Guards.c:435
void GuardOr(WeaponGuardBase arg0=NULL, WeaponGuardBase arg1=NULL)
Definition Guards.c:48
void WeaponGuardChamberHasRoomForMoreThanOne(Weapon_Base w=NULL)
Definition Guards.c:417
void WeaponGuardHasMag(Weapon_Base w=NULL)
Definition Guards.c:155
void WeaponGuardHasAmmoInEvent(Weapon_Base w=NULL)
Definition Guards.c:136
void WeaponGuardJammed(Weapon_Base w=NULL)
Definition Guards.c:63
void WeaponGuardChamberFiredOut(Weapon_Base w=NULL, int muzzle_index=0)
Definition Guards.c:306
bool GuardCondition(WeaponEventBase e)
Definition Guards.c:11
void WeaponGuardCanSwapMag(Weapon_Base w=NULL)
Definition Guards.c:380
void WeaponGuardChamberEmpty(Weapon_Base w=NULL, int muzzle_index=0)
Definition Guards.c:175
void WeaponGuardCurrentChamberFiredOut(Weapon_Base w=NULL)
Definition Guards.c:323
void WeaponGuardAnyChamberFiredOut(Weapon_Base w=NULL)
Definition Guards.c:341
void WeaponGuardChamberFull(Weapon_Base w=NULL, int muzzle_index=0)
Definition Guards.c:232
void WeaponGuardAnyChamberEmpty(Weapon_Base w=NULL, int muzzle_index=0)
Definition Guards.c:211
void WeaponGuardCurrentChamberEmpty(Weapon_Base w=NULL)
Definition Guards.c:192
void WeaponGuardHasAmmoInnerMagazine(Weapon_Base w=NULL)
Definition Guards.c:118
WeaponChambering_Base m_state
Definition Guards.c:503
protected int m_muzzle
Definition Guards.c:174
void WeaponGuardInnerMagazineFull(Weapon_Base w=NULL)
Definition Guards.c:268
ref WeaponGuardBase m_arg0
Definition Guards.c:16
void WeaponGuardChamberMultiHasRoomBulltet(Weapon_Base w=NULL)
Definition Guards.c:453
void GuardAnd(WeaponGuardBase arg0=NULL, WeaponGuardBase arg1=NULL)
Definition Guards.c:19
protected Weapon_Base m_weapon
Definition Guards.c:62
void WeaponGuardCurrentChamberFull(Weapon_Base w=NULL)
Definition Guards.c:249
void WeaponGuardChamberMultiHasRoomBulltetIgnoreLast(Weapon_Base w=NULL)
Definition Guards.c:474
void WeaponGuardMagazinesHaveEqualSizes(Weapon_Base w=NULL)
Definition Guards.c:522
void WeaponGuardCanDetachMag(Weapon_Base w=NULL)
Definition Guards.c:399
void Error(string err)
Messagebox with error message.
Definition EnDebug.c:90
bool magazinesHaveEqualSizes(notnull Magazine mag, notnull Magazine mag2)