Improve cache efficiency of CcmpPathfinder::UpdateGrid substantially. On very large maps, this can be a very substantial improvement (I have measured up to 30ms)

This was SVN commit r19146.
This commit is contained in:
wraitii
2017-01-16 10:41:35 +00:00
parent ad76352cef
commit 0a6a42321d
@@ -508,8 +508,8 @@ void CCmpPathfinder::UpdateGrid()
ENSURE(m_Grid->m_W == m_ObstructionsDirty.dirtinessGrid.m_W && m_Grid->m_H == m_ObstructionsDirty.dirtinessGrid.m_H);
ENSURE(m_Grid->m_W == m_TerrainOnlyGrid->m_W && m_Grid->m_H == m_TerrainOnlyGrid->m_H);
for (u16 i = 0; i < m_ObstructionsDirty.dirtinessGrid.m_W; ++i)
for (u16 j = 0; j < m_ObstructionsDirty.dirtinessGrid.m_H; ++j)
for (u16 j = 0; j < m_ObstructionsDirty.dirtinessGrid.m_H; ++j)
for (u16 i = 0; i < m_ObstructionsDirty.dirtinessGrid.m_W; ++i)
if (m_ObstructionsDirty.dirtinessGrid.get(i, j) == 1)
m_Grid->set(i, j, m_TerrainOnlyGrid->get(i, j));
}