135 lines
4.5 KiB
C
135 lines
4.5 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
//===========================================================================//
|
||
|
#ifndef ENGINECALLBACK_H
|
||
|
#define ENGINECALLBACK_H
|
||
|
|
||
|
#ifndef EIFACE_H
|
||
|
#include "eiface.h"
|
||
|
#endif
|
||
|
|
||
|
class IFileSystem; // include filesystem.h
|
||
|
class IEngineSound; // include engine/IEngineSound.h
|
||
|
class IVEngineServer;
|
||
|
class IVoiceServer;
|
||
|
class IStaticPropMgrServer;
|
||
|
class ISpatialPartition;
|
||
|
class IVModelInfo;
|
||
|
class IEngineTrace;
|
||
|
class IGameEventManager2;
|
||
|
class IVDebugOverlay;
|
||
|
class IDataCache;
|
||
|
class IMDLCache;
|
||
|
class IServerEngineTools;
|
||
|
class IXboxSystem;
|
||
|
class CSteamAPIContext;
|
||
|
class CSteamGameServerAPIContext;
|
||
|
|
||
|
extern IVEngineServer *engine;
|
||
|
extern IVoiceServer *g_pVoiceServer;
|
||
|
extern IFileSystem *filesystem;
|
||
|
extern IStaticPropMgrServer *staticpropmgr;
|
||
|
extern ISpatialPartition *partition;
|
||
|
extern IEngineSound *enginesound;
|
||
|
extern IVModelInfo *modelinfo;
|
||
|
extern IEngineTrace *enginetrace;
|
||
|
extern IGameEventManager2 *gameeventmanager;
|
||
|
extern IVDebugOverlay *debugoverlay;
|
||
|
extern IDataCache *datacache;
|
||
|
extern IMDLCache *mdlcache;
|
||
|
extern IServerEngineTools *serverenginetools;
|
||
|
extern IXboxSystem *xboxsystem; // 360 only
|
||
|
extern CSteamAPIContext *steamapicontext; // available on game clients
|
||
|
extern CSteamGameServerAPIContext *steamgameserverapicontext; //available on game servers
|
||
|
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Precaches a material
|
||
|
//-----------------------------------------------------------------------------
|
||
|
void PrecacheMaterial( const char *pMaterialName );
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Converts a previously precached material into an index
|
||
|
//-----------------------------------------------------------------------------
|
||
|
int GetMaterialIndex( const char *pMaterialName );
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Converts a previously precached material index into a string
|
||
|
//-----------------------------------------------------------------------------
|
||
|
const char *GetMaterialNameFromIndex( int nMaterialIndex );
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Precache-related methods for particle systems
|
||
|
//-----------------------------------------------------------------------------
|
||
|
void PrecacheParticleSystem( const char *pParticleSystemName );
|
||
|
int GetParticleSystemIndex( const char *pParticleSystemName );
|
||
|
const char *GetParticleSystemNameFromIndex( int nIndex );
|
||
|
|
||
|
|
||
|
class IRecipientFilter;
|
||
|
void EntityMessageBegin( CBaseEntity * entity, bool reliable = false );
|
||
|
void UserMessageBegin( IRecipientFilter& filter, const char *messagename );
|
||
|
void MessageEnd( void );
|
||
|
|
||
|
// bytewise
|
||
|
void MessageWriteByte( int iValue);
|
||
|
void MessageWriteChar( int iValue);
|
||
|
void MessageWriteShort( int iValue);
|
||
|
void MessageWriteWord( int iValue );
|
||
|
void MessageWriteLong( int iValue);
|
||
|
void MessageWriteFloat( float flValue);
|
||
|
void MessageWriteAngle( float flValue);
|
||
|
void MessageWriteCoord( float flValue);
|
||
|
void MessageWriteVec3Coord( const Vector& rgflValue);
|
||
|
void MessageWriteVec3Normal( const Vector& rgflValue);
|
||
|
void MessageWriteAngles( const QAngle& rgflValue);
|
||
|
void MessageWriteString( const char *sz );
|
||
|
void MessageWriteEntity( int iValue);
|
||
|
void MessageWriteEHandle( CBaseEntity *pEntity ); //encoded as a long
|
||
|
|
||
|
|
||
|
// bitwise
|
||
|
void MessageWriteBool( bool bValue );
|
||
|
void MessageWriteUBitLong( unsigned int data, int numbits );
|
||
|
void MessageWriteSBitLong( int data, int numbits );
|
||
|
void MessageWriteBits( const void *pIn, int nBits );
|
||
|
|
||
|
#ifndef NO_STEAM
|
||
|
|
||
|
/// Returns Steam ID, given player index. Returns an invalid SteamID upon
|
||
|
/// failure
|
||
|
extern CSteamID GetSteamIDForPlayerIndex( int iPlayerIndex );
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// Bytewise
|
||
|
#define WRITE_BYTE (MessageWriteByte)
|
||
|
#define WRITE_CHAR (MessageWriteChar)
|
||
|
#define WRITE_SHORT (MessageWriteShort)
|
||
|
#define WRITE_WORD (MessageWriteWord)
|
||
|
#define WRITE_LONG (MessageWriteLong)
|
||
|
#define WRITE_FLOAT (MessageWriteFloat)
|
||
|
#define WRITE_ANGLE (MessageWriteAngle)
|
||
|
#define WRITE_COORD (MessageWriteCoord)
|
||
|
#define WRITE_VEC3COORD (MessageWriteVec3Coord)
|
||
|
#define WRITE_VEC3NORMAL (MessageWriteVec3Normal)
|
||
|
#define WRITE_ANGLES (MessageWriteAngles)
|
||
|
#define WRITE_STRING (MessageWriteString)
|
||
|
#define WRITE_ENTITY (MessageWriteEntity)
|
||
|
#define WRITE_EHANDLE (MessageWriteEHandle)
|
||
|
|
||
|
// Bitwise
|
||
|
#define WRITE_BOOL (MessageWriteBool)
|
||
|
#define WRITE_UBITLONG (MessageWriteUBitLong)
|
||
|
#define WRITE_SBITLONG (MessageWriteSBitLong)
|
||
|
#define WRITE_BITS (MessageWriteBits)
|
||
|
|
||
|
#endif //ENGINECALLBACK_H
|