Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
- //
- // Purpose:
- //
- //=============================================================================//
- #ifndef WEAPON_SDKBASE_H
- #define WEAPON_SDKBASE_H
- #ifdef _WIN32
- #pragma once
- #endif
- #include "sdk_playeranimstate.h"
- #include "sdk_weapon_parse.h"
- #if defined( CLIENT_DLL )
- #define CWeaponSDKBase C_WeaponSDKBase
- #endif
- class CSDKPlayer;
- // These are the names of the ammo types that the weapon script files reference.
- class CWeaponSDKBase : public CBaseCombatWeapon
- {
- public:
- DECLARE_CLASS( CWeaponSDKBase, CBaseCombatWeapon );
- DECLARE_NETWORKCLASS();
- DECLARE_PREDICTABLE();
- CWeaponSDKBase();
- #ifdef GAME_DLL
- DECLARE_DATADESC();
- #endif
- #ifdef CLIENT_DLL
- virtual bool ShouldPredict();
- #endif
- // All predicted weapons need to implement and return true
- virtual bool IsPredicted() const { return true; }
- virtual SDKWeaponID GetWeaponID( void ) const { return WEAPON_NONE; }
- // Get SDK weapon specific weapon data.
- CSDKWeaponInfo const &GetSDKWpnData() const;
- // Get a pointer to the player that owns this weapon
- CSDKPlayer* GetPlayerOwner() const;
- // override to play custom empty sounds
- virtual bool PlayEmptySound();
- //Tony; these five functions return the sequences the view model uses for a particular action. -- You can override any of these in a particular weapon if you want them to do
- //something different, ie: when a pistol is out of ammo, it would show a different sequence.
- virtual Activity GetPrimaryAttackActivity( void ) { return ACT_VM_PRIMARYATTACK; }
- virtual Activity GetIdleActivity( void ) { return ACT_VM_IDLE; }
- virtual Activity GetDeployActivity( void ) { return ACT_VM_DRAW; }
- virtual Activity GetReloadActivity( void ) { return ACT_VM_RELOAD; }
- virtual Activity GetHolsterActivity( void ) { return ACT_VM_HOLSTER; }
- virtual void WeaponIdle( void );
- virtual bool Reload( void );
- virtual bool Deploy();
- virtual bool Holster( CBaseCombatWeapon *pSwitchingTo );
- virtual void SendReloadEvents();
- //Tony; added so we can have base functionality without implementing it into every weapon.
- virtual void ItemPostFrame();
- virtual void PrimaryAttack();
- virtual void SecondaryAttack();
- //Tony; default weapon spread, pretty accurate - accuracy systems would need to modify this
- virtual float GetWeaponSpread() { return 0.01f; }
- //Tony; by default, all weapons are automatic.
- //If you add code to switch firemodes, this function would need to be overridden to return the correct current mode.
- virtual int GetFireMode() const { return FM_AUTOMATIC; }
- virtual float GetFireRate( void ) { return GetSDKWpnData().m_flCycleTime; };
- //Tony; by default, burst fire weapons use a max of 3 shots (3 - 1)
- //weapons with more, ie: a 5 round burst, can override and determine which firemode it's in.
- virtual int MaxBurstShots() const { return 2; }
- float GetWeaponFOV()
- {
- return GetSDKWpnData().m_flWeaponFOV;
- }
- #ifdef GAME_DLL
- void SetDieThink( bool bDie );
- void Die( void );
- void SetWeaponModelIndex( const char *pName )
- {
- m_iWorldModelIndex = modelinfo->GetModelIndex( pName );
- }
- #endif
- virtual bool CanWeaponBeDropped() const { return true; }
- private:
- CNetworkVar(float, m_flDecreaseShotsFired);
- CWeaponSDKBase( const CWeaponSDKBase & );
- };
- #endif // WEAPON_SDKBASE_H
Advertisement
Add Comment
Please, Sign In to add comment