Skip to content

Commit 5a53659

Browse files
committed
Revert "Changed seed functions for consistency."
This reverts commit 1ef1964.
1 parent 1a74d39 commit 5a53659

8 files changed

Lines changed: 30 additions & 7 deletions

File tree

Core/GameEngine/Include/Common/RandomValue.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
extern void InitRandom( void );
3434
extern void InitRandom( UnsignedInt seed );
35+
extern void InitGameLogicRandom( UnsignedInt seed ); ///< Set the GameLogic seed to a known value at game start
3536
extern UnsignedInt GetGameLogicRandomSeed( void ); ///< Get the seed (used for replays)
3637
extern UnsignedInt GetGameLogicRandomSeedCRC( void );///< Get the seed (used for CRCs)
3738

Core/GameEngine/Source/Common/RandomValue.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,21 @@ DEBUG_LOG(( "InitRandom %08lx",seed));
177177
#endif
178178
}
179179

180+
void InitGameLogicRandom( UnsignedInt seed )
181+
{
182+
#ifdef DETERMINISTIC
183+
// needs to be the same every time
184+
seedRandom(0, theGameLogicSeed);
185+
theGameLogicBaseSeed = 0;
186+
#else
187+
seedRandom(seed, theGameLogicSeed);
188+
theGameLogicBaseSeed = seed;
189+
#endif
190+
#ifdef DEBUG_RANDOM_LOGIC
191+
DEBUG_LOG(( "InitRandom Logic %08lx",seed));
192+
#endif
193+
}
194+
180195
//
181196
// Integer random value
182197
//

Core/GameEngine/Source/GameNetwork/GameSpy/StagingRoomGameInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -853,8 +853,8 @@ void GameSpyStagingRoom::launchGame( void )
853853
TheWritableGlobalData->m_useFpsLimit = false;
854854

855855
// Set the random seed
856-
InitRandom( getSeed() );
857-
DEBUG_LOG(("InitRandom( %d )", getSeed()));
856+
InitGameLogicRandom( getSeed() );
857+
DEBUG_LOG(("InitGameLogicRandom( %d )", getSeed()));
858858

859859
// mark us as "Loading" in the buddy list
860860
BuddyRequest req;

Core/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,8 @@ void LANAPI::OnGameStart( void )
257257
TheWritableGlobalData->m_useFpsLimit = false;
258258

259259
// Set the random seed
260-
InitRandom( m_currentGame->getSeed() );
261-
DEBUG_LOG(("InitRandom( %d )", m_currentGame->getSeed()));
260+
InitGameLogicRandom( m_currentGame->getSeed() );
261+
DEBUG_LOG(("InitGameLogicRandom( %d )", m_currentGame->getSeed()));
262262
}
263263
}
264264

GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,6 +1303,7 @@ Bool RecorderClass::playbackFile(AsciiString filename)
13031303
if( maxFPS != 0 )
13041304
msg->appendIntegerArgument(maxFPS);
13051305
TheCommandList->appendMessage( msg );
1306+
//InitGameLogicRandom( m_gameInfo.getSeed());
13061307
InitRandom( m_gameInfo.getSeed() );
13071308
}
13081309

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/MapSelectMenu.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ static void doGameStart( void )
7979

8080
/// @todo: when Campaign & skirmish are separated, make campaign have fixed seed and skirmish random.
8181
InitRandom(0);
82+
/*
83+
if (TheGlobalData->m_fixedSeed >= 0)
84+
InitGameLogicRandom(TheGlobalData->m_fixedSeed);
85+
else
86+
InitGameLogicRandom(GameClientRandomValue(0, INT_MAX - 1));
87+
*/
8288

8389
isShuttingDown = true;
8490
}

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/SkirmishGameOptionsMenu.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ void reallyDoStart( void )
441441

442442
if (isSkirmish)
443443
{
444-
InitRandom(TheSkirmishGameInfo->getSeed());
444+
InitGameLogicRandom(TheSkirmishGameInfo->getSeed());
445445

446446
GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME );
447447
msg->appendIntegerArgument(GAME_SKIRMISH);
@@ -451,7 +451,7 @@ void reallyDoStart( void )
451451
}
452452
else
453453
{
454-
InitRandom(0);
454+
InitGameLogicRandom(0);
455455

456456
GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME );
457457
msg->appendIntegerArgument(GAME_SINGLE_PLAYER);

GeneralsMD/Code/GameEngine/Source/GameClient/GUI/Shell/Shell.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ void Shell::showShellMap(Bool useShellMap )
542542
TheGameLogic->exitGame();
543543

544544
TheWritableGlobalData->m_pendingFile = TheGlobalData->m_shellMapName;
545-
InitRandom(0);
545+
InitGameLogicRandom(0);
546546
GameMessage *msg = TheMessageStream->appendMessage( GameMessage::MSG_NEW_GAME );
547547
msg->appendIntegerArgument(GAME_SHELL);
548548
m_shellMapOn = TRUE;

0 commit comments

Comments
 (0)