feat(title): game_logo.gif al lloc del text i font PixeloidSans-Bold per al copyright

This commit is contained in:
JailDesigner committed 2026-05-06 22:35:27 +02:00
1 parent 8bc45ccedc
commit 233fcb8226
11 files changed
+197 -45

No files matched your search

+18 -2
View File
@@ -200,6 +200,16 @@ Director::Director() {
placeholder_text->setDefaultKerning(UiConfig::get().placeholderFont().kerning);
placeholder_text_ = placeholder_text;
// Font del copyright de la TITLE (PixeloidSans-Bold). Pixel-art
// estricte; va amb la paleta UI per compartir índex de color amb la
// resta de textos placeholder.
const std::string COPYRIGHT_FONT_GIF_KEY = UiConfig::get().copyrightFont().name + ".gif";
Resource::Cache::get().loadSurface(COPYRIGHT_FONT_GIF_KEY, UiConfig::get().copyrightFont().gif);
Resource::Cache::get().getSurface(COPYRIGHT_FONT_GIF_KEY)->setPalette(Resource::Cache::get().getPalette("ui"));
auto copyright_text = std::make_shared<Text>(Resource::Cache::get().getSurface(COPYRIGHT_FONT_GIF_KEY), UiConfig::get().copyrightFont().fnt);
copyright_text->setDefaultKerning(UiConfig::get().copyrightFont().kerning);
copyright_text_ = copyright_text;
// Font del menú de servei (F9). El títol va amb la variant `display`
// i els items amb `condensed-display` (més compacte perquè caben més
// files). Els dos noms i kernings viuen a data/ui.yaml via UiConfig.
@@ -213,7 +223,6 @@ Director::Director() {
};
auto menu_title_text = load_menu_font(UiConfig::get().menuTitleFont());
auto menu_items_text = load_menu_font(UiConfig::get().menuItemsFont());
menu_title_text_ = menu_title_text;
// Mini-logo del peu de la TITLE. Es preloda ací per consistència
// amb la resta d'assets d'UI; manté la seua paleta original (no la
@@ -231,6 +240,13 @@ Director::Director() {
Resource::Cache::get().loadSurface(LOGO_FULL_KEY, "data/logo/logo_jailgames.gif");
logo_full_surface_ = Resource::Cache::get().getSurface(LOGO_FULL_KEY);
// Logotip del joc per a la TITLE (substitueix el text "Aventures en
// Egipte ARCADE"). Igual que la resta de logos, paleta nadiua —
// l'art ja porta els colors finals i no passa per la UI.
constexpr const char* GAME_LOGO_KEY = "game_logo.gif";
Resource::Cache::get().loadSurface(GAME_LOGO_KEY, "data/title/game_logo.gif");
game_logo_surface_ = Resource::Cache::get().getSurface(GAME_LOGO_KEY);
// Fons sencer de la TITLE (320×240). Igual que el minilogo, conserva
// la seua paleta nadiua perquè el GIF ja porta els colors finals.
constexpr const char* TITLE_BG_KEY = "title_bg.gif";
@@ -437,7 +453,7 @@ auto Director::buildScene(SceneId id, const SceneParams& params) -> std::unique_
return std::make_unique<LogoScene>(logo_full_surface_, p.reset);
}
case SceneId::TITLE:
return std::make_unique<TitleScene>(menu_title_text_, placeholder_text_, title_bg_surface_, mini_logo_surface_);
return std::make_unique<TitleScene>(placeholder_text_, copyright_text_, title_bg_surface_, game_logo_surface_, mini_logo_surface_);
case SceneId::INTRO: {
const auto& p = std::get<IntroParams>(params);
return std::make_unique<IntroScene>(placeholder_text_, p.starting_players);
+2 -1
View File
@@ -30,8 +30,9 @@ class Director {
// escena. No són `static`/Meyers perquè depenen de l'inici d'SDL i
// de Resource::Cache.
std::shared_ptr<Text> placeholder_text_;
std::shared_ptr<Text> menu_title_text_;
std::shared_ptr<Text> copyright_text_;
std::shared_ptr<Surface> title_bg_surface_;
std::shared_ptr<Surface> game_logo_surface_;
std::shared_ptr<Surface> mini_logo_surface_;
std::shared_ptr<Surface> logo_full_surface_;
+2
View File
@@ -123,6 +123,7 @@ UiConfig::UiConfig()
room_text_font_{.name = Defaults::UI::Font::ROOM_TEXT_NAME, .gif = Defaults::UI::Font::ROOM_TEXT_GIF, .fnt = Defaults::UI::Font::ROOM_TEXT_FNT, .kerning = Defaults::UI::Font::ROOM_TEXT_KERNING},
menu_title_font_{.name = Defaults::UI::Font::MENU_TITLE_NAME, .gif = Defaults::UI::Font::MENU_TITLE_GIF, .fnt = Defaults::UI::Font::MENU_TITLE_FNT, .kerning = Defaults::UI::Font::MENU_TITLE_KERNING},
menu_items_font_{.name = Defaults::UI::Font::MENU_ITEMS_NAME, .gif = Defaults::UI::Font::MENU_ITEMS_GIF, .fnt = Defaults::UI::Font::MENU_ITEMS_FNT, .kerning = Defaults::UI::Font::MENU_ITEMS_KERNING},
copyright_font_{.name = Defaults::UI::Font::COPYRIGHT_NAME, .gif = Defaults::UI::Font::COPYRIGHT_GIF, .fnt = Defaults::UI::Font::COPYRIGHT_FNT, .kerning = Defaults::UI::Font::COPYRIGHT_KERNING},
notifier_{
.padding_h = Defaults::UI::Notifier::PADDING_H,
.padding_top = Defaults::UI::Notifier::PADDING_TOP,
@@ -200,6 +201,7 @@ void UiConfig::load(const std::string& file_path) {
readFont(f, "room_text", room_text_font_);
readFont(f, "menu_title", menu_title_font_);
readFont(f, "menu_items", menu_items_font_);
readFont(f, "copyright", copyright_font_);
}
if (yaml.contains("hud")) {
+2
View File
@@ -127,6 +127,7 @@ class UiConfig {
[[nodiscard]] auto roomTextFont() const -> const Font& { return room_text_font_; }
[[nodiscard]] auto menuTitleFont() const -> const Font& { return menu_title_font_; }
[[nodiscard]] auto menuItemsFont() const -> const Font& { return menu_items_font_; }
[[nodiscard]] auto copyrightFont() const -> const Font& { return copyright_font_; }
// Geometria del Notifier.
[[nodiscard]] auto notifier() const -> const Notifier& { return notifier_; }
@@ -193,6 +194,7 @@ class UiConfig {
Font room_text_font_;
Font menu_title_font_;
Font menu_items_font_;
Font copyright_font_;
Notifier notifier_;