Merge pull request #12582 from LillyJadeKatrin/retroachievements-bugfix-2

Improved achievements disabled messaging
This commit is contained in:
Admiral H. Curtiss 2024-02-18 03:49:44 +01:00 committed by GitHub
commit 982ad93355
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 10 additions and 5 deletions

View File

@ -884,10 +884,14 @@ void AchievementManager::SetDisabled(bool disable)
INFO_LOG_FMT(ACHIEVEMENTS, "Achievement Manager has been disabled."); INFO_LOG_FMT(ACHIEVEMENTS, "Achievement Manager has been disabled.");
OSD::AddMessage("Please close all games to re-enable achievements.", OSD::Duration::VERY_LONG, OSD::AddMessage("Please close all games to re-enable achievements.", OSD::Duration::VERY_LONG,
OSD::Color::RED); OSD::Color::RED);
m_update_callback();
} }
if (previously_disabled && !disable) if (previously_disabled && !disable)
{
INFO_LOG_FMT(ACHIEVEMENTS, "Achievement Manager has been re-enabled."); INFO_LOG_FMT(ACHIEVEMENTS, "Achievement Manager has been re-enabled.");
m_update_callback();
}
}; };
const AchievementManager::NamedIconMap& AchievementManager::GetChallengeIcons() const const AchievementManager::NamedIconMap& AchievementManager::GetChallengeIcons() const
@ -926,6 +930,7 @@ void AchievementManager::Logout()
{ {
std::lock_guard lg{m_lock}; std::lock_guard lg{m_lock};
CloseGame(); CloseGame();
SetDisabled(false);
m_player_badge.name.clear(); m_player_badge.name.clear();
Config::SetBaseOrCurrent(Config::RA_API_TOKEN, ""); Config::SetBaseOrCurrent(Config::RA_API_TOKEN, "");
} }
@ -937,6 +942,7 @@ void AchievementManager::Logout()
void AchievementManager::Shutdown() void AchievementManager::Shutdown()
{ {
CloseGame(); CloseGame();
SetDisabled(false);
m_is_runtime_initialized = false; m_is_runtime_initialized = false;
m_queue.Shutdown(); m_queue.Shutdown();
// DON'T log out - keep those credentials for next run. // DON'T log out - keep those credentials for next run.

View File

@ -170,6 +170,7 @@ void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::stri
return; return;
#ifdef USE_RETRO_ACHIEVEMENTS #ifdef USE_RETRO_ACHIEVEMENTS
if (game_id != "00000000")
AchievementManager::GetInstance().SetDisabled(true); AchievementManager::GetInstance().SetDisabled(true);
#endif // USE_RETRO_ACHIEVEMENTS #endif // USE_RETRO_ACHIEVEMENTS

View File

@ -291,6 +291,7 @@ void Stop() // - Hammertime!
#ifdef USE_RETRO_ACHIEVEMENTS #ifdef USE_RETRO_ACHIEVEMENTS
AchievementManager::GetInstance().CloseGame(); AchievementManager::GetInstance().CloseGame();
AchievementManager::GetInstance().SetDisabled(false);
#endif // USE_RETRO_ACHIEVEMENTS #endif // USE_RETRO_ACHIEVEMENTS
s_is_stopping = true; s_is_stopping = true;

View File

@ -150,10 +150,7 @@ void AchievementHeaderWidget::UpdateData()
m_game_progress_hard->setVisible(false); m_game_progress_hard->setVisible(false);
m_game_progress_soft->setVisible(false); m_game_progress_soft->setVisible(false);
m_rich_presence->setVisible(false); m_rich_presence->setVisible(false);
if (instance.IsDisabled()) m_locked_warning->setVisible(instance.IsDisabled());
{
m_locked_warning->setVisible(true);
}
} }
} }