Skip to content

Commit 4a7ed32

Browse files
Fix: Add null checks for TheMessageStream and ThePlayerList before using them
1 parent bae4229 commit 4a7ed32

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,15 @@ CommandList *TheCommandList = NULL;
5454
*/
5555
GameMessage::GameMessage( GameMessage::Type type )
5656
{
57-
m_playerIndex = ThePlayerList->getLocalPlayer()->getPlayerIndex();
57+
// Handle early initialization when ThePlayerList might not be initialized yet
58+
if (ThePlayerList && ThePlayerList->getLocalPlayer())
59+
{
60+
m_playerIndex = ThePlayerList->getLocalPlayer()->getPlayerIndex();
61+
}
62+
else
63+
{
64+
m_playerIndex = 0; // Default to player 0 during initialization
65+
}
5866
m_type = type;
5967
m_argList = NULL;
6068
m_argTail = NULL;

GeneralsMD/Code/Main/WinMain.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
366366

367367
case WM_QUERYENDSESSION:
368368
{
369-
TheMessageStream->appendMessage(GameMessage::MSG_META_DEMO_INSTANT_QUIT);
369+
if (TheMessageStream)
370+
{
371+
TheMessageStream->appendMessage(GameMessage::MSG_META_DEMO_INSTANT_QUIT);
372+
}
370373
return 0; //don't allow Windows to shutdown while game is running.
371374
}
372375

@@ -378,7 +381,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
378381

379382
//This method didn't work in cinematics because we don't process messages.
380383
//But it's the cleanest way to exit that's similar to using menus.
381-
TheMessageStream->appendMessage(GameMessage::MSG_META_DEMO_INSTANT_QUIT);
384+
if (TheMessageStream)
385+
{
386+
TheMessageStream->appendMessage(GameMessage::MSG_META_DEMO_INSTANT_QUIT);
387+
}
382388

383389
//This method used to disable quitting. We just put up the options screen instead.
384390
//TheMessageStream->appendMessage(GameMessage::MSG_META_OPTIONS);

0 commit comments

Comments
 (0)