Files
jdd_opendingux/source/stats.h

90 lines
2.3 KiB
C++

#pragma once
#include <SDL2/SDL.h>
#include "jail_engine/utils.h"
#include <string>
#include <vector>
#ifndef STATS_H
#define STATS_H
using namespace std;
class Stats
{
private:
struct stats_t
{
string name; // Nombre de la habitación
int visited; // Cuenta las veces que se ha visitado una habitación
int died; // Cuenta las veces que se ha muerto en una habitación
};
struct stats_dictionary_t
{
string number; // Numero de la habitación
string name; // Nombre de la habitación
};
// Punteros y objetos
options_t *options;
// Variables
vector<stats_dictionary_t> dictionary; // Lista con la equivalencia nombre-numero de habitacion
vector<stats_t> bufferList; // Lista con las estadisticas temporales por habitación
vector<stats_t> list; // Lista con las estadisticas completas por habitación
string bufferPath; // Fichero con las estadísticas temporales
string filePath; // Fichero con las estadísticas completas
// Busca una entrada en la lista por nombre
int findByName(string name, vector<stats_t> &list);
// Carga las estadisticas desde un fichero
bool loadFromFile(string filePath, vector<stats_t> &list);
// Carga las estadisticas desde un servidor
void loadFromServer();
// Guarda las estadisticas en un fichero
void saveToFile(string filePath, vector<stats_t> &list);
// Guarda las estadisticas en un servidor
void saveToServer();
// Calcula cual es la habitación con más muertes
void checkWorstNightmare();
// Obtiene el nombre de una habitación a partir del número
string numberToName(string number);
// Obtiene el número de una habitación a partir del nombre
string nameToNumber(string name);
// Vuelca los datos del buffer en la lista de estadisticas
void updateListFromBuffer();
// Limpia los datos del servidor
void eraseServerData();
public:
// Constructor
Stats(string file, string buffer, options_t *options);
// Destructor
~Stats();
// Inicializador
// Se debe llamar a este procediiento una vez se haya creado el diccionario numero-nombre
void init();
// Añade una muerte a las estadisticas
void addDeath(string name);
// Añade una visita a las estadisticas
void addVisit(string name);
// Añade una entrada al diccionario
void addDictionary(string number, string name);
};
#endif