diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2026-05-11 22:18:07 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2026-05-11 22:18:07 -0600 |
| commit | c478d07b981eea98acc897d5eff2003f61138272 (patch) | |
| tree | 659737de25291842ba097eb650f6187b2b8691b5 /src/Companion.cpp | |
| parent | f373d80d3cdb76ac77e9574687f58e303936f6f9 (diff) | |
Fixed samples being duplicated among other assets probably
Diffstat (limited to 'src/Companion.cpp')
| -rw-r--r-- | src/Companion.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp index 743368f..93aefbc 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -666,6 +666,11 @@ void Companion::ProcessFile(YAML::Node root) { void Companion::ProcessFile(YAML::Node root, std::atomic<size_t>& assetCount) { assetCount++; + // Reset per-file state so segment/offset settings from a previous file don't + // bleed into this file's Phase 1 gAddrMap registration. + gCurrentSegmentNumber = 0; + gCurrentFileOffset = 0; + gCurrentCompressionType = CompressionType::None; // Set compressed file offsets and compression type if (auto segments = root[":config"]["segments"]) { if (segments.IsSequence() && segments.size() > 0) { @@ -711,7 +716,8 @@ void Companion::ProcessFile(YAML::Node root, std::atomic<size_t>& assetCount) { node["path"] = gCurrentVirtualPath; } - this->gAddrMap[this->gCurrentFile][node["offset"].as<uint32_t>()] = std::make_tuple(output, node); + auto off = node["offset"].as<uint32_t>(); + this->gAddrMap[this->gCurrentFile][off] = std::make_tuple(output, node); } // Stupid hack because the iteration broke the assets |
