From 838d0657bdef02b69795db1e940a3878667c217d Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Tue, 15 Mar 2011 07:31:52 +0000 Subject: [PATCH] Temp fix for neighbour rendering. --- RecastDemo/Source/CrowdTool.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/RecastDemo/Source/CrowdTool.cpp b/RecastDemo/Source/CrowdTool.cpp index 08f6963..7d4006f 100644 --- a/RecastDemo/Source/CrowdTool.cpp +++ b/RecastDemo/Source/CrowdTool.cpp @@ -680,10 +680,26 @@ void CrowdTool::handleRender() dd.begin(DU_DRAW_LINES, 2.0f); for (int j = 0; j < ag->nneis; ++j) { - const dtCrowdAgent* nei = m_crowd.getAgent(ag->neis[j].idx); - if (!nei->active) continue; - dd.vertex(pos[0],pos[1]+radius,pos[2], duRGBA(0,192,128,128)); - dd.vertex(nei->npos[0],nei->npos[1]+radius,nei->npos[2], duRGBA(0,192,128,128)); + // Get 'n'th active agent. + // TODO: fix this properly. + int n = ag->neis[j].idx; + const dtCrowdAgent* nei = 0; + for (int i = 0; i < m_crowd.getAgentCount(); ++i) + { + const dtCrowdAgent* ag = m_crowd.getAgent(i); + if (!ag->active) continue; + if (n == 0) + { + nei = m_crowd.getAgent(ag->neis[j].idx); + break; + } + n--; + } + if (nei ) + { + dd.vertex(pos[0],pos[1]+radius,pos[2], duRGBA(0,192,128,128)); + dd.vertex(nei->npos[0],nei->npos[1]+radius,nei->npos[2], duRGBA(0,192,128,128)); + } } dd.end(); }