HC-04+HC-05: índexs de paleta UI centralitzats a Defaults::UI

Afegit `Defaults::UI::` amb els 5 índexs (RENDER_INFO_TEXT/SHADOW,
CANVAS_BG, NOTIFICATION_TEXT/BG, EXIT_TEXT/BG) i 2 durades
(NOTIFICATION_TIME_MS, EXIT_TIME_MS). `ui_palette.hpp` i
`notification_presets.hpp` queden com a alias: canviar el tema global
és tocar un sol bloc. Equivalent a tenir un "tema" (vindria d'un YAML el
dia que calga).
This commit is contained in:
JailDesigner committed 2026-04-20 18:07:31 +02:00
1 parent df059a6fcb
commit beb6a4aad1
4 files changed
+44 -27

No files matched your search

@@ -5,6 +5,7 @@
#include <string>
#include "core/rendering/notifier.hpp"
#include "utils/defaults.hpp"
// Temes per a les notificacions de pantalla. Un "preset" captura els dos
// colors (text i fons, índexs sobre la paleta "ui") i el temps de visibilitat
@@ -18,13 +19,12 @@ namespace Notification {
int time_ms;
};
// Tema per defecte: text clar sobre fons fosc, 2 segons de visibilitat.
// Per a ajustar l'aparença global de totes les notificacions sense
// presetejar-les manualment, toca només aquest bloc.
// Tema per defecte: text clar sobre fons fosc. Els valors concrets
// viuen a `Defaults::UI` — tocar l'aparença global es fa allà.
constexpr Preset DEFAULT{
.text_color = 197,
.bg_color = 96,
.time_ms = 4000,
.text_color = Defaults::UI::NOTIFICATION_TEXT,
.bg_color = Defaults::UI::NOTIFICATION_BG,
.time_ms = Defaults::UI::NOTIFICATION_TIME_MS,
};
// Preset per al missatge de confirmació d'eixida (ESC doble). Color
@@ -32,9 +32,9 @@ namespace Notification {
// coincideix amb la finestra durant la qual la segona pulsació d'ESC
// confirma el tancament — veure GlobalInputs::onExit.
constexpr Preset EXIT{
.text_color = 88,
.bg_color = 40,
.time_ms = 4000,
.text_color = Defaults::UI::EXIT_TEXT,
.bg_color = Defaults::UI::EXIT_BG,
.time_ms = Defaults::UI::EXIT_TIME_MS,
};
// Helper de conveniència: aplica un preset (per defecte DEFAULT) cridant
+7 -16
View File
@@ -1,23 +1,14 @@
#pragma once
#include <SDL3/SDL.h>
#include "utils/defaults.hpp"
// Constants semàntiques que mapegen cada element de la UI al seu color dins
// de la paleta compartida (registre "ui" a Resource::Cache, carregada des de
// data/palettes/sega-cube.pal). Canviar l'aparença d'un component només
// requereix canviar la seua constant ací — no cal buscar l'índex pel codi.
// Alias semàntics als índexs de paleta UI (viuen a `Defaults::UI`). Canviar
// l'aparença d'un component només requereix tocar-los allà; ací només
// reexportem amb els noms que consumeix el codi del joc.
namespace UiColor {
// Color per al text de l'overlay de debug RenderInfo (F12).
constexpr Uint8 RENDER_INFO_TEXT = 47;
// Ombra desplaçada (+1, +1) per al mateix overlay. Fosca per a donar
// contrast amb qualsevol fons sense haver de pintar una caixa.
constexpr Uint8 RENDER_INFO_SHADOW = 34;
// Color de fons del canvas del joc quan no hi ha escena pintada a tota
// la superfície. Útil per a distingir la zona interior del joc en
// escalats que deixen banda negra (letterbox, integer, ...).
constexpr Uint8 CANVAS_BG = 65;
constexpr auto RENDER_INFO_TEXT = Defaults::UI::RENDER_INFO_TEXT;
constexpr auto RENDER_INFO_SHADOW = Defaults::UI::RENDER_INFO_SHADOW;
constexpr auto CANVAS_BG = Defaults::UI::CANVAS_BG;
} // namespace UiColor
+26
View File
@@ -84,6 +84,32 @@ namespace Defaults {
constexpr float SPEED_PX_PER_S = 60.0F; // Velocitat base del jugador (sense sprint / slow-zones).
} // namespace Player
// Índexs de paleta (sega-cube.pal) i temps en ms per als components
// de UI. Centralitzats ací perquè un "tema" viu en un únic lloc: tocar
// els colors o durades de l'overlay/notificador no requereix buscar
// pel codi. Si algun dia es volen temes múltiples, es pot moure a YAML
// sense més impacte que dos accessors extra.
namespace UI {
// Overlay de RenderInfo (F12).
constexpr Uint8 RENDER_INFO_TEXT = 47;
constexpr Uint8 RENDER_INFO_SHADOW = 34;
// Fons del canvas (zona fora del tilemap en letterbox/integer).
constexpr Uint8 CANVAS_BG = 65;
// Preset per defecte del Notifier.
constexpr Uint8 NOTIFICATION_TEXT = 197;
constexpr Uint8 NOTIFICATION_BG = 96;
constexpr int NOTIFICATION_TIME_MS = 4000;
// Preset per a la confirmació d'eixida (ESC doble). La durada ha
// de coincidir amb la del Notifier perquè el missatge i la finestra
// de confirmació expiren alhora (veure GlobalInputs::onExit).
constexpr Uint8 EXIT_TEXT = 88;
constexpr Uint8 EXIT_BG = 40;
constexpr int EXIT_TIME_MS = 4000;
} // namespace UI
// Rutes d'assets per piràmide. Centralitzats ací perquè `GameScene` no
// en contingui cap literal; afegir una piràmide nova serà un altre
// conjunt de constants + un Config distint passat al ctor.