opcions per amagar la pantalla de carrega

This commit is contained in:
2026-04-15 09:23:36 +02:00
parent 727e55af03
commit 9f22e1c58b
6 changed files with 71 additions and 9 deletions

View File

@@ -89,6 +89,12 @@ namespace Defaults::Localization {
constexpr const char* LANGUAGE = "ca"; // Idioma por defecto (en = inglés, ca = catalán)
} // namespace Defaults::Localization
namespace Defaults::Loading {
constexpr bool SHOW = false; // No mostrar la pantalla de carga por defecto
constexpr bool SHOW_RESOURCE_NAME = true; // Mostrar el nombre del recurso por defecto
constexpr bool WAIT_FOR_INPUT = false; // No esperar tecla al terminar por defecto
} // namespace Defaults::Loading
namespace Defaults::Game::Items {
constexpr const float PERCENT_TO_OPEN_THE_JAIL = 0.9F; // Porcentaje de items necesarios para abrir la jail
} // namespace Defaults::Game::Items

View File

@@ -623,6 +623,21 @@ namespace Options {
}
}
// Carga opciones de la pantalla de carga desde YAML
void loadLoadingFromYaml(const fkyaml::node& yaml) {
if (!yaml.contains("loading")) { return; }
const auto& ld = yaml["loading"];
if (ld.contains("show")) {
try { loading.show = ld["show"].get_value<bool>(); } catch (...) { loading.show = Defaults::Loading::SHOW; }
}
if (ld.contains("show_resource_name")) {
try { loading.show_resource_name = ld["show_resource_name"].get_value<bool>(); } catch (...) { loading.show_resource_name = Defaults::Loading::SHOW_RESOURCE_NAME; }
}
if (ld.contains("wait_for_input")) {
try { loading.wait_for_input = ld["wait_for_input"].get_value<bool>(); } catch (...) { loading.wait_for_input = Defaults::Loading::WAIT_FOR_INPUT; }
}
}
// Establece la ruta del fichero de configuración
void setConfigFile(const std::string& path) {
config_file_path = path;
@@ -673,6 +688,7 @@ namespace Options {
loadPlayerConfigFromYaml(yaml);
loadKioskConfigFromYaml(yaml);
loadLocalizationFromYaml(yaml);
loadLoadingFromYaml(yaml);
std::cout << "Config file loaded successfully\n\n";
@@ -810,6 +826,14 @@ namespace Options {
file << "localization:\n";
file << " language: \"" << language << "\"\n";
// LOADING SCREEN
file << "\n";
file << "# LOADING SCREEN\n";
file << "loading:\n";
file << " show: " << (loading.show ? "true" : "false") << "\n";
file << " show_resource_name: " << (loading.show_resource_name ? "true" : "false") << "\n";
file << " wait_for_input: " << (loading.wait_for_input ? "true" : "false") << " # solo si show=true\n";
file.close();
std::cout << "Config file saved successfully\n\n";

View File

@@ -134,6 +134,13 @@ namespace Options {
float volume{Defaults::Audio::VOLUME}; // Volumen al que suenan el audio (0-128 internamente)
};
// Estructura para las opciones de la pantalla de carga
struct Loading {
bool show{Defaults::Loading::SHOW}; // Muestra la pantalla de carga (si no, pantalla en negro)
bool show_resource_name{Defaults::Loading::SHOW_RESOURCE_NAME}; // Muestra el nombre del recurso sobre la barra de progreso
bool wait_for_input{Defaults::Loading::WAIT_FOR_INPUT}; // Al terminar la carga, espera tecla antes de continuar (solo si show=true)
};
// Estructura para las opciones de juego
struct Game {
float width{Defaults::Canvas::WIDTH}; // Ancho de la resolucion del juego
@@ -182,6 +189,7 @@ namespace Options {
inline Stats stats{}; // Datos con las estadisticas de juego
inline Window window{}; // Opciones relativas a la ventana
inline Audio audio{}; // Opciones relativas al audio
inline Loading loading{}; // Opciones de la pantalla de carga
inline KeyboardControls keyboard_controls{}; // Teclas usadas para jugar
inline GamepadControls gamepad_controls{}; // Botones del gamepad usados para jugar
inline Kiosk kiosk{}; // Opciones del modo kiosko