diff --git a/src/d_main.c b/src/d_main.c index fcff182a9816856e3622efa67fa2c40ce4a440e7..731710a9c6e377f2d58c838bdae289babe72d158 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -723,6 +723,7 @@ void D_SRB2Loop(void) boolean ticked; boolean interp; boolean doDisplay = false; + boolean frameCap = false; if (dedicated) server = true; @@ -803,11 +804,25 @@ void D_SRB2Loop(void) doDisplay = false; ticked = false; - if (!realtics && !singletics && !interp) + frameCap = false; + if (interp) { - // Non-interp sleep - I_Sleep(); - continue; + frameCap = D_CheckFrameCap(); + } + + if (!realtics && !singletics) + { + if (interp) + { + if (frameCap) + continue; + } + else + { + // Non-interp sleep + I_Sleep(); + continue; + } } #ifdef HW3SOUND @@ -869,7 +884,7 @@ void D_SRB2Loop(void) // TryRunTics needs ran if possible to prevent lagged map changes, // (and if that runs, the code above needs to also run) // so this is done here after TryRunTics. - if (D_CheckFrameCap()) + if (frameCap) { continue; }