XPlor/libs/assets/animparts.h
2025-07-10 00:04:52 -04:00

174 lines
4.7 KiB
C

#ifndef ANIMPARTS_H
#define ANIMPARTS_H
#include <QString>
#include <QDataStream>
#include <QDebug>
struct XAnimDynamicFrames
{
quint32 framesPtr;
quint8 frames[3];
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDynamicFrames &aAnimDynamicFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDynamicFrames &aAnimDynamicFramesOut);
struct XAnimDynamicIndices
{
quint8 indices[1];
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDynamicIndices &aAnimDynamicIndicesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDynamicIndices &aAnimDynamicIndicesOut);
struct XAnimPartTransFrames
{
float mins[3];
float size[3];
XAnimDynamicFrames frames;
XAnimDynamicIndices indices;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTransFrames &aAnimPartTransFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTransFrames &aAnimPartTransFramesOut);
union XAnimPartTransData
{
XAnimPartTransFrames frames;
float frame0[3];
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTransData &aAnimPartTransDataIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTransData &aAnimPartTransDataOut);
struct XAnimPartTrans
{
quint16 size;
quint8 smallTrans;
XAnimPartTransData data;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTrans &aAnimPartTransIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTrans &aAnimPartTransOut);
struct XAnimDeltaPartQuatDataFrames
{
quint32 framesPtr;
qint16 frames[2];
XAnimDynamicIndices indices;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuatDataFrames &aAnimDeltaPartQuatDataFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuatDataFrames &aAnimDeltaPartQuatDataFramesOut);
struct XAnimDeltaPartQuatData
{
XAnimDeltaPartQuatDataFrames frames;
qint16 frame0[2];
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuatData &aAnimDeltaPartQuatDataIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuatData &aAnimDeltaPartQuatDataOut);
struct XAnimDeltaPartQuat
{
quint16 size;
XAnimDeltaPartQuatData data;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuat &aAnimDeltaPartQuatIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuat &aAnimDeltaPartQuatOut);
struct XAnimDeltaPart
{
quint32 transPtr;
XAnimPartTrans trans;
quint32 quatPtr;
XAnimDeltaPartQuat quat;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPart &aAnimDeltaPartIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPart &aAnimDeltaPartOut);
struct XAnimNotifyInfo
{
quint16 name;
float time;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimNotifyInfo &aAnimNotifyInfoIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimNotifyInfo &aAnimNotifyInfoOut);
QDebug operator<<(QDebug debug, const XAnimNotifyInfo &aAnimNotifyInfo);
QString XAnimNotifyInfoToString(const XAnimNotifyInfo &aAnimNotifyInfo);
struct XAnimIndices
{
quint32 indexPtr;
quint16 index;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimIndices &aAnimIndicesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimIndices &aAnimIndicesOut);
QDebug operator<<(QDebug debug, const XAnimIndices &aAnimIndices);
QString XAnimIndicesToString(const XAnimIndices &aAnimIndices);
struct XAnimParts
{
QString name;
quint32 namePtr;
quint16 dataByteCount;
quint16 dataShortCount;
quint16 dataIntCount;
quint16 randomDataByteCount;
quint16 randomDataIntCount;
quint16 numframes;
bool bLoop;
bool bDelta;
quint8 boneCount[12];
quint8 notifyCount;
quint8 assetType;
bool pad;
quint16 randomDataShortCount;
quint16 indexCount;
float framerate;
float frequency;
quint32 namesPtr;
quint16 names;
quint32 dataBytePtr;
quint8 dataByte;
quint32 dataShortPtr;
qint16 dataShort;
quint32 dataIntPtr;
int dataInt;
quint32 randomDataShortPtr;
qint16 randomDataShort;
quint32 randomDataBytePtr;
quint8 randomDataByte;
quint32 randomDataIntPtr;
int randomDataInt;
XAnimIndices indices;
qint32 notifyPtr;
XAnimNotifyInfo notify;
qint32 deltaPartPtr;
XAnimDeltaPart deltaPart;
};
QDataStream &operator<<(QDataStream &aDataStream, const XAnimParts &aAnimPartIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimParts &aAnimPartOut);
QDebug operator<<(QDebug debug, const XAnimParts &xanimParts);
QString XAnimPartsToString(const XAnimParts &xAnimParts);
struct Animation {
QString name;
XAnimParts animParts;
};
#endif // ANIMPARTS_H