- removed OnServerCfg in favor of OnConfigsExecuted
- added AutoExecConfig() which automates safe config execution --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40984
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include "sm_stringutil.h"
|
||||
#include "ConCmdManager.h"
|
||||
#include "PlayerManager.h"
|
||||
#include "CoreConfig.h"
|
||||
|
||||
CPluginManager g_PluginSys;
|
||||
HandleType_t g_PluginType = 0;
|
||||
@@ -85,6 +86,11 @@ CPlugin::~CPlugin()
|
||||
{
|
||||
sm_trie_destroy(m_pProps);
|
||||
}
|
||||
for (size_t i=0; i<m_configs.size(); i++)
|
||||
{
|
||||
delete m_configs[i];
|
||||
}
|
||||
m_configs.clear();
|
||||
}
|
||||
|
||||
void CPlugin::InitIdentity()
|
||||
@@ -309,12 +315,9 @@ void CPlugin::Call_OnPluginStart()
|
||||
pFunction->Execute(NULL);
|
||||
}
|
||||
}
|
||||
if (g_ConCmds.IsServerCfgDone())
|
||||
if (SM_AreConfigsExecuted())
|
||||
{
|
||||
if ((pFunction = m_ctx.base->GetFunctionByName("OnServerCfg")) != NULL)
|
||||
{
|
||||
pFunction->Execute(NULL);
|
||||
}
|
||||
SM_ExecuteForPlugin(GetBaseContext());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -618,6 +621,32 @@ void CPlugin::DependencyDropped(CPlugin *pOwner)
|
||||
m_dependsOn.remove(pOwner);
|
||||
}
|
||||
|
||||
unsigned int CPlugin::GetConfigCount()
|
||||
{
|
||||
return (unsigned int)m_configs.size();
|
||||
}
|
||||
|
||||
AutoConfig *CPlugin::GetConfig(unsigned int i)
|
||||
{
|
||||
if (i >= GetConfigCount())
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return m_configs[i];
|
||||
}
|
||||
|
||||
void CPlugin::AddConfig(bool autoCreate, const char *cfg, const char *folder)
|
||||
{
|
||||
AutoConfig *c = new AutoConfig;
|
||||
|
||||
c->autocfg = cfg;
|
||||
c->folder = folder;
|
||||
c->create = autoCreate;
|
||||
|
||||
m_configs.push_back(c);
|
||||
}
|
||||
|
||||
/*******************
|
||||
* PLUGIN ITERATOR *
|
||||
*******************/
|
||||
@@ -1971,3 +2000,10 @@ CPlugin *CPluginManager::GetPluginFromIdentity(IdentityToken_t *pToken)
|
||||
|
||||
return (CPlugin *)(pToken->ptr);
|
||||
}
|
||||
|
||||
void CPluginManager::ExecAndGenPluginConfs()
|
||||
{
|
||||
List<CPlugin *>::iterator iter;
|
||||
|
||||
//for (iter =
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user