Skip to content

Releases: githubawn/GeneralsGameCode

weekly-2026-04-17

17 Apr 10:11
6317722

Choose a tag to compare

Changelog

weekly-2026-04-10

10 Apr 10:07
476a57c

Choose a tag to compare

Changelog

weekly-2026-04-03

03 Apr 09:49
f83b376

Choose a tag to compare

Changelog

weekly-2026-03-27

27 Mar 09:50
08b8420

Choose a tag to compare

Changelog

weekly-2026-03-20

20 Mar 09:37
e550dfe

Choose a tag to compare

Changelog

weekly-2026-03-16

16 Mar 01:44
aa36cd6

Choose a tag to compare

Changelog

  • Replicated in Generals.
  • Changed 'thisPlayer' to 'msgPlayer'.
  • Removed two more instances of 'msg->getPlayerIndex'.
  • refactor(random): Simplify code in RandomValue (TheSuperHackers#2370)
  • unify(pathfinder): Merge PathfindLayer::doDebugIcons(), Pathfinder::Classify functions, Pathfinder::checkDestination() and Pathfinder::checkForMovement() (TheSuperHackers#2414)
  • bugfix(heightmap): Fix zagged shapes on steep diagonal terrain (TheSuperHackers#2406)
  • refactor(view): Split contents of W3DView::buildCameraTransform(), W3DView::calcCameraAreaConstraints() (TheSuperHackers#2403)
  • bugfix(gunship): Select Spectre Gunship only on the client that controls the unit (TheSuperHackers#2402)
  • bugfix(ai): Reset jet locomotor to normal when attack locomotor timer expires (TheSuperHackers#2397)
  • build(cmake): Append RTS_BUILD_OUTPUT_SUFFIX to installable targets (TheSuperHackers#2378)
  • unify(pathfinder): Merge PathfindZoneManager() (TheSuperHackers#2404)
  • chore(pathfinder): Remove unused forced refresh calling in PathfindZoneManager::calculateZones() (TheSuperHackers#2404)
  • refactor: Add compatibility macros for override and final keywords and rename conflicting identifiers (TheSuperHackers#2389)
  • refactor(random): Reorder RandomValue function definitions (2) (TheSuperHackers#2405)
  • refactor(dozeraiupdate): Streamline dozer task cancellation logic (TheSuperHackers#2387)
  • refactor(random): Reorder RandomValue function definitions (TheSuperHackers#2384)
  • feat: Implement math CRC calculation utility for logic mismatch detection purposes (TheSuperHackers#2100)
  • bugfix(pathfinder): Fix uninitialized variable in Pathfinder::tightenPathCallback to prevent mismatches (TheSuperHackers#2309)
  • unify(pathfinder): Remove unused argument from PathfindZoneManager::markZonesDirty() (TheSuperHackers#2381)
  • unify(pathfinder): Merge PathfindCell class from Zero Hour (TheSuperHackers#2381)
  • unify(pathfinder): Merge CellTypes and CELL_BRIDGE_IMPASSABLE code from Zero Hour (TheSuperHackers#2381)
  • unify(pathfinder): Merge PathfindCell::setTypeAsObstacle() and PathfindCell::removeObstacle() from Zero Hour (TheSuperHackers#2381)
  • chore(pathfinder): Remove legacy Pathfind debug code from Generals (TheSuperHackers#2381)
  • bugfix(radar): Fix incorrect 2D distance calculation in Radar::tryEvent (TheSuperHackers#2368)
  • refactor(battleplan): Split data off of BattlePlanBonuses class (TheSuperHackers#2335)
  • bugfix(audio): Fix range volume fade of 3D sounds and make it configurable in AudioSettings.ini (TheSuperHackers#2369)
  • fix(view): Implement state for user controlled camera to properly distinguish between scripted and user camera (TheSuperHackers#2363)
  • fix(network): Move TransportMessageHeader to before it is used in NetworkDefs.h (TheSuperHackers#2382)
  • Changed 'msg->getPlayerIndex' to 'thisPlayer->getPlayerIndex'.
  • Removed redundant player pointer checks.
  • Added check on 'thisPlayer'.
  • ci(vcpkg): Fix recurring binary cache invalidation from runner image updates (TheSuperHackers#2371)

weekly-2026-03-11

11 Mar 01:59
674ba9e

Choose a tag to compare

Changelog

  • performance(d3d): enable PUREDEVICE and hardware vertex processing
  • Added isquitmenuvisible as check
  • added comment and removed blank link
  • added tryStartNewGame to avoid long catch
  • refine graceful exit logic and apply suggestions
  • Apply suggestion from @greptile-apps[bot]
  • refactor: Remove redundant void argument from functions (TheSuperHackers#2345)
  • refactor: Simplify unconditional asserts from DEBUG_ASSERTCRASH to DEBUG_CRASH (TheSuperHackers#2343)
  • refactor(preferences): Move OptionPreferences class into separate files (TheSuperHackers#1840)
  • Implemented feedback
  • Backport graceful exit logic from GeneralsMD
  • refactor(language): Cleanup GlobalLanguage code and add function GlobalLanguage::getResolutionFontSizeScale() (TheSuperHackers#2338)
  • Implement graceful exit during loading and movie screens
  • Implement graceful exit for Alt+F4 and window close events

weekly-2026-03-02

02 Mar 04:03
674ba9e

Choose a tag to compare

Changelog

  • feat: Add Anti-Aliasing and Anisotropic Filtering support to options.ini
  • unify(pathfinder): Merge local variable optimizations in PathfindZoneManager::calculateZones() from Zero Hour (TheSuperHackers#2367)
  • fix(pathfinder): Add missing logical block for zone type optimization in PathfindZoneManager::calculateZones() (TheSuperHackers#2360)
  • chore(pathfinder): Remove register variable and use member variable directly in PathfindZoneManager::calculateZones() (TheSuperHackers#2360)
  • chore(pathfinder): Change while loops to for loops in PathfindZoneManager::calculateZones() (TheSuperHackers#2360)
  • chore(pathfinder): Change open braces to be K&R style in PathfindZoneManager::calculateZones() (TheSuperHackers#2360)
  • chore(pathfinder): Change leading spaces to leading tabs in PathfindZoneManager:calculateZones() (TheSuperHackers#2360)
  • tweak(menu): Show mouse and menu immediately when shellmap is disabled (TheSuperHackers#2356)
  • fix(logic): Fix potential null pointer deferences in GameLogicDispatch (TheSuperHackers#2354)
  • tweak(random): Replace InitGameLogicRandom with InitRandom for consistent client and audio seeds (TheSuperHackers#2339)
  • bugfix(audio): Fix particle cannon being inaudible after saveload (TheSuperHackers#2302)
  • fix(headless): Use ParticleSystemManager update instead of reset in headless replay (TheSuperHackers#2219)
  • refactor(view): Change scripted state booleans to enum flags in W3DView (TheSuperHackers#2357)
  • bugfix(partition): Fix inconsistent mine collision behaviour (TheSuperHackers#2208)

weekly-2026-03-01

01 Mar 17:21
cf96141

Choose a tag to compare

Changelog

  • simplify
  • Add benchmark results for SAGE MSAA CopyRects
  • Delete benchmark/benchmark_out_ascii.txt
  • saved file as UTF-8 instead of UTF-16LE
  • wip: fix for Microwave blackout on forced AA
  • tweak(menu): Show mouse and menu immediately when shellmap is disabled (TheSuperHackers#2356)
  • fix(logic): Fix potential null pointer deferences in GameLogicDispatch (TheSuperHackers#2354)
  • tweak(random): Replace InitGameLogicRandom with InitRandom for consistent client and audio seeds (TheSuperHackers#2339)
  • bugfix(audio): Fix particle cannon being inaudible after saveload (TheSuperHackers#2302)
  • fix(headless): Use ParticleSystemManager update instead of reset in headless replay (TheSuperHackers#2219)
  • refactor(view): Change scripted state booleans to enum flags in W3DView (TheSuperHackers#2357)
  • bugfix(partition): Fix inconsistent mine collision behaviour (TheSuperHackers#2208)

weekly-2026-02-28

28 Feb 16:50
cf96141

Choose a tag to compare

Changelog

  • wip: fix for Microwave blackout on forced AA
  • tweak(menu): Show mouse and menu immediately when shellmap is disabled (TheSuperHackers#2356)
  • fix(logic): Fix potential null pointer deferences in GameLogicDispatch (TheSuperHackers#2354)
  • tweak(random): Replace InitGameLogicRandom with InitRandom for consistent client and audio seeds (TheSuperHackers#2339)
  • bugfix(audio): Fix particle cannon being inaudible after saveload (TheSuperHackers#2302)
  • fix(headless): Use ParticleSystemManager update instead of reset in headless replay (TheSuperHackers#2219)
  • refactor(view): Change scripted state booleans to enum flags in W3DView (TheSuperHackers#2357)
  • bugfix(partition): Fix inconsistent mine collision behaviour (TheSuperHackers#2208)
  • refactor(view): Simplify code to set location for Replay Camera (TheSuperHackers#2353)
  • fix(view): Call View::forceRedraw() instead of doing tricks to refresh the camera normally (TheSuperHackers#2352)
  • refactor(lookat): Simplify pitch, fov, zoom logic in LookAtTranslator (TheSuperHackers#2351)
  • fix(object): Save and load game object list in correct order (TheSuperHackers#2161)
  • bugfix(registry): Prioritize HKEY_CURRENT_USER registry reads and writes over HKEY_LOCAL_MACHINE to prevent inaccessible data (TheSuperHackers#1844)
  • refactor: Remove redundant void argument from functions (TheSuperHackers#2345)
  • refactor: Simplify unconditional asserts from DEBUG_ASSERTCRASH to DEBUG_CRASH (TheSuperHackers#2343)
  • refactor(preferences): Move OptionPreferences class into separate files (TheSuperHackers#1840)
  • refactor(language): Cleanup GlobalLanguage code and add function GlobalLanguage::getResolutionFontSizeScale() (TheSuperHackers#2338)