diff options
author | Subv <subv2112@gmail.com> | 2014-12-29 13:04:37 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2014-12-29 22:29:55 -0500 |
commit | 2c89d4d5cd4e308b04cebb1c9bca48e12f0945da (patch) | |
tree | ea0a85e43943ba76418f27a68572e8602dbd9839 /src/core/file_sys/archive_extsavedata.h | |
parent | 3d14eb285382740b144e5b047cb2ad072f6129ea (diff) |
Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
Diffstat (limited to 'src/core/file_sys/archive_extsavedata.h')
-rw-r--r-- | src/core/file_sys/archive_extsavedata.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/file_sys/archive_extsavedata.h b/src/core/file_sys/archive_extsavedata.h new file mode 100644 index 00000000..a3a14479 --- /dev/null +++ b/src/core/file_sys/archive_extsavedata.h @@ -0,0 +1,45 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_types.h" + +#include "core/file_sys/disk_archive.h" +#include "core/loader/loader.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// FileSys namespace + +namespace FileSys { + +/// File system interface to the ExtSaveData archive +class Archive_ExtSaveData final : public DiskArchive { +public: + Archive_ExtSaveData(const std::string& mount_point); + + /** + * Initialize the archive. + * @return true if it initialized successfully + */ + bool Initialize(); + + ResultCode Open(const Path& path) override; + ResultCode Format(const Path& path) const override; + std::string GetName() const override { return "ExtSaveData"; } + + const std::string& GetMountPoint() const override { + return concrete_mount_point; + } + +protected: + /** + * This holds the full directory path for this archive, it is only set after a successful call to Open, + * this is formed as <base extsavedatapath>/<type>/<high>/<low>. + * See GetExtSaveDataPath for the code that extracts this data from an archive path. + */ + std::string concrete_mount_point; +}; + +} // namespace FileSys |