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/resources/asset.hpp" // Para Asset
|
||||
#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/param.hpp" // Para Param, param, ParamPlayer, ParamResource, ParamGame
|
||||
#include "utils/utils.hpp" // Para getFileName
|
||||
@@ -754,6 +755,12 @@ void Resource::renderProgress() {
|
||||
screen->start();
|
||||
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 bar_color = param.resource.color.DARKEN(100);
|
||||
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_RenderRect(renderer, &loading_wired_rect_);
|
||||
|
||||
// Escribe el texto de carga encima de la barra
|
||||
/*
|
||||
loading_text_->writeColored(
|
||||
loading_wired_rect_.x,
|
||||
loading_wired_rect_.y - 9,
|
||||
Lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_,
|
||||
text_color);
|
||||
*/
|
||||
// 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_->writeDX(
|
||||
Text::CENTER | Text::COLOR,
|
||||
loading_wired_rect_.x + (loading_wired_rect_.w / 2),
|
||||
loading_wired_rect_.y - TEXT_HEIGHT - 2,
|
||||
loading_resource_name_,
|
||||
1,
|
||||
text_color);
|
||||
}
|
||||
|
||||
// Muestra nombre de la aplicación
|
||||
loading_text_->writeDX(
|
||||
@@ -793,23 +802,6 @@ void Resource::renderProgress() {
|
||||
1,
|
||||
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
|
||||
screen->coreRender();
|
||||
}
|
||||
@@ -826,13 +818,14 @@ void Resource::loadDemoDataQuiet() {
|
||||
|
||||
// Inicializa los rectangulos que definen la barra de progreso
|
||||
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 = X_PADDING, .y = BAR_Y_POSITION, .w = WIRED_BAR_WIDTH, .h = BAR_HEIGHT};
|
||||
loading_wired_rect_ = {.x = BAR_X_POSITION, .y = BAR_Y_POSITION, .w = WIRED_BAR_WIDTH, .h = BAR_HEIGHT};
|
||||
|
||||
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
|
||||
|
||||
@@ -117,12 +117,15 @@ class Resource {
|
||||
}
|
||||
};
|
||||
|
||||
// --- Constantes para la pantalla de carga ---
|
||||
static constexpr float X_PADDING = 60.0F;
|
||||
static constexpr float Y_PADDING = 20.0F;
|
||||
// --- Constantes para la barra de progreso de la pantalla de carga ---
|
||||
// BAR_WIDTH_RATIO: fracción del ancho de la pantalla ocupada por la barra (centrada)
|
||||
// 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 Color BAR_COLOR = Color(128, 128, 128);
|
||||
static constexpr Color TEXT_COLOR = Color(255, 255, 255);
|
||||
|
||||
// --- Modo de carga ---
|
||||
LoadingMode loading_mode_;
|
||||
|
||||
@@ -213,3 +213,8 @@ namespace Defaults::Settings {
|
||||
constexpr bool SHUTDOWN_ENABLED = false;
|
||||
constexpr const char* PARAMS_FILE = "param_320x256.txt";
|
||||
} // 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
|
||||
Video video; // Opciones de vídeo
|
||||
Audio audio; // Opciones de audio
|
||||
Loading loading; // Opciones de la pantalla de carga
|
||||
GamepadManager gamepad_manager; // Opciones de mando para cada jugador
|
||||
Keyboard keyboard; // Opciones para el teclado
|
||||
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) {
|
||||
if (!yaml.contains("game")) { return; }
|
||||
const auto& game = yaml["game"];
|
||||
@@ -601,6 +609,7 @@ namespace Options {
|
||||
loadWindowFromYaml(yaml);
|
||||
loadVideoFromYaml(yaml);
|
||||
loadAudioFromYaml(yaml);
|
||||
loadLoadingFromYaml(yaml);
|
||||
loadGameFromYaml(yaml);
|
||||
loadControllersFromYaml(yaml);
|
||||
loadKeyboardFromYaml(yaml);
|
||||
@@ -682,6 +691,13 @@ namespace Options {
|
||||
file << " volume: " << audio.sound.volume << "\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
|
||||
file << "# GAME\n";
|
||||
file << "game:\n";
|
||||
|
||||
@@ -109,6 +109,11 @@ namespace Options {
|
||||
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 {
|
||||
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
|
||||
@@ -333,6 +338,7 @@ namespace Options {
|
||||
extern Settings settings; // Opciones del juego
|
||||
extern Video video; // Opciones de vídeo
|
||||
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 Keyboard keyboard; // Opciones para el teclado
|
||||
extern PendingChanges pending_changes; // Opciones que se aplican al cerrar
|
||||
|
||||
Reference in New Issue
Block a user