Update branch to main

This commit is contained in:
= 2025-04-23 18:07:57 -04:00
parent 2f24c704ba
commit a94bb60ca9

View File

@ -314,12 +314,26 @@ RawFile ZoneFile_COD5::pParseAsset_RawFile(QDataStream *aZoneFileStream) {
*aZoneFileStream >> scriptPathChar;
}
result.path.replace(",", "");
const QStringList pathParts = result.path.split('/');
if (pathParts.size() == 0) {
qDebug() << "Failed to parse ff path! " << result.path;
exit(-1);
}
if (result.path.contains(".bik")) {
qDebug() << "rawFileLength: " << result.length;
QByteArray bikData(result.length, Qt::Uninitialized);
aZoneFileStream->readRawData(bikData.data(), result.length);
//QFile bikFile(QDir::currentPath() + "/" + rawFilePath.split('/').last());
//qDebug() << bikFile.fileName();
//if (!bikFile.open(QIODevice::WriteOnly)) {
// qWarning() << "Failed to open .bik file for writing!";
// return;
//}
//qDebug() << QString("%1: %2").arg(rawFilePath).arg(bikFile.fileName());
//bikFile.write(bikData);
} else {
// Parse gsc contents
char rawFileContentsChar;
*aZoneFileStream >> rawFileContentsChar;
@ -327,6 +341,7 @@ RawFile ZoneFile_COD5::pParseAsset_RawFile(QDataStream *aZoneFileStream) {
result.contents += rawFileContentsChar;
*aZoneFileStream >> rawFileContentsChar;
}
}
return result;
}
@ -396,8 +411,64 @@ Model ZoneFile_COD5::pParseAsset_Model(QDataStream *aZoneFileStream) {
}
Material ZoneFile_COD5::pParseAsset_Material(QDataStream *aZoneFileStream) {
Q_UNUSED(aZoneFileStream);
aZoneFileStream->skipRawData(27 * 4);
qint32 materialNamePtr;
*aZoneFileStream >> materialNamePtr;
qDebug() << "materialNamePtr: " << materialNamePtr;
if (materialNamePtr == -1) {
QString materialName;
char materialNameChar;
*aZoneFileStream >> materialNameChar;
while (materialNameChar != 0) {
materialName += materialNameChar;
*aZoneFileStream >> materialNameChar;
}
qDebug() << "Parsing Material: " << materialName;
}
aZoneFileStream->skipRawData(3 * 4);
qint32 compressionPtr, compression, unknownSectionPtr;
*aZoneFileStream >> compressionPtr;
qDebug() << "compressionPtr: " << compressionPtr;
if (compressionPtr == -1) {
*aZoneFileStream >> compression;
qDebug() << QString("Found material with DXT%1 compression!").arg(compression);
*aZoneFileStream >> unknownSectionPtr;
qDebug() << "unknownSectionPtr: " << unknownSectionPtr;
if (unknownSectionPtr == -2) {
aZoneFileStream->skipRawData(6 * 4);
}
}
qint32 imageNamePtr;
*aZoneFileStream >> imageNamePtr;
qDebug() << "imageNamePtr: " << imageNamePtr;
if (imageNamePtr == -1) {
QString imageName;
char imageNameChar;
*aZoneFileStream >> imageNameChar;
while (imageNameChar != 0) {
imageName += imageNameChar;
*aZoneFileStream >> imageNameChar;
}
qDebug() << "- Embeded image: " << imageName;
}
QByteArray compressionData(4, Qt::Uninitialized);
QString compressionStr;
if (compressionPtr == -1) {
aZoneFileStream->skipRawData(2 * 4);
aZoneFileStream->readRawData(compressionData.data(), 4);
aZoneFileStream->skipRawData(4);
compressionStr = QString::fromUtf8(compressionData);
aZoneFileStream->skipRawData(4);
}
aZoneFileStream->skipRawData(4);
// TODO: Fill out this material
return Material();
}