core/systems/PluginSys.cpp
changeset 220 73d3fcf9bbd1
parent 216 38b1bdbc5bc9
child 222 8d009d0087f1
     1.1 --- a/core/systems/PluginSys.cpp	Sat Dec 16 22:30:58 2006 +0000
     1.2 +++ b/core/systems/PluginSys.cpp	Sat Dec 16 22:31:32 2006 +0000
     1.3 @@ -1,11 +1,13 @@
     1.4  #include <stdio.h>
     1.5  #include "PluginSys.h"
     1.6  #include "LibrarySys.h"
     1.7 +#include "HandleSys.h"
     1.8  #include "sourcemm_api.h"
     1.9  #include "sourcemod.h"
    1.10  #include "CTextParsers.h"
    1.11  
    1.12  CPluginManager g_PluginSys;
    1.13 +HandleType_t g_PluginType = 0;
    1.14  
    1.15  CPlugin::CPlugin(const char *file)
    1.16  {
    1.17 @@ -20,6 +22,8 @@
    1.18  	m_pub_funcs = NULL;
    1.19  	m_errormsg[256] = '\0';
    1.20  	snprintf(m_filename, sizeof(m_filename), "%s", file);
    1.21 +	/* :TODO: ShareSys token */
    1.22 +	m_handle = g_HandleSys.CreateHandle(g_PluginType, this, DEFAULT_IDENTITY, 1);
    1.23  }
    1.24  
    1.25  CPlugin::~CPlugin()
    1.26 @@ -441,6 +445,11 @@
    1.27  	return true;
    1.28  }
    1.29  
    1.30 +IdentityToken_t CPlugin::GetIdentity()
    1.31 +{
    1.32 +	return 0;
    1.33 +}
    1.34 +
    1.35  /*******************
    1.36   * PLUGIN ITERATOR *
    1.37   *******************/
    1.38 @@ -1078,3 +1087,25 @@
    1.39  {
    1.40  	return (m_AllPluginsLoaded || g_SourceMod.IsLateLoadInMap());
    1.41  }
    1.42 +
    1.43 +void CPluginManager::OnSourceModAllInitialized()
    1.44 +{
    1.45 +	HandleSecurity sec;
    1.46 +
    1.47 +	sec.owner = 1;	/* :TODO: implement ShareSys */
    1.48 +	sec.all.canCreate = false;
    1.49 +	sec.all.canDelete = false;
    1.50 +	sec.all.canInherit = false;
    1.51 +	
    1.52 +	g_PluginType = g_HandleSys.CreateTypeEx("IPlugin", this, 0, &sec);
    1.53 +}
    1.54 +
    1.55 +void CPluginManager::OnSourceModShutdown()
    1.56 +{
    1.57 +	g_HandleSys.RemoveType(g_PluginType, 1);
    1.58 +}
    1.59 +
    1.60 +void CPluginManager::OnHandleDestroy(HandleType_t type, void *object)
    1.61 +{
    1.62 +	/* We don't care about the internal object, actually */
    1.63 +}