Skip to content

chore(sync): merge thesuperhackers upstream 2026-03-27#55

Merged
fbraz3 merged 6 commits intomainfrom
thesuperhackers-sync-03-27-2026
Mar 27, 2026
Merged

chore(sync): merge thesuperhackers upstream 2026-03-27#55
fbraz3 merged 6 commits intomainfrom
thesuperhackers-sync-03-27-2026

Conversation

@fbraz3
Copy link
Copy Markdown
Owner

@fbraz3 fbraz3 commented Mar 27, 2026

Summary

  • Merge thesuperhackers/main into thesuperhackers-sync-03-27-2026
  • Resolve conflicts preserving GeneralsX cross-platform architecture
  • Keep upstream improvements without regressing SDL3 + DXVK + OpenAL + FFmpeg paths

Validation

  • macOS configure/build flow revalidated during merge cycle
  • Manual runtime verification reported successful
  • Linux manual validation requested after push

Test Checklist

  • Configure on all supported platforms
  • Build on all supported platforms
  • Game launch and main menu
  • Skirmish and campaign flows
  • Audio and video playback
  • Renderer stability and input handling
  • Mod loading (if affected)

Copilot AI review requested due to automatic review settings March 27, 2026 20:29
@fbraz3 fbraz3 force-pushed the thesuperhackers-sync-03-27-2026 branch from 3085276 to 889bdf0 Compare March 27, 2026 20:36
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR merges thesuperhackers/main into the GeneralsX branch and reconciles conflicts while preserving the cross-platform SDL3 + DXVK + OpenAL (+FFmpeg) architecture. Most code changes are mechanical (adding override specifiers / virtual annotations) plus a couple of small behavioral fixes (headless + pause reset), alongside a DEV_BLOG entry documenting the sync.

Changes:

  • Add override annotations across WW3D/WWVegas and W3D device/game client interfaces (Generals + Zero Hour + Core).
  • Adjust GameLogic::reset() to unpause via pauseGameLogic(FALSE) / pauseGameInput(FALSE) instead of direct flag assignment.
  • In -headless parsing, force DX8Wrapper_IsWindowed = false to keep assert/crash behavior consistent during shutdown.

Reviewed changes

Copilot reviewed 276 out of 276 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/DEV_BLOG/2026-03-DIARY.md DEV_BLOG entry documenting the upstream sync session and validation notes
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/vertmaterial.h Add override to destructor
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.h Add override to destructor and virtual methods
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp Add override to iterator virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/render2d.h Add override to destructors and Reset
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/part_ldr.h Add override to prototype/loader virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/nullrobj.h Add override to render object + prototype/loader virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/motchan.h Add override to several W3DMPO-only destructors
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdlio.cpp Add override to MeshLoadContextClass destructor
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h Add override to destructors and Load_W3D
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshmatdesc.h Add override to destructors
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h Add override to destructor
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/meshbuild.cpp Add override to hash calculator virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/matrixmapper.h Add override to mapper virtuals and destructor
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/hanimmgr.h Add override to HashableClass virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h Add override to destructors
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dx8indexbuffer.h Add override to destructors
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp Add override to persist factory virtuals
GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/camera.h Add override to render object virtuals
GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameLogic/W3DGhostObject.cpp Add override to snapshot virtuals
GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DAssetManager.cpp Add override to prototype virtuals
GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp Add override to hashable destructors/keys
GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp Add override to hashable destructors/keys
GeneralsMD/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h Add override to engine lifecycle/factory virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameLogic/W3DGameLogic.h Add override to factory virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DWebBrowser.h Add override to browser virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVolumetricShadow.h Add override to release()
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DStatusCircle.h Add override to render object virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DShroud.h Add override to material pass virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DProjectedShadow.h Add override to manager/destructor + release()
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DParticleSys.h Add override to particle manager virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DInGameUI.h Add override to subsystem lifecycle + view factory
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DGameWindow.h Add override to window implementation virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DGameFont.h Add override to font library virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DFileSystem.h Add override to FileClass/FileFactoryClass virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDynamicLight.h Add override to frame update and destructor
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDisplayStringManager.h Add override to manager virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDisplayString.h Add override to display string virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDebugDisplay.h Add override to destructor and drawText
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DAssetManager.h Add override to asset manager virtuals
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/Common/W3DThingFactory.h Add override to destructor
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/Common/W3DModuleFactory.h Add override to init
GeneralsMD/Code/GameEngineDevice/Include/W3DDevice/Common/W3DFunctionLexicon.h Add override to lifecycle virtuals
GeneralsMD/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp Use pause helpers in reset instead of raw flag assignments
GeneralsMD/Code/GameEngine/Source/Common/CommandLine.cpp In headless parsing, set DX8Wrapper_IsWindowed = false
Generals/Code/Libraries/Source/WWVegas/WW3D2/vertmaterial.h Add override to destructor
Generals/Code/Libraries/Source/WWVegas/WW3D2/scene.h Add override to destructor and virtual methods
Generals/Code/Libraries/Source/WWVegas/WW3D2/scene.cpp Add override to iterator virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/render2d.h Add override to destructors and Reset
Generals/Code/Libraries/Source/WWVegas/WW3D2/part_ldr.h Add override to prototype/loader virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/nullrobj.h Add override to render object + prototype/loader virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/motchan.h Add override to several W3DMPO-only destructors
Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdlio.cpp Add override to MeshLoadContextClass destructor
Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmdl.h Add override to destructors and Load_W3D
Generals/Code/Libraries/Source/WWVegas/WW3D2/meshmatdesc.h Add override to destructors
Generals/Code/Libraries/Source/WWVegas/WW3D2/meshgeometry.h Add override to destructor
Generals/Code/Libraries/Source/WWVegas/WW3D2/meshbuild.cpp Add override to hash calculator virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/matrixmapper.h Add override to mapper virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/hmorphanim.h Add override to HAnim virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/hanimmgr.h Add override to HashableClass virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8vertexbuffer.h Add override to destructors
Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8renderer.h Add override to destructors and container virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/dx8indexbuffer.h Add override to destructors
Generals/Code/Libraries/Source/WWVegas/WW3D2/dazzle.cpp Add override to persist factory virtuals
Generals/Code/Libraries/Source/WWVegas/WW3D2/camera.h Add override to render object virtuals
Generals/Code/GameEngineDevice/Source/W3DDevice/GameLogic/W3DGhostObject.cpp Add override to snapshot virtuals
Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DAssetManager.cpp Add override to prototype virtuals
Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DVolumetricShadow.cpp Add override to hashable destructors/keys
Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/Shadow/W3DProjectedShadow.cpp Add override to hashable destructors/keys
Generals/Code/GameEngineDevice/Include/Win32Device/Common/Win32GameEngine.h Add override to engine lifecycle/factory virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameLogic/W3DGhostObject.h Add override to ghost object virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameLogic/W3DGameLogic.h Add override to factory virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DWebBrowser.h Add override to browser virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DVolumetricShadow.h Add override to release()
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DStatusCircle.h Add override to render object virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DShroud.h Add override to material pass virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DProjectedShadow.h Add override to manager/destructor + release()
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DParticleSys.h Add override to particle manager virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DInGameUI.h Add override to subsystem lifecycle + view factory
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DGameWindow.h Add override to window implementation virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DGameFont.h Add override to font library virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DFileSystem.h Add override to FileClass/FileFactoryClass virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDynamicLight.h Add override to frame update and destructor
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDisplayStringManager.h Add override to manager virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDisplayString.h Add override to display string virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DDebugDisplay.h Add override to destructor and drawText
Generals/Code/GameEngineDevice/Include/W3DDevice/GameClient/W3DAssetManager.h Add override to asset manager virtuals
Generals/Code/GameEngineDevice/Include/W3DDevice/Common/W3DThingFactory.h Add override to destructor
Generals/Code/GameEngineDevice/Include/W3DDevice/Common/W3DModuleFactory.h Add override to init
Generals/Code/GameEngineDevice/Include/W3DDevice/Common/W3DFunctionLexicon.h Add override to lifecycle virtuals
Generals/Code/GameEngine/Source/GameLogic/System/GameLogic.cpp Use pause helpers in reset instead of raw flag assignments
Generals/Code/GameEngine/Source/Common/CommandLine.cpp In headless parsing, set DX8Wrapper_IsWindowed = false
Core/Libraries/Source/profile/internal_result.h Add override to profile result writers
Core/Libraries/Source/WWVegas/WWSaveLoad/twiddler.h Add override to persist/definition virtuals
Core/Libraries/Source/WWVegas/WWSaveLoad/simpleparameter.h Add override to parameter virtuals
Core/Libraries/Source/WWVegas/WWSaveLoad/simpledefinitionfactory.h Add override to factory virtuals
Core/Libraries/Source/WWVegas/WWSaveLoad/saveloadsubsystem.h Add override to destructor
Core/Libraries/Source/WWVegas/WWSaveLoad/persistfactory.h Add override to persist factory virtuals
Core/Libraries/Source/WWVegas/WWSaveLoad/parameterlist.h Add override to destructor
Core/Libraries/Source/WWVegas/WWSaveLoad/definitionmgr.h Add override to subsystem virtuals
Core/Libraries/Source/WWVegas/WWSaveLoad/definition.h Add override to persist virtuals
Core/Libraries/Source/WWVegas/WWMath/vehiclecurve.h Add override to curve/persist virtuals
Core/Libraries/Source/WWVegas/WWMath/tcbspline.h Add override to spline/persist virtuals
Core/Libraries/Source/WWVegas/WWMath/lookuptable.h Add override to destructor
Core/Libraries/Source/WWVegas/WWMath/gridcull.h Add override to cull system virtuals
Core/Libraries/Source/WWVegas/WWMath/cullsys.h Add override to destructor
Core/Libraries/Source/WWVegas/WWMath/catmullromspline.h Add override to tangents/persist virtuals
Core/Libraries/Source/WWVegas/WWMath/cardinalspline.h Add override to spline/persist virtuals
Core/Libraries/Source/WWVegas/WWMath/aabtreecull.h Add override to cull system virtuals
Core/Libraries/Source/WWVegas/WWLib/textfile.h Add override to destructor
Core/Libraries/Source/WWVegas/WWLib/simplevec.h Add override to destructor and Resize
Core/Libraries/Source/WWVegas/WWLib/sharebuf.h Add override to destructor
Core/Libraries/Source/WWVegas/WWLib/rcfile.h Add override to FileClass virtuals
Core/Libraries/Source/WWVegas/WWLib/inisup.h Add override to INI node destructors
Core/Libraries/Source/WWVegas/WWLib/ffactory.h Add override to file factory virtuals
Core/Libraries/Source/WWVegas/WWLib/cstraw.h Add override to straw virtual
Core/Libraries/Source/WWVegas/WWLib/bufffile.h Add override to file virtuals
Core/Libraries/Source/WWVegas/WWLib/b64straw.h Add override to straw virtual
Core/Libraries/Source/WWVegas/WWLib/b64pipe.h Add override to pipe virtuals
Core/Libraries/Source/WWVegas/WWLib/XSTRAW.h Add override to straw virtuals
Core/Libraries/Source/WWVegas/WWLib/XPIPE.h Add override to pipe virtuals
Core/Libraries/Source/WWVegas/WWLib/Vector.h Add override to DynamicVector virtuals
Core/Libraries/Source/WWVegas/WWLib/RAWFILE.h Add override to RawFileClass virtuals
Core/Libraries/Source/WWVegas/WWLib/RAMFILE.h Add override to RAMFileClass virtuals
Core/Libraries/Source/WWVegas/WWDebug/wwmemlog.cpp Add override to stack destructor
Core/Libraries/Source/WWVegas/WWAudio/SoundSceneObj.h Add override to persist virtuals
Core/Libraries/Source/WWVegas/WWAudio/SoundCullObj.h Add override to destructor
Core/Libraries/Source/WWVegas/WWAudio/SoundBuffer.h Add override to buffer virtuals
Core/Libraries/Source/WWVegas/WWAudio/FilteredSound.h Add override to pseudo-3D audio virtuals
Core/Libraries/Source/WWVegas/WWAudio/AudioEvents.h Add override to callback list destructor
Core/Libraries/Source/WWVegas/WW3D2/texturethumbnail.h Add override to manager destructor
Core/Libraries/Source/WWVegas/WW3D2/textureloader.h Add override to texture load task virtuals
Core/Libraries/Source/WWVegas/WW3D2/textureloader.cpp Add override to loader thread entrypoint
Core/Libraries/Source/WWVegas/WW3D2/textdraw.h Add override to Reset/Class_ID and destructor
Core/Libraries/Source/WWVegas/WW3D2/texproject.h Add override to projection/update virtuals
Core/Libraries/Source/WWVegas/WW3D2/surfaceclass.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/static_sort_list.h Add override to list virtuals
Core/Libraries/Source/WWVegas/WW3D2/snapPts.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/rendobj.h Add override to persist virtuals and destructor
Core/Libraries/Source/WWVegas/WW3D2/rendobj.cpp Add override to persist factory virtuals
Core/Libraries/Source/WWVegas/WW3D2/render2dsentence.h Add override to FontChars destructor
Core/Libraries/Source/WWVegas/WW3D2/proto.h Add override to prototype/loader virtuals
Core/Libraries/Source/WWVegas/WW3D2/proto.cpp Add override to prototype virtuals
Core/Libraries/Source/WWVegas/WW3D2/prim_anim.h Add override to Evaluate
Core/Libraries/Source/WWVegas/WW3D2/pointgr.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/matpass.h Make destructor virtual override
Core/Libraries/Source/WWVegas/WW3D2/matinfo.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/line3d.h Add override to RenderObj virtuals
Core/Libraries/Source/WWVegas/WW3D2/layer.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/htree.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/hanim.h Add override to hash key and destructors
Core/Libraries/Source/WWVegas/WW3D2/font3d.h Add override to destructors
Core/Libraries/Source/WWVegas/WW3D2/dx8texman.h Add override to tracker Recreate
Core/Libraries/Source/WWVegas/WW3D2/dx8polygonrenderer.h Add override to destructor
Core/Libraries/Source/WWVegas/WW3D2/dllist.h Add override to DL node destructor
Core/Libraries/Source/WWVegas/WW3D2/collect.cpp Add override to prototype virtuals
Core/Libraries/Source/WWVegas/WW3D2/bmp2d.h Add override to Clone/Class_ID
Core/Libraries/Source/WWVegas/WW3D2/agg_def.h Add override to prototype/loader virtuals
Core/Libraries/Source/WWVegas/WW3D2/aabtree.h Add override to destructor
Core/GameEngineDevice/Source/W3DDevice/GameClient/WorldHeightMap.cpp Mark stream read() override
Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp Mark stream read() override
Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTerrainVisual.cpp Mark seismic filter callbacks override
Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DMouse.cpp Mark thread entry override
Core/GameEngineDevice/Include/Win32Device/GameClient/Win32Mouse.h Add override to mouse virtuals
Core/GameEngineDevice/Include/Win32Device/GameClient/Win32DIMouse.h Add override to mouse virtuals
Core/GameEngineDevice/Include/Win32Device/GameClient/Win32DIKeyboard.h Add override to keyboard virtuals
Core/GameEngineDevice/Include/Win32Device/Common/Win32LocalFileSystem.h Add override to filesystem virtuals
Core/GameEngineDevice/Include/Win32Device/Common/Win32BIGFileSystem.h Add override to archive FS virtuals
Core/GameEngineDevice/Include/Win32Device/Common/Win32BIGFile.h Add override to archive file virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/WorldHeightMap.h Add override to heightmap interface + dtor
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DWater.h Add override to render object + snapshot virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DVideoBuffer.h Add override to video buffer virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DTreeBuffer.h Add override to Apply and snapshot virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DTerrainTracks.h Add override to render object virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DSnow.h Add override to subsystem virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DSmudge.h Add override to subsystem/device hooks
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DPropBuffer.h Add override to snapshot virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/W3DMouse.h Add override to mouse virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/TerrainTex.h Add override to Apply overrides
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DTruckDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DTreeDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DTracerDraw.h Add override to interface virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DTankTruckDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DTankDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DSupplyDraw.h Add override to supply visuals virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DScienceModelDraw.h Add override to doDrawModule
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DRopeDraw.h Add override to rope interface virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DPropDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DProjectileStreamDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DPoliceCarDraw.h Add override to doDrawModule
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DOverlordTruckDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DOverlordTankDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DOverlordAircraftDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DLaserDraw.h Add override to laser interface virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DDependencyModelDraw.h Add override to dependency hooks
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DDefaultDraw.h Add override to draw module virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/Module/W3DDebrisDraw.h Add override to debris interface virtuals
Core/GameEngineDevice/Include/W3DDevice/GameClient/CameraShakeSystem.h Add override to shaker destructor
Core/GameEngineDevice/Include/W3DDevice/GameClient/BaseHeightMap.h Add override to render obj + snapshot virtuals
Core/GameEngineDevice/Include/W3DDevice/Common/W3DRadar.h Add override to radar virtuals
Core/GameEngineDevice/Include/StdDevice/Common/StdLocalFileSystem.h Add override to filesystem virtuals
Core/GameEngineDevice/Include/StdDevice/Common/StdBIGFileSystem.h Add override to archive FS virtuals
Core/GameEngineDevice/Include/StdDevice/Common/StdBIGFile.h Add override to archive file virtuals

public:
DLNodeClass() : succ(0), pred(0), list(0) {}
~DLNodeClass() { Remove(); }
virtual ~DLNodeClass() override { Remove(); }
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

DLNodeClass derives from W3DMPO, but in always.h the W3DMPO type becomes an empty class when DISABLE_GAMEMEMORY is defined (no virtual destructor). In that configuration, virtual ~DLNodeClass() override will fail to compile because there is no virtual base destructor to override. Either make the DISABLE_GAMEMEMORY W3DMPO definition keep a virtual destructor (and any required virtuals), or avoid using override on classes that may inherit from the empty W3DMPO.

Copilot uses AI. Check for mistakes.

MotionChannelClass();
~MotionChannelClass();
virtual ~MotionChannelClass() override;
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

These classes derive only from W3DMPO. When DISABLE_GAMEMEMORY is enabled, W3DMPO is defined as an empty class (no virtual destructor), so adding virtual ~MotionChannelClass() override (and similar destructor overrides below) will not compile in that build configuration. Consider fixing W3DMPO's DISABLE_GAMEMEMORY definition to keep a virtual destructor, or drop the override specifier for these W3DMPO-only types.

Copilot uses AI. Check for mistakes.

MotionChannelClass();
~MotionChannelClass();
virtual ~MotionChannelClass() override;
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

These classes derive only from W3DMPO. When DISABLE_GAMEMEMORY is enabled, W3DMPO is defined as an empty class (no virtual destructor), so virtual ~MotionChannelClass() override (and the other destructor overrides in this header) will fail to compile in that build configuration. Either make the DISABLE_GAMEMEMORY W3DMPO definition keep a virtual destructor, or remove the override specifiers for these W3DMPO-only types.

Copilot uses AI. Check for mistakes.
@fbraz3 fbraz3 merged commit 73daf98 into main Mar 27, 2026
7 checks passed
@fbraz3 fbraz3 deleted the thesuperhackers-sync-03-27-2026 branch March 27, 2026 21:36
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.

4 participants