From 7ff44c26ad6d90f8946c0ded9a6d0104b3eebab8 Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Sat, 21 Feb 2026 23:12:47 +0100 Subject: [PATCH 1/4] Changed 'InitGameLogicRandom' to 'InitRandom'. --- .../Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp | 6 +++--- Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp | 6 +++--- .../GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp | 4 ++-- .../Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp b/Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp index dc24d0cca6f..72f9cb98998 100644 --- a/Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp +++ b/Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp @@ -852,9 +852,9 @@ void GameSpyStagingRoom::launchGame( void ) TheWritableGlobalData->m_useFpsLimit = false; - // Set the random seed - InitGameLogicRandom( getSeed() ); - DEBUG_LOG(("InitGameLogicRandom( %d )", getSeed())); + // Set the seeds + InitRandom( getSeed() ); + DEBUG_LOG(("InitRandom( %d )", getSeed())); // mark us as "Loading" in the buddy list BuddyRequest req; diff --git a/Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp b/Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp index 2c344553f76..38979b5505a 100644 --- a/Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp +++ b/Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp @@ -256,9 +256,9 @@ void LANAPI::OnGameStart( void ) TheWritableGlobalData->m_useFpsLimit = false; - // Set the random seed - InitGameLogicRandom( m_currentGame->getSeed() ); - DEBUG_LOG(("InitGameLogicRandom( %d )", m_currentGame->getSeed())); + // Set the seeds + InitRandom( m_currentGame->getSeed() ); + DEBUG_LOG(("InitRandom( %d )", m_currentGame->getSeed())); } } diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp index 133ddf9b0fd..bcd6bcbc3a0 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp @@ -441,7 +441,7 @@ void reallyDoStart( void ) if (isSkirmish) { - InitGameLogicRandom(TheSkirmishGameInfo->getSeed()); + InitRandom(TheSkirmishGameInfo->getSeed()); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SKIRMISH); @@ -451,7 +451,7 @@ void reallyDoStart( void ) } else { - InitGameLogicRandom(0); + InitRandom(0); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SINGLE_PLAYER); diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp index 48382ad5705..7dd4133ff40 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp @@ -542,7 +542,7 @@ void Shell::showShellMap(Bool useShellMap ) TheGameLogic->exitGame(); TheWritableGlobalData->m_pendingFile = TheGlobalData->m_shellMapName; - InitGameLogicRandom(0); + InitRandom(0); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SHELL); m_shellMapOn = TRUE; From 9ca2cfb76eae77357df13699f34f307212dc1315 Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Sat, 21 Feb 2026 23:13:22 +0100 Subject: [PATCH 2/4] Removed 'InitGameLogicRandom'. --- Core/GameEngine/Include/Common/RandomValue.h | 1 - Core/GameEngine/Source/Common/RandomValue.cpp | 15 --------------- .../Code/GameEngine/Source/Common/Recorder.cpp | 1 - .../GUI/GUICallbacks/Menus/MapSelectMenu.cpp | 6 ------ 4 files changed, 23 deletions(-) diff --git a/Core/GameEngine/Include/Common/RandomValue.h b/Core/GameEngine/Include/Common/RandomValue.h index 011477a3372..fc200468791 100644 --- a/Core/GameEngine/Include/Common/RandomValue.h +++ b/Core/GameEngine/Include/Common/RandomValue.h @@ -32,7 +32,6 @@ extern void InitRandom( void ); extern void InitRandom( UnsignedInt seed ); -extern void InitGameLogicRandom( UnsignedInt seed ); ///< Set the GameLogic seed to a known value at game start extern UnsignedInt GetGameLogicRandomSeed( void ); ///< Get the seed (used for replays) extern UnsignedInt GetGameLogicRandomSeedCRC( void );///< Get the seed (used for CRCs) diff --git a/Core/GameEngine/Source/Common/RandomValue.cpp b/Core/GameEngine/Source/Common/RandomValue.cpp index 0628c245eef..e8adba10808 100644 --- a/Core/GameEngine/Source/Common/RandomValue.cpp +++ b/Core/GameEngine/Source/Common/RandomValue.cpp @@ -177,21 +177,6 @@ DEBUG_LOG(( "InitRandom %08lx",seed)); #endif } -void InitGameLogicRandom( UnsignedInt seed ) -{ -#ifdef DETERMINISTIC - // needs to be the same every time - seedRandom(0, theGameLogicSeed); - theGameLogicBaseSeed = 0; -#else - seedRandom(seed, theGameLogicSeed); - theGameLogicBaseSeed = seed; -#endif -#ifdef DEBUG_RANDOM_LOGIC -DEBUG_LOG(( "InitRandom Logic %08lx",seed)); -#endif -} - // // Integer random value // diff --git a/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp b/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp index 74cf54750cd..cc234b22e9d 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp @@ -1303,7 +1303,6 @@ Bool RecorderClass::playbackFile(AsciiString filename) if( maxFPS != 0 ) msg->appendIntegerArgument(maxFPS); TheCommandList->appendMessage( msg ); - //InitGameLogicRandom( m_gameInfo.getSeed()); InitRandom( m_gameInfo.getSeed() ); } diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp index 067f60a824b..7be99f7c392 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp @@ -79,12 +79,6 @@ static void doGameStart( void ) /// @todo: when Campaign & skirmish are separated, make campaign have fixed seed and skirmish random. InitRandom(0); - /* - if (TheGlobalData->m_fixedSeed >= 0) - InitGameLogicRandom(TheGlobalData->m_fixedSeed); - else - InitGameLogicRandom(GameClientRandomValue(0, INT_MAX - 1)); - */ isShuttingDown = true; } From f6aa7d21ac22c29f9572bbd0b3dd576d0fa5c722 Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Sun, 22 Feb 2026 19:55:31 +0100 Subject: [PATCH 3/4] Removed EA todo comment. --- .../Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp index 7be99f7c392..ba87f63ae4c 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp @@ -77,7 +77,6 @@ static void doGameStart( void ) msg->appendIntegerArgument(s_AIDiff); msg->appendIntegerArgument(0); - /// @todo: when Campaign & skirmish are separated, make campaign have fixed seed and skirmish random. InitRandom(0); isShuttingDown = true; From a7ba441ef39d7baa29a34040789db6e379e8b426 Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Fri, 27 Feb 2026 21:49:48 +0100 Subject: [PATCH 4/4] Replicated in Generals. --- Generals/Code/GameEngine/Source/Common/Recorder.cpp | 1 - .../GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp | 7 ------- .../GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp | 4 ++-- .../Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp | 2 +- 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Generals/Code/GameEngine/Source/Common/Recorder.cpp b/Generals/Code/GameEngine/Source/Common/Recorder.cpp index 1129ef90a38..19b88a76b38 100644 --- a/Generals/Code/GameEngine/Source/Common/Recorder.cpp +++ b/Generals/Code/GameEngine/Source/Common/Recorder.cpp @@ -1300,7 +1300,6 @@ Bool RecorderClass::playbackFile(AsciiString filename) if( maxFPS != 0 ) msg->appendIntegerArgument(maxFPS); TheCommandList->appendMessage( msg ); - //InitGameLogicRandom( m_gameInfo.getSeed()); InitRandom( m_gameInfo.getSeed() ); } diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp index 0ebf489382e..06867720afa 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp @@ -77,14 +77,7 @@ static void doGameStart() msg->appendIntegerArgument(s_AIDiff); msg->appendIntegerArgument(0); - /// @todo: when Campaign & skirmish are separated, make campaign have fixed seed and skirmish random. InitRandom(0); - /* - if (TheGlobalData->m_fixedSeed >= 0) - InitGameLogicRandom(TheGlobalData->m_fixedSeed); - else - InitGameLogicRandom(GameClientRandomValue(0, INT_MAX - 1)); - */ isShuttingDown = true; } diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp index 289beb57347..4ade01370cb 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp @@ -430,7 +430,7 @@ void reallyDoStart() if (isSkirmish) { - InitGameLogicRandom(TheSkirmishGameInfo->getSeed()); + InitRandom(TheSkirmishGameInfo->getSeed()); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SKIRMISH); @@ -440,7 +440,7 @@ void reallyDoStart() } else { - InitGameLogicRandom(0); + InitRandom(0); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SINGLE_PLAYER); diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp index f63d486e7cb..fff2cf12c94 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp @@ -535,7 +535,7 @@ void Shell::showShellMap(Bool useShellMap ) TheGameLogic->exitGame(); TheWritableGlobalData->m_pendingFile = TheGlobalData->m_shellMapName; - InitGameLogicRandom(0); + InitRandom(0); GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME ); msg->appendIntegerArgument(GAME_SHELL); m_shellMapOn = TRUE;