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

◆ ChamberMultiBullet()

void ChamberMultiBullet ( Weapon_Base w = NULL,
WeaponStateBase parent = NULL,
WeaponActions action = WeaponActions.NONE,
int startActionType = -1,
int endActionType = -1 )

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

647 {
648 m_action = action;
649 m_startActionType = startActionType;
650 m_endActionType = endActionType;
651
652 // setup nested state machine
653 m_start = new WeaponChambering_Start(m_weapon, this, m_action, m_startActionType);
655 m_chamber = new WeaponChambering_MultiMuzzle_W4T(m_weapon, this);
656 m_chamber_end = new WeaponChambering_MultiMuzzle_W4T(m_weapon, this);
657 m_w4sb2 = LoopedChambering_Wait4ShowBullet2(m_weapon, this);
658 m_showB = new BulletShow_W4T(m_weapon, this);
659 m_showB2= new BulletShow2_W4T(m_weapon, this);
660
661 m_endLoop = new WeaponEndAction(m_weapon, this, m_action, m_endActionType); // @NOTE: termination playing action - dummy?
662 // events
663 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
664 WeaponEventContinuousLoadBulletStart __lS_ = new WeaponEventContinuousLoadBulletStart;
665 WeaponEventContinuousLoadBulletEnd __lE_ = new WeaponEventContinuousLoadBulletEnd;
666 WeaponEventAnimBulletShow __bs_ = new WeaponEventAnimBulletShow;
667 WeaponEventAnimBulletShow2 _bs2_ = new WeaponEventAnimBulletShow2;
668 WeaponEventAnimBulletHide __bh_ = new WeaponEventAnimBulletHide;
669 WeaponEventAnimBulletEject __be_ = new WeaponEventAnimBulletEject;
670 WeaponEventAnimBulletInChamber __bc_ = new WeaponEventAnimBulletInChamber;
671
672 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
673 m_fsm.AddTransition(new WeaponTransition(m_start , __be_, m_eject));
674
675 m_fsm.AddTransition(new WeaponTransition(m_start , __bs_, m_chamber));
676 m_fsm.AddTransition(new WeaponTransition(m_eject , __bs_, m_chamber));
677
678 m_fsm.AddTransition(new WeaponTransition(m_chamber, __bc_, m_w4sb2, NULL, new GuardAnd(new GuardAnd(new WeaponGuardHasAmmoInLoopedState(m_chamber), new WeaponGuardChamberMultiHasRoomBulltet(m_weapon)),new WeaponGuardWeaponManagerWantContinue())));
679 m_fsm.AddTransition(new WeaponTransition(m_chamber, __bc_, m_endLoop));
680 m_fsm.AddTransition(new WeaponTransition(m_w4sb2, __bs_, m_chamber));
681
682 m_fsm.AddTransition(new WeaponTransition(m_w4sb2 , _fin_, NULL));
683 m_fsm.AddTransition(new WeaponTransition(m_chamber , _fin_, NULL));
684 m_fsm.AddTransition(new WeaponTransition(m_endLoop , _fin_, NULL));
685
686 // Safety exits
687 m_fsm.AddTransition(new WeaponTransition(m_eject , _fin_, null));
688 m_fsm.AddTransition(new WeaponTransition(m_start , _fin_, null));
689
690 m_fsm.SetInitialState(m_start);
691 }
class WeaponGuardIsDestroyed extends WeaponGuardBase m_weapon
Определения Guards.c:604
enum FSMTransition WeaponTransition
ref LoopedChambering_Wait4ShowBullet2 m_w4sb2
Определения WeaponChambering.c:641
ref BulletShow2_W4T m_showB2
Определения WeaponChambering.c:644
int m_startActionType
Определения WeaponChambering.c:632
int m_endActionType
Определения WeaponChambering.c:633
ref WeaponEndAction m_endLoop
Определения WeaponChambering.c:642
ref WeaponStateBase m_start
Определения WeaponChambering.c:637
class WeaponEndAction extends WeaponStartAction m_action
ref WeaponChambering_Base m_chamber
Определения WeaponChambering.c:639
ref WeaponChambering_Base m_chamber_end
Определения WeaponChambering.c:640
ref WeaponEjectCasingMultiMuzzle m_eject
Определения WeaponChambering.c:638
ref BulletShow_W4T m_showB
Определения WeaponChambering.c:643
signalize mechanism manipulation
Определения Events.c:35
weapon finite state machine

Перекрестные ссылки m_action, m_chamber, m_chamber_end, m_eject, m_endActionType, m_endLoop, m_showB, m_showB2, m_start, m_startActionType, m_w4sb2, m_weapon и WeaponStateBase::WeaponEjectCasingMultiMuzzle().

Используется в DoubleBarrel_Base::InitStateMachine().