From d056a5e3366b29228bd172dddc7daa6520735271 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 27 Sep 2025 00:20:46 +0200 Subject: [PATCH] =?UTF-8?q?nou:=20afegida=20versi=C3=B3=20de=20git=20en=20?= =?UTF-8?q?la=20pantalla=20de=20carrega?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 16 ++++++++++++++++ source/defaults.h | 3 ++- source/resource.cpp | 14 +++++++++++--- source/version.h.in | 6 ++++++ tools/pack_resources.cpp | 5 +++-- 5 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 source/version.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index b4f355f..cae636c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,22 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) cmake_policy(SET CMP0072 NEW) set(OpenGL_GL_PREFERENCE GLVND) +# --- GENERACIÓN DE VERSIÓN AUTOMÁTICA --- +find_package(Git QUIET) +if(GIT_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short=7 HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) +else() + set(GIT_HASH "unknown") +endif() + +# Configurar archivo de versión +configure_file(${CMAKE_SOURCE_DIR}/source/version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY) # --- 1. LISTA EXPLÍCITA DE FUENTES --- set(APP_SOURCES diff --git a/source/defaults.h b/source/defaults.h index a298a69..ee5be45 100644 --- a/source/defaults.h +++ b/source/defaults.h @@ -6,6 +6,7 @@ #include "color.h" #include "ui/notifier.h" // Para Notifier::Position +#include "version.h" // Para Version::APP_NAME // --- Namespace GameDefaults: configuración centralizada con valores por defecto del juego --- namespace GameDefaults { @@ -211,7 +212,7 @@ constexpr const char* PLAYER1 = "422028FF"; // --- OPTIONS --- namespace Options { // Window -constexpr const char* WINDOW_CAPTION = "Coffee Crisis Arcade Edition"; +constexpr const char* WINDOW_CAPTION = Version::APP_NAME; constexpr int WINDOW_ZOOM = 2; constexpr int WINDOW_MAX_ZOOM = 2; diff --git a/source/resource.cpp b/source/resource.cpp index 24d79a5..c6544f5 100644 --- a/source/resource.cpp +++ b/source/resource.cpp @@ -12,6 +12,7 @@ #include "asset.h" // Para Asset #include "color.h" // Para Color +#include "version.h" // Para Version::APP_NAME y Version::GIT_HASH #ifndef NO_AUDIO #include "external/jail_audio.h" // Para JA_LoadMusic, JA_LoadSound, JA_DeleteMusic, JA_DeleteSound #endif @@ -809,20 +810,27 @@ void Resource::renderProgress() { Lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_, param.resource.color); - // Muestra información del monitor alineada con la barra de carga + // Muestra nombre de la aplicación y versión loading_text_->writeColored( X_PADDING, Y_PADDING, + std::string(Version::APP_NAME) + " (" + Version::GIT_HASH + ")", + param.resource.color); + + // Muestra información del monitor desplazada hacia abajo + loading_text_->writeColored( + X_PADDING, + Y_PADDING + 18, screen->getDisplayMonitorName(), param.resource.color); loading_text_->writeColored( X_PADDING, - Y_PADDING + 9, + Y_PADDING + 27, std::to_string(screen->getDisplayMonitorWidth()) + "x" + std::to_string(screen->getDisplayMonitorHeight()), param.resource.color); loading_text_->writeColored( X_PADDING, - Y_PADDING + 18, + Y_PADDING + 36, std::to_string(screen->getDisplayMonitorRefreshRate()) + "Hz", param.resource.color); diff --git a/source/version.h.in b/source/version.h.in new file mode 100644 index 0000000..29d5615 --- /dev/null +++ b/source/version.h.in @@ -0,0 +1,6 @@ +#pragma once + +namespace Version { + constexpr const char* GIT_HASH = "@GIT_HASH@"; + constexpr const char* APP_NAME = "Coffee Crisis Arcade Edition"; +} \ No newline at end of file diff --git a/tools/pack_resources.cpp b/tools/pack_resources.cpp index 36f1475..fc34762 100644 --- a/tools/pack_resources.cpp +++ b/tools/pack_resources.cpp @@ -1,9 +1,10 @@ #include "../source/resource_pack.h" +#include "../build/version.h" // Para Version::APP_NAME #include #include void showHelp() { - std::cout << "Coffee Crisis Arcade Edition - Resource Packer" << std::endl; + std::cout << Version::APP_NAME << " - Resource Packer" << std::endl; std::cout << "===============================================" << std::endl; std::cout << "Usage: pack_resources [options] [input_dir] [output_file]" << std::endl; std::cout << std::endl; @@ -71,7 +72,7 @@ int main(int argc, char* argv[]) { return 0; } - std::cout << "Coffee Crisis Arcade Edition - Resource Packer" << std::endl; + std::cout << Version::APP_NAME << " - Resource Packer" << std::endl; std::cout << "===============================================" << std::endl; std::cout << "Input directory: " << dataDir << std::endl; std::cout << "Output file: " << outputFile << std::endl;