diff options
Diffstat (limited to 'src/GameLoop.cpp')
-rw-r--r-- | src/GameLoop.cpp | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/src/GameLoop.cpp b/src/GameLoop.cpp index 7b7c617..1691157 100644 --- a/src/GameLoop.cpp +++ b/src/GameLoop.cpp @@ -201,29 +201,11 @@ void handleKey(Game* game, int key, int action, int mods) void eventLoop(Game* game) { auto start = glfwGetTime(); - GLfloat oldmult = multiplier; - int colaccuracy = min(game->sps, - game->sps / game->framespersecond + 1.0f); - multiplier /= colaccuracy; - for (int i = 0; i < (int) (colaccuracy + 0.5f); i++) - game->Tick(); - auto window = glfwGetCurrentContext(); - if (game->DrawGLScene()) - glfwSwapBuffers(window); - else - glfwSetWindowShouldClose(window, GLFW_TRUE); - multiplier = oldmult; - - do game->framespersecond = 1.0 / (glfwGetTime() - start); - while (game->framespersecond > game->maxfps); - - game->multiplier5 = game->multiplier4; - game->multiplier4 = game->multiplier3; - game->multiplier3 = game->multiplier2; - game->multiplier2 = 1 / game->framespersecond; - multiplier = (game->multiplier2 + game->multiplier3 - + game->multiplier4 + game->multiplier5) / 4.0f; - multiplier = min(max(multiplier, 0.00001f), 1.0f); + game->Tick(); + game->DrawGLScene(); + + do multiplier = glfwGetTime() - start; + while (multiplier < 1.0f / 69); if (visions == 1 && !game->mainmenu) multiplier /= 3; if (slomo) |