weekly-2026-03-06
·
156 commits
to main
since this release
Changelog
- bugfix(heightmap): Fix zagged shapes on steep diagonal terrain (#2406)
- refactor(view): Split contents of W3DView::buildCameraTransform(), W3DView::calcCameraAreaConstraints() (#2403)
- bugfix(gunship): Select Spectre Gunship only on the client that controls the unit (#2402)
- bugfix(ai): Reset jet locomotor to normal when attack locomotor timer expires (#2397)
- build(cmake): Append RTS_BUILD_OUTPUT_SUFFIX to installable targets (#2378)
- unify(pathfinder): Merge PathfindZoneManager() (#2404)
- chore(pathfinder): Remove unused forced refresh calling in PathfindZoneManager::calculateZones() (#2404)
- refactor: Add compatibility macros for override and final keywords and rename conflicting identifiers (#2389)
- refactor(random): Reorder RandomValue function definitions (2) (#2405)
- refactor(dozeraiupdate): Streamline dozer task cancellation logic (#2387)
- refactor(random): Reorder RandomValue function definitions (#2384)
- feat: Implement math CRC calculation utility for logic mismatch detection purposes (#2100)
- bugfix(pathfinder): Fix uninitialized variable in Pathfinder::tightenPathCallback to prevent mismatches (#2309)
- unify(pathfinder): Remove unused argument from PathfindZoneManager::markZonesDirty() (#2381)
- unify(pathfinder): Merge PathfindCell class from Zero Hour (#2381)
- unify(pathfinder): Merge CellTypes and CELL_BRIDGE_IMPASSABLE code from Zero Hour (#2381)
- unify(pathfinder): Merge PathfindCell::setTypeAsObstacle() and PathfindCell::removeObstacle() from Zero Hour (#2381)
- chore(pathfinder): Remove legacy Pathfind debug code from Generals (#2381)
- bugfix(radar): Fix incorrect 2D distance calculation in Radar::tryEvent (#2368)
- refactor(battleplan): Split data off of BattlePlanBonuses class (#2335)
- bugfix(audio): Fix range volume fade of 3D sounds and make it configurable in AudioSettings.ini (#2369)
- fix(view): Implement state for user controlled camera to properly distinguish between scripted and user camera (#2363)
- fix(network): Move TransportMessageHeader to before it is used in NetworkDefs.h (#2382)
- ci(vcpkg): Fix recurring binary cache invalidation from runner image updates (#2371)
- unify(pathfinder): Merge local variable optimizations in PathfindZoneManager::calculateZones() from Zero Hour (#2367)
- fix(pathfinder): Add missing logical block for zone type optimization in PathfindZoneManager::calculateZones() (#2360)
- chore(pathfinder): Remove register variable and use member variable directly in PathfindZoneManager::calculateZones() (#2360)
- chore(pathfinder): Change while loops to for loops in PathfindZoneManager::calculateZones() (#2360)
- chore(pathfinder): Change open braces to be K&R style in PathfindZoneManager::calculateZones() (#2360)
- chore(pathfinder): Change leading spaces to leading tabs in PathfindZoneManager:calculateZones() (#2360)
- tweak(menu): Show mouse and menu immediately when shellmap is disabled (#2356)
- fix(logic): Fix potential null pointer deferences in GameLogicDispatch (#2354)
- tweak(random): Replace InitGameLogicRandom with InitRandom for consistent client and audio seeds (#2339)
- bugfix(audio): Fix particle cannon being inaudible after saveload (#2302)
- fix(headless): Use ParticleSystemManager update instead of reset in headless replay (#2219)
- refactor(view): Change scripted state booleans to enum flags in W3DView (#2357)
- bugfix(partition): Fix inconsistent mine collision behaviour (#2208)