[Projec64] Get last modified of saves working with unique dir

This commit is contained in:
zilmar 2016-06-04 16:58:42 +10:00
parent 8ea091a78a
commit e7d4341106
2 changed files with 14 additions and 14 deletions
Source/Project64/UserInterface

View File

@ -596,9 +596,9 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
return true; return true;
} }
stdstr CMainMenu::GetFileLastMod(stdstr FileName) stdstr CMainMenu::GetFileLastMod(const CPath & FileName)
{ {
HANDLE hFile = CreateFile(FileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, HANDLE hFile = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL); OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL);
if (hFile == INVALID_HANDLE_VALUE) if (hFile == INVALID_HANDLE_VALUE)
{ {
@ -644,22 +644,23 @@ std::wstring CMainMenu::GetSaveSlotString(int Slot)
stdstr LastSaveTime; stdstr LastSaveTime;
//check first save name //check first save name
stdstr _GoodName = g_Settings->LoadStringVal(Game_GoodName); CPath FileName(g_Settings->LoadStringVal(Directory_InstantSave).c_str(), "");
stdstr _InstantSaveDirectory = g_Settings->LoadStringVal(Directory_InstantSave); if (g_Settings->LoadBool(Setting_UniqueSaveDir))
stdstr CurrentSaveName; {
FileName.AppendDirectory(g_Settings->LoadStringVal(Game_UniqueSaveDir).c_str());
}
if (Slot != 0) if (Slot != 0)
{ {
CurrentSaveName.Format("%s.pj%d", _GoodName.c_str(), Slot); FileName.SetNameExtension(stdstr_f("%s.pj%d", g_Settings->LoadStringVal(Game_GoodName).c_str(), Slot).c_str());
} }
else else
{ {
CurrentSaveName.Format("%s.pj", _GoodName.c_str()); FileName.SetNameExtension(stdstr_f("%s.pj", g_Settings->LoadStringVal(Game_GoodName).c_str()).c_str());
} }
stdstr_f FileName("%s%s", _InstantSaveDirectory.c_str(), CurrentSaveName.c_str());
if (g_Settings->LoadDword(Setting_AutoZipInstantSave)) if (g_Settings->LoadDword(Setting_AutoZipInstantSave))
{ {
stdstr_f ZipFileName("%s.zip", FileName.c_str()); CPath ZipFileName(FileName.GetDriveDirectory(),stdstr_f("%s.zip", FileName.GetNameExtension().c_str()).c_str());
LastSaveTime = GetFileLastMod(ZipFileName); LastSaveTime = GetFileLastMod(ZipFileName);
} }
if (LastSaveTime.empty()) if (LastSaveTime.empty())
@ -670,19 +671,18 @@ std::wstring CMainMenu::GetSaveSlotString(int Slot)
// Check old file name // Check old file name
if (LastSaveTime.empty()) if (LastSaveTime.empty())
{ {
stdstr _RomName = g_Settings->LoadStringVal(Game_GameName);
if (Slot > 0) if (Slot > 0)
{ {
FileName.Format("%s%s.pj%d", _InstantSaveDirectory.c_str(), _RomName.c_str(), Slot); FileName.SetNameExtension(stdstr_f("%s.pj%d",g_Settings->LoadStringVal(Game_GameName), Slot).c_str());
} }
else else
{ {
FileName.Format("%s%s.pj", _InstantSaveDirectory.c_str(), _RomName.c_str()); FileName.SetNameExtension(stdstr_f("%s.pj",g_Settings->LoadStringVal(Game_GameName)).c_str());
} }
if (g_Settings->LoadBool(Setting_AutoZipInstantSave)) if (g_Settings->LoadBool(Setting_AutoZipInstantSave))
{ {
stdstr_f ZipFileName("%s.zip", FileName.c_str()); CPath ZipFileName(FileName.GetDriveDirectory(),stdstr_f("%s.zip", FileName.GetNameExtension().c_str()).c_str());
LastSaveTime = GetFileLastMod(ZipFileName); LastSaveTime = GetFileLastMod(ZipFileName);
} }
if (LastSaveTime.empty()) if (LastSaveTime.empty())

View File

@ -75,7 +75,7 @@ private:
void FillOutMenu(HMENU hMenu); void FillOutMenu(HMENU hMenu);
std::wstring GetSaveSlotString(int Slot); std::wstring GetSaveSlotString(int Slot);
stdstr GetFileLastMod(stdstr FileName); stdstr GetFileLastMod(const CPath & FileName);
void RebuildAccelerators(void); void RebuildAccelerators(void);
stdstr ChooseFileToOpen(HWND hParent); stdstr ChooseFileToOpen(HWND hParent);
void SetTraceModuleSetttings(SettingID Type); void SetTraceModuleSetttings(SettingID Type);