Files
coffee-crisis-ae/source/manage_hiscore_table.h
T
JailDesigner 44e4ca490d canvi de pc
treballant en enter name
2025-02-06 14:59:25 +01:00

55 lines
1.4 KiB
C++

#pragma once
#include <string> // para string
#include <vector> // para vector
/*
Esta clase sirve para añadir elementos hiScoreEntry_r a un vector (tabla), de manera
que la tabla siempre está ordenada.
Además tiene un método para dejar la tabla con sus valores iniciales y métodos para
leer y escribir la tabla a un fichero
*/
// Estructura para las entradas de la tabla de recirds
struct HiScoreEntry
{
std::string name; // Nombre
int score; // Puntuación
bool one_credit_complete; // Indica si se ha conseguido 1CC
// Constructor
explicit HiScoreEntry(const std::string &n = "", int s = 0, bool occ = false)
: name(n.substr(0, 6)), score(s), one_credit_complete(occ) {}
};
// Clase ManageHiScoreTable
class ManageHiScoreTable
{
private:
// Variables
std::vector<HiScoreEntry> &table_; // Tabla con los records
// Ordena la tabla
void sort();
public:
// Constructor
explicit ManageHiScoreTable(std::vector<HiScoreEntry> &table)
: table_(table) {}
// Destructor
~ManageHiScoreTable() = default;
// Resetea la tabla a los valores por defecto
void clear();
// Añade un elemento a la tabla
int add(const HiScoreEntry& entry);
// Carga la tabla con los datos de un fichero
bool loadFromFile(const std::string &file_path);
// Guarda la tabla en un fichero
bool saveToFile(const std::string &file_path);
};