mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 06:39:46 -06:00
DiscIO/DirectoryBlob: Add a callback that allows patching the main.dol and FST of the game partition during blob construction.
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstddef>
|
||||
#include <functional>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
@ -182,7 +183,9 @@ public:
|
||||
DirectoryBlobPartition() = default;
|
||||
DirectoryBlobPartition(const std::string& root_directory, std::optional<bool> is_wii);
|
||||
DirectoryBlobPartition(DiscIO::VolumeDisc* volume, const DiscIO::Partition& partition,
|
||||
std::optional<bool> is_wii);
|
||||
std::optional<bool> is_wii,
|
||||
const std::function<void(std::vector<FSTBuilderNode>* fst_nodes,
|
||||
FSTBuilderNode* dol_node)>& fst_callback);
|
||||
|
||||
// We do not allow copying, because it might mess up the pointers inside DiscContents
|
||||
DirectoryBlobPartition(const DirectoryBlobPartition&) = delete;
|
||||
@ -252,7 +255,10 @@ class DirectoryBlobReader : public BlobReader
|
||||
|
||||
public:
|
||||
static std::unique_ptr<DirectoryBlobReader> Create(const std::string& dol_path);
|
||||
static std::unique_ptr<DirectoryBlobReader> Create(std::unique_ptr<DiscIO::VolumeDisc> volume);
|
||||
static std::unique_ptr<DirectoryBlobReader> Create(
|
||||
std::unique_ptr<DiscIO::VolumeDisc> volume,
|
||||
const std::function<void(std::vector<FSTBuilderNode>* fst_nodes, FSTBuilderNode* dol_node)>&
|
||||
fst_callback);
|
||||
|
||||
// We do not allow copying, because it might mess up the pointers inside DiscContents
|
||||
DirectoryBlobReader(const DirectoryBlobReader&) = delete;
|
||||
@ -288,7 +294,9 @@ private:
|
||||
|
||||
explicit DirectoryBlobReader(const std::string& game_partition_root,
|
||||
const std::string& true_root);
|
||||
explicit DirectoryBlobReader(std::unique_ptr<DiscIO::VolumeDisc> volume);
|
||||
explicit DirectoryBlobReader(std::unique_ptr<DiscIO::VolumeDisc> volume,
|
||||
const std::function<void(std::vector<FSTBuilderNode>* fst_nodes,
|
||||
FSTBuilderNode* dol_node)>& fst_callback);
|
||||
|
||||
const DirectoryBlobPartition* GetPartition(u64 offset, u64 size, u64 partition_data_offset) const;
|
||||
|
||||
|
Reference in New Issue
Block a user