Added extension loading/unloading

Extended SDK for interface sharing
Completed Metamod extension support

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40309
This commit is contained in:
David Anderson
2007-01-17 03:01:38 +00:00
parent b7e10b111f
commit 1857f29efc
11 changed files with 305 additions and 92 deletions
+8 -4
View File
@@ -43,7 +43,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
@@ -60,6 +60,7 @@
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\sample.ext.dll"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
@@ -116,7 +117,7 @@
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
@@ -133,6 +134,7 @@
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\sample.ext.dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
@@ -193,7 +195,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SMEXT_CONF_METAMOD"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
@@ -211,6 +213,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="tier0.lib"
OutputFile="$(OutDir)\sample.ext.dll"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
@@ -267,7 +270,7 @@
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SDK_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SMEXT_CONF_METAMOD"
RuntimeLibrary="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
@@ -284,6 +287,7 @@
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\sample.ext.dll"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
+15 -3
View File
@@ -2,7 +2,7 @@
#include "smsdk_ext.h"
IShareSys *g_pShareSys = NULL;
IdentityToken_t *myself = NULL;
IExtension *myself = NULL;
IHandleSys *g_pHandleSys = NULL;
PLATFORM_EXTERN_C IExtensionInterface *GetSMExtAPI()
@@ -22,7 +22,9 @@ SDKExtension::SDKExtension()
bool SDKExtension::OnExtensionLoad(IExtension *me, IShareSys *sys, char *error, size_t err_max, bool late)
{
g_pShareSys = sys;
myself = me->GetIdentity();
myself = me;
m_WeAreUnloaded = true;
#if defined SMEXT_CONF_METAMOD
if (!m_SourceMMLoaded)
@@ -37,7 +39,13 @@ bool SDKExtension::OnExtensionLoad(IExtension *me, IShareSys *sys, char *error,
SM_GET_IFACE(HANDLESYSTEM, g_pHandleSys);
return SDK_OnLoad(error, err_max, late);
if (SDK_OnLoad(error, err_max, late))
{
m_WeAreUnloaded = true;
return true;
}
return false;
}
bool SDKExtension::IsMetamodExtension()
@@ -51,7 +59,9 @@ bool SDKExtension::IsMetamodExtension()
void SDKExtension::OnExtensionPauseChange(bool state)
{
#if defined SMEXT_CONF_METAMOD
m_WeGotPauseChange = true;
#endif
SDK_OnPauseChange(state);
}
@@ -62,7 +72,9 @@ void SDKExtension::OnExtensionsAllLoaded()
void SDKExtension::OnExtensionUnload()
{
#if defined SMEXT_CONF_METAMOD
m_WeAreUnloaded = true;
#endif
SDK_OnUnload();
}
+1 -1
View File
@@ -118,7 +118,7 @@ private:
extern SDKExtension *g_pExtensionIface;
extern IShareSys *g_pShareSys;
extern IdentityToken_t *myself;
extern IExtension *myself;
extern IHandleSys *g_pHandleSys;
#if defined SMEXT_CONF_METAMOD