Fix for Issue 162.

This commit is contained in:
Mikko Mononen 2011-02-09 18:52:25 +00:00
parent 496ee57897
commit 1080b6c249

View File

@ -206,7 +206,8 @@ dtStatus dtNavMesh::init(const dtNavMeshParams* params)
// Init ID generator values.
m_tileBits = dtIlog2(dtNextPow2((unsigned int)params->maxTiles));
m_polyBits = dtIlog2(dtNextPow2((unsigned int)params->maxPolys));
m_saltBits = 32 - m_tileBits - m_polyBits;
// Only allow 31 salt bits, since the salt mask is calculated using 32bit uint and it will overflow.
m_saltBits = dtMin((unsigned int)31, 32 - m_tileBits - m_polyBits);
if (m_saltBits < 10)
return DT_FAILURE | DT_INVALID_PARAM;