chore(sync): merge thesuperhackers upstream (2026-09-08) - #288
Conversation
…aching Reinforcement Pad (TheSuperHackers#3165)
… before reaching Reinforcement Pad (TheSuperHackers#3165) Due to use-after-free bug resulting in dangling contain module in OpenContain::removeFromContain()
…mapTextures, WorldHeightMapEdit::findBoundaryNear (TheSuperHackers#3201)
…tedTargetingUpdate for the initial frame (TheSuperHackers#3212)
…haning slaved finite-lifetime particle systems (TheSuperHackers#3238)
…racker::onTunnelDestroyed() and TunnelContain::onCapture() (TheSuperHackers#3242)
…le rendering by 15 to 30% (TheSuperHackers#3155)
…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
|
Important Review skippedToo 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (228)
You can disable this status message by setting the 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. Comment |
- 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
Description
This PR merges the latest upstream updates from
TheSuperHackers/GeneralsGameCode(commits up to689a09ac4) into GeneralsX while preserving our modern cross-platform architecture (SDL3 + DXVK + MiniAudio/OpenAL + FFmpeg), replay determinism, and CI/CD infrastructure.Summary of Upstream Changes
Core/GameEngine/):GameWindowManager,GameWindowTransitionsStyles, andAnimateWindowManagerintoCore/GameEngine/, eliminating code duplication between Generals and Zero Hour.IRenderBackendinterface groundwork.TheVideoPlayer(bugfix(audio): Apply configured volume to Bink movie audio TheSuperHackers/GeneralsGameCode#3083).has3DSensitiveStreamsPlaying) (fix(gameaudio): Remove the has3DSensitiveStreamsPlaying volume hack TheSuperHackers/GeneralsGameCode#3252).NullVideoPlayerto eliminate unnecessary video dependencies for CLI tools.showQueuedSaveGameLoadFailure).Conflict Resolution & GeneralsX Specifics
.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.DX8Wrapper::Set_Transform_Dirty()inww3d.cppto prevent 33KB memset + texture unbind overhead every frame.has3DSensitiveStreamsPlaying()fromMiniAudioManagerandOpenALAudioManagerand added speech volume dispatch toTheVideoPlayer.GameState.cppto keepstd::fprintf(stderr, ...)console logs for release CLI diagnostics alongside upstream'sshowQueuedSaveGameLoadFailure()user dialog.cmake/config-build.cmake, added upstreamffmpegfeature tovcpkg.json, and retained locked dependencies invcpkg-lock.json.Validation
macos-vulkan) completed cleanly.z_generals) built and linked successfully on macOS.g_generals) built and linked successfully on macOS.GeneralsXZHandGeneralsXstart up and initialize subsystems cleanly.docs/WORKLOG/2026-09-DIARY.mdanddocs/WORKDIR/planning/2026-09-08-thesuperhackers-sync-plan.md.