BVB Source Codes

CRYENGINE Show IWeapon.h Source code

Return Download CRYENGINE: download IWeapon.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #pragma once
  4.  
  5. #include <CryAISystem/IAgent.h>
  6. #include "IActionMapManager.h"
  7.  
  8. struct IWeapon;
  9. struct IActor;
  10.  
  11. struct SSpreadModParams;
  12. struct SRecoilModParams;
  13. class CProjectile;
  14. struct IItem;
  15.  
  16. enum EPhysicalizationType
  17. {
  18.         ePT_None = 0,
  19.         ePT_Particle,
  20.         ePT_Rigid,
  21.         ePT_Static,
  22. };
  23.  
  24. enum EZoomState
  25. {
  26.         eZS_ZoomedOut = 0,
  27.         eZS_ZoomingIn,
  28.         eZS_ZoomedIn,
  29.         eZS_ZoomingOut,
  30. };
  31.  
  32. struct SProjectileLaunchParams
  33. {
  34.         float    fSpeedScale;
  35.         EntityId trackingId;
  36.         Vec3     vShootTargetPos;
  37.  
  38.         SProjectileLaunchParams() : fSpeedScale(1.0f), trackingId(0), vShootTargetPos(ZERO) {}
  39. };
  40.  
  41. struct IFireMode
  42. {
  43.         virtual ~IFireMode(){}
  44.  
  45.         virtual void PostInit() = 0;
  46.         virtual void Update(float frameTime, uint32 frameId) = 0;
  47.         virtual void PostUpdate(float frameTime) = 0;
  48.         virtual void UpdateFPView(float frameTime) = 0;
  49.         virtual void Release() = 0;
  50.         virtual void GetMemoryUsage(ICrySizer* s) const = 0;
  51.  
  52.         virtual void Activate(bool activate) = 0;
  53.  
  54.         virtual int  GetAmmoCount() const = 0;
  55.         virtual int  GetClipSize() const = 0;
  56.  
  57.         virtual bool OutOfAmmo() const = 0;
  58.         virtual bool LowAmmo(float thresholdPerCent) const = 0;
  59.         virtual bool CanReload() const = 0;
  60.         virtual void Reload(int zoomed) = 0;
  61.         virtual bool IsReloading(bool includePending = true) = 0;
  62.         virtual void CancelReload() = 0;
  63.         virtual bool CanCancelReload() = 0;
  64.         //virtual void FinishReload() = 0;
  65.  
  66.         virtual float         GetRecoil() const = 0;
  67.         virtual float         GetSpread() const = 0;
  68.         virtual float         GetSpreadForHUD() const = 0;
  69.         virtual float         GetMinSpread() const = 0;
  70.         virtual float         GetMaxSpread() const = 0;
  71.         virtual float         GetHeat() const = 0;
  72.         virtual const char*   GetCrosshair() const { return ""; };
  73.         virtual bool          CanOverheat() const = 0;
  74.         virtual Vec3          ApplySpread(const Vec3& dir, float spread, int quadrant = -1) const = 0;
  75.         virtual void          ApplyAutoAim(Vec3& rDir, const Vec3& pos) const = 0;
  76.  
  77.         virtual bool          CanFire(bool considerAmmo = true) const = 0;
  78.         virtual void          StartFire() = 0;
  79.         virtual void          StopFire() = 0;
  80.         virtual bool          IsFiring() const = 0;
  81.         virtual bool          IsSilenced() const = 0;
  82.         virtual bool          AllowZoom() const = 0;
  83.         virtual void          Cancel() = 0;
  84.         virtual void          SetProjectileLaunchParams(const SProjectileLaunchParams& launchParams) { CRY_ASSERT_MESSAGE(0, "Firemode does not handle launch params"); }
  85.  
  86.         virtual void          NetShoot(const Vec3& hit, int predictionHandle) = 0;
  87.         virtual void          NetShootEx(const Vec3& pos, const Vec3& dir, const Vec3& vel, const Vec3& hit, float extra, int predictionHandle) = 0;
  88.         virtual void          NetEndReload() = 0;
  89.         virtual void          ReplayShoot() {};
  90.  
  91.         virtual void          NetStartFire() = 0;
  92.         virtual void          NetStopFire() = 0;
  93.  
  94.         virtual EntityId      GetProjectileId() const = 0;
  95.         virtual void          SetProjectileId(EntityId id) = 0;
  96.         virtual EntityId      RemoveProjectileId() = 0;
  97.  
  98.         virtual IEntityClass* GetAmmoType() const = 0;
  99.         virtual int           GetDamage() const = 0;
  100.  
  101.         virtual float         GetSpinUpTime() const = 0;
  102.         virtual float         GetNextShotTime() const = 0;
  103.         virtual void          SetNextShotTime(float time) = 0;
  104.         virtual float         GetFireRate() const = 0;
  105.  
  106.         virtual Vec3          GetFiringPos(const Vec3& probableHit) const = 0;
  107.         virtual Vec3          GetFiringDir(const Vec3& probableHit, const Vec3& firingPos) const = 0;
  108.  
  109.         virtual void          Enable(bool enable) = 0;
  110.         virtual bool          IsEnabled() const = 0;
  111.  
  112.         virtual void          SetName(const char* name) = 0;
  113.         virtual const char*   GetName() const = 0;
  114.  
  115.         virtual bool          HasFireHelper() const = 0;
  116.         virtual Vec3          GetFireHelperPos() const = 0;
  117.         virtual Vec3          GetFireHelperDir() const = 0;
  118.  
  119.         virtual int           GetCurrentBarrel() const = 0;
  120.  
  121.         virtual void          Serialize(TSerialize ser) = 0;
  122.         virtual void          PostSerialize() = 0;
  123.  
  124.         virtual void          PatchSpreadMod(const SSpreadModParams& sSMP, float modMultiplier) = 0;
  125.         virtual void          ResetSpreadMod() = 0;
  126.  
  127.         virtual void          PatchRecoilMod(const SRecoilModParams& sRMP, float modMultiplier) = 0;
  128.         virtual void          ResetRecoilMod() = 0;
  129.  
  130.         virtual void          OnZoomStateChanged() = 0;
  131. };
  132.  
  133. struct IZoomMode
  134. {
  135.         virtual ~IZoomMode(){}
  136.  
  137.         virtual void       Update(float frameTime, uint32 frameId) = 0;
  138.         virtual void       Release() = 0;
  139.         virtual void       GetMemoryUsage(ICrySizer* s) const = 0;
  140.  
  141.         virtual void       Activate(bool activate) = 0;
  142.  
  143.         virtual bool       CanZoom() const = 0;
  144.         virtual bool       StartZoom(bool stayZoomed = false, bool fullZoomOut = true, int zoomStep = 1) = 0;
  145.         virtual void       StopZoom() = 0;
  146.         virtual void       ExitZoom(bool force = false) = 0;
  147.  
  148.         virtual int        GetCurrentStep() const = 0;
  149.         virtual float      GetZoomFoVScale(int step) const = 0;
  150.         virtual float      GetZoomInTime() const = 0;
  151.         virtual float      GetZoomTransition() const = 0;
  152.  
  153.         virtual void       ZoomIn() = 0;
  154.         virtual bool       ZoomOut() = 0;
  155.  
  156.         virtual bool       IsZoomed() const = 0;
  157.         virtual bool       IsZoomingInOrOut() const = 0;
  158.         virtual bool       IsZoomingIn() const = 0;
  159.         virtual EZoomState GetZoomState() const = 0;
  160.         virtual bool       AllowsZoomSnap() const = 0;
  161.  
  162.         virtual void       Enable(bool enable) = 0;
  163.         virtual bool       IsEnabled() const = 0;
  164.  
  165.         virtual void       Serialize(TSerialize ser) = 0;
  166.  
  167.         virtual void       GetFPOffset(QuatT& offset) const = 0;
  168.  
  169.         virtual void       UpdateFPView(float frameTime) = 0;
  170.         virtual void       FilterView(struct SViewParams& viewParams) = 0;
  171.         virtual void       PostFilterView(struct SViewParams& viewParams) = 0;
  172.  
  173.         virtual int        GetMaxZoomSteps() const = 0;
  174.  
  175.         virtual void       ApplyZoomMod(IFireMode* pFM, float modMultiplier) = 0;
  176.         virtual void       ResetZoomMod(IFireMode* pFM) = 0;
  177.  
  178.         //! zoom mode is activated by toggling
  179.         virtual bool IsToggle() = 0;
  180.  
  181.         virtual void StartStabilize() = 0;
  182.         virtual void EndStabilize() = 0;
  183.         virtual bool IsStable() = 0;
  184. };
  185.  
  186. struct IWeaponFiringLocator
  187. {
  188.         virtual ~IWeaponFiringLocator(){}
  189.         virtual bool GetProbableHit(EntityId weaponId, const IFireMode* pFireMode, Vec3& hit) = 0;                                                     // probable hit position
  190.         virtual bool GetFiringPos(EntityId weaponId, const IFireMode* pFireMode, Vec3& pos) = 0;                                                       // position of the projectile
  191.         virtual bool GetFiringDir(EntityId weaponId, const IFireMode* pFireMode, Vec3& dir, const Vec3& probableHit, const Vec3& firingPos) = 0;       // this is target pos - firing pos
  192.         virtual bool GetActualWeaponDir(EntityId weaponId, const IFireMode* pFireMode, Vec3& dir, const Vec3& probableHit, const Vec3& firingPos) = 0; // this is acutal weapon direction
  193.         virtual bool GetFiringVelocity(EntityId weaponId, const IFireMode* pFireMode, Vec3& vel, const Vec3& firingDir) = 0;                           // velocity to add up to the projectile (usually host velocity)
  194.         virtual void WeaponReleased() = 0;                                                                                                             // called when weapon is deleted
  195. };
  196.  
  197. struct IWeaponEventListener
  198. {
  199.         virtual ~IWeaponEventListener(){}
  200.         virtual void OnShoot(IWeapon* pWeapon, EntityId shooterId, EntityId ammoId, IEntityClass* pAmmoType,
  201.                              const Vec3& pos, const Vec3& dir, const Vec3& vel) = 0;
  202.         virtual void OnStartFire(IWeapon* pWeapon, EntityId shooterId) = 0;
  203.         virtual void OnStopFire(IWeapon* pWeapon, EntityId shooterId) = 0;
  204.         virtual void OnFireModeChanged(IWeapon* pWeapon, int currentFireMode) = 0;
  205.         virtual void OnStartReload(IWeapon* pWeapon, EntityId shooterId, IEntityClass* pAmmoType) = 0;
  206.         virtual void OnEndReload(IWeapon* pWeapon, EntityId shooterId, IEntityClass* pAmmoType) = 0;
  207.         virtual void OnSetAmmoCount(IWeapon* pWeapon, EntityId shooterId) = 0;
  208.         virtual void OnOutOfAmmo(IWeapon* pWeapon, IEntityClass* pAmmoType) = 0;
  209.         virtual void OnReadyToFire(IWeapon* pWeapon) = 0;
  210.  
  211.         virtual void OnPickedUp(IWeapon* pWeapon, EntityId actorId, bool destroyed) = 0;
  212.         virtual void OnDropped(IWeapon* pWeapon, EntityId actorId) = 0;
  213.  
  214.         virtual void OnMelee(IWeapon* pWeapon, EntityId shooterId) = 0;
  215.  
  216.         virtual void OnStartTargetting(IWeapon* pWeapon) = 0;
  217.         virtual void OnStopTargetting(IWeapon* pWeapon) = 0;
  218.  
  219.         virtual void OnSelected(IWeapon* pWeapon, bool selected) = 0;
  220.         virtual void OnEndBurst(IWeapon* pWeapon, EntityId shooterId) = 0;
  221.  
  222.         // empty implementation to be compatible with other game dlls
  223.         virtual void OnZoomChanged(IWeapon* pWeapon, bool zoomed, int idx) {}
  224. };
  225.  
  226. struct AIWeaponDescriptor;
  227. struct HazardWeaponDescriptor;
  228.  
  229. // Summary
  230. // Queries that can be done throw IWeapon::Query function to handle
  231. // generic or game specific functionality
  232. enum EWeaponQuery
  233. {
  234.         eWQ_Has_Accessory_Laser = 0,
  235.         eWQ_Has_Accessory_Flashlight,
  236.         eWQ_Is_Laser_Activated,
  237.         eWQ_Is_Flashlight_Activated,
  238.         eWQ_Activate_Flashlight,
  239.         eWQ_Activate_Laser,
  240.         eWQ_Raise_Weapon,
  241.         eWQ_Last
  242. };
  243.  
  244. // Summary
  245. //   Interface to implement a Weapon class
  246. struct IWeapon
  247. {
  248.         virtual ~IWeapon(){}
  249.         // Summary
  250.         //   Receives an action from the client
  251.         // Parameters
  252.         //   actorId - EntityId of the actor who sent the action
  253.         //   actionId - 'name' of the action performed
  254.         //   activationMode - one of the activation mode defined in EActionActivationMode
  255.         //   value - value which quantified the action performed
  256.         virtual void                  OnAction(EntityId actorId, const ActionId& actionId, int activationMode, float value) = 0;
  257.  
  258.         virtual void                  SetFiringLocator(IWeaponFiringLocator* pLocator) = 0;
  259.         virtual IWeaponFiringLocator* GetFiringLocator() const = 0;
  260.  
  261.         virtual void                  AddEventListener(IWeaponEventListener* pListener, const char* who) = 0;
  262.         virtual void                  RemoveEventListener(IWeaponEventListener* pListener) = 0;
  263.  
  264.         // Summary
  265.         //   Sets the position of the destination target
  266.         // Parameters
  267.         //   pos - position in world space
  268.         virtual void SetDestination(const Vec3& pos) = 0;
  269.  
  270.         // Summary
  271.         //   Sets an entity as the destination target
  272.         // Parameters
  273.         //   pos - position in world space
  274.         virtual void SetDestinationEntity(EntityId targetId) = 0;
  275.  
  276.         // Summary
  277.         //   Retrieves the destination position
  278.         virtual const Vec3& GetDestination() = 0;
  279.  
  280.         // Summary
  281.         //   Retrieves the firing position
  282.         // See Also
  283.         //   GetFiringDir
  284.         virtual Vec3 GetFiringPos(const Vec3& probableHit) const = 0;
  285.  
  286.         // Summary
  287.         //   Retrieves the firing direction
  288.         // Remarks
  289.         //   It's important to pass the firing position in order to get an accurate
  290.         //   firing direction.
  291.         // Parameters
  292.         //   firingPos - the firing position
  293.         // See Also
  294.         //   GetFiringPos
  295.         virtual Vec3 GetFiringDir(const Vec3& probableHit, const Vec3& firingPos) const = 0;
  296.  
  297.         // Summary
  298.         //   Requests the weapon to start firing
  299.         // See Also
  300.         //   CanFire
  301.         virtual void StartFire() = 0;
  302.  
  303.         // Summary
  304.         //   Requests the weapon to start firing, using specific projectile launch params
  305.         // See Also
  306.         //   CanFire
  307.         virtual void StartFire(const SProjectileLaunchParams& launchParams) = 0;
  308.  
  309.         // Summary
  310.         //   Requests the weapon to stop firing
  311.         virtual void StopFire() = 0;
  312.  
  313.         // Summary
  314.         //   Determines if the weapon can shoot
  315.         virtual bool CanFire() const = 0;
  316.  
  317.         // Summary
  318.         //   Query to know if it's allowed to stop firing
  319.         virtual bool CanStopFire() const = 0;
  320.  
  321.         // Summary
  322.         //   Requests the weapon to start its zoom mode
  323.         // Parameters
  324.         //   shooterId - EntityId of the actor who uses this weapon.
  325.         // See Also
  326.         //   CanZoom
  327.         virtual void StartZoom(EntityId shooterId, int zoomed = 1) = 0;
  328.  
  329.         // Summary
  330.         //   Requests the weapon to stops its zoom mode
  331.         // Parameters
  332.         //   shooterId - EntityId of the actor who uses this weapon.
  333.         virtual void StopZoom(EntityId shooterId) = 0;
  334.  
  335.         // Summary
  336.         //   Determines if the weapon can zoom
  337.         virtual bool CanZoom() const = 0;
  338.  
  339.         // Summary
  340.         //   Requests the weapon to immediately stops its zoom mode
  341.         virtual void ExitZoom(bool force = false) = 0;
  342.  
  343.         // Summary
  344.         //   Performs reloading of the weapon
  345.         // Parameters
  346.         //   force - when enabled, this will force the weapon to reload even if some
  347.         //           conditions could normally block this from happening
  348.         // See Also
  349.         //   CanReload
  350.         virtual void Reload(bool force = false) = 0;
  351.  
  352.         // Summary
  353.         //   Determines if the weapon can reload
  354.         virtual bool CanReload() const = 0;
  355.  
  356.         // Summary
  357.         //   Determines if the weapon has no more ammunition
  358.         // Parameters
  359.         //   allFireModes - Unless this option is enabled, the ammunition status
  360.         //                  will only be applicable for the current firemode
  361.         virtual bool OutOfAmmo(bool allFireModes) const = 0;
  362.  
  363.         // Summary
  364.         //   Determines if the weapon has no more ammunition, including all ammo types
  365.         virtual bool OutOfAmmoTypes() const = 0;
  366.  
  367.         // Summary
  368.         //   Determines if the weapon is low on ammunition based on the passed threshold
  369.         // Parameters
  370.         //   thresholdPerCent - Percentage of ammo under which low ammo is true
  371.         virtual bool LowAmmo(float thresholdPerCent) const = 0;
  372.  
  373.         // Summary
  374.         //   Retrieves the ammunition count
  375.         // Parameters
  376.         //   pAmmoType - EntityClass pointer of the ammo type
  377.         // Returns
  378.         //   The ammo count if the type was properly specified, or 0 if the
  379.         //   specified ammo type wasn't found
  380.         // See Also
  381.         //   SetAmmoCount
  382.         virtual int GetAmmoCount(IEntityClass* pAmmoType) const = 0;
  383.  
  384.         // Summary
  385.         //   Sets the ammunition count
  386.         // Parameters
  387.         //   pAmmoType - EntityClass pointer of the ammo type
  388.         //   count - Specifies the desired ammo count
  389.         // See Also
  390.         //   GetAmmoCount
  391.         virtual void SetAmmoCount(IEntityClass* pAmmoType, int count) = 0;
  392.  
  393.         // Summary
  394.         //   Retrieves the fire mode count
  395.         virtual int GetNumOfFireModes() const = 0;
  396.  
  397.         // Summary
  398.         //   Retrieves a specified fire mode, by index
  399.         // Parameters
  400.         //   idx - index of the specified fire mode
  401.         // See Also
  402.         //   GetNumOfFireModes, GetFireModeIdx
  403.         virtual IFireMode* GetFireMode(int idx) const = 0;
  404.  
  405.         // Summary
  406.         //   Retrieves a specified fire mode, by name
  407.         // Parameters
  408.         //   name - name of the specified fire mode
  409.         virtual IFireMode* GetFireMode(const char* name) const = 0;
  410.  
  411.         // Summary
  412.         //   Retrieves the index for a specified fire mode
  413.         // Parameters
  414.         //   name - name of the specified fire mode
  415.         virtual int GetFireModeIdx(const char* name) const = 0;
  416.  
  417.         // Summary
  418.         //   Retrieves the index of the current fire mode
  419.         virtual int GetCurrentFireMode() const = 0;
  420.  
  421.         // Summary
  422.         //   Sets the fire mode, by index
  423.         // Parameters
  424.         //   idx - index of the requested fire mode
  425.         virtual void SetCurrentFireMode(int idx) = 0;
  426.  
  427.         // Summary
  428.         //   Sets the fire mode, by name
  429.         // Parameters
  430.         //   name - name of the requested fire mode
  431.         virtual void SetCurrentFireMode(const char* name) = 0;
  432.  
  433.         // Summary
  434.         //   Toggles to the next fire mode
  435.         virtual void ChangeFireMode() = 0;
  436.  
  437.         // Summary
  438.         //   Retrieves a specified zoom mode, by index
  439.         // Parameters
  440.         //   idx - index of the specified zoom mode
  441.         // See Also
  442.         //   GetNumOfZoomModes, GetZoomModeIdx
  443.         virtual IZoomMode* GetZoomMode(int idx) const = 0;
  444.  
  445.         // Summary
  446.         //   Retrieves a specified zoom mode, by name
  447.         // Parameters
  448.         //   name - name of the specified zoom mode
  449.         virtual IZoomMode* GetZoomMode(const char* name) const = 0;
  450.  
  451.         // Summary
  452.         //   Retrieves the index for a specified zoom mode
  453.         // Parameters
  454.         //   name - name of the specified zoom mode
  455.         //virtual int GetZoomModeIdx(const char *name) const = 0;
  456.  
  457.         // Summary
  458.         //   Retrieves the index of the current zoom mode
  459.         virtual int GetCurrentZoomMode() const = 0;
  460.  
  461.         // Summary
  462.         //   Sets the zoom mode, by index
  463.         // Parameters
  464.         //   idx - index of the requested zoom mode
  465.         virtual void SetCurrentZoomMode(int idx) = 0;
  466.  
  467.         // Summary
  468.         //   Sets the zoom mode, by name
  469.         // Parameters
  470.         //   name - name of the requested zoom mode
  471.         virtual void SetCurrentZoomMode(const char* name) = 0;
  472.  
  473.         // Summary
  474.         //   Toggles to the next zoom mode
  475.         //virtual void ChangeZoomMode() = 0;
  476.  
  477.         // Summary
  478.         //   Sets the host of the weapon
  479.         // Description
  480.         //   The host of the weapon can be any entity which the weapon is child of.
  481.         //   For example, the cannon of the tank has the tank as an host.
  482.         // Parameters
  483.         //   hostId - EntityId of the host
  484.         // See Also
  485.         //   GetHostId
  486.         virtual void SetHostId(EntityId hostId) = 0;
  487.  
  488.         // Summary
  489.         //   Retrieves the EntityId of the host
  490.         virtual EntityId GetHostId() const = 0;
  491.  
  492.         // Summary
  493.         //   Performs a melee attack
  494.         // See Also
  495.         //   CanMeleeAttack
  496.         // Parameters
  497.         //   bShort - "short" melee, whatever that means (e.g. melee while standing, rather than moving towards the enemy)
  498.         virtual void MeleeAttack(bool bShort = false) = 0;
  499.  
  500.         // Summary
  501.         //   Determines if the weapon can perform a melee attack
  502.         // See Also
  503.         //   MeleeAttack
  504.         virtual bool CanMeleeAttack() const = 0;
  505.  
  506.         virtual void SaveWeaponPosition() {}// FIX ME: = 0;
  507.  
  508.         virtual bool IsValidAssistTarget(IEntity* pEntity, IEntity* pSelf, bool includeVehicles = false) = 0;
  509.  
  510.         virtual bool PredictProjectileHit(IPhysicalEntity* pShooter, const Vec3& pos, const Vec3& dir,
  511.                                           const Vec3& velocity, float speed, Vec3& predictedPosOut, float& projectileSpeedOut,
  512.                                           Vec3* pTrajectoryPositions = 0, unsigned int* trajectorySizeInOut = 0, float timeStep = 0.24f,
  513.                                           Vec3* pTrajectoryVelocities = 0, const bool predictionForAI = false) const = 0;
  514.  
  515.         virtual bool                      IsZoomed() const = 0;
  516.         virtual bool                      IsZoomingInOrOut() const = 0;
  517.         virtual bool                      IsReloading(bool includePending = true) const = 0;
  518.         virtual EZoomState                GetZoomState() const = 0;
  519.  
  520.         virtual bool                      GetScopePosition(Vec3& pos) = 0;
  521.  
  522.         virtual bool                      HasAttachmentAtHelper(const char* helper) = 0;
  523.         virtual void                      GetAttachmentsAtHelper(const char* helper, CCryFixedStringListT<5, 30>& rAttachments) = 0;
  524.  
  525.         virtual bool                      IsServerSpawn(IEntityClass* pAmmoType) const = 0;
  526.  
  527.         virtual const AIWeaponDescriptor& GetAIWeaponDescriptor() const = 0;
  528.  
  529.         // Summary
  530.         //      Query some weapon actions, info
  531.         // Patameters
  532.         //      query - Query Id
  533.         //      param - In/Out param, specific for each query
  534.         virtual bool Query(EWeaponQuery query, const void* param = NULL) = 0;
  535.  
  536.         /*
  537.            virtual bool         IsLamAttached() = 0;
  538.            virtual bool    IsFlashlightAttached() = 0;
  539.            virtual void    ActivateLamLaser(bool activate, bool aiRequest = true) = 0;
  540.            virtual void         ActivateLamLight(bool activate, bool aiRequest = true) = 0;
  541.            virtual bool   IsLamLaserActivated() = 0;
  542.            virtual bool         IsLamLightActivated() = 0;
  543.          */
  544.  
  545.         virtual void       RequestShoot(IEntityClass* pAmmoType, const Vec3& pos, const Vec3& dir, const Vec3& vel, const Vec3& hit, float extra, int predictionHandle, bool forceExtended) = 0;
  546.  
  547.         virtual IFireMode* GetMeleeFireMode() const = 0;
  548.  
  549.         /*
  550.            virtual      void            RaiseWeapon(bool raise, bool faster = false) = 0;
  551.            virtual void         LowerWeapon(bool lower)  = 0;
  552.            virtual      bool            IsWeaponRaised() const = 0;
  553.            virtual bool         IsWeaponLowered() = 0;
  554.          */
  555.  
  556.         virtual bool IsSwitchingFireMode() = 0;
  557.         virtual void StartChangeFireMode() = 0;
  558.         virtual void EndChangeFireMode() = 0;
  559.  
  560.         //virtual void ExitViewmodes() = 0;
  561.  
  562.         //virtual IItem*  GetIItem() = 0;
  563.  
  564.         virtual void         SendEndReload() = 0;
  565.         virtual bool         IsTargetOn() = 0;
  566.         virtual void         OnReadyToFire() = 0;
  567.         virtual void         OnStartReload(EntityId shooterId, IEntityClass* pAmmoType) = 0;
  568.         virtual void         OnEndReload(EntityId shooterId, IEntityClass* pAmmoType) = 0;
  569.         virtual void         OnMelee(EntityId shooterId) = 0;
  570.         virtual void         OnZoomIn() = 0;
  571.         virtual void         OnZoomOut() = 0;
  572.         virtual void         OnShoot(EntityId shooterId, EntityId ammoId, IEntityClass* pAmmoType, const Vec3& pos, const Vec3& dir, const Vec3& vel) = 0;
  573.         virtual void         OnStartTargetting(IWeapon* pWeapon) = 0;
  574.         virtual void         OnStopTargetting(IWeapon* pWeapon) = 0;
  575.  
  576.         virtual void         RequestStartFire() = 0;
  577.         virtual void         RequestStopFire() = 0;
  578.         virtual void         RequestReload() = 0;
  579.  
  580.         virtual void         RequestCancelReload() = 0;
  581.  
  582.         virtual void         RequestStartMeleeAttack(bool weaponMelee, bool boostedAttack, int8 attackIndex = -1) = 0;
  583.         virtual void         RequestMeleeAttack(bool weaponMelee, const Vec3& pos, const Vec3& dir) = 0;
  584.  
  585.         virtual void         OnOutOfAmmo(IEntityClass* pAmmoType) = 0;
  586.         virtual CProjectile* SpawnAmmo(IEntityClass* pAmmoType, bool remote = false) = 0;
  587.         virtual int          GetInventoryAmmoCount(IEntityClass* pAmmoType) const = 0;
  588.         virtual void         SetInventoryAmmoCount(IEntityClass* pAmmoType, int count) = 0;
  589.  
  590.         virtual int          GetMaxZoomSteps() = 0;
  591.  
  592.         virtual Vec3&        GetAimLocation() = 0;
  593.         virtual Vec3&        GetTargetLocation() = 0;
  594.  
  595.         virtual void         SetAimLocation(Vec3& location) = 0;
  596.         virtual void         SetTargetLocation(Vec3& location) = 0;
  597.  
  598.         virtual bool         AIUseEyeOffset() const = 0;
  599.         virtual bool         AIUseOverrideOffset(EStance stance, float lean, float peekOver, Vec3& offset) const = 0;
  600.  
  601.         virtual void         AutoDrop() = 0;
  602.         virtual void         AddFiredRocket() = 0;
  603.  
  604.         virtual bool         GetFireAlternation() = 0;
  605.         virtual void         SetFireAlternation(bool fireAlt) = 0;
  606.  
  607.         virtual EntityId     GetHeldEntityId() const = 0;
  608.  
  609.         virtual void         ActivateTarget(bool activate) = 0;
  610.         virtual bool         ApplyActorRecoil() const = 0;
  611.  
  612.         virtual bool         IsRippedOff() const = 0;
  613.  
  614.         //virtual void AdjustPosition(float time, bool zoomIn, int currentStep) = 0;
  615.         //virtual void SetScopeOffset(const Vec3& offset) = 0;
  616. };
  617.  
downloadIWeapon.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top