This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

58 lines
1.3 KiB
C++

//========= 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