Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,11 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
#endif

Player *thisPlayer = ThePlayerList->getNthPlayer( msg->getPlayerIndex() );
DEBUG_ASSERTCRASH( thisPlayer, ("logicMessageDispatcher: Processing message from unknown player (player index '%d')",
msg->getPlayerIndex()) );
if (thisPlayer == nullptr)
{
DEBUG_CRASH(("logicMessageDispatcher: Processing message from unknown player (player index '%d')", msg->getPlayerIndex()));
return;
}

AIGroupPtr currentlySelectedGroup = nullptr;

Expand Down Expand Up @@ -407,7 +410,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
if (commandName.isNotEmpty() /*&& msg->getType() != GameMessage::MSG_FRAME_TICK*/)
{
DEBUG_LOG(("Frame %d: GameLogic::logicMessageDispatcher() saw a %s from player %d (%ls)", getFrame(), commandName.str(),
msg->getPlayerIndex(), thisPlayer->getPlayerDisplayName().str()));
thisPlayer->getPlayerIndex(), thisPlayer->getPlayerDisplayName().str()));
}
#endif
#endif // DEBUG_LOGGING
Expand Down Expand Up @@ -1583,13 +1586,6 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
case GameMessage::MSG_CREATE_SELECTED_GROUP:
{
Bool createNewGroup = msg->getArgument( 0 )->boolean;
Player *player = ThePlayerList->getNthPlayer(msg->getPlayerIndex());

if (player == nullptr) {
DEBUG_CRASH(("GameLogicDispatch - MSG_CREATE_SELECTED_GROUP had an invalid player number"));
break;
}

Bool firstObject = TRUE;

for (Int i = 1; i < msg->getArgumentCount(); ++i) {
Expand All @@ -1598,7 +1594,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
continue;
}

selectObject(obj, createNewGroup && firstObject, player->getPlayerMask());
selectObject(obj, createNewGroup && firstObject, thisPlayer->getPlayerMask());
firstObject = FALSE;
}

Expand All @@ -1609,21 +1605,14 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
//---------------------------------------------------------------------------------------------
case GameMessage::MSG_REMOVE_FROM_SELECTED_GROUP:
{
Player *player = ThePlayerList->getNthPlayer(msg->getPlayerIndex());

if (player == nullptr) {
DEBUG_CRASH(("GameLogicDispatch - MSG_CREATE_SELECTED_GROUP had an invalid player number"));
break;
}

for (Int i = 0; i < msg->getArgumentCount(); ++i) {
ObjectID objID = msg->getArgument(i)->objectID;
Object *objToRemove = findObjectByID(objID);
if (!objToRemove) {
continue;
}

deselectObject(objToRemove, player->getPlayerMask());
deselectObject(objToRemove, thisPlayer->getPlayerMask());
}

break;
Expand All @@ -1633,11 +1622,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
//---------------------------------------------------------------------------------------------
case GameMessage::MSG_DESTROY_SELECTED_GROUP:
{
Player *player = ThePlayerList->getNthPlayer(msg->getPlayerIndex());
if (player != nullptr)
{
player->setCurrentlySelectedAIGroup(nullptr);
}
thisPlayer->setCurrentlySelectedAIGroup(nullptr);

break;

Expand Down Expand Up @@ -1851,7 +1836,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
Int i=0;
for (; i<ThePlayerList->getPlayerCount(); ++i)
{
if (i != msg->getPlayerIndex())
if (i != thisPlayer->getPlayerIndex())
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of doing thisPlayer->getPlayerIndex() you could also add a const int playerIndex = msg->getPlayerIndex() at the begin of the function and then use that.

{
Player *otherPlayer = ThePlayerList->getNthPlayer(i);
if (thisPlayer->getRelationship(otherPlayer->getDefaultTeam()) == ALLIES &&
Expand Down Expand Up @@ -1933,13 +1918,9 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
case GameMessage::MSG_CREATE_TEAM8:
case GameMessage::MSG_CREATE_TEAM9:
{
Int playerIndex = msg->getPlayerIndex();
Player *player = ThePlayerList->getNthPlayer(playerIndex);
DEBUG_ASSERTCRASH(player != nullptr, ("Could not find player for create team message"));

// TheSuperHackers @tweak Stubbjax 17/08/2025 The local player processes this message in CommandXlat for immediate assignment.
if (player && !player->isLocalPlayer())
player->processCreateTeamGameMessage(msg->getType() - GameMessage::MSG_CREATE_TEAM0, msg);
if (!thisPlayer->isLocalPlayer())
thisPlayer->processCreateTeamGameMessage(msg->getType() - GameMessage::MSG_CREATE_TEAM0, msg);

break;
}
Expand All @@ -1955,16 +1936,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
case GameMessage::MSG_SELECT_TEAM8:
case GameMessage::MSG_SELECT_TEAM9:
{
Int playerIndex = msg->getPlayerIndex();
Player *player = ThePlayerList->getNthPlayer(playerIndex);
DEBUG_ASSERTCRASH(player != nullptr, ("Could not find player for select team message"));

if (player == nullptr)
{
break;
}

player->processSelectTeamGameMessage(msg->getType() - GameMessage::MSG_SELECT_TEAM0, msg);
thisPlayer->processSelectTeamGameMessage(msg->getType() - GameMessage::MSG_SELECT_TEAM0, msg);
break;
}

Expand All @@ -1979,16 +1951,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
case GameMessage::MSG_ADD_TEAM8:
case GameMessage::MSG_ADD_TEAM9:
{
Int playerIndex = msg->getPlayerIndex();
Player *player = ThePlayerList->getNthPlayer(playerIndex);
DEBUG_ASSERTCRASH(player != nullptr, ("Could not find player for add team message"));

if (player == nullptr)
{
break;
}

player->processAddTeamGameMessage(msg->getType() - GameMessage::MSG_ADD_TEAM0, msg);
thisPlayer->processAddTeamGameMessage(msg->getType() - GameMessage::MSG_ADD_TEAM0, msg);
break;
}

Expand Down Expand Up @@ -2024,11 +1987,10 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
#endif
}

//UnsignedInt oldCRC = m_cachedCRCs[msg->getPlayerIndex()];
UnsignedInt newCRC = msg->getArgument(0)->integer;
//DEBUG_LOG(("Received CRC of %8.8X from %ls on frame %d", newCRC,
//thisPlayer->getPlayerDisplayName().str(), m_frame));
m_cachedCRCs[msg->getPlayerIndex()] = newCRC; // to mask problem: = (oldCRC < newCRC)?newCRC:oldCRC;
m_cachedCRCs[thisPlayer->getPlayerIndex()] = newCRC;
}
else if (TheRecorder && TheRecorder->isPlaybackMode())
{
Expand All @@ -2048,7 +2010,7 @@ void GameLogic::logicMessageDispatcher( GameMessage *msg, void *userData )
ScienceType science = (ScienceType)msg->getArgument( 0 )->integer;

// sanity
if( science == SCIENCE_INVALID || thisPlayer == nullptr )
if( science == SCIENCE_INVALID )
break;

thisPlayer->attemptToPurchaseScience(science);
Expand Down
Loading