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

◆ WeaponCharging()

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

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

16 {
17 m_action = action;
18 m_actionType = actionType;
19
20 // setup nested state machine
21 m_start = new WeaponCharging_Start(m_weapon, this, m_action, m_actionType);
22 m_onCK = new WeaponCharging_CK(m_weapon, this);
23 m_chamber = new WeaponChamberFromAttMag_W4T(m_weapon, this);
24 m_ejectChamber = new WeaponEjectAndChamberFromAttMag(m_weapon, this);
26
27 // events
28 WeaponEventBase __be_ = new WeaponEventAnimBulletEject;
29 WeaponEventBase __bh_ = new WeaponEventAnimBulletHide;
30 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
31 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
32
33 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
34 // transitions
35 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_ejectChamber, NULL, new WeaponGuardHasAmmo(m_weapon) ));
36 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_eject ));
37 m_fsm.AddTransition(new WeaponTransition( m_start, _fin_, NULL ));
38
39 //m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_eject, NULL, new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon))));
40 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon))); // some anims do not send BE event
41 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onCK)); // some anims do not send BE event
42
43 m_fsm.AddTransition(new WeaponTransition( m_ejectChamber, __ck_, m_onCK ));
44 m_fsm.AddTransition(new WeaponTransition( m_ejectChamber, _fin_, NULL ));
45 m_fsm.AddTransition(new WeaponTransition( m_eject, __ck_, m_onCK));
46 m_fsm.AddTransition(new WeaponTransition( m_eject, _fin_, NULL));
47
48 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
49
50 m_fsm.AddTransition(new WeaponTransition(m_chamber, _fin_, NULL));
51
52 m_fsm.SetInitialState(m_start);
53 }
void WeaponGuardHasAmmo(Weapon_Base w=NULL)
Определения Guards.c:99
enum FSMTransition WeaponTransition
enum FSMTransition WeaponEventBase
ref WeaponEjectAndChamberFromAttMag m_ejectChamber
Определения WeaponCharging.c:12
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 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 WeaponEjectAllMuzzles(Weapon_Base w=NULL, WeaponStateBase parent=NULL)

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