From 40ad7470aab7949e9f3c72a24aac37caee6bb6a8 Mon Sep 17 00:00:00 2001 From: Nicholas Johnson Date: Wed, 3 Sep 2025 13:04:24 -0400 Subject: [PATCH] Add new asset-related structures and files --- libs/xassets/xboneinfo.cpp | 27 ++++ libs/xassets/xboneinfo.h | 24 +++ libs/xassets/xbrushwrapper.cpp | 43 +++++ libs/xassets/xbrushwrapper.h | 32 ++++ libs/xassets/xcbrushside.cpp | 31 ++++ libs/xassets/xcbrushside.h | 24 +++ libs/xassets/xcplane.cpp | 31 ++++ libs/xassets/xcplane.h | 26 +++ libs/xassets/xd3dindexbuffer.cpp | 19 +++ libs/xassets/xd3dindexbuffer.h | 27 ++++ libs/xassets/xd3dpixelshader.h | 9 ++ libs/xassets/xd3dtexture.h | 9 ++ libs/xassets/xd3dvertexbuffer.cpp | 18 +++ libs/xassets/xd3dvertexbuffer.h | 19 +++ libs/xassets/xd3dvertexdeclaration.h | 9 ++ libs/xassets/xd3dvertexshader.h | 9 ++ libs/xassets/xdobjanimmat.cpp | 27 ++++ libs/xassets/xdobjanimmat.h | 23 +++ libs/xassets/xeffectdef.cpp | 1 + libs/xassets/xeffectdef.h | 229 +++++++++++++++++++++++++++ libs/xassets/xeffectdef.h.autosave | 188 ++++++++++++++++++++++ libs/xassets/xeffectdefref.cpp | 30 ++++ libs/xassets/xeffectdefref.h | 24 +++ libs/xassets/xeffecttable.cpp | 29 ++++ libs/xassets/xeffecttable.h | 24 +++ 25 files changed, 932 insertions(+) create mode 100644 libs/xassets/xboneinfo.cpp create mode 100644 libs/xassets/xboneinfo.h create mode 100644 libs/xassets/xbrushwrapper.cpp create mode 100644 libs/xassets/xbrushwrapper.h create mode 100644 libs/xassets/xcbrushside.cpp create mode 100644 libs/xassets/xcbrushside.h create mode 100644 libs/xassets/xcplane.cpp create mode 100644 libs/xassets/xcplane.h create mode 100644 libs/xassets/xd3dindexbuffer.cpp create mode 100644 libs/xassets/xd3dindexbuffer.h create mode 100644 libs/xassets/xd3dpixelshader.h create mode 100644 libs/xassets/xd3dtexture.h create mode 100644 libs/xassets/xd3dvertexbuffer.cpp create mode 100644 libs/xassets/xd3dvertexbuffer.h create mode 100644 libs/xassets/xd3dvertexdeclaration.h create mode 100644 libs/xassets/xd3dvertexshader.h create mode 100644 libs/xassets/xdobjanimmat.cpp create mode 100644 libs/xassets/xdobjanimmat.h create mode 100644 libs/xassets/xeffectdef.cpp create mode 100644 libs/xassets/xeffectdef.h create mode 100644 libs/xassets/xeffectdef.h.autosave create mode 100644 libs/xassets/xeffectdefref.cpp create mode 100644 libs/xassets/xeffectdefref.h create mode 100644 libs/xassets/xeffecttable.cpp create mode 100644 libs/xassets/xeffecttable.h diff --git a/libs/xassets/xboneinfo.cpp b/libs/xassets/xboneinfo.cpp new file mode 100644 index 0000000..1d27b16 --- /dev/null +++ b/libs/xassets/xboneinfo.cpp @@ -0,0 +1,27 @@ +#include "xboneinfo.h" + +XBoneInfo::XBoneInfo() + : XAsset() + , mBounds() + , mOffset() + , mRadiusSquared(0) +{ + +} + +XBoneInfo::~XBoneInfo() +{ + +} + +void XBoneInfo::ParseData(QDataStream *aStream) +{ + +} + +void XBoneInfo::Clear() +{ + mBounds = QVector(); + mOffset = QVector3D(); + mRadiusSquared = 0; +} diff --git a/libs/xassets/xboneinfo.h b/libs/xassets/xboneinfo.h new file mode 100644 index 0000000..68b6a55 --- /dev/null +++ b/libs/xassets/xboneinfo.h @@ -0,0 +1,24 @@ +#ifndef XBONEINFO_H +#define XBONEINFO_H + +#include "xasset.h" + +#include +#include + +class XBoneInfo : public XAsset +{ +public: + XBoneInfo(); + ~XBoneInfo(); + + virtual void ParseData(QDataStream* aStream) override; + virtual void Clear() override; + +private: + QVector mBounds; + QVector3D mOffset; + float mRadiusSquared; +}; + +#endif // XBONEINFO_H diff --git a/libs/xassets/xbrushwrapper.cpp b/libs/xassets/xbrushwrapper.cpp new file mode 100644 index 0000000..0377830 --- /dev/null +++ b/libs/xassets/xbrushwrapper.cpp @@ -0,0 +1,43 @@ +#include "xbrushwrapper.h" + +XBrushWrapper::XBrushWrapper() + : XAsset() + , mMins() + , mContents(0) + , mMaxs() + , mNumSides(0) + , mSides() + , mAxialMaterialNum() + , mBaseAdjacentSide(nullptr) + , mFirstAdjacentSideOffsets() + , mEdgeCount() + , mTotalEdgeCount(0) + , mPlanes(nullptr) +{ + +} + +XBrushWrapper::~XBrushWrapper() +{ + +} + +void XBrushWrapper::ParseData(QDataStream *aStream) +{ + +} + +void XBrushWrapper::Clear() +{ + mMins = QVector3D(); + mContents = 0; + mMaxs = QVector3D(); + mNumSides = 0; + mSides.clear(); + mAxialMaterialNum.clear(); + mBaseAdjacentSide = nullptr; + mFirstAdjacentSideOffsets.clear(); + mEdgeCount.clear(); + mTotalEdgeCount = 0; + mPlanes->Clear(); +} diff --git a/libs/xassets/xbrushwrapper.h b/libs/xassets/xbrushwrapper.h new file mode 100644 index 0000000..b040d4a --- /dev/null +++ b/libs/xassets/xbrushwrapper.h @@ -0,0 +1,32 @@ +#ifndef XBRUSHWRAPPER_H +#define XBRUSHWRAPPER_H + +#include "xasset.h" +#include "xcbrushside.h" + +#include + +class XBrushWrapper : public XAsset +{ +public: + XBrushWrapper(); + ~XBrushWrapper(); + + virtual void ParseData(QDataStream* aStream) override; + virtual void Clear() override; + +private: + QVector3D mMins; + int mContents; + QVector3D mMaxs; + unsigned int mNumSides; + QVector mSides; + QVector mAxialMaterialNum; + quint8 *mBaseAdjacentSide; + QVector mFirstAdjacentSideOffsets; + QVector mEdgeCount; + int mTotalEdgeCount; + XCPlane *mPlanes; +}; + +#endif // XBRUSHWRAPPER_H diff --git a/libs/xassets/xcbrushside.cpp b/libs/xassets/xcbrushside.cpp new file mode 100644 index 0000000..0bbbc88 --- /dev/null +++ b/libs/xassets/xcbrushside.cpp @@ -0,0 +1,31 @@ +#include "xcbrushside.h" + +XCBrushSide::XCBrushSide() + : XAsset() + , mPlanePtr(0) + , mPlane() + , mMaterialNum(0) + , mFirstAdjacentSideOffset(0) + , mEdgeCount(0) +{ + +} + +XCBrushSide::~XCBrushSide() +{ + +} + +void XCBrushSide::ParseData(QDataStream *aStream) +{ + +} + +void XCBrushSide::Clear() +{ + mPlanePtr = 0; + mPlane = XCPlane(); + mMaterialNum = 0; + mFirstAdjacentSideOffset = 0; + mEdgeCount = 0; +} diff --git a/libs/xassets/xcbrushside.h b/libs/xassets/xcbrushside.h new file mode 100644 index 0000000..e38a125 --- /dev/null +++ b/libs/xassets/xcbrushside.h @@ -0,0 +1,24 @@ +#ifndef XCBRUSHSIDE_H +#define XCBRUSHSIDE_H + +#include "xasset.h" +#include "xcplane.h" + +class XCBrushSide : public XAsset +{ +public: + XCBrushSide(); + ~XCBrushSide(); + + virtual void ParseData(QDataStream* aStream) override; + virtual void Clear() override; + +private: + qint32 mPlanePtr; + XCPlane mPlane; + uint mMaterialNum; + qint16 mFirstAdjacentSideOffset; + quint8 mEdgeCount; +}; + +#endif // XCBRUSHSIDE_H diff --git a/libs/xassets/xcplane.cpp b/libs/xassets/xcplane.cpp new file mode 100644 index 0000000..41204a5 --- /dev/null +++ b/libs/xassets/xcplane.cpp @@ -0,0 +1,31 @@ +#include "xcplane.h" + +XCPlane::XCPlane() + : XAsset() + , mNormal() + , mDist(0) + , mType(0) + , mSignbits(0) + , mPad() +{ + +} + +XCPlane::~XCPlane() +{ + +} + +void XCPlane::ParseData(QDataStream *aStream) +{ + +} + +void XCPlane::Clear() +{ + mNormal = QVector3D(); + mDist = 0; + mType = 0; + mSignbits = 0; + mPad.clear(); +} diff --git a/libs/xassets/xcplane.h b/libs/xassets/xcplane.h new file mode 100644 index 0000000..e275bb1 --- /dev/null +++ b/libs/xassets/xcplane.h @@ -0,0 +1,26 @@ +#ifndef XCPLANE_H +#define XCPLANE_H + +#include "xasset.h" + +#include +#include + +class XCPlane : public XAsset +{ +public: + XCPlane(); + ~XCPlane(); + + virtual void ParseData(QDataStream* aStream) override; + virtual void Clear() override; + +private: + QVector3D mNormal; + float mDist; + quint8 mType; + quint8 mSignbits; + QVector mPad; +}; + +#endif // XCPLANE_H diff --git a/libs/xassets/xd3dindexbuffer.cpp b/libs/xassets/xd3dindexbuffer.cpp new file mode 100644 index 0000000..5fd8b7c --- /dev/null +++ b/libs/xassets/xd3dindexbuffer.cpp @@ -0,0 +1,19 @@ +#include "xd3dindexbuffer.h" + +XD3DIndexBuffer::XD3DIndexBuffer() + : XD3DResource() + , mAddress(0) + , mSize(0) +{ + +} + +void XD3DIndexBuffer::ParseData(QDataStream *aStream) +{ + +} + +void XD3DIndexBuffer::Clear() +{ + +} diff --git a/libs/xassets/xd3dindexbuffer.h b/libs/xassets/xd3dindexbuffer.h new file mode 100644 index 0000000..d92c92e --- /dev/null +++ b/libs/xassets/xd3dindexbuffer.h @@ -0,0 +1,27 @@ +#ifndef XD3DINDEXBUFFER_H +#define XD3DINDEXBUFFER_H + +#include "xd3dresource.h" + +class XD3DIndexBuffer : public XD3DResource +{ +public: + explicit XD3DIndexBuffer(); + + void ParseData(QDataStream *aStream) override; + void Clear() override; + +private: + quint32 mAddress; + quint32 mSize; +}; + +#endif // XD3DINDEXBUFFER_H + + + + + + + + diff --git a/libs/xassets/xd3dpixelshader.h b/libs/xassets/xd3dpixelshader.h new file mode 100644 index 0000000..d2a47fe --- /dev/null +++ b/libs/xassets/xd3dpixelshader.h @@ -0,0 +1,9 @@ +#ifndef XD3DPIXELSHADER_H +#define XD3DPIXELSHADER_H + +#include "xd3dresource.h" + +typedef XD3DResource XD3DPixelShader; + +#endif // XD3DPIXELSHADER_H + diff --git a/libs/xassets/xd3dtexture.h b/libs/xassets/xd3dtexture.h new file mode 100644 index 0000000..042f1ef --- /dev/null +++ b/libs/xassets/xd3dtexture.h @@ -0,0 +1,9 @@ +#ifndef XD3DTEXTURE_H +#define XD3DTEXTURE_H + +#include "xd3dbasetexture.h" + +typedef XD3DBaseTexture XD3DTexture; + +#endif // XD3DTEXTURE_H + diff --git a/libs/xassets/xd3dvertexbuffer.cpp b/libs/xassets/xd3dvertexbuffer.cpp new file mode 100644 index 0000000..e2563cf --- /dev/null +++ b/libs/xassets/xd3dvertexbuffer.cpp @@ -0,0 +1,18 @@ +#include "xd3dvertexbuffer.h" + +XD3DVertexBuffer::XD3DVertexBuffer() + : XD3DResource() + , mFormat() +{ + +} + +void XD3DVertexBuffer::ParseData(QDataStream *aStream) +{ + +} + +void XD3DVertexBuffer::Clear() +{ + +} diff --git a/libs/xassets/xd3dvertexbuffer.h b/libs/xassets/xd3dvertexbuffer.h new file mode 100644 index 0000000..3eada64 --- /dev/null +++ b/libs/xassets/xd3dvertexbuffer.h @@ -0,0 +1,19 @@ +#ifndef XD3DVERTEXBUFFER_H +#define XD3DVERTEXBUFFER_H + +#include "xd3dresource.h" +#include "xgpuvertexfetchconstant.h" + +class XD3DVertexBuffer : XD3DResource +{ +public: + explicit XD3DVertexBuffer(); + + void ParseData(QDataStream *aStream) override; + void Clear() override; + +private: + XGpuVertexFetchConstant mFormat; +}; + +#endif // XD3DVERTEXBUFFER_H diff --git a/libs/xassets/xd3dvertexdeclaration.h b/libs/xassets/xd3dvertexdeclaration.h new file mode 100644 index 0000000..6f97c52 --- /dev/null +++ b/libs/xassets/xd3dvertexdeclaration.h @@ -0,0 +1,9 @@ +#ifndef XD3DVERTEXDECLARATION_H +#define XD3DVERTEXDECLARATION_H + +#include "xd3dresource.h" + +typedef XD3DResource XD3DVertexDeclaration; + +#endif // XD3DVERTEXDECLARATION_H + diff --git a/libs/xassets/xd3dvertexshader.h b/libs/xassets/xd3dvertexshader.h new file mode 100644 index 0000000..3d082aa --- /dev/null +++ b/libs/xassets/xd3dvertexshader.h @@ -0,0 +1,9 @@ +#ifndef XD3DVERTEXSHADER_H +#define XD3DVERTEXSHADER_H + +#include "xd3dresource.h" + +typedef XD3DResource XD3DVertexShader; + +#endif // XD3DVERTEXSHADER_H + diff --git a/libs/xassets/xdobjanimmat.cpp b/libs/xassets/xdobjanimmat.cpp new file mode 100644 index 0000000..c3e8adf --- /dev/null +++ b/libs/xassets/xdobjanimmat.cpp @@ -0,0 +1,27 @@ +#include "xdobjanimmat.h" + +XDObjAnimMat::XDObjAnimMat() + : XAsset() + , mQuat() + , mTrans() + , mTransWeight(0) +{ + +} + +XDObjAnimMat::~XDObjAnimMat() +{ + +} + +void XDObjAnimMat::ParseData(QDataStream *aStream) +{ + +} + +void XDObjAnimMat::Clear() +{ + mQuat = QVector(); + mTrans = QVector(); + mTransWeight = 0; +} diff --git a/libs/xassets/xdobjanimmat.h b/libs/xassets/xdobjanimmat.h new file mode 100644 index 0000000..80bf539 --- /dev/null +++ b/libs/xassets/xdobjanimmat.h @@ -0,0 +1,23 @@ +#ifndef XDOBJANIMMAT_H +#define XDOBJANIMMAT_H + +#include "xasset.h" + +#include + +class XDObjAnimMat : public XAsset +{ +public: + XDObjAnimMat(); + ~XDObjAnimMat(); + + virtual void ParseData(QDataStream* aStream) override; + virtual void Clear() override; + +private: + QVector mQuat; + QVector mTrans; + float mTransWeight; +}; + +#endif // XDOBJANIMMAT_H diff --git a/libs/xassets/xeffectdef.cpp b/libs/xassets/xeffectdef.cpp new file mode 100644 index 0000000..889b4a8 --- /dev/null +++ b/libs/xassets/xeffectdef.cpp @@ -0,0 +1 @@ +#include "effectdef.h" diff --git a/libs/xassets/xeffectdef.h b/libs/xassets/xeffectdef.h new file mode 100644 index 0000000..ea50d37 --- /dev/null +++ b/libs/xassets/xeffectdef.h @@ -0,0 +1,229 @@ +#ifndef EFFECTDEF_H +#define EFFECTDEF_H + +#include "xmaterial.h" +#include "xmodel.h" + +class XFxSpawnDefLooping : public XAsset +{ +public: + explicit XFxSpawnDefLooping(); + ~XFxSpawnDefLooping(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + int mIntervalMsec; + int mCount; +}; + +class XFxIntRange : public XAsset +{ +public: + explicit XFxIntRange(); + ~XFxIntRange(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + int mBase; + int mAmplitude; +}; + +class XFxSpawnDefOneShot : public XAsset +{ +public: + explicit XFxSpawnDefOneShot(); + ~XFxSpawnDefOneShot(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxIntRange mCount; +}; + +class XFxSpawnDef : public XAsset +{ +public: + explicit XFxSpawnDef(); + ~XFxSpawnDef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxSpawnDefLooping mLooping; + XFxSpawnDefOneShot omOneShot; +}; + +class XFxFloatRange : public XAsset +{ +public: + explicit XFxFloatRange(); + ~XFxFloatRange(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + float base; + float amplitude; +}; + +class XFxElemAtlas : public XAsset +{ +public: + explicit XFxElemAtlas(); + ~XFxElemAtlas(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + quint8 mBehavior; + quint8 mIndex; + quint8 mFps; + quint8 mLoopCount; + quint8 mColIndexBits; + quint8 mRowIndexBits; + qint16 mEntryCount; +}; + +class XFxElemVec3Range : public XAsset +{ +public: + explicit XFxElemVec3Range(); + ~XFxElemVec3Range(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + QVector3D mBase; + QVector3D mAmplitude; +}; + +class XFxElemVelStateInFrame : public XAsset +{ +public: + explicit XFxElemVelStateInFrame(); + ~XFxElemVelStateInFrame(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxElemVec3Range mVelocity; + XFxElemVec3Range mTotalDelta; +}; + +class XFxElemVelStateSample : public XAsset +{ +public: + explicit XFxElemVelStateSample(); + ~XFxElemVelStateSample(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxElemVelStateInFrame mLocal; + XFxElemVelStateInFrame mWorld; +}; + +class XFxElemVisualState : public XAsset +{ +public: + explicit XFxElemVisualState(); + ~XFxElemVisualState(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + quint8 mColor[4]; + float mRotationDelta; + float mRotationTotal; + float mSize[2]; + float mScale; +}; + +class XFxElemVisStateSample : public XAsset +{ +public: + explicit XFxElemVisStateSample(); + ~XFxElemVisStateSample(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxElemVisualState mBase; + XFxElemVisualState mAmplitude; +}; + +class XFxElemMarkVisuals : public XAsset +{ +public: + explicit XFxElemMarkVisuals(); + ~XFxElemMarkVisuals(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mMaterialPtrs[2]; + QVector mMaterials; +}; + +class XEffectDefRef : public XAsset +{ +public: + explicit XEffectDefRef(); + ~XEffectDefRef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mHandlePtr; + const XEffectDef *mHandle; + + qint32 mNamePtr; + QString mName; +}; + + + + + + + +class XEffectDef : public XAsset +{ +public: + explicit XEffectDef(); + ~XEffectDef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mNamePtr; + QString mName; + + int mFlags; + int mTotalSize; + int mMsecLoopingLife; + int mElemDefCountLooping; + int mElemDefCountOneShot; + int mElemDefCountEmission; + + qint32 mElemDefsPtr; + QVector mElemDefs; +}; + +#endif // EFFECTDEF_H diff --git a/libs/xassets/xeffectdef.h.autosave b/libs/xassets/xeffectdef.h.autosave new file mode 100644 index 0000000..9679a0c --- /dev/null +++ b/libs/xassets/xeffectdef.h.autosave @@ -0,0 +1,188 @@ +#ifndef EFFECTDEF_H +#define EFFECTDEF_H + +#include "xmaterial.h" +#include "xmodel.h" + +class XFxSpawnDefLooping : public XAsset +{ +public: + explicit XFxSpawnDefLooping(); + ~XFxSpawnDefLooping(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + int mIntervalMsec; + int mCount; +}; + +class XFxIntRange : public XAsset +{ +public: + explicit XFxIntRange(); + ~XFxIntRange(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + int mBase; + int mAmplitude; +}; + +class XFxSpawnDefOneShot : public XAsset +{ +public: + explicit XFxSpawnDefOneShot(); + ~XFxSpawnDefOneShot(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxIntRange mCount; +}; + +class XFxSpawnDef : public XAsset +{ +public: + explicit XFxSpawnDef(); + ~XFxSpawnDef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxSpawnDefLooping mLooping; + XFxSpawnDefOneShot omOneShot; +}; + +class XFxFloatRange : public XAsset +{ +public: + explicit XFxFloatRange(); + ~XFxFloatRange(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + float base; + float amplitude; +}; + +class XFxElemAtlas : public XAsset +{ +public: + explicit XFxElemAtlas(); + ~XFxElemAtlas(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + quint8 mBehavior; + quint8 mIndex; + quint8 mFps; + quint8 mLoopCount; + quint8 mColIndexBits; + quint8 mRowIndexBits; + qint16 mEntryCount; +}; + +class XFxElemVec3Range : public XAsset +{ +public: + explicit XFxElemVec3Range(); + ~XFxElemVec3Range(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + QVector3D mBase; + QVector3D mAmplitude; +}; + +class XFxElemVelStateInFrame : public XAsset +{ +public: + explicit XFxElemVelStateInFrame(); + ~XFxElemVelStateInFrame(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxElemVec3Range mVelocity; + XFxElemVec3Range mTotalDelta; +}; + +class XFxElemVelStateSample : public XAsset +{ +public: + explicit XFxElemVelStateSample(); + ~XFxElemVelStateSample(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + XFxElemVelStateInFrame mLocal; + XFxElemVelStateInFrame mWorld; +}; + +class XFxElemVisualState : public XAsset +{ +public: + explicit XFxElemVisualState(); + ~XFxElemVisualState(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + quint8 mColor[4]; + float mRotationDelta; + float mRotationTotal; + float mSize[2]; + float mScale; +}; + + + + + + + + + + + +class XEffectDef : public XAsset +{ +public: + explicit XEffectDef(); + ~XEffectDef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mNamePtr; + QString mName; + + int mFlags; + int mTotalSize; + int mMsecLoopingLife; + int mElemDefCountLooping; + int mElemDefCountOneShot; + int mElemDefCountEmission; + + qint32 mElemDefsPtr; + QVector mElemDefs; +}; + +#endif // EFFECTDEF_H diff --git a/libs/xassets/xeffectdefref.cpp b/libs/xassets/xeffectdefref.cpp new file mode 100644 index 0000000..4a4b3e7 --- /dev/null +++ b/libs/xassets/xeffectdefref.cpp @@ -0,0 +1,30 @@ +#include "xeffectdefref.h" + +XEffectDefRef::XEffectDefRef() + : XAsset() + , mHandlePtr(0) + , mHandle(new XEffectDef()) + , mNamePtr(0) + , mName("") +{ + +} + +XEffectDefRef::~XEffectDefRef() +{ + +} + +void XEffectDefRef::Clear() +{ + mHandlePtr = 0; + mHandle = new XEffectDef(); + + mNamePtr = 0; + mName = ""; +} + +void XEffectDefRef::ParseData(QDataStream *aStream) +{ + +} diff --git a/libs/xassets/xeffectdefref.h b/libs/xassets/xeffectdefref.h new file mode 100644 index 0000000..f24d35a --- /dev/null +++ b/libs/xassets/xeffectdefref.h @@ -0,0 +1,24 @@ +#ifndef XEFFECTDEFREF_H +#define XEFFECTDEFREF_H + +#include "xasset.h" +#include "xeffectdef.h" + +class XEffectDefRef : public XAsset +{ +public: + explicit XEffectDefRef(); + ~XEffectDefRef(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mHandlePtr; + const XEffectDef *mHandle; + + qint32 mNamePtr; + QString mName; +}; + +#endif // XEFFECTDEFREF_H diff --git a/libs/xassets/xeffecttable.cpp b/libs/xassets/xeffecttable.cpp new file mode 100644 index 0000000..98f8572 --- /dev/null +++ b/libs/xassets/xeffecttable.cpp @@ -0,0 +1,29 @@ +#include "xeffecttable.h" + +XImpactTable::XImpactTable() + : XAsset() + , mNamePtr(0) + , mName("") + , mTablePtr(0) + , mTable() +{ + +} + +XImpactTable::~XImpactTable() +{ + +} + +void XImpactTable::Clear() +{ + mNamePtr = 0; + mName = ""; + mTablePtr = 0; + mTable = QVector(); +} + +void XImpactTable::ParseData(QDataStream *aStream) +{ + +} diff --git a/libs/xassets/xeffecttable.h b/libs/xassets/xeffecttable.h new file mode 100644 index 0000000..86e7014 --- /dev/null +++ b/libs/xassets/xeffecttable.h @@ -0,0 +1,24 @@ +#ifndef EFFECTTABLE_H +#define EFFECTTABLE_H + +#include "xasset.h" +#include "xfximpactentry.h" + +class XImpactTable : public XAsset +{ +public: + explicit XImpactTable(); + ~XImpactTable(); + + void Clear() override; + void ParseData(QDataStream *aStream) override; + +private: + qint32 mNamePtr; + QString mName; + + qint32 mTablePtr; + QVector mTable; +}; + +#endif // EFFECTTABLE_H