diff -r 1dd1a7659ad4 -r 54782a83a1ef core/systems/PluginSys.cpp --- a/core/systems/PluginSys.cpp Mon Jun 18 03:39:15 2007 +0000 +++ b/core/systems/PluginSys.cpp Mon Jun 18 07:04:22 2007 +0000 @@ -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 @@ { sm_trie_destroy(m_pProps); } + for (size_t i=0; iExecute(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 @@ 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 @@ return (CPlugin *)(pToken->ptr); } + +void CPluginManager::ExecAndGenPluginConfs() +{ + List::iterator iter; + + //for (iter = +}