Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-05-06 21:07:11 +0000
committerStijn Buys <ingar@osirion.org>2008-05-06 21:07:11 +0000
commit91d3a0352088611d3b78d3344b7a2bf2d4955a0a (patch)
tree74c0a6adf15ae15aa144f66f20272c1fd58a7db3 /src/core/gameinterface.h
parent8fefc1d995083f0d4a9873f216ccc6e15688d0a9 (diff)
client-side frame interpolation: frames and timers
Diffstat (limited to 'src/core/gameinterface.h')
-rw-r--r--src/core/gameinterface.h28
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