Refactor: Improve data parsing for XAnimParts
This commit refactors the data parsing logic for XAnimParts to improve clarity and maintainability. It replaces the use of raw `*aStream` with `aStream->ParseUIntX()` for all data fields. This approach simplifies the code and enhances readability by explicitly stating the data type being parsed. Furthermore, the message has been updated to reflect the name change of this asset.
This commit is contained in:
parent
7174f1fe22
commit
9898a03417
@ -31,68 +31,49 @@ XAnimParts::XAnimParts()
|
||||
, mDeltaPart()
|
||||
{
|
||||
SetType(ASSET_TYPE_XANIMPARTS);
|
||||
SetName("XAnimParts");
|
||||
SetName("Animation Parts");
|
||||
}
|
||||
|
||||
XAnimParts::~XAnimParts()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void XAnimParts::ParseData(QDataStream *aStream) {
|
||||
void XAnimParts::ParseData(XDataStream *aStream) {
|
||||
if (GetPtr() == -1) {
|
||||
|
||||
mName.ParsePtr(aStream, false);
|
||||
|
||||
// Parse all fields
|
||||
*aStream
|
||||
>> mDataByteCount
|
||||
>> mDataShortCount
|
||||
>> mDataIntCount
|
||||
>> mRandomDataByteCount
|
||||
>> mRandomDataIntCount
|
||||
>> mNumFrames;
|
||||
mDataByteCount = aStream->ParseUInt32(QString("%1 data byte count").arg(GetName()));
|
||||
mDataShortCount = aStream->ParseUInt32(QString("%1 data short count").arg(GetName()));
|
||||
mDataIntCount = aStream->ParseUInt32(QString("%1 data int count").arg(GetName()));
|
||||
mRandomDataByteCount = aStream->ParseUInt32(QString("%1 random date byte count").arg(GetName()));
|
||||
mRandomDataIntCount = aStream->ParseUInt32(QString("%1 random data int count").arg(GetName()));
|
||||
mNumFrames = aStream->ParseUInt32(QString("%1 # frames").arg(GetName()));
|
||||
|
||||
quint8 loopDelta;
|
||||
*aStream >> loopDelta;
|
||||
quint8 loopDelta = aStream->ParseUInt8(QString("%1 loop delta").arg(GetName()));
|
||||
mIsLoop = (loopDelta & 0x1) != 0;
|
||||
mIsDelta = (loopDelta & 0x2) != 0;
|
||||
|
||||
for (int i = 0; i < 12; i++)
|
||||
{
|
||||
*aStream >> mBoneCount[i];
|
||||
mBoneCount[i] = aStream->ParseUInt8(QString("%1 bone count %2").arg(GetName()).arg(i));
|
||||
}
|
||||
|
||||
*aStream
|
||||
>> mNotifyCount
|
||||
>> mAssetType;
|
||||
|
||||
quint32 pad;
|
||||
*aStream >> pad;
|
||||
mPad = (pad != 0);
|
||||
mNotifyCount = aStream->ParseUInt8(QString("%1 notify count").arg(GetName()));
|
||||
mAssetType = aStream->ParseUInt8(QString("%1 asset type").arg(GetName()));
|
||||
mPad = aStream->ParseUInt32(QString("%1 pad").arg(GetName())) != 0;
|
||||
|
||||
qint32 namesPtr, dataBytePtr, dataShortPtr, dataIntPtr,
|
||||
randomDataShortPtr, randomDataBytePtr, randomDataIntPtr;
|
||||
|
||||
*aStream
|
||||
>> mRandomDataShortCount
|
||||
>> mIndexCount
|
||||
>> mFramerate
|
||||
>> mFrequency
|
||||
>> namesPtr
|
||||
>> mNames
|
||||
>> dataBytePtr
|
||||
>> mDataByte
|
||||
>> dataShortPtr
|
||||
>> mDataShort
|
||||
>> dataIntPtr
|
||||
>> mDataInt
|
||||
>> randomDataShortPtr
|
||||
>> mRandomDataShort
|
||||
>> randomDataBytePtr
|
||||
>> mRandomDataByte
|
||||
>> randomDataIntPtr
|
||||
>> mRandomDataInt;
|
||||
mRandomDataShortCount = aStream->ParseUInt32(QString("%1 random data short count").arg(GetName()));
|
||||
mIndexCount = aStream->ParseUInt32(QString("%1 index count").arg(GetName()));
|
||||
mFramerate = aStream->ParseSingle(QString("%1 frame rate").arg(GetName()));
|
||||
mFrequency = aStream->ParseSingle(QString("%1 frequency").arg(GetName()));
|
||||
namesPtr = aStream->ParseInt32(QString("%1 names ptr").arg(GetName()));
|
||||
dataBytePtr = aStream->ParseInt32(QString("%1 data byte ptr").arg(GetName()));
|
||||
dataShortPtr = aStream->ParseInt32(QString("%1 data short ptr").arg(GetName()));
|
||||
dataIntPtr = aStream->ParseInt32(QString("%1 data int ptr").arg(GetName()));
|
||||
randomDataShortPtr = aStream->ParseInt32(QString("%1 random data short ptr").arg(GetName()));
|
||||
randomDataBytePtr = aStream->ParseInt32(QString("%1 random data byte ptr").arg(GetName()));
|
||||
randomDataIntPtr = aStream->ParseInt32(QString("%1 random data int ptr").arg(GetName()));
|
||||
|
||||
// Parse indices
|
||||
mIndices.ParseData(aStream);
|
||||
@ -102,33 +83,33 @@ void XAnimParts::ParseData(QDataStream *aStream) {
|
||||
mName.ParseData(aStream);
|
||||
if (namesPtr)
|
||||
{
|
||||
|
||||
mNames = aStream->ParseInt32(QString("%1 names").arg(GetName()));
|
||||
}
|
||||
mNotify.ParseData(aStream);
|
||||
mDeltaPart.ParseData(aStream);
|
||||
if (dataBytePtr)
|
||||
{
|
||||
*aStream >> mDataByte;
|
||||
mDataByte = aStream->ParseUInt8(QString("%1 data byte").arg(GetName()));
|
||||
}
|
||||
if (dataShortPtr)
|
||||
{
|
||||
*aStream >> mDataShort;
|
||||
mDataShort = aStream->ParseInt16(QString("%1 data short").arg(GetName()));
|
||||
}
|
||||
if (dataIntPtr)
|
||||
{
|
||||
*aStream >> mDataInt;
|
||||
mDataInt = aStream->ParseInt32(QString("%1 data int").arg(GetName()));
|
||||
}
|
||||
if (randomDataShortPtr)
|
||||
{
|
||||
*aStream >> mDataInt;
|
||||
mRandomDataShort = aStream->ParseInt16(QString("%1 random data short").arg(GetName()));
|
||||
}
|
||||
if (randomDataBytePtr)
|
||||
{
|
||||
*aStream >> mRandomDataByte;
|
||||
mRandomDataByte = aStream->ParseUInt8(QString("%1 random data byte").arg(GetName()));
|
||||
}
|
||||
if (randomDataIntPtr)
|
||||
{
|
||||
*aStream >> mRandomDataInt;
|
||||
mRandomDataInt = aStream->ParseInt32(QString("%1 random data int").arg(GetName()));
|
||||
}
|
||||
mIndices.ParseData(aStream);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user