added amb567, new OnAllPluginsLoaded forward
authorBorja Ferrer <faluco@alliedmods.net>
Tue Jul 31 22:34:52 2007 +0000 (2007-07-31)
changeset 1221f2dc55c0ab6f
parent 1220 4f111b467bfa
child 1222 f336e2e7db55
added amb567, new OnAllPluginsLoaded forward
core/sourcemod.cpp
core/systems/PluginSys.cpp
core/systems/PluginSys.h
plugins/include/sourcemod.inc
     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.