diff options
Diffstat (limited to 'src/utils/Decompressor.h')
| -rw-r--r-- | src/utils/Decompressor.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/utils/Decompressor.h b/src/utils/Decompressor.h index 0cb5a01..093b12c 100644 --- a/src/utils/Decompressor.h +++ b/src/utils/Decompressor.h @@ -1,5 +1,6 @@ #pragma once +#include <BinaryReader.h> #include <vector> #include <cstdint> #include <unordered_map> @@ -23,12 +24,17 @@ struct DataChunk { struct DecompressedData { DataChunk* root; DataChunk segment; + + LUS::BinaryReader GetReader() const { + return LUS::BinaryReader(segment.data, segment.size); + } }; class Decompressor { public: static DataChunk* Decode(const std::vector<uint8_t>& buffer, uint32_t offset, CompressionType type); static DecompressedData AutoDecode(YAML::Node& node, std::vector<uint8_t>& buffer, std::optional<size_t> size = std::nullopt); + static DecompressedData AutoDecodeByOffset(uint32_t offset, size_t size, std::vector<uint8_t>& buffer); static uint32_t TranslateAddr(uint32_t addr, bool baseAddress = false); static bool IsSegmented(uint32_t addr); |
