diff --git a/DebugUtils/Include/DebugDraw.h b/DebugUtils/Include/DebugDraw.h index a9fde15..bbc3585 100644 --- a/DebugUtils/Include/DebugDraw.h +++ b/DebugUtils/Include/DebugDraw.h @@ -55,9 +55,9 @@ struct duDebugDraw virtual void end() = 0; }; -inline unsigned int duRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +inline unsigned int duRGBA(int r, int g, int b, int a) { - return (r) | (g << 8) | (b << 16) | (a << 24); + return ((unsigned int)r) | ((unsigned int)g << 8) | ((unsigned int)b << 16) | ((unsigned int)a << 24); } inline unsigned int duRGBAf(float fr, float fg, float fb, float fa) diff --git a/DebugUtils/Source/DetourDebugDraw.cpp b/DebugUtils/Source/DetourDebugDraw.cpp index 0dd1ffb..433af27 100755 --- a/DebugUtils/Source/DetourDebugDraw.cpp +++ b/DebugUtils/Source/DetourDebugDraw.cpp @@ -327,7 +327,7 @@ void duDebugDrawNavMesh(duDebugDraw* dd, const dtNavMesh* mesh, unsigned char fl } -static void drawMeshTileBVTree(duDebugDraw* dd, const dtNavMesh* mesh, const dtMeshTile* tile) +static void drawMeshTileBVTree(duDebugDraw* dd, const dtMeshTile* tile) { // Draw BV nodes. const float cs = 1.0f / tile->header->bvQuantFactor; @@ -437,7 +437,7 @@ void duDebugDrawNavMeshBVTree(duDebugDraw* dd, const dtNavMesh* mesh) { const dtMeshTile* tile = mesh->getTile(i); if (!tile->header) continue; - drawMeshTileBVTree(dd, mesh, tile); + drawMeshTileBVTree(dd, tile); } } diff --git a/DebugUtils/Source/RecastDebugDraw.cpp b/DebugUtils/Source/RecastDebugDraw.cpp index 198ff56..22c8f66 100644 --- a/DebugUtils/Source/RecastDebugDraw.cpp +++ b/DebugUtils/Source/RecastDebugDraw.cpp @@ -22,7 +22,7 @@ #include "RecastDebugDraw.h" #include "Recast.h" -void duDebugDrawTriMesh(duDebugDraw* dd, const float* verts, int nverts, +void duDebugDrawTriMesh(duDebugDraw* dd, const float* verts, int /*nverts*/, const int* tris, const float* normals, int ntris, const unsigned char* flags) { @@ -43,7 +43,7 @@ void duDebugDrawTriMesh(duDebugDraw* dd, const float* verts, int nverts, dd->end(); } -void duDebugDrawTriMeshSlope(duDebugDraw* dd, const float* verts, int nverts, +void duDebugDrawTriMeshSlope(duDebugDraw* dd, const float* verts, int /*nverts*/, const int* tris, const float* normals, int ntris, const float walkableSlopeAngle) { diff --git a/Detour/Source/DetourNavMesh.cpp b/Detour/Source/DetourNavMesh.cpp index 46bf9eb..0a854ef 100644 --- a/Detour/Source/DetourNavMesh.cpp +++ b/Detour/Source/DetourNavMesh.cpp @@ -401,12 +401,12 @@ void dtNavMesh::connectExtOffMeshLinks(dtMeshTile* tile, dtMeshTile* target, int unsigned int idx = allocLink(tile); if (idx != DT_NULL_LINK) { - unsigned short landPolyIdx = decodePolyIdPoly(ref); + const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref); dtPoly* landPoly = &tile->polys[landPolyIdx]; dtLink* link = &tile->links[idx]; link->ref = getTilePolyRefBase(target) | (unsigned int)(targetCon->poly); link->edge = 0; - link->side = side; + link->side = (unsigned char)side; link->bmin = link->bmax = 0; // Add to linked list. link->next = landPoly->firstLink; @@ -509,7 +509,7 @@ void dtNavMesh::connectIntOffMeshLinks(dtMeshTile* tile) unsigned int idx = allocLink(tile); if (idx != DT_NULL_LINK) { - unsigned short landPolyIdx = decodePolyIdPoly(ref); + const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref); dtPoly* landPoly = &tile->polys[landPolyIdx]; dtLink* link = &tile->links[idx]; link->ref = base | (unsigned int)(con->poly); diff --git a/Detour/Source/DetourNavMeshBuilder.cpp b/Detour/Source/DetourNavMeshBuilder.cpp index 2b68c6c..3a9a7a5 100644 --- a/Detour/Source/DetourNavMeshBuilder.cpp +++ b/Detour/Source/DetourNavMeshBuilder.cpp @@ -67,7 +67,7 @@ static int compareItemZ(const void* va, const void* vb) return 0; } -static void calcExtends(BVItem* items, int nitems, int imin, int imax, +static void calcExtends(BVItem* items, const int /*nitems*/, const int imin, const int imax, unsigned short* bmin, unsigned short* bmax) { bmin[0] = items[imin].bmin[0]; @@ -166,10 +166,10 @@ static void subdivide(BVItem* items, int nitems, int imin, int imax, int& curNod } } -static int createBVTree(const unsigned short* verts, const int nverts, +static int createBVTree(const unsigned short* verts, const int /*nverts*/, const unsigned short* polys, const int npolys, const int nvp, - float cs, float ch, - int nnodes, dtBVNode* nodes) + const float cs, const float ch, + const int /*nnodes*/, dtBVNode* nodes) { // Build tree BVItem* items = new BVItem[npolys]; @@ -490,14 +490,14 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, const int ndv = params->detailMeshes[i*4+1]; const int nv = navPolys[i].vertCount; dtl.vertBase = vbase; - dtl.vertCount = ndv-nv; + dtl.vertCount = (unsigned short)(ndv-nv); dtl.triBase = params->detailMeshes[i*4+2]; dtl.triCount = params->detailMeshes[i*4+3]; // Copy vertices except the first 'nv' verts which are equal to nav poly verts. if (ndv-nv) { memcpy(&navDVerts[vbase*3], ¶ms->detailVerts[(vb+nv)*3], sizeof(float)*3*(ndv-nv)); - vbase += ndv-nv; + vbase += (unsigned short)(ndv-nv); } } // Store triangles. @@ -516,7 +516,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, if (offMeshConClass[i*2+0] == 0xff) { dtOffMeshConnection* con = &offMeshCons[n]; - con->poly = offMeshPolyBase + n; + con->poly = (unsigned short)(offMeshPolyBase + n); // Copy connection end-points. const float* endPts = ¶ms->offMeshConVerts[i*2*3]; vcopy(&con->pos[0], &endPts[0]); @@ -576,7 +576,7 @@ inline void swapEndian(float* v) swapByte(x+0, x+3); swapByte(x+1, x+2); } -bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int dataSize) +bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int /*dataSize*/) { dtMeshHeader* header = (dtMeshHeader*)data; @@ -621,7 +621,7 @@ bool dtNavMeshHeaderSwapEndian(unsigned char* data, const int dataSize) return true; } -bool dtNavMeshDataSwapEndian(unsigned char* data, const int dataSize) +bool dtNavMeshDataSwapEndian(unsigned char* data, const int /*dataSize*/) { // Make sure the data is in right format. dtMeshHeader* header = (dtMeshHeader*)data; diff --git a/Recast/Include/Recast.h b/Recast/Include/Recast.h index e55d56b..050a772 100644 --- a/Recast/Include/Recast.h +++ b/Recast/Include/Recast.h @@ -460,8 +460,8 @@ void rcRasterizeTriangle(const float* v0, const float* v1, const float* v2, // nt - (in) triangle count // solid - (in) heighfield where the triangles are rasterized // flagMergeThr - (in) distance in voxel where walkable flag is favored over non-walkable. -void rcRasterizeTriangles(const float* verts, int nv, - const int* tris, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const int nv, + const int* tris, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr = 1); // Rasterizes indexed triangle mesh into heightfield spans. @@ -473,8 +473,8 @@ void rcRasterizeTriangles(const float* verts, int nv, // nt - (in) triangle count // solid - (in) heighfield where the triangles are rasterized // flagMergeThr - (in) distance in voxel where walkable flag is favored over non-walkable. -void rcRasterizeTriangles(const float* verts, int nv, - const unsigned short* tris, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const int nv, + const unsigned short* tris, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr = 1); // Rasterizes the triangles into heightfield spans. @@ -483,7 +483,7 @@ void rcRasterizeTriangles(const float* verts, int nv, // flags - (in) array of triangle flags (uses WALKABLE) // nt - (in) triangle count // solid - (in) heighfield where the triangles are rasterized -void rcRasterizeTriangles(const float* verts, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr = 1); // Marks non-walkable low obstacles as walkable if they are closer than walkableClimb diff --git a/Recast/Source/Recast.cpp b/Recast/Source/Recast.cpp index 8159ec5..f039ed1 100644 --- a/Recast/Source/Recast.cpp +++ b/Recast/Source/Recast.cpp @@ -87,7 +87,7 @@ static void calcTriNormal(const float* v0, const float* v1, const float* v2, flo } void rcMarkWalkableTriangles(const float walkableSlopeAngle, - const float* verts, int nv, + const float* verts, int /*nv*/, const int* tris, int nt, unsigned char* flags) { diff --git a/Recast/Source/RecastContour.cpp b/Recast/Source/RecastContour.cpp index ace6d88..8484e60 100644 --- a/Recast/Source/RecastContour.cpp +++ b/Recast/Source/RecastContour.cpp @@ -183,9 +183,9 @@ static void walkContour(int x, int y, int i, } } -static float distancePtSeg(int x, int y, int z, - int px, int py, int pz, - int qx, int qy, int qz) +static float distancePtSeg(const int x, const int z, + const int px, const int pz, + const int qx, const int qz) { /* float pqx = (float)(qx - px); float pqy = (float)(qy - py); @@ -309,15 +309,13 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma { int ii = (i+1) % (simplified.size()/4); - int ax = simplified[i*4+0]; - int ay = simplified[i*4+1]; - int az = simplified[i*4+2]; - int ai = simplified[i*4+3]; + const int ax = simplified[i*4+0]; + const int az = simplified[i*4+2]; + const int ai = simplified[i*4+3]; - int bx = simplified[ii*4+0]; - int by = simplified[ii*4+1]; - int bz = simplified[ii*4+2]; - int bi = simplified[ii*4+3]; + const int bx = simplified[ii*4+0]; + const int bz = simplified[ii*4+2]; + const int bi = simplified[ii*4+3]; // Find maximum deviation from the segment. float maxd = 0; @@ -346,8 +344,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma { while (ci != endi) { - float d = distancePtSeg(points[ci*4+0], points[ci*4+1]/4, points[ci*4+2], - ax, ay/4, az, bx, by/4, bz); + float d = distancePtSeg(points[ci*4+0], points[ci*4+2], ax, az, bx, bz); if (d > maxd) { maxd = d; @@ -364,7 +361,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma { // Add space for the new point. simplified.resize(simplified.size()+4); - int n = simplified.size()/4; + const int n = simplified.size()/4; for (int j = n-1; j > i; --j) { simplified[j*4+0] = simplified[(j-1)*4+0]; @@ -389,15 +386,15 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma { for (int i = 0; i < simplified.size()/4; ) { - int ii = (i+1) % (simplified.size()/4); + const int ii = (i+1) % (simplified.size()/4); - int ax = simplified[i*4+0]; - int az = simplified[i*4+2]; - int ai = simplified[i*4+3]; + const int ax = simplified[i*4+0]; + const int az = simplified[i*4+2]; + const int ai = simplified[i*4+3]; - int bx = simplified[ii*4+0]; - int bz = simplified[ii*4+2]; - int bi = simplified[ii*4+3]; + const int bx = simplified[ii*4+0]; + const int bz = simplified[ii*4+2]; + const int bi = simplified[ii*4+3]; // Find maximum deviation from the segment. int maxi = -1; @@ -421,7 +418,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float ma { // Add space for the new point. simplified.resize(simplified.size()+4); - int n = simplified.size()/4; + const int n = simplified.size()/4; for (int j = n-1; j > i; --j) { simplified[j*4+0] = simplified[(j-1)*4+0]; diff --git a/Recast/Source/RecastMesh.cpp b/Recast/Source/RecastMesh.cpp index 01a215c..f74e2f6 100644 --- a/Recast/Source/RecastMesh.cpp +++ b/Recast/Source/RecastMesh.cpp @@ -70,7 +70,7 @@ static bool buildMeshAdjacency(unsigned short* polys, const int npolys, edge.polyEdge[1] = 0; // Insert edge nextEdge[edgeCount] = firstEdge[v0]; - firstEdge[v0] = edgeCount; + firstEdge[v0] = (unsigned short)edgeCount; edgeCount++; } } @@ -130,8 +130,8 @@ inline int computeVertexHash(int x, int y, int z) return (int)(n & (VERTEX_BUCKET_COUNT-1)); } -static int addVertex(unsigned short x, unsigned short y, unsigned short z, - unsigned short* verts, int* firstVert, int* nextVert, int& nv) +static unsigned short addVertex(unsigned short x, unsigned short y, unsigned short z, + unsigned short* verts, int* firstVert, int* nextVert, int& nv) { int bucket = computeVertexHash(x, 0, z); int i = firstVert[bucket]; @@ -140,7 +140,7 @@ static int addVertex(unsigned short x, unsigned short y, unsigned short z, { const unsigned short* v = &verts[i*3]; if (v[0] == x && (rcAbs(v[1] - y) <= 2) && v[2] == z) - return i; + return (unsigned short)i; i = nextVert[i]; // next } @@ -153,7 +153,7 @@ static int addVertex(unsigned short x, unsigned short y, unsigned short z, nextVert[i] = firstVert[bucket]; firstVert[bucket] = i; - return i; + return (unsigned short)i; } inline int prev(int i, int n) { return i-1 >= 0 ? i-1 : n-1; } @@ -748,7 +748,7 @@ static int removeVertex(rcPolyMesh& mesh, const unsigned short rem, const int ma // Merge polygons. if (nvp > 3) { - while (true) + for (;;) { // Find best polygons to merge. int bestMergeVal = 0; @@ -996,7 +996,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) // Merge polygons. if (nvp > 3) { - while (true) + for(;;) { // Find best polygons to merge. int bestMergeVal = 0; @@ -1063,7 +1063,7 @@ bool rcBuildPolyMesh(rcContourSet& cset, int nvp, rcPolyMesh& mesh) { if (vflags[i]) { - int res = removeVertex(mesh, i, maxTris); + int res = removeVertex(mesh, (unsigned short)i, maxTris); if (!res) { // Failed to remove vertex diff --git a/Recast/Source/RecastMeshDetail.cpp b/Recast/Source/RecastMeshDetail.cpp index 532470f..06cabd7 100644 --- a/Recast/Source/RecastMeshDetail.cpp +++ b/Recast/Source/RecastMeshDetail.cpp @@ -160,7 +160,7 @@ static float distancePtSeg2d(const float* pt, const float* p, const float* q) return dx*dx + dz*dz; } -static float distToTriMesh(const float* p, const float* verts, int nverts, const int* tris, int ntris) +static float distToTriMesh(const float* p, const float* verts, const int /*nverts*/, const int* tris, const int ntris) { float dmin = FLT_MAX; for (int i = 0; i < ntris; ++i) @@ -194,7 +194,9 @@ static float distToPoly(int nvert, const float* verts, const float* p) } -static unsigned short getHeight(const float fx, const float fy, const float fz, const float cs, const float ics, const float ch, const rcHeightPatch& hp) +static unsigned short getHeight(const float fx, const float fy, const float fz, + const float /*cs*/, const float ics, const float ch, + const rcHeightPatch& hp) { int ix = (int)floorf(fx*ics + 0.01f); int iz = (int)floorf(fz*ics + 0.01f); @@ -1070,9 +1072,9 @@ bool rcBuildPolyMeshDetail(const rcPolyMesh& mesh, const rcCompactHeightfield& c // Store detail submesh. const int ntris = tris.size()/4; - dmesh.meshes[i*4+0] = dmesh.nverts; + dmesh.meshes[i*4+0] = (unsigned short)dmesh.nverts; dmesh.meshes[i*4+1] = (unsigned short)nverts; - dmesh.meshes[i*4+2] = dmesh.ntris; + dmesh.meshes[i*4+2] = (unsigned short)dmesh.ntris; dmesh.meshes[i*4+3] = (unsigned short)ntris; // Store vertices, allocate more memory if necessary. @@ -1189,9 +1191,9 @@ bool rcMergePolyMeshDetails(rcPolyMeshDetail** meshes, const int nmeshes, rcPoly { unsigned short* dst = &mesh.meshes[mesh.nmeshes*4]; unsigned short* src = &dm->meshes[j*4]; - dst[0] = mesh.nverts+src[0]; + dst[0] = (unsigned short)mesh.nverts+src[0]; dst[1] = src[1]; - dst[2] = mesh.ntris+src[2]; + dst[2] = (unsigned short)mesh.ntris+src[2]; dst[3] = src[3]; mesh.nmeshes++; } diff --git a/Recast/Source/RecastRasterization.cpp b/Recast/Source/RecastRasterization.cpp index 94a215e..3f6720f 100644 --- a/Recast/Source/RecastRasterization.cpp +++ b/Recast/Source/RecastRasterization.cpp @@ -284,8 +284,8 @@ void rcRasterizeTriangle(const float* v0, const float* v1, const float* v2, rcGetBuildTimes()->rasterizeTriangles += rcGetDeltaTimeUsec(startTime, endTime); } -void rcRasterizeTriangles(const float* verts, int nv, - const int* tris, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const int /*nv*/, + const int* tris, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr) { rcTimeVal startTime = rcGetPerformanceTimer(); @@ -308,8 +308,8 @@ void rcRasterizeTriangles(const float* verts, int nv, rcGetBuildTimes()->rasterizeTriangles += rcGetDeltaTimeUsec(startTime, endTime); } -void rcRasterizeTriangles(const float* verts, int nv, - const unsigned short* tris, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const int /*nv*/, + const unsigned short* tris, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr) { rcTimeVal startTime = rcGetPerformanceTimer(); @@ -332,7 +332,7 @@ void rcRasterizeTriangles(const float* verts, int nv, rcGetBuildTimes()->rasterizeTriangles += rcGetDeltaTimeUsec(startTime, endTime); } -void rcRasterizeTriangles(const float* verts, const unsigned char* flags, int nt, +void rcRasterizeTriangles(const float* verts, const unsigned char* flags, const int nt, rcHeightfield& solid, const int flagMergeThr) { rcTimeVal startTime = rcGetPerformanceTimer(); diff --git a/Recast/Source/RecastRegion.cpp b/Recast/Source/RecastRegion.cpp index 53a44b5..7e0f2c1 100644 --- a/Recast/Source/RecastRegion.cpp +++ b/Recast/Source/RecastRegion.cpp @@ -27,9 +27,7 @@ #include "RecastTimer.h" -static unsigned short* calculateDistanceField(rcCompactHeightfield& chf, - unsigned short* src, unsigned short* dst, - unsigned short& maxDist) +static void calculateDistanceField(rcCompactHeightfield& chf, unsigned short* src, unsigned short& maxDist) { const int w = chf.width; const int h = chf.height; @@ -180,8 +178,6 @@ static unsigned short* calculateDistanceField(rcCompactHeightfield& chf, for (int i = 0; i < chf.spanCount; ++i) maxDist = rcMax(src[i], maxDist); - return src; - } static unsigned short* boxBlur(rcCompactHeightfield& chf, int thr, @@ -200,14 +196,14 @@ static unsigned short* boxBlur(rcCompactHeightfield& chf, int thr, for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) { const rcCompactSpan& s = chf.spans[i]; - int cd = (int)src[i]; + const unsigned short cd = src[i]; if (cd <= thr) { dst[i] = cd; continue; } - int d = cd; + int d = (int)cd; for (int dir = 0; dir < 4; ++dir) { if (rcGetCon(s, dir) != RC_NOT_CONNECTED) @@ -508,7 +504,7 @@ static bool canMergeWithRegion(const rcRegion& rega, const rcRegion& regb) return true; } -static void addUniqueFloorRegion(rcRegion& reg, unsigned short n) +static void addUniqueFloorRegion(rcRegion& reg, int n) { for (int i = 0; i < reg.floors.size(); ++i) if (reg.floors[i] == n) @@ -920,9 +916,7 @@ bool rcBuildDistanceField(rcCompactHeightfield& chf) rcTimeVal distStartTime = rcGetPerformanceTimer(); - if (calculateDistanceField(chf, src, dst, maxDist) != src) - rcSwap(src, dst); - + calculateDistanceField(chf, src, maxDist); chf.maxDistance = maxDist; rcTimeVal distEndTime = rcGetPerformanceTimer();