56 lines
2.7 KiB
C++
56 lines
2.7 KiB
C++
// service_menu.hpp - Constants del menu de servei (F12)
|
||
// © 2026 JailDesigner
|
||
|
||
#pragma once
|
||
|
||
#include <SDL3/SDL.h>
|
||
|
||
namespace Defaults::ServiceMenu {
|
||
|
||
// ---- Mides en coordenades logiques del joc (1280×720) ----
|
||
constexpr int BOX_WIDTH = 460;
|
||
constexpr int GAP_Y = 22;
|
||
constexpr int TITLE_HEIGHT = 36; // scale 0.85 ≈ 34 px de text
|
||
constexpr int SEPARATOR_HEIGHT = 1;
|
||
constexpr int ITEM_HEIGHT = 38; // scale 0.55 ≈ 22 px de text + padding per al highlight
|
||
constexpr int ITEM_GAP_Y = 6;
|
||
|
||
// Brackets als 4 cantons (substitueixen la vora completa: estètica sci-fi).
|
||
constexpr int CORNER_ARM_H = 48;
|
||
constexpr int CORNER_ARM_V = 28;
|
||
constexpr int CORNER_THICKNESS = 2;
|
||
|
||
// ---- Animacio open/close (mateixos parametres que aee_arcade) ----
|
||
constexpr float OPEN_SPEED = 8.0F; // ~125 ms a obrir
|
||
constexpr float CLOSE_SPEED = 10.0F; // ~100 ms a tancar
|
||
constexpr float HEIGHT_RATE = 12.0F; // smoothing exponencial de l'alçada de la caixa
|
||
|
||
// ---- Animacio del highlight (rectangle del cursor) ----
|
||
// Rate=18 dona settling ~0.17 s al 95% (ease-out exponencial).
|
||
constexpr float HIGHLIGHT_RATE = 18.0F;
|
||
constexpr int HIGHLIGHT_TICK_LEN = 10; // longitud dels ticks a cada cantonada
|
||
constexpr int HIGHLIGHT_THICKNESS = 1;
|
||
constexpr int HIGHLIGHT_PAD_X = 18; // padding lateral del rect respecte al text
|
||
constexpr int HIGHLIGHT_PAD_Y = 4; // padding vertical
|
||
|
||
// ---- Colors RGBA ----
|
||
constexpr SDL_Color BG_COLOR{.r = 0, .g = 12, .b = 24, .a = 215};
|
||
constexpr SDL_Color CORNER_COLOR{.r = 120, .g = 220, .b = 255, .a = 255}; // cian neon
|
||
constexpr SDL_Color TITLE_COLOR{.r = 200, .g = 240, .b = 255, .a = 255};
|
||
constexpr SDL_Color SEPARATOR_COLOR{.r = 60, .g = 120, .b = 180, .a = 180};
|
||
constexpr SDL_Color LABEL_COLOR{.r = 170, .g = 210, .b = 240, .a = 255};
|
||
constexpr SDL_Color CURSOR_COLOR{.r = 255, .g = 230, .b = 120, .a = 255}; // groc per al text sel·leccionat
|
||
constexpr SDL_Color HIGHLIGHT_OUTLINE{.r = 255, .g = 230, .b = 120, .a = 255}; // mateix groc, opac
|
||
constexpr SDL_Color HIGHLIGHT_FILL{.r = 255, .g = 230, .b = 120, .a = 36}; // wash translucid
|
||
|
||
// ---- Tipografia (VectorText). Scale 1.0 = caracter 20×40 px ----
|
||
constexpr float TITLE_SCALE = 0.85F; // mateixa escala que el HUD del scoreboard
|
||
constexpr float ITEM_SCALE = 0.55F; // mateixa escala que les notificacions
|
||
constexpr float TEXT_SPACING = 2.0F;
|
||
|
||
// ---- Sons UI (relatius a data/sounds/), portats d'aee_arcade ----
|
||
constexpr const char* SELECT_SOUND = "ui/menu_select.wav";
|
||
constexpr const char* ACCEPT_SOUND = "ui/menu_accept.wav";
|
||
|
||
} // namespace Defaults::ServiceMenu
|