You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.2 KiB
67 lines
2.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $Workfile: $ |
|
// $Date: $ |
|
// |
|
//----------------------------------------------------------------------------- |
|
// $Log: $ |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
#if !defined( IPREDICTION_H ) |
|
#define IPREDICTION_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#include "interface.h" |
|
#include "mathlib/vector.h" // Solely to get at define for QAngle |
|
|
|
|
|
class IMoveHelper; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Engine interface into client side prediction system |
|
//----------------------------------------------------------------------------- |
|
abstract_class IPrediction |
|
{ |
|
public: |
|
virtual ~IPrediction( void ) {}; |
|
|
|
virtual void Init( void ) = 0; |
|
virtual void Shutdown( void ) = 0; |
|
|
|
// Run prediction |
|
virtual void Update |
|
( |
|
int startframe, // World update ( un-modded ) most recently received |
|
bool validframe, // Is frame data valid |
|
int incoming_acknowledged, // Last command acknowledged to have been run by server (un-modded) |
|
int outgoing_command // Last command (most recent) sent to server (un-modded) |
|
) = 0; |
|
|
|
// We are about to get a network update from the server. We know the update #, so we can pull any |
|
// data purely predicted on the client side and transfer it to the new from data state. |
|
virtual void PreEntityPacketReceived( int commands_acknowledged, int current_world_update_packet ) = 0; |
|
virtual void PostEntityPacketReceived( void ) = 0; |
|
virtual void PostNetworkDataReceived( int commands_acknowledged ) = 0; |
|
|
|
virtual void OnReceivedUncompressedPacket( void ) = 0; |
|
|
|
// The engine needs to be able to access a few predicted values |
|
virtual void GetViewOrigin( Vector& org ) = 0; |
|
virtual void SetViewOrigin( Vector& org ) = 0; |
|
virtual void GetViewAngles( QAngle& ang ) = 0; |
|
virtual void SetViewAngles( QAngle& ang ) = 0; |
|
virtual void GetLocalViewAngles( QAngle& ang ) = 0; |
|
virtual void SetLocalViewAngles( QAngle& ang ) = 0; |
|
}; |
|
|
|
extern IPrediction *g_pClientSidePrediction; |
|
|
|
#define VCLIENT_PREDICTION_INTERFACE_VERSION "VClientPrediction001" |
|
|
|
#endif // IPREDICTION_H
|
|
|