Skip to content

refactor: Remove or replace some superfluous empty C strings#1929

Merged
xezon merged 4 commits intoTheSuperHackers:mainfrom
xezon:xezon/refactor-empty-string
Dec 2, 2025
Merged

refactor: Remove or replace some superfluous empty C strings#1929
xezon merged 4 commits intoTheSuperHackers:mainfrom
xezon:xezon/refactor-empty-string

Conversation

@xezon
Copy link

@xezon xezon commented Nov 30, 2025

This change just removes or replaces some superfluous empty C strings. This helps readability a bit. Runtime behavior remains identical.

TODO

  • Replicate in Generals

@xezon xezon added the Refactor Edits the code with insignificant behavior changes, is never user facing label Nov 30, 2025
@xezon xezon force-pushed the xezon/refactor-empty-string branch from 0f0d94d to 6bf0765 Compare December 1, 2025 19:05
Copy link

@Caball009 Caball009 left a comment

Choose a reason for hiding this comment

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

Current (core / zh) changes look good.

@xezon
Copy link
Author

xezon commented Dec 1, 2025

Replicated in Generals with minor conflicts

D:\Projects\TheSuperHackers\GeneralsGameCode>FOR /F "delims=" %b IN ('git merge-base --fork-point main') DO git diff %b  1>changes.patch

D:\Projects\TheSuperHackers\GeneralsGameCode>git diff 0410990457c9629481f793b8be053a9620eed035  1>changes.patch

D:\Projects\TheSuperHackers\GeneralsGameCode>git apply -p2 --directory=Generals --reject --whitespace=fix changes.patch
Checking patch Generals/GameEngine/Source/GameNetwork/GameSpy/PeerDefs.cpp...
error: Generals/GameEngine/Source/GameNetwork/GameSpy/PeerDefs.cpp: No such file or directory
Checking patch Generals/GameEngine/Source/GameNetwork/GameSpy/Thread/PeerThread.cpp...
error: Generals/GameEngine/Source/GameNetwork/GameSpy/Thread/PeerThread.cpp: No such file or directory
Checking patch Generals/GameEngine/Source/GameNetwork/GameSpy/Thread/PersistentStorageThread.cpp...
error: Generals/GameEngine/Source/GameNetwork/GameSpy/Thread/PersistentStorageThread.cpp: No such file or directory
Checking patch Generals/GameEngine/Source/GameNetwork/LANAPI.cpp...
error: Generals/GameEngine/Source/GameNetwork/LANAPI.cpp: No such file or directory
Checking patch Generals/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp...
error: Generals/GameEngine/Source/GameNetwork/LANAPICallbacks.cpp: No such file or directory
Checking patch Generals/GameEngine/Source/GameNetwork/LANGameInfo.cpp...
error: Generals/GameEngine/Source/GameNetwork/LANGameInfo.cpp: No such file or directory
Checking patch Generals/GameEngineDevice/Source/StdDevice/Common/StdBIGFileSystem.cpp...
error: Generals/GameEngineDevice/Source/StdDevice/Common/StdBIGFileSystem.cpp: No such file or directory
Checking patch Generals/GameEngineDevice/Source/Win32Device/Common/Win32BIGFileSystem.cpp...
error: Generals/GameEngineDevice/Source/Win32Device/Common/Win32BIGFileSystem.cpp: No such file or directory
Checking patch Generals/Tools/CRCDiff/KVPair.cpp...
error: Generals/Tools/CRCDiff/KVPair.cpp: No such file or directory
Checking patch Generals/Tools/CRCDiff/expander.cpp...
error: Generals/Tools/CRCDiff/expander.cpp: No such file or directory
Checking patch Generals/Tools/Compress/Compress.cpp...
error: Generals/Tools/Compress/Compress.cpp: No such file or directory
Checking patch Generals/Tools/PATCHGET/CHATAPI.cpp...
error: Generals/Tools/PATCHGET/CHATAPI.cpp: No such file or directory
Checking patch Generals/Code/GameEngine/Include/GameLogic/Module/StructureToppleUpdate.h...
Hunk #1 succeeded at 118 (offset -1 lines).
Checking patch Generals/Code/GameEngine/Include/GameLogic/Module/UnitCrateCollide.h...
Checking patch Generals/Code/GameEngine/Source/Common/INI/INIAnimation.cpp...
Checking patch Generals/Code/GameEngine/Source/GameClient/LanguageFilter.cpp...
Checking patch Generals/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp...
Hunk #1 succeeded at 3354 (offset 98 lines).
Checking patch Generals/Code/GameEngine/Source/GameLogic/Object/Behavior/SpawnBehavior.cpp...
Hunk #1 succeeded at 530 (offset -44 lines).
Checking patch Generals/Code/GameEngine/Source/GameLogic/Object/Create/GrantUpgradeCreate.cpp...
Checking patch Generals/Code/GameEngine/Source/GameLogic/Object/Die/CreateCrateDie.cpp...
Checking patch Generals/Code/GameEngine/Source/GameLogic/Object/Update/AutoDepositUpdate.cpp...
Hunk #1 succeeded at 71 (offset -1 lines).
Checking patch Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp...
error: while searching for:
void parseFactionObjectCreationList( INI *ini, void *instance, void *store, const void *userData )
{
        OCLUpdateModuleData::FactionOCLInfo info;
        info.m_factionName = "";
        info.m_ocl = 0;

        const char *token = ini->getNextToken( ini->getSepsColon() );


error: patch failed: Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp:46
error: while searching for:
                // If this is faction triggered, search through the faction specific OCLs to find the match
                if (data->m_isFactionTriggered)
                {
                        std::string playerFactionName("");

                        Player *player = getObject()->getControllingPlayer();
                        if (!player) return UPDATE_SLEEP_NONE;

error: patch failed: Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp:199
Checking patch Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptEngine.cpp...
Hunk #1 succeeded at 9080 (offset -723 lines).
Checking patch Generals/Code/GameEngine/Source/GameLogic/System/CrateSystem.cpp...
Checking patch Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp...
error: while searching for:
      {
        if (sides[side] == "*")
        {
          if ( btt->getDefaultOwningSide() == ("") )// wildcard for unspecified side
            unspecified = TRUE;
          else
            continue;

error: patch failed: Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp:3449
Checking patch Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp...
Hunk #1 succeeded at 1326 (offset -52 lines).
Checking patch Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp...
error: while searching for:
        REF_PTR_SET(Texture, tc);

        // Make sure texture has a filename.
        WWASSERT(Texture->Get_Full_Path() != "");

        Type                            = type;
        Priority                        = priority;

error: patch failed: Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp:1095
error: while searching for:
        REF_PTR_SET(Texture, tc);

        // Make sure texture has a filename.
        WWASSERT(Texture->Get_Full_Path() != "");

        Type                            = type;
        Priority                        = priority;

error: patch failed: Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp:2065
error: while searching for:
        REF_PTR_SET(Texture, tc);

        // Make sure texture has a filename.
        WWASSERT(Texture->Get_Full_Path() != "");

        Type                            = type;
        Priority                        = priority;

error: patch failed: Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp:2476
Checking patch Generals/Code/Tools/WorldBuilder/src/WHeightMapEdit.cpp...
Hunk #1 succeeded at 2183 (offset 28 lines).
Checking patch Generals/Code/Tools/WorldBuilder/src/WorldBuilder.cpp...
Hunk #1 succeeded at 681 (offset -22 lines).
Checking patch Generals/Code/Tools/WorldBuilder/src/mapobjectprops.cpp...
error: while searching for:
/// Move data from object to dialog controls
void MapObjectProps::_DictToName(void)
{
  AsciiString name = "";
  Bool exists;
  if (m_dictToEdit)
  {

error: patch failed: Generals/Code/Tools/WorldBuilder/src/mapobjectprops.cpp:221
Applied patch Generals/Code/GameEngine/Include/GameLogic/Module/StructureToppleUpdate.h cleanly.
Applied patch Generals/Code/GameEngine/Include/GameLogic/Module/UnitCrateCollide.h cleanly.
Applied patch Generals/Code/GameEngine/Source/Common/INI/INIAnimation.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameClient/LanguageFilter.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameLogic/Object/Behavior/SpawnBehavior.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameLogic/Object/Create/GrantUpgradeCreate.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameLogic/Object/Die/CreateCrateDie.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameLogic/Object/Update/AutoDepositUpdate.cpp cleanly.
Applying patch Generals/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applied patch Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptEngine.cpp cleanly.
Applied patch Generals/Code/GameEngine/Source/GameLogic/System/CrateSystem.cpp cleanly.
Applying patch Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp with 1 reject...
Rejected hunk #1.
Applied patch Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplay.cpp cleanly.
Applying patch Generals/Code/Libraries/Source/WWVegas/WW3D2/textureloader.cpp with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applied patch Generals/Code/Tools/WorldBuilder/src/WHeightMapEdit.cpp cleanly.
Applied patch Generals/Code/Tools/WorldBuilder/src/WorldBuilder.cpp cleanly.
Applying patch Generals/Code/Tools/WorldBuilder/src/mapobjectprops.cpp with 1 reject...
Rejected hunk #1.

@xezon xezon merged commit 1ee44db into TheSuperHackers:main Dec 2, 2025
24 checks passed
@xezon xezon deleted the xezon/refactor-empty-string branch December 2, 2025 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Refactor Edits the code with insignificant behavior changes, is never user facing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments