1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-26 19:54:14 +01:00

fixed a few implementation details

--HG--
branch : sourcemm-1.4.3
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40587
This commit is contained in:
David Anderson 2007-11-29 00:35:24 +00:00
parent 41d6c2c37e
commit b8a88dbdb2
3 changed files with 17 additions and 8 deletions

View File

@ -575,16 +575,19 @@ void ClearGamedllList()
gamedll_list.clear();
}
void UnloadMetamod()
void UnloadMetamod(bool shutting_down)
{
/* Unload plugins */
g_PluginMngr.UnloadAll();
/* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */
g_SMConVarAccessor.MarkCommandsAsGameDLL();
g_SMConVarAccessor.UnregisterGameDLLCommands();
if (shutting_down)
{
/* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */
g_SMConVarAccessor.MarkCommandsAsGameDLL();
g_SMConVarAccessor.UnregisterGameDLLCommands();
SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)();
SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)();
}
SH_RELEASE_CALLCLASS(g_GameDllPatch);
g_GameDllPatch = NULL;
@ -600,7 +603,7 @@ void UnloadMetamod()
void DLLShutdown_handler()
{
UnloadMetamod();
UnloadMetamod(true);
RETURN_META(MRES_SUPERCEDE);
}

View File

@ -118,7 +118,7 @@ extern int g_GameDllVersion;
extern bool bGameInit;
void UnloadMetamod();
void UnloadMetamod(bool shutting_down);
/** @brief Global CallClass for IServerGameDLL */
extern SourceHook::CallClass<IServerGameDLL> *g_GameDllPatch;

View File

@ -93,7 +93,13 @@ void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int client
void VSPListener::Unload()
{
UnloadMetamod();
if (IsRootLoadMethod())
{
UnloadMetamod(false);
}
m_Loadable = true;
m_Loaded = false;
m_bIsRootLoadMethod = false;
}
void VSPListener::SetLoadable(bool set)