//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //===========================================================================// #ifndef WEAPON_IFMBASE_H #define WEAPON_IFMBASE_H #ifdef _WIN32 #pragma once #endif #if defined( CLIENT_DLL ) #define CWeaponIFMBase C_WeaponIFMBase #endif #if defined ( DOD_DLL ) #include "weapon_dodbase.h" #define CWeaponModBaseClass CWeaponDODBase #elif defined ( TF_CLIENT_DLL ) || defined ( TF_DLL ) #include "tf_weaponbase.h" #define CWeaponModBaseClass CTFWeaponBase #endif class CWeaponIFMBase : public CWeaponModBaseClass { public: DECLARE_CLASS( CWeaponIFMBase, CWeaponModBaseClass ); DECLARE_NETWORKCLASS(); DECLARE_PREDICTABLE(); CWeaponIFMBase(); #ifdef GAME_DLL DECLARE_DATADESC(); #endif // All predicted weapons need to implement and return true virtual bool IsPredicted() const; // virtual void FallInit( void ); public: #if defined( CLIENT_DLL ) virtual bool ShouldPredict(); virtual void OnDataChanged( DataUpdateType_t type ); #else virtual void Spawn(); // FIXME: How should this work? This is a hack to get things working virtual const unsigned char *GetEncryptionKey( void ) { return NULL; } #endif private: CWeaponIFMBase( const CWeaponIFMBase & ); }; #endif // WEAPON_IFMBASE_H