mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2025-02-17 19:35:38 +00:00
Qt: Prompt user to enable HC mode on achievement login
This commit is contained in:
parent
41f821513b
commit
07fac1fb19
src/duckstation-qt
|
@ -75,6 +75,45 @@ void AchievementLoginDialog::processLoginResult(bool result, const QString& mess
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Host::GetBaseBoolSettingValue("Cheevos", "Enabled", false) &&
|
||||||
|
QMessageBox::question(this, tr("Enable Achievements"),
|
||||||
|
tr("Achievement tracking is not currently enabled. Your login will have no effect until "
|
||||||
|
"after tracking is enabled.\n\nDo you want to enable tracking now?"),
|
||||||
|
QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
Host::SetBaseBoolSettingValue("Cheevos", "Enabled", true);
|
||||||
|
Host::CommitBaseSettingChanges();
|
||||||
|
g_emu_thread->applySettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Host::GetBaseBoolSettingValue("Cheevos", "ChallengeMode", false) &&
|
||||||
|
QMessageBox::question(
|
||||||
|
this, tr("Enable Hardcore Mode"),
|
||||||
|
tr("Hardcore mode is not currently enabled. Enabling hardcore mode allows you to set times, scores, and "
|
||||||
|
"participate in game-specific leaderboards.\n\nHowever, hardcore mode also prevents the usage of save "
|
||||||
|
"states, cheats and slowdown functionality.\n\nDo you want to enable hardcore mode?"),
|
||||||
|
QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
Host::SetBaseBoolSettingValue("Cheevos", "ChallengeMode", true);
|
||||||
|
Host::CommitBaseSettingChanges();
|
||||||
|
g_emu_thread->applySettings();
|
||||||
|
|
||||||
|
bool has_active_game;
|
||||||
|
{
|
||||||
|
auto lock = Achievements::GetLock();
|
||||||
|
has_active_game = Achievements::HasActiveGame();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (has_active_game &&
|
||||||
|
QMessageBox::question(
|
||||||
|
QtUtils::GetRootWidget(this), tr("Reset System"),
|
||||||
|
tr("Hardcore mode will not be enabled until the system is reset. Do you want to reset the system now?")) ==
|
||||||
|
QMessageBox::Yes)
|
||||||
|
{
|
||||||
|
g_emu_thread->resetSystem();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
done(0);
|
done(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -210,6 +210,19 @@ void AchievementSettingsWidget::onLoginLogoutPressed()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
updateLoginState();
|
updateLoginState();
|
||||||
|
|
||||||
|
// Login can enable achievements/hardcore.
|
||||||
|
if (!m_ui.enable->isChecked() && Host::GetBaseBoolSettingValue("Cheevos", "Enabled", false))
|
||||||
|
{
|
||||||
|
QSignalBlocker sb(m_ui.enable);
|
||||||
|
m_ui.enable->setChecked(true);
|
||||||
|
updateEnableState();
|
||||||
|
}
|
||||||
|
if (!m_ui.hardcoreMode->isChecked() && Host::GetBaseBoolSettingValue("Cheevos", "ChallengeMode", false))
|
||||||
|
{
|
||||||
|
QSignalBlocker sb(m_ui.hardcoreMode);
|
||||||
|
m_ui.hardcoreMode->setChecked(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AchievementSettingsWidget::onViewProfilePressed()
|
void AchievementSettingsWidget::onViewProfilePressed()
|
||||||
|
|
Loading…
Reference in a new issue