Add new asset-related structures and files

This commit is contained in:
Nicholas Johnson 2025-09-03 13:04:24 -04:00
parent 89d1d0944a
commit 40ad7470aa
25 changed files with 932 additions and 0 deletions

View File

@ -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<QVector3D>();
mOffset = QVector3D();
mRadiusSquared = 0;
}

24
libs/xassets/xboneinfo.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef XBONEINFO_H
#define XBONEINFO_H
#include "xasset.h"
#include <QVector>
#include <QVector3D>
class XBoneInfo : public XAsset
{
public:
XBoneInfo();
~XBoneInfo();
virtual void ParseData(QDataStream* aStream) override;
virtual void Clear() override;
private:
QVector<QVector3D> mBounds;
QVector3D mOffset;
float mRadiusSquared;
};
#endif // XBONEINFO_H

View File

@ -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();
}

View File

@ -0,0 +1,32 @@
#ifndef XBRUSHWRAPPER_H
#define XBRUSHWRAPPER_H
#include "xasset.h"
#include "xcbrushside.h"
#include <QVector3D>
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<XCBrushSide> mSides;
QVector<QVector3D> mAxialMaterialNum;
quint8 *mBaseAdjacentSide;
QVector<QVector3D> mFirstAdjacentSideOffsets;
QVector<QVector3D> mEdgeCount;
int mTotalEdgeCount;
XCPlane *mPlanes;
};
#endif // XBRUSHWRAPPER_H

View File

@ -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;
}

View File

@ -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

31
libs/xassets/xcplane.cpp Normal file
View File

@ -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();
}

26
libs/xassets/xcplane.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef XCPLANE_H
#define XCPLANE_H
#include "xasset.h"
#include <QVector>
#include <QVector3D>
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<quint8> mPad;
};
#endif // XCPLANE_H

View File

@ -0,0 +1,19 @@
#include "xd3dindexbuffer.h"
XD3DIndexBuffer::XD3DIndexBuffer()
: XD3DResource()
, mAddress(0)
, mSize(0)
{
}
void XD3DIndexBuffer::ParseData(QDataStream *aStream)
{
}
void XD3DIndexBuffer::Clear()
{
}

View File

@ -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

View File

@ -0,0 +1,9 @@
#ifndef XD3DPIXELSHADER_H
#define XD3DPIXELSHADER_H
#include "xd3dresource.h"
typedef XD3DResource XD3DPixelShader;
#endif // XD3DPIXELSHADER_H

View File

@ -0,0 +1,9 @@
#ifndef XD3DTEXTURE_H
#define XD3DTEXTURE_H
#include "xd3dbasetexture.h"
typedef XD3DBaseTexture XD3DTexture;
#endif // XD3DTEXTURE_H

View File

@ -0,0 +1,18 @@
#include "xd3dvertexbuffer.h"
XD3DVertexBuffer::XD3DVertexBuffer()
: XD3DResource()
, mFormat()
{
}
void XD3DVertexBuffer::ParseData(QDataStream *aStream)
{
}
void XD3DVertexBuffer::Clear()
{
}

View File

@ -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

View File

@ -0,0 +1,9 @@
#ifndef XD3DVERTEXDECLARATION_H
#define XD3DVERTEXDECLARATION_H
#include "xd3dresource.h"
typedef XD3DResource XD3DVertexDeclaration;
#endif // XD3DVERTEXDECLARATION_H

View File

@ -0,0 +1,9 @@
#ifndef XD3DVERTEXSHADER_H
#define XD3DVERTEXSHADER_H
#include "xd3dresource.h"
typedef XD3DResource XD3DVertexShader;
#endif // XD3DVERTEXSHADER_H

View File

@ -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<float>();
mTrans = QVector<float>();
mTransWeight = 0;
}

View File

@ -0,0 +1,23 @@
#ifndef XDOBJANIMMAT_H
#define XDOBJANIMMAT_H
#include "xasset.h"
#include <QVector>
class XDObjAnimMat : public XAsset
{
public:
XDObjAnimMat();
~XDObjAnimMat();
virtual void ParseData(QDataStream* aStream) override;
virtual void Clear() override;
private:
QVector<float> mQuat;
QVector<float> mTrans;
float mTransWeight;
};
#endif // XDOBJANIMMAT_H

View File

@ -0,0 +1 @@
#include "effectdef.h"

229
libs/xassets/xeffectdef.h Normal file
View File

@ -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<XMaterial> 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<XFxElemDef> mElemDefs;
};
#endif // EFFECTDEF_H

View File

@ -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<XFxElemDef> mElemDefs;
};
#endif // EFFECTDEF_H

View File

@ -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)
{
}

View File

@ -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

View File

@ -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<XFxImpactEntry>();
}
void XImpactTable::ParseData(QDataStream *aStream)
{
}

View File

@ -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<XFxImpactEntry> mTable;
};
#endif // EFFECTTABLE_H