arreglos cosmetics en la pantalla de carrega de recursos
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
#include "core/rendering/text.hpp" // Para Text
|
#include "core/rendering/text.hpp" // Para Text
|
||||||
#include "core/resources/asset.hpp" // Para Asset
|
#include "core/resources/asset.hpp" // Para Asset
|
||||||
#include "core/resources/resource_helper.hpp" // Para loadFile
|
#include "core/resources/resource_helper.hpp" // Para loadFile
|
||||||
|
#include "game/options.hpp" // Para Options::loading
|
||||||
#include "utils/color.hpp" // Para Color, NO_COLOR_MOD
|
#include "utils/color.hpp" // Para Color, NO_COLOR_MOD
|
||||||
#include "utils/param.hpp" // Para Param, param, ParamPlayer, ParamResource, ParamGame
|
#include "utils/param.hpp" // Para Param, param, ParamPlayer, ParamResource, ParamGame
|
||||||
#include "utils/utils.hpp" // Para getFileName
|
#include "utils/utils.hpp" // Para getFileName
|
||||||
@@ -754,6 +755,12 @@ void Resource::renderProgress() {
|
|||||||
screen->start();
|
screen->start();
|
||||||
screen->clean();
|
screen->clean();
|
||||||
|
|
||||||
|
// Si la pantalla de carga está desactivada, dejamos todo en negro
|
||||||
|
if (!Options::loading.show) {
|
||||||
|
screen->coreRender();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
auto text_color = param.resource.color;
|
auto text_color = param.resource.color;
|
||||||
auto bar_color = param.resource.color.DARKEN(100);
|
auto bar_color = param.resource.color.DARKEN(100);
|
||||||
const auto TEXT_HEIGHT = loading_text_->getCharacterSize();
|
const auto TEXT_HEIGHT = loading_text_->getCharacterSize();
|
||||||
@@ -766,14 +773,16 @@ void Resource::renderProgress() {
|
|||||||
SDL_SetRenderDrawColor(renderer, bar_color.r, bar_color.g, bar_color.b, bar_color.a);
|
SDL_SetRenderDrawColor(renderer, bar_color.r, bar_color.g, bar_color.b, bar_color.a);
|
||||||
SDL_RenderRect(renderer, &loading_wired_rect_);
|
SDL_RenderRect(renderer, &loading_wired_rect_);
|
||||||
|
|
||||||
// Escribe el texto de carga encima de la barra
|
// Escribe el nombre del recurso que se está cargando, centrado sobre la barra
|
||||||
/*
|
if (Options::loading.show_resource_name && !loading_resource_name_.empty()) {
|
||||||
loading_text_->writeColored(
|
loading_text_->writeDX(
|
||||||
loading_wired_rect_.x,
|
Text::CENTER | Text::COLOR,
|
||||||
loading_wired_rect_.y - 9,
|
loading_wired_rect_.x + (loading_wired_rect_.w / 2),
|
||||||
Lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_,
|
loading_wired_rect_.y - TEXT_HEIGHT - 2,
|
||||||
|
loading_resource_name_,
|
||||||
|
1,
|
||||||
text_color);
|
text_color);
|
||||||
*/
|
}
|
||||||
|
|
||||||
// Muestra nombre de la aplicación
|
// Muestra nombre de la aplicación
|
||||||
loading_text_->writeDX(
|
loading_text_->writeDX(
|
||||||
@@ -793,23 +802,6 @@ void Resource::renderProgress() {
|
|||||||
1,
|
1,
|
||||||
text_color);
|
text_color);
|
||||||
|
|
||||||
// Muestra información del monitor desplazada hacia abajo
|
|
||||||
/*loading_text_->writeColored(
|
|
||||||
X_PADDING,
|
|
||||||
Y_PADDING + 18,
|
|
||||||
screen->getDisplayMonitorName(),
|
|
||||||
text_color);
|
|
||||||
loading_text_->writeColored(
|
|
||||||
X_PADDING,
|
|
||||||
Y_PADDING + 27,
|
|
||||||
std::to_string(screen->getDisplayMonitorWidth()) + "x" + std::to_string(screen->getDisplayMonitorHeight()),
|
|
||||||
text_color);
|
|
||||||
loading_text_->writeColored(
|
|
||||||
X_PADDING,
|
|
||||||
Y_PADDING + 36,
|
|
||||||
std::to_string(screen->getDisplayMonitorRefreshRate()) + "Hz",
|
|
||||||
text_color);*/
|
|
||||||
|
|
||||||
// Renderiza el frame en pantalla
|
// Renderiza el frame en pantalla
|
||||||
screen->coreRender();
|
screen->coreRender();
|
||||||
}
|
}
|
||||||
@@ -826,13 +818,14 @@ void Resource::loadDemoDataQuiet() {
|
|||||||
|
|
||||||
// Inicializa los rectangulos que definen la barra de progreso
|
// Inicializa los rectangulos que definen la barra de progreso
|
||||||
void Resource::initProgressBar() {
|
void Resource::initProgressBar() {
|
||||||
const float BAR_Y_POSITION = param.game.height - BAR_HEIGHT - Y_PADDING;
|
const float WIRED_BAR_WIDTH = param.game.width * BAR_WIDTH_RATIO;
|
||||||
|
const float BAR_X_POSITION = (param.game.width - WIRED_BAR_WIDTH) / 2.0F;
|
||||||
|
const float BAR_Y_POSITION = (param.game.height * BAR_Y_RATIO) - (BAR_HEIGHT / 2.0F);
|
||||||
|
|
||||||
const float WIRED_BAR_WIDTH = param.game.width - (X_PADDING * 2);
|
loading_wired_rect_ = {.x = BAR_X_POSITION, .y = BAR_Y_POSITION, .w = WIRED_BAR_WIDTH, .h = BAR_HEIGHT};
|
||||||
loading_wired_rect_ = {.x = X_PADDING, .y = BAR_Y_POSITION, .w = WIRED_BAR_WIDTH, .h = BAR_HEIGHT};
|
|
||||||
|
|
||||||
const float FULL_BAR_WIDTH = WIRED_BAR_WIDTH * loading_count_.getPercentage();
|
const float FULL_BAR_WIDTH = WIRED_BAR_WIDTH * loading_count_.getPercentage();
|
||||||
loading_full_rect_ = {.x = X_PADDING, .y = BAR_Y_POSITION, .w = FULL_BAR_WIDTH, .h = BAR_HEIGHT};
|
loading_full_rect_ = {.x = BAR_X_POSITION, .y = BAR_Y_POSITION, .w = FULL_BAR_WIDTH, .h = BAR_HEIGHT};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actualiza el progreso de carga y muestra la barra
|
// Actualiza el progreso de carga y muestra la barra
|
||||||
|
|||||||
@@ -117,12 +117,15 @@ class Resource {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// --- Constantes para la pantalla de carga ---
|
// --- Constantes para la barra de progreso de la pantalla de carga ---
|
||||||
static constexpr float X_PADDING = 60.0F;
|
// BAR_WIDTH_RATIO: fracción del ancho de la pantalla ocupada por la barra (centrada)
|
||||||
static constexpr float Y_PADDING = 20.0F;
|
// 1.0 = ancho completo, 0.5 = la mitad del ancho
|
||||||
|
// BAR_Y_RATIO: posición vertical del CENTRO de la barra en fracción de la altura
|
||||||
|
// 0.0 = centro en el borde superior, 1.0 = centro en el borde inferior
|
||||||
|
// BAR_HEIGHT: grosor de la barra en píxeles
|
||||||
|
static constexpr float BAR_WIDTH_RATIO = 0.5F;
|
||||||
|
static constexpr float BAR_Y_RATIO = 0.85F;
|
||||||
static constexpr float BAR_HEIGHT = 5.0F;
|
static constexpr float BAR_HEIGHT = 5.0F;
|
||||||
static constexpr Color BAR_COLOR = Color(128, 128, 128);
|
|
||||||
static constexpr Color TEXT_COLOR = Color(255, 255, 255);
|
|
||||||
|
|
||||||
// --- Modo de carga ---
|
// --- Modo de carga ---
|
||||||
LoadingMode loading_mode_;
|
LoadingMode loading_mode_;
|
||||||
|
|||||||
@@ -213,3 +213,8 @@ namespace Defaults::Settings {
|
|||||||
constexpr bool SHUTDOWN_ENABLED = false;
|
constexpr bool SHUTDOWN_ENABLED = false;
|
||||||
constexpr const char* PARAMS_FILE = "param_320x256.txt";
|
constexpr const char* PARAMS_FILE = "param_320x256.txt";
|
||||||
} // namespace Defaults::Settings
|
} // namespace Defaults::Settings
|
||||||
|
|
||||||
|
namespace Defaults::Loading {
|
||||||
|
constexpr bool SHOW = false;
|
||||||
|
constexpr bool SHOW_RESOURCE_NAME = true;
|
||||||
|
} // namespace Defaults::Loading
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ namespace Options {
|
|||||||
Settings settings; // Opciones del juego
|
Settings settings; // Opciones del juego
|
||||||
Video video; // Opciones de vídeo
|
Video video; // Opciones de vídeo
|
||||||
Audio audio; // Opciones de audio
|
Audio audio; // Opciones de audio
|
||||||
|
Loading loading; // Opciones de la pantalla de carga
|
||||||
GamepadManager gamepad_manager; // Opciones de mando para cada jugador
|
GamepadManager gamepad_manager; // Opciones de mando para cada jugador
|
||||||
Keyboard keyboard; // Opciones para el teclado
|
Keyboard keyboard; // Opciones para el teclado
|
||||||
PendingChanges pending_changes; // Opciones que se aplican al cerrar
|
PendingChanges pending_changes; // Opciones que se aplican al cerrar
|
||||||
@@ -489,6 +490,13 @@ namespace Options {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void loadLoadingFromYaml(const fkyaml::node& yaml) {
|
||||||
|
if (!yaml.contains("loading")) { return; }
|
||||||
|
const auto& ld = yaml["loading"];
|
||||||
|
parseBoolField(ld, "show", loading.show);
|
||||||
|
parseBoolField(ld, "show_resource_name", loading.show_resource_name);
|
||||||
|
}
|
||||||
|
|
||||||
void loadGameFromYaml(const fkyaml::node& yaml) {
|
void loadGameFromYaml(const fkyaml::node& yaml) {
|
||||||
if (!yaml.contains("game")) { return; }
|
if (!yaml.contains("game")) { return; }
|
||||||
const auto& game = yaml["game"];
|
const auto& game = yaml["game"];
|
||||||
@@ -601,6 +609,7 @@ namespace Options {
|
|||||||
loadWindowFromYaml(yaml);
|
loadWindowFromYaml(yaml);
|
||||||
loadVideoFromYaml(yaml);
|
loadVideoFromYaml(yaml);
|
||||||
loadAudioFromYaml(yaml);
|
loadAudioFromYaml(yaml);
|
||||||
|
loadLoadingFromYaml(yaml);
|
||||||
loadGameFromYaml(yaml);
|
loadGameFromYaml(yaml);
|
||||||
loadControllersFromYaml(yaml);
|
loadControllersFromYaml(yaml);
|
||||||
loadKeyboardFromYaml(yaml);
|
loadKeyboardFromYaml(yaml);
|
||||||
@@ -682,6 +691,13 @@ namespace Options {
|
|||||||
file << " volume: " << audio.sound.volume << "\n";
|
file << " volume: " << audio.sound.volume << "\n";
|
||||||
file << "\n";
|
file << "\n";
|
||||||
|
|
||||||
|
// LOADING
|
||||||
|
file << "# LOADING SCREEN\n";
|
||||||
|
file << "loading:\n";
|
||||||
|
file << " show: " << boolToString(loading.show) << "\n";
|
||||||
|
file << " show_resource_name: " << boolToString(loading.show_resource_name) << "\n";
|
||||||
|
file << "\n";
|
||||||
|
|
||||||
// GAME
|
// GAME
|
||||||
file << "# GAME\n";
|
file << "# GAME\n";
|
||||||
file << "game:\n";
|
file << "game:\n";
|
||||||
|
|||||||
@@ -109,6 +109,11 @@ namespace Options {
|
|||||||
int volume = Defaults::Audio::VOLUME; // Volumen general del audio
|
int volume = Defaults::Audio::VOLUME; // Volumen general del audio
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 en curso sobre la barra de progreso
|
||||||
|
};
|
||||||
|
|
||||||
struct Settings {
|
struct Settings {
|
||||||
static constexpr int CURRENT_CONFIG_VERSION = 3; // Versión esperada del fichero
|
static constexpr int CURRENT_CONFIG_VERSION = 3; // Versión esperada del fichero
|
||||||
int config_version = CURRENT_CONFIG_VERSION; // Versión del archivo de configuración
|
int config_version = CURRENT_CONFIG_VERSION; // Versión del archivo de configuración
|
||||||
@@ -333,6 +338,7 @@ namespace Options {
|
|||||||
extern Settings settings; // Opciones del juego
|
extern Settings settings; // Opciones del juego
|
||||||
extern Video video; // Opciones de vídeo
|
extern Video video; // Opciones de vídeo
|
||||||
extern Audio audio; // Opciones de audio
|
extern Audio audio; // Opciones de audio
|
||||||
|
extern Loading loading; // Opciones de la pantalla de carga
|
||||||
extern GamepadManager gamepad_manager; // Manager de mandos para cada jugador
|
extern GamepadManager gamepad_manager; // Manager de mandos para cada jugador
|
||||||
extern Keyboard keyboard; // Opciones para el teclado
|
extern Keyboard keyboard; // Opciones para el teclado
|
||||||
extern PendingChanges pending_changes; // Opciones que se aplican al cerrar
|
extern PendingChanges pending_changes; // Opciones que se aplican al cerrar
|
||||||
|
|||||||
Reference in New Issue
Block a user