@@ -347,8 +347,11 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
347347#endif
348348
349349 Player *msgPlayer = ThePlayerList->getNthPlayer ( msg->getPlayerIndex () );
350- DEBUG_ASSERTCRASH ( msgPlayer, (" logicMessageDispatcher: Processing message from unknown player (player index '%d')" ,
351- msg->getPlayerIndex ()) );
350+ if (msgPlayer == nullptr )
351+ {
352+ DEBUG_CRASH ((" logicMessageDispatcher: Processing message from unknown player (player index '%d')" , msg->getPlayerIndex ()));
353+ return ;
354+ }
352355
353356 AIGroupPtr currentlySelectedGroup = nullptr ;
354357
@@ -404,7 +407,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
404407 if (commandName.isNotEmpty() /*&& msg->getType() != GameMessage::MSG_FRAME_TICK*/)
405408 {
406409 DEBUG_LOG(("Frame %d: GameLogic::logicMessageDispatcher() saw a %s from player %d (%ls)", getFrame(), commandName.str(),
407- msg ->getPlayerIndex(), msgPlayer->getPlayerDisplayName().str()));
410+ msgPlayer ->getPlayerIndex(), msgPlayer->getPlayerDisplayName().str()));
408411 }
409412#endif
410413#endif // DEBUG_LOGGING
@@ -1634,13 +1637,6 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
16341637 case GameMessage::MSG_CREATE_SELECTED_GROUP:
16351638 {
16361639 Bool createNewGroup = msg->getArgument ( 0 )->boolean ;
1637- Player *player = ThePlayerList->getNthPlayer (msg->getPlayerIndex ());
1638-
1639- if (player == nullptr ) {
1640- DEBUG_CRASH ((" GameLogicDispatch - MSG_CREATE_SELECTED_GROUP had an invalid player number" ));
1641- break ;
1642- }
1643-
16441640 Bool firstObject = TRUE ;
16451641
16461642 for (Int i = 1 ; i < msg->getArgumentCount (); ++i) {
@@ -1649,7 +1645,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
16491645 continue ;
16501646 }
16511647
1652- selectObject (obj, createNewGroup && firstObject, player ->getPlayerMask ());
1648+ selectObject (obj, createNewGroup && firstObject, msgPlayer ->getPlayerMask ());
16531649 firstObject = FALSE ;
16541650 }
16551651
@@ -1660,21 +1656,14 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
16601656 // ---------------------------------------------------------------------------------------------
16611657 case GameMessage::MSG_REMOVE_FROM_SELECTED_GROUP:
16621658 {
1663- Player *player = ThePlayerList->getNthPlayer (msg->getPlayerIndex ());
1664-
1665- if (player == nullptr ) {
1666- DEBUG_CRASH ((" GameLogicDispatch - MSG_CREATE_SELECTED_GROUP had an invalid player number" ));
1667- break ;
1668- }
1669-
16701659 for (Int i = 0 ; i < msg->getArgumentCount (); ++i) {
16711660 ObjectID objID = msg->getArgument (i)->objectID ;
16721661 Object *objToRemove = findObjectByID (objID);
16731662 if (!objToRemove) {
16741663 continue ;
16751664 }
16761665
1677- deselectObject (objToRemove, player ->getPlayerMask ());
1666+ deselectObject (objToRemove, msgPlayer ->getPlayerMask ());
16781667 }
16791668
16801669 break ;
@@ -1684,11 +1673,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
16841673 // ---------------------------------------------------------------------------------------------
16851674 case GameMessage::MSG_DESTROY_SELECTED_GROUP:
16861675 {
1687- Player *player = ThePlayerList->getNthPlayer (msg->getPlayerIndex ());
1688- if (player != nullptr )
1689- {
1690- player->setCurrentlySelectedAIGroup (nullptr );
1691- }
1676+ msgPlayer->setCurrentlySelectedAIGroup (nullptr );
16921677
16931678 break ;
16941679
@@ -1902,7 +1887,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
19021887 Int i=0 ;
19031888 for (; i<ThePlayerList->getPlayerCount (); ++i)
19041889 {
1905- if (i != msg ->getPlayerIndex ())
1890+ if (i != msgPlayer ->getPlayerIndex ())
19061891 {
19071892 Player *otherPlayer = ThePlayerList->getNthPlayer (i);
19081893 if (msgPlayer->getRelationship (otherPlayer->getDefaultTeam ()) == ALLIES &&
@@ -1984,13 +1969,9 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
19841969 case GameMessage::MSG_CREATE_TEAM8:
19851970 case GameMessage::MSG_CREATE_TEAM9:
19861971 {
1987- Int playerIndex = msg->getPlayerIndex ();
1988- Player *player = ThePlayerList->getNthPlayer (playerIndex);
1989- DEBUG_ASSERTCRASH (player != nullptr , (" Could not find player for create team message" ));
1990-
19911972 // TheSuperHackers @tweak Stubbjax 17/08/2025 The local player processes this message in CommandXlat for immediate assignment.
1992- if (player && !player ->isLocalPlayer ())
1993- player ->processCreateTeamGameMessage (msg->getType () - GameMessage::MSG_CREATE_TEAM0, msg);
1973+ if (!msgPlayer ->isLocalPlayer ())
1974+ msgPlayer ->processCreateTeamGameMessage (msg->getType () - GameMessage::MSG_CREATE_TEAM0, msg);
19941975
19951976 break ;
19961977 }
@@ -2006,16 +1987,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
20061987 case GameMessage::MSG_SELECT_TEAM8:
20071988 case GameMessage::MSG_SELECT_TEAM9:
20081989 {
2009- Int playerIndex = msg->getPlayerIndex ();
2010- Player *player = ThePlayerList->getNthPlayer (playerIndex);
2011- DEBUG_ASSERTCRASH (player != nullptr , (" Could not find player for select team message" ));
2012-
2013- if (player == nullptr )
2014- {
2015- break ;
2016- }
2017-
2018- player->processSelectTeamGameMessage (msg->getType () - GameMessage::MSG_SELECT_TEAM0, msg);
1990+ msgPlayer->processSelectTeamGameMessage (msg->getType () - GameMessage::MSG_SELECT_TEAM0, msg);
20191991 break ;
20201992 }
20211993
@@ -2030,16 +2002,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
20302002 case GameMessage::MSG_ADD_TEAM8:
20312003 case GameMessage::MSG_ADD_TEAM9:
20322004 {
2033- Int playerIndex = msg->getPlayerIndex ();
2034- Player *player = ThePlayerList->getNthPlayer (playerIndex);
2035- DEBUG_ASSERTCRASH (player != nullptr , (" Could not find player for add team message" ));
2036-
2037- if (player == nullptr )
2038- {
2039- break ;
2040- }
2041-
2042- player->processAddTeamGameMessage (msg->getType () - GameMessage::MSG_ADD_TEAM0, msg);
2005+ msgPlayer->processAddTeamGameMessage (msg->getType () - GameMessage::MSG_ADD_TEAM0, msg);
20432006 break ;
20442007 }
20452008
@@ -2075,11 +2038,10 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
20752038#endif
20762039 }
20772040
2078- // UnsignedInt oldCRC = m_cachedCRCs[msg->getPlayerIndex()];
20792041 UnsignedInt newCRC = msg->getArgument (0 )->integer ;
20802042 // DEBUG_LOG(("Received CRC of %8.8X from %ls on frame %d", newCRC,
20812043 // msgPlayer->getPlayerDisplayName().str(), m_frame));
2082- m_cachedCRCs[msg ->getPlayerIndex ()] = newCRC; // to mask problem: = (oldCRC < newCRC)?newCRC:oldCRC ;
2044+ m_cachedCRCs[msgPlayer ->getPlayerIndex ()] = newCRC;
20832045 }
20842046 else if (TheRecorder && TheRecorder->isPlaybackMode ())
20852047 {
@@ -2099,7 +2061,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
20992061 ScienceType science = (ScienceType)msg->getArgument ( 0 )->integer ;
21002062
21012063 // sanity
2102- if ( science == SCIENCE_INVALID || msgPlayer == nullptr )
2064+ if ( science == SCIENCE_INVALID )
21032065 break ;
21042066
21052067 msgPlayer->attemptToPurchaseScience (science);
0 commit comments