diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp index 7f951c7f90..aa86abc5f2 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp @@ -705,6 +705,10 @@ void W3DTreeBuffer::loadTreesInVertexAndIndexBuffers(RefRenderObjListIterator *p m_shadow = TheW3DProjectedShadowManager->createDecalShadow(&shadowInfo); } + // TheSuperHackers @bugfix Reset bufferNdx so updateVertexBuffer skips trees absent from this rebuild. + for (Int t = 0; t < m_numTrees; t++) { + m_trees[t].bufferNdx = -1; + } m_anythingChanged = false; Int curTree=0; Int bNdx; @@ -741,17 +745,14 @@ void W3DTreeBuffer::loadTreesInVertexAndIndexBuffers(RefRenderObjListIterator *p for ( ;curTree=0 && m_treeTypes[type].m_mesh!=nullptr, ("Invalid tree type or mesh.")); Int startVertex = m_trees[curTree].firstIndex; curVb = vb+startVertex;