Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r--src/core/gameserver.cc10
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;
}