file_sys: Add support for the BOSS ext save data archive. (#7231)

This commit is contained in:
Steveice10
2023-12-03 14:02:23 -08:00
committed by GitHub
parent ea9f522c0c
commit 875f5eaad5
7 changed files with 36 additions and 17 deletions

View File

@ -15,10 +15,16 @@
namespace FileSys {
enum class ExtSaveDataType {
Normal, ///< Regular non-shared ext save data
Shared, ///< Shared ext save data
Boss, ///< SpotPass ext save data
};
/// File system interface to the ExtSaveData archive
class ArchiveFactory_ExtSaveData final : public ArchiveFactory {
public:
ArchiveFactory_ExtSaveData(const std::string& mount_point, bool shared);
ArchiveFactory_ExtSaveData(const std::string& mount_point, ExtSaveDataType type_);
std::string GetName() const override {
return "ExtSaveData";
@ -42,8 +48,8 @@ public:
void WriteIcon(const Path& path, std::span<const u8> icon);
private:
bool shared; ///< Whether this archive represents an ExtSaveData archive or a SharedExtSaveData
/// archive
/// Type of ext save data archive being accessed.
ExtSaveDataType type;
/**
* This holds the full directory path for this archive, it is only set after a successful call
@ -59,7 +65,7 @@ private:
template <class Archive>
void serialize(Archive& ar, const unsigned int) {
ar& boost::serialization::base_object<ArchiveFactory>(*this);
ar& shared;
ar& type;
ar& mount_point;
}
friend class boost::serialization::access;