Skip to content

unify(w3ddevice): Move GameClient services to Core (Withdrawn) - #3208

Closed
Jaredl-Dev wants to merge 0 commit into
TheSuperHackers:mainfrom
Jaredl-Dev:unify/w3d-gameclient-services
Closed

unify(w3ddevice): Move GameClient services to Core (Withdrawn)#3208
Jaredl-Dev wants to merge 0 commit into
TheSuperHackers:mainfrom
Jaredl-Dev:unify/w3d-gameclient-services

Conversation

@Jaredl-Dev

@Jaredl-Dev Jaredl-Dev commented Aug 26, 2026

Copy link
Copy Markdown

No description provided.

Jaredl-Dev added a commit to Jaredl-Dev/GeneralsGameCode that referenced this pull request Aug 26, 2026
@Jaredl-Dev
Jaredl-Dev force-pushed the unify/w3d-gameclient-services branch from 9c64cbe to 8412ba5 Compare August 26, 2026 04:02
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Unify shared W3D GameClient services in Core

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Moves six identical W3D GameClient services into the shared Core module.
• Rewires Generals and Zero Hour builds to consume one implementation.
• Records completed migrations in the unification helper script.
Diagram

graph TD
  G["Generals Target"] --> C["Core W3D Services"] --> A["Asset Debug"]
  Z["Zero Hour Target"] --> C --> U["UI Services"]
  C --> S["Shroud Rendering"]
Loading
High-Level Assessment

Centralizing byte-equivalent implementations in the existing Core GameEngineDevice interface is the appropriate approach. Keeping product-local copies or introducing a separate library would preserve duplication or add unnecessary target complexity without enabling product-specific behavior.

Files changed (16) +49 / -36

Refactor (12) +0 / -0
W3DAssetManagerExposed.hCentralize the texture reload bridge declaration +0/-0

Centralize the texture reload bridge declaration

• Relocates the shared 'ReloadAllTextures' declaration into Core for both game clients.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DAssetManagerExposed.h

W3DDebugIcons.hCentralize the W3D debug icon interface +0/-0

Centralize the W3D debug icon interface

• Relocates the shared debug-only pathfinding icon renderer declaration into Core.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DDebugIcons.h

W3DDisplayStringManager.hCentralize the W3D display string manager interface +0/-0

Centralize the W3D display string manager interface

• Relocates the shared display-string allocation, caching, and cleanup interface into Core.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DDisplayStringManager.h

W3DInGameUI.hCentralize the W3D in-game UI interface +0/-0

Centralize the W3D in-game UI interface

• Relocates the shared W3D UI lifecycle, view creation, and visual-hint interface into Core.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DInGameUI.h

W3DShroud.hCentralize the W3D shroud rendering interface +0/-0

Centralize the W3D shroud rendering interface

• Relocates the shared shroud texture, material-pass, and resource-management declarations into Core.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DShroud.h

W3DWebBrowser.hCentralize the W3D web browser interface +0/-0

Centralize the W3D web browser interface

• Relocates the shared game-window browser integration declaration into Core.

Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DWebBrowser.h

W3DAssetManagerExposed.cppCentralize texture reload bridge implementation +0/-0

Centralize texture reload bridge implementation

• Relocates the shared asset-manager texture release bridge into Core without behavioral changes.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DAssetManagerExposed.cpp

W3DDebugIcons.cppCentralize debug icon rendering implementation +0/-0

Centralize debug icon rendering implementation

• Relocates the shared debug icon allocation, lifetime, fading, and batched rendering logic into Core.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp

W3DDisplayStringManager.cppCentralize display string management implementation +0/-0

Centralize display string management implementation

• Relocates the shared numeral caching, font assignment, allocation, and stale render-resource cleanup logic into Core.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DDisplayStringManager.cpp

W3DInGameUI.cppCentralize W3D in-game UI rendering +0/-0

Centralize W3D in-game UI rendering

• Relocates the shared selection box, movement hint, placement marker, and window repaint behavior into Core.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp

W3DShroud.cppCentralize terrain shroud rendering implementation +0/-0

Centralize terrain shroud rendering implementation

• Relocates the shared shroud texture lifecycle, fog data updates, device recovery, and shader material-pass logic into Core.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp

W3DWebBrowser.cppCentralize W3D browser window integration +0/-0

Centralize W3D browser window integration

• Relocates the shared URL lookup and DirectX browser window creation and destruction logic into Core.

Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DWebBrowser.cpp

Other (4) +49 / -36
CMakeLists.txtCompile six unified W3D services from Core +12/-12

Compile six unified W3D services from Core

• Enables the six header/source pairs in the shared GameEngineDevice source list so downstream game targets compile the Core-owned implementations.

Core/GameEngineDevice/CMakeLists.txt

CMakeLists.txtStop compiling Generals-local W3D service copies +12/-12

Stop compiling Generals-local W3D service copies

• Disables the six product-local header/source pairs so the Generals target consumes their Core equivalents through 'corei_gameenginedevice_private'.

Generals/Code/GameEngineDevice/CMakeLists.txt

CMakeLists.txtStop compiling Zero Hour-local W3D service copies +12/-12

Stop compiling Zero Hour-local W3D service copies

• Disables the six product-local header/source pairs so the Zero Hour target consumes their Core equivalents through 'corei_gameenginedevice_private'.

GeneralsMD/Code/GameEngineDevice/CMakeLists.txt

unify_move_files.pyRecord the completed W3D service migrations +13/-0

Record the completed W3D service migrations

• Adds commented 'unify_file' invocations documenting the twelve header/source moves from Zero Hour into Core.

scripts/cpp/unify_move_files.py

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can start a comment with 'qodo' or '@qodo' to chat about any finding

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@Jaredl-Dev
Jaredl-Dev marked this pull request as draft August 26, 2026 07:01
@Jaredl-Dev Jaredl-Dev closed this Aug 26, 2026
@Jaredl-Dev
Jaredl-Dev force-pushed the unify/w3d-gameclient-services branch from 8412ba5 to 5943d38 Compare August 26, 2026 17:53
@Jaredl-Dev
Jaredl-Dev deleted the unify/w3d-gameclient-services branch August 26, 2026 17:54
@Jaredl-Dev Jaredl-Dev changed the title unify(w3ddevice): Move GameClient services to Core unify(w3ddevice): Move GameClient services to Core (Withdrawn) Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant