diff --git a/Common/System/OSD.cpp b/Common/System/OSD.cpp index 6394aa532e..7c8388fda9 100644 --- a/Common/System/OSD.cpp +++ b/Common/System/OSD.cpp @@ -200,7 +200,7 @@ void OnScreenDisplay::ShowLeaderboardTracker(int leaderboardTrackerID, const cha } void OnScreenDisplay::ShowLeaderboardStartEnd(const std::string &title, const std::string &description, bool started) { - g_OSD.Show(OSDType::MESSAGE_INFO, title, description, 3.0f); + g_OSD.Show(OSDType::LEADERBOARD_STARTED_FAILED, title, description, 3.0f); } @@ -275,7 +275,7 @@ void OnScreenDisplay::ClearAchievementStuff() { case OSDType::ACHIEVEMENT_UNLOCKED: case OSDType::ACHIEVEMENT_PROGRESS: case OSDType::LEADERBOARD_TRACKER: - case OSDType::LEADERBOARD_START_END: + case OSDType::LEADERBOARD_STARTED_FAILED: case OSDType::LEADERBOARD_SUBMITTED: iter.endTime = now; break; diff --git a/Common/System/OSD.h b/Common/System/OSD.h index 4d7e8adf06..dd288c01a2 100644 --- a/Common/System/OSD.h +++ b/Common/System/OSD.h @@ -21,7 +21,7 @@ enum class OSDType { ACHIEVEMENT_CHALLENGE_INDICATOR, // Achievement icon ONLY, no auto-hide LEADERBOARD_TRACKER, - LEADERBOARD_START_END, + LEADERBOARD_STARTED_FAILED, LEADERBOARD_SUBMITTED, PROGRESS_BAR, diff --git a/Core/Config.cpp b/Core/Config.cpp index 8c61477dfa..cfd4c6aa85 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -285,6 +285,11 @@ static const ConfigSetting achievementSettings[] = { ConfigSetting("AchievementsLeaderboardSubmitAudioFile", &g_Config.sAchievementsLeaderboardSubmitAudioFile, "", CfgFlag::DEFAULT), ConfigSetting("AchievementsLeaderboardTrackerPos", &g_Config.iAchievementsLeaderboardTrackerPos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT), + ConfigSetting("AchievementsLeaderboardStartedOrFailedPos", &g_Config.iAchievementsLeaderboardStartedOrFailedPos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT), + ConfigSetting("AchievementsLeaderboardSubmittedPos", &g_Config.iAchievementsLeaderboardSubmittedPos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT), + ConfigSetting("AchievementsProgressPos", &g_Config.iAchievementsProgressPos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT), + ConfigSetting("AchievementsChallengePos", &g_Config.iAchievementsChallengePos, (int)ScreenEdgePosition::TOP_LEFT, CfgFlag::DEFAULT), + ConfigSetting("AchievementsUnlockedPos", &g_Config.iAchievementsUnlockedPos, (int)ScreenEdgePosition::TOP_CENTER, CfgFlag::DEFAULT), }; static const ConfigSetting cpuSettings[] = { diff --git a/Core/Config.h b/Core/Config.h index 78f3849927..2c45283c25 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -488,6 +488,11 @@ public: // Positioning of the various notifications int iAchievementsLeaderboardTrackerPos; + int iAchievementsLeaderboardStartedOrFailedPos; + int iAchievementsLeaderboardSubmittedPos; + int iAchievementsProgressPos; + int iAchievementsChallengePos; + int iAchievementsUnlockedPos; // Customizations std::string sAchievementsUnlockAudioFile; diff --git a/UI/OnScreenDisplay.cpp b/UI/OnScreenDisplay.cpp index 200fd5e6aa..6a5baa784c 100644 --- a/UI/OnScreenDisplay.cpp +++ b/UI/OnScreenDisplay.cpp @@ -268,10 +268,12 @@ void OnScreenMessagesView::Draw(UIContext &dc) { typeEdges[i] = ScreenEdgePosition::TOP_CENTER; } - // 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::ACHIEVEMENT_CHALLENGE_INDICATOR] = (ScreenEdgePosition)g_Config.iAchievementsChallengePos; + typeEdges[(size_t)OSDType::ACHIEVEMENT_PROGRESS] = (ScreenEdgePosition)g_Config.iAchievementsProgressPos; typeEdges[(size_t)OSDType::LEADERBOARD_TRACKER] = (ScreenEdgePosition)g_Config.iAchievementsLeaderboardTrackerPos; + typeEdges[(size_t)OSDType::LEADERBOARD_STARTED_FAILED] = (ScreenEdgePosition)g_Config.iAchievementsLeaderboardStartedOrFailedPos; + typeEdges[(size_t)OSDType::LEADERBOARD_SUBMITTED] = (ScreenEdgePosition)g_Config.iAchievementsLeaderboardSubmittedPos; + typeEdges[(size_t)OSDType::ACHIEVEMENT_UNLOCKED] = (ScreenEdgePosition)g_Config.iAchievementsUnlockedPos; dc.SetFontScale(1.0f, 1.0f); @@ -281,7 +283,7 @@ void OnScreenMessagesView::Draw(UIContext &dc) { auto &measuredEntry = measuredEntries[i]; ScreenEdgePosition pos = typeEdges[(size_t)entry.type]; - if (pos == ScreenEdgePosition::VALUE_COUNT) { + if (pos == ScreenEdgePosition::VALUE_COUNT || pos == (ScreenEdgePosition)-1) { // NONE. continue; } diff --git a/UI/RetroAchievementScreens.cpp b/UI/RetroAchievementScreens.cpp index 11f6d6b3d3..1f00e3bcc4 100644 --- a/UI/RetroAchievementScreens.cpp +++ b/UI/RetroAchievementScreens.cpp @@ -370,7 +370,12 @@ void RetroAchievementsSettingsScreen::CreateCustomizeTab(UI::ViewGroup *viewGrou 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.iAchievementsLeaderboardStartedOrFailedPos, ac->T("Leaderboard attempt started or failed"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); + viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsLeaderboardSubmittedPos, ac->T("Leaderboard result submitted"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsLeaderboardTrackerPos, ac->T("Leaderboard tracker"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); + viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsUnlockedPos, ac->T("Achievement Unlocked"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); + viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsChallengePos, ac->T("Challenge indicator"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); + viewGroup->Add(new PopupMultiChoice(&g_Config.iAchievementsProgressPos, ac->T("Achievement progress"), positions, 0, ARRAY_SIZE(positions), I18NCat::DIALOG, screenManager()))->SetEnabledPtr(&g_Config.bAchievementsEnable); } void RetroAchievementsSettingsScreen::CreateDeveloperToolsTab(UI::ViewGroup *viewGroup) { diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index 0f454966ae..ad2b06c905 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -3,10 +3,12 @@ %1: Attempt started = %1: Attempt started %d achievements, %d points = %d achievements, %d points Account = Account +Achievement progress = Achievement progress Achievement Unlocked = Achievement Unlocked Achievements = Achievements Achievements are disabled = Achievements are disabled Can't log in to RetroAchievements right now = Can't log in to RetroAchievements right now +Challenge indicator = Challenge indicator Challenge Mode = Challenge Mode Challenge Mode (no savestates) = Challenge Mode (no savestates) Contacting RetroAchievements server... = Contacting RetroAchievements server... @@ -15,13 +17,17 @@ Earned = You have earned %d of %d achievements, and %d of %d points Encore Mode = Encore Mode How to use RetroAchievements = How to use RetroAchievements In Encore mode - listings may be wrong below = In Encore mode - listings may be wrong below +Leaderboard attempt started or failed = Leaderboard attempt started or failed +Leaderboard result submitted = Leaderboard result submitted Leaderboard score submission = Leaderboard score submission +Leaderboard tracker = Leaderboard tracker Leaderboard submission is enabled = Leaderboard submission is enabled Leaderboards = Leaderboards Links = Links Locked achievements = Locked achievements Log bad memory accesses = Log bad memory accesses Mastered %1 = Mastered %1 +Notifications = Notifications Register on www.retroachievements.org = Register on www.retroachievements.org RetroAchievements are not available for this game = RetroAchievements are not available for this game RetroAchievements website = RetroAchievements website