From 7725aa2692f7dc4ea8d243404b939a074041780c Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Mon, 13 Apr 2026 22:38:31 +0200 Subject: [PATCH] RA tweaks (#743) * prevent crash * more * more --- parallel-rdp/interface.cpp | 14 +++++++++++--- retroachievements/retroachievements.c | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/parallel-rdp/interface.cpp b/parallel-rdp/interface.cpp index 5769b8c..1ad225d 100644 --- a/parallel-rdp/interface.cpp +++ b/parallel-rdp/interface.cpp @@ -103,6 +103,7 @@ static std::vector achievement_challenge_indicators; static Vulkan::ImageHandle achievement_challenge_indicator_image; static Vulkan::ImageHandle achievement_progress_indicator_image; static std::map leaderboard_trackers; +static bool display_challenge_indicator; #define MESSAGE_TIME 3000 // 3 seconds @@ -154,6 +155,9 @@ bool sdl_event_filter(void *userdata, SDL_Event *event) { case SDL_SCANCODE_F7: callback.load_state = true; break; + case SDL_SCANCODE_F9: + display_challenge_indicator = !display_challenge_indicator; + break; case SDL_SCANCODE_F12: callback.reset_game = true; break; @@ -307,6 +311,7 @@ void rdp_init(void *_window, GFX_INFO _gfx_info, const void *font, messages = std::queue(); message_timer = 0; + display_challenge_indicator = true; achievement_challenge_indicators.clear(); leaderboard_trackers.clear(); achievement_challenge_indicator_image = Vulkan::ImageHandle(); @@ -493,7 +498,8 @@ static void render_frame(Vulkan::Device &device) { } } else if (achievement_progress_indicator_image) { draw_indicator(cmd, achievement_progress_indicator_image, vp); - } else if (achievement_challenge_indicator_image) { + } else if (achievement_challenge_indicator_image && + display_challenge_indicator) { draw_indicator(cmd, achievement_challenge_indicator_image, vp); } } @@ -845,8 +851,10 @@ void achievement_progress_remove() { void leaderboard_tracker_add(uint32_t id, const char *title, const char *display) { - leaderboard_trackers[id] = std::format("{}: {}", title, display); - update_challenge_indicator(); + if (title) { + leaderboard_trackers[id] = std::format("{}: {}", title, display); + update_challenge_indicator(); + } } void leaderboard_tracker_remove(uint32_t id) { diff --git a/retroachievements/retroachievements.c b/retroachievements/retroachievements.c index f9e92f6..ad8aa3e 100644 --- a/retroachievements/retroachievements.c +++ b/retroachievements/retroachievements.c @@ -152,7 +152,7 @@ void ra_welcome() { rc_client_get_user_game_summary(g_client, &summary); int message_length = snprintf( - buffer, sizeof(buffer), "RA loaded: %s\nMode: %s\n", game->title, + buffer, sizeof(buffer), "%s\nMode: %s\n", game->title, rc_client_get_hardcore_enabled(g_client) ? "Hardcore" : "Softcore"); if (summary.num_core_achievements != 0) {