572 {
574 {
575 if (
m_fsm.LoadCurrentFSMState(ctx, version))
576 {
578 if (state)
579 {
581 state.SyncAnimState();
582 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
this) +
" Weapon=" +
this +
" stable state loaded and synced."); }
583 return true;
584 }
585 else
586 {
587 if (LogManager.IsWeaponLogEnable()) {
wpnDebugPrint(
"[wpnfsm] " +
Object.GetDebugName(
this) +
" Weapon=" +
this +
" unstable/error state loaded."); }
588 return false;
589 }
590 }
591 else
592 {
593 Error(
"[wpnfsm] " +
Object.GetDebugName(
this) +
" Weapon=" +
this +
" did not load.");
594 return false;
595 }
596 }
597 else
598 {
599 Error(
"[wpnfsm] " +
Object.GetDebugName(
this) +
" Weapon.LoadCurrentFSMState: trying to load weapon without FSM (or uninitialized weapon) this=" +
this +
" type=" +
GetType());
600 return false;
601 }
602 }
eBleedingSourceType GetType()
void wpnDebugPrint(string s)
void WeaponStableState(Weapon_Base w=NULL, WeaponStateBase parent=NULL, int anim_state=-1)
void SyncSelectionState(bool has_bullet, bool has_mag)
ref WeaponFSM m_fsm
weapon abilities
WeaponStateBase GetCurrentState()
returns currently active state
override bool HasBullet()
override bool HasMagazine()
void Error(string err)
Messagebox with error message.