From 0128218254df07f804b15088036a1e7ef4938664 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 10 Sep 2011 03:07:26 +0000 Subject: recast and detour patch now builds again with GCC - rearrange structs to work for 64bit - define all vars before goto's - ifdefs for qsort_r/qsort_s - dont cast pointers to int only for NULL checks - dont printf STR_String directly, get the char pointer from it also minor change to gpu py module, no need to pass empty tuple to PyObject_CallObject, can just be NULL --- source/blender/editors/util/navmesh_conversion.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender/editors/util') diff --git a/source/blender/editors/util/navmesh_conversion.cpp b/source/blender/editors/util/navmesh_conversion.cpp index 2068d17435c..255e3387ab2 100644 --- a/source/blender/editors/util/navmesh_conversion.cpp +++ b/source/blender/editors/util/navmesh_conversion.cpp @@ -146,7 +146,6 @@ bool buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, const float* verts, const unsigned short* dtris, const int* dtrisToPolysMap) { - bool res = false; int capacity = vertsPerPoly; unsigned short* newPoly = new unsigned short[capacity]; memset(newPoly, 0xff, sizeof(unsigned short)*capacity); @@ -268,7 +267,6 @@ bool buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, } } } - res = true; returnLabel: delete newPoly; @@ -280,8 +278,13 @@ struct SortContext const int* recastData; const int* trisToFacesMap; }; -static int compareByData(void* data, const void * a, const void * b){ - SortContext* context = (SortContext*)data; +#if defined(_MSC_VER) +static int compareByData(const void* data, void * a, void * b) +#else +static int compareByData(const void * a, const void * b, void* data) +#endif +{ + const SortContext* context = (const SortContext*)data; return ( context->recastData[context->trisToFacesMap[*(int*)a]] - context->recastData[context->trisToFacesMap[*(int*)b]] ); } @@ -307,8 +310,11 @@ bool buildNavMeshData(const int nverts, const float* verts, SortContext context; context.recastData = recastData; context.trisToFacesMap = trisToFacesMap; +#if defined(_MSC_VER) qsort_s(trisMapping, ntris, sizeof(int), compareByData, &context); - +#else + qsort_r(trisMapping, ntris, sizeof(int), compareByData, &context); +#endif //search first valid triangle - triangle of convex polygon int validTriStart = -1; for (int i=0; i< ntris; i++) -- cgit v1.2.3