diff --git a/src/d_main.c b/src/d_main.c index 59ff075d..18ef7864 100644 --- a/src/d_main.c +++ b/src/d_main.c @@ -2442,7 +2442,7 @@ void D_DoomMain(void) R_UpdateViewAngleFunction(); WS_Init(); - MN_ResetTimeScale(); + G_SetTimeScale(); I_Printf(VB_INFO, "S_Init: Setting up sound."); S_Init(snd_SfxVolume /* *8 */, snd_MusicVolume /* *8*/ ); diff --git a/src/g_game.c b/src/g_game.c index d389b009..8f619bea 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -423,6 +423,41 @@ static void G_DemoSkipTics(void) } } +void G_SetTimeScale(void) +{ + if (strictmode || D_CheckNetConnect()) + { + I_SetTimeScale(100); + return; + } + + int time_scale = realtic_clock_rate; + + //! + // @arg + // @category game + // + // Increase or decrease game speed, percentage of normal. + // + + int p = M_CheckParmWithArgs("-speed", 1); + + if (p) + { + time_scale = M_ParmArgToInt(p); + if (time_scale < 10 || time_scale > 1000) + { + I_Error( + "Invalid parameter '%d' for -speed, valid values are 10-1000.", + time_scale); + } + } + + I_SetTimeScale(time_scale); + + setrefreshneeded = true; +} + static void ClearLocalView(void) { memset(&localview, 0, sizeof(localview)); diff --git a/src/g_game.h b/src/g_game.h index af24ce67..55d02151 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -78,6 +78,7 @@ void G_DoVictory(void); int G_ValidateMapName(const char *mapname, int *pEpi, int *pMap); void G_EnableWarp(boolean warp); +void G_SetTimeScale(void); demo_version_t G_GetNamedComplevel(const char *arg); const char *G_GetCurrentComplevelName(void); diff --git a/src/mn_menu.c b/src/mn_menu.c index 275e2f30..e2f80791 100644 --- a/src/mn_menu.c +++ b/src/mn_menu.c @@ -2439,7 +2439,7 @@ boolean M_ShortcutResponder(const event_t *ev) realtic_clock_rate += 10; realtic_clock_rate = BETWEEN(10, 1000, realtic_clock_rate); displaymsg("Game Speed: %d", realtic_clock_rate); - I_SetTimeScale(realtic_clock_rate); + G_SetTimeScale(); setrefreshneeded = true; } @@ -2449,7 +2449,7 @@ boolean M_ShortcutResponder(const event_t *ev) realtic_clock_rate -= 10; realtic_clock_rate = BETWEEN(10, 1000, realtic_clock_rate); displaymsg("Game Speed: %d", realtic_clock_rate); - I_SetTimeScale(realtic_clock_rate); + G_SetTimeScale(); setrefreshneeded = true; } @@ -2458,7 +2458,7 @@ boolean M_ShortcutResponder(const event_t *ev) { realtic_clock_rate = 100; displaymsg("Game Speed: %d", realtic_clock_rate); - I_SetTimeScale(realtic_clock_rate); + G_SetTimeScale(); setrefreshneeded = true; } diff --git a/src/mn_menu.h b/src/mn_menu.h index 7fefaf60..11bf2409 100644 --- a/src/mn_menu.h +++ b/src/mn_menu.h @@ -67,7 +67,6 @@ void MN_UpdatePadLook(void); void MN_UpdateAllGamepadItems(void); void MN_UpdateEqualizerItems(void); void MN_UpdateAdvancedSoundItems(boolean toggle); -void MN_ResetTimeScale(void); void MN_SetHUFontKerning(void); void MN_DisableVoxelsRenderingItem(void); void MN_UpdateDynamicResolutionItem(void); diff --git a/src/mn_setup.c b/src/mn_setup.c index d12301dc..eece5e77 100644 --- a/src/mn_setup.c +++ b/src/mn_setup.c @@ -3290,41 +3290,6 @@ static const char *screen_melt_strings[] = {"Off", "Melt", "Crossfade", "Fizzle" static const char *invul_mode_strings[] = {"Vanilla", "MBF", "Gray"}; -void MN_ResetTimeScale(void) -{ - if (strictmode || D_CheckNetConnect()) - { - I_SetTimeScale(100); - return; - } - - int time_scale = realtic_clock_rate; - - //! - // @arg - // @category game - // - // Increase or decrease game speed, percentage of normal. - // - - int p = M_CheckParmWithArgs("-speed", 1); - - if (p) - { - time_scale = M_ParmArgToInt(p); - if (time_scale < 10 || time_scale > 1000) - { - I_Error( - "Invalid parameter '%d' for -speed, valid values are 10-1000.", - time_scale); - } - } - - I_SetTimeScale(time_scale); - - setrefreshneeded = true; -} - static setup_menu_t gen_settings6[] = { {"Quality of life", S_SKIP | S_TITLE, OFF_CNTR_X, M_SPC}, @@ -3354,7 +3319,7 @@ static setup_menu_t gen_settings6[] = { {"Miscellaneous", S_SKIP | S_TITLE, OFF_CNTR_X, M_SPC}, {"Game speed", S_NUM | S_STRICT | S_PCT, OFF_CNTR_X, M_SPC, - {"realtic_clock_rate"}, .action = MN_ResetTimeScale}, + {"realtic_clock_rate"}, .action = G_SetTimeScale}, {"Default Skill", S_CHOICE | S_LEVWARN, OFF_CNTR_X, M_SPC, {"default_skill"}, .strings_id = str_default_skill},