diff --git a/LibCmo/CKMinContext.cpp b/LibCmo/CKMinContext.cpp
index b26f4ab..e6d1f28 100644
--- a/LibCmo/CKMinContext.cpp
+++ b/LibCmo/CKMinContext.cpp
@@ -23,13 +23,22 @@ namespace LibCmo::CK2 {
{CK_CLASSID::CKCID_OBJECT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKObject(ctx, id, name); })},
{CK_CLASSID::CKCID_SCENEOBJECT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKSceneObject(ctx, id, name); })},
{CK_CLASSID::CKCID_BEOBJECT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKBeObject(ctx, id, name); })},
+
{CK_CLASSID::CKCID_GROUP, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKGroup(ctx, id, name); })},
{CK_CLASSID::CKCID_MESH, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKMesh(ctx, id, name); })},
{CK_CLASSID::CKCID_TEXTURE, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKTexture(ctx, id, name); })},
{CK_CLASSID::CKCID_MATERIAL, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKMaterial(ctx, id, name); })},
{CK_CLASSID::CKCID_RENDEROBJECT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKRenderObject(ctx, id, name); })},
{CK_CLASSID::CKCID_3DENTITY, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CK3dEntity(ctx, id, name); })},
- {CK_CLASSID::CKCID_3DOBJECT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CK3dObject(ctx, id, name); })}
+
+ {CK_CLASSID::CKCID_PARAMETERIN, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKParameterIn(ctx, id, name); })},
+ {CK_CLASSID::CKCID_PARAMETER, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKParameter(ctx, id, name); })},
+ {CK_CLASSID::CKCID_PARAMETEROUT, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKParameterOut(ctx, id, name); })},
+ {CK_CLASSID::CKCID_PARAMETERLOCAL, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKParameterLocal(ctx, id, name); })},
+ {CK_CLASSID::CKCID_PARAMETEROPERATION, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKParameterOperation(ctx, id, name); })},
+ {CK_CLASSID::CKCID_BEHAVIORLINK, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKBehaviorLink(ctx, id, name); })},
+ {CK_CLASSID::CKCID_BEHAVIORIO, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKBehaviorLink(ctx, id, name); })},
+ {CK_CLASSID::CKCID_BEHAVIOR, ([](CKMinContext* ctx, CK_ID id, CKSTRING name) ->CKObjectImplements::CKObject* { return new(std::nothrow) CKObjectImplements::CKBehavior(ctx, id, name); })}
},
// register CKBaseManagers
m_ManagersCreationMap{
diff --git a/LibCmo/CKObjectImplements/CKObject.cpp b/LibCmo/CKObjectImplements/CKObject.cpp
index 6a2edec..0d03bcc 100644
--- a/LibCmo/CKObjectImplements/CKObject.cpp
+++ b/LibCmo/CKObjectImplements/CKObject.cpp
@@ -94,4 +94,45 @@ namespace LibCmo::CK2::CKObjectImplements {
CK3dObject::~CK3dObject() {
}
+
+ CKParameterIn::CKParameterIn(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKObject(ctx, ckid, name) {
+ }
+ CKParameterIn::~CKParameterIn() {
+ }
+
+ CKParameter::CKParameter(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKObject(ctx, ckid, name) {
+ }
+ CKParameter::~CKParameter() {
+ }
+
+ CKParameterOut::CKParameterOut(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKParameter(ctx, ckid, name) {
+ }
+ CKParameterOut::~CKParameterOut() {
+ }
+
+ CKParameterLocal::CKParameterLocal(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKParameter(ctx, ckid, name) {
+ }
+ CKParameterLocal::~CKParameterLocal() {
+ }
+
+ CKParameterOperation::CKParameterOperation(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKObject(ctx, ckid, name) {
+ }
+ CKParameterOperation::~CKParameterOperation() {
+ }
+
+ CKBehaviorLink::CKBehaviorLink(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKObject(ctx, ckid, name) {
+ }
+ CKBehaviorLink::~CKBehaviorLink() {
+ }
+
+ CKBehaviorIO::CKBehaviorIO(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKObject(ctx, ckid, name) {
+ }
+ CKBehaviorIO::~CKBehaviorIO() {
+ }
+
+ CKBehavior::CKBehavior(CKMinContext* ctx, CK_ID ckid, CKSTRING name) : CKSceneObject(ctx, ckid, name) {
+ }
+ CKBehavior::~CKBehavior() {
+ }
+
}
\ No newline at end of file
diff --git a/LibCmo/CKObjects.cpp b/LibCmo/CKObjects.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/LibCmo/CKObjects.hpp b/LibCmo/CKObjects.hpp
index f0b6281..8762d7c 100644
--- a/LibCmo/CKObjects.hpp
+++ b/LibCmo/CKObjects.hpp
@@ -52,6 +52,8 @@ namespace LibCmo::CK2::CKObjectImplements {
};
+#pragma region Map Related
+
class CKGroup : public CKBeObject {
public:
CKGroup(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
@@ -136,5 +138,107 @@ namespace LibCmo::CK2::CKObjectImplements {
};
+#pragma endregion
+
+#pragma region Behavior Related
+
+ class CKParameterIn :public CKObject {
+ public:
+ CKParameterIn(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKParameterIn(const CKParameterIn&) = delete;
+ CKParameterIn& operator=(const CKParameterIn&) = delete;
+ ~CKParameterIn();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_PARAMETERIN; }
+ protected:
+
+ };
+
+ class CKParameter :public CKObject {
+ public:
+ CKParameter(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKParameter(const CKParameter&) = delete;
+ CKParameter& operator=(const CKParameter&) = delete;
+ ~CKParameter();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_PARAMETER; }
+ protected:
+
+ };
+
+ class CKParameterOut :public CKParameter {
+ public:
+ CKParameterOut(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKParameterOut(const CKParameterOut&) = delete;
+ CKParameterOut& operator=(const CKParameterOut&) = delete;
+ ~CKParameterOut();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_PARAMETEROUT; }
+ protected:
+
+ };
+
+ class CKParameterLocal :public CKParameter {
+ public:
+ CKParameterLocal(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKParameterLocal(const CKParameterLocal&) = delete;
+ CKParameterLocal& operator=(const CKParameterLocal&) = delete;
+ ~CKParameterLocal();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_PARAMETERLOCAL; }
+ protected:
+
+ };
+
+ class CKParameterOperation :public CKObject {
+ public:
+ CKParameterOperation(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKParameterOperation(const CKParameterOperation&) = delete;
+ CKParameterOperation& operator=(const CKParameterOperation&) = delete;
+ ~CKParameterOperation();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_PARAMETEROPERATION; }
+ protected:
+
+ };
+
+ class CKBehaviorLink :public CKObject {
+ public:
+ CKBehaviorLink(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKBehaviorLink(const CKBehaviorLink&) = delete;
+ CKBehaviorLink& operator=(const CKBehaviorLink&) = delete;
+ ~CKBehaviorLink();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_BEHAVIORLINK; }
+ protected:
+
+ };
+
+ class CKBehaviorIO :public CKObject {
+ public:
+ CKBehaviorIO(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKBehaviorIO(const CKBehaviorIO&) = delete;
+ CKBehaviorIO& operator=(const CKBehaviorIO&) = delete;
+ ~CKBehaviorIO();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_BEHAVIORIO; }
+ protected:
+
+ };
+
+ class CKBehavior :public CKSceneObject {
+ public:
+ CKBehavior(CKMinContext* ctx, CK_ID ckid, CKSTRING name);
+ CKBehavior(const CKBehavior&) = delete;
+ CKBehavior& operator=(const CKBehavior&) = delete;
+ ~CKBehavior();
+
+ virtual CK_CLASSID GetClassID(void) override { return CK_CLASSID::CKCID_BEHAVIOR; }
+ protected:
+
+ };
+
+#pragma endregion
+
}
diff --git a/LibCmo/LibCmo.vcxproj b/LibCmo/LibCmo.vcxproj
index 18da604..dc462ba 100644
--- a/LibCmo/LibCmo.vcxproj
+++ b/LibCmo/LibCmo.vcxproj
@@ -181,6 +181,7 @@
+
diff --git a/LibCmo/LibCmo.vcxproj.filters b/LibCmo/LibCmo.vcxproj.filters
index 14ce278..03034f3 100644
--- a/LibCmo/LibCmo.vcxproj.filters
+++ b/LibCmo/LibCmo.vcxproj.filters
@@ -54,6 +54,9 @@
Sources\CKManagerImplements
+
+ Sources
+