47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
|
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
|||
|
//
|
|||
|
// Purpose:
|
|||
|
//
|
|||
|
// $NoKeywords: $
|
|||
|
//=============================================================================//
|
|||
|
|
|||
|
#ifndef ILAGCOMPENSATIONMANAGER_H
|
|||
|
#define ILAGCOMPENSATIONMANAGER_H
|
|||
|
#ifdef _WIN32
|
|||
|
#pragma once
|
|||
|
#endif
|
|||
|
|
|||
|
class CBasePlayer;
|
|||
|
class CUserCmd;
|
|||
|
|
|||
|
enum LagCompensationType
|
|||
|
{
|
|||
|
LAG_COMPENSATE_BOUNDS,
|
|||
|
LAG_COMPENSATE_HITBOXES,
|
|||
|
LAG_COMPENSATE_HITBOXES_ALONG_RAY,
|
|||
|
};
|
|||
|
|
|||
|
//-----------------------------------------------------------------------------
|
|||
|
// Purpose: This is also an IServerSystem
|
|||
|
//-----------------------------------------------------------------------------
|
|||
|
abstract_class ILagCompensationManager
|
|||
|
{
|
|||
|
public:
|
|||
|
// Called during player movement to set up/restore after lag compensation
|
|||
|
virtual void StartLagCompensation(
|
|||
|
CBasePlayer *player,
|
|||
|
LagCompensationType lagCompensationType,
|
|||
|
const Vector& weaponPos = vec3_origin,
|
|||
|
const QAngle &weaponAngles = vec3_angle,
|
|||
|
float weaponRange = 0.0f ) = 0;
|
|||
|
virtual void FinishLagCompensation( CBasePlayer *player ) = 0;
|
|||
|
|
|||
|
// Mappers can flag certain additional entities to lag compensate, this handles them
|
|||
|
virtual void AddAdditionalEntity( CBaseEntity *pEntity ) = 0;
|
|||
|
virtual void RemoveAdditionalEntity( CBaseEntity *pEntity ) = 0;
|
|||
|
};
|
|||
|
|
|||
|
extern ILagCompensationManager *lagcompensation;
|
|||
|
|
|||
|
#endif // ILAGCOMPENSATIONMANAGER_H
|