diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp index e60510a3c8b..a7ff89d9521 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp @@ -264,7 +264,7 @@ W3DShroudLevel W3DShroud::getShroudLevel(Int x, Int y) { DEBUG_ASSERTCRASH( m_pSrcTexture != nullptr, ("Reading empty shroud")); - if (x < m_numCellsX && y < m_numCellsY) + if (x >= 0 && y >= 0 && x < m_numCellsX && y < m_numCellsY) { UnsignedShort pixel=*(UnsignedShort *)((Byte *)m_srcTextureData + x*2 + y*m_srcTexturePitch); diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp index 8af10e2efe2..8576d11691f 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DShroud.cpp @@ -264,7 +264,7 @@ W3DShroudLevel W3DShroud::getShroudLevel(Int x, Int y) { DEBUG_ASSERTCRASH( m_pSrcTexture != nullptr, ("Reading empty shroud")); - if (x < m_numCellsX && y < m_numCellsY) + if (x >= 0 && y >= 0 && x < m_numCellsX && y < m_numCellsY) { UnsignedShort pixel=*(UnsignedShort *)((Byte *)m_srcTextureData + x*2 + y*m_srcTexturePitch);