From 0a6a42321d5811b349d77a64f27dc4aa1dcda8f0 Mon Sep 17 00:00:00 2001 From: wraitii Date: Mon, 16 Jan 2017 10:41:35 +0000 Subject: [PATCH] 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. --- source/simulation2/components/CCmpPathfinder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/simulation2/components/CCmpPathfinder.cpp b/source/simulation2/components/CCmpPathfinder.cpp index cb6008ffbf..b6fe3b9eea 100644 --- a/source/simulation2/components/CCmpPathfinder.cpp +++ b/source/simulation2/components/CCmpPathfinder.cpp @@ -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)); }