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

◆ WeaponEjectBullet()

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

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

51 {
52 m_action = action;
53 m_actionType = actionType;
54
55 // setup nested state machine
56 m_start = new WeaponEjectBullet_Start(m_weapon, this, m_action, m_actionType);
57 m_eject = new WeaponEjectBullet_Cartridge_W4T(m_weapon, this); // @TODO: workaround for missing BH event (_W4T)
58 m_hideB = new BulletHide_W4T(m_weapon, this);
59 m_chamber = new WeaponChamberFromAttMag_W4T(m_weapon, this);
60
61 // events
62 WeaponEventBase __be_ = new WeaponEventAnimBulletEject;
63 WeaponEventBase __bh_ = new WeaponEventAnimBulletHide;
64 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
65 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
66
67 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
68 // transitions
69 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_eject));
70 m_fsm.AddTransition(new WeaponTransition( m_eject, __bh_, m_hideB));
71
72 m_fsm.AddTransition(new WeaponTransition( m_eject, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
73 m_fsm.AddTransition(new WeaponTransition( m_hideB, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
74
75 m_fsm.AddTransition(new WeaponTransition( m_hideB, _fin_, NULL));
76 m_fsm.AddTransition(new WeaponTransition( m_eject, _fin_, NULL)); // @TODO: workaround for missing BH event
77 m_fsm.AddTransition(new WeaponTransition(m_chamber, _fin_, NULL));
78
79 // Safety exits
80 m_fsm.AddTransition(new WeaponTransition(m_start , _fin_, null));
81
82 m_fsm.SetInitialState(m_start);
83 }
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
Определения Guards.c:99
enum FSMTransition WeaponTransition
enum FSMTransition WeaponEventBase
ref BulletHide_W4T m_hideB
Определения RifleEjectCasing.c:8
int m_actionType
action to be played
Определения RifleChambering.c:4
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 WeaponStateBase m_start
source of the cartridge
Определения RifleChambering.c:7
ref WeaponEjectCasing m_eject
Определения RifleChambering.c:8

Перекрестные ссылки m_action, m_actionType, m_chamber, m_eject, m_fsm, m_hideB, m_start, m_weapon, WeaponGuardHasAmmo() и WeaponStateBase().

Используется в WeaponRechamber().