From 3540734259c3b48239adeeaef732e2d16e14d6c0 Mon Sep 17 00:00:00 2001 From: Stubbjax Date: Wed, 3 Sep 2025 02:20:02 +1000 Subject: [PATCH 1/2] feat: Transfer assets of disconnected players to allies --- Generals/Code/GameEngine/Source/GameNetwork/Network.cpp | 4 ++++ GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp b/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp index e38ad87f5d1..6984cad7cea 100644 --- a/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp +++ b/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp @@ -665,7 +665,11 @@ void Network::processDestroyPlayerCommand(NetDestroyPlayerCommandMsg *msg) if (pPlayer) { GameMessage *msg = newInstance(GameMessage)(GameMessage::MSG_SELF_DESTRUCT); +#if RETAIL_COMPATIBLE_CRC msg->appendBooleanArgument(FALSE); +#else + msg->appendBooleanArgument(TRUE); +#endif msg->friend_setPlayerIndex(pPlayer->getPlayerIndex()); TheCommandList->appendMessage(msg); } diff --git a/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp b/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp index 58e800d861b..d58ddd98026 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp @@ -665,7 +665,11 @@ void Network::processDestroyPlayerCommand(NetDestroyPlayerCommandMsg *msg) if (pPlayer) { GameMessage *msg = newInstance(GameMessage)(GameMessage::MSG_SELF_DESTRUCT); +#if RETAIL_COMPATIBLE_CRC msg->appendBooleanArgument(FALSE); +#else + msg->appendBooleanArgument(TRUE); +#endif msg->friend_setPlayerIndex(pPlayer->getPlayerIndex()); TheCommandList->appendMessage(msg); } From 1ffc1b8b74e79237e9a904ea688fc552ede99227 Mon Sep 17 00:00:00 2001 From: Stubbjax Date: Wed, 3 Sep 2025 12:30:47 +1000 Subject: [PATCH 2/2] refactor: Improve readability --- Generals/Code/GameEngine/Source/GameNetwork/Network.cpp | 5 +++-- GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp b/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp index 6984cad7cea..9818894e708 100644 --- a/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp +++ b/Generals/Code/GameEngine/Source/GameNetwork/Network.cpp @@ -666,10 +666,11 @@ void Network::processDestroyPlayerCommand(NetDestroyPlayerCommandMsg *msg) { GameMessage *msg = newInstance(GameMessage)(GameMessage::MSG_SELF_DESTRUCT); #if RETAIL_COMPATIBLE_CRC - msg->appendBooleanArgument(FALSE); + const Bool transferAssets = FALSE; #else - msg->appendBooleanArgument(TRUE); + const Bool transferAssets = TRUE; #endif + msg->appendBooleanArgument(transferAssets); msg->friend_setPlayerIndex(pPlayer->getPlayerIndex()); TheCommandList->appendMessage(msg); } diff --git a/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp b/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp index d58ddd98026..7508fbf8dbf 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameNetwork/Network.cpp @@ -666,10 +666,11 @@ void Network::processDestroyPlayerCommand(NetDestroyPlayerCommandMsg *msg) { GameMessage *msg = newInstance(GameMessage)(GameMessage::MSG_SELF_DESTRUCT); #if RETAIL_COMPATIBLE_CRC - msg->appendBooleanArgument(FALSE); + const Bool transferAssets = FALSE; #else - msg->appendBooleanArgument(TRUE); + const Bool transferAssets = TRUE; #endif + msg->appendBooleanArgument(transferAssets); msg->friend_setPlayerIndex(pPlayer->getPlayerIndex()); TheCommandList->appendMessage(msg); }