8000 Releases · Caball009/GeneralsGameCode · GitHub
[go: up one dir, main page]

Skip to content

Releases: Caball009/GeneralsGameCode

weekly-2026-03-20

20 Mar 09:39
39647c3

Choose a tag to compare

Changelog

  • fix(logic): Improve validation of MSG_SET_RALLY_POINT in GameLogicDispatch (TheSuperHackers#2441)
  • fix(logic): Improve validation of MSG_NEW_GAME in GameLogicDispatch (TheSuperHackers#2440)
  • fix(logic): Improve handling of ENABLE_RETALIATION_MODE in GameLogicDispatch (TheSuperHackers#2408)
  • fix(logic): Improve validation of MSG_DO_SPECIAL_POWER and variants in GameLogicDispatch (TheSuperHackers#2380)
  • bugfix(rallypoint): Make healed units follow building rally point on exit (TheSuperHackers#1822)
  • bugfix(supply): Implement proportional supply bonus scaling to fix too generous money deposits for partial supply drops (TheSuperHackers#2431)
  • bugfix(smudge): Fix Microwave Heat Haze blackout on forced AA (TheSuperHackers#2374)
  • refactor: Add override keyword to virtual function overrides in GameEngine (TheSuperHackers#2391)
  • unify(logic): Merge game loading related variables and functions from Zero Hour (TheSuperHackers#2444)
  • fix(pathfinder): Implement robust forward insertion sort for PathfindCell::putOnSortedOpenList() (TheSuperHackers#2432)
  • refactor(netpacket): Simplify NetPacket functions for packet buffer writes and size tests (TheSuperHackers#2329)
  • refactor(netcommandmsg): Rename NetCommandMsg::getPackedByteCount to NetCommandMsg::getSizeForNetPacket (TheSuperHackers#2329)
  • refactor(netcommandmsg): Simplify net messages NetAckBothCommandMsg, NetAckStage1CommandMsg, NetAckStage2CommandMsg (TheSuperHackers#2329)
  • chore(network): Add new NetAckCommandMsg (TheSuperHackers#2329)
  • fix(network): Fix constness around NetCommandMsg (TheSuperHackers#2329)

weekly-2026-03-13

13 Mar 09:36
d195e3b

Choose a tag to compare

Changelog

  • bugfix(namekey): Remove hardcoded NameKeyIDs from dummy strings to work with modded files (TheSuperHackers#2349)
  • ci(validate): Update PR validation workflow and valid tags (TheSuperHackers#2426)
  • unify(pathfinder): Move AIPathfind.h and AIPathfind.cpp to Core (TheSuperHackers#2428)
  • chore(replays): Update GeneralsReplays reference to latest (TheSuperHackers#2424)
  • fix(lookat): Fix mouse anchor and direction issue for camera pitch (TheSuperHackers#2421)
  • bugfix(audio): Decouple Particle Cannon audio spawn point from visual beam to restore correct position and fix quiet beam audio (TheSuperHackers#2415)
  • unify(pathfinder): Merge Pathfinder::moveAllies and Pathfinder::findAttackPath from Zero Hour (TheSuperHackers#2341)
  • unify(pathfinder): Merge Pathfinder::moveAlliesDestinationCallback, ::processHierarchicalCell, ::findClosestPath, ::updateGoal (TheSuperHackers#2341)
  • unify(pathfinder): Merge Pathfinder::checkForPossible(), ::processPathfindQueue(), ::examineNeighboringCells(), ::buildHierarchicalPath() (TheSuperHackers#2341)
  • unify(pathfinder): Merge Pathfinder::clientSafeQuickDoesPathExist() and Pathfinder::clientSafeQuickDoesPathExistForUI() from Zero Hour (TheSuperHackers#2341)
  • refactor(random): Simplify code in RandomValue (TheSuperHackers#2370)
  • unify(pathfinder): Merge PathfindLayer::doDebugIcons(), Pathfinder::Classify functions, Pathfinder::checkDestination() and Pathfinder::checkForMovement() (TheSuperHackers#2414)

weekly-2026-03-06

06 Mar 09:34
6b726d7

Choose a tag to compare

Changelog

  • 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)
  • ci(vcpkg): Fix recurring binary cache invalidation from runner image updates (TheSuperHackers#2371)
  • 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)
  • 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)

weekly-2026-02-27

27 Feb 09:37
78d94fb

Choose a tag to compare

Changelog

  • 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)
  • bugfix(skirmish): Prevent mismatch in Replay playback by restoring correct game seed after restarting a Skirmish game (TheSuperHackers#2270)
  • refactor(pathfinder): Remove unused function Pathfinder::pathDestination() (TheSuperHackers#2308)
  • unify(client): Move several GameClient files to Core (TheSuperHackers#2337)
  • unify(client): Merge DisplayString, GameText, GlobalLanguage, SelectionInfo code (TheSuperHackers#2337)
  • bugfix(player): Fix rounding inaccuracies with money awarded by Cash Bounty (TheSuperHackers#2330)
  • bugfix(behavior): Prevent fallen Angry Mob members from respawning at the Barracks after loading a save (TheSuperHackers#2314)
  • refactor(pathfinder): Cleanup retail compatible insertion sort code (TheSuperHackers#2331)
  • refactor(pathfinder): Implement PathfindCellList class for the pathfindcell closedList (TheSuperHackers#2327)
  • refactor(pathfinder): Implement PathfindCellList class for the pathfindcell openList (TheSuperHackers#2327)
  • bugfix(victory): Save victory status to prevent early exits from resulting in defeat in network matches (TheSuperHackers#2292)
  • fix(netpacket): Fix incorrect improbable return value in NetPacket::GetBufferSizeNeededForCommand() (TheSuperHackers#2328)
  • unify(gui): Move several GUI related files to Core (TheSuperHackers#2332)
  • unify(loadscreen): Merge LoadScreen and related code (TheSuperHackers#2332)
  • fix(loadscreen): Fix missing pointer initialization in constructors of MultiPlayerLoadScreen, GameSpyLoadScreen and remove superfluous code from destructors of LoadScreen classes (TheSuperHackers#2332)
  • unify(mouse): Move Mouse, Keyboard files to Core (TheSuperHackers#2334)
  • unify(mouse): Merge Mouse, Keyboard code (TheSuperHackers#2334)

weekly-2026-02-20

20 Feb 09:37
d778bf3

Choose a tag to compare

Changelog

  • bugfix(battleplanupdate): Prevent using the Bombardment Cannon while switching Battle Plans (TheSuperHackers#2324)
  • bugfix(behavior): Only detonate Bunker Busters if the missile reaches its destination (TheSuperHackers#2321)
  • tweak(commandline): Skip intro logo with -quickstart and enable -nologo, -noShellAnim in Release builds (TheSuperHackers#2266)
  • bugfix(radar): Show Hero Radar icons in Containers and Tunnels again (TheSuperHackers#2189)
  • fix(connection): Fix unsafe Player ID usage in ConnectionManager, DisconnectManager (TheSuperHackers#2305)
  • bugfix(particlesys): Restore Particle System IDs on save load before registering to ParticleSystemManager (TheSuperHackers#2316)
  • bugfix(worldbuilder): Fix incorrect access of empty list in ObjectOptions::_FindOrDont() (TheSuperHackers#2306)
  • tweak: Put fixes that do affect gameplay behind PRESERVE_RETAIL_BEHAVIOR (TheSuperHackers#2319)
  • build: Fix compile error when building without RETAIL_COMPATIBLE_CRC (TheSuperHackers#2318)
  • bugfix(worldbuilder): Fix optimized trees not being shown in object placer preview window (TheSuperHackers#2312)
  • bugfix(worldbuilder): Fix uncaught carriage return in CommandButton name when parsing from INI (TheSuperHackers#2300)
  • feat(cratecollide): Add INI option to allow a crate to be picked up multiple times in one frame (TheSuperHackers#2297)
  • build(docker): Add Linux LSP support by fixing compile_commands.json paths (TheSuperHackers#2303)
  • tweak(worldbuilder): Remove EULA code and data (TheSuperHackers#2307)
  • fix(netpacket): Fix undefined behavior with NetPacket buffer writes (TheSuperHackers#2304)
  • bugfix(network): Increase message buffer and max packet sizes to reduce connection issues (TheSuperHackers#2277)
  • bugfix: Remove superfluous CD checks and related code (TheSuperHackers#2261)
  • refactor(netpacket): Simplify initialization of net packet field types (TheSuperHackers#2288)
  • refactor(netpacket): Streamline order of net packet fields (TheSuperHackers#2288)
  • fix(draw): Recover tread debris effects for W3DTankTruckDraw (TheSuperHackers#2251)
  • refactor(draw): Rename emitters functions in W3DTankDraw, W3DTankTruckDraw, W3DTruckDraw (TheSuperHackers#2251)
  • bugfix(worldbuilder): Fix script condition selection when editing newly created condition (TheSuperHackers#2289)
  • bugfix(view): Recalculate camera area constraints when toggling Control Bar or changing Pitch, FOV (TheSuperHackers#2291)
  • chore(gui): Implement function GadgetTextEntrySetMaxLen() (TheSuperHackers#2290)
  • bugfix(contain): Prevent undefined behaviour when a dead unit enters a container (TheSuperHackers#2258)
  • bugfix(ocl): Fix uninitialized variable in ObjectCreationList to avoid mismatches (TheSuperHackers#2096)
  • bugfix(projectile): Fix out-of-bounds access in DumbProjectile which causes mismatch with very high speed weapons at small hit distances (TheSuperHackers#2087)
  • bugfix(pathfinder): Fix uninitialized variable in Pathfinder::classifyFence() and possible source of mismatches in Retail-compatible builds (TheSuperHackers#1748)
  • fix(netpacket): Protect text length value from overflowing in NetPacketChatCommand, NetPacketDisconnectChatCommand (TheSuperHackers#2284)
  • fix(netcommandmsg): Fix new/delete mismatch in NetWrapperCommandMsg (TheSuperHackers#2287)

weekly-2026-02-13

13 Feb 09:40

Choose a tag to compare

Changelog

weekly-2026-02-06

06 Feb 09:39
7ce6eeb

Choose a tag to compare

Changelog

  • feat(lanapi): Add LANAPI function to find LAN game with host IP address (TheSuperHackers#2249)
  • fix(update): Extend the height of the USA Particle Cannon laser beam for enormous camera heights (TheSuperHackers#2220)
  • tweak(pathfinder): Add audio event and message to announce pathfinding failover (TheSuperHackers#2242)
  • refactor(audio): Replace AudioManager's loseFocus/regainFocus with reason-based mute/unmute functions (TheSuperHackers#2236)
  • fix(update): Fix value initialization of ProjectileStreamUpdate::m_projectileIDs (TheSuperHackers#2248)
  • fix(draw): Replace ParticleSystem pointers with ParticleSystemID for safe particle lookups in W3DTrankDraw, W3DTankTruckDraw, W3DTruckDraw (TheSuperHackers#2235)
  • refactor(draw): Simplify particle effects code in W3DTankDraw, W3DTankTruckDraw, W3DTruckDraw (TheSuperHackers#2235)
  • feat(version): Add functions to get Git short hash string (TheSuperHackers#2243)
  • refactor(lanapi): Make LANMessage accessible in LANAPI (TheSuperHackers#2241)
  • fix(draw): Fix illogical dirt effect update code in W3DTruckDraw::doDrawModule(), W3DTankTruckDraw::doDrawModule() (TheSuperHackers#2234)
  • refactor(view): Simplify Clip Planes related code in W3DView::setCameraTransform() (TheSuperHackers#2232)
  • refactor(view): Simplify position code in W3DView::buildCameraTransform() (TheSuperHackers#2232)
  • refactor(view): Simplify Real Zoom Cam related code (TheSuperHackers#2232)
  • refactor(view): Consolidate duplicate terrain render update logic into new function W3DView::updateTerrain() (TheSuperHackers#2232)
  • refactor(view): Simplify zoom adjustment code in W3DView::update() (TheSuperHackers#2232)
  • refactor(view): Split View::setAngleAndPitchToDefault into 2 separate functions (TheSuperHackers#2232)
  • refactor(view): Improve functions, variables, comments in View, W3DView (TheSuperHackers#2232)
  • refactor(view): Remove unused functions in View class (TheSuperHackers#2232)
  • docs: Fix spelling errors in Core, GameEngineDevice, Libraries, Tools comments (2) (TheSuperHackers#2147)
  • docs: Fix spelling errors in GeneralsMD/Code/GameEngine comments (2) (TheSuperHackers#2146)
  • docs: Fix spelling errors in Generals/Code/GameEngine comments (2) (TheSuperHackers#2145)
  • perf(particlesys): Optimize angleBetween() in Particle System (TheSuperHackers#2218)
  • perf(particlesys): Reduce cost of ParticleSystemManager::findParticleSystem() by 80% (TheSuperHackers#2217)
  • fix(shadow): Fix crash by initializing debris shadow name to an empty string (TheSuperHackers#2221)
  • bugfix(gui): Fix game window animation movements to scale with display resolution (TheSuperHackers#2210)
  • bugfix(aigroup): GLA Battle Bus can now respond to attack commands while in bunkered form (TheSuperHackers#2213)
  • fix(display): Polish the camera debug text in W3DDisplay::gatherDebugStats() (TheSuperHackers#2230)
  • fix(radar): Always keep Radar View Box in sync with the actual Camera View (TheSuperHackers#2229)
  • refactor(basetype): Implement new functions Region3D::setFromPointsNoZ, Region3D::setFromPoints (TheSuperHackers#2228)
  • fix(camera): Apply misc code type and comment fixes (TheSuperHackers#2227)
  • unify(w3ddraw): Move W3D Draw files to Core (TheSuperHackers#2225)
  • unify(w3ddraw): Merge W3DModelDraw, W3DDependencyModelDraw code (TheSuperHackers#2225)
  • bugfix(pathfinder): Fix some pinched cells being changed to impassable cells in internal_classifyObjectFootprint() (TheSuperHackers#2222)
  • build(debug): Add CMake option RTS_DEBUG_CHEATS to enable debug cheats in release builds (TheSuperHackers#1842)
  • tweak(jetaiupdate): Defer offensive commands for parked jets without ammo (TheSuperHackers#2174)
  • fix(radar): Fix Radar pixel color format for non A8R8B8G8 surfaces (TheSuperHackers#2170)
  • unify(particlesys): Move ParticleSys and ParticleEditor files to Core (TheSuperHackers#2212)
  • refactor(view): Fix variable names in View::getScreenCornerWorldPointsAtZ() (TheSuperHackers#2201)
  • unify(particlesys): Merge minor refactors in ParticleSystem (TheSuperHackers#2153)
  • unify(particlesys): Merge changes to math for aligning particle Z rotation with emitter direction from Zero Hour (TheSuperHackers#2153)
  • unify(particlesys): Merge optimization for wind motion particle update when disabled from Zero Hour (TheSuperHackers#2153)
  • unify(particlesys): Merge fix for erroneous particle visibility thresholds in Particle::isInvisible from Generals (TheSuperHackers#2153)
  • unify(particlesys): Merge optimization of alpha particle update from Zero Hour (TheSuperHackers#2153)
  • unify(particlesys): Merge addition of SMUDGE particle type from Zero Hour (TheSuperHackers#2153)
  • unify(particlesys): Compile out superfluous X and Y particle angles in Generals (TheSuperHackers#2153)
  • unify(particlesys): Merge addition of ParticleSystem::setSkipParentXfrm from Zero Hour (TheSuperHackers#2153)
  • unity(particlesys): Merge removal of Drawable Particle Attachments from Zero Hour (TheSuperHackers#2153)
  • bugfix(mouse): Make Cursor Capture opt-in to prevent capture in GUIEdit (TheSuperHackers#2187)
  • bugfix(ghostobject): Add Ghost Objects of the local player to the scene correctly after loading a savegame (TheSuperHackers#2186)
  • fix(basetype): Add min/max template functions to BaseType.h (TheSuperHackers#2183)
  • fix(activebody): Subdual damage can no longer go negative (TheSuperHackers#2184)
  • bugfix(actionmanager): Allow immediate resumed construction of buildings if the existing builder dies (TheSuperHackers#1872)
  • bugfix(dozeraiupdate): Builders now resume their task after having been disabled (TheSuperHackers#1870)
  • fix(network): Fix slightly unstable latency calculation in FrameMetrics::processLatencyResponse() (TheSuperHackers#2200)
  • bugfix(network): Revert changes to ConnectionManager::getMaximumLatency() to avoid a higher latency runahead than required (TheSuperHackers#2199)
  • unify(common): Move some common system files to Core (TheSuperHackers#2185)
  • unify(lib): Move BaseType.h, trig.h to Core (TheSuperHackers#2185)
  • unify(common): Merge Registry code (TheSuperHackers#2193)
  • unify(common): Merge CriticalSection, ScopedMutex code from Generals (TheSuperHackers#2194)
  • unify(common): Merge PerfTimer, StackDump code from Zero Hour (TheSuperHackers#2195)
  • unify(common): Merge TerrainTypes from Zero Hour (TheSuperHackers#2196)

weekly-2026-01-30

30 Jan 09:35
2c26a90

Choose a tag to compare

Changelog

weekly-2026-01-23

23 Jan 09:27
15144de

Choose a tag to compare

Changelog

  • fix(optionsmenu): Change incorrect OR/AND precedence of an unused condition in the OptionsMenu (TheSuperHackers#2164)
  • bugfix(aiupdate): Chinooks and Helixes now correctly wait for their passengers to disembark (TheSuperHackers#1792)
  • bugfix(pathfinder): Fix late game unit lockups and erroneous impassable terrain (TheSuperHackers#2140)
  • refactor(pathfinder): Move obstacle handling functions from PathfindCell header to the cpp (TheSuperHackers#2140)
  • unify(damage): Merge DamageTypeFlags from Zero Hour (TheSuperHackers#2141)
  • build(cmake): Dial back BINK upgrade to get the CMake INSTALL target to work again (TheSuperHackers#2167)
  • refactor(bitflags): Simplify and improve setup for DAMAGE_TYPE_FLAGS_ALL, DISABLEDMASK_ALL, KINDOFMASK_FS (TheSuperHackers#2159)
  • feat(cmake): Add debug symbol stripping for MinGW Release builds (TheSuperHackers#2067)
  • fix(debug): Simplify unconditional DEBUG_ASSERTCRASH to DEBUG_CRASH (TheSuperHackers#2067)
  • fix(casts): Add explicit void* casts for function pointers (TheSuperHackers#2067)
  • fix(compatibility): Add compiler guards and GCC inline assembly for StackDump (TheSuperHackers#2067)
  • fix(calling-convention): Standardize calling conventions and variadic macros (TheSuperHackers#2067)
  • fix(linkage): Fix static/extern linkage mismatches for MinGW (TheSuperHackers#2067)
  • fix(headers): Add missing forward declarations for MinGW (TheSuperHackers#2067)
  • fix(core): Add MinGW-w64 compatibility fixes to Core libraries (TheSuperHackers#2067)
  • fix(cmake): Fix CMake dependencies and library linking for MinGW (TheSuperHackers#2067)
  • fix(precompiled): Add ATL compatibility to precompiled headers (TheSuperHackers#2067)
  • build(cmake): Add MinGW CMake presets for i686 (TheSuperHackers#2067)
  • build(cmake): Configure MinGW-specific compiler and linker settings (TheSuperHackers#2067)
  • build(deps): Update external dependencies for MinGW-w64 support (TheSuperHackers#2067)
  • build(cmake): Add ReactOS COM support utilities (comsupp) (TheSuperHackers#2067)
  • build(cmake): Add ReactOS ATL and PSEH compatibility layer (TheSuperHackers#2067)
  • build(cmake): Add widl integration for COM interface generation (TheSuperHackers#2067)
  • build(cmake): Add MinGW-w64 toolchain and base configuration (TheSuperHackers#2067)
  • fix(tunnel): Fix undefined behavior in TunnelTracker::onTunnelDestroyed() and incomplete asset transfer in Team::setControllingPlayer() (TheSuperHackers#1958)
  • perf(radar): Reduce cost of W3DRadar::renderObjectList (by 80%), W3DRadar::buildTerrainTexture (by 25%) and W3DRadar::clearShroud (TheSuperHackers#2138)
  • refactor(math): Implement Matrix4x4::Inverse, Matrix3D::Get_Inverse and replace unsafe Matrix4x4 to D3DMATRIX casts with conversion functions that apply the required transpose (TheSuperHackers#2052)
  • fix: Fix spelling errors in code words (TheSuperHackers#2149)
  • fix(debug): Fix spelling errors in DEBUG macro strings (TheSuperHackers#2148)
  • bugfix(wbview3d): Fix crash on window resize in Generals World Builder (TheSuperHackers#2151)
  • bugfix(object): Preserve unit behaviour when transferring assets to allies (TheSuperHackers#1885)
  • bugfix(ai): Fix crash when AI player attempts to build a supply center with an invalid name (TheSuperHackers#2095)
  • bugfix(heightmap): Revert optimization for m_vertexBufferTiles in HeightMapRenderObjClass because it does not work properly (TheSuperHackers#2135)
  • bugfix(ghostobject): Readd null check for 3DScene in W3DRenderObjectSnapshot::addToScene to prevent crash in headless replay playback (TheSuperHackers#2133)
  • bugfix(logic): Decouple scripted audio events from CRC computation (TheSuperHackers#2075)
  • feat(build): Add new docker build and game install scripts for Linux (TheSuperHackers#2085)
  • bugfix(script): Restore retail compatibility for sequential scripts in ScriptEngine (TheSuperHackers#2129)
  • bugfix(audio): Restore retail compatibility after optimization change in AudioManager::addAudioEvent (TheSuperHackers#2132)
  • ci: Add workflow to trigger build from any commit for replay mismatch testing (TheSuperHackers#2114)
  • docs: Fix spelling errors in GeneralsMD/Code/GameEngine/Source/GameClient and 52EC Common comments (TheSuperHackers#2122)
  • docs: Fix spelling errors in GeneralsMD/Code/GameEngine/Source/GameLogic comments (TheSuperHackers#2121)
  • docs: Fix spelling errors in Generals/Code/GameEngine/Source comments (TheSuperHackers#2118)
  • docs: Fix spelling errors in GeneralsMD/Code/GameEngine/Include comments (TheSuperHackers#2123)
  • docs: Fix spelling errors in Generals/Code/GameEngine/Include comments (TheSuperHackers#2119)
  • docs: Fix spelling errors in GeneralsMD Libraries, Tools, GameEngineDevice comments (TheSuperHackers#2124)
  • docs: Fix spelling errors in Generals Libraries, Tools, GameEngineDevice comments (TheSuperHackers#2120)
  • docs: Fix spelling errors in Core/Tools and Core/GameEngine comments (TheSuperHackers#2117)
  • docs: Fix spelling errors in Core/Libraries comments (TheSuperHackers#2116)
  • fix: Rename misspelled identifiers (TheSuperHackers#2109)
  • bugfix: Fix spelling errors in debug/diagnostic strings (TheSuperHackers#2108)
  • bugfix(dx8caps): Resolve greyscale texture rendering issues in VMWare environments (TheSuperHackers#2128)
  • bugfix(buildassistant): Restore retail compatibility after build assistant shroud logic change (TheSuperHackers#2131)
  • bugfix(actionmanager): Restore retail compatibility after construction cursor change in ActionManager (TheSuperHackers#2125)
  • perf(radar): Reduce cost of radar pixel draw in PartitionManager::refreshShroudForLocalPlayer by 96% (TheSuperHackers#2072)
  • refactor(ww3dformat): Merge function PixelSize into Get_Bytes_Per_Pixel (TheSuperHackers#2072)
  • build(cmake): Expose source files of interface libraries core_utility, corei/gi/zi_libraries_include in Visual Studio solution (TheSuperHackers#2092)
  • refactor(cmake): Move core_config into corei_always for simplification (TheSuperHackers#2091)

weekly-2026-01-16

16 Jan 09:24
1a19a5b
7CE6

Choose a tag to compare

Changelog

  • refactor(gamelogic): Rearrange local variables in GameLogic::startNewGame() (TheSuperHackers#2115)
  • perf(heightmap): Optimize data locality for m_vertexBufferTiles and m_vertexBufferBackup in HeightMapRenderObjClass (TheSuperHackers#2104)
  • refactor(heightmap): Simplify functions getXWithOrigin(), getYWithOrigin() of HeightMapRenderObjClass (TheSuperHackers#2103)
  • perf(heightmap): Optimize repeated calls to getXWithOrigin, getYWithOrigin in HeightMapRenderObjClass::updateVB (TheSuperHackers#2102)
  • bugfix(scriptengine): Fix script dialog text spelling mistakes and errors in ScriptEngine (TheSuperHackers#2093)
  • refactor: Modernize NULL to nullptr (TheSuperHackers#1938)
  • build(cmake): Move most CppMacros.h includes into precompiled headers and make them available in all build targets (TheSuperHackers#2090)
  • refactor(heightmap): Clarify magic numbers related to VERTEX_BUFFER_TILE_LENGTH (TheSuperHackers#2079)
  • fix(heightmap): Fix CENTER_LIMIT condition in HeightMapRenderObjClass::updateCenter (TheSuperHackers#2078)
  • perf(heightmap): Reduce cost of min height loop in HeightMapRenderObjClass::updateCenter by 93% (TheSuperHackers#2077)
  • bugfix(render2d): Fix possible greyscale image rendering issues on hardware without DOT3 support (TheSuperHackers#2080)
  • bugfix(actionmanager): Do not show false resume construction cursor for allied scaffolds (TheSuperHackers#2068)
0