Merge pull request #82 from Kromster80/loopFix

Loop fix and MAX_SEARCH
This commit is contained in:
Mikko Mononen 2015-02-19 14:23:07 +02:00
commit acbbe507fd
2 changed files with 5 additions and 4 deletions

View File

@ -704,7 +704,7 @@ dtStatus dtNavMeshQuery::getPolyHeight(dtPolyRef ref, const float* pos, float* h
/// @p nearestRef before using @p nearestPt. /// @p nearestRef before using @p nearestPt.
/// ///
/// @warning This function is not suitable for large area searches. If the search /// @warning This function is not suitable for large area searches. If the search
/// extents overlaps more than 128 polygons it may return an invalid result. /// extents overlaps more than MAX_SEARCH (128) polygons it may return an invalid result.
/// ///
dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* extents, dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* extents,
const dtQueryFilter* filter, const dtQueryFilter* filter,
@ -715,9 +715,10 @@ dtStatus dtNavMeshQuery::findNearestPoly(const float* center, const float* exten
*nearestRef = 0; *nearestRef = 0;
// Get nearby polygons from proximity grid. // Get nearby polygons from proximity grid.
dtPolyRef polys[128]; const int MAX_SEARCH = 128;
dtPolyRef polys[MAX_SEARCH];
int polyCount = 0; int polyCount = 0;
if (dtStatusFailed(queryPolygons(center, extents, filter, polys, &polyCount, 128))) if (dtStatusFailed(queryPolygons(center, extents, filter, polys, &polyCount, MAX_SEARCH)))
return DT_FAILURE | DT_INVALID_PARAM; return DT_FAILURE | DT_INVALID_PARAM;
// Find nearest polygon amongst the nearby polygons. // Find nearest polygon amongst the nearby polygons.

View File

@ -747,7 +747,7 @@ static bool removeVertex(rcContext* ctx, rcPolyMesh& mesh, const unsigned short
} }
// Remove vertex. // Remove vertex.
for (int i = (int)rem; i < mesh.nverts; ++i) for (int i = (int)rem; i < mesh.nverts - 1; ++i)
{ {
mesh.verts[i*3+0] = mesh.verts[(i+1)*3+0]; mesh.verts[i*3+0] = mesh.verts[(i+1)*3+0];
mesh.verts[i*3+1] = mesh.verts[(i+1)*3+1]; mesh.verts[i*3+1] = mesh.verts[(i+1)*3+1];