enum class EWeaponStates
{
eWS_Disabled,
eWS_Idle,
eWS_IdleZoomed,
eWS_Fire,
eWS_IdleUnderBarrel,
eWS_HoldFireUnderBarrel,
eWS_FireUnderBarrel,
eWS_ReloadUnderBarrel,
eWS_HolsterInDisabled,
eWS_HolsterInUnderBarrel,
eWS_HolsteredUnderBarrel,
eWS_MeleeUnderBarrel,
eWS_ThrowingFire,
eWS_ThrowingFireActivate,
eWS_ZoomedFire,
eWS_ZoomInFire,
eWS_ZoomOutFire,
eWS_Reload,
eWS_ReloadBarrel,
eWS_BoltAction,
eWS_ZoomedBoltAction,
eWS_ZoomIn,
eWS_ZoomOut,
eWS_ZoomOutReloadAuto,
eWS_ZoomOutReloadManual,
eWS_ZoomOutQSA,
eWS_ZoomOutMelee,
eWS_ZoomOutBoltAction,
eWS_ZoomOutCustomize,
eWS_Throwing,
eWS_Toss,
eWS_Melee,
eWS_Select,
eWS_Deselect,
eWS_Holding,
eWS_Activate,
eWS_Customize,
eWS_CustomizeIn,
eWS_CustomizeOut,
eWS_HolsterIn,
eWS_Holstered,
eWS_StartRestoreSelf,
eWS_StartRestoreTeamMate,
eWS_CancelRestore,
eWS_RestoreSelf,
eWS_RestoreTeamMate,
eWS_TryingRestoreSelf,
eWS_TryingRestoreTeamMate,
eWS_DropAmmoPack,
eWS_Resurrect,
eWS_ResetClipAmmo,
eWS_Last,
eWS_Num = eWS_Last
};
class CWeaponGeneral
{
public:
EWeaponStates GetCurrState() { return CallFunction<EWeaponStates(__thiscall*)(PVOID64)>(this, 40)(this); }
bool IsZooming() {
bool IsZoom = (this->GetCurrState() == EWeaponStates::eWS_IdleZoomed)
|| (this->GetCurrState() == EWeaponStates::eWS_ZoomedFire)
|| (this->GetCurrState() == EWeaponStates::eWS_ZoomIn)
|| (this->GetCurrState() == EWeaponStates::eWS_ZoomOut)
|| (this->GetCurrState() == EWeaponStates::eWS_ZoomInFire)
|| (this->GetCurrState() == EWeaponStates::eWS_ZoomOutFire);
if (!IsZoom) return 1;
else return 0;
}
};