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

◆ WeaponReplacingMagAndChamberNext()

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

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

358 {
359 m_action = action;
360 m_actionType = actionType;
361 m_newMagazine = NULL;
362
363 // setup nested state machine
367 m_hideOld = new OldMagazineHide(m_weapon, this);
368 m_swapMags = new SwapOldAndNewMagazine(m_weapon, this);
369 m_attach = new AttachNewMagazine_W4T(m_weapon, this);
370 m_chamber = new WeaponChamberFromAttMag_W4T(m_weapon, this);
371 m_onCK = new WeaponCharging_CK(m_weapon, this);
372
373 // events
374 WeaponEventBase __so_ = new WeaponEventAnimSliderOpen;
375 WeaponEventBase __md_ = new WeaponEventAnimMagazineDetached;
376 WeaponEventBase __mh_ = new WeaponEventAnimMagazineHide;
377 WeaponEventBase __ms_ = new WeaponEventAnimMagazineShow;
378 WeaponEventBase __ma_ = new WeaponEventAnimMagazineAttached;
379 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
380 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
381
382 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
383 m_fsm.AddTransition(new WeaponTransition( m_start, __md_, m_detach));
384 m_fsm.AddTransition(new WeaponTransition( m_start, __so_, m_eject));
385 m_fsm.AddTransition(new WeaponTransition( m_eject, __md_, m_detach));
386 m_fsm.AddTransition(new WeaponTransition( m_detach, __mh_, m_hideOld));
387 m_fsm.AddTransition(new WeaponTransition( m_hideOld, __ms_, m_swapMags));
388 m_fsm.AddTransition(new WeaponTransition(m_swapMags, __ma_, m_attach));
389 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_chamber, NULL, new GuardAnd(new WeaponGuardCurrentChamberEmpty(m_weapon), new WeaponGuardHasAmmo(m_weapon))));
390 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_onCK));
391
392 m_fsm.AddTransition(new WeaponTransition( m_attach, _fin_, NULL));
393 m_fsm.AddTransition(new WeaponTransition( m_chamber, _fin_, NULL));
394 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
395
396 // Safety exits
397 m_fsm.AddTransition(new WeaponTransition(m_swapMags, _fin_, null));
398 m_fsm.AddTransition(new WeaponTransition(m_hideOld, _fin_, null));
399 m_fsm.AddTransition(new WeaponTransition(m_detach, _fin_, null));
400 m_fsm.AddTransition(new WeaponTransition(m_eject, _fin_, null));
401 m_fsm.AddTransition(new WeaponTransition(m_start, _fin_, null));
402
403 m_fsm.SetInitialState(m_start);
404 }
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
Определения Guards.c:99
enum FSMTransition WeaponTransition
enum FSMTransition WeaponEventBase
ref OldMagazineHide m_hideOld
int m_actionType
action to be played
Определения RifleChambering.c:4
ref DetachOldMagazine m_detach
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
void DetachOldMagazine(Weapon_Base w=NULL, WeaponStateBase parent=NULL)
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 SwapOldAndNewMagazine m_swapMags
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
Magazine m_newMagazine
magazine that will be detached
Определения WeaponAttachMagazine.c:3
void WeaponEjectCasing(Weapon_Base w=NULL, WeaponStateBase parent=NULL)

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