actualitzades les dos variables hiScore a una de tipo hiScoreEntry_t

This commit is contained in:
2024-08-14 20:57:22 +02:00
parent f64b461d75
commit 59da8fd4c6
2 changed files with 14 additions and 14 deletions

View File

@@ -63,7 +63,7 @@ Game::Game(int playerID, int currentStage, Screen *screen, Asset *asset, Lang *l
Game::~Game() Game::~Game()
{ {
saveScoreFile(); //saveScoreFile();
#ifdef RECORDING #ifdef RECORDING
saveDemoFile(); saveDemoFile();
#endif #endif
@@ -690,16 +690,16 @@ bool Game::loadScoreFile()
// Establece el valor de la máxima puntuación a partir del vector con los datos // Establece el valor de la máxima puntuación a partir del vector con los datos
if (scoreDataFile[0] == 0) if (scoreDataFile[0] == 0)
{ {
hiScore = 10000; hiScore.score = 10000;
} }
// Comprueba el checksum para ver si se ha modificado el fichero // Comprueba el checksum para ver si se ha modificado el fichero
else if (scoreDataFile[0] % 43 == scoreDataFile[1]) else if (scoreDataFile[0] % 43 == scoreDataFile[1])
{ {
hiScore = scoreDataFile[0]; hiScore.score = scoreDataFile[0];
} }
else else
{ {
hiScore = 10000; hiScore.score = 10000;
} }
return success; return success;
@@ -786,8 +786,8 @@ bool Game::loadDemoFile(std::string f, demoKeys_t (*dataFile)[TOTAL_DEMO_DATA])
bool Game::saveScoreFile() bool Game::saveScoreFile()
{ {
// Almacena la máxima puntuación en el fichero junto con un checksum // Almacena la máxima puntuación en el fichero junto con un checksum
scoreDataFile[0] = hiScore; scoreDataFile[0] = hiScore.score;
scoreDataFile[1] = hiScore % 43; scoreDataFile[1] = hiScore.score % 43;
bool success = true; bool success = true;
const std::string p = asset->get("score.bin"); const std::string p = asset->get("score.bin");
@@ -916,10 +916,10 @@ void Game::updateHiScore()
{ {
// Si la puntuación actual es mayor que la máxima puntuación // Si la puntuación actual es mayor que la máxima puntuación
for (auto player : players) for (auto player : players)
if (player->getScore() > hiScore) if (player->getScore() > hiScore.score)
{ {
// Actualiza la máxima puntuación // Actualiza la máxima puntuación
hiScore = player->getScore(); hiScore.score = player->getScore();
// Si se supera la máxima puntuación emite sonido // Si se supera la máxima puntuación emite sonido
if (hiScoreAchieved == false) if (hiScoreAchieved == false)
@@ -2815,9 +2815,10 @@ void Game::reloadTextures()
void Game::setHiScore() void Game::setHiScore()
{ {
// Carga el fichero de puntos // Carga el fichero de puntos
loadScoreFile(); //loadScoreFile();
hiScoreName = ""; hiScore.score = options->game.hiScoreTable[0].score;
hiScore.name = options->game.hiScoreTable[0].name;
} }
// Actualiza el marcador // Actualiza el marcador
@@ -2832,8 +2833,8 @@ void Game::updateScoreboard()
// Resto de marcador // Resto de marcador
scoreboard->setStage(enemyFormations->getStage(currentStage).number); scoreboard->setStage(enemyFormations->getStage(currentStage).number);
scoreboard->setPower((float)currentPower / (float)enemyFormations->getStage(currentStage).powerToComplete); scoreboard->setPower((float)currentPower / (float)enemyFormations->getStage(currentStage).powerToComplete);
scoreboard->setHiScore(hiScore); scoreboard->setHiScore(hiScore.score);
scoreboard->setHiScoreName(hiScoreName); scoreboard->setHiScoreName(hiScore.name);
// Lógica del marcador // Lógica del marcador
scoreboard->update(); scoreboard->update();

View File

@@ -166,9 +166,8 @@ private:
// Variables // Variables
Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa Uint32 ticks; // Contador de ticks para ajustar la velocidad del programa
Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa Uint32 ticksSpeed; // Velocidad a la que se repiten los bucles del programa
int hiScore; // Puntuación máxima
bool hiScoreAchieved; // Indica si se ha superado la puntuación máxima bool hiScoreAchieved; // Indica si se ha superado la puntuación máxima
std::string hiScoreName; // Nombre del jugador que ostenta la máxima puntuación hiScoreEntry_t hiScore; // Máxima puntuación y nombre de quien la ostenta
int currentStage; // Indica la fase actual int currentStage; // Indica la fase actual
int stageBitmapCounter; // Contador para el tiempo visible del texto de Stage int stageBitmapCounter; // Contador para el tiempo visible del texto de Stage
float stageBitmapPath[STAGE_COUNTER]; // Vector con los puntos Y por donde se desplaza el texto float stageBitmapPath[STAGE_COUNTER]; // Vector con los puntos Y por donde se desplaza el texto