From f39edc5eaac544425e63c8b0aae92cbe2db7773b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20Alh=C3=A4ll?= <gustaf@hanicef.me> Date: Fri, 28 Mar 2025 23:53:23 +0100 Subject: [PATCH] Add cvar for toggling preticker --- src/netcode/d_netcmd.c | 3 +++ src/netcode/d_netcmd.h | 2 ++ src/p_setup.c | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/netcode/d_netcmd.c b/src/netcode/d_netcmd.c index 85b1236110..924d873e66 100644 --- a/src/netcode/d_netcmd.c +++ b/src/netcode/d_netcmd.c @@ -399,6 +399,8 @@ consvar_t cv_freedemocamera = CVAR_INIT("freedemocamera", "Off", NULL, CV_SAVE, // NOTE: this should be in hw_main.c, but we can't put it there as it breaks dedicated build consvar_t cv_glallowshaders = CVAR_INIT ("gr_allowcustomshaders", "On", "If on, clients are allowed to use custom OpenGL shaders", CV_NETVAR, CV_OnOff, NULL); +consvar_t cv_preticker = CVAR_INIT ("preticker", "On", "If P_Ticker should be invoked twice before map starts, disabling improves load times and fixes map change bugs but can break some addons", CV_NETVAR, CV_OnOff, NULL); + char timedemo_name[256]; boolean timedemo_csv; char timedemo_csv_id[256]; @@ -642,6 +644,7 @@ void D_RegisterServerCommands(void) CV_RegisterVar(&cv_chatspamprotection); CV_RegisterVar(&cv_chatspamspeed); CV_RegisterVar(&cv_chatspamburst); + CV_RegisterVar(&cv_preticker); } // ========================================================================= diff --git a/src/netcode/d_netcmd.h b/src/netcode/d_netcmd.h index c11575575f..9d995fd255 100644 --- a/src/netcode/d_netcmd.h +++ b/src/netcode/d_netcmd.h @@ -116,6 +116,8 @@ extern consvar_t cv_perfstats; extern consvar_t cv_ps_samplesize; extern consvar_t cv_ps_descriptor; +extern consvar_t cv_preticker; + extern char timedemo_name[256]; extern boolean timedemo_csv; extern char timedemo_csv_id[256]; diff --git a/src/p_setup.c b/src/p_setup.c index d8e4e5d67c..ecc319e259 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -8152,7 +8152,8 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate) if (playeringame[i]) G_CopyTiccmd(&players[i].cmd, &netcmds[buf][i], 1); } - P_PreTicker(2); + if (cv_preticker.value) + P_PreTicker(2); P_MapStart(); // just in case MapLoad modifies tmthing LUA_HookInt(gamemap, HOOK(MapLoad)); P_MapEnd(); // just in case MapLoad modifies tmthing -- GitLab