Skip to content

Releases: TheSuperHackers/GeneralsGameCode

weekly-2026-07-24

Choose a tag to compare

@github-actions github-actions released this 24 Jul 11:08
f74fbee

Changelog

  • bugfix(particlesys): Prevent accumulation of particle systems in headless mode (#3006)
  • bugfix(fxlist): Fix unreliable terrain layer selection of particles using CreateAtGroundHeight (#3004)
  • bugfix(behavior): Do not fire weapons via the InstantDeathBehavior module while under construction (#3002)
  • bugfix(saveload): Serialize base state machine in TurretStateMachine and DozerActionStateMachine (#2896)
  • bugfix(behavior): Allow multiple InstantDeathBehavior modules to be processed (#2990)
  • bugfix(weapon): Sniper weapons can no longer fire upon empty Stinger Sites (#2822)
  • tweak(intro): Implement intro skipping with ESC button (#2879)
  • bugfix(gui): Fix black fade out at the end of the map load screen (#2889)
  • chore: Use qualified include paths for WWVegas headers (2) (#2881)
  • tweak(cmake): Use GameSpy SDK from TheSuperHackers repository (#2884)
  • bugfix(gamelogic): Map player index to slot index for CRC validation (#2857)
  • bugfix(heightmap): Prevent full terrain rebuild on every frame when DrawEntireTerrain is enabled (#2846)
  • chore(heightmap): Remove remnants of unimplemented Stretch Terrain and Half Height Map (#2846)
  • fix(bitflags): Prevent linker errors from multiple defined BitFlags::s_bitNameList (#2888)
  • chore: Replace CPP_11(= delete) with FUNCTION_DELETE macro to help clang format (#2885)
  • chore: Remove empty braces in macros to help clang format (#2883)
  • chore: Use qualified include paths for WWVegas headers (1)
  • feat(screenshot): Add threaded JPEG/PNG screenshots without game stalls (#1785)

weekly-2026-07-17

Choose a tag to compare

@github-actions github-actions released this 17 Jul 10:53

Changelog

  • feat(intro): Add short Intro Logo for The Super Hackers team (#2267)
  • tweak(intro): Remove superfluous legal page window from intro sequence (#2267)
  • fix(intro): Remove non functional copyright string and simplify logo movie code (#2267)
  • refactor(intro): Simplify the intro state machine in Intro class (#2267)
  • refactor(intro): Move intro related code to new file and class (#2267)
  • refactor(sphere): Zero initialize SphereClass by default and add Is_Valid function (#2855)
  • tweak(gamemessage): Reduce number of MSG_DESTROY_SELECTED_GROUP messages (#2668)
  • unify(ini): Move INI parser files to Core (#2863)
  • unify(ini): Merge INIMultiplayer starting money parsing from Zero Hour (#2863)
  • bugfix(gameengine): Prevent logic time accumulation while the game is halted (#2865)
  • bugfix(commandxlat): Re-enable right mouse click move commands during camera scrolling (#2847)

weekly-2026-07-10

Choose a tag to compare

@github-actions github-actions released this 10 Jul 11:57
ab5ce4f

Changelog

  • tweak(controlbar): Decouple the general promotion star blink from the render frame rate (#2835)
  • bugfix(ini): Store every debris model name in GenericObjectCreationNugget::parseDebrisObjectNames (#2597)
  • perf(sortingrenderer): Skip z-sorting for nodes without bounding info in SortingRenderer (#2854)
  • bugfix(logic): Restore retail compatibility after change to frozen time check (#2803)
  • unify(controlbar): Move ControlBar files to Core (#2849)
  • unify(controlbar): Merge ControlBar and related code from Zero Hour (#2849)
  • fix(gui): Pace whole-screen fade loop through the frame pacer (#2848)
  • feat(gui): Implement user option to scale the game window transition speed (#2840)

weekly-2026-07-03

Choose a tag to compare

@github-actions github-actions released this 03 Jul 10:08
4eda82d

Changelog

  • bugfix(pointgroup): Render ground-aligned particles without sorting (#2838)
  • fix(textureloader): Simplify and fix faulty implementations of texture reduction (2) (#2814)
  • bugfix(heightmap): Reduce ray cast lengths and fix ray casting in BaseHeightMapRenderObjClass::Cast_Ray (#2836)
  • bugfix(mouse): Fix bad drag tolerances with high scroll speed factors (#2826)
  • chore(basetype): Add addition and subtraction functions to Coord2D, Coord3D, ICoord2D, ICoord3D (#2826)
  • refactor(selectionxlat): Split switch cases of SelectionTranslator::translateGameMessage into separate functions (#2819)
  • build: Fix compile error in Smudge.h with docker-build (#2701)
  • refactor(basetype): Refactor functions of Coord3D, Region3D to take reference instead of pointer (#2830)
  • tweak(drawable): Decouple police car light time step from render update (#2829)
  • tweak(gui): Decouple GUI transition and world animation time step from render update (#2056)
  • bugfix(view): Fix view ray cast behavior for mouse picks and drawable occlusion (#2818)

weekly-2026-06-26

Choose a tag to compare

@github-actions github-actions released this 26 Jun 10:13
a7447e5

Changelog

  • unify(update): Parse template references in the AssistedTargetingUpdate module by name (#2809)
  • refactor(audio): Simplify available audio samples management (#2773)
  • unify(messagestream): Move all client message translator files to Core (#2805)
  • fix(update): Fix laser-to-target setup mistake in AssistedTargetingUpdate (#2817)
  • chore(sortingrenderer): Remove unused function Insert_VolumeParticle (#2816)
  • refactor(sortingrenderer): Replace custom doubly linked list with std::list in SortingNodeStruct (#2810)
  • bugfix(logic): Restore retail compatibility after change in CountermeasuresBehavior::calculateCountermeasureToDivertTo (#2808)
  • chore: Prevent conflict between clang-format and MSVC by wrapping inline assembly blocks in curly braces (#2811)
  • chore: Prevent conflict between clang-format and pre-C++11 nested template parsing (#2760)

weekly-2026-06-19

Choose a tag to compare

@github-actions github-actions released this 19 Jun 10:40
78edd87

Changelog

  • bugfix(ai): Fix bugged unit behavior when attacked during guard mode (#2197)
  • bugfix(crc): Fix spurious mismatches for disconnected players at low CRC intervals (#2796)
  • bugfix(network): Improve compare method of command id's to keep network commands in chronological order when overflowing (#2736)
  • bugfix(pathfinder): Fix inaccurate single unit movement destinations when unobstructed (#2296)
  • bugfix(textureloader): Fix faulty implementations of texture reduction (#2789)
  • tweak(textureloader): Remove superfluous texture reduction code from TextureLoadTaskClass::Begin_Uncompressed_Load() (#2789)
  • refactor(textureloader): Simplify code in Texture Loader (#2789)
  • bugfix(textureloader): Lift hardcoded texture aspect ratio limit of 1:8 to allow loading all textures with modern gpu (#2788)
  • perf: Reduce cost of retrieving labels from Waypoint and PolygonTrigger by 90% (#2761)
  • unify(selectionxlat): Merge SelectionXlat (#2792)
  • unify(commandxlat): Merge CommandXlat and related code from Zero Hour (#2765)
  • unify(academystats): Move AcademyStats files to Core and merge related required code (#2765)
  • feat(options): Implement user option to toggle Right Mouse Scroll with Alternate Mouse (#2798)
  • unify(translator): Merge message translators from Zero Hour (#2794)
  • perf(pathfinding): Skip redundant path-exists check in Pathfinder::checkForAdjust() (#2791)
  • refactor(pathfinder): Simplify implementation of spiral cell search in Pathfinder::adjustDestination() (#2790)
  • fix(bitflags): Use UnsignedInt64 and %I64X to support VC6 compiler in BitFlags.h (#2759)
  • fix(milesaudiomanager): Fix audio request kill condition in MilesAudioManager::killAudioEventImmediately() (#2784)

weekly-2026-06-12

Choose a tag to compare

@github-actions github-actions released this 12 Jun 10:39
5d4f669

Changelog

  • fix(sortingrenderer): Prevent a crash when exceeding the 16-bit index buffer limit (#2783)
  • refactor(gamelogic): Split switch cases of GameLogic::logicMessageDispatcher into separate functions (#2702)
  • unify(ww3d2): Move SortingRenderer to Core (#2772)
  • unify(ww3d2): Merge SortingRenderer (#2772)
  • perf(gamemessage): Replace GameMessageArgument linked lists with vectors (#2700)

weekly-2026-06-05

Choose a tag to compare

@github-actions github-actions released this 05 Jun 10:29
f334383

Changelog

  • bugfix(contain): Prevent riders from being added to destroyed container object when Reinforcement Pad is destroyed before Troop Crawler drop (#2746)
  • refactor(metaevent): Split MetaEventTranslator::translateGameMessage() into smaller functions (#2758)
  • fix(milesaudiomanager): Prevent multithread crashing in MilesAudioManager (#2718)
  • refactor(milesaudiomanager): Clean up and simplify MilesAudioManager (#2718)
  • bugfix(object): Avoid crash with dangling contain module in Object::onDestroy() when Reinforcement Pad is destroyed before Troop Crawler drop (#2747)
  • fix(memory): Fix various memory leaks (2) (#2710)
  • unify(shroud): Merge W3DShroud code from Zero Hour and implicitly fix black terrain for one frame on far camera jumps (#2757)
  • fix(metaevent): Ignore order in which modifier keys are released to trigger meta events (#2577)
  • unify(message): Merge MessageStream, MetaEvent code (#2756)

weekly-2026-05-29

Choose a tag to compare

@github-actions github-actions released this 29 May 10:28
cc4a683

Changelog

  • bugfix(water): Fix river visuals in black shroud (#2749)
  • fix(memory): Fix audio event related memory leaks when pausing the game (#2731)
  • fix(particlesys): Simplify ParticleSystemManagerDummy setup (#2740)
  • fix(particlesys): Decouple particle systems from logic crc (#2742)

weekly-2026-05-22

Choose a tag to compare

@github-actions github-actions released this 22 May 10:13
bf8d5be

Changelog

  • bugfix(gameengine): Fix logic in GameEngine::canUpdateRegularGameLogic() (#2707)
  • fix(recorder): Fix memory leak of RecorderClass::m_crcInfo (#2713)
  • bugfix(aigroup): Prevent game crash when a player is selected in Replay playback (2) (#2711)
  • perf(network): Replace extern global network variables with const ones (#2726)
  • refactor(network): Use switch cases in utility functions for network commands (#2725)
  • fix(particlesys): Add or simplify null-checks to createParticleSystem calls (#2724)
  • fix(network): Verify accepted type of incoming game messages (#2708)
  • bugfix(physics): Prevent building crash damage from dealing damage to other objects (#2723)
  • bugfix(physics): Prevent dead units from repeatedly dealing crash damage on collision with non-buildings (#2204)
  • fix(gameengine): Remove music tracks as prerequisite to initialize the game engine (#2737)
  • bugfix: Restore retail compatibility after retail behavior flags change (#2727)
  • refactor(netpacket): Simplify NetPacket functions for packet buffer reads (#2463)
  • fix(object): Prevent crash if Object::m_drawable is a nullptr on save load (#2712)