From 3bd2141a4bb03d3f2082b1524a6e5f372aacd1ff Mon Sep 17 00:00:00 2001 From: Bobby Battista Date: Fri, 4 Sep 2026 16:04:57 -0500 Subject: [PATCH] perf(gamelogic): Bound terrain deformation scans --- .../GameEngine/Source/GameLogic/Map/TerrainLogic.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/GeneralsMD/Code/GameEngine/Source/GameLogic/Map/TerrainLogic.cpp b/GeneralsMD/Code/GameEngine/Source/GameLogic/Map/TerrainLogic.cpp index 5a3d16f86ae..32598994ffc 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameLogic/Map/TerrainLogic.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameLogic/Map/TerrainLogic.cpp @@ -2706,7 +2706,7 @@ void TerrainLogic::flattenTerrain(Object *obj) Real totalHeight = 0; Int numSamples = 0; for (i=iMin.x; i<=iMax.x; i++) { - for (j=0; j<=iMax.y; j++) { + for (j=MAX(0, iMin.y); j<=iMax.y; ++j) { Vector3 testPt(i*MAP_XY_FACTOR, j*MAP_XY_FACTOR, 0); Bool match = false; unsigned char flags; @@ -2732,7 +2732,7 @@ void TerrainLogic::flattenTerrain(Object *obj) if (rawDataHeight>centerHeight) rawDataHeight = centerHeight; for (i=iMin.x; i<=iMax.x; i++) { - for (j=0; j<=iMax.y; j++) { + for (j=MAX(0, iMin.y); j<=iMax.y; ++j) { Vector3 testPt(i*MAP_XY_FACTOR, j*MAP_XY_FACTOR, 0); Bool match = false; unsigned char flags; @@ -2797,7 +2797,7 @@ void TerrainLogic::flattenTerrain(Object *obj) Real totalHeight = 0; Int numSamples = 0; for (i=iMin.x; i<=iMax.x; i++) { - for (j=0; j<=iMax.y; j++) { + for (j=MAX(0, iMin.y); j<=iMax.y; ++j) { Vector3 testPt(i*MAP_XY_FACTOR, j*MAP_XY_FACTOR, 0); Bool match = false; Real dx = testPt.X - pos->x; @@ -2815,7 +2815,7 @@ void TerrainLogic::flattenTerrain(Object *obj) Real avgHeight = totalHeight/numSamples; Int rawDataHeight = REAL_TO_INT_FLOOR(0.5f + avgHeight/MAP_HEIGHT_SCALE); for (i=iMin.x; i<=iMax.x; i++) { - for (j=0; j<=iMax.y; j++) { + for (j=MAX(0, iMin.y); j<=iMax.y; ++j) { Vector3 testPt(i*MAP_XY_FACTOR, j*MAP_XY_FACTOR, 0); Bool match = false; Real dx = testPt.X - pos->x; @@ -2892,7 +2892,7 @@ void TerrainLogic::createCraterInTerrain(Object *obj) for (Int i = iMin.x; i <= iMax.x; i++ ) { - for ( Int j=0; j <= iMax.y; j++ ) + for ( Int j=MAX( 0, iMin.y ); j <= iMax.y; ++j ) { deltaX = ( i * MAP_XY_FACTOR ) - pos->x; deltaY = ( j * MAP_XY_FACTOR ) - pos->y;