diff --git a/Detour/Include/DetourNavMeshQuery.h b/Detour/Include/DetourNavMeshQuery.h
index 539887f..d85814d 100644
--- a/Detour/Include/DetourNavMeshQuery.h
+++ b/Detour/Include/DetourNavMeshQuery.h
@@ -149,7 +149,7 @@ public:
// endPos[3] - (in) Path end location.
// filter - (in) path polygon filter.
// path - (out) array holding the search result.
- // maxPathSize - (in) The max number of polygons the path array can hold.
+ // maxPathSize - (in) The max number of polygons the path array can hold. Must be at least 1.
// Returns: Number of polygons in search result array.
int findPath(dtPolyRef startRef, dtPolyRef endRef,
const float* startPos, const float* endPos,
@@ -198,7 +198,7 @@ public:
// straightPath - (out) Points describing the straight path.
// straightPathFlags - (out, opt) Flags describing each point type, see dtStraightPathFlags.
// straightPathRefs - (out, opt) References to polygons at point locations.
- // maxStraightPathSize - (in) The max number of points the straight path array can hold.
+ // maxStraightPathSize - (in) The max number of points the straight path array can hold. Must be at least 1.
// Returns: Number of points in the path.
int findStraightPath(const float* startPos, const float* endPos,
const dtPolyRef* path, const int pathSize,
diff --git a/Detour/Source/DetourNavMeshQuery.cpp b/Detour/Source/DetourNavMeshQuery.cpp
index c02ce47..d2f31a8 100644
--- a/Detour/Source/DetourNavMeshQuery.cpp
+++ b/Detour/Source/DetourNavMeshQuery.cpp
@@ -951,28 +951,37 @@ int dtNavMeshQuery::finalizeSlicedFindPath(dtPolyRef* path, const int maxPathSiz
return 0;
}
- // Reverse the path.
- dtAssert(m_query.lastBestNode);
- dtNode* prev = 0;
- dtNode* node = m_query.lastBestNode;
- do
- {
- dtNode* next = m_nodePool->getNodeAtIdx(node->pidx);
- node->pidx = m_nodePool->getNodeIdx(prev);
- prev = node;
- node = next;
- }
- while (node);
-
- // Store path
- node = prev;
int n = 0;
- do
+
+ if (m_query.startRef == m_query.endRef)
{
- path[n++] = node->id;
- node = m_nodePool->getNodeAtIdx(node->pidx);
+ // Special case: the search starts and ends at same poly.
+ path[n++] = m_query.startRef;
+ }
+ else
+ {
+ // Reverse the path.
+ dtAssert(m_query.lastBestNode);
+ dtNode* prev = 0;
+ dtNode* node = m_query.lastBestNode;
+ do
+ {
+ dtNode* next = m_nodePool->getNodeAtIdx(node->pidx);
+ node->pidx = m_nodePool->getNodeIdx(prev);
+ prev = node;
+ node = next;
+ }
+ while (node);
+
+ // Store path
+ node = prev;
+ do
+ {
+ path[n++] = node->id;
+ node = m_nodePool->getNodeAtIdx(node->pidx);
+ }
+ while (node && n < maxPathSize);
}
- while (node && n < maxPathSize);
// Reset query.
memset(&m_query, 0, sizeof(dtQueryData));
diff --git a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast
index 1fe6fe8..adc7285 100755
Binary files a/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast and b/RecastDemo/Bin/Recast.app/Contents/MacOS/Recast differ
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
index 1f1008e..2e1ea12 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.pbxuser
@@ -9,7 +9,7 @@
};
};
29B97313FDCFA39411CA2CEA /* Project object */ = {
- activeBuildConfigurationName = Release;
+ activeBuildConfigurationName = Debug;
activeExecutable = 6B8632970F78114600E2684A /* Recast */;
activeTarget = 8D1107260486CEB800E47090 /* Recast */;
addToTargets = (
@@ -20,12 +20,13 @@
6B42164711806B2F006C347B /* DetourDebugDraw.cpp:360 */,
6B10014C11AD1C1E0098A59A /* RecastMesh.cpp:1306 */,
6BA687AC1222F7AC00730711 /* Sample_Debug.cpp:137 */,
- 6BD403421224642500995864 /* NavMeshTesterTool.cpp:581 */,
+ 6BD403421224642500995864 /* NavMeshTesterTool.cpp:580 */,
6B920A121225B1C900D5B5AD /* DetourHashLookup.cpp:78 */,
6B920A141225B1CF00D5B5AD /* DetourHashLookup.cpp:131 */,
6B847728122D11F300ADF63D /* DetourObstacleAvoidance.cpp:521 */,
6B847751122D14C900ADF63D /* DetourObstacleAvoidance.cpp:470 */,
6B847758122D14FE00ADF63D /* DetourObstacleAvoidance.cpp:113 */,
+ 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:519 */,
);
codeSenseManager = 6B8632AA0F78115100E2684A /* Code sense */;
executables = (
@@ -266,6 +267,17 @@
6BD6684512434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684512434DE80021A7A4 /* PBXTextBookmark */;
6BD6684612434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684612434DE80021A7A4 /* PBXTextBookmark */;
6BD6684712434DE80021A7A4 /* PBXTextBookmark */ = 6BD6684712434DE80021A7A4 /* PBXTextBookmark */;
+ 6BD6684E124350B80021A7A4 /* PBXTextBookmark */ = 6BD6684E124350B80021A7A4 /* PBXTextBookmark */;
+ 6BD6684F124350B80021A7A4 /* PBXTextBookmark */ = 6BD6684F124350B80021A7A4 /* PBXTextBookmark */;
+ 6BD66850124350B80021A7A4 /* PBXTextBookmark */ = 6BD66850124350B80021A7A4 /* PBXTextBookmark */;
+ 6BD66855124350F80021A7A4 /* PBXTextBookmark */ = 6BD66855124350F80021A7A4 /* PBXTextBookmark */;
+ 6BD66856124350F80021A7A4 /* PBXTextBookmark */ = 6BD66856124350F80021A7A4 /* PBXTextBookmark */;
+ 6BD66857124350F80021A7A4 /* PBXTextBookmark */ = 6BD66857124350F80021A7A4 /* PBXTextBookmark */;
+ 6BD6685A124351100021A7A4 /* PBXTextBookmark */ = 6BD6685A124351100021A7A4 /* PBXTextBookmark */;
+ 6BD6685E124351D70021A7A4 /* PBXTextBookmark */ = 6BD6685E124351D70021A7A4 /* PBXTextBookmark */;
+ 6BD6685F124351D70021A7A4 /* PBXTextBookmark */ = 6BD6685F124351D70021A7A4 /* PBXTextBookmark */;
+ 6BD66860124351D70021A7A4 /* PBXTextBookmark */ = 6BD66860124351D70021A7A4 /* PBXTextBookmark */;
+ 6BD66861124351D70021A7A4 /* PBXTextBookmark */ = 6BD66861124351D70021A7A4 /* PBXTextBookmark */;
6BF5F27311747CFA000502A6 = 6BF5F27311747CFA000502A6 /* PBXTextBookmark */;
6BF5F2E411748884000502A6 = 6BF5F2E411748884000502A6 /* PBXTextBookmark */;
6BF5F2E511748884000502A6 = 6BF5F2E511748884000502A6 /* PBXTextBookmark */;
@@ -299,8 +311,8 @@
ignoreCount = 0;
lineNumber = 1306;
location = Recast;
- modificationTime = 304944329.507792;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401746.595641;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6B1185F41006895B0018F96F /* DetourNode.cpp */ = {
@@ -472,9 +484,9 @@
};
6B25B6180FFA62BE004F1BC4 /* main.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {933, 11804}}";
- sepNavSelRange = "{1984, 0}";
- sepNavVisRange = "{1726, 705}";
+ sepNavIntBoundsRect = "{{0, 0}, {933, 11830}}";
+ sepNavSelRange = "{1985, 0}";
+ sepNavVisRange = "{1728, 784}";
sepNavWindowFrame = "{{15, 51}, {1214, 722}}";
};
};
@@ -532,8 +544,8 @@
ignoreCount = 0;
lineNumber = 360;
location = Recast;
- modificationTime = 304944329.5076219;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.747454;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6B555DAE100B211D00247EA3 /* imguiRenderGL.h */ = {
@@ -723,8 +735,8 @@
ignoreCount = 0;
lineNumber = 521;
location = Recast;
- modificationTime = 304944329.511332;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.68476;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6B847751122D14C900ADF63D /* DetourObstacleAvoidance.cpp:470 */ = {
@@ -737,12 +749,12 @@
delayBeforeContinue = 0;
fileReference = 6B9EFF0812281C3E00535FF1 /* DetourObstacleAvoidance.cpp */;
functionName = "dtObstacleAvoidanceQuery::processSample(const float* vcand, const float cs, const float* pos, const float rad, const float vmax, const float* vel, const float* dvel, dtObstacleAvoidanceDebugData* debug)";
- hitCount = 1;
+ hitCount = 0;
ignoreCount = 0;
lineNumber = 470;
location = Recast;
- modificationTime = 304944343.213994;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.692508;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6B847758122D14FE00ADF63D /* DetourObstacleAvoidance.cpp:113 */ = {
@@ -759,8 +771,8 @@
ignoreCount = 0;
lineNumber = 113;
location = Recast;
- modificationTime = 304944382.2061139;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.711653;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6B847774122D220D00ADF63D /* ValueHistory.h */ = {
@@ -832,7 +844,7 @@
fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
name = "NavMeshTesterTool.cpp: 581";
rLen = 0;
- rLoc = 15382;
+ rLoc = 15450;
rType = 0;
vrLen = 978;
vrLoc = 14862;
@@ -884,7 +896,7 @@
argumentStrings = (
);
autoAttachOnCrash = 1;
- breakpointsEnabled = 0;
+ breakpointsEnabled = 1;
configStateDict = {
};
customDataFormattersEnabled = 1;
@@ -993,7 +1005,7 @@
ignoreCount = 0;
lineNumber = 78;
location = Recast;
- modificationTime = 304944329.51096;
+ modificationTime = 306401551.10762;
originalNumberOfMultipleMatches = 0;
state = 2;
};
@@ -1010,9 +1022,9 @@
hitCount = 0;
ignoreCount = 0;
lineNumber = 131;
- modificationTime = 304944330.098894;
- originalNumberOfMultipleMatches = 0;
- state = 0;
+ modificationTime = 306401746.596139;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
};
6B920A521225C0AC00D5B5AD /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -1286,8 +1298,8 @@
ignoreCount = 0;
lineNumber = 137;
location = Recast;
- modificationTime = 304944329.507947;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.756008;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6BA687CA1222FA9300730711 /* PBXTextBookmark */ = {
@@ -1457,16 +1469,16 @@
};
6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {933, 6336}}";
- sepNavSelRange = "{710, 0}";
- sepNavVisRange = "{0, 1358}";
+ sepNavIntBoundsRect = "{{0, 0}, {933, 5317}}";
+ sepNavSelRange = "{6787, 0}";
+ sepNavVisRange = "{5974, 1646}";
};
};
6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {933, 31733}}";
- sepNavSelRange = "{38744, 0}";
- sepNavVisRange = "{38369, 869}";
+ sepNavIntBoundsRect = "{{0, 0}, {933, 31785}}";
+ sepNavSelRange = "{26275, 0}";
+ sepNavVisRange = "{26033, 680}";
};
};
6BAF427A121ADCC2008CFCDF /* DetourAssert.h */ = {
@@ -1587,9 +1599,9 @@
};
6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {933, 20000}}";
- sepNavSelRange = "{15382, 0}";
- sepNavVisRange = "{14862, 978}";
+ sepNavIntBoundsRect = "{{0, 0}, {933, 16302}}";
+ sepNavSelRange = "{13948, 0}";
+ sepNavVisRange = "{13682, 883}";
sepNavWindowFrame = "{{38, 30}, {1214, 722}}";
};
};
@@ -1706,8 +1718,8 @@
ignoreCount = 0;
lineNumber = 279;
location = Recast;
- modificationTime = 304944329.505402;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.633957;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6BCF32341104CD05009445BF /* OffMeshConnectionTool.h */ = {
@@ -1838,7 +1850,7 @@
vrLen = 763;
vrLoc = 1682;
};
- 6BD403421224642500995864 /* NavMeshTesterTool.cpp:581 */ = {
+ 6BD403421224642500995864 /* NavMeshTesterTool.cpp:580 */ = {
isa = PBXFileBreakpoint;
actions = (
);
@@ -1850,10 +1862,10 @@
functionName = "NavMeshTesterTool::recalc()";
hitCount = 0;
ignoreCount = 0;
- lineNumber = 581;
+ lineNumber = 580;
location = Recast;
- modificationTime = 304944329.508438;
- originalNumberOfMultipleMatches = 0;
+ modificationTime = 306401551.670537;
+ originalNumberOfMultipleMatches = 1;
state = 1;
};
6BD403B31224815A00995864 /* DetourHashLookup.cpp */ = {
@@ -2017,7 +2029,7 @@
fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */;
name = "DetourNavMeshQuery.cpp: 2141";
rLen = 101;
- rLoc = 58084;
+ rLoc = 58257;
rType = 0;
vrLen = 749;
vrLoc = 57588;
@@ -2298,7 +2310,7 @@
fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */;
name = "DetourNavMeshQuery.cpp: 1426";
rLen = 0;
- rLoc = 38744;
+ rLoc = 38917;
rType = 0;
vrLen = 869;
vrLoc = 38369;
@@ -2423,6 +2435,134 @@
vrLen = 705;
vrLoc = 1726;
};
+ 6BD6684E124350B80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6B25B6180FFA62BE004F1BC4 /* main.cpp */;
+ name = "main.cpp: 64";
+ rLen = 0;
+ rLoc = 1985;
+ rType = 0;
+ vrLen = 784;
+ vrLoc = 1728;
+ };
+ 6BD6684F124350B80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */;
+ name = "RecastArea.cpp: 46";
+ rLen = 0;
+ rLoc = 1559;
+ rType = 0;
+ vrLen = 1139;
+ vrLoc = 133;
+ };
+ 6BD66850124350B80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */;
+ name = "RecastArea.cpp: 23";
+ rLen = 0;
+ rLoc = 1026;
+ rType = 0;
+ vrLen = 1294;
+ vrLoc = 133;
+ };
+ 6BD66851124350F50021A7A4 /* NavMeshTesterTool.cpp:519 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ functionName = "NavMeshTesterTool::handleUpdate(const float /*dt*/)";
+ hitCount = 1;
+ ignoreCount = 0;
+ lineNumber = 519;
+ location = Recast;
+ modificationTime = 306401568.542967;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 6BD66855124350F80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BF7C4531115C277002B3F46 /* RecastArea.cpp */;
+ name = "RecastArea.cpp: 21";
+ rLen = 0;
+ rLoc = 986;
+ rType = 0;
+ vrLen = 1294;
+ vrLoc = 133;
+ };
+ 6BD66856124350F80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 521";
+ rLen = 0;
+ rLoc = 14059;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 13681;
+ };
+ 6BD66857124350F80021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 518";
+ rLen = 0;
+ rLoc = 13948;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 13681;
+ };
+ 6BD6685A124351100021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 518";
+ rLen = 0;
+ rLoc = 13948;
+ rType = 0;
+ vrLen = 883;
+ vrLoc = 13682;
+ };
+ 6BD6685E124351D70021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BB7FC0A10EBB6AA006DA0A6 /* NavMeshTesterTool.cpp */;
+ name = "NavMeshTesterTool.cpp: 518";
+ rLen = 0;
+ rLoc = 13948;
+ rType = 0;
+ vrLen = 883;
+ vrLoc = 13682;
+ };
+ 6BD6685F124351D70021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BAF40D912196A25008CFCDF /* DetourNavMeshQuery.h */;
+ name = "DetourNavMeshQuery.h: 152";
+ rLen = 0;
+ rLoc = 6787;
+ rType = 0;
+ vrLen = 1646;
+ vrLoc = 5974;
+ };
+ 6BD66860124351D70021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */;
+ name = "DetourNavMeshQuery.cpp: 960";
+ rLen = 0;
+ rLoc = 26267;
+ rType = 0;
+ vrLen = 605;
+ vrLoc = 26033;
+ };
+ 6BD66861124351D70021A7A4 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 6BAF40DA12196A3D008CFCDF /* DetourNavMeshQuery.cpp */;
+ name = "DetourNavMeshQuery.cpp: 962";
+ rLen = 0;
+ rLoc = 26275;
+ rType = 0;
+ vrLen = 680;
+ vrLoc = 26033;
+ };
6BF5F23911747606000502A6 /* Filelist.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {909, 1600}}";
@@ -2531,9 +2671,9 @@
};
6BF7C4531115C277002B3F46 /* RecastArea.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {933, 6496}}";
- sepNavSelRange = "{1559, 0}";
- sepNavVisRange = "{0, 1272}";
+ sepNavIntBoundsRect = "{{0, 0}, {933, 5135}}";
+ sepNavSelRange = "{986, 0}";
+ sepNavVisRange = "{133, 1294}";
};
};
8D1107260486CEB800E47090 /* Recast */ = {
diff --git a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
index 9720348..e016d35 100644
--- a/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
+++ b/RecastDemo/Build/Xcode/Recast.xcodeproj/memon.perspectivev3
@@ -284,13 +284,14 @@
PBXSmartGroupTreeModuleOutlineStateSelectionKey
- 60
+ 59
+ 51
1
0
PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
- {{0, 521}, {264, 607}}
+ {{0, 451}, {264, 607}}
PBXTopSmartGroupGIDs
@@ -325,7 +326,7 @@
PBXProjectModuleGUID
6B8632A30F78115100E2684A
PBXProjectModuleLabel
- main.cpp
+ DetourNavMeshQuery.cpp
PBXSplitModuleInNavigatorKey
Split0
@@ -333,11 +334,11 @@
PBXProjectModuleGUID
6B8632A40F78115100E2684A
PBXProjectModuleLabel
- main.cpp
+ DetourNavMeshQuery.cpp
_historyCapacity
0
bookmark
- 6BD6684712434DE80021A7A4
+ 6BD66861124351D70021A7A4
history
6BBB4AA5115B4F3400CF791D
@@ -381,14 +382,12 @@
6B920A6E1225C5DD00D5B5AD
6B920A811225D2EC00D5B5AD
6B920A8F1225D3C900D5B5AD
- 6B920AA71225DBCB00D5B5AD
6B920AA81225DBCB00D5B5AD
6BA7F8A81226EF0400C8C47A
6BA7F8AA1226EF0400C8C47A
6BA7F8AC1226EF0400C8C47A
6BA7F8B61226EF1100C8C47A
6BA7F8D01226EF9D00C8C47A
- 6BA7F8E91227002300C8C47A
6BA7F8EB1227002300C8C47A
6BA7F8EC1227002300C8C47A
6BA7F8ED1227002300C8C47A
@@ -406,7 +405,6 @@
6B8477BB122D297200ADF63D
6B8477E1122D2B9100ADF63D
6B8477EE122D2CC900ADF63D
- 6B8477FB122D2E2A00ADF63D
6B8477FC122D2E2A00ADF63D
6B8477FD122D2E2A00ADF63D
6B8477FE122D2E2A00ADF63D
@@ -421,10 +419,13 @@
6BD6681812434B790021A7A4
6BD6683412434D9D0021A7A4
6BD6683512434D9D0021A7A4
- 6BD6683612434D9D0021A7A4
6BD6683712434D9D0021A7A4
6BD6684512434DE80021A7A4
- 6BD6684612434DE80021A7A4
+ 6BD6684E124350B80021A7A4
+ 6BD66855124350F80021A7A4
+ 6BD6685E124351D70021A7A4
+ 6BD6685F124351D70021A7A4
+ 6BD66860124351D70021A7A4
SplitCount
@@ -438,18 +439,18 @@
GeometryConfiguration
Frame
- {{0, 0}, {994, 420}}
+ {{0, 0}, {994, 518}}
RubberWindowFrame
0 112 1280 666 0 0 1280 778
Module
PBXNavigatorGroup
Proportion
- 420pt
+ 518pt
Proportion
- 200pt
+ 102pt
Tabs
@@ -517,7 +518,7 @@
GeometryConfiguration
Frame
- {{10, 27}, {994, 173}}
+ {{10, 27}, {994, 75}}
RubberWindowFrame
0 112 1280 666 0 0 1280 778
diff --git a/RecastDemo/Source/NavMeshTesterTool.cpp b/RecastDemo/Source/NavMeshTesterTool.cpp
index b44182d..f655cb4 100644
--- a/RecastDemo/Source/NavMeshTesterTool.cpp
+++ b/RecastDemo/Source/NavMeshTesterTool.cpp
@@ -507,34 +507,33 @@ void NavMeshTesterTool::handleStep()
void NavMeshTesterTool::handleUpdate(const float /*dt*/)
{
- if (m_pathFindState == DT_QUERY_RUNNING)
+ if (m_toolMode == TOOLMODE_PATHFIND_SLICED)
{
- m_pathFindState = m_navQuery->updateSlicedFindPath(1);
- }
-
- if (m_pathFindState == DT_QUERY_READY)
- {
- m_npolys = m_navQuery->finalizeSlicedFindPath(m_polys, MAX_POLYS);
- m_nstraightPath = 0;
- if (m_npolys)
+ if (m_pathFindState == DT_QUERY_RUNNING)
{
- // In case of partial path, make sure the end point is clamped to the last polygon.
- float epos[3];
- dtVcopy(epos, m_epos);
- if (m_polys[m_npolys-1] != m_endRef)
- m_navQuery->closestPointOnPoly(m_polys[m_npolys-1], m_epos, epos);
-
- m_nstraightPath = m_navQuery->findStraightPath(m_spos, epos, m_polys, m_npolys,
- m_straightPath, m_straightPathFlags,
- m_straightPathPolys, MAX_POLYS);
+ m_pathFindState = m_navQuery->updateSlicedFindPath(1);
+ }
+
+ if (m_pathFindState == DT_QUERY_READY)
+ {
+ m_npolys = m_navQuery->finalizeSlicedFindPath(m_polys, MAX_POLYS);
+ m_nstraightPath = 0;
+ if (m_npolys)
+ {
+ // In case of partial path, make sure the end point is clamped to the last polygon.
+ float epos[3];
+ dtVcopy(epos, m_epos);
+ if (m_polys[m_npolys-1] != m_endRef)
+ m_navQuery->closestPointOnPoly(m_polys[m_npolys-1], m_epos, epos);
+
+ m_nstraightPath = m_navQuery->findStraightPath(m_spos, epos, m_polys, m_npolys,
+ m_straightPath, m_straightPathFlags,
+ m_straightPathPolys, MAX_POLYS);
+ }
+
+ m_pathFindState = DT_QUERY_FAILED;
}
-
- m_pathFindState = DT_QUERY_FAILED;
}
-
-
-
-
}
void NavMeshTesterTool::reset()