Skip to content

weekly-2026-10-23

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 21:33
· 15 commits to main since this release
f02fcd3

Changelog

  • tweak(filesystem): Ignore case and separator type in file lists and the file exist cache (#3531)
  • fix(missingtexture): Fill every MissingTexture mip level directly and no longer skip the last row (#3566)
  • perf(headless): Add font and display string dummies to skip font rasterization (#3538)
  • build(pathfinder): Include PreRTS.h in new pathfinder source files (#3523)
  • bugfix(aiupdate): Restore pending path requests after save load (#3491)
  • bugfix(polygontrigger): Fix height calculation in PolygonTrigger::updateBounds() (#3575)
  • bugfix(wanderaiupdate): Make the new wander destination random about the current position (#3544)
  • fix(hlod): Keep the aggregate and proxy arrays of HLod definitions (#3553)
  • refactor(wwsaveload): Delete the WWSaveLoad library (#3551)
  • refactor(wwsaveload): Remove the persistent object support from WWAudio, WWMath and WW3D2 (#3551)
  • refactor(soundrobj): Read and write the sound definition chunk in SoundRenderObjDefClass (#3551)
  • refactor(wwaudio): Remove the sound definition database (#3551)
  • fix(wwaudio): Stop sounds from keeping a pointer to the definition that created them (#3551)
  • test(soundrobj): Add Google Test round trips for the sound render object chunk (#3551)
  • bugfix(tools): Fix crash in wdump and W3DView when opening a file from the command line (#3569)
  • refactor(wdump): Use Get_Bit from WWLib and remove the local bit helpers (#3567)
  • refactor(wdump): Replace RawFileMClass with RawFileClass from WWLib (#3567)
  • tweak(gamemessage): Add separate game message type for playback CRC (#3391)
  • refactor(gamemessage): Clean up game message type related code (#3391)
  • style: Wrap remaining inline assembly in curly braces and normalize asm block layouts (#3514)
  • feat(ingameui): Implement 1% low FPS display (#2661)
  • bugfix(tools): Skip rendering while the device is lost (#3548)
  • bugfix(wbview3d): Draw maps larger than 1024x1024 through the partial terrain window (#3502)
  • bugfix(replaysimulation): Keep the working directory in replay simulation worker processes (#3508)
  • fix(netpacket): Ignore repeat commands in a packet that do not follow a matching command and clear the last command after an unrecognized packet entry (#3564)
  • docs: Add guideline against unintended issue references in commit messages (#3565)
  • refactor(ww3d2): Route device and display queries via Renderer (#3418)
  • chore: Add static asserts to verify the size of arrays for enum bit flags (#3389)
  • chore: Add static asserts to verify the size of arrays for enum values (#3389)
  • fix(wdump): Add missing names for primary gradient and detail color shader functions (#3389)
  • fix(gameengine): Pass the default game title directly to FETCH_OR_SUBSTITUTE (#3560)
  • bugfix(gamestatemap): Restore the ESC menu after a failed save load (#3490)
  • unify(map): Remove leftover Generals PolygonTrigger.cpp and TerrainLogic.cpp (#3561)
  • fix(patch): Skip writing the patch version when the registry key fails to open (#3563)
  • fix(damage): Prevent undefined shift by -1 in DeathTypeFlags helpers for DEATH_NORMAL (#3559)
  • bugfix(texturefilter): Fix blocky shroud edges from misconfigured texture filters (#3434)
  • bugfix(object): Avoid potential crash with dangling contain module when Demolition Bike is destroyed while landing on Reinforcement Pad (#3542)
  • fix(x64): Fix pointer truncations and integer user data casts (#3459)
  • bugfix(aiupdate): Keep contained hackers hacking when Stop is pressed (#3533)
  • fix(wheightmapedit): Validate new and resized map dimensions (#3501)
  • fix(wheightmapedit): Fix new/delete mismatch and wrong data buffer size in WorldHeightMapEdit::resize() (#3501)
  • bugfix: Prevent crashing Generals when attacking units from previously transferred Tunnel Network (#3341)
  • chore(logging): Remove commented out debug logs that no longer compile (#3525)
  • chore(logging): Fix commented out debug logs that no longer compile (#3525)
  • fix(weaponset): Add sanity check for weapon slot index in WeaponSet::setWeaponLock() (#3529)
  • bugfix(recorder): Validate next frame value range in RecorderClass::readNextFrame() (#3090)
  • test(wwmath): Add WWMath unit tests and benchmarks (#2670)
  • refactor(visualc): Remove visualc.h (#2670)
  • feat(bezier): Add deterministic D3DX vector math for BezierSegment (#2670)
  • refactor(gameengine): Route game engine math through WWMath (#2670)
  • refactor(wwmath): Route WWMath call sites through the deterministic wrappers (#2670)
  • feat(wwmath): Add deterministic math entry points (#2670)
  • refactor(wwmath): Reorder and reformat WWMath functions (#2670)
  • chore(basedefines): Add RETAIL_COMPATIBLE_CRC and USE_DETERMINISTIC_MATH switches (#2670)
  • build(cmake): Add gamemath library and deterministic math build options (#2670)
  • build(mingw): Fix redefinition of the BSTR conversion functions with MinGW-w64 14 (#3550)
  • fix(logging): Simplify and fix debug log formatting (#3524)
  • fix(w3ddisplay): Fix cinematic text display string leak (#3517)
  • unify: Merge common system; BuildAssistant, PlayerTemplate, FunctionLexicon, GameState, GameStateMap (#3463)
  • refactor: Introduce project wide unichar type (#3321)
  • fix: Replace float/integer pointer casts with std::bit_cast (#3532)
  • bugfix(langameoptionsmenu): Fix crash in LAN game player tooltip after the host left the game room (#3546)
  • fix(dx8wrapper): Release the cached textures at shutdown (#3543)