diff -r de70433605a0 -r 4c77142eaf36 core/sourcemod.cpp --- a/core/sourcemod.cpp Wed Dec 13 11:19:46 2006 +0000 +++ b/core/sourcemod.cpp Fri Dec 15 13:38:04 2006 +0000 @@ -130,12 +130,17 @@ SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SourceModBase::LevelInit, false); /* If we're late, automatically load plugins now */ - DoGlobalPluginLoads(); + if (late) + { + m_IsLateLoadInMap = late; + DoGlobalPluginLoads(); + } } bool SourceModBase::LevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) { m_IsMapLoading = true; + m_IsLateLoadInMap = false; DoGlobalPluginLoads(); @@ -158,10 +163,23 @@ "%s/plugins", GetSMBaseDir()); - g_PluginMngr.RefreshOrLoadPlugins(config_path, plugins_path); + g_PluginSys.LoadAll_FirstPass(config_path, plugins_path); +} + +bool SourceModBase::IsLateLoadInMap() +{ + return m_IsLateLoadInMap; } const char *SourceModBase::GetSMBaseDir() { return m_SMBaseDir; } + +SMGlobalClass *SMGlobalClass::head = NULL; + +SMGlobalClass::SMGlobalClass() +{ + m_pGlobalClassNext = SMGlobalClass::head; + SMGlobalClass::head = this; +}