mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-17 22:11:58 +00:00
1
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef IMOVEHELPER_H
|
||||
#define IMOVEHELPER_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
enum PLAYER_ANIM;
|
||||
class IPhysicsSurfaceProps;
|
||||
class Vector;
|
||||
struct model_t;
|
||||
struct cmodel_t;
|
||||
struct vcollide_t;
|
||||
class CGameTrace;
|
||||
enum soundlevel_t;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Identifies how submerged in water a player is.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
enum
|
||||
{
|
||||
WL_NotInWater=0,
|
||||
WL_Feet,
|
||||
WL_Waist,
|
||||
WL_Eyes
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// An entity identifier that works in both game + client dlls
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
typedef CBaseHandle EntityHandle_t;
|
||||
|
||||
|
||||
#define INVALID_ENTITY_HANDLE INVALID_EHANDLE_INDEX
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Functions the engine provides to IGameMovement to assist in its movement.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
abstract_class IMoveHelper
|
||||
{
|
||||
public:
|
||||
// Call this to set the singleton
|
||||
static IMoveHelper* GetSingleton( ) { return sm_pSingleton; }
|
||||
|
||||
// Methods associated with a particular entity
|
||||
virtual char const* GetName( EntityHandle_t handle ) const = 0;
|
||||
|
||||
// Adds the trace result to touch list, if contact is not already in list.
|
||||
virtual void ResetTouchList( void ) = 0;
|
||||
virtual bool AddToTouched( const CGameTrace& tr, const Vector& impactvelocity ) = 0;
|
||||
virtual void ProcessImpacts( void ) = 0;
|
||||
|
||||
// Numbered line printf
|
||||
virtual void Con_NPrintf( int idx, PRINTF_FORMAT_STRING char const* fmt, ... ) = 0;
|
||||
|
||||
// These have separate server vs client impementations
|
||||
virtual void StartSound( const Vector& origin, int channel, char const* sample, float volume, soundlevel_t soundlevel, int fFlags, int pitch ) = 0;
|
||||
virtual void StartSound( const Vector& origin, const char *soundname ) = 0;
|
||||
virtual void PlaybackEventFull( int flags, int clientindex, unsigned short eventindex, float delay, Vector& origin, Vector& angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2 ) = 0;
|
||||
|
||||
// Apply falling damage to m_pHostPlayer based on m_pHostPlayer->m_flFallVelocity.
|
||||
virtual bool PlayerFallingDamage( void ) = 0;
|
||||
|
||||
// Apply falling damage to m_pHostPlayer based on m_pHostPlayer->m_flFallVelocity.
|
||||
virtual void PlayerSetAnimation( PLAYER_ANIM playerAnim ) = 0;
|
||||
|
||||
virtual IPhysicsSurfaceProps *GetSurfaceProps( void ) = 0;
|
||||
|
||||
virtual bool IsWorldEntity( const CBaseHandle &handle ) = 0;
|
||||
|
||||
protected:
|
||||
// Inherited classes can call this to set the singleton
|
||||
static void SetSingleton( IMoveHelper* pMoveHelper ) { sm_pSingleton = pMoveHelper; }
|
||||
|
||||
// Clients shouldn't call delete directly
|
||||
virtual ~IMoveHelper() {}
|
||||
|
||||
// The global instance
|
||||
static IMoveHelper* sm_pSingleton;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Add this to the CPP file that implements the IMoveHelper
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define IMPLEMENT_MOVEHELPER() \
|
||||
IMoveHelper* IMoveHelper::sm_pSingleton = 0
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Call this to set the singleton
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
inline IMoveHelper* MoveHelper( )
|
||||
{
|
||||
return IMoveHelper::GetSingleton();
|
||||
}
|
||||
|
||||
|
||||
#endif // IMOVEHELPER_H
|
||||
Reference in New Issue
Block a user