Fix: Parse Raw Asset Type and Asset Pointer

Adds parsing logic for the raw asset type and asset pointer within the `XAssetHeader` class. This enables the retrieval of these values during data stream parsing, facilitating asset identification and management.
This commit is contained in:
njohnson 2025-09-10 21:56:10 -04:00
parent 99d2885f9c
commit d267ad19f5

View File

@ -3,41 +3,39 @@
XAssetHeader::XAssetHeader() XAssetHeader::XAssetHeader()
: XAsset() : XAsset()
, mRawType(0)
, mAssetType() , mAssetType()
, mAssetPtr(0) , mAssetPtr(0)
, mZoneFile(nullptr) , mZoneFile(nullptr)
{ {
SetName("Asset Header");
} }
XAssetHeader::XAssetHeader(ZoneFile *aZoneFile) XAssetHeader::XAssetHeader(ZoneFile *aZoneFile)
: XAsset() : XAsset()
, mRawType(0)
, mAssetType() , mAssetType()
, mAssetPtr(0) , mAssetPtr(0)
, mZoneFile(aZoneFile) , mZoneFile(aZoneFile)
{ {
SetName("Asset Header");
} }
XAssetHeader::~XAssetHeader() void XAssetHeader::ParseData(XDataStream *aStream)
{ {
mRawType = aStream->ParseUInt32(QString("%1 raw type").arg(GetName()));
mAssetPtr = aStream->ParseInt32(QString("%1 asset ptr").arg(GetName()));
} mAssetType = mZoneFile->GetType(mRawType);
void XAssetHeader::ParseData(QDataStream *aStream) qDebug() << "Found asset:" << XAssetTypeToString(mAssetType) << QString::number(mRawType, 16);
{
quint32 rawAssetType;
*aStream
>> rawAssetType
>> mAssetPtr;
mAssetType = mZoneFile->GetType(rawAssetType);
} }
void XAssetHeader::Clear() void XAssetHeader::Clear()
{ {
mAssetType = ASSET_TYPE_NONE; mAssetType = ASSET_TYPE_NONE;
mAssetPtr = 0; mAssetPtr = 0;
mRawType = 0;
} }
XAssetType XAssetHeader::GetAssetType() const XAssetType XAssetHeader::GetAssetType() const
@ -45,6 +43,11 @@ XAssetType XAssetHeader::GetAssetType() const
return mAssetType; return mAssetType;
} }
quint32 XAssetHeader::GetRawAssetType() const
{
return mRawType;
}
qint32 XAssetHeader::GetAssetPtr() const qint32 XAssetHeader::GetAssetPtr() const
{ {
return mAssetPtr; return mAssetPtr;