La tabla de puntuació ja mostra amb altre color la puntuació que s'acaba d'afegir

fix: la tabla de punts no guardava a disc el estat de 1CC de cada entrada
This commit is contained in:
2025-02-05 22:52:19 +01:00
parent 6f594b9a1f
commit 5755947ff7
11 changed files with 175 additions and 66 deletions

View File

@@ -44,6 +44,7 @@ HiScoreTable::HiScoreTable()
SDL_SetTextureBlendMode(backbuffer_, SDL_BLENDMODE_BLEND);
initFade();
initBackground();
iniEntryColors();
createSprites();
}
@@ -51,6 +52,7 @@ HiScoreTable::HiScoreTable()
HiScoreTable::~HiScoreTable()
{
SDL_DestroyTexture(backbuffer_);
options.game.clear_last_hi_score_entries();
}
// Actualiza las variables
@@ -364,6 +366,8 @@ void HiScoreTable::updateSprites()
{
entry->update();
}
glowEntryNames();
}
// Inicializa el fade
@@ -418,4 +422,46 @@ void HiScoreTable::initBackground()
default:
break;
}
}
}
// Obtiene un color del vector de colores de entradas
Color HiScoreTable::getEntryColor(int counter_)
{
int cycle_length = entry_colors_.size() * 2 - 2; // Esto es 6 en este caso
int n = counter_ % cycle_length;
int index;
if (n < entry_colors_.size())
{
index = n; // Avanza: 0,1,2,3
}
else
{
index = 2 * (entry_colors_.size() - 1) - n; // Retrocede: 2,1
}
return entry_colors_[index];
}
// Inicializa los colores de las entradas
void HiScoreTable::iniEntryColors()
{
entry_colors_.clear();
entry_colors_.emplace_back(background_fade_color_.getInverse().lighten(75));
entry_colors_.emplace_back(background_fade_color_.getInverse().lighten(50));
entry_colors_.emplace_back(background_fade_color_.getInverse().lighten(25));
entry_colors_.emplace_back(background_fade_color_.getInverse());
}
// Hace brillar los nombres de la tabla de records
void HiScoreTable::glowEntryNames()
{
const Color entry_color = getEntryColor(counter_ / 5);
for (const auto& entry_index : options.game.last_hi_score_entry)
{
if (entry_index != -1)
{
entry_names_.at(entry_index)->getTexture()->setColor(entry_color);
}
}
}