MemoryCardIconCache: Ignore shared cards

This commit is contained in:
Stenzek 2024-07-10 21:47:02 +10:00
parent 11f7bfc461
commit 226a8eac81
No known key found for this signature in database
3 changed files with 10 additions and 4 deletions

View file

@ -105,8 +105,9 @@ bool MemoryCardIconCache::Reload()
const MemoryCardImage::IconFrame* MemoryCardIconCache::Lookup(std::string_view serial, std::string_view path)
{
std::string memcard_path = System::GetGameMemoryCardPath(serial, path, 0);
if (memcard_path.empty())
MemoryCardType type;
std::string memcard_path = System::GetGameMemoryCardPath(serial, path, 0, &type);
if (memcard_path.empty() || type == MemoryCardType::Shared)
return nullptr;
FILESYSTEM_STAT_DATA sd;

View file

@ -4997,7 +4997,8 @@ void System::DeleteSaveStates(const char* serial, bool resume)
}
}
std::string System::GetGameMemoryCardPath(std::string_view serial, std::string_view path, u32 slot)
std::string System::GetGameMemoryCardPath(std::string_view serial, std::string_view path, u32 slot,
MemoryCardType* out_type)
{
const char* section = "MemoryCards";
const TinyString type_key = TinyString::from_format("Card{}Type", slot + 1);
@ -5034,6 +5035,9 @@ std::string System::GetGameMemoryCardPath(std::string_view serial, std::string_v
type = MemoryCardType::Shared;
}
if (out_type)
*out_type = type;
std::string ret;
switch (type)
{

View file

@ -417,7 +417,8 @@ std::optional<ExtendedSaveStateInfo> GetExtendedSaveStateInfo(const char* path);
void DeleteSaveStates(const char* serial, bool resume);
/// Returns the path to the memory card for the specified game, considering game settings.
std::string GetGameMemoryCardPath(std::string_view serial, std::string_view path, u32 slot);
std::string GetGameMemoryCardPath(std::string_view serial, std::string_view path, u32 slot,
MemoryCardType* out_type = nullptr);
/// Returns intended output volume considering fast forwarding.
s32 GetAudioOutputVolume();