change filename of isocache to always include extension and filesize.
Fixes issue 3669. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6541 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
ef093a4d35
commit
8fd825c18c
|
@ -35,7 +35,7 @@
|
||||||
#include "ChunkFile.h"
|
#include "ChunkFile.h"
|
||||||
#include "../resources/no_banner.cpp"
|
#include "../resources/no_banner.cpp"
|
||||||
|
|
||||||
#define CACHE_REVISION 0x10A
|
#define CACHE_REVISION 0x10B
|
||||||
|
|
||||||
#define DVD_BANNER_WIDTH 96
|
#define DVD_BANNER_WIDTH 96
|
||||||
#define DVD_BANNER_HEIGHT 32
|
#define DVD_BANNER_HEIGHT 32
|
||||||
|
@ -179,20 +179,16 @@ void GameListItem::DoState(PointerWrap &p)
|
||||||
|
|
||||||
std::string GameListItem::CreateCacheFilename()
|
std::string GameListItem::CreateCacheFilename()
|
||||||
{
|
{
|
||||||
std::string Filename, LegalPathname;
|
std::string Filename, LegalPathname, extension;
|
||||||
SplitPath(m_FileName, &LegalPathname, &Filename, NULL);
|
SplitPath(m_FileName, &LegalPathname, &Filename, &extension);
|
||||||
|
|
||||||
if (Filename.empty()) return Filename; // Disc Drive
|
if (Filename.empty()) return Filename; // Disc Drive
|
||||||
|
|
||||||
|
// Filename.extension_HashOfFolderPath_Size.cache
|
||||||
// Append hash to prevent ISO name-clashing in different folders.
|
// Append hash to prevent ISO name-clashing in different folders.
|
||||||
Filename.append(StringFromFormat("%x",
|
Filename.append(StringFromFormat("%s_%x_%llx.cache",
|
||||||
HashFletcher((const u8 *)LegalPathname.c_str(), LegalPathname.size())));
|
extension.c_str(), HashFletcher((const u8 *)LegalPathname.c_str(), LegalPathname.size()),
|
||||||
|
File::GetSize(m_FileName.c_str())));
|
||||||
// We add gcz to the cache file if the file is compressed to avoid it reading
|
|
||||||
// the uncompressed file's cache if it has the same name, but not the same ext.
|
|
||||||
if (DiscIO::IsCompressedBlob(m_FileName.c_str()))
|
|
||||||
Filename.append(".gcz");
|
|
||||||
Filename.append(".cache");
|
|
||||||
|
|
||||||
std::string fullname(std::string(File::GetUserPath(D_CACHE_IDX)));
|
std::string fullname(std::string(File::GetUserPath(D_CACHE_IDX)));
|
||||||
fullname += Filename;
|
fullname += Filename;
|
||||||
|
|
Loading…
Reference in New Issue