From d9a245dcb55c082e75117362878e25d7ba2b7ef5 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 1 Dec 2022 02:44:01 +0300 Subject: [PATCH] engine: reset cheat cvars on remote games --- engine/client/cl_main.c | 3 +++ engine/server/server.h | 1 + engine/server/sv_init.c | 3 +++ 3 files changed, 7 insertions(+) diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index 6f3da3bd..ee7aad5b 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -1051,6 +1051,9 @@ void CL_SendConnectPacket( void ) input_devices = IN_CollectInputDevices(); IN_LockInputDevices( true ); + Cvar_SetCheatState(); + Cvar_FullSet( "sv_cheats", "0", FCVAR_READ_ONLY | FCVAR_SERVER ); + Info_SetValueForKey( protinfo, "d", va( "%d", input_devices ), sizeof( protinfo ) ); Info_SetValueForKey( protinfo, "v", XASH_VERSION, sizeof( protinfo ) ); Info_SetValueForKey( protinfo, "b", va( "%d", Q_buildnum() ), sizeof( protinfo ) ); diff --git a/engine/server/server.h b/engine/server/server.h index 6bb28da8..47bf848a 100644 --- a/engine/server/server.h +++ b/engine/server/server.h @@ -441,6 +441,7 @@ extern convar_t deathmatch; extern convar_t hostname; extern convar_t skill; extern convar_t coop; +extern convar_t sv_cheats; extern convar_t *sv_pausable; // allows pause in multiplayer extern convar_t *sv_check_errors; diff --git a/engine/server/sv_init.c b/engine/server/sv_init.c index ab32ad44..ac85534e 100644 --- a/engine/server/sv_init.c +++ b/engine/server/sv_init.c @@ -877,6 +877,9 @@ qboolean SV_SpawnServer( const char *mapname, const char *startspot, qboolean ba if( !SV_InitGame( )) return false; + // unlock sv_cheats in local game + ClearBits( sv_cheats.flags, FCVAR_READ_ONLY ); + svs.initialized = true; Log_Open(); Log_Printf( "Loading map \"%s\"\n", mapname );