diff options
Diffstat (limited to 'mp/src/public/iprediction.h')
| -rw-r--r-- | mp/src/public/iprediction.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/mp/src/public/iprediction.h b/mp/src/public/iprediction.h new file mode 100644 index 00000000..13d78111 --- /dev/null +++ b/mp/src/public/iprediction.h @@ -0,0 +1,67 @@ +//========= 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
|