summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2014-01-06 17:37:23 +0200
committerPerttu Ahola <celeron55@gmail.com>2014-01-06 17:39:44 +0200
commit92aa38bdfc36fd7599a8e85722825381c89f0f9c (patch)
tree17a520f832c692afdf04e68acc3b03a0f62d9712 /src/game.cpp
parent6833e04bc55156025267c39a58a29007318129fa (diff)
downloadminetest-92aa38bdfc36fd7599a8e85722825381c89f0f9c.tar.gz
minetest-92aa38bdfc36fd7599a8e85722825381c89f0f9c.tar.bz2
minetest-92aa38bdfc36fd7599a8e85722825381c89f0f9c.zip
Actually pause singleplayer game in pause menu and use lower maximum FPS in it
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp35
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);
+ }
}
{