mirror of
https://github.com/YGGverse/xash3d-fwgs.git
synced 2025-01-24 13:54:15 +00:00
engine: don't release DLL that wasn't loaded during settings.scr parsing. This should be deleted as soon as possible!
This commit is contained in:
parent
bf03f739bb
commit
aee99f6094
@ -747,7 +747,7 @@ void SV_ShutdownGame( void );
|
||||
void SV_ExecLoadLevel( void );
|
||||
void SV_ExecLoadGame( void );
|
||||
void SV_ExecChangeLevel( void );
|
||||
void SV_InitGameProgs( void );
|
||||
qboolean SV_InitGameProgs( void );
|
||||
void SV_FreeGameProgs( void );
|
||||
void CL_WriteMessageHistory( void );
|
||||
void CL_SendCmd( void );
|
||||
|
@ -1423,12 +1423,14 @@ save serverinfo variables into server.cfg (using for dedicated server too)
|
||||
*/
|
||||
void GAME_EXPORT Host_WriteServerConfig( const char *name )
|
||||
{
|
||||
qboolean already_loaded;
|
||||
file_t *f;
|
||||
string newconfigfile;
|
||||
|
||||
Q_snprintf( newconfigfile, MAX_STRING, "%s.new", name );
|
||||
|
||||
SV_InitGameProgs(); // collect user variables
|
||||
// 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
|
||||
CSCR_LoadDefaultCVars( "settings.scr" );
|
||||
@ -1447,7 +1449,9 @@ void GAME_EXPORT Host_WriteServerConfig( const char *name )
|
||||
}
|
||||
else Con_DPrintf( S_ERROR "Couldn't write %s.\n", name );
|
||||
|
||||
SV_FreeGameProgs(); // release progs with all variables
|
||||
// don't unload library that wasn't loaded by us
|
||||
if( already_loaded )
|
||||
SV_FreeGameProgs(); // release progs with all variables
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1115,16 +1115,18 @@ int SV_GetMaxClients( void )
|
||||
return svs.maxclients;
|
||||
}
|
||||
|
||||
void SV_InitGameProgs( void )
|
||||
qboolean SV_InitGameProgs( void )
|
||||
{
|
||||
string dllpath;
|
||||
|
||||
if( svgame.hInstance ) return; // already loaded
|
||||
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 )
|
||||
|
Loading…
x
Reference in New Issue
Block a user