Allow configuring the location on-screen of leaderboard trackers.

This commit is contained in:
Henrik Rydgård 2023-08-01 00:13:33 +02:00
parent 48d577014a
commit 3563d625b9
7 changed files with 20 additions and 2 deletions

View file

@ -283,6 +283,8 @@ static const ConfigSetting achievementSettings[] = {
ConfigSetting("AchievementsSoundEffects", &g_Config.bAchievementsSoundEffects, true, CfgFlag::DEFAULT),
ConfigSetting("AchievementsUnlockAudioFile", &g_Config.sAchievementsUnlockAudioFile, "", CfgFlag::DEFAULT),
ConfigSetting("AchievementsLeaderboardSubmitAudioFile", &g_Config.sAchievementsLeaderboardSubmitAudioFile, "", CfgFlag::DEFAULT),
ConfigSetting("AchievementsLeaderboardTrackerPos", &g_Config.iAchievementsLeaderboardTrackerPos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT),
};
static const ConfigSetting cpuSettings[] = {

View file

@ -486,6 +486,9 @@ public:
bool bAchievementsSoundEffects;
bool bAchievementsLogBadMemReads;
// Positioning of the various notifications
int iAchievementsLeaderboardTrackerPos;
// Customizations
std::string sAchievementsUnlockAudioFile;
std::string sAchievementsLeaderboardSubmitAudioFile;

View file

@ -857,6 +857,13 @@ void SystemInfoScreen::CreateTabs() {
g_OSD.ShowLeaderboardTracker(1, nullptr, false);
return UI::EVENT_DONE;
});
static const char *positions[] = { "Bottom Left", "Bottom Center", "Bottom Right", "Top Left", "Top Center", "Top Right", "Center Left", "Center Right", "None" };
auto ac = GetI18NCategory(I18NCat::ACHIEVEMENTS);
internals->Add(new ItemHeader(ac->T("Notifications")));
internals->Add(new PopupMultiChoice(&g_Config.iAchievementsLeaderboardTrackerPos, ac->T("Leaderboard tracker"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable);
#if PPSSPP_PLATFORM(ANDROID)
internals->Add(new Choice(si->T("Exception")))->OnClick.Add([&](UI::EventParams &) {
System_Notify(SystemNotification::TEST_JAVA_EXCEPTION);

View file

@ -271,7 +271,7 @@ void OnScreenMessagesView::Draw(UIContext &dc) {
// TODO: Add ability to override these with g_Config settings.
typeEdges[(size_t)OSDType::ACHIEVEMENT_CHALLENGE_INDICATOR] = ScreenEdgePosition::TOP_LEFT;
typeEdges[(size_t)OSDType::ACHIEVEMENT_PROGRESS] = ScreenEdgePosition::TOP_LEFT;
typeEdges[(size_t)OSDType::LEADERBOARD_TRACKER] = ScreenEdgePosition::TOP_LEFT;
typeEdges[(size_t)OSDType::LEADERBOARD_TRACKER] = (ScreenEdgePosition)g_Config.iAchievementsLeaderboardTrackerPos;
dc.SetFontScale(1.0f, 1.0f);

View file

@ -366,6 +366,11 @@ void RetroAchievementsSettingsScreen::CreateCustomizeTab(UI::ViewGroup *viewGrou
viewGroup->Add(new ItemHeader(ac->T("Sound effects")));
viewGroup->Add(new AudioFileChooser(&g_Config.sAchievementsUnlockAudioFile, ac->T("Achievement unlocked"), UISound::ACHIEVEMENT_UNLOCKED));
viewGroup->Add(new AudioFileChooser(&g_Config.sAchievementsLeaderboardSubmitAudioFile, ac->T("Leaderboard score submission"), UISound::LEADERBOARD_SUBMITTED));
static const char *positions[] = { "Bottom Left", "Bottom Center", "Bottom Right", "Top Left", "Top Center", "Top Right", "Center Left", "Center Right", "None" };
viewGroup->Add(new ItemHeader(ac->T("Notifications")));
viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsLeaderboardTrackerPos, ac->T("Leaderboard tracker"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable);
}
void RetroAchievementsSettingsScreen::CreateDeveloperToolsTab(UI::ViewGroup *viewGroup) {

View file

@ -42,6 +42,7 @@ In Encore mode - listings may be wrong below = In Encore mode - listings may be
Leaderboard score submission = Leaderboard score submission
Leaderboard submission is enabled = Leaderboard submission is enabled
Leaderboards = Leaderboards
Leaderboard tracker = Leaderboard tracker
Links = Links
Locked achievements = Locked achievements
Log bad memory accesses = Log bad memory accesses

View file

@ -10,7 +10,7 @@ Can't log in to RetroAchievements right now = Can't log in to RetroAchievements
Challenge Mode = Utmanings-läge
Challenge Mode (no savestates) = Utmanings-läge (inga sparade state)
Contacting RetroAchievements server... = Contacting RetroAchievements server...
Customize = Inställningar
Customize = Anpassa
Earned = Du har tjänat %d av %d achievements, och %d of %d poäng
Encore Mode = Encore-läge (kan ta achievements igen)
How to use RetroAchievements = Hur man använder RetroAchievements