diff --git a/similar/arch/sdl/timer.cpp b/similar/arch/sdl/timer.cpp index d2e739b3b..622bdeb99 100644 --- a/similar/arch/sdl/timer.cpp +++ b/similar/arch/sdl/timer.cpp @@ -55,7 +55,8 @@ void timer_delay2(int fps) while (FrameLoop < 1000u/(GameCfg.VSync?MAXIMUM_FPS:fps)) { u_int32_t tv_now = SDL_GetTicks(); - multi_do_frame(); // during long wait, keep packets flowing + if (Game_mode & GM_MULTI) + multi_do_frame(); // during long wait, keep packets flowing if (FrameStart > tv_now) FrameStart = tv_now; if (!GameCfg.VSync) diff --git a/similar/main/automap.cpp b/similar/main/automap.cpp index 5ebe2c4a9..e988debeb 100644 --- a/similar/main/automap.cpp +++ b/similar/main/automap.cpp @@ -611,7 +611,8 @@ static void draw_automap(automap *am) am->t2 = timer_query(); while (am->t2 - am->t1 < F1_0 / (GameCfg.VSync?MAXIMUM_FPS:GameArg.SysMaxFPS)) // ogl is fast enough that the automap can read the input too fast and you start to turn really slow. So delay a bit (and free up some cpu :) { - multi_do_frame(); // during long wait, keep packets flowing + if (Game_mode & GM_MULTI) + multi_do_frame(); // during long wait, keep packets flowing if (!GameArg.SysNoNiceFPS && !GameCfg.VSync) timer_delay(F1_0>>8); timer_update(); diff --git a/similar/main/game.cpp b/similar/main/game.cpp index 1d067def3..f1acb369b 100644 --- a/similar/main/game.cpp +++ b/similar/main/game.cpp @@ -404,7 +404,8 @@ void calc_frame_time() while (FrameTime < f1_0 / (GameCfg.VSync?MAXIMUM_FPS:GameArg.SysMaxFPS)) { - multi_do_frame(); // during long wait, keep packets flowing + if (Game_mode & GM_MULTI) + multi_do_frame(); // during long wait, keep packets flowing if (!GameArg.SysNoNiceFPS && !GameCfg.VSync) timer_delay(F1_0>>8); timer_update();