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

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