DayZ 1.27
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 строка 291

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

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