RiivolutionPatcher: Load external files with a layer of indirection during the patching process to properly resolve the paths given in the XML.

This also may eventually allow loading patches from sources other than the 1:1 expected file structure host file system, such as memory or an archive file.
This commit is contained in:
Admiral H. Curtiss 2021-09-28 06:12:45 +02:00
parent 175f225ac1
commit 6ec4af7ea4
No known key found for this signature in database
GPG key ID: F051B4C4044F33FB
5 changed files with 260 additions and 51 deletions

View file

@ -13,9 +13,12 @@
#include "Common/FileUtil.h"
#include "Common/IOFile.h"
#include "Common/StringUtil.h"
#include "DiscIO/RiivolutionPatcher.h"
namespace DiscIO::Riivolution
{
Patch::~Patch() = default;
std::optional<Disc> ParseFile(const std::string& filename)
{
::File::IOFile f(filename, "rb");