diff options
Diffstat (limited to 'game/shared/sdk/weapon_sdkbase.h')
| -rw-r--r-- | game/shared/sdk/weapon_sdkbase.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/game/shared/sdk/weapon_sdkbase.h b/game/shared/sdk/weapon_sdkbase.h new file mode 100644 index 0000000..b91ff88 --- /dev/null +++ b/game/shared/sdk/weapon_sdkbase.h @@ -0,0 +1,85 @@ +//========= Copyright 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. +#define AMMO_BULLETS "AMMO_BULLETS" +#define AMMO_ROCKETS "AMMO_ROCKETS" +#define AMMO_GRENADE "AMMO_GRENADE" + +//-------------------------------------------------------------------------------------------------------- +// +// Weapon IDs for all SDK Game weapons +// +typedef enum +{ + WEAPON_NONE = 0, + + WEAPON_MP5, + WEAPON_SHOTGUN, + WEAPON_GRENADE, + + WEAPON_MAX, // number of weapons weapon index +} SDKWeaponID; + +typedef enum +{ + Primary_Mode = 0, + Secondary_Mode, +} SDKWeaponMode; + +const char *WeaponIDToAlias( int id ); + +class CWeaponSDKBase : public CBaseCombatWeapon +{ +public: + DECLARE_CLASS( CWeaponSDKBase, CBaseCombatWeapon ); + DECLARE_NETWORKCLASS(); + DECLARE_PREDICTABLE(); + + CWeaponSDKBase(); + + #ifdef GAME_DLL + DECLARE_DATADESC(); + #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(); + +#ifdef GAME_DLL + virtual void SendReloadEvents(); +#endif + +private: + CWeaponSDKBase( const CWeaponSDKBase & ); +}; + + +#endif // WEAPON_SDKBASE_H |