summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2OuterObjPlugin.cpp
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
committerAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
commitc0c336500955a23e344651e5412c9d9d441ef4ee (patch)
tree790769c748db307cf3314f6e896e2f61c68561a2 /src/T2DLL/T2OuterObjPlugin.cpp
parent37e364b2c6cc7487a1c888d256a73e5337bb7189 (diff)
downloadt2win-c0c336500955a23e344651e5412c9d9d441ef4ee.tar.gz
t2win-c0c336500955a23e344651e5412c9d9d441ef4ee.zip
first pass of T2DLL
Diffstat (limited to '')
-rw-r--r--src/T2DLL/T2OuterObjPlugin.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/T2DLL/T2OuterObjPlugin.cpp b/src/T2DLL/T2OuterObjPlugin.cpp
index cc33816..0ad3022 100644
--- a/src/T2DLL/T2OuterObjPlugin.cpp
+++ b/src/T2DLL/T2OuterObjPlugin.cpp
@@ -1,13 +1,30 @@
+#include "CResFile.h"
+#include "T2OuterObjDef.h"
#include "T2OuterObjPlugin.h"
-T2OuterObjPlugin::T2OuterObjPlugin(unsigned long, T2PluginSpecifier&) {
+T2OuterObjPlugin::T2OuterObjPlugin(DWORD inType, T2PluginSpecifier& inSpecifier)
+ : T2ToolPlugin(inType, inSpecifier)
+{
}
/*virtual*/ T2OuterObjPlugin::~T2OuterObjPlugin() {
}
-int T2OuterObjPlugin::LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*) {
+BOOL T2OuterObjPlugin::LoadAllTemplatePlugin(T2WorldDef* inWorldDef, T2TemplatePluginDB* inDB) {
+ LoadT2OuterObjDef(inWorldDef);
+ return true;
}
-void T2OuterObjPlugin::LoadT2OuterObjDef(T2WorldDef*) {
+typedef T2OuterObjDef *(MSVC_STDCALL* ConstructTemplatePluginType) (T2PluginSpecifier *, CResFile *, T2WorldDef *, T2OuterObjPlugin *);
+
+void T2OuterObjPlugin::LoadT2OuterObjDef(T2WorldDef* inWorldDef) {
+ ConstructTemplatePluginType theFunc = (ConstructTemplatePluginType) GetProcAddress((HMODULE) mModuleHandle, "ConstructTemplatePlugin");
+#line 25
+ _ASSERT(theFunc);
+
+ CResFile resFile;
+ resFile.OpenResource(mModuleHandle, 1, 'OODf');
+ T2OuterObjDef *theDef = theFunc(&mSpecifier, &resFile, inWorldDef, this);
+
+ mTemplatePlugin = theDef;
}