PC Stable Documentation
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Loading...
Searching...
No Matches
WeaponStableState.c File Reference

Enumerations

enum  MuzzleState { U = -1 , E = 0 , F = 1 , L = 2 }
 

Functions

void WeaponStableState (Weapon_Base w=NULL, WeaponStateBase parent=NULL, int anim_state=-1)
 
void SyncAnimState ()
 
override void OnEntry (WeaponEventBase e)
 
override void OnUpdate (float dt)
 
override void OnExit (WeaponEventBase e)
 
override bool IsIdle ()
 
int GetCurrentStateID ()
 
Weapon state properties

Properties defining the state in several properties for other systems Override these to set them up

Several systems depends on this: WeaponFSM.RandomizeFSMState, which picks out a suitable FSM state when attaching magazine through CE WeaponFSM.ValidateAndRepair, which will attempt to identify a desync and repair the FSM state if so

@WARNING So it is important to set these up correctly to prevent any desync of weapon FSM and actual wepon state

bool IsRepairEnabled ()
 Whether WeaponFSM.ValidateAndRepair should be applied on this state @NOTE: This property was implemented at the same time as ValARep To have it disabled by default In case there are modders who created their own state But potentially did not set up their properties correctly As having ValARep run on an improper setup would result in horrible VME spam and desync @WARNING: When enabling repair, it is imperative that all properties are set up correctly.
 
bool HasBullet ()
 Whether there is a bullet in the chamber @NOTE: This should only be false when it is empty So this is true when there is a bullet in the chamber Regardless of the bullet being loaded, firedout or jammed.
 
bool HasMagazine ()
 Whether there is a magazine attached.
 
bool IsJammed ()
 Whether the gun is jammed.
 
bool IsDischarged ()
 Whether the gun is discharged.
 
bool IsWeaponOpen ()
 Whether the gun is open.
 
void InitMuzzleArray ()
 Override with the filling of m_muzzleHasBullet.
 
bool IsSingleState ()
 Special one for when the weapon only has one singular state (like Magnum)
 
Weapon state properties helpers

Several helpers for better access of certain properties

MuzzleState GetMuzzleState (int idx)
 Get chamber state of the muzzle at index.
 
int GetMuzzleStateCount ()
 
bool IsChamberValid (int idx)
 
bool IsChamberFiredOut (int idx)
 
bool IsChamberFull (int idx)
 
void ValidateMuzzleArray ()
 Safety check and error message in case not set up correctly.
 

Variables

enum MuzzleState m_animState
 
ref array< MuzzleStatem_muzzleHasBullet = new array<MuzzleState>()
 

Enumeration Type Documentation

◆ MuzzleState

Enumerator

UNKNOWN.

EMPTY.

FIRED.

LOADED.

Function Documentation

◆ GetCurrentStateID()

int GetCurrentStateID ( )

◆ GetMuzzleState()

MuzzleState GetMuzzleState ( int  idx)

Get chamber state of the muzzle at index.

References m_muzzleHasBullet.

◆ GetMuzzleStateCount()

int GetMuzzleStateCount ( )

References m_muzzleHasBullet.

◆ HasBullet()

bool HasBullet ( )

Whether there is a bullet in the chamber @NOTE: This should only be false when it is empty So this is true when there is a bullet in the chamber Regardless of the bullet being loaded, firedout or jammed.

◆ HasMagazine()

bool HasMagazine ( )

Whether there is a magazine attached.

◆ InitMuzzleArray()

void InitMuzzleArray ( )

Override with the filling of m_muzzleHasBullet.

References m_muzzleHasBullet.

◆ IsChamberFiredOut()

◆ IsChamberFull()

◆ IsChamberValid()

bool IsChamberValid ( int  idx)

References m_muzzleHasBullet.

◆ IsDischarged()

bool IsDischarged ( )

Whether the gun is discharged.

◆ IsIdle()

override bool IsIdle ( )

◆ IsJammed()

bool IsJammed ( )

Whether the gun is jammed.

◆ IsRepairEnabled()

bool IsRepairEnabled ( )

Whether WeaponFSM.ValidateAndRepair should be applied on this state @NOTE: This property was implemented at the same time as ValARep To have it disabled by default In case there are modders who created their own state But potentially did not set up their properties correctly As having ValARep run on an improper setup would result in horrible VME spam and desync @WARNING: When enabling repair, it is imperative that all properties are set up correctly.

◆ IsSingleState()

bool IsSingleState ( )

Special one for when the weapon only has one singular state (like Magnum)

Referenced by ValidateMuzzleArray().

◆ IsWeaponOpen()

bool IsWeaponOpen ( )

Whether the gun is open.

Referenced by OnEntry().

◆ OnEntry()

◆ OnExit()

override void OnExit ( WeaponEventBase  e)

References m_weapon.

◆ OnUpdate()

override void OnUpdate ( float  dt)

References SyncAnimState().

◆ SyncAnimState()

◆ ValidateMuzzleArray()

void ValidateMuzzleArray ( )

Safety check and error message in case not set up correctly.

References ErrorEx, IsSingleState(), and m_muzzleHasBullet.

Referenced by WeaponStableState().

◆ WeaponStableState()

void WeaponStableState ( Weapon_Base  w = NULL,
WeaponStateBase  parent = NULL,
int  anim_state = -1 
)

Variable Documentation

◆ m_animState

enum MuzzleState m_animState

Referenced by SyncAnimState(), and WeaponStableState().

◆ m_muzzleHasBullet