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 +