Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
riflechambering.c
Go to the documentation of this file.
1
class
RifleChambering
extends
WeaponStateBase
2
{
3
WeaponActions
m_action
;
4
int
m_actionType
;
5
Magazine
m_srcMagazine
;
6
7
ref
WeaponStateBase
m_start
;
8
ref
WeaponEjectCasing
m_eject
;
9
ref WeaponChambering_Cartridge
m_chamber
;
10
ref WeaponChambering_W4T
m_w4t
;
11
12
void
RifleChambering
(
Weapon_Base
w = NULL,
WeaponStateBase
parent = NULL,
WeaponActions
action =
WeaponActions
.NONE,
int
actionType = -1)
13
{
14
m_action
= action;
15
m_actionType
= actionType;
16
17
// setup nested state machine
18
m_start
=
new
WeaponChambering_Start(
m_weapon
,
this
,
m_action
,
m_actionType
);
19
m_eject
=
new
WeaponEjectCasing
(
m_weapon
,
this
);
20
m_chamber
=
new
WeaponChambering_Cartridge(
m_weapon
,
this
);
21
m_w4t
=
new
WeaponChambering_W4T(
m_weapon
,
this
);
22
// events
23
WeaponEventAnimBulletEject __be_ =
new
WeaponEventAnimBulletEject;
24
WeaponEventAnimBulletShow __bs_ =
new
WeaponEventAnimBulletShow;
25
WeaponEventAnimBulletInChamber __bc_ =
new
WeaponEventAnimBulletInChamber;
26
WeaponEventBase
_fin_ =
new
WeaponEventHumanCommandActionFinished;
27
28
m_fsm
=
new
WeaponFSM
(
this
);
// @NOTE: set owner of the submachine fsm
29
m_fsm
.AddTransition(
new
WeaponTransition
(
m_start
, __be_,
m_eject
));
30
m_fsm
.AddTransition(
new
WeaponTransition
(
m_eject
, __bs_,
m_chamber
));
31
m_fsm
.AddTransition(
new
WeaponTransition
(
m_chamber
, __bc_,
m_w4t
));
32
m_fsm
.AddTransition(
new
WeaponTransition
(
m_w4t
, _fin_, NULL));
33
34
// Safety exits
35
m_fsm
.AddTransition(
new
WeaponTransition
(
m_chamber
, _fin_, null));
36
m_fsm
.AddTransition(
new
WeaponTransition
(
m_eject
, _fin_, null));
37
m_fsm
.AddTransition(
new
WeaponTransition
(
m_start
, _fin_, null));
38
39
m_fsm
.SetInitialState(
m_start
);
40
}
41
42
override
void
OnEntry
(
WeaponEventBase
e)
43
{
44
if
(e != NULL)
45
{
46
if
(e.
m_magazine
!= NULL)
47
{
48
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" RifleChambering, taking mag from event e.mag="
+ e.
m_magazine
.ToString()); }
49
m_srcMagazine
= e.
m_magazine
;
50
m_chamber
.m_srcMagazine =
m_srcMagazine
;
51
}
52
}
53
else
54
{
55
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" RifleChambering (e=NULL), m_srcMagazine="
+
m_srcMagazine
.ToString()); }
56
}
57
if
(
LogManager
.
IsWeaponLogEnable
()) {
wpnDebugPrint
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" m_srcMagazine="
+
m_srcMagazine
.ToString()); }
58
59
super.OnEntry(e);
// @NOTE: super at the end (prevent override from submachine start)
60
}
61
62
override
void
OnAbort
(
WeaponEventBase
e)
63
{
64
super.OnAbort(e);
65
m_srcMagazine
= NULL;
66
}
67
68
override
void
OnExit
(
WeaponEventBase
e)
69
{
70
super.OnExit(e);
71
m_srcMagazine
= NULL;
72
}
73
74
override
bool
SaveCurrentFSMState
(
ParamsWriteContext
ctx)
75
{
76
if
(!super.SaveCurrentFSMState(ctx))
77
return
false
;
78
79
if
(!ctx.
Write
(
m_srcMagazine
))
80
{
81
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" RifleChambering.SaveCurrentFSMState: cannot save m_srcMagazine for weapon="
+
m_weapon
);
82
return
false
;
83
}
84
return
true
;
85
}
86
87
override
bool
LoadCurrentFSMState
(
ParamsReadContext
ctx,
int
version)
88
{
89
if
(!super.LoadCurrentFSMState(ctx, version))
90
return
false
;
91
92
if
(!ctx.
Read
(
m_srcMagazine
))
93
{
94
Error
(
"[wpnfsm] "
+
Object
.GetDebugName(
m_weapon
) +
" RifleChambering.LoadCurrentFSMState: cannot read m_srcMagazine for weapon="
+
m_weapon
);
95
return
false
;
96
}
97
return
true
;
98
}
99
};
100
wpnDebugPrint
void wpnDebugPrint(string s)
Definition
debug.c:9
LogManager
Definition
debug.c:692
LogManager::IsWeaponLogEnable
static bool IsWeaponLogEnable()
Definition
debug.c:816
Object
Definition
objecttyped.c:2
Serializer::Write
proto bool Write(void value_out)
Serializer::Read
proto bool Read(void value_in)
Weapon_Base
shorthand
Definition
boltactionrifle_base.c:6
WeaponEventBase
signalize mechanism manipulation
Definition
events.c:35
WeaponEventBase::m_magazine
Magazine m_magazine
Definition
events.c:38
WeaponFSM
weapon finite state machine
WeaponStateBase
represent weapon state base
Definition
bullethide.c:2
WeaponStateBase::m_weapon
Weapon_Base m_weapon
Definition
weaponstatebase.c:12
WeaponStateBase::m_eject
ref WeaponEjectCasing m_eject
Definition
riflechambering.c:8
WeaponStateBase::m_start
ref WeaponStateBase m_start
source of the cartridge
Definition
riflechambering.c:7
WeaponStateBase::m_srcMagazine
Magazine m_srcMagazine
destination of the ejected cartridge
Definition
riflechambering.c:5
WeaponStateBase::RifleChambering
void RifleChambering(Weapon_Base w=NULL, WeaponStateBase parent=NULL, WeaponActions action=WeaponActions.NONE, int actionType=-1)
Definition
riflechambering.c:12
WeaponStateBase::OnEntry
override void OnEntry(WeaponEventBase e)
Definition
riflechambering.c:42
WeaponStateBase::m_w4t
ref WeaponChambering_W4T m_w4t
Definition
riflechambering.c:10
WeaponStateBase::m_fsm
ref WeaponFSM m_fsm
hierarchical parent state of this state (or null)
Definition
weaponstatebase.c:14
WeaponStateBase::OnAbort
override void OnAbort(WeaponEventBase e)
Definition
riflechambering.c:62
WeaponStateBase::WeaponStateBase
void WeaponStateBase(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
internal state id used for load/restore
Definition
weaponstatebase.c:17
WeaponStateBase::WeaponEjectCasing
void WeaponEjectCasing(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
Definition
weaponejectcasingandchamberfromattmag.c:4
WeaponStateBase::OnExit
override void OnExit(WeaponEventBase e)
Definition
riflechambering.c:68
WeaponStateBase::LoadCurrentFSMState
override bool LoadCurrentFSMState(ParamsReadContext ctx, int version)
Definition
riflechambering.c:87
WeaponStateBase::m_actionType
int m_actionType
action to be played
Definition
riflechambering.c:4
WeaponStateBase::m_action
WeaponActions m_action
Definition
riflechambering.c:3
WeaponStateBase::m_chamber
ref WeaponChambering_Cartridge m_chamber
Definition
riflechambering.c:9
WeaponStateBase::SaveCurrentFSMState
override bool SaveCurrentFSMState(ParamsWriteContext ctx)
Definition
riflechambering.c:74
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
ParamsWriteContext
Serializer ParamsWriteContext
Definition
gameplay.c:16
Error
void Error(string err)
Messagebox with error message.
Definition
endebug.c:90
WeaponActions
WeaponActions
actions
Definition
human.c:816
WeaponTransition
enum FSMTransition WeaponTransition
Games
Dayz
scripts
4_world
entities
firearms
fsm
states
riflechambering.c
Generated by
1.17.0