added
amb567, new OnAllPluginsLoaded forward
1.1 --- a/core/sourcemod.cpp Tue Jul 31 18:56:55 2007 +0000
1.2 +++ b/core/sourcemod.cpp Tue Jul 31 22:34:52 2007 +0000
1.3 @@ -510,6 +510,9 @@
1.4
1.5 /* Re-mark any extensions as loaded */
1.6 g_Extensions.MarkAllLoaded();
1.7 +
1.8 + /* Call OnAllPluginsLoaded */
1.9 + g_PluginSys.AllPluginsLoaded();
1.10 }
1.11
1.12 size_t SourceModBase::BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...)
2.1 --- a/core/systems/PluginSys.cpp Tue Jul 31 18:56:55 2007 +0000
2.2 +++ b/core/systems/PluginSys.cpp Tue Jul 31 22:34:52 2007 +0000
2.3 @@ -340,6 +340,23 @@
2.4 pFunction->Execute(&result);
2.5 }
2.6
2.7 +void CPlugin::Call_OnAllPluginsLoaded()
2.8 +{
2.9 + if (m_status > Plugin_Paused)
2.10 + {
2.11 + return;
2.12 + }
2.13 +
2.14 + cell_t result;
2.15 + IPluginFunction *pFunction = m_ctx.base->GetFunctionByName("OnAllPluginsLoaded");
2.16 + if (!pFunction)
2.17 + {
2.18 + return;
2.19 + }
2.20 +
2.21 + pFunction->Execute(&result);
2.22 +}
2.23 +
2.24 bool CPlugin::Call_AskPluginLoad(char *error, size_t maxlength)
2.25 {
2.26 if (m_status != Plugin_Created)
2.27 @@ -977,6 +994,7 @@
2.28 UnloadPlugin(pl);
2.29 return NULL;
2.30 }
2.31 + pl->Call_OnAllPluginsLoaded();
2.32 }
2.33
2.34 return pl;
2.35 @@ -2315,3 +2333,15 @@
2.36
2.37 return false;
2.38 }
2.39 +
2.40 +void CPluginManager::AllPluginsLoaded()
2.41 +{
2.42 + List<CPlugin *>::iterator iter;
2.43 + CPlugin *pl;
2.44 +
2.45 + for (iter=m_plugins.begin(); iter!=m_plugins.end(); iter++)
2.46 + {
2.47 + pl = (*iter);
2.48 + pl->Call_OnAllPluginsLoaded();
2.49 + }
2.50 +}
2.51 \ No newline at end of file
3.1 --- a/core/systems/PluginSys.h Tue Jul 31 18:56:55 2007 +0000
3.2 +++ b/core/systems/PluginSys.h Tue Jul 31 22:34:52 2007 +0000
3.3 @@ -202,6 +202,11 @@
3.4 void Call_OnPluginEnd();
3.5
3.6 /**
3.7 + * Calls the OnAllPluginsLoaded function.
3.8 + */
3.9 + void Call_OnAllPluginsLoaded();
3.10 +
3.11 + /**
3.12 * Toggles debug mode in the plugin
3.13 */
3.14 bool ToggleDebugMode(bool debug, char *error, size_t maxlength);
3.15 @@ -395,6 +400,11 @@
3.16 */
3.17 void AddFunctionsToForward(const char *name, IChangeableForward *pForward);
3.18
3.19 + /**
3.20 + * Iterates through plugins to call OnAllPluginsLoaded.
3.21 + */
3.22 + void AllPluginsLoaded();
3.23 +
3.24 CPlugin *GetPluginFromIdentity(IdentityToken_t *pToken);
3.25
3.26 void Shutdown();
4.1 --- a/plugins/include/sourcemod.inc Tue Jul 31 18:56:55 2007 +0000
4.2 +++ b/plugins/include/sourcemod.inc Tue Jul 31 22:34:52 2007 +0000
4.3 @@ -144,6 +144,11 @@
4.4 forward OnServerCfg();
4.5
4.6 /**
4.7 + * Called after all plugins have been loaded.
4.8 + */
4.9 +forward OnAllPluginsLoaded();
4.10 +
4.11 +/**
4.12 * Returns the calling plugin's Handle.
4.13 *
4.14 * @return Handle of the calling plugin.