From 35f0ba315c127e73e7674e26002c3ef81e23fff0 Mon Sep 17 00:00:00 2001 From: Sebastien Lebreton Date: Fri, 12 Jun 2026 17:05:58 +0200 Subject: [PATCH] fix: Render entire terrain in GeneralsOnline builds to prevent water-plane bleed-through GENERALS_ONLINE_TEMP_FIX_DRAW_ENTIRE_TERRAIN removes the DrawEntireTerrain INI field and leaves m_drawEntireTerrain at its FALSE default. Combined with GeneralsOnline's non-retail extended camera zoom, the partial terrain draw window no longer covers the visible area on large maps, so the global water plane shows through and maps without water appear flooded. Force m_drawEntireTerrain = TRUE under the macro so the full map renders at any zoom. This is visual-only: it does not affect the simulation or the INI CRC, so all players stay consistent/retail-compatible. Regression introduced in 66949422 ("Temp fix for draw entire terrain"). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Code/GameEngine/Source/Common/GlobalData.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/GeneralsMD/Code/GameEngine/Source/Common/GlobalData.cpp b/GeneralsMD/Code/GameEngine/Source/Common/GlobalData.cpp index a03b1f3a4e0..edd6f4bded7 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/GlobalData.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/GlobalData.cpp @@ -832,7 +832,19 @@ GlobalData::GlobalData() m_getHealedAnimationName.clear(); m_specialPowerViewObjectName.clear(); +#if defined(GENERALS_ONLINE_TEMP_FIX_DRAW_ENTIRE_TERRAIN) + // TheSuperHackers/GeneralsOnline @bugfix: Force full-terrain rendering. + // The "DrawEntireTerrain" INI field is intentionally not parsed in GeneralsOnline builds, so it + // stays out of the INI CRC and all players remain retail-compatible/consistent. However, + // GeneralsOnline also enables a non-retail extended camera zoom. With the default partial draw + // window, zooming out on a map larger than that window leaves the rest of the terrain undrawn and + // exposes the global water plane, so the map looks flooded even when it contains no water. + // Forcing the value on restores full-map rendering. This is a client-side visual setting only: + // it does not affect the simulation or the INI CRC. + m_drawEntireTerrain = TRUE; +#else m_drawEntireTerrain = FALSE; +#endif m_maxParticleCount = 0; m_maxFieldParticleCount = 30;