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

◆ WeaponChargingInnerMag()

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

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

228 {
229 m_action = action;
230 m_actionType = actionType;
231
232 // setup nested state machine
233 m_start = new WeaponCharging_Start(m_weapon, this, m_action, m_actionType);
234 m_onBE = new WeaponEjectBullet_Cartridge_W4T(m_weapon, this);
235 m_onBEFireOut = new WeaponEjectCasing_W4T(m_weapon, this);
236 m_hideB = new BulletHide_W4T(m_weapon, this);
237 m_onCK = new WeaponCharging_CK(m_weapon, this);
238 m_chamber = new WeaponChamberFromInnerMag_W4T(m_weapon, this);
239
240 // events
241 WeaponEventBase __be_ = new WeaponEventAnimBulletEject;
242 WeaponEventBase __bh_ = new WeaponEventAnimBulletHide;
243 WeaponEventBase __ck_ = new WeaponEventAnimCocked;
244 WeaponEventBase _fin_ = new WeaponEventHumanCommandActionFinished;
245
246 m_fsm = new WeaponFSM(this); // @NOTE: set owner of the submachine fsm
247 // transitions
248 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_onBEFireOut, NULL, new WeaponGuardCurrentChamberFiredOut(m_weapon)));
249 m_fsm.AddTransition(new WeaponTransition( m_start, __be_, m_onBE, NULL, new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon))));
250 m_fsm.AddTransition(new WeaponTransition( m_onBE, __bh_, m_hideB));
251 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __bh_, m_hideB));
252
253 //TODO after inner magazine rework this events must load new bullet
254
255 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onBEFireOut, NULL, new GuardAnd(new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon)), new WeaponGuardCurrentChamberFiredOut(m_weapon))));
256 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onBE, NULL, new GuardNot(new WeaponGuardCurrentChamberEmpty(m_weapon))));
257 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_chamber, NULL, new WeaponGuardHasAmmoInnerMagazine(m_weapon))); // some anims do not send BE event
258 m_fsm.AddTransition(new WeaponTransition( m_start, __ck_, m_onCK)); // some anims do not send BE event
259 m_fsm.AddTransition(new WeaponTransition( m_onBE, __ck_, m_chamber, NULL, new WeaponGuardHasAmmoInnerMagazine(m_weapon)));
260 m_fsm.AddTransition(new WeaponTransition( m_onBE, __ck_, m_onCK));
261 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __ck_, m_chamber, NULL, new WeaponGuardHasAmmoInnerMagazine(m_weapon)));
262 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, __ck_, m_onCK));
263 m_fsm.AddTransition(new WeaponTransition( m_hideB, __ck_, m_chamber, NULL, new WeaponGuardHasAmmoInnerMagazine(m_weapon)));
264 m_fsm.AddTransition(new WeaponTransition( m_hideB, __ck_, m_onCK));
265
266 m_fsm.AddTransition(new WeaponTransition( m_start, _fin_, NULL ));
267 m_fsm.AddTransition(new WeaponTransition( m_onBEFireOut, _fin_, NULL));
268 m_fsm.AddTransition(new WeaponTransition( m_onBE, _fin_, NULL));
269 m_fsm.AddTransition(new WeaponTransition( m_hideB, _fin_, NULL));
270 m_fsm.AddTransition(new WeaponTransition( m_onCK, _fin_, NULL));
271 m_fsm.AddTransition(new WeaponTransition( m_chamber, _fin_, NULL));
272
273 m_fsm.SetInitialState(m_start);
274 }
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 и WeaponStateBase().