Skip to content

Commit

Permalink
Achievements: Fix a few minor issues
Browse files Browse the repository at this point in the history
  • Loading branch information
stenzek committed Oct 8, 2022
1 parent 8d53eb5 commit 42768c3
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 30 deletions.
7 changes: 5 additions & 2 deletions src/core/achievements.h
Expand Up @@ -15,7 +15,7 @@ extern bool DoState(StateWrapper& sw);
extern void GameChanged(const std::string& path, CDImage* image);

/// Re-enables hardcode mode if it is enabled in the settings.
extern void ResetChallengeMode();
extern bool ResetChallengeMode();

/// Forces hardcore mode off until next reset.
extern void DisableChallengeMode();
Expand Down Expand Up @@ -43,7 +43,10 @@ static constexpr inline bool ChallengeModeActive()
return false;
}

static inline void ResetChallengeMode() {}
static inline bool ResetChallengeMode()
{
return false;
}

static inline void DisableChallengeMode() {}

Expand Down
25 changes: 12 additions & 13 deletions src/core/system.cpp
Expand Up @@ -908,17 +908,16 @@ void System::ResetSystem()
#ifdef WITH_CHEEVOS
if (!Achievements::ConfirmSystemReset())
return;

if (Achievements::ResetChallengeMode())
ApplySettings(false);
#endif

InternalReset();
ResetPerformanceCounters();
ResetThrottler();
Host::AddOSDMessage(Host::TranslateStdString("OSDMessage", "System reset."));

#ifdef WITH_CHEEVOS
Achievements::ResetChallengeMode();
#endif

// need to clear this here, because of eject disc -> reset.
s_running_bios = !s_running_game_path.empty();
}
Expand Down Expand Up @@ -2925,21 +2924,21 @@ void System::UpdateRunningGame(const char* path, CDImage* image, bool booting)

g_texture_replacements.SetGameID(s_running_game_serial);

s_cheat_list.reset();
if (g_settings.auto_load_cheats && !Achievements::ChallengeModeActive())
LoadCheatListFromGameTitle();

UpdateGameSettingsLayer();
ApplySettings(true);

Host::OnGameChanged(s_running_game_path, s_running_game_serial, s_running_game_title);

#ifdef WITH_CHEEVOS
if (booting)
Achievements::ResetChallengeMode();

Achievements::GameChanged(s_running_game_path, image);
#endif

UpdateGameSettingsLayer();
ApplySettings(true);

s_cheat_list.reset();
if (g_settings.auto_load_cheats && !Achievements::ChallengeModeActive())
LoadCheatListFromGameTitle();

Host::OnGameChanged(s_running_game_path, s_running_game_serial, s_running_game_title);
}

bool System::CheckForSBIFile(CDImage* image)
Expand Down
24 changes: 12 additions & 12 deletions src/frontend-common/achievements.cpp
Expand Up @@ -498,9 +498,9 @@ void Achievements::UpdateSettings(const Settings& old_config)
}
else if (!s_challenge_mode && g_settings.achievements_challenge_mode)
{
Host::AddKeyedOSDMessage(
"challenge_mode_reset",
Host::TranslateStdString("Achievements", "Hardcore mode will be enabled on system reset."), 10.0f);
ImGuiFullscreen::ShowToast(
std::string(), Host::TranslateStdString("Achievements", "Hardcore mode will be enabled on system reset."),
10.0f);
}
}

Expand Down Expand Up @@ -560,13 +560,13 @@ void Achievements::DisableChallengeMode()
SetChallengeMode(false);
}

void Achievements::ResetChallengeMode()
bool Achievements::ResetChallengeMode()
{
if (!s_active)
return;
if (!s_active || s_challenge_mode == g_settings.achievements_challenge_mode)
return false;

if (s_challenge_mode != g_settings.achievements_challenge_mode)
SetChallengeMode(g_settings.achievements_challenge_mode);
SetChallengeMode(g_settings.achievements_challenge_mode);
return true;
}

void Achievements::SetChallengeMode(bool enabled)
Expand All @@ -579,10 +579,10 @@ void Achievements::SetChallengeMode(bool enabled)

if (HasActiveGame())
{
Host::AddKeyedOSDMessage("achievements_set_challenge_mode",
enabled ? Host::TranslateStdString("Achievements", "Hardcore mode is now enabled.") :
Host::TranslateStdString("Achievements", "Hardcore mode is now disabled."),
10.0f);
ImGuiFullscreen::ShowToast(std::string(),
enabled ? Host::TranslateStdString("Achievements", "Hardcore mode is now enabled.") :
Host::TranslateStdString("Achievements", "Hardcore mode is now disabled."),
10.0f);
}

if (HasActiveGame() && !IsTestModeActive())
Expand Down
2 changes: 1 addition & 1 deletion src/frontend-common/achievements.h
Expand Up @@ -119,7 +119,7 @@ void Logout();
void GameChanged(const std::string& path, CDImage* image);

/// Re-enables hardcode mode if it is enabled in the settings.
void ResetChallengeMode();
bool ResetChallengeMode();

/// Forces hardcore mode off until next reset.
void DisableChallengeMode();
Expand Down
5 changes: 4 additions & 1 deletion src/frontend-common/fullscreen_ui.cpp
Expand Up @@ -585,7 +585,10 @@ void FullscreenUI::CheckForConfigChanges(const Settings& old_settings)
// If achievements got disabled, we might have the menu open...
// That means we're going to be reading achievement state.
if (old_settings.achievements_enabled && !g_settings.achievements_enabled)
ReturnToMainWindow();
{
if (s_current_main_window == MainWindowType::Achievements || s_current_main_window == MainWindowType::Leaderboards)
ReturnToMainWindow();
}
#endif
}

Expand Down
2 changes: 1 addition & 1 deletion src/frontend-common/imgui_fullscreen.cpp
Expand Up @@ -2144,7 +2144,7 @@ void ImGuiFullscreen::DrawMessageDialog()
}
}

static float s_notification_vertical_position = 0.3f;
static float s_notification_vertical_position = 0.15f;
static float s_notification_vertical_direction = 1.0f;

float ImGuiFullscreen::GetNotificationVerticalPosition()
Expand Down

0 comments on commit 42768c3

Please sign in to comment.