mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Recast: several fixes for traverse link renderer
-1 is used by the game, and means only traverse links on the same polygon island. This has now been properly implemented. Also fixed a crash when enabling the "Traverse Links" Detour render option with no navmesh loaded.
This commit is contained in:
parent
40d07f09a4
commit
ba43a1ab72
@ -862,12 +862,12 @@ void Editor::renderDetourDebugMenu()
|
||||
if (ImGui::Checkbox("Traverse Links", &isEnabled))
|
||||
toggleNavMeshDrawFlag(DU_DRAWNAVMESH_TRAVERSE_LINKS);
|
||||
|
||||
if (isEnabled)
|
||||
if (isEnabled && m_navMesh) // Supplemental options only available with a valid navmesh!
|
||||
{
|
||||
ImGui::PushItemWidth(190);
|
||||
ImGui::SliderInt("Traverse Type", &m_traverseLinkParams.traverseLinkType, -1, 31);
|
||||
ImGui::SliderInt("Traverse Dist", &m_traverseLinkParams.traverseLinkDistance, -1, 255);
|
||||
ImGui::SliderInt("Traverse Anim", &m_traverseLinkParams.traverseAnimType, -1, m_navMesh->getParams()->traverseTableCount-1);
|
||||
ImGui::SliderInt("Traverse Anim", &m_traverseLinkParams.traverseAnimType, -2, m_navMesh->getParams()->traverseTableCount-1);
|
||||
ImGui::PopItemWidth();
|
||||
}
|
||||
}
|
||||
|
@ -48,11 +48,14 @@ struct duDrawTraverseLinkParams
|
||||
duDrawTraverseLinkParams() :
|
||||
traverseLinkType(-1),
|
||||
traverseLinkDistance(-1),
|
||||
traverseAnimType(-1)
|
||||
traverseAnimType(-2)
|
||||
{}
|
||||
|
||||
int traverseLinkType;
|
||||
int traverseLinkDistance;
|
||||
|
||||
// -2 means all, -1 means disjoint poly groups only, anything above
|
||||
// refers to an actual anim type and indexes into the traverse tables.
|
||||
int traverseAnimType;
|
||||
};
|
||||
|
||||
|
@ -171,9 +171,9 @@ static void drawTraverseLinks(duDebugDraw* dd, const dtNavMesh& mesh, const dtNa
|
||||
const int drawAnimType = traverseLinkParams.traverseAnimType;
|
||||
const dtPolyRef basePolyRef = mesh.getPolyRefBase(tile) | (dtPolyRef)i;
|
||||
|
||||
if (drawAnimType != -1 &&
|
||||
!mesh.isGoalPolyReachable(basePolyRef, link->ref, false, drawAnimType) &&
|
||||
!mesh.isGoalPolyReachable(link->ref, basePolyRef, false, drawAnimType))
|
||||
if (drawAnimType != -2 &&
|
||||
!mesh.isGoalPolyReachable(basePolyRef, link->ref, drawAnimType == -1, drawAnimType) &&
|
||||
!mesh.isGoalPolyReachable(link->ref, basePolyRef, drawAnimType == -1, drawAnimType))
|
||||
continue;
|
||||
|
||||
const dtPoly* endPoly;
|
||||
|
Loading…
x
Reference in New Issue
Block a user