diff --git a/data/fonts/CaesarDressing-Regular.fnt b/data/fonts/CaesarDressing-Regular.fnt index 712fe07..232be58 100644 --- a/data/fonts/CaesarDressing-Regular.fnt +++ b/data/fonts/CaesarDressing-Regular.fnt @@ -2,7 +2,7 @@ # Generado con font_gen.py box_width 18 -box_height 30 +box_height 28 columns 15 # codepoint_decimal ancho_visual @@ -116,7 +116,7 @@ columns 15 224 13 # à 225 13 # á 232 10 # è -233 10 # é +233 11 # é 236 7 # ì 237 8 # í 242 13 # ò diff --git a/data/fonts/CaesarDressing-Regular.gif b/data/fonts/CaesarDressing-Regular.gif index e849889..83de412 100644 Binary files a/data/fonts/CaesarDressing-Regular.gif and b/data/fonts/CaesarDressing-Regular.gif differ diff --git a/data/scenes/game.yaml b/data/scenes/game.yaml index f84d213..b91a020 100644 --- a/data/scenes/game.yaml +++ b/data/scenes/game.yaml @@ -10,14 +10,14 @@ room_intro: text_enter_ms: 400 # text esquerra → centre text_hold_ms: 1500 # text quiet al centre text_exit_ms: 400 # text centre → fora per l'esquerra - line_gap_px: 0 # px extra entre les dues línies (piràmide / sala) + line_gap_px: -4 # px extra entre les dues línies (piràmide / sala) room_outro: text_enter_ms: 400 text_hold_ms: 1500 text_exit_ms: 400 fade_out_ms: 500 # món visible → negre opac - line_gap_px: 0 # px extra entre les dues línies (fase / completada) + line_gap_px: -4 # px extra entre les dues línies (fase / completada) black_hold_ms: 500 # pausa en negre abans d'entrar a la pròxima sala text: diff --git a/data/ui.yaml b/data/ui.yaml index de6a63b..0a3c5e0 100644 --- a/data/ui.yaml +++ b/data/ui.yaml @@ -24,8 +24,8 @@ colors: # de notification_* perquè la fase i les notificacions són dos canals # visuals distints: ací pots canviar el color del rètol sense tocar # els missatges del HUD. - room_text: 232 - room_text_outline: 255 + room_text: 160 + room_text_outline: 253 timings: notification_ms: 4000 diff --git a/source/game/scenes/game_scene.cpp b/source/game/scenes/game_scene.cpp index 2d74595..70057c6 100644 --- a/source/game/scenes/game_scene.cpp +++ b/source/game/scenes/game_scene.cpp @@ -657,6 +657,11 @@ void GameScene::renderRoomText() { // de les dues. if (!room_text_font_) { return; } + // Centre vertical de la zona de joc (canvas sense la HUD). Reemplaça + // l'antic GameCanvas::CENTER_Y per descomptar la franja del marcador + // i tenir el rètol equilibrat sobre el playfield. + const int PLAY_CENTER_Y = (GameCanvas::HEIGHT + Map::hud_h) / 2; + constexpr int KERNING = 0; constexpr Uint8 STROKE_DIST = 1; // Colors del rètol via UiConfig — abans el contorn estava @@ -725,8 +730,8 @@ void GameScene::renderRoomText() { // sumem cap avall a la sala, mantenint el centre del bloc fix. const int LINE_HEIGHT = room_text_font_->getLineHeight(); const int GAP = transition_config_.intro_text_line_gap_px; - const int Y_PYRAMID = GameCanvas::CENTER_Y - LINE_HEIGHT - (GAP / 2); - const int Y_ROOM = GameCanvas::CENTER_Y + (GAP / 2); + const int Y_PYRAMID = PLAY_CENTER_Y - LINE_HEIGHT - (GAP / 2); + const int Y_ROOM = PLAY_CENTER_Y + (GAP / 2); draw_line(LINE_PYRAMID, X_PYRAMID, Y_PYRAMID); draw_line(LINE_ROOM, X_ROOM, Y_ROOM); } else if (state_ == RoomFsm::State::ROOM_OUTRO && transition_.phase >= 0 && transition_.phase <= 2) { @@ -743,8 +748,8 @@ void GameScene::renderRoomText() { const int X_2 = compute_x(W_2, 0, 2, DUR_ENTER, DUR_EXIT, /*from_right=*/true); const int LINE_HEIGHT = room_text_font_->getLineHeight(); const int GAP = transition_config_.outro_text_line_gap_px; - const int Y_1 = GameCanvas::CENTER_Y - LINE_HEIGHT - (GAP / 2); - const int Y_2 = GameCanvas::CENTER_Y + (GAP / 2); + const int Y_1 = PLAY_CENTER_Y - LINE_HEIGHT - (GAP / 2); + const int Y_2 = PLAY_CENTER_Y + (GAP / 2); draw_line(LINE_1, X_1, Y_1); draw_line(LINE_2, X_2, Y_2); }