From 92aa38bdfc36fd7599a8e85722825381c89f0f9c Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 6 Jan 2014 17:37:23 +0200 Subject: Actually pause singleplayer game in pause menu and use lower maximum FPS in it --- src/game.cpp | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'src/game.cpp') diff --git a/src/game.cpp b/src/game.cpp index c768440d3..b751a2b62 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1513,7 +1513,9 @@ void the_game( */ { - float fps_max = g_settings->getFloat("fps_max"); + float fps_max = g_menumgr.pausesGame() ? + g_settings->getFloat("pause_fps_max") : + g_settings->getFloat("fps_max"); u32 frametime_min = 1000./fps_max; if(busytime_u32 < frametime_min) @@ -2192,25 +2194,28 @@ void the_game( LocalPlayer* player = client.getEnv().getLocalPlayer(); player->keyPressed=keyPressed; } - + /* - Run server + Run server, client (and process environments) */ - - if(server != NULL) + bool can_be_and_is_paused = + (simple_singleplayer_mode && g_menumgr.pausesGame()); + if(can_be_and_is_paused) { - //TimeTaker timer("server->step(dtime)"); - server->step(dtime); + // No time passes + dtime = 0; } - - /* - Process environment - */ - + else { - //TimeTaker timer("client.step(dtime)"); - client.step(dtime); - //client.step(dtime_avg1); + if(server != NULL) + { + //TimeTaker timer("server->step(dtime)"); + server->step(dtime); + } + { + //TimeTaker timer("client.step(dtime)"); + client.step(dtime); + } } { -- cgit v1.2.3