From 20378e92beaa2888c2cd6deb10eb99e072c6f4d8 Mon Sep 17 00:00:00 2001 From: Felipe Keller Braz Date: Sun, 22 Jun 2025 16:02:40 -0300 Subject: [PATCH] [GEN][ZH] Add TheSuperHackers version to options screen --- Generals/Code/GameEngine/CMakeLists.txt | 1 + .../GUI/GUICallbacks/Menus/OptionsMenu.cpp | 5 ++- Generals/Code/Main/CMakeLists.txt | 40 ++++++++++++++----- GeneralsMD/Code/GameEngine/CMakeLists.txt | 1 + .../GUI/GUICallbacks/Menus/OptionsMenu.cpp | 5 ++- GeneralsMD/Code/Main/CMakeLists.txt | 27 ++++++++++--- 6 files changed, 62 insertions(+), 17 deletions(-) diff --git a/Generals/Code/GameEngine/CMakeLists.txt b/Generals/Code/GameEngine/CMakeLists.txt index f1fe224b5b..50c03cf36b 100644 --- a/Generals/Code/GameEngine/CMakeLists.txt +++ b/Generals/Code/GameEngine/CMakeLists.txt @@ -1077,6 +1077,7 @@ target_include_directories(g_gameengine PUBLIC target_include_directories(g_gameengine PRIVATE Include/Precompiled + ${CMAKE_BINARY_DIR}/Generals/Code/Main ) target_link_libraries(g_gameengine PRIVATE diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp index bf966accbc..9867c6b2ae 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp @@ -40,6 +40,7 @@ #include "Common/GameLOD.h" #include "Common/Registry.h" #include "Common/version.h" +#include "GeneratedVersion.h" #include "GameClient/ClientInstance.h" #include "GameClient/GameClient.h" @@ -1440,7 +1441,9 @@ void OptionsMenuInit( WindowLayout *layout, void *userData ) } else { - GadgetStaticTextSetText( labelVersion, versionString ); + UnicodeString fullVersion; + fullVersion.format(L"%s - TheSuperHackers %s", versionString.str(), SUPERHACKERS_VERSION_WIDE); + GadgetStaticTextSetText(labelVersion, fullVersion); } diff --git a/Generals/Code/Main/CMakeLists.txt b/Generals/Code/Main/CMakeLists.txt index b4cf515569..5da73f1930 100644 --- a/Generals/Code/Main/CMakeLists.txt +++ b/Generals/Code/Main/CMakeLists.txt @@ -24,13 +24,33 @@ target_link_libraries(g_generals PRIVATE winmm ) +if(EXISTS "${CMAKE_SOURCE_DIR}/next_tag.txt") + file(READ "${CMAKE_SOURCE_DIR}/next_tag.txt" GAME_VERSION) + string(STRIP "${GAME_VERSION}" GAME_VERSION) + string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GAME_VERSION}") + set(VERSION_MAJOR "${CMAKE_MATCH_1}") + set(VERSION_MINOR "${CMAKE_MATCH_2}") + set(VERSION_BUILDNUM "${CMAKE_MATCH_3}") +else() + set(GAME_VERSION "") + if (IS_VS6_BUILD) + set(VERSION_MAJOR "1") + set(VERSION_MINOR "7") + set(VERSION_BUILDNUM "601") + else() + set(VERSION_MAJOR "1") + set(VERSION_MINOR "8") + set(VERSION_BUILDNUM "601") + endif() +endif() + # TODO Originally referred to build host and user, replace with git info perhaps? file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/GeneratedVersion.h "#pragma once -#define VERSION_LOCALBUILDNUM 0 -#define VERSION_BUILDUSER \"Someone\" -#define VERSION_BUILDLOC \"Someplace\" +#define VERSION_BUILDUSER \"TheSuperHackers\" +#define VERSION_BUILDLOC \"GitHub\" +#define SUPERHACKERS_VERSION_WIDE L\"${GAME_VERSION}\" " ) @@ -39,18 +59,20 @@ if (IS_VS6_BUILD) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildVersion.h "#pragma once -#define VERSION_MAJOR 1 -#define VERSION_MINOR 7 -#define VERSION_BUILDNUM 601 +#define VERSION_MAJOR ${VERSION_MAJOR} +#define VERSION_MINOR ${VERSION_MINOR} +#define VERSION_BUILDNUM ${VERSION_BUILDNUM} +#define VERSION_LOCALBUILDNUM 9001 // it's over 9000! " ) else() file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildVersion.h "#pragma once -#define VERSION_MAJOR 1 -#define VERSION_MINOR 8 -#define VERSION_BUILDNUM 601 +#define VERSION_MAJOR ${VERSION_MAJOR} +#define VERSION_MINOR ${VERSION_MINOR} +#define VERSION_BUILDNUM ${VERSION_BUILDNUM} +#define VERSION_LOCALBUILDNUM 602 " ) endif() diff --git a/GeneralsMD/Code/GameEngine/CMakeLists.txt b/GeneralsMD/Code/GameEngine/CMakeLists.txt index 343a0fe28f..c448d1a159 100644 --- a/GeneralsMD/Code/GameEngine/CMakeLists.txt +++ b/GeneralsMD/Code/GameEngine/CMakeLists.txt @@ -1156,6 +1156,7 @@ target_include_directories(z_gameengine PUBLIC target_include_directories(z_gameengine PRIVATE Include/Precompiled + ${CMAKE_BINARY_DIR}/GeneralsMD/Code/Main ) target_link_libraries(z_gameengine PRIVATE diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp index d06afa84f6..71870dd260 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp @@ -40,6 +40,7 @@ #include "Common/GameLOD.h" #include "Common/Registry.h" #include "Common/version.h" +#include "GeneratedVersion.h" #include "GameClient/ClientInstance.h" #include "GameClient/GameClient.h" @@ -1506,7 +1507,9 @@ void OptionsMenuInit( WindowLayout *layout, void *userData ) } else { - GadgetStaticTextSetText( labelVersion, versionString ); + UnicodeString fullVersion; + fullVersion.format(L"%s - TheSuperHackers %s", versionString.str(), SUPERHACKERS_VERSION_WIDE); + GadgetStaticTextSetText(labelVersion, fullVersion); } diff --git a/GeneralsMD/Code/Main/CMakeLists.txt b/GeneralsMD/Code/Main/CMakeLists.txt index 2ef80b3e87..95e76753b1 100644 --- a/GeneralsMD/Code/Main/CMakeLists.txt +++ b/GeneralsMD/Code/Main/CMakeLists.txt @@ -26,13 +26,27 @@ target_link_libraries(z_generals PRIVATE zi_always ) +if(EXISTS "${CMAKE_SOURCE_DIR}/next_tag.txt") + file(READ "${CMAKE_SOURCE_DIR}/next_tag.txt" GAME_VERSION) + string(STRIP "${GAME_VERSION}" GAME_VERSION) + string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GAME_VERSION}") + set(VERSION_MAJOR "${CMAKE_MATCH_1}") + set(VERSION_MINOR "${CMAKE_MATCH_2}") + set(VERSION_BUILDNUM "${CMAKE_MATCH_3}") +else() + set(GAME_VERSION "") + set(VERSION_MAJOR "1") + set(VERSION_MINOR "4") + set(VERSION_BUILDNUM "601") +endif() + # TODO Originally referred to build host and user, replace with git info perhaps? file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/GeneratedVersion.h "#pragma once -#define VERSION_LOCALBUILDNUM 0 -#define VERSION_BUILDUSER \"Someone\" -#define VERSION_BUILDLOC \"Someplace\" +#define VERSION_BUILDUSER \"TheSuperHackers\" +#define VERSION_BUILDLOC \"GitHub\" +#define SUPERHACKERS_VERSION_WIDE L\"${GAME_VERSION}\" " ) @@ -40,9 +54,10 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/GeneratedVersion.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildVersion.h "#pragma once -#define VERSION_MAJOR 1 -#define VERSION_MINOR 4 -#define VERSION_BUILDNUM 601 +#define VERSION_MAJOR ${VERSION_MAJOR} +#define VERSION_MINOR ${VERSION_MINOR} +#define VERSION_BUILDNUM ${VERSION_BUILDNUM} +#define VERSION_LOCALBUILDNUM 9001 // it's over 9000! " )