diff options
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 35 |
1 files changed, 20 insertions, 15 deletions
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); + } } { |