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