61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <string> // Para string
|
|
#include <vector> // Para vector
|
|
|
|
enum assetType
|
|
{
|
|
t_bitmap,
|
|
t_music,
|
|
t_sound,
|
|
t_font,
|
|
t_lang,
|
|
t_data,
|
|
t_room,
|
|
t_enemy,
|
|
t_item,
|
|
t_maxAssetType
|
|
};
|
|
|
|
// Clase Asset
|
|
class Asset
|
|
{
|
|
private:
|
|
// Estructura para definir un item
|
|
struct item_t
|
|
{
|
|
std::string file; // Ruta del fichero desde la raiz del directorio
|
|
enum assetType type; // Indica el tipo de recurso
|
|
bool required; // Indica si es un fichero que debe de existir
|
|
// bool absolute; // Indica si la ruta que se ha proporcionado es una ruta absoluta
|
|
};
|
|
|
|
// Variables
|
|
int longestName; // Contiene la longitud del nombre de fichero mas largo
|
|
std::vector<item_t> fileList; // Listado con todas las rutas a los ficheros
|
|
std::string executablePath; // Ruta al ejecutable
|
|
bool verbose; // Indica si ha de mostrar información por pantalla
|
|
|
|
// Comprueba que existe un fichero
|
|
bool checkFile(std::string executablePath);
|
|
|
|
// Devuelve el nombre del tipo de recurso
|
|
std::string getTypeName(int type);
|
|
|
|
public:
|
|
// Constructor
|
|
Asset(std::string path);
|
|
|
|
// Añade un elemento a la lista
|
|
void add(std::string file, enum assetType type, bool required = true, bool absolute = false);
|
|
|
|
// Devuelve un elemento de la lista a partir de una cadena
|
|
std::string get(std::string text);
|
|
|
|
// Comprueba que existen todos los elementos
|
|
bool check();
|
|
|
|
// Establece si ha de mostrar texto por pantalla
|
|
void setVerbose(bool value);
|
|
};
|