Explorar el Código

Merge pull request #1880 from DarkLordZach/cache-storage

savedata_factory: Add CacheStorage and delete TemporaryStorage on boot
Hexagon12 hace 7 años
padre
commit
ee9e433517
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      src/core/file_sys/savedata_factory.cpp

+ 7 - 1
src/core/file_sys/savedata_factory.cpp

@@ -18,7 +18,11 @@ std::string SaveDataDescriptor::DebugInfo() const {
                        static_cast<u8>(type), title_id, user_id[1], user_id[0], save_id);
                        static_cast<u8>(type), title_id, user_id[1], user_id[0], save_id);
 }
 }
 
 
-SaveDataFactory::SaveDataFactory(VirtualDir save_directory) : dir(std::move(save_directory)) {}
+SaveDataFactory::SaveDataFactory(VirtualDir save_directory) : dir(std::move(save_directory)) {
+    // Delete all temporary storages
+    // On hardware, it is expected that temporary storage be empty at first use.
+    dir->DeleteSubdirectoryRecursive("temp");
+}
 
 
 SaveDataFactory::~SaveDataFactory() = default;
 SaveDataFactory::~SaveDataFactory() = default;
 
 
@@ -120,6 +124,8 @@ std::string SaveDataFactory::GetFullPath(SaveDataSpaceId space, SaveDataType typ
     case SaveDataType::TemporaryStorage:
     case SaveDataType::TemporaryStorage:
         return fmt::format("{}{:016X}/{:016X}{:016X}/{:016X}", out, 0, user_id[1], user_id[0],
         return fmt::format("{}{:016X}/{:016X}{:016X}/{:016X}", out, 0, user_id[1], user_id[0],
                            title_id);
                            title_id);
+    case SaveDataType::CacheStorage:
+        return fmt::format("{}save/cache/{:016X}", out, title_id);
     default:
     default:
         ASSERT_MSG(false, "Unrecognized SaveDataType: {:02X}", static_cast<u8>(type));
         ASSERT_MSG(false, "Unrecognized SaveDataType: {:02X}", static_cast<u8>(type));
     }
     }