XPlor/libs/xassets/animparts.h

174 lines
4.7 KiB
C
Raw Normal View History

2025-06-07 11:20:47 -04:00
#ifndef ANIMPARTS_H
#define ANIMPARTS_H
#include <QString>
#include <QDataStream>
2025-07-10 00:04:52 -04:00
#include <QDebug>
2025-06-07 11:20:47 -04:00
2025-07-10 00:04:52 -04:00
struct XAnimDynamicFrames
2025-06-07 11:20:47 -04:00
{
2025-07-10 00:04:52 -04:00
quint32 framesPtr;
quint8 frames[3];
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDynamicFrames &aAnimDynamicFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDynamicFrames &aAnimDynamicFramesOut);
2025-06-07 11:20:47 -04:00
2025-07-10 00:04:52 -04:00
struct XAnimDynamicIndices
2025-06-07 11:20:47 -04:00
{
2025-07-10 00:04:52 -04:00
quint8 indices[1];
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDynamicIndices &aAnimDynamicIndicesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDynamicIndices &aAnimDynamicIndicesOut);
2025-06-07 11:20:47 -04:00
struct XAnimPartTransFrames
{
float mins[3];
float size[3];
XAnimDynamicFrames frames;
XAnimDynamicIndices indices;
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTransFrames &aAnimPartTransFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTransFrames &aAnimPartTransFramesOut);
2025-06-07 11:20:47 -04:00
union XAnimPartTransData
{
XAnimPartTransFrames frames;
float frame0[3];
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTransData &aAnimPartTransDataIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTransData &aAnimPartTransDataOut);
2025-06-07 11:20:47 -04:00
struct XAnimPartTrans
{
quint16 size;
quint8 smallTrans;
2025-07-10 00:04:52 -04:00
XAnimPartTransData data;
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimPartTrans &aAnimPartTransIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimPartTrans &aAnimPartTransOut);
2025-06-07 11:20:47 -04:00
struct XAnimDeltaPartQuatDataFrames
{
2025-07-10 00:04:52 -04:00
quint32 framesPtr;
qint16 frames[2];
2025-06-07 11:20:47 -04:00
XAnimDynamicIndices indices;
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuatDataFrames &aAnimDeltaPartQuatDataFramesIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuatDataFrames &aAnimDeltaPartQuatDataFramesOut);
2025-06-07 11:20:47 -04:00
2025-07-10 00:04:52 -04:00
struct XAnimDeltaPartQuatData
2025-06-07 11:20:47 -04:00
{
XAnimDeltaPartQuatDataFrames frames;
qint16 frame0[2];
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuatData &aAnimDeltaPartQuatDataIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuatData &aAnimDeltaPartQuatDataOut);
2025-06-07 11:20:47 -04:00
struct XAnimDeltaPartQuat
{
quint16 size;
2025-07-10 00:04:52 -04:00
XAnimDeltaPartQuatData data;
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPartQuat &aAnimDeltaPartQuatIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPartQuat &aAnimDeltaPartQuatOut);
2025-06-07 11:20:47 -04:00
struct XAnimDeltaPart
{
2025-07-10 00:04:52 -04:00
quint32 transPtr;
XAnimPartTrans trans;
quint32 quatPtr;
XAnimDeltaPartQuat quat;
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
QDataStream &operator<<(QDataStream &aDataStream, const XAnimDeltaPart &aAnimDeltaPartIn);
QDataStream &operator>>(QDataStream &aDataStream, XAnimDeltaPart &aAnimDeltaPartOut);
2025-06-07 11:20:47 -04:00
struct XAnimNotifyInfo
{
quint16 name;
float time;
};
2025-07-10 00:04:52 -04:00
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);
2025-06-07 11:20:47 -04:00
struct XAnimIndices
{
2025-07-10 00:04:52 -04:00
quint32 indexPtr;
quint16 index;
2025-06-07 11:20:47 -04:00
};
2025-07-10 00:04:52 -04:00
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);
2025-06-07 11:20:47 -04:00
struct XAnimParts
{
QString name;
2025-07-10 00:04:52 -04:00
quint32 namePtr;
2025-06-07 11:20:47 -04:00
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;
2025-07-10 00:04:52 -04:00
quint16 randomDataShortCount;
quint16 indexCount;
2025-06-07 11:20:47 -04:00
float framerate;
float frequency;
2025-07-10 00:04:52 -04:00
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;
2025-06-07 11:20:47 -04:00
XAnimIndices indices;
qint32 notifyPtr;
XAnimNotifyInfo notify;
qint32 deltaPartPtr;
XAnimDeltaPart deltaPart;
};
2025-07-10 00:04:52 -04:00
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);
2025-06-07 11:20:47 -04:00
struct Animation {
QString name;
2025-07-10 00:04:52 -04:00
XAnimParts animParts;
2025-06-07 11:20:47 -04:00
};
#endif // ANIMPARTS_H