Another set of fixes for recats: osx uses different order of arguments for sort_r
authorSergey Sharybin <sergey.vfx@gmail.com>
Sat, 10 Sep 2011 14:12:15 +0000 (14:12 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Sat, 10 Sep 2011 14:12:15 +0000 (14:12 +0000)
and it's callback.

Also do not use char constants like 'NAVM' which is casting to int.
And added defautl section to switch in KX_NavMeshObject::DrawNavMesh.

extern/recastnavigation/Detour/Include/DetourStatNavMesh.h
extern/recastnavigation/Detour/Include/DetourTileNavMesh.h
extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp
source/blender/editors/util/navmesh_conversion.cpp
source/gameengine/Ketsji/KX_NavMeshObject.cpp

index 71ee4cb0b513f2f6197f38e8454e047a4231d52c..5a3e04a20748c5096828ce305a9b8f962fcf506d 100644 (file)
@@ -42,7 +42,7 @@ struct dtStatPolyDetail
        unsigned short ntris;   // Number of triangles.
 };
 
-const int DT_STAT_NAVMESH_MAGIC = 'NAVM';
+const int DT_STAT_NAVMESH_MAGIC = (('N'<<24) | ('A'<<16) | ('V'<<8) | 'M');
 const int DT_STAT_NAVMESH_VERSION = 3;
 
 struct dtStatBVNode
index d615b1748f05f38cf9dcbec4ac0197594cf393ad..305c61e5eb569e03246e08e7241bb092e8beacee 100644 (file)
@@ -36,7 +36,7 @@ static const int DT_TILE_VERTS_PER_POLYGON = 6;
 static const int DT_MAX_TILES = 1 << DT_TILE_REF_TILE_BITS;
 static const int DT_MAX_POLYGONS = 1 << DT_TILE_REF_POLY_BITS;
 
-static const int DT_TILE_NAVMESH_MAGIC = 'NAVT';
+static const int DT_TILE_NAVMESH_MAGIC = (('N'<<24) | ('A'<<16) | ('V'<<8) | 'M');
 static const int DT_TILE_NAVMESH_VERSION = 2;
 
 // Structure holding the navigation polygon data.
index b43346c53e2c06a694a781de8adf729c97e63a46..8fc3fa833f9f12335af35259ff6253f5085907cc 100644 (file)
@@ -97,6 +97,8 @@ static int circumCircle(const float xp, const float yp,
 
 #if defined(_MSC_VER)
 static int ptcmp(void* up, const void *v1, const void *v2)
+#elif defined(__APPLE__)
+static int ptcmp(void* up, const void *v1, const void *v2)
 #else
 static int ptcmp(const void *v1, const void *v2, void* up)
 #endif
@@ -122,6 +124,8 @@ static void delaunay(const int nv, float *verts, rcIntArray& idx, rcIntArray& tr
                idx[i] = i;
 #if defined(_MSC_VER)
        qsort_s(&idx[0], idx.size(), sizeof(int), ptcmp, verts);
+#elif defined(__APPLE__)
+       qsort_r(&idx[0], idx.size(), sizeof(int), verts, ptcmp);
 #else
        qsort_r(&idx[0], idx.size(), sizeof(int), ptcmp, verts);
 #endif
index aebd9624bc751813040b31388932b728c8804c9c..4d89f78bdf5401f0e74a18badca588f5d9aae14d 100644 (file)
@@ -280,6 +280,8 @@ struct SortContext
 };
 #if defined(_MSC_VER)
 static int compareByData(void* data, const void * a, const void * b)
+#elif defined(__APPLE__)
+static int compareByData(void* data, const void * a, const void * b)
 #else
 static int compareByData(const void * a, const void * b, void* data)
 #endif
@@ -312,6 +314,8 @@ bool buildNavMeshData(const int nverts, const float* verts,
        context.trisToFacesMap = trisToFacesMap;
 #if defined(_MSC_VER)
        qsort_s(trisMapping, ntris, sizeof(int), compareByData, &context);
+#elif defined(__APPLE__)
+       qsort_r(trisMapping, ntris, sizeof(int), &context, compareByData);
 #else
        qsort_r(trisMapping, ntris, sizeof(int), compareByData, &context);
 #endif
index 9fd87b03d296e7ec7c9fe84137ed441fd0a5a1ad..26990f6e82bbda14692185378758890b721eb888 100644 (file)
@@ -520,6 +520,9 @@ void KX_NavMeshObject::DrawNavMesh(NavMeshRenderMode renderMode)
                        }
                }
                break;
+       default:
+               /* pass */
+               break;
        }
 }