X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fserver%2FServerState.cpp;h=bb6a8a9d02f6644a73b24ccfc664cb967ac608c9;hb=e2355b50a0d31f675e16593299256334c2baa2c4;hp=0bec3918c0345bc0e3e836157d3d148ba0ddcac2;hpb=9c5308ba4108bd842af6d9d2e893ea575a7e6ca8;p=blank.git diff --git a/src/server/ServerState.cpp b/src/server/ServerState.cpp index 0bec391..bb6a8a9 100644 --- a/src/server/ServerState.cpp +++ b/src/server/ServerState.cpp @@ -58,6 +58,15 @@ void ServerState::Handle(const SDL_Event &event) { void ServerState::Update(int dt) { loop_timer.Update(dt); + if (!loop_timer.HitOnce() && loop_timer.IntervalRemain() > 1) { + server.Wait(loop_timer.IntervalRemain() - 1); + return; + } + if (dt == 0 && !server.Ready()) { + // effectively wait in a spin loop + return; + } + server.Handle(); int world_dt = 0; while (loop_timer.HitOnce()) { @@ -70,6 +79,9 @@ void ServerState::Update(int dt) { if (world_dt > 0) { server.Update(world_dt); } + if (world_dt > 32) { + std::cout << "world dt at " << world_dt << "ms!" << std::endl; + } }