diff options
author | Stijn Buys <ingar@osirion.org> | 2008-05-06 21:07:11 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-05-06 21:07:11 +0000 |
commit | 91d3a0352088611d3b78d3344b7a2bf2d4955a0a (patch) | |
tree | 74c0a6adf15ae15aa144f66f20272c1fd58a7db3 /src/core/gameinterface.h | |
parent | 8fefc1d995083f0d4a9873f216ccc6e15688d0a9 (diff) |
client-side frame interpolation: frames and timers
Diffstat (limited to 'src/core/gameinterface.h')
-rw-r--r-- | src/core/gameinterface.h | 28 |
1 files changed, 28 insertions, 0 deletions
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 |