forked from jaildesigner-jailgames/jaildoctors_dilemma
Afegida barra de progres en la càrrega de recursos
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory> // for shared_ptr
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
#include "animated_sprite.h" // for AnimationsFileBuffer
|
||||
#include "room.h" // for room_t
|
||||
#include "text.h" // for Text, TextFile
|
||||
#include "texture.h" // for Texture
|
||||
struct JA_Music_t; // lines 11-11
|
||||
struct JA_Sound_t; // lines 12-12
|
||||
#include <memory> // for shared_ptr
|
||||
#include <string> // for string
|
||||
#include <vector> // for vector
|
||||
#include "animated_sprite.h" // for AnimationsFileBuffer
|
||||
#include "room.h" // for room_t
|
||||
#include "text.h" // for Text, TextFile
|
||||
#include "texture.h" // for Texture
|
||||
struct JA_Music_t; // lines 11-11
|
||||
struct JA_Sound_t; // lines 12-12
|
||||
|
||||
// Estructura para almacenar ficheros de sonido y su nombre
|
||||
struct ResourceSound
|
||||
@@ -98,6 +98,41 @@ struct ResourceRoom
|
||||
: name(name), room(room) {}
|
||||
};
|
||||
|
||||
// Estructura para llevar la cuenta de los recursos cargados
|
||||
struct ResourceCount
|
||||
{
|
||||
// int sounds; // Número de sonidos cargados
|
||||
// int musics; // Número de musicas cargadas
|
||||
// int textures; // Número de texturas cargadas
|
||||
// int text_files; // Número de ficheros de texto cargados
|
||||
// int texts; // Número de objetos de texto cargados
|
||||
// int animations; // Número de animaciones cargadas
|
||||
// int tile_maps; // Número de mapas de tiles cargados
|
||||
// int rooms; // Número de habitaciones cargadas
|
||||
int total; // Número total de recursos
|
||||
int loaded; // Número de recursos cargados
|
||||
|
||||
// Constructor
|
||||
ResourceCount()
|
||||
: total(0), loaded(0) {}
|
||||
|
||||
// Constructor
|
||||
ResourceCount(int total, int loaded)
|
||||
: total(total), loaded(loaded) {}
|
||||
|
||||
// Añade una cantidad a los recursos cargados
|
||||
void add(int amount)
|
||||
{
|
||||
loaded += amount;
|
||||
}
|
||||
|
||||
// Obtiene el porcentaje de recursos cargados
|
||||
float getPercentage()
|
||||
{
|
||||
return static_cast<float>(loaded) / static_cast<float>(total);
|
||||
}
|
||||
};
|
||||
|
||||
class Resource
|
||||
{
|
||||
private:
|
||||
@@ -113,6 +148,8 @@ private:
|
||||
std::vector<ResourceTileMap> tile_maps_; // Vector con los mapas de tiles
|
||||
std::vector<ResourceRoom> rooms_; // Vector con las habitaciones
|
||||
|
||||
ResourceCount count_; // Contador de recursos
|
||||
|
||||
// Carga los sonidos
|
||||
void loadSounds();
|
||||
|
||||
@@ -149,6 +186,18 @@ private:
|
||||
// Vacía el vector de musicas
|
||||
void clearMusics();
|
||||
|
||||
// Calcula el numero de recursos para cargar
|
||||
void calculateTotal();
|
||||
|
||||
// Muestra el progreso de carga
|
||||
void renderProgress();
|
||||
|
||||
// Comprueba los eventos
|
||||
void checkEvents();
|
||||
|
||||
// Actualiza el progreso de carga
|
||||
void updateLoadingProgress();
|
||||
|
||||
// [SINGLETON] Ahora el constructor y el destructor son privados, para no poder crear objetos resource desde fuera
|
||||
|
||||
// Constructor
|
||||
|
||||
Reference in New Issue
Block a user