mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 05:40:01 -06:00
Move ES_DIVerify's Movie-related code to a more logical place
This commit is contained in:
@ -9,15 +9,63 @@
|
||||
#include "Common/Logging/Log.h"
|
||||
#include "Common/NandPaths.h"
|
||||
#include "Common/SysConf.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/Movie.h"
|
||||
#include "Core/WiiRoot.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
namespace Core
|
||||
{
|
||||
static std::string s_temp_wii_root;
|
||||
|
||||
static void InitializeDeterministicWiiSaves()
|
||||
{
|
||||
std::string save_path =
|
||||
Common::GetTitleDataPath(SConfig::GetInstance().m_title_id, Common::FROM_SESSION_ROOT);
|
||||
|
||||
// TODO: Force the game to save to another location, instead of moving the user's save.
|
||||
if (Movie::IsPlayingInput() && Movie::IsConfigSaved() && Movie::IsStartingFromClearSave())
|
||||
{
|
||||
if (File::Exists(save_path + "banner.bin"))
|
||||
{
|
||||
if (File::Exists(save_path + "../backup/"))
|
||||
{
|
||||
// The last run of this game must have been to play back a movie, so their save is already
|
||||
// backed up.
|
||||
File::DeleteDirRecursively(save_path);
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef _WIN32
|
||||
MoveFile(UTF8ToTStr(save_path).c_str(), UTF8ToTStr(save_path + "../backup/").c_str());
|
||||
#else
|
||||
File::CopyDir(save_path, save_path + "../backup/");
|
||||
File::DeleteDirRecursively(save_path);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (File::Exists(save_path + "../backup/"))
|
||||
{
|
||||
// Delete the save made by a previous movie, and copy back the user's save.
|
||||
if (File::Exists(save_path + "banner.bin"))
|
||||
File::DeleteDirRecursively(save_path);
|
||||
#ifdef _WIN32
|
||||
MoveFile(UTF8ToTStr(save_path + "../backup/").c_str(), UTF8ToTStr(save_path).c_str());
|
||||
#else
|
||||
File::CopyDir(save_path + "../backup/", save_path);
|
||||
File::DeleteDirRecursively(save_path + "../backup/");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void InitializeWiiRoot(bool use_temporary)
|
||||
{
|
||||
ShutdownWiiRoot();
|
||||
|
||||
if (use_temporary)
|
||||
{
|
||||
s_temp_wii_root = File::CreateTempDir();
|
||||
@ -44,6 +92,8 @@ void InitializeWiiRoot(bool use_temporary)
|
||||
{
|
||||
File::SetUserPath(D_SESSION_WIIROOT_IDX, File::GetUserPath(D_WIIROOT_IDX));
|
||||
}
|
||||
|
||||
InitializeDeterministicWiiSaves();
|
||||
}
|
||||
|
||||
void ShutdownWiiRoot()
|
||||
|
Reference in New Issue
Block a user