diff options
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r-- | src/core/gameserver.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc index 11a8b13..fb828e2 100644 --- a/src/core/gameserver.cc +++ b/src/core/gameserver.cc @@ -34,6 +34,7 @@ GameServer::GameServer() : GameInterface() server_instance = this; server_network = 0; server_time = 0; + server_previoustime = 0; server_frametime = 0.0f; server_maxplayerid = 1; @@ -278,7 +279,7 @@ void GameServer::frame(float seconds) // copy the previous entity state to the client state if (!Cvar::sv_dedicated->value()) { - reset_clientstate(server_time); + reset_clientstate(server_time, server_previoustime); } // run a time frame on each entity @@ -308,7 +309,7 @@ void GameServer::frame(float seconds) // start server frame std::ostringstream framehdr; framehdr.str(""); - framehdr << "frame " << server_time << "\n"; + framehdr << "frame " << server_time << " " << server_previoustime << "\n"; server_network->broadcast(framehdr.str()); std::map<unsigned int, Entity *>::iterator it; @@ -377,7 +378,12 @@ void GameServer::frame(float seconds) } } + if (!Cvar::sv_dedicated->value()) { + update_clientstate(0); + } + server_frametime = 0; + server_previoustime = server_time; } |