From 1808d98978c57d769cd0525f99db7c11f7067a0b Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 11 Mar 2026 09:24:37 -0700 Subject: [PATCH] feat: implement TOGGLE_MINIMAP and TOGGLE_RAID_FRAMES keybindings - Add showMinimap_ and showRaidFrames_ visibility flags to GameScreen - Wire up TOGGLE_MINIMAP (M key) to toggle minimap visibility - Wire up TOGGLE_RAID_FRAMES (F key) to toggle party/raid frame visibility - Conditional rendering of minimap markers and party frames - Completes keybinding manager integration for all 15 customizable actions --- include/ui/game_screen.hpp | 2 ++ src/ui/game_screen.cpp | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/include/ui/game_screen.hpp b/include/ui/game_screen.hpp index 125dc31b..566f86c2 100644 --- a/include/ui/game_screen.hpp +++ b/include/ui/game_screen.hpp @@ -63,10 +63,12 @@ private: // UI state bool showEntityWindow = false; bool showChatWindow = true; + bool showMinimap_ = true; // M key toggles minimap bool showNameplates_ = true; // V key toggles nameplates bool showPlayerInfo = false; bool showSocialFrame_ = false; // O key toggles social/friends list bool showGuildRoster_ = false; + bool showRaidFrames_ = true; // F key toggles raid/party frames bool showWorldMap_ = false; // W key toggles world map std::string selectedGuildMember_; bool showGuildNoteEdit_ = false; diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 168883fc..05632d3b 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -408,7 +408,9 @@ void GameScreen::render(game::GameHandler& gameHandler) { renderNameplates(gameHandler); // player names always shown; NPC plates gated by showNameplates_ renderBattlegroundScore(gameHandler); renderCombatText(gameHandler); - renderPartyFrames(gameHandler); + if (showRaidFrames_) { + renderPartyFrames(gameHandler); + } renderBossFrames(gameHandler); renderGroupInvitePopup(gameHandler); renderDuelRequestPopup(gameHandler); @@ -440,7 +442,9 @@ void GameScreen::render(game::GameHandler& gameHandler) { renderDungeonFinderWindow(gameHandler); renderInstanceLockouts(gameHandler); // renderQuestMarkers(gameHandler); // Disabled - using 3D billboard markers now - renderMinimapMarkers(gameHandler); + if (showMinimap_) { + renderMinimapMarkers(gameHandler); + } renderDeathScreen(gameHandler); renderReclaimCorpseButton(gameHandler); renderResurrectDialog(gameHandler); @@ -1483,6 +1487,14 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) { showWorldMap_ = !showWorldMap_; } + if (KeybindingManager::getInstance().isActionPressed(KeybindingManager::Action::TOGGLE_MINIMAP)) { + showMinimap_ = !showMinimap_; + } + + if (KeybindingManager::getInstance().isActionPressed(KeybindingManager::Action::TOGGLE_RAID_FRAMES)) { + showRaidFrames_ = !showRaidFrames_; + } + // Action bar keys (1-9, 0, -, =) static const SDL_Scancode actionBarKeys[] = { SDL_SCANCODE_1, SDL_SCANCODE_2, SDL_SCANCODE_3, SDL_SCANCODE_4,