From 6c7d57e1eb7c191fddad52588997396f150d3c4d Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sun, 12 Jun 2022 03:06:03 +0300 Subject: [PATCH] engine: client: move vgui deinitialization out of CL_UnloadProgs. Delete cls.initialized check in CL_Shutdown, that used to shutdown various client-side subsystems that usually have needed checks by themselves --- engine/client/cl_game.c | 1 - engine/client/cl_main.c | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/engine/client/cl_game.c b/engine/client/cl_game.c index 2b64bec0..66a0fc76 100644 --- a/engine/client/cl_game.c +++ b/engine/client/cl_game.c @@ -3914,7 +3914,6 @@ void CL_UnloadProgs( void ) Cvar_FullSet( "host_clientloaded", "0", FCVAR_READ_ONLY ); COM_FreeLibrary( clgame.hInstance ); - VGui_Shutdown(); Mem_FreePool( &cls.mempool ); Mem_FreePool( &clgame.mempool ); memset( &clgame, 0, sizeof( clgame )); diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index c5807555..518f4225 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -3089,10 +3089,6 @@ CL_Shutdown */ void CL_Shutdown( void ) { - // already freed - if( !cls.initialized ) return; - cls.initialized = false; - Con_Printf( "CL_Shutdown()\n" ); if( !host.crashed ) @@ -3109,6 +3105,9 @@ void CL_Shutdown( void ) Mobile_Shutdown (); SCR_Shutdown (); CL_UnloadProgs (); + cls.initialized = false; + + VGui_Shutdown(); FS_Delete( "demoheader.tmp" ); // remove tmp file SCR_FreeCinematic (); // release AVI's *after* client.dll because custom renderer may use them @@ -3116,4 +3115,5 @@ void CL_Shutdown( void ) R_Shutdown (); Con_Shutdown (); + }