diff --git a/apps/bsatool/bsatool.cpp b/apps/bsatool/bsatool.cpp index b62a438294..90685dfe1d 100644 --- a/apps/bsatool/bsatool.cpp +++ b/apps/bsatool/bsatool.cpp @@ -170,8 +170,8 @@ int list(std::unique_ptr& bsa, Arguments& info) // Long format std::ios::fmtflags f(std::cout.flags()); std::cout << std::setw(50) << std::left << file.name(); - std::cout << std::setw(8) << std::left << std::dec << file.fileSize; - std::cout << "@ 0x" << std::hex << file.offset << std::endl; + std::cout << std::setw(8) << std::left << std::dec << file.mFileSize; + std::cout << "@ 0x" << std::hex << file.mOffset << std::endl; std::cout.flags(f); } else diff --git a/components/bsa/ba2gnrlfile.cpp b/components/bsa/ba2gnrlfile.cpp index dcef09296e..0ff6cd030c 100644 --- a/components/bsa/ba2gnrlfile.cpp +++ b/components/bsa/ba2gnrlfile.cpp @@ -61,8 +61,8 @@ namespace Bsa mFolders[dirHash][{ nameHash, extHash }] = file; FileStruct fileStruct{}; - fileStruct.fileSize = file.size; - fileStruct.offset = file.offset; + fileStruct.mFileSize = file.size; + fileStruct.mOffset = file.offset; mFiles.push_back(fileStruct); } } diff --git a/components/bsa/bsafile.cpp b/components/bsa/bsafile.cpp index 948b9dac8d..eaf4542338 100644 --- a/components/bsa/bsafile.cpp +++ b/components/bsa/bsafile.cpp @@ -54,7 +54,7 @@ BSAFile::Hash getHash(const std::string& name) sum ^= (((unsigned)(name[i])) << (off & 0x1F)); off += 8; } - hash.low = sum; + hash.mLow = sum; for (sum = off = 0; i < name.size(); i++) { @@ -64,7 +64,7 @@ BSAFile::Hash getHash(const std::string& name) sum = (sum << (32 - n)) | (sum >> n); // binary "rotate right" off += 8; } - hash.high = sum; + hash.mHigh = sum; return hash; } @@ -166,11 +166,11 @@ void BSAFile::readHeader() for (size_t i = 0; i < filenum; i++) { FileStruct& fs = mFiles[i]; - fs.fileSize = offsets[i * 2]; - fs.offset = static_cast(offsets[i * 2 + 1] + fileDataOffset); + fs.mFileSize = offsets[i * 2]; + fs.mOffset = static_cast(offsets[i * 2 + 1] + fileDataOffset); auto namesOffset = offsets[2 * filenum + i]; fs.setNameInfos(namesOffset, &mStringBuf); - fs.hash = hashes[i]; + fs.mHash = hashes[i]; if (namesOffset >= mStringBuf.size()) { @@ -185,13 +185,13 @@ void BSAFile::readHeader() endOfNameBuffer = std::max(endOfNameBuffer, namesOffset + std::strlen(fs.name()) + 1); assert(endOfNameBuffer <= mStringBuf.size()); - if (fs.offset + fs.fileSize > fsize) + if (fs.mOffset + fs.mFileSize > fsize) fail("Archive contains offsets outside itself"); } mStringBuf.resize(endOfNameBuffer); std::sort(mFiles.begin(), mFiles.end(), - [](const FileStruct& left, const FileStruct& right) { return left.offset < right.offset; }); + [](const FileStruct& left, const FileStruct& right) { return left.mOffset < right.mOffset; }); mIsLoaded = true; } @@ -203,7 +203,7 @@ void Bsa::BSAFile::writeHeader() uint32_t head[3]; head[0] = 0x100; - auto fileDataOffset = mFiles.empty() ? 12 : mFiles.front().offset; + auto fileDataOffset = mFiles.empty() ? 12 : mFiles.front().mOffset; head[1] = static_cast(fileDataOffset - 12 - 8 * mFiles.size()); output.seekp(0, std::ios_base::end); @@ -213,7 +213,7 @@ void Bsa::BSAFile::writeHeader() output.write(reinterpret_cast(head), 12); std::sort(mFiles.begin(), mFiles.end(), [](const FileStruct& left, const FileStruct& right) { - return std::make_pair(left.hash.low, left.hash.high) < std::make_pair(right.hash.low, right.hash.high); + return std::make_pair(left.mHash.mLow, left.mHash.mHigh) < std::make_pair(right.mHash.mLow, right.mHash.mHigh); }); size_t filenum = mFiles.size(); @@ -222,10 +222,10 @@ void Bsa::BSAFile::writeHeader() for (size_t i = 0; i < filenum; i++) { auto& f = mFiles[i]; - offsets[i * 2] = f.fileSize; - offsets[i * 2 + 1] = f.offset - fileDataOffset; - offsets[2 * filenum + i] = f.namesOffset; - hashes[i] = f.hash; + offsets[i * 2] = f.mFileSize; + offsets[i * 2 + 1] = f.mOffset - fileDataOffset; + offsets[2 * filenum + i] = f.mNameOffset; + hashes[i] = f.mHash; } output.write(reinterpret_cast(offsets.data()), sizeof(uint32_t) * offsets.size()); output.write(reinterpret_cast(mStringBuf.data()), mStringBuf.size()); @@ -265,7 +265,7 @@ void Bsa::BSAFile::close() Files::IStreamPtr Bsa::BSAFile::getFile(const FileStruct* file) { - return Files::openConstrainedFileStream(mFilepath, file->offset, file->fileSize); + return Files::openConstrainedFileStream(mFilepath, file->mOffset, file->mFileSize); } void Bsa::BSAFile::addFile(const std::string& filename, std::istream& file) @@ -281,33 +281,33 @@ void Bsa::BSAFile::addFile(const std::string& filename, std::istream& file) FileStruct newFile; file.seekg(0, std::ios::end); - newFile.fileSize = static_cast(file.tellg()); + newFile.mFileSize = static_cast(file.tellg()); newFile.setNameInfos(mStringBuf.size(), &mStringBuf); - newFile.hash = getHash(filename); + newFile.mHash = getHash(filename); if (mFiles.empty()) - newFile.offset = static_cast(newStartOfDataBuffer); + newFile.mOffset = static_cast(newStartOfDataBuffer); else { std::vector buffer; - while (mFiles.front().offset < newStartOfDataBuffer) + while (mFiles.front().mOffset < newStartOfDataBuffer) { FileStruct& firstFile = mFiles.front(); - buffer.resize(firstFile.fileSize); + buffer.resize(firstFile.mFileSize); - stream.seekg(firstFile.offset, std::ios::beg); - stream.read(buffer.data(), firstFile.fileSize); + stream.seekg(firstFile.mOffset, std::ios::beg); + stream.read(buffer.data(), firstFile.mFileSize); stream.seekp(0, std::ios::end); - firstFile.offset = static_cast(stream.tellp()); + firstFile.mOffset = static_cast(stream.tellp()); - stream.write(buffer.data(), firstFile.fileSize); + stream.write(buffer.data(), firstFile.mFileSize); // ensure sort order is preserved std::rotate(mFiles.begin(), mFiles.begin() + 1, mFiles.end()); } stream.seekp(0, std::ios::end); - newFile.offset = static_cast(stream.tellp()); + newFile.mOffset = static_cast(stream.tellp()); } mStringBuf.insert(mStringBuf.end(), filename.begin(), filename.end()); diff --git a/components/bsa/bsafile.hpp b/components/bsa/bsafile.hpp index 7b910208d8..20e3180533 100644 --- a/components/bsa/bsafile.hpp +++ b/components/bsa/bsafile.hpp @@ -54,7 +54,8 @@ namespace Bsa #pragma pack(1) struct Hash { - uint32_t low, high; + uint32_t mLow; + uint32_t mHigh; }; #pragma pack(pop) @@ -63,21 +64,22 @@ namespace Bsa { void setNameInfos(size_t index, std::vector* stringBuf) { - namesOffset = static_cast(index); - namesBuffer = stringBuf; + mNameOffset = static_cast(index); + mNamesBuffer = stringBuf; } // File size and offset in file. We store the offset from the // beginning of the file, not the offset into the data buffer // (which is what is stored in the archive.) - uint32_t fileSize, offset; - Hash hash; + uint32_t mFileSize = 0; + uint32_t mOffset = 0; + Hash mHash{}; // Zero-terminated file name - const char* name() const { return &(*namesBuffer)[namesOffset]; } + const char* name() const { return &(*mNamesBuffer)[mNameOffset]; } - uint32_t namesOffset = 0; - std::vector* namesBuffer = nullptr; + uint32_t mNameOffset = 0; + std::vector* mNamesBuffer = nullptr; }; typedef std::vector FileList; diff --git a/components/bsa/compressedbsafile.cpp b/components/bsa/compressedbsafile.cpp index 655a4d2844..e9005f327d 100644 --- a/components/bsa/compressedbsafile.cpp +++ b/components/bsa/compressedbsafile.cpp @@ -181,8 +181,8 @@ namespace Bsa for (auto& [hash, fileRec] : folderMap.mFiles) { FileStruct fileStruct{}; - fileStruct.fileSize = fileRec.mSize & (~FileSizeFlag_Compression); - fileStruct.offset = fileRec.mOffset; + fileStruct.mFileSize = fileRec.mSize & (~FileSizeFlag_Compression); + fileStruct.mOffset = fileRec.mOffset; fileStruct.setNameInfos(0, &fileRec.mName); mFiles.emplace_back(fileStruct); }