CommonHostInterface: Fix controller masking for Start Disc
This commit is contained in:
parent
301bbb4924
commit
172ba1fc32
|
@ -2926,16 +2926,14 @@ void CommonHostInterface::GetGameInfo(const char* path, CDImage* image, std::str
|
||||||
{
|
{
|
||||||
GameDatabase database;
|
GameDatabase database;
|
||||||
GameDatabaseEntry database_entry;
|
GameDatabaseEntry database_entry;
|
||||||
if (database.Load() && database.GetEntryForDisc(image, &database_entry))
|
if (m_game_list->GetDatabaseEntryForDisc(image, &database_entry))
|
||||||
{
|
{
|
||||||
*code = std::move(database_entry.serial);
|
*code = std::move(database_entry.serial);
|
||||||
*title = std::move(database_entry.title);
|
*title = std::move(database_entry.title);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
*code = System::GetGameCodeForImage(image, true);
|
||||||
*code = System::GetGameCodeForImage(image, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*title = FileSystem::GetFileTitleFromPath(path);
|
*title = FileSystem::GetFileTitleFromPath(path);
|
||||||
|
@ -3054,11 +3052,20 @@ void CommonHostInterface::ApplyGameSettings(bool display_osd_messages)
|
||||||
|
|
||||||
const GameListEntry* ge = m_game_list->GetEntryForPath(System::GetRunningPath().c_str());
|
const GameListEntry* ge = m_game_list->GetEntryForPath(System::GetRunningPath().c_str());
|
||||||
if (ge)
|
if (ge)
|
||||||
|
{
|
||||||
ApplyControllerCompatibilitySettings(ge->supported_controllers, display_osd_messages);
|
ApplyControllerCompatibilitySettings(ge->supported_controllers, display_osd_messages);
|
||||||
|
ge->settings.ApplySettings(display_osd_messages);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameDatabaseEntry db_entry;
|
||||||
|
if (m_game_list->GetDatabaseEntryForCode(System::GetRunningCode(), &db_entry))
|
||||||
|
ApplyControllerCompatibilitySettings(db_entry.supported_controllers_mask, display_osd_messages);
|
||||||
|
|
||||||
const GameSettings::Entry* gs = m_game_list->GetGameSettings(System::GetRunningPath(), System::GetRunningCode());
|
const GameSettings::Entry* gs = m_game_list->GetGameSettingsForCode(System::GetRunningCode());
|
||||||
if (gs)
|
if (gs)
|
||||||
gs->ApplySettings(display_osd_messages);
|
gs->ApplySettings(display_osd_messages);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommonHostInterface::ApplyRendererFromGameSettings(const std::string& boot_filename)
|
void CommonHostInterface::ApplyRendererFromGameSettings(const std::string& boot_filename)
|
||||||
|
|
|
@ -580,6 +580,18 @@ const GameListCompatibilityEntry* GameList::GetCompatibilityEntryForCode(const s
|
||||||
return (iter != m_compatibility_list.end()) ? &iter->second : nullptr;
|
return (iter != m_compatibility_list.end()) ? &iter->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GameList::GetDatabaseEntryForCode(const std::string_view& code, GameDatabaseEntry* entry)
|
||||||
|
{
|
||||||
|
LoadDatabase();
|
||||||
|
return m_database.GetEntryForCode(code, entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GameList::GetDatabaseEntryForDisc(CDImage* image, GameDatabaseEntry* entry)
|
||||||
|
{
|
||||||
|
LoadDatabase();
|
||||||
|
return m_database.GetEntryForDisc(image, entry);
|
||||||
|
}
|
||||||
|
|
||||||
void GameList::SetSearchDirectoriesFromSettings(SettingsInterface& si)
|
void GameList::SetSearchDirectoriesFromSettings(SettingsInterface& si)
|
||||||
{
|
{
|
||||||
m_search_directories.clear();
|
m_search_directories.clear();
|
||||||
|
@ -1012,6 +1024,14 @@ const GameSettings::Entry* GameList::GetGameSettings(const std::string& filename
|
||||||
return m_game_settings.GetEntry(game_code);
|
return m_game_settings.GetEntry(game_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const GameSettings::Entry* GameList::GetGameSettingsForCode(const std::string& game_code)
|
||||||
|
{
|
||||||
|
if (!m_game_settings_load_tried)
|
||||||
|
LoadGameSettings();
|
||||||
|
|
||||||
|
return m_game_settings.GetEntry(game_code);
|
||||||
|
}
|
||||||
|
|
||||||
void GameList::UpdateGameSettings(const std::string& filename, const std::string& game_code,
|
void GameList::UpdateGameSettings(const std::string& filename, const std::string& game_code,
|
||||||
const std::string& game_title, const GameSettings::Entry& new_entry,
|
const std::string& game_title, const GameSettings::Entry& new_entry,
|
||||||
bool save_to_list /* = true */)
|
bool save_to_list /* = true */)
|
||||||
|
|
|
@ -102,6 +102,8 @@ public:
|
||||||
|
|
||||||
const GameListEntry* GetEntryForPath(const char* path) const;
|
const GameListEntry* GetEntryForPath(const char* path) const;
|
||||||
const GameListCompatibilityEntry* GetCompatibilityEntryForCode(const std::string& code) const;
|
const GameListCompatibilityEntry* GetCompatibilityEntryForCode(const std::string& code) const;
|
||||||
|
bool GetDatabaseEntryForCode(const std::string_view& code, GameDatabaseEntry* entry);
|
||||||
|
bool GetDatabaseEntryForDisc(CDImage* image, GameDatabaseEntry* entry);
|
||||||
|
|
||||||
void SetCacheFilename(std::string filename) { m_cache_filename = std::move(filename); }
|
void SetCacheFilename(std::string filename) { m_cache_filename = std::move(filename); }
|
||||||
void SetUserCompatibilityListFilename(std::string filename)
|
void SetUserCompatibilityListFilename(std::string filename)
|
||||||
|
@ -119,6 +121,7 @@ public:
|
||||||
static std::string ExportCompatibilityEntry(const GameListCompatibilityEntry* entry);
|
static std::string ExportCompatibilityEntry(const GameListCompatibilityEntry* entry);
|
||||||
|
|
||||||
const GameSettings::Entry* GetGameSettings(const std::string& filename, const std::string& game_code);
|
const GameSettings::Entry* GetGameSettings(const std::string& filename, const std::string& game_code);
|
||||||
|
const GameSettings::Entry* GetGameSettingsForCode(const std::string& game_code);
|
||||||
void UpdateGameSettings(const std::string& filename, const std::string& game_code, const std::string& game_title,
|
void UpdateGameSettings(const std::string& filename, const std::string& game_code, const std::string& game_title,
|
||||||
const GameSettings::Entry& new_entry, bool save_to_list = true);
|
const GameSettings::Entry& new_entry, bool save_to_list = true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue