Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
weaponstablestate.c
Go to the documentation of this file.
1
13
14
enum
MuzzleState
15
{
17
U
= -1,
19
E
= 0,
21
F
= 1,
23
L
= 2
24
}
25
26
class
WeaponStableState
extends
WeaponStateBase
27
{
28
int
m_animState
;
29
30
ref
array<MuzzleState>
m_muzzleHasBullet
=
new
array<MuzzleState>
();
31
32
void
WeaponStableState
(
Weapon_Base
w = NULL,
WeaponStateBase
parent = NULL,
int
anim_state = -1)
33
{
34
m_animState
= anim_state;
35
InitMuzzleArray
();
36
ValidateMuzzleArray
();
37
}
38
39
void
SyncAnimState
()
40
{
41
int
curr =
m_weapon
.GetWeaponAnimState();
42
if
(curr !=
m_animState
)
43
{
44
//if (LogManager.IsWeaponLogEnable()) fsmDebugSpam("[wpnfsm] " + Object.GetDebugName(m_weapon) + " synchronizing anim state: " + curr + " --> " + m_animState);
45
PlayerBase
p;
46
if
(
Class
.
CastTo
(p,
m_weapon
.GetHierarchyParent()))
47
{
48
if
(p.GetItemInHands() ==
m_weapon
)
49
{
50
HumanCommandWeapons
hcw = p.GetCommandModifier_Weapons();
51
if
(hcw)
52
{
53
hcw.
SetInitState
(
m_animState
);
54
if
(
LogManager
.
IsWeaponLogEnable
())
fsmDebugSpam
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" state="
+
m_weapon
.GetCurrentState().Type() +
" synchronized anim state: "
+
typename
.EnumToString(
PistolAnimState
, curr) +
" --> "
+
typename
.EnumToString(
PistolAnimState
,
m_animState
));
55
}
56
else
57
{
58
Human
wpnOwner =
Human
.Cast(
m_weapon
.GetHierarchyRootPlayer());
59
HumanCommandWeapons
.
StaticSetInitState
(wpnOwner,
m_animState
);
60
if
(
LogManager
.
IsWeaponLogEnable
())
fsmDebugSpam
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" state="
+
m_weapon
.GetCurrentState().Type() +
" synchronized remote anim state: "
+
typename
.EnumToString(
PistolAnimState
, curr) +
" --> "
+
typename
.EnumToString(
PistolAnimState
,
m_animState
));
61
}
62
}
63
m_weapon
.SetWeaponAnimState(
m_animState
);
64
}
65
else
66
{
67
m_weapon
.SetGroundAnimFrameIndex(
m_animState
);
68
}
69
}
70
}
71
72
override
void
OnEntry
(
WeaponEventBase
e)
73
{
74
super.
OnEntry
(e);
75
76
if
(e)
77
SyncAnimState
();
78
79
m_weapon
.SetJammed(
IsJammed
());
80
m_weapon
.SetCharged(!
IsDischarged
());
81
m_weapon
.SetWeaponOpen(
IsWeaponOpen
());
82
m_weapon
.ResetWeaponAnimState();
83
}
84
override
void
OnUpdate
(
float
dt)
85
{
86
super.OnUpdate(dt);
87
SyncAnimState
();
88
}
89
override
void
OnExit
(
WeaponEventBase
e)
90
{
91
m_weapon
.ResetWeaponAnimState();
92
super.OnExit(e);
93
}
94
95
override
bool
IsIdle
() {
return
true
; }
96
97
int
GetCurrentStateID
() {
return
0; }
98
110
119
bool
IsRepairEnabled
() {
return
false
; }
120
126
bool
HasBullet
() {
return
false
; }
127
129
bool
HasMagazine
() {
return
false
; }
130
132
bool
IsJammed
() {
return
false
; }
133
135
bool
IsDischarged
() {
return
false
; }
136
138
bool
IsWeaponOpen
() {
return
false
; }
139
141
void
InitMuzzleArray
() {
m_muzzleHasBullet
= {
MuzzleState
.U }; }
142
144
bool
IsSingleState
() {
return
false
; }
145
147
152
154
MuzzleState
GetMuzzleState
(
int
idx) {
return
m_muzzleHasBullet
[idx]; }
155
int
GetMuzzleStateCount
() {
return
m_muzzleHasBullet
.Count(); }
156
bool
IsChamberValid
(
int
idx) {
return
m_muzzleHasBullet
[idx] !=
MuzzleState
.U; }
157
bool
IsChamberFiredOut
(
int
idx) {
return
m_muzzleHasBullet
[idx] ==
MuzzleState
.F; }
158
bool
IsChamberFull
(
int
idx) {
return
m_muzzleHasBullet
[idx] !=
MuzzleState
.E; }
159
161
163
void
ValidateMuzzleArray
()
164
{
165
// There is only one
166
if
(
IsSingleState
())
167
return
;
168
169
bool
failed =
false
;
170
171
if
(!failed)
172
{
173
foreach
(
MuzzleState
state :
m_muzzleHasBullet
)
174
{
175
if
( state ==
MuzzleState
.U )
176
{
177
failed =
true
;
178
break
;
179
}
180
}
181
}
182
183
if
(failed)
184
{
185
ErrorExSeverity
severity =
ErrorExSeverity
.ERROR;
186
187
#ifdef DEVELOPER
188
if
(DayZGame.m_IsPreviewSpawn)
189
{
190
// we do not want VMEs when spawning the item in order to visualize it for preview in script console
191
severity =
ErrorExSeverity
.INFO;
192
}
193
#endif
194
195
ErrorEx
(
"Muzzle array validation has failed. Please set up the correct muzzle states by overriding InitMuzzleArray."
, severity);
196
}
197
}
198
};
199
200
Class
Super root of all classes in Enforce script.
Definition
enscript.c:11
HumanCommandWeapons
Definition
human.c:1000
HumanCommandWeapons::SetInitState
proto native void SetInitState(int pFrameIndex)
this sets to a weapon init state each weapon has a different weapon state those states are defined by...
HumanCommandWeapons::StaticSetInitState
proto static native void StaticSetInitState(Human pHuman, int pFrameIdx)
just static version of SetInitState
Human
Definition
human.c:1333
LogManager
Definition
debug.c:692
LogManager::IsWeaponLogEnable
static bool IsWeaponLogEnable()
Definition
debug.c:816
Object
Definition
objecttyped.c:2
PlayerBase
Definition
playerbaseclient.c:2
Weapon_Base
shorthand
Definition
boltactionrifle_base.c:6
WeaponEventBase
signalize mechanism manipulation
Definition
events.c:35
WeaponStableState
represents weapon's stable state (i.e.
Definition
crossbow.c:27
WeaponStableState::IsRepairEnabled
override bool IsRepairEnabled()
Definition
crossbow.c:34
WeaponStableState::OnEntry
override void OnEntry(WeaponEventBase e)
Definition
crossbow.c:28
WeaponStableState::IsDischarged
override bool IsDischarged()
Definition
openbolt_base.c:44
WeaponStableState::GetCurrentStateID
override int GetCurrentStateID()
Definition
crossbow.c:30
WeaponStableState::IsJammed
override bool IsJammed()
Definition
crossbow.c:33
WeaponStableState::HasBullet
override bool HasBullet()
Definition
crossbow.c:31
WeaponStableState::InitMuzzleArray
override void InitMuzzleArray()
Definition
crossbow.c:35
WeaponStableState::HasMagazine
override bool HasMagazine()
Definition
crossbow.c:32
WeaponStateBase
represent weapon state base
Definition
bullethide.c:2
array
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
Definition
isboxcollidinggeometryproxyclasses.c:28
ErrorExSeverity
ErrorExSeverity
Definition
endebug.c:62
ErrorEx
enum ShapeType ErrorEx
Class::CastTo
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
OnUpdate
proto native void OnUpdate()
Definition
tools.c:349
m_weapon
class WeaponGuardIsDestroyed extends WeaponGuardBase m_weapon
Definition
guards.c:604
fsmDebugSpam
void fsmDebugSpam(string s)
Definition
hfsmbase.c:9
PistolAnimState
PistolAnimState
Definition
pistol_base.c:3
OnEntry
class SSPFireout extends WeaponStableState OnEntry
OnExit
class WeaponChambering_Chamber_OnEntry extends WeaponChambering_Base OnExit
Definition
weaponchambering.c:352
GetMuzzleStateCount
int GetMuzzleStateCount()
Definition
weaponstablestate.c:155
IsChamberValid
bool IsChamberValid(int idx)
Definition
weaponstablestate.c:156
SyncAnimState
void SyncAnimState()
Definition
weaponstablestate.c:39
m_animState
enum MuzzleState m_animState
MuzzleState
MuzzleState
Definition
weaponstablestate.c:15
E
@ E
EMPTY.
Definition
weaponstablestate.c:19
U
@ U
UNKNOWN.
Definition
weaponstablestate.c:17
L
@ L
LOADED.
Definition
weaponstablestate.c:23
F
@ F
FIRED.
Definition
weaponstablestate.c:21
ValidateMuzzleArray
void ValidateMuzzleArray()
Safety check and error message in case not set up correctly.
Definition
weaponstablestate.c:163
IsIdle
override bool IsIdle()
Definition
weaponstablestate.c:95
m_muzzleHasBullet
ref array< MuzzleState > m_muzzleHasBullet
Definition
weaponstablestate.c:30
IsSingleState
bool IsSingleState()
Special one for when the weapon only has one singular state (like Magnum).
Definition
weaponstablestate.c:144
WeaponStableState
void WeaponStableState(Weapon_Base w=NULL, WeaponStateBase parent=NULL, int anim_state=-1)
Definition
weaponstablestate.c:32
IsChamberFiredOut
bool IsChamberFiredOut(int idx)
Definition
weaponstablestate.c:157
IsWeaponOpen
bool IsWeaponOpen()
Whether the gun is open.
Definition
weaponstablestate.c:138
GetMuzzleState
MuzzleState GetMuzzleState(int idx)
Get chamber state of the muzzle at index.
Definition
weaponstablestate.c:154
IsChamberFull
bool IsChamberFull(int idx)
Definition
weaponstablestate.c:158
Games
Dayz
scripts
4_world
entities
firearms
fsm
states
weaponstablestate.c
Generated by
1.17.0