75 lines
1.7 KiB
C++
75 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <string> // Para string
|
|
#include <vector> // Para vector
|
|
class Screen;
|
|
struct options_t;
|
|
|
|
struct cheevos_t
|
|
{
|
|
int id; // Identificador del logro
|
|
std::string caption; // Texto con el nombre del logro
|
|
std::string description; // Texto que describe el logro
|
|
int icon; // Indice del icono a utilizar en la notificación
|
|
bool completed; // Indica si se ha obtenido el logro
|
|
bool valid; // Indica si se puede obtener el logro
|
|
};
|
|
|
|
class Cheevos
|
|
{
|
|
private:
|
|
// Punteros y objetos
|
|
Screen *screen; // Objeto encargado de dibujar en pantalla
|
|
options_t *options; // Puntero a las opciones del juego
|
|
|
|
// Variables
|
|
std::vector<cheevos_t> cheevos; // Listado de logros
|
|
bool enabled; // Indica si los logros se pueden obtener
|
|
std::string file; // Fichero done leer/almacenar el estado de los logros
|
|
|
|
// Inicializa los logros
|
|
void init();
|
|
|
|
// Busca un logro por id y devuelve el indice
|
|
int find(int id);
|
|
|
|
// Carga el estado de los logros
|
|
void load();
|
|
|
|
// Guarda el estado de los logros
|
|
void save();
|
|
|
|
// Carga el estado de los logros desde un fichero
|
|
void loadFromFile();
|
|
|
|
// Guarda el estado de los logros en un fichero
|
|
void saveToFile();
|
|
|
|
public:
|
|
// Constructor
|
|
Cheevos(Screen *screen, options_t *options, std::string file);
|
|
|
|
// Destructor
|
|
~Cheevos();
|
|
|
|
// Desbloquea un logro
|
|
void unlock(int id);
|
|
|
|
// Invalida un logro
|
|
void invalidate(int id);
|
|
|
|
// Habilita o deshabilita los logros
|
|
void enable(bool value);
|
|
|
|
// Lista los logros
|
|
std::vector<cheevos_t> list();
|
|
|
|
// Devuelve el número total de logros desbloqueados
|
|
int unlocked();
|
|
|
|
// Devuelve el número total de logros
|
|
int count();
|
|
|
|
// Vuelve a cargar los logros desde el origen
|
|
void reload();
|
|
}; |