diff options
author | Subv <subv2112@gmail.com> | 2014-12-16 00:33:41 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2014-12-17 19:21:38 -0500 |
commit | ea9ce0fba776eef8f9e4f3a86e71256091732a14 (patch) | |
tree | 9e698ba00993a4aff1df4d60f9fcf3cf135ee76c /src/core/file_sys/archive_savedata.cpp | |
parent | e6f440ea7f4d5f8c075a5735747ef8facbb4699a (diff) |
Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information
Got rid of the code duplication in File and Directory
Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.
FS_U: Use the correct error code when a file wasn't found
Diffstat (limited to 'src/core/file_sys/archive_savedata.cpp')
-rw-r--r-- | src/core/file_sys/archive_savedata.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/core/file_sys/archive_savedata.cpp b/src/core/file_sys/archive_savedata.cpp new file mode 100644 index 00000000..2414564e --- /dev/null +++ b/src/core/file_sys/archive_savedata.cpp @@ -0,0 +1,33 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include <sys/stat.h> + +#include "common/common_types.h" +#include "common/file_util.h" + +#include "core/file_sys/archive_savedata.h" +#include "core/file_sys/disk_archive.h" +#include "core/settings.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// FileSys namespace + +namespace FileSys { + +Archive_SaveData::Archive_SaveData(const std::string& mount_point, u64 program_id) + : DiskArchive(mount_point + Common::StringFromFormat("%016X", program_id) + DIR_SEP) { + LOG_INFO(Service_FS, "Directory %s set as SaveData.", this->mount_point.c_str()); +} + +bool Archive_SaveData::Initialize() { + if (!FileUtil::CreateFullPath(mount_point)) { + LOG_ERROR(Service_FS, "Unable to create SaveData path."); + return false; + } + + return true; +} + +} // namespace FileSys |