Browse Source

engine: common: do not probe server to collect cvars for game.cfg (CHECK THIS)

pull/2/head
Alibek Omarov 1 year ago
parent
commit
d8b261370a
  1. 2
      engine/common/common.h
  2. 8
      engine/common/con_utils.c
  3. 22
      engine/server/sv_init.c

2
engine/common/common.h

@ -747,8 +747,6 @@ void SV_ShutdownGame( void );
void SV_ExecLoadLevel( void ); void SV_ExecLoadLevel( void );
void SV_ExecLoadGame( void ); void SV_ExecLoadGame( void );
void SV_ExecChangeLevel( void ); void SV_ExecChangeLevel( void );
qboolean SV_InitGameProgs( void );
void SV_FreeGameProgs( void );
void CL_WriteMessageHistory( void ); void CL_WriteMessageHistory( void );
void CL_SendCmd( void ); void CL_SendCmd( void );
void CL_Disconnect( void ); void CL_Disconnect( void );

8
engine/common/con_utils.c

@ -1423,15 +1423,11 @@ save serverinfo variables into server.cfg (using for dedicated server too)
*/ */
void GAME_EXPORT Host_WriteServerConfig( const char *name ) void GAME_EXPORT Host_WriteServerConfig( const char *name )
{ {
qboolean already_loaded;
file_t *f; file_t *f;
string newconfigfile; string newconfigfile;
Q_snprintf( newconfigfile, MAX_STRING, "%s.new", name ); Q_snprintf( newconfigfile, MAX_STRING, "%s.new", name );
// TODO: remove this mechanism, make it safer for now
already_loaded = SV_InitGameProgs(); // collect user variables
// FIXME: move this out until menu parser is done // FIXME: move this out until menu parser is done
CSCR_LoadDefaultCVars( "settings.scr" ); CSCR_LoadDefaultCVars( "settings.scr" );
@ -1448,10 +1444,6 @@ void GAME_EXPORT Host_WriteServerConfig( const char *name )
Host_FinalizeConfig( f, name ); Host_FinalizeConfig( f, name );
} }
else Con_DPrintf( S_ERROR "Couldn't write %s.\n", name ); else Con_DPrintf( S_ERROR "Couldn't write %s.\n", name );
// don't unload library that wasn't loaded by us
if( !already_loaded )
SV_FreeGameProgs(); // release progs with all variables
} }
/* /*

22
engine/server/sv_init.c

@ -1115,28 +1115,6 @@ int SV_GetMaxClients( void )
return svs.maxclients; return svs.maxclients;
} }
qboolean SV_InitGameProgs( void )
{
string dllpath;
if( svgame.hInstance ) return true; // already loaded
COM_GetCommonLibraryPath( LIBRARY_SERVER, dllpath, sizeof( dllpath ));
// just try to initialize
SV_LoadProgs( dllpath );
return false;
}
void SV_FreeGameProgs( void )
{
if( svs.initialized ) return; // server is active
// unload progs (free cvars and commands)
SV_UnloadProgs();
}
/* /*
================ ================
SV_ExecLoadLevel SV_ExecLoadLevel

Loading…
Cancel
Save