DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ WeaponAttachMagazine()

void WeaponStateBase::WeaponAttachMagazine ( Weapon_Base w = NULL,
WeaponStateBase parent = NULL,
WeaponActions action = WeaponActions.NONE,
int actionType = -1 )
inlineprivate

См. определение в файле WeaponAttachMagazine.c строка 125

126 {
127 m_action = action;
128 m_actionType = actionType;
129
130 // setup nested state machine
134 m_chamber = new WeaponChamberFromAttMag_W4T(m_weapon, this);
135 m_onCK = new WeaponCharging_CK(m_weapon, this);
136
137 // events: MS, MA, BE, CK
138 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
139 WeaponEventBase __ms_ = new WeaponEventAnimMagazineShow;
140 WeaponEventBase __so_ = new WeaponEventAnimSliderOpen;
141 WeaponEventBase __ma_ = new WeaponEventAnimMagazineAttached;
142 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
143
144 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
145
146 m_fsm.AddTransition(new WeaponTransition( m_start, __ms_, m_attach));
147 m_fsm.AddTransition(new WeaponTransition( m_start, __so_, m_eject));
148 m_fsm.AddTransition(new WeaponTransition( m_eject, __ms_, m_attach));
149 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_chamber, NULL, new GuardAnd(new WeaponGuardCurrentChamberEmpty(m_weapon), new WeaponGuardHasAmmo(m_weapon)))); // when opened, there is no __be_ event
150 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_onCK, NULL, new GuardAnd(new WeaponGuardCurrentChamberEmpty(m_weapon), new GuardNot(new WeaponGuardHasAmmo(m_weapon)))));
151 m_fsm.AddTransition(new WeaponTransition( m_attach, _fin_, NULL));
152 m_fsm.AddTransition(new WeaponTransition( m_chamber, _fin_, NULL));
153 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
154
155 // Safety exits
156 m_fsm.AddTransition(new WeaponTransition(m_eject , _fin_, null));
157 m_fsm.AddTransition(new WeaponTransition(m_start , _fin_, null));
158
159
160 m_fsm.SetInitialState(m_start);
161 }
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
Определения Guards.c:99
enum FSMTransition WeaponTransition
enum FSMTransition WeaponEventBase
void AttachNewMagazine(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
int m_actionType
action to be played
Определения RifleChambering.c:4
void WeaponStartAction(Weapon_Base w=NULL, WeaponStateBase parent=NULL, WeaponActions action=WeaponActions.NONE, int actionType=-1)
specific action sub-type
Определения WeaponStartAction.c:9
ref WeaponFSM m_fsm
hierarchical parent state of this state (or null)
Определения WeaponStateBase.c:14
WeaponActions m_action
Определения RifleChambering.c:3
ref AttachNewMagazine m_attach
Определения WeaponAttachMagazine.c:120
Weapon_Base m_weapon
Определения WeaponStateBase.c:12
ref WeaponChambering_Cartridge m_chamber
Определения RifleChambering.c:9
ref WeaponCharging_CK m_onCK
Определения WeaponAttachMagazine.c:122
ref WeaponStateBase m_start
source of the cartridge
Определения RifleChambering.c:7
ref WeaponEjectCasing m_eject
Определения RifleChambering.c:8
void WeaponEjectCasing(Weapon_Base w=NULL, WeaponStateBase parent=NULL)

Перекрестные ссылки AttachNewMagazine(), m_action, m_actionType, m_attach, m_chamber, m_eject, m_fsm, m_onCK, m_start, m_weapon, WeaponEjectCasing(), WeaponGuardHasAmmo(), WeaponStartAction() и WeaponStateBase().