Creada la classe ManageHiScoreTable
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#include "manage_hiscore_table.h"
|
||||
|
||||
// Constructor
|
||||
ManageHiScoreTable::ManageHiScoreTable(std::vector<hiScoreEntry_t> *table)
|
||||
{
|
||||
this->table = table;
|
||||
}
|
||||
|
||||
// Destructor
|
||||
ManageHiScoreTable::~ManageHiScoreTable()
|
||||
{
|
||||
}
|
||||
|
||||
// Borra toda la tabla
|
||||
void ManageHiScoreTable::clear()
|
||||
{
|
||||
// Limpia la tabla
|
||||
table->clear();
|
||||
|
||||
// Añade 10 entradas predefinidas
|
||||
table->push_back({"Bry", 1000000});
|
||||
table->push_back({"Usufondo", 500000});
|
||||
table->push_back({"G.Lucas", 100000});
|
||||
table->push_back({"P.Delgat", 50000});
|
||||
table->push_back({"P.Arrabalera", 10000});
|
||||
table->push_back({"Pelechano", 5000});
|
||||
table->push_back({"Sahuquillo", 1000});
|
||||
table->push_back({"Bacteriol", 500});
|
||||
table->push_back({"Pepe", 200});
|
||||
table->push_back({"Rosita", 100});
|
||||
}
|
||||
|
||||
// Añade un elemento a la tabla
|
||||
void ManageHiScoreTable::add(hiScoreEntry_t entry)
|
||||
{
|
||||
// Añade la entrada a la tabla
|
||||
table->push_back(entry);
|
||||
|
||||
// Ordena la tabla
|
||||
sort();
|
||||
|
||||
// Deja solo las 10 primeras entradas
|
||||
if ((int)table->size() >= 10)
|
||||
{
|
||||
table->resize(table->size() - 10);
|
||||
}
|
||||
}
|
||||
|
||||
// Ordena la tabla
|
||||
void ManageHiScoreTable::sort()
|
||||
{
|
||||
struct
|
||||
{
|
||||
bool operator()(hiScoreEntry_t a, hiScoreEntry_t b) const { return a.score < b.score; }
|
||||
} customLess;
|
||||
|
||||
std::sort(table->begin(), table->end(), customLess);
|
||||
}
|
||||
Reference in New Issue
Block a user