feat(menu): primera versió del menú de servei

This commit is contained in:
JailDesigner committed 2026-04-22 18:15:00 +02:00
1 parent e4a8b4cd3e
commit 350625dec0
21 files changed
+1477 -16

No files matched your search

+28
View File
@@ -97,15 +97,34 @@ namespace Defaults {
constexpr const char* DIR = "data/fonts/";
// HUD/Notifier/RenderInfo: font principal de UI del joc.
// El kerning és la separació extra entre glifs (sumat a l'amplada
// natural). 1 és el valor clàssic; valors negatius ajunten glifs
// per a fonts de display amb sidebearings amples.
constexpr const char* HUD_NAME = "8bithud";
constexpr const char* HUD_GIF = "data/fonts/8bithud.gif";
constexpr const char* HUD_FNT = "data/fonts/8bithud.fnt";
constexpr int HUD_KERNING = 1;
// Placeholders (LOGO / TITLE / INTRO): font temporal fins que els
// placeholders es substitueixin per les seues escenes finals.
constexpr const char* PLACEHOLDER_NAME = "ari-w9500";
constexpr const char* PLACEHOLDER_GIF = "data/fonts/ari-w9500.gif";
constexpr const char* PLACEHOLDER_FNT = "data/fonts/ari-w9500.fnt";
constexpr int PLACEHOLDER_KERNING = 1;
// Menú de servei (F9): títol en display normal, items en la
// variant condensed-display (més compacta, perquè caben més
// files sense encongir la caixa). Kerning 0 a totes dues perquè
// els glifs de display ja porten sidebearings generosos.
constexpr const char* MENU_TITLE_NAME = "ari-w9500-display";
constexpr const char* MENU_TITLE_GIF = "data/fonts/ari-w9500-display.gif";
constexpr const char* MENU_TITLE_FNT = "data/fonts/ari-w9500-display.fnt";
constexpr int MENU_TITLE_KERNING = 0;
constexpr const char* MENU_ITEMS_NAME = "ari-w9500-condensed-display";
constexpr const char* MENU_ITEMS_GIF = "data/fonts/ari-w9500-condensed-display.gif";
constexpr const char* MENU_ITEMS_FNT = "data/fonts/ari-w9500-condensed-display.fnt";
constexpr int MENU_ITEMS_KERNING = 0;
} // namespace Font
// Overlay de RenderInfo (F12).
@@ -126,6 +145,15 @@ namespace Defaults {
constexpr Uint8 EXIT_TEXT = 88;
constexpr Uint8 EXIT_BG = 40;
constexpr int EXIT_TIME_MS = 4000;
// Índexs de paleta per al menú de servei (F9).
constexpr Uint8 MENU_BG = 40; // Fons de la caixa.
constexpr Uint8 MENU_BORDER = 197; // Vora.
constexpr Uint8 MENU_TITLE = 213; // Títol i subtítol.
constexpr Uint8 MENU_LABEL = 47; // Etiquetes dels items.
constexpr Uint8 MENU_VALUE = 197; // Valor actual.
constexpr Uint8 MENU_CURSOR = 88; // Item seleccionat.
constexpr Uint8 MENU_DISABLED = 34; // Label en gris quan no aplica.
} // namespace UI
// Rutes d'assets per piràmide. Centralitzats ací perquè `GameScene` no