GameList: Fix cover search from game serial/code

This commit is contained in:
Connor McLaughlin 2020-09-24 12:22:29 +10:00
parent 4274bc1daf
commit 41f36d0673

View file

@ -1118,16 +1118,22 @@ std::string GameList::GetCoverImagePathForEntry(const GameListEntry* entry)
for (const char* extension : extensions) for (const char* extension : extensions)
{ {
// try the title // try the title
if (!entry->title.empty())
{
cover_path.Format("%s" FS_OSPATH_SEPARATOR_STR "covers" FS_OSPATH_SEPARATOR_STR "%s.%s", cover_path.Format("%s" FS_OSPATH_SEPARATOR_STR "covers" FS_OSPATH_SEPARATOR_STR "%s.%s",
g_host_interface->GetUserDirectory().c_str(), entry->title.c_str(), extension); g_host_interface->GetUserDirectory().c_str(), entry->title.c_str(), extension);
if (FileSystem::FileExists(cover_path)) if (FileSystem::FileExists(cover_path))
return std::string(cover_path.GetCharArray()); return std::string(cover_path.GetCharArray());
}
// then the code // then the code
if (!entry->code.empty())
{
cover_path.Format("%s" FS_OSPATH_SEPARATOR_STR "covers" FS_OSPATH_SEPARATOR_STR "%s.%s", cover_path.Format("%s" FS_OSPATH_SEPARATOR_STR "covers" FS_OSPATH_SEPARATOR_STR "%s.%s",
g_host_interface->GetUserDirectory().c_str(), entry->title.c_str(), extension); g_host_interface->GetUserDirectory().c_str(), entry->code.c_str(), extension);
if (FileSystem::FileExists(cover_path)) if (FileSystem::FileExists(cover_path))
return std::string(cover_path.GetCharArray()); return std::string(cover_path.GetCharArray());
}
// and the file title if it differs // and the file title if it differs
const std::string_view file_title = GetFileNameFromPath(entry->path.c_str()); const std::string_view file_title = GetFileNameFromPath(entry->path.c_str());