Fix: Parse data for asset list
This commit is contained in:
parent
6e58c8fc2f
commit
21379d133d
@ -10,6 +10,8 @@ XAssetList::XAssetList()
|
||||
, mAssetHeaders()
|
||||
, mZoneFile(nullptr)
|
||||
{
|
||||
SetType(ASSET_TYPE_ASSETLIST);
|
||||
SetName("Asset List");
|
||||
}
|
||||
|
||||
XAssetList::XAssetList(ZoneFile* aZoneFile)
|
||||
@ -29,30 +31,23 @@ XAssetList::~XAssetList()
|
||||
|
||||
}
|
||||
|
||||
void XAssetList::ParseData(QDataStream *aStream) {
|
||||
void XAssetList::ParseData(XDataStream *aStream) {
|
||||
// Parse string list
|
||||
if (IsDebug())
|
||||
{
|
||||
qDebug() << QString("[%1] Parsing data for %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(GetName());
|
||||
}
|
||||
mStringList.ParsePtr(aStream);
|
||||
mStringList.ParsePtr(aStream, false);
|
||||
|
||||
// Parse asset count and assets
|
||||
qint32 assetsPtr;
|
||||
*aStream
|
||||
>> mAssetCount
|
||||
>> assetsPtr;
|
||||
if (IsDebug())
|
||||
{
|
||||
qDebug() << QString("[%1] mAssetCount = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(mAssetCount);
|
||||
qDebug() << QString("[%1] assetsPtr = %2").arg(aStream->device()->pos(), 10, 10, QChar('0')).arg(assetsPtr);
|
||||
}
|
||||
mAssetCount = aStream->ParseUInt32(QString("%1 asset count").arg(GetName()));
|
||||
qint32 assetsPtr = aStream->ParseInt32(QString("%1 assets ptr").arg(GetName()));
|
||||
|
||||
mStringList.ParseData(aStream);
|
||||
|
||||
if (assetsPtr)
|
||||
{
|
||||
for (int i = 0; i < mAssetCount; i++)
|
||||
for (quint32 i = 0; i < mAssetCount; i++)
|
||||
{
|
||||
XAssetHeader assetHeader(mZoneFile);
|
||||
assetHeader.ParseData(aStream);
|
||||
@ -62,14 +57,22 @@ void XAssetList::ParseData(QDataStream *aStream) {
|
||||
|
||||
for (int i = 0; i < mAssetHeaders.size(); i++)
|
||||
{
|
||||
if (aStream->device()->pos() > 98000)
|
||||
{
|
||||
qDebug() << "test";
|
||||
}
|
||||
XAssetHeader assetHeader = mAssetHeaders[i];
|
||||
XAsset* asset = XAsset::Create(assetHeader.GetAssetType());
|
||||
if (asset)
|
||||
{
|
||||
asset->SetPtr(assetHeader.GetAssetPtr());
|
||||
asset->ParseData(aStream);
|
||||
|
||||
mAssets.append(asset);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void XAssetList::Clear()
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user