struct IFireMode { };
IWeapon.h
virtual ~IFireMode();
virtual void Activate(bool activate) = 0;
virtual bool AllowZoom() const = 0;
virtual void ApplyAutoAim(Vec3 & rDir, const Vec3 & pos) const = 0;
virtual Vec3 ApplySpread(const Vec3 & dir, float spread, int quadrant = -1) const = 0;
virtual bool CanCancelReload() = 0;
virtual void Cancel() = 0;
virtual void CancelReload() = 0;
virtual bool CanFire(bool considerAmmo = true) const = 0;
virtual bool CanOverheat() const = 0;
virtual bool CanReload() const = 0;
virtual void Enable(bool enable) = 0;
virtual int GetAmmoCount() const = 0;
virtual IEntityClass* GetAmmoType() const = 0;
virtual int GetClipSize() const = 0;
virtual const char * GetCrosshair() const;
virtual int GetCurrentBarrel() const = 0;
virtual int GetDamage() const = 0;
virtual Vec3 GetFireHelperDir() const = 0;
virtual Vec3 GetFireHelperPos() const = 0;
virtual float GetFireRate() const = 0;
virtual Vec3 GetFiringDir(const Vec3 & probableHit, const Vec3& firingPos) const = 0;
virtual Vec3 GetFiringPos(const Vec3 & probableHit) const = 0;
virtual float GetHeat() const = 0;
virtual float GetMaxSpread() const = 0;
virtual void GetMemoryUsage(ICrySizer * s) const = 0;
virtual float GetMinSpread() const = 0;
virtual const char* GetName() const = 0;
virtual float GetNextShotTime() const = 0;
virtual EntityId GetProjectileId() const = 0;
virtual float GetRecoil() const = 0;
virtual void FinishReload() = 0;
virtual float GetSpinUpTime() const = 0;
virtual float GetSpread() const = 0;
virtual float GetSpreadForHUD() const = 0;
virtual bool HasFireHelper() const = 0;
virtual bool IsEnabled() const = 0;
virtual bool IsFiring() const = 0;
virtual bool IsReloading(bool includePending = true) = 0;
virtual bool IsSilenced() const = 0;
virtual bool LowAmmo(float thresholdPerCent) const = 0;
virtual void NetEndReload() = 0;
virtual void NetShoot(const Vec3 & hit, int predictionHandle) = 0;
virtual void NetShootEx(const Vec3 & pos, const Vec3 & dir, const Vec3 & vel, const Vec3 & hit, float extra, int predictionHandle) = 0;
virtual void NetStartFire() = 0;
virtual void NetStopFire() = 0;
virtual void OnZoomStateChanged() = 0;
virtual bool OutOfAmmo() const = 0;
virtual void PatchRecoilMod(const SRecoilModParams & sRMP, float modMultiplier) = 0;
virtual void PatchSpreadMod(const SSpreadModParams & sSMP, float modMultiplier) = 0;
virtual void PostInit() = 0;
virtual void PostSerialize() = 0;
virtual void PostUpdate(float frameTime) = 0;
virtual void Release() = 0;
virtual void Reload(int zoomed) = 0;
virtual EntityId RemoveProjectileId() = 0;
virtual void ReplayShoot();
virtual void ResetRecoilMod() = 0;
virtual void ResetSpreadMod() = 0;
virtual void Serialize(TSerialize ser) = 0;
virtual void SetName(const char * name) = 0;
virtual void SetNextShotTime(float time) = 0;
virtual void SetProjectileId(EntityId id) = 0;
virtual void SetProjectileLaunchParams(const SProjectileLaunchParams & launchParams);
virtual void StartFire() = 0;
virtual void StopFire() = 0;
virtual void Update(float frameTime, uint32 frameId) = 0;
virtual void UpdateFPView(float frameTime) = 0;