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

◆ WeaponChargingMultiple()

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

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

303 {
304 m_action = action;
305 m_actionType = actionType;
306
307 // setup nested state machine
308 m_start = new WeaponCharging_Start(m_weapon, this, m_action, m_actionType);
309 m_onBE = new WeaponEjectBullet_Cartridge_W4T(m_weapon, this);
310 m_onBEFireOut = new WeaponEjectCasing_W4T(m_weapon, this);
311 m_hideB = new BulletHide_W4T(m_weapon, this);
312 m_onCK = new WeaponCharging_CK(m_weapon, this);
313 m_chamber = new WeaponChamberFromAttMag_W4T(m_weapon, this);
314
315 // events
316 WeaponEventBase __be_ = new WeaponEventAnimBulletEject;
317 WeaponEventBase __bh_ = new WeaponEventAnimBulletHide;
318 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
319 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
320
321 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
322 // transitions
323 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_onBEFireOut, NULL, new WeaponGuardCurrentChamberFiredOut(m_weapon)));
324 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_onBE, NULL, new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon))));
325 m_fsm.AddTransition(new WeaponTransition( m_onBE, __bh_, m_hideB));
326 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __bh_, m_hideB));
327
328 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onBE, NULL, new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon))));
329 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon))); // some anims do not send BE event
330 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onCK)); // some anims do not send BE event
331 m_fsm.AddTransition(new WeaponTransition( m_onBE, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
332 m_fsm.AddTransition(new WeaponTransition( m_onBE, __ck_, m_onCK));
333 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
334 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __ck_, m_onCK));
335 m_fsm.AddTransition(new WeaponTransition( m_hideB, __ck_, m_chamber, NULL, new WeaponGuardHasAmmo(m_weapon)));
336 m_fsm.AddTransition(new WeaponTransition( m_hideB, __ck_, m_onCK));
337
338 m_fsm.AddTransition(new WeaponTransition( m_start, _fin_, NULL ));
339 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, _fin_, NULL));
340 m_fsm.AddTransition(new WeaponTransition( m_onBE, _fin_, NULL));
341 m_fsm.AddTransition(new WeaponTransition( m_hideB, _fin_, NULL));
342 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
343 m_fsm.AddTransition(new WeaponTransition(m_chamber, _fin_, NULL));
344
345 m_fsm.SetInitialState(m_start);
346 }
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 WeaponCharging_CK m_onCK
Определения WeaponAttachMagazine.c:122
ref WeaponEjectBullet_Cartridge_W4T m_onBE
Определения WeaponCharging.c:221
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_W4T m_onBEFireOut
Определения WeaponCharging.c:222

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