From 91d3a0352088611d3b78d3344b7a2bf2d4955a0a Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 6 May 2008 21:07:11 +0000 Subject: client-side frame interpolation: frames and timers --- src/core/gameinterface.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/core/gameinterface.h') diff --git a/src/core/gameinterface.h b/src/core/gameinterface.h index e38c061..2324bb5 100644 --- a/src/core/gameinterface.h +++ b/src/core/gameinterface.h @@ -27,6 +27,20 @@ public: /// return the local player inline Player *localplayer() { return &game_localplayer; } + /// return the server time of the last received server frame + inline float serverframetime() const { return game_serverframetime; } + + /// return the server time of the previous received server frame + inline float previousframetime() const { return game_serverframetime; } + + /// return the server time of the previous received server frame + inline float clientframetime() const { return game_clientframetime; } + + /// client frame time between previousframetime and serverframetime, from 0 - 1 + float timeoffset(); + + inline float timestep() const { return game_timestep; } + /*----- virtual inspectors --------------------------------------- */ /// returns true if the game server can run a time frime @@ -37,6 +51,12 @@ public: /// clear all game variables, game functions and entities void clear(); + /// reset the client state + void reset_clientstate(float servertime); + + /// update the client state timers + void update_clientstate(); + /*----- virtual mutators ------------------------------------------ */ /// run one game time frame @@ -46,6 +66,14 @@ public: protected: /// the local player static Player game_localplayer; + + float game_serverframetime; + float game_previousframetime; + + float game_timestep; + float game_clientframetime; + + unsigned int game_frames; }; /// global local player instance -- cgit v1.2.3