Skip to content

chore(sync): merge thesuperhackers upstream (2026-09-08) - #288

Merged
fbraz3 merged 31 commits into
mainfrom
thesuperhackers-sync-09-08-2026
Sep 8, 2026
Merged

chore(sync): merge thesuperhackers upstream (2026-09-08)#288
fbraz3 merged 31 commits into
mainfrom
thesuperhackers-sync-09-08-2026

Conversation

@fbraz3

@fbraz3 fbraz3 commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Description

This PR merges the latest upstream updates from TheSuperHackers/GeneralsGameCode (commits up to 689a09ac4) into GeneralsX while preserving our modern cross-platform architecture (SDL3 + DXVK + MiniAudio/OpenAL + FFmpeg), replay determinism, and CI/CD infrastructure.

Summary of Upstream Changes

Conflict Resolution & GeneralsX Specifics

  • CI/CD Infrastructure:
    • Preserved GeneralsX multi-platform GitHub Actions workflows (.github/workflows/ci.yml, build-linux.yml, build-macos.yml, build-windows.yml, and replay test pipelines) intact. Upstream release/toolchain workflow additions were rejected.
  • Graphics Performance:
    • Retained DX8Wrapper::Set_Transform_Dirty() in ww3d.cpp to prevent 33KB memset + texture unbind overhead every frame.
  • Audio Parity:
    • Maintained strict parity across MiniAudio, OpenAL, and Miles: removed deprecated has3DSensitiveStreamsPlaying() from MiniAudioManager and OpenALAudioManager and added speech volume dispatch to TheVideoPlayer.
  • Save Game Diagnostics:
    • Reconciled GameState.cpp to keep std::fprintf(stderr, ...) console logs for release CLI diagnostics alongside upstream's showQueuedSaveGameLoadFailure() user dialog.
  • Build Configuration:
    • Preserved cross-platform options in cmake/config-build.cmake, added upstream ffmpeg feature to vcpkg.json, and retained locked dependencies in vcpkg-lock.json.

Validation

  • macOS CMake configure (macos-vulkan) completed cleanly.
  • Zero Hour (z_generals) built and linked successfully on macOS.
  • Generals base game (g_generals) built and linked successfully on macOS.
  • Executable smoke launch: both GeneralsXZH and GeneralsX start up and initialize subsystems cleanly.
  • Worklog documented in docs/WORKLOG/2026-09-DIARY.md and docs/WORKDIR/planning/2026-09-08-thesuperhackers-sync-plan.md.
  • Linux Flatpak / standalone artifacts will be validated via CI pipeline builds from this PR.

bobtista and others added 30 commits August 29, 2026 12:07
… before reaching Reinforcement Pad (TheSuperHackers#3165)

Due to use-after-free bug resulting in dangling contain module in OpenContain::removeFromContain()
…racker::onTunnelDestroyed() and TunnelContain::onCapture() (TheSuperHackers#3242)
…heSuperHackers#3267)

The "Generate release notes" step interpolated ${{ steps.changelog.outputs.commits }}
and the workflow_dispatch inputs straight into a Bash run block, so a commit subject
containing shell syntax was executed while building the release body.
…roduction entry when a number of its units already finished production (TheSuperHackers#2399)
…08-2026

- Reconcile 14 merge conflicts across build system, UI, rendering, and tools
- Adopt upstream GUI centralization to Core/GameEngine (GameWindowManager, transitions)
- Preserve GeneralsX DX8Wrapper::Set_Transform_Dirty frame render optimization
- Maintain audio parity across MiniAudio, OpenAL, and Miles (remove has3DSensitiveStreamsPlaying, dispatch video volume)
- Reconcile save game loading diagnostics with stderr logging and failure dialogs
- Preserve cross-platform CMake configuration, pinned vcpkg locks, and CI pipelines
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 228 files, which is 128 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: a661208c-a9c9-45f5-8903-dd13a99fd391

📥 Commits

Reviewing files that changed from the base of the PR and between 3c2ed45 and ece3a2d.

📒 Files selected for processing (228)
  • .clang-tidy
  • AI_POLICY.md
  • CMakeLists.txt
  • CMakePresets.json
  • CONTRIBUTING.md
  • Core/GameEngine/CMakeLists.txt
  • Core/GameEngine/Include/Common/GameAudio.h
  • Core/GameEngine/Include/GameClient/AnimateWindowManager.h
  • Core/GameEngine/Include/GameClient/GameWindowID.h
  • Core/GameEngine/Include/GameClient/GameWindowManager.h
  • Core/GameEngine/Include/GameClient/ParticleSys.h
  • Core/GameEngine/Include/GameClient/VideoPlayer.h
  • Core/GameEngine/Source/Common/Audio/GameAudio.cpp
  • Core/GameEngine/Source/Common/CommandLine.cpp
  • Core/GameEngine/Source/Common/ReplaySimulation.cpp
  • Core/GameEngine/Source/GameClient/GUI/AnimateWindowManager.cpp
  • Core/GameEngine/Source/GameClient/GUI/ControlBar/ControlBar.cpp
  • Core/GameEngine/Source/GameClient/GUI/GameWindowManager.cpp
  • Core/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp
  • Core/GameEngine/Source/GameClient/GUI/GameWindowTransitionsStyles.cpp
  • Core/GameEngine/Source/GameClient/GUI/IMEManager.cpp
  • Core/GameEngine/Source/GameClient/MessageStream/SelectionXlat.cpp
  • Core/GameEngine/Source/GameClient/System/ParticleSys.cpp
  • Core/GameEngine/Source/GameLogic/AI/AIPathfind.cpp
  • Core/GameEngine/Source/GameNetwork/GameSpy/LadderDefs.cpp
  • Core/GameEngineDevice/Include/MilesAudioDevice/MilesAudioManager.h
  • Core/GameEngineDevice/Include/MiniAudioDevice/MiniAudioManager.h
  • Core/GameEngineDevice/Include/OpenALAudioDevice/OpenALAudioManager.h
  • Core/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h
  • Core/GameEngineDevice/Include/VideoDevice/FFmpeg/FFmpegVideoPlayer.h
  • Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DParticleSys.h
  • Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DScorch.h
  • Core/GameEngineDevice/Source/MilesAudioDevice/MilesAudioManager.cpp
  • Core/GameEngineDevice/Source/MiniAudioDevice/MiniAudioManager.cpp
  • Core/GameEngineDevice/Source/OpenALAudioDevice/OpenALAudioManager.cpp
  • Core/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/Drawable/Draw/W3DModelDraw.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/FlatHeightMap.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/HeightMap.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DParticleSys.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DScorch.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainVisual.cpp
  • Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp
  • Core/Libraries/Include/Lib/PathUtil.h
  • Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/Backend/DX8Backend.h
  • Core/Libraries/Source/WWVegas/WW3D2/Backend/RenderBackend.h
  • Core/Libraries/Source/WWVegas/WW3D2/CMakeLists.txt
  • Core/Libraries/Source/WWVegas/WW3D2/IRenderBackend.h
  • Core/Libraries/Source/WWVegas/WW3D2/htree.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/intersec.inl
  • Core/Libraries/Source/WWVegas/WW3D2/rendobj.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/ringobj.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/shattersystem.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/texproject.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/ww3d.cpp
  • Core/Libraries/Source/WWVegas/WW3D2/ww3d.h
  • Core/Libraries/Source/WWVegas/WWAudio/Sound3D.cpp
  • Core/Libraries/Source/WWVegas/WWLib/CMakeLists.txt
  • Core/Libraries/Source/WWVegas/WWLib/Usp10Loader.cpp
  • Core/Libraries/Source/WWVegas/WWLib/Usp10Loader.h
  • Core/Libraries/Source/WWVegas/WWLib/multilist.h
  • Core/Libraries/Source/debug/internal.h
  • Core/Libraries/Source/debug/internal_io.h
  • Core/Libraries/Source/profile/internal_cmd.h
  • Core/Tools/DebugWindow/DebugWindow.h
  • Core/Tools/MapCacheBuilder/Source/WinMain.cpp
  • Core/Tools/ParticleEditor/CButtonShowColor.h
  • Core/Tools/ParticleEditor/MoreParmsDialog.h
  • Core/Tools/ParticleEditor/ParticleEditor.h
  • Core/Tools/ParticleEditor/ParticleEditorDialog.h
  • Core/Tools/W3DView/AdvancedAnimSheet.h
  • Core/Tools/W3DView/AnimMixingPage.h
  • Core/Tools/W3DView/AnimReportPage.h
  • Core/Tools/W3DView/AnimationPropPage.h
  • Core/Tools/W3DView/AssetPropertySheet.h
  • Core/Tools/W3DView/ColorBar.h
  • Core/Tools/W3DView/ColorPicker.h
  • Core/Tools/W3DView/DialogToolbar.h
  • Core/Tools/W3DView/EmitterColorPropPage.h
  • Core/Tools/W3DView/EmitterFramePropPage.h
  • Core/Tools/W3DView/EmitterGeneralPropPage.h
  • Core/Tools/W3DView/EmitterInstanceList.h
  • Core/Tools/W3DView/EmitterLineGroupPropPage.h
  • Core/Tools/W3DView/EmitterLinePropPage.h
  • Core/Tools/W3DView/EmitterParticlePropPage.h
  • Core/Tools/W3DView/EmitterPhysicsPropPage.h
  • Core/Tools/W3DView/EmitterPropertySheet.h
  • Core/Tools/W3DView/EmitterRotationPropPage.h
  • Core/Tools/W3DView/EmitterSizePropPage.h
  • Core/Tools/W3DView/EmitterUserPropPage.h
  • Core/Tools/W3DView/GammaDialog.h
  • Core/Tools/W3DView/GraphicView.h
  • Core/Tools/W3DView/HierarchyPropPage.h
  • Core/Tools/W3DView/MeshPropPage.h
  • Core/Tools/W3DView/OpacityVectorDialog.h
  • Core/Tools/W3DView/ParticleBlurTimeKeyDialog.h
  • Core/Tools/W3DView/ParticleRotationKeyDialog.h
  • Core/Tools/W3DView/ParticleSizeDialog.h
  • Core/Tools/W3DView/PlaySoundDialog.h
  • Core/Tools/W3DView/ResolutionDialog.h
  • Core/Tools/W3DView/RingColorPropPage.h
  • Core/Tools/W3DView/RingGeneralPropPage.h
  • Core/Tools/W3DView/RingPropertySheet.h
  • Core/Tools/W3DView/RingSizePropPage.h
  • Core/Tools/W3DView/SaveSettingsDialog.h
  • Core/Tools/W3DView/ScaleDialog.h
  • Core/Tools/W3DView/SceneLightDialog.h
  • Core/Tools/W3DView/ScreenCursor.h
  • Core/Tools/W3DView/SoundEditDialog.h
  • Core/Tools/W3DView/SphereColorPropPage.h
  • Core/Tools/W3DView/SphereGeneralPropPage.h
  • Core/Tools/W3DView/SpherePropertySheet.h
  • Core/Tools/W3DView/SphereSizePropPage.h
  • Core/Tools/W3DView/TexturePathDialog.h
  • Core/Tools/W3DView/Toolbar.h
  • Core/Tools/W3DView/ViewerScene.cpp
  • Core/Tools/W3DView/VolumeRandomDialog.h
  • Core/Tools/W3DView/W3DView.cpp
  • Core/Tools/W3DView/W3DViewDoc.cpp
  • Core/Tools/W3DView/W3DViewDoc.h
  • Core/Tools/W3DView/W3DViewView.h
  • Core/Tools/textureCompress/textureCompress.cpp
  • Generals/Code/GameEngine/CMakeLists.txt
  • Generals/Code/GameEngine/Include/Common/GameState.h
  • Generals/Code/GameEngine/Include/Common/MapReaderWriterInfo.h
  • Generals/Code/GameEngine/Include/Common/TunnelTracker.h
  • Generals/Code/GameEngine/Include/GameClient/AnimateWindowManager.h
  • Generals/Code/GameEngine/Include/GameClient/GameWindowID.h
  • Generals/Code/GameEngine/Include/GameClient/GameWindowManager.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/ProductionUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/TunnelContain.h
  • Generals/Code/GameEngine/Include/GameLogic/Object.h
  • Generals/Code/GameEngine/Include/GameLogic/VictoryConditions.h
  • Generals/Code/GameEngine/Source/Common/RTS/Player.cpp
  • Generals/Code/GameEngine/Source/Common/RTS/TunnelTracker.cpp
  • Generals/Code/GameEngine/Source/Common/System/SaveGame/GameState.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/AnimateWindowManager.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLQuickMatchMenu.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/GameWindowManager.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/GameWindowManagerScript.cpp
  • Generals/Code/GameEngine/Source/GameClient/GUI/GameWindowTransitionsStyles.cpp
  • Generals/Code/GameEngine/Source/GameLogic/AI/AIStates.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Contain/OpenContain.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Contain/TunnelContain.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Object.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Update/AssistedTargetingUpdate.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Update/ProductionUpdate.cpp
  • Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptActions.cpp
  • Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp
  • Generals/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptEngine.cpp
  • Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp
  • Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp
  • Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/camera.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/decalmsh.h
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/hlod.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/light.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.cpp
  • Generals/Code/Libraries/Source/WWVegas/WW3D2/part_buf.cpp
  • Generals/Code/Tools/WorldBuilder/src/DrawObject.cpp
  • Generals/Code/Tools/WorldBuilder/src/EditObjectParameter.cpp
  • Generals/Code/Tools/WorldBuilder/src/EditParameter.cpp
  • Generals/Code/Tools/WorldBuilder/src/ScriptDialog.cpp
  • Generals/Code/Tools/WorldBuilder/src/WHeightMapEdit.cpp
  • Generals/Code/Tools/WorldBuilder/src/WorldBuilder.cpp
  • Generals/Code/Tools/WorldBuilder/src/wbview3d.cpp
  • GeneralsMD/Code/GameEngine/CMakeLists.txt
  • GeneralsMD/Code/GameEngine/Include/Common/GameState.h
  • GeneralsMD/Code/GameEngine/Include/Common/MapReaderWriterInfo.h
  • GeneralsMD/Code/GameEngine/Include/Common/TunnelTracker.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/ProductionUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/TunnelContain.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Object.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/VictoryConditions.h
  • GeneralsMD/Code/GameEngine/Source/Common/RTS/Player.cpp
  • GeneralsMD/Code/GameEngine/Source/Common/RTS/TunnelTracker.cpp
  • GeneralsMD/Code/GameEngine/Source/Common/System/SaveGame/GameState.cpp
  • GeneralsMD/Code/GameEngine/Source/Common/Thing/Module.cpp
  • GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLBuddyOverlay.cpp
  • GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/WOLQuickMatchMenu.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/AI/AIStates.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/HelixContain.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/OpenContain.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TunnelContain.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Object.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AssistedTargetingUpdate.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/OCLUpdate.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/ProductionUpdate.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptActions.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptConditions.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/ScriptEngine/ScriptEngine.cpp
  • GeneralsMD/Code/GameEngineDevice/Include/VideoDevice/Bink/BinkVideoPlayer.h
  • GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/Bink/BinkVideoPlayer.cpp
  • GeneralsMD/Code/GameEngineDevice/Source/VideoDevice/BinkVideoPlayerStub.cpp
  • GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DBridgeBuffer.cpp
  • GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DDebugIcons.cpp
  • GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DInGameUI.cpp
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/camera.cpp
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/decalmsh.h
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/hlod.cpp
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/light.cpp
  • GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/part_buf.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/DrawObject.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/EditObjectParameter.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/EditParameter.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/ScriptDialog.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/WHeightMapEdit.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/WorldBuilder.cpp
  • GeneralsMD/Code/Tools/WorldBuilder/src/wbview3d.cpp
  • GeneralsMD/Code/Tools/wdump/mainfrm.h
  • GeneralsMD/Code/Tools/wdump/rawfilem.h
  • GeneralsMD/Code/Tools/wdump/wdeview.h
  • GeneralsMD/Code/Tools/wdump/wdlview.h
  • GeneralsMD/Code/Tools/wdump/wdtview.h
  • GeneralsMD/Code/Tools/wdump/wdumpdoc.h
  • GeneralsMD/Code/Tools/wdump/wdview.h
  • cmake/config-vcpkg.cmake
  • docs/WORKDIR/planning/2026-09-08-thesuperhackers-sync-plan.md
  • docs/WORKLOG/2026-09-DIARY.md
  • scripts/cpp/unify_move_files.py
  • triplets/x86-windows.cmake
  • vcpkg.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- Remove stale BinkVideoPlayer.h and BinkVideoPlayer.cpp in GeneralsMD/Code/GameEngineDevice that shadowed the Core header
- Add setVolume stub in BinkVideoPlayerStub.cpp for non-Windows builds
@fbraz3
fbraz3 merged commit 39ecd70 into main Sep 8, 2026
12 checks passed
@fbraz3
fbraz3 deleted the thesuperhackers-sync-09-08-2026 branch September 8, 2026 23:37
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.