2 Commits

Author SHA1 Message Date
9b7abc7725 afegit metodo a Surface per a restaurar la subpaleta
fix: les surfaces de loading screen ja no es queden negres per a sempre
2026-03-22 08:10:49 +01:00
c87d682508 sombra als fps 2026-03-22 07:54:54 +01:00
5 changed files with 19 additions and 3 deletions

View File

@@ -396,10 +396,14 @@ void Screen::renderInfo() const {
if (show_debug_info_ && (Resource::Cache::get() != nullptr)) {
auto text = Resource::Cache::get()->getText("smb2");
auto color = static_cast<Uint8>(PaletteColor::YELLOW);
auto shadow = static_cast<Uint8>(PaletteColor::BLACK);
// FPS
// FPS con sombra
const std::string FPS_TEXT = std::to_string(fps_.last_value) + " FPS";
text->writeColored(Options::game.width - text->length(FPS_TEXT), 0, FPS_TEXT, color);
const int FPS_X = Options::game.width - text->length(FPS_TEXT) - 1;
text->writeColored(FPS_X + 1, 1, FPS_TEXT, shadow);
text->writeColored(FPS_X, 0, FPS_TEXT, color);
}
}

View File

@@ -673,3 +673,6 @@ auto Surface::fadeSubPalette(Uint32 delay) -> bool {
// Devolver si el índice 15 coincide con el índice 0
return sub_palette_[15] == sub_palette_[0];
}
// Restaura la sub paleta a su estado original
void Surface::resetSubPalette() { initializeSubPalette(sub_palette_); }

View File

@@ -104,6 +104,9 @@ class Surface {
auto fadePalette() -> bool;
auto fadeSubPalette(Uint32 delay = 0) -> bool;
// Restaura la sub paleta a su estado original
void resetSubPalette();
// Vuelca los píxeles como ARGB8888 a un buffer externo (sin SDL_Texture)
void toARGBBuffer(Uint32* buffer) const;

View File

@@ -48,6 +48,12 @@ Title::Title()
Audio::get()->playMusic("title.ogg"); // Inicia la musica
}
// Destructor
Title::~Title() {
loading_screen_surface_->resetSubPalette();
title_surface_->resetSubPalette();
}
// Inicializa la marquesina
void Title::initMarquee() {
letters_.clear();

View File

@@ -17,7 +17,7 @@ class Title {
public:
// --- Constructor y Destructor ---
Title();
~Title() = default;
~Title();
// --- Bucle principal ---
void run();