XPlor/libs/xassets/xanimdeltapartquatdataframes.cpp
njohnson 8e215f13af Fix: Parse Data Stream
This commit fixes the parsing logic for the XAnimDeltaPartQuatDataFrames data stream, ensuring that the frames pointer, frame 0, and frame 1 are correctly parsed from the stream.
2025-09-10 21:55:48 -04:00

55 lines
1.4 KiB
C++

#include "xanimdeltapartquatdataframes.h"
XAnimDeltaPartQuatDataFrames::XAnimDeltaPartQuatDataFrames()
: XAsset()
{
SetName("Animation Delta Part Quat Data Frame");
}
quint32 XAnimDeltaPartQuatDataFrames::GetFramesPtr() const {
return mFramesPtr;
}
void XAnimDeltaPartQuatDataFrames::SetFramesPtr(quint32 ptr) {
mFramesPtr = ptr;
}
const qint16* XAnimDeltaPartQuatDataFrames::GetFrames() const {
return mFrames;
}
void XAnimDeltaPartQuatDataFrames::SetFrames(const qint16* frames, size_t count) {
if (count <= 2) {
memcpy(mFrames, frames, count * sizeof(qint16));
}
}
XAnimDynamicIndices& XAnimDeltaPartQuatDataFrames::GetIndices() {
return mIndices;
}
const XAnimDynamicIndices& XAnimDeltaPartQuatDataFrames::GetIndices() const {
return mIndices;
}
void XAnimDeltaPartQuatDataFrames::SetIndices(const XAnimDynamicIndices& indices) {
mIndices = indices;
}
void XAnimDeltaPartQuatDataFrames::ParseData(XDataStream *aStream) {
if (GetPtr() == -1) {
mFramesPtr = aStream->ParseInt32(QString("%1 frames ptr").arg(GetName()));
mFrames[0] = aStream->ParseInt16(QString("%1 frame %2").arg(GetName()).arg(0));
mFrames[1] = aStream->ParseInt16(QString("%1 frame %2").arg(GetName()).arg(1));
// Parse indices
mIndices.ParseData(aStream);
}
}
void XAnimDeltaPartQuatDataFrames::Clear()
{
}