mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Recast: fix dtNavMeshQuery regression
pointers were also nulled during the memset after the move to the dtQueryStruct in commit 9049e61d34cb3f52627b8ca10f1b7da21e147ad9. Created dedicated 'Reset' method.
This commit is contained in:
parent
baa3d8f878
commit
1255629fcf
@ -561,6 +561,27 @@ private:
|
||||
|
||||
struct dtQueryData
|
||||
{
|
||||
void Reset()
|
||||
{
|
||||
status = 0;
|
||||
lastBestNode = nullptr;
|
||||
lastBestNodeCost = 0.0f;
|
||||
startRef = 0; endRef = 0;
|
||||
|
||||
startPos[0] = 0.0f;
|
||||
startPos[1] = 0.0f;
|
||||
startPos[2] = 0.0f;
|
||||
|
||||
endPos[0] = 0.0f;
|
||||
endPos[1] = 0.0f;
|
||||
endPos[2] = 0.0f;
|
||||
|
||||
options = 0;
|
||||
raycastLimitSqr = 0.0f;
|
||||
|
||||
// NOTE: the nodepool/nodequeue pointers should not be reset !!!
|
||||
}
|
||||
|
||||
dtStatus status;
|
||||
struct dtNode* lastBestNode;
|
||||
float lastBestNodeCost;
|
||||
|
@ -1202,7 +1202,7 @@ dtStatus dtNavMeshQuery::initSlicedFindPath(dtPolyRef startRef, dtPolyRef endRef
|
||||
dtAssert(m_query.m_openList);
|
||||
|
||||
// Init path state.
|
||||
memset(&m_query, 0, sizeof(dtQueryData));
|
||||
m_query.Reset();
|
||||
m_query.status = DT_FAILURE;
|
||||
m_query.startRef = startRef;
|
||||
m_query.endRef = endRef;
|
||||
@ -1487,7 +1487,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount,
|
||||
if (dtStatusFailed(m_query.status))
|
||||
{
|
||||
// Reset query.
|
||||
memset(&m_query, 0, sizeof(dtQueryData));
|
||||
m_query.Reset();
|
||||
return DT_FAILURE;
|
||||
}
|
||||
|
||||
@ -1557,7 +1557,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, int* pathCount,
|
||||
const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
|
||||
|
||||
// Reset query.
|
||||
memset(&m_query, 0, sizeof(dtQueryData));
|
||||
m_query.Reset();
|
||||
|
||||
*pathCount = n;
|
||||
|
||||
@ -1578,7 +1578,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing
|
||||
if (dtStatusFailed(m_query.status))
|
||||
{
|
||||
// Reset query.
|
||||
memset(&m_query, 0, sizeof(dtQueryData));
|
||||
m_query.Reset();
|
||||
return DT_FAILURE;
|
||||
}
|
||||
|
||||
@ -1658,7 +1658,7 @@ dtStatus dtNavMeshQuery::finalizeSlicedFindPathPartial(const dtPolyRef* existing
|
||||
const dtStatus details = m_query.status & DT_STATUS_DETAIL_MASK;
|
||||
|
||||
// Reset query.
|
||||
memset(&m_query, 0, sizeof(dtQueryData));
|
||||
m_query.Reset();
|
||||
|
||||
*pathCount = n;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user