Another set of fixes for recats: osx uses different order of arguments for sort_r
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.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -520,6 +520,9 @@ void KX_NavMeshObject::DrawNavMesh(NavMeshRenderMode renderMode)
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* pass */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user