class WeaponStateBaseSource
View all 178 descendants
- AttachNewMagazine
- AttachNewMagazine_W4T
- BulletHide
- BulletShow
- BulletShow2
- ChamberMultiBullet
- DetachOldMagazine
- LoopedChambering
- LoopedChambering_Wait4ShowBullet2
- LoopedChamberingCombineChamberInternalMagazine
- LoopedChamberingEjectLast
- MagazineHide
- MagazineShow
- RemoveNewMagazineFromInventory
- RifleChambering
- RifleEjectCasing
- RifleReChambering
- SwapOldAndNewMagazine
- WeaponAttachMagazine
- WeaponAttachMagazineOpenBoltCharged
- WeaponChamberFromAttMag
- WeaponChamberFromAttMagOnExit
- WeaponChamberFromAttMagOpenbolt
- WeaponChamberFromInnerMag
- WeaponChambering
- WeaponChambering_Base
- WeaponChambering_W4T
- WeaponCharging
- WeaponCharging_BE
- WeaponCharging_CK
- WeaponChargingInnerMag
- WeaponChargingMultiple
- WeaponChargingOpenBolt_CK
- WeaponChargingStretch
- WeaponCylinderRotate
- WeaponDetachingMag
- WeaponDetachingMag_Store
- WeaponDetachingMag_StoreRemoveChamberBullet
- WeaponDetachingMagOpenBolt
- WeaponEjectAllMuzzles
- WeaponEjectBullet
- WeaponEjectBullet_Cartridge
- WeaponEjectBulletMultiMuzzle_Cartridge
- WeaponEjectCasing
- WeaponEjectCasingMultiMuzzle
- WeaponFireAndChamberNext
- WeaponFireAndChamberNextFromInnerMag
- WeaponFireLast
- WeaponMagnumChambering
- WeaponRechamber
- WeaponReplacingMagAndChamberNext
- WeaponReplacingMagAndChamberNextOpenBoltCharged
- WeaponStableState
- BAREM_CLO_BU0_MA0
- BAREM_CLO_BU0_MA1
- BAREM_CLO_BU1_MA0
- BAREM_CLO_BU1_MA1
- BAREM_CLO_BUF_MA0
- BAREM_CLO_BUF_MA1
- BAREM_JAM_BU1_MA0
- BAREM_JAM_BU1_MA1
- BARIMEmptyDischarged
- BARIMLoadedCharged
- BARIMLoadedDischarged
- BARIMLoadedJammed
- CFIMSAEmpty
- CFIMSAJammed
- CFIMSALoaded
- CFIMSAOpenned
- DoubleBarrelEmptyEmpty
- DoubleBarrelEmptyFireout
- DoubleBarrelEmptyLoaded
- DoubleBarrelFireoutEmpty
- DoubleBarrelFireoutFireout
- DoubleBarrelFireoutLoaded
- DoubleBarrelLoadedEmpty
- DoubleBarrelLoadedLoaded
- FLAREEmpty
- FLAREFireout
- FLARELoaded
- Magnum_Static_State
- OB_CLO_MA0
- OB_CLO_MA1
- OB_JAM_MA0
- OB_JAM_MA1
- OB_OPN_MA0
- OB_OPN_MA1
- OB_OPN_MA1_EMPTY
- Pistol_CLO_CHG_BU0_MA0
- Pistol_CLO_CHG_BU0_MA1
- Pistol_CLO_CHG_BU1_MA0
- Pistol_CLO_CHG_BU1_MA1
- Pistol_CLO_DIS_BU0_MA0
- Pistol_CLO_DIS_BU0_MA1
- Pistol_CLO_JAM_BU1_MA0
- Pistol_CLO_JAM_BU1_MA1
- Pistol_OPE_DIS_BU0_MA0
- Pistol_OPE_DIS_BU0_MA1
- PumpShotgunEmpty
- PumpShotgunFireout
- PumpShotgunJammed
- PumpShotgunLoaded
- RBF_CLO_BU0_MA0
- RBF_CLO_BU0_MA1
- RBF_CLO_BU1_MA0
- RBF_CLO_BU1_MA1
- RBF_JAM_BU1_MA0
- RBF_JAM_BU1_MA1
- RBL_CLO_BU0_MA0
- RBL_CLO_BU0_MA1
- RBL_CLO_BU1_MA0
- RBL_CLO_BU1_MA1
- RBL_JAM_BU1_MA0
- RBL_JAM_BU1_MA1
- RBL_OPN_BU0_MA0
- RBL_OPN_BU0_MA1
- RPTEmptyDischarged
- RPTLoadedCharged
- RPTLoadedDischarged
- RPTLoadedJammed
- RSSEmpty
- RSSFireout
- RSSJammed
- RSSLoaded
- SKS_CLO_BU0
- SKS_CLO_BU1
- SKS_JAM_BU1
- SKS_OPN_BU0
- SSPEmpty
- SSPFireout
- SSPLoaded
- WeaponStateJammed
- XBCockedEmpty
- XBLoaded
- XBUncockedEmpty
- WeaponStartAction
- WeaponUnjamming
- WeaponUnjamming_Cartridge
- WeaponUnjamming_W4T
represent weapon state base
Class comes with entry/update/abort/exit hooks that can be overriden in custom states
Class is ready for hierarchic composition, i.e. this state having a sub-machine running under hood. If no m_fsm member is configured, class acts as ordinary plain finite machine state.
Constructors 1
void WeaponStateBase(Weapon_Base w = NULL, WeaponStateBase parent = NULL)Members 4
Weapon_Base m_weaponweapon that this state relates to
WeaponStateBase m_parentStatehierarchical parent state of this state (or null)
ref WeaponFSM m_fsmnested state machine (or null)
Show 32 more
, LoopedChamberingEjectLast.LoopedChamberingEjectLast(), RifleChambering.RifleChambering(), RifleEjectCasing.RifleEjectCasing(), RifleReChambering.RifleReChambering(), WeaponAttachMagazine.WeaponAttachMagazine(), WeaponAttachMagazineOpenBoltCharged.WeaponAttachMagazineOpenBoltCharged(), WeaponChambering.WeaponChambering(), WeaponCharging.WeaponCharging(), WeaponChargingInnerMag.WeaponChargingInnerMag(), WeaponChargingMultiple.WeaponChargingMultiple(), WeaponChargingStretch.WeaponChargingStretch(), WeaponDetachingMag.WeaponDetachingMag(), WeaponDetachingMagOpenBolt.WeaponDetachingMagOpenBolt(), WeaponEjectBullet.WeaponEjectBullet(), WeaponFireAndChamberNext.WeaponFireAndChamberNext(), WeaponFireAndChamberNextFromInnerMag.WeaponFireAndChamberNextFromInnerMag(), WeaponFireLast.WeaponFireLast(), WeaponMagnumChambering.WeaponMagnumChambering(), WeaponRechamber.WeaponRechamber(), WeaponReplacingMagAndChamberNext.WeaponReplacingMagAndChamberNext(), WeaponReplacingMagAndChamberNextOpenBoltCharged.WeaponReplacingMagAndChamberNextOpenBoltCharged(), AddTransition(), GetFSM(), HasFSM(), IsWaitingForActionFinish(), LoadCurrentFSMState(), OnAbort(), OnEntry(), OnUpdate(), ProcessEvent(), SaveCurrentFSMState(), and WeaponUnjamming.WeaponUnjamming()int m_InternalID = -1internal state id used for load/restore
Methods 20
void SetParentState(WeaponStateBase parent)allows construction of hierarchical state machine
WeaponStateBase GetParentState()Returns: state that owns this sub-state (or null if plain state)
bool HasFSM()Show 5 more
, OnAbort(), OnEntry(), OnUpdate(), ProcessEvent(), and SaveCurrentFSMState()int GetInternalStateID()Show 1 more
, WeaponFSM.SetInternalID()bool SaveCurrentFSMState(ParamsWriteContext ctx)Show 22 more
, LoopedChambering.SaveCurrentFSMState(), LoopedChamberingCombineChamberInternalMagazine.SaveCurrentFSMState(), LoopedChamberingEjectLast.SaveCurrentFSMState(), RemoveNewMagazineFromInventory.SaveCurrentFSMState(), RifleChambering.SaveCurrentFSMState(), RifleReChambering.SaveCurrentFSMState(), SwapOldAndNewMagazine.SaveCurrentFSMState(), WeaponChambering.SaveCurrentFSMState(), WeaponChambering_Base.SaveCurrentFSMState(), WeaponDetachingMag.SaveCurrentFSMState(), WeaponDetachingMag_Store.SaveCurrentFSMState(), WeaponDetachingMag_StoreRemoveChamberBullet.SaveCurrentFSMState(), WeaponDetachingMagOpenBolt.SaveCurrentFSMState(), WeaponEjectBullet.SaveCurrentFSMState(), WeaponEjectBullet_Cartridge.SaveCurrentFSMState(), WeaponEjectBulletMultiMuzzle_Cartridge.SaveCurrentFSMState(), WeaponFSM.SaveCurrentFSMState(), WeaponMagnumChambering.SaveCurrentFSMState(), WeaponRechamber.SaveCurrentFSMState(), WeaponReplacingMagAndChamberNext.SaveCurrentFSMState(), WeaponReplacingMagAndChamberNextOpenBoltCharged.SaveCurrentFSMState(), and WeaponUnjamming_Cartridge.SaveCurrentFSMState()bool LoadCurrentFSMState(ParamsReadContext ctx, int version)Show 21 more
, LoopedChambering.LoadCurrentFSMState(), LoopedChamberingCombineChamberInternalMagazine.LoadCurrentFSMState(), LoopedChamberingEjectLast.LoadCurrentFSMState(), RemoveNewMagazineFromInventory.LoadCurrentFSMState(), RifleChambering.LoadCurrentFSMState(), RifleReChambering.LoadCurrentFSMState(), SwapOldAndNewMagazine.LoadCurrentFSMState(), WeaponChambering.LoadCurrentFSMState(), WeaponChambering_Base.LoadCurrentFSMState(), WeaponDetachingMag.LoadCurrentFSMState(), WeaponDetachingMag_Store.LoadCurrentFSMState(), WeaponDetachingMag_StoreRemoveChamberBullet.LoadCurrentFSMState(), WeaponDetachingMagOpenBolt.LoadCurrentFSMState(), WeaponEjectBullet.LoadCurrentFSMState(), WeaponEjectBullet_Cartridge.LoadCurrentFSMState(), WeaponEjectBulletMultiMuzzle_Cartridge.LoadCurrentFSMState(), WeaponMagnumChambering.LoadCurrentFSMState(), WeaponRechamber.LoadCurrentFSMState(), WeaponReplacingMagAndChamberNext.LoadCurrentFSMState(), WeaponReplacingMagAndChamberNextOpenBoltCharged.LoadCurrentFSMState(), and WeaponUnjamming_Cartridge.LoadCurrentFSMState()bool ProcessEvent(WeaponEventBase e)void AddTransition(WeaponTransition t)adds transition into m_fsm transition table
void OnEntry(WeaponEventBase e)called upon entry to state @NOTE if state has (non-running) sub-machine, it's started on entry
- in
e - the event that triggered transition to this state
Show 7 more
, LogManager.IsWeaponLogEnable(), HFSMBase.Start(), typename.ToString(), Class.Type(), wpnDebugPrint(), m_fsm, and m_weaponvoid OnUpdate(float dt)ongoing behavior, performed while being in the state
@NOTE: this is supposed to be the Do() operation in UML speak
Show 2 more
, OnUpdate(), and m_fsmvoid OnAbort(WeaponEventBase e)called when abort signal arrives
- in
e - the event that triggered abort from this state
Show 7 more
, HFSMBase.IsRunning(), LogManager.IsWeaponLogEnable(), typename.ToString(), Class.Type(), wpnDebugPrint(), m_fsm, and m_weaponShow 25 more
, LoopedChambering.OnAbort(), LoopedChamberingCombineChamberInternalMagazine.OnAbort(), LoopedChamberingEjectLast.OnAbort(), RemoveNewMagazineFromInventory.OnAbort(), RifleChambering.OnAbort(), RifleReChambering.OnAbort(), SwapOldAndNewMagazine.OnAbort(), WeaponAttachMagazine.OnAbort(), WeaponAttachMagazineOpenBoltCharged.OnAbort(), WeaponChambering.OnAbort(), WeaponChambering_MultiMuzzle.OnAbort(), WeaponChambering_MultiMuzzleMagnum.OnAbort(), WeaponChambering_Preparation.OnAbort(), WeaponDetachingMag_Store.OnAbort(), WeaponDetachingMag_StoreRemoveChamberBullet.OnAbort(), WeaponEjectAndChamberFromAttMag.OnAbort(), WeaponEjectBullet.OnAbort(), WeaponEjectBullet_Cartridge.OnAbort(), WeaponEjectBulletMultiMuzzle_Cartridge.OnAbort(), WeaponFire.OnAbort(), WeaponFireAndChamberNext.OnAbort(), WeaponFireMultiMuzzle.OnAbort(), WeaponMagnumChambering.OnAbort(), WeaponReplacingMagAndChamberNext.OnAbort(), and WeaponReplacingMagAndChamberNextOpenBoltCharged.OnAbort()void OnExit(WeaponEventBase e)called on exit from state
- in
e - the event that triggered transition from this state
Show 3 more
, Class.Type(), wpnDebugPrint(), and m_weaponShow 44 more
, BulletShow2.OnExit(), ChamberMultiBullet.OnExit(), DetachOldMagazine.OnExit(), LoopedChambering.OnExit(), LoopedChamberingCombineChamberInternalMagazine.OnExit(), LoopedChamberingEjectLast.OnExit(), MagazineHide.OnExit(), MagazineShow.OnExit(), RemoveNewMagazineFromInventory.OnExit(), RifleChambering.OnExit(), RifleReChambering.OnExit(), SwapOldAndNewMagazine.OnExit(), WeaponChamberFromAttMag.OnExit(), WeaponChamberFromAttMagOnExit.OnExit(), WeaponChamberFromAttMagOpenbolt.OnExit(), WeaponChamberFromInnerMag.OnExit(), WeaponChambering.OnExit(), WeaponChambering_Cartridge.OnExit(), WeaponChambering_Cartridge_ChambToMag.OnExit(), WeaponChambering_InternalMagazine_OnExit.OnExit(), WeaponChambering_MultiMuzzle.OnExit(), WeaponChambering_MultiMuzzleMagnum.OnExit(), WeaponChargingInnerMag.OnExit(), WeaponChargingMultiple.OnExit(), WeaponDetachingMag.OnExit(), WeaponDetachingMag_Store.OnExit(), WeaponDetachingMag_StoreRemoveChamberBullet.OnExit(), WeaponDetachingMagOpenBolt.OnExit(), WeaponEjectAndChamberFromAttMag.OnExit(), WeaponEjectBullet.OnExit(), WeaponEjectBullet_Cartridge.OnExit(), WeaponEjectBulletMultiMuzzle_Cartridge.OnExit(), WeaponEjectCasingAndChamberFromAttMag.OnExit(), WeaponFireAndChamberNext.OnExit(), WeaponFireAndChamberNextFromInnerMag.OnExit(), WeaponFireLast.OnExit(), WeaponMagnumChambering.OnExit(), WeaponRechamber.OnExit(), WeaponReplacingMagAndChamberNext.OnExit(), WeaponReplacingMagAndChamberNextOpenBoltCharged.OnExit(), WeaponStableState.OnExit(), WeaponStartAction.OnExit(), WeaponUnjamming.OnExit(), and WeaponUnjamming_Cartridge.OnExit()bool IsWaitingForActionFinish()waiting for active animation action/actionType finish
Returns: true if this state or active substate is waiting for finish signal
Show 2 more
, IsWaitingForActionFinish(), and m_fsmbool IsIdle()idle state does not expect any animation events
Returns: true if this state is idle
bool IsBoltOpen()Returns: true if weapon bolt is open
void OnSubMachineChanged(WeaponStateBase src, WeaponStateBase dst)called when sub-machine has changed its state
- in
src - from state (previous)
- in
dst - to state (current)
void OnStateChanged(WeaponStateBase src, WeaponStateBase dst)called on current state when state machine has changed its state
- in
src - from state (previous)
- in
dst - to state (current)
float GetCoolDown()