#pragma once #include // Para string #include // 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 &table_; // Tabla con los records // Ordena la tabla void sort(); public: // Constructor explicit ManageHiScoreTable(std::vector &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); };