Skip to content

weekly-2026-10-16

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Oct 19:17
· 36 commits to main since this release
63c7898

Changelog

  • bugfix(stdlocalfilesystem): Ignore letter case in the first part of a relative path (#3530)
  • bugfix(teamsdialog): Fix crash in World Builder's Team Builder when selecting team members of the neutral player (#3515)
  • fix(lanapi): Delete the lobby player when they leave the lobby (#3499)
  • fix(network): Release the disconnect chat message after sending it (#3498)
  • bugfix(worldheightmap): Reject map sizes that overflow the cell array allocations (#3486)
  • fix(maputil): Close the file and free the buffer when a map preview copy fails (#3485)
  • chore(helixcontain): Remove dead code and redundant lookups in HelixContain (#3466)
  • bugfix(saveload): Save the next evaluation frame of delayed scripts (#3130)
  • bugfix(pathfinder): Restore retail compatibility after changing PATHFIND_CELL_SIZE_F from macro to variable (#3519)
  • refactor: Port Generals hash map code for Object and Drawable lookups to Zero Hour (2) (#3470)
  • refactor(minidumper): Move MiniDumper from GameEngine to new static library (#3506)
  • refactor(minidumper): Decouple MiniDumper from GameEngine (#3506)
  • refactor(archivefilesystem): Move loadMods to BIGFileSystem and rename loadBigFilesFromDirectory (#3505)
  • refactor(archivefilesystem): Merge Win32BIGFileSystem and StdBIGFileSystem into BIGFileSystem (#3505)
  • refactor(archivefile): Merge Win32BIGFile and StdBIGFile into ArchiveFile (#3505)
  • refactor: Consolidate IABS definitions into BaseAlgorithm.h (#3504)
  • refactor: Replace min/max function definition duplicates (#3518)
  • refactor: Consolidate F2DW definitions into dx8wrapper.h (#3516)
  • fix(ini): Preserve legacy parsing for out-of-range numbers (#3436)
  • build: Move Trig.cpp to shared Lib and move Lib to the other game libs (#3512)
  • bugfix(aiupdate): Fix AIUpdateInterface::checkForCrateToPickup() never returning a crate (#3481)
  • build(mingw): Use the portable memcchr when SSE2 is not enabled (#3500)
  • bugfix(w3d): Skip rivers that overflow the dynamic index buffer (#3489)
  • fix: Close leaked system handles in GameWindowManager, ImageCollection, MainMenuUtils (#3497)
  • fix(worldheightmap): Free the legacy cliff state buffer when loading blend tile data (#3482)
  • fix(debug): Close the debug log file under the log lock in DebugShutdown (#3456)
  • refactor(debug): Move engine independent debug code to core_libraries (#3456)
  • refactor(debug): Decouple Debug.cpp from GameEngine with host callbacks (#3456)
  • refactor(debug): Remove unused SimpleProfiler (#3456)
  • refactor: Use qualified include paths for debug and profile libraries (#3456)
  • build(cmake): Link the profile libraries from core_libraries (#3456)
  • build(cmake): Move core_libraries target to Core/Libraries/CMakeLists.txt (#3456)
  • fix(flatheightmap): Fix flat terrain tiles leaking on device reset (#3479)
  • bugfix(network): Close sockets that fail to bind (#3488)
  • build(gamememory): Simplify cmake and file setup for GameMemory files (#3467)
  • bugfix(locomotor): Fix 2D diagonal movement speed discrepancy (#3003)
  • bugfix(saveload): Serialize all member flags in AssaultTransportAIUpdate::xfer() (#3148)
  • bugfix(w3d): Fix leaked surface copy in screenshot and movie capture (#3477)
  • chore(drawable): Remove obsolete RECOIL_FROM_BEING_DAMAGED code in Drawable::calcPhysicsXformTreads (#3468)
  • chore(atomic): Implement interlocked functions and atomic template class adapter for VC6 builds (#3325)
  • feat: Implement terrain conforming particles (#3245)
  • fix(dx8wrapper): Release the D3D8 library and interface when DX8Wrapper::Init() fails (#3475)
  • fix(addoncompat): Close fullviewport.dat file handle after reading it (#3476)
  • chore(gamememory): Remove the stale FontCharsBuffer memory pool entry (#3288)
  • tweak(ww3d2): Discard cached glyphs on map load and on resolution change (#3288)
  • fix(render2dsentence): Let the sentence texture grow beyond 256 pixels for large fonts (#3288)
  • perf(render2dsentence): Size the glyph cache blocks from the font's own glyph cell (#3288)
  • perf(render2dsentence): Cache one byte of coverage per glyph pixel instead of a full texel (#3288)
  • fix(render2dsentence): Size the GDI glyph scratch bitmap from the font metrics instead of the point size (#3288)
  • chore(basetype): Implement contains() methods in Region base types and rename their isInRegion() methods to containsWithin() (#3471)
  • bugfix(shroud): Fill every row of the final fog data in fillShroudData (#3440)
  • bugfix(shroud): Copy the shroud to its texture manually instead of with CopyRects (#3440)
  • bugfix(helixcontain): Grant experience to the Helix from attachment gun kills (#3282)
  • bugfix(w3dtreebuffer): Refill the tree buffers after a device reset (#3449)
  • fix(lanapi): Fix GameInfo memory leaks in LANAPI::OnGameStart(), LANAPI::RequestGameLeave() (#3462)
  • chore(string): Implement memcchr utility function (#3430)
  • fix(ingameui): Properly delete ControlBar and ReplayControl game windows on resolution change and/or shutdown (#3414)
  • bugfix(object): Remove stranded occupants from the TunnelTracker and fix the object lookup for GameLogic::destroyAllObjectsImmediate() (#3308)
  • refactor(ww3d2): Route Clear, Set_Viewport, Set_Gamma via Renderer (#3417)