mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 09:33:51 +00:00
Add escape menu with logout/quit/settings
This commit is contained in:
parent
66f78bb192
commit
f725f7834f
2 changed files with 51 additions and 2 deletions
|
|
@ -53,6 +53,8 @@ private:
|
||||||
bool showPlayerInfo = false;
|
bool showPlayerInfo = false;
|
||||||
bool refocusChatInput = false;
|
bool refocusChatInput = false;
|
||||||
bool showTeleporter = false;
|
bool showTeleporter = false;
|
||||||
|
bool showEscapeMenu = false;
|
||||||
|
bool showEscapeSettingsNotice = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render player info window
|
* Render player info window
|
||||||
|
|
@ -121,6 +123,7 @@ private:
|
||||||
void renderGossipWindow(game::GameHandler& gameHandler);
|
void renderGossipWindow(game::GameHandler& gameHandler);
|
||||||
void renderVendorWindow(game::GameHandler& gameHandler);
|
void renderVendorWindow(game::GameHandler& gameHandler);
|
||||||
void renderTeleporterPanel();
|
void renderTeleporterPanel();
|
||||||
|
void renderEscapeMenu();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inventory screen
|
* Inventory screen
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ void GameScreen::render(game::GameHandler& gameHandler) {
|
||||||
renderLootWindow(gameHandler);
|
renderLootWindow(gameHandler);
|
||||||
renderGossipWindow(gameHandler);
|
renderGossipWindow(gameHandler);
|
||||||
renderVendorWindow(gameHandler);
|
renderVendorWindow(gameHandler);
|
||||||
|
renderEscapeMenu();
|
||||||
|
|
||||||
// World map (M key toggle handled inside)
|
// World map (M key toggle handled inside)
|
||||||
renderWorldMap(gameHandler);
|
renderWorldMap(gameHandler);
|
||||||
|
|
@ -351,7 +352,10 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.isKeyJustPressed(SDL_SCANCODE_ESCAPE)) {
|
if (input.isKeyJustPressed(SDL_SCANCODE_ESCAPE)) {
|
||||||
if (showTeleporter) {
|
if (showEscapeMenu) {
|
||||||
|
showEscapeMenu = false;
|
||||||
|
showEscapeSettingsNotice = false;
|
||||||
|
} else if (showTeleporter) {
|
||||||
showTeleporter = false;
|
showTeleporter = false;
|
||||||
} else if (gameHandler.isCasting()) {
|
} else if (gameHandler.isCasting()) {
|
||||||
gameHandler.cancelCast();
|
gameHandler.cancelCast();
|
||||||
|
|
@ -360,7 +364,7 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) {
|
||||||
} else if (gameHandler.isGossipWindowOpen()) {
|
} else if (gameHandler.isGossipWindowOpen()) {
|
||||||
gameHandler.closeGossip();
|
gameHandler.closeGossip();
|
||||||
} else {
|
} else {
|
||||||
gameHandler.clearTarget();
|
showEscapeMenu = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1722,4 +1726,46 @@ void GameScreen::renderTeleporterPanel() {
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Escape Menu
|
||||||
|
// ============================================================
|
||||||
|
|
||||||
|
void GameScreen::renderEscapeMenu() {
|
||||||
|
if (!showEscapeMenu) return;
|
||||||
|
|
||||||
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
float screenW = io.DisplaySize.x;
|
||||||
|
float screenH = io.DisplaySize.y;
|
||||||
|
ImVec2 size(260.0f, 220.0f);
|
||||||
|
ImVec2 pos((screenW - size.x) * 0.5f, (screenH - size.y) * 0.5f);
|
||||||
|
|
||||||
|
ImGui::SetNextWindowPos(pos, ImGuiCond_Always);
|
||||||
|
ImGui::SetNextWindowSize(size, ImGuiCond_Always);
|
||||||
|
ImGuiWindowFlags flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove |
|
||||||
|
ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar;
|
||||||
|
|
||||||
|
if (ImGui::Begin("##EscapeMenu", nullptr, flags)) {
|
||||||
|
ImGui::Text("Game Menu");
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
|
if (ImGui::Button("Logout", ImVec2(-1, 0))) {
|
||||||
|
core::Application::getInstance().logoutToLogin();
|
||||||
|
showEscapeMenu = false;
|
||||||
|
showEscapeSettingsNotice = false;
|
||||||
|
}
|
||||||
|
if (ImGui::Button("Quit", ImVec2(-1, 0))) {
|
||||||
|
core::Application::getInstance().shutdown();
|
||||||
|
}
|
||||||
|
if (ImGui::Button("Settings", ImVec2(-1, 0))) {
|
||||||
|
showEscapeSettingsNotice = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showEscapeSettingsNotice) {
|
||||||
|
ImGui::Spacing();
|
||||||
|
ImGui::TextColored(ImVec4(1.0f, 0.8f, 0.2f, 1.0f), "Settings not implemented yet.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ImGui::End();
|
||||||
|
}
|
||||||
|
|
||||||
}} // namespace wowee::ui
|
}} // namespace wowee::ui
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue