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

◆ WeaponReplacingMagAndChamberNextOpenBoltCharged()

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

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

623 {
624 m_action = action;
625 m_actionType = actionType;
626 m_newMagazine = NULL;
627
628 // setup nested state machine
630 m_detach = new WeaponDetachingMag_StoreRemoveChamberBullet(m_weapon, this);
631 m_hideOld = new OldMagazineHide(m_weapon, this);
632 m_swapMags = new SwapOldAndNewMagazine(m_weapon, this);
633 m_attach = new AttachNewMagazine_W4T(m_weapon, this);
634 m_chamber = new WeaponChamberFromAttMagOpenbolt_W4T(m_weapon, this);
635 m_onCK = new WeaponChargingOpenBolt_CK(m_weapon, this);
636
637 // events
638 WeaponEventBase __so_ = new WeaponEventAnimSliderOpen;
639 WeaponEventBase __md_ = new WeaponEventAnimMagazineDetached;
640 WeaponEventBase __mh_ = new WeaponEventAnimMagazineHide;
641 WeaponEventBase __ms_ = new WeaponEventAnimMagazineShow;
642 WeaponEventBase __ma_ = new WeaponEventAnimMagazineAttached;
643 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
644 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
645
646 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
647 m_fsm.AddTransition(new WeaponTransition( m_start, __md_, m_detach));
648 m_fsm.AddTransition(new WeaponTransition( m_detach, __mh_, m_hideOld));
649 m_fsm.AddTransition(new WeaponTransition( m_hideOld, __ms_, m_swapMags));
650 m_fsm.AddTransition(new WeaponTransition( m_swapMags, __ma_, m_chamber, NULL, new GuardAnd(new WeaponGuardWeaponCharged(m_weapon), new WeaponGuardHasAmmo(m_weapon))));
651 m_fsm.AddTransition(new WeaponTransition( m_swapMags, __ma_, m_attach));
652
653
654 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
655 m_fsm.AddTransition(new WeaponTransition( m_attach, __ck_, m_onCK));
656
657 m_fsm.AddTransition(new WeaponTransition( m_attach, _fin_, NULL));
658 m_fsm.AddTransition(new WeaponTransition( m_chamber, _fin_, NULL));
659 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
660
661 // Safety exits
662 m_fsm.AddTransition(new WeaponTransition(m_swapMags, _fin_, null));
663 m_fsm.AddTransition(new WeaponTransition(m_hideOld, _fin_, null));
664 m_fsm.AddTransition(new WeaponTransition(m_detach, _fin_, null));
665 m_fsm.AddTransition(new WeaponTransition(m_start, _fin_, null));
666
667 m_fsm.SetInitialState(m_start);
668 }
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 WeaponCharging_CK m_onCK
Определения WeaponAttachMagazine.c:122
ref AttachNewMagazine m_attach
Определения WeaponAttachMagazine.c:120
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
WeaponActions m_action
Определения RifleChambering.c:3
Weapon_Base m_weapon
Определения WeaponStateBase.c:12
ref WeaponChambering_Cartridge m_chamber
Определения RifleChambering.c:9
ref SwapOldAndNewMagazine m_swapMags
ref WeaponStateBase m_start
source of the cartridge
Определения RifleChambering.c:7
Magazine m_newMagazine
magazine that will be detached
Определения WeaponAttachMagazine.c:3

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