23 ref LoopedChambering_Wait4ShowBullet2
m_w4sb2;
25 ref BulletHide_W4T m_hideB;
38 m_hideB =
new BulletHide_W4T(
m_weapon,
this);
42 WeaponEventContinuousLoadBulletStart __lS_ =
new WeaponEventContinuousLoadBulletStart;
43 WeaponEventContinuousLoadBulletEnd __lE_ =
new WeaponEventContinuousLoadBulletEnd;
44 WeaponEventAnimBulletShow __bs_ =
new WeaponEventAnimBulletShow;
45 WeaponEventAnimBulletHide __bh_ =
new WeaponEventAnimBulletHide;
46 WeaponEventAnimBulletEject __be_ =
new WeaponEventAnimBulletEject;
47 WeaponEventAnimBulletInMagazine __bM_ =
new WeaponEventAnimBulletInMagazine;
48 WeaponEventAnimBulletShow2 _bs2_ =
new WeaponEventAnimBulletShow2;
56 m_fsm.AddTransition(
new WeaponTransition(
m_chamber, __bM_,
m_w4sb2, NULL,
new GuardAnd(
new GuardAnd(
new WeaponGuardHasAmmoInLoopedState(
m_chamber),
new WeaponGuardInternalMagazineHasRoomForBullet(
m_weapon)),
new WeaponGuardWeaponManagerWantContinue())));
83 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(newSrc);
95 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from inv");
101 Print(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering m_srcMagazine = NULL");
119 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(leftHandIl);
120 if (leftHandIl.IsValid())
130 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, ok - ammo pile removed from left hand to previous location (LHand->inv) - exit"); }
142 if(!il || !il.IsValid())
146 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, ok - no inventory space for ammo pile - dropped to ground - exit"); }
149 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - exit");
159 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from wpn - exit");
178 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(leftHandIl);
179 if (leftHandIl.IsValid())
189 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, ok - ammo pile removed from left hand to previous location (LHand->inv) - abort"); }
201 if(!il || !il.IsValid())
205 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, ok - no inventory space for ammo pile - dropped to ground - abort"); }
208 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - abort");
215 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, ok - ammo pile removed from left hand (LHand->inv) - abort"); }
218 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering, error - cannot remove ammo pile from wpn - abort");
232 if (!super.SaveCurrentFSMState(ctx))
237 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.SaveCurrentFSMState: cannot save m_srcMagazine for weapon=" +
m_weapon);
243 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.SaveCurrentFSMState: cannot write m_srcMagazinePrevLocation for weapon=" +
m_weapon);
252 if (!super.LoadCurrentFSMState(ctx, version))
257 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.LoadCurrentFSMState: cannot read m_srcMagazine for weapon=" +
m_weapon);
263 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChambering.LoadCurrentFSMState: cannot read m_srcMagazinePrevLocation for weapon=" +
m_weapon);
281 ref LoopedChambering_Wait4ShowBullet2
m_w4sb2;
283 ref BulletHide_W4T m_hideB;
284 ref WeaponChamberFromInnerMag_W4T m_chamberFromInnerMag;
297 m_hideB =
new BulletHide_W4T(
m_weapon,
this);
298 m_chamberFromInnerMag =
new WeaponChamberFromInnerMag_W4T(
m_weapon,
this);
302 WeaponEventContinuousLoadBulletStart __lS_ =
new WeaponEventContinuousLoadBulletStart;
303 WeaponEventContinuousLoadBulletEnd __lE_ =
new WeaponEventContinuousLoadBulletEnd;
304 WeaponEventAnimCocked __wc_ =
new WeaponEventAnimCocked;
305 WeaponEventAnimBulletShow __bs_ =
new WeaponEventAnimBulletShow;
306 WeaponEventAnimBulletHide __bh_ =
new WeaponEventAnimBulletHide;
307 WeaponEventAnimBulletEject __be_ =
new WeaponEventAnimBulletEject;
308 WeaponEventAnimBulletInMagazine __bM_ =
new WeaponEventAnimBulletInMagazine;
309 WeaponEventAnimBulletShow2 _bs2_ =
new WeaponEventAnimBulletShow2;
315 m_fsm.AddTransition(
new WeaponTransition(
m_chamber, __bM_,
m_w4sb2, NULL,
new GuardAnd(
new GuardAnd(
new WeaponGuardHasAmmoInLoopedState(
m_chamber),
new WeaponGuardInternalMagazineHasRoomForBullet(
m_weapon)),
new WeaponGuardWeaponManagerWantContinue())));
325 m_fsm.AddTransition(
new WeaponTransition(m_chamberFromInnerMag, _fin_, NULL));
334 m_fsm.SetInitialState(
m_start);
345 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(newSrc);
357 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from inv");
363 Print(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast m_srcMagazine = NULL");
381 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(leftHandIl);
382 if (leftHandIl.IsValid())
392 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - ammo pile removed from left hand to previous location (LHand->inv) - exit"); }
404 if (!il || !il.IsValid())
408 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - no inventory space for ammo pile - dropped to ground - exit"); }
411 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - exit");
418 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - ammo pile removed from left hand (LHand->inv) - exit"); }
421 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from wpn - exit");
440 m_srcMagazine.GetInventory().GetCurrentInventoryLocation(leftHandIl);
441 if (leftHandIl.IsValid())
451 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - ammo pile removed from left hand to previous location (LHand->inv) - abort"); }
463 if (!il || !il.IsValid())
467 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - no inventory space for ammo pile - dropped to ground - abort"); }
470 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot drop ammo pile from left hand after not found inventory space for ammo pile - abort");
477 if (
LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, ok - ammo pile removed from left hand (LHand->inv) - abort"); }
480 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast, error - cannot remove ammo pile from wpn - abort");
494 if (!super.SaveCurrentFSMState(ctx))
499 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.SaveCurrentFSMState: cannot save m_srcMagazine for weapon=" +
m_weapon);
505 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.SaveCurrentFSMState: cannot write m_srcMagazinePrevLocation for weapon=" +
m_weapon);
513 if (!super.LoadCurrentFSMState(ctx, version))
518 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.LoadCurrentFSMState: cannot read m_srcMagazine for weapon=" +
m_weapon);
524 Error(
"[wpnfsm] " +
Object.GetDebugName(
m_weapon) +
" LoopedChamberingEjectLast.LoadCurrentFSMState: cannot read m_srcMagazinePrevLocation for weapon=" +
m_weapon);