mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Recast: add option to draw tile cells
MSET 8 or higher only.
This commit is contained in:
parent
49a0ceb148
commit
99db511930
@ -466,6 +466,13 @@ void Editor::renderDetourDebugMenu()
|
||||
if (ImGui::Checkbox("Tile ID Colors", &isEnabled))
|
||||
toggleNavMeshDrawFlag(DU_DRAWNAVMESH_COLOR_TILES);
|
||||
|
||||
#if DT_NAVMESH_SET_VERSION >= 8
|
||||
isEnabled = (getNavMeshDrawFlags() & DU_DRAWNAVMESH_CELLS);
|
||||
|
||||
if (ImGui::Checkbox("Tile Cells", &isEnabled))
|
||||
toggleNavMeshDrawFlag(DU_DRAWNAVMESH_CELLS);
|
||||
#endif
|
||||
|
||||
isEnabled = (getNavMeshDrawFlags() & DU_DRAWNAVMESH_VERTS);
|
||||
|
||||
if (ImGui::Checkbox("Vertex Points", &isEnabled))
|
||||
|
@ -31,14 +31,15 @@ enum DrawNavMeshFlags
|
||||
DU_DRAWNAVMESH_PORTALS = 1 << 3, // Render portals.
|
||||
DU_DRAWNAVMESH_CLOSEDLIST = 1 << 4, // Render navmesh with closed list.
|
||||
DU_DRAWNAVMESH_COLOR_TILES = 1 << 5, // Render tiles colored by their ID's.
|
||||
DU_DRAWNAVMESH_VERTS = 1 << 6, // Render vertex points.
|
||||
DU_DRAWNAVMESH_INNERBOUND = 1 << 7, // Render inner poly boundaries.
|
||||
DU_DRAWNAVMESH_OUTERBOUND = 1 << 8, // Render outer poly boundaries.
|
||||
DU_DRAWNAVMESH_POLYCENTERS = 1 << 9, // Render poly centers.
|
||||
DU_DRAWNAVMESH_POLYGROUPS = 1 << 10, // Render poly group by color.
|
||||
DU_DRAWNAVMESH_DEPTH_MASK = 1 << 11, // Use depth mask.
|
||||
DU_DRAWNAVMESH_ALPHA = 1 << 12, // Use transparency.
|
||||
DU_DRAWNAVMESH_TRAVERSE_LINKS = 1 << 13, // Render traverse links.
|
||||
DU_DRAWNAVMESH_CELLS = 1 << 6, // Render tile cells.
|
||||
DU_DRAWNAVMESH_VERTS = 1 << 7, // Render vertex points.
|
||||
DU_DRAWNAVMESH_INNERBOUND = 1 << 8, // Render inner poly boundaries.
|
||||
DU_DRAWNAVMESH_OUTERBOUND = 1 << 9, // Render outer poly boundaries.
|
||||
DU_DRAWNAVMESH_POLYCENTERS = 1 << 10, // Render poly centers.
|
||||
DU_DRAWNAVMESH_POLYGROUPS = 1 << 11, // Render poly group by color.
|
||||
DU_DRAWNAVMESH_DEPTH_MASK = 1 << 12, // Use depth mask.
|
||||
DU_DRAWNAVMESH_ALPHA = 1 << 13, // Use transparency.
|
||||
DU_DRAWNAVMESH_TRAVERSE_LINKS = 1 << 14, // Render traverse links.
|
||||
};
|
||||
|
||||
void duDebugDrawNavMesh(struct duDebugDraw* dd, const dtNavMesh& mesh, const float* offset, unsigned int flags, const int linkTypes = -1);
|
||||
|
@ -194,6 +194,17 @@ static void drawTraverseLinks(duDebugDraw* dd, const dtNavMesh& mesh, const dtNa
|
||||
}
|
||||
}
|
||||
|
||||
static void drawTileCells(duDebugDraw* dd, const dtMeshTile* tile, const float* offset)
|
||||
{
|
||||
#if DT_NAVMESH_SET_VERSION >= 8
|
||||
for (int i = 0; i < tile->header->maxCellCount; i++)
|
||||
{
|
||||
const dtCell& probe = tile->cells[i];
|
||||
duDebugDrawCross(dd, probe.pos[0], probe.pos[1], probe.pos[2], 25.f, duRGBA(255,0,0,255), 2, offset);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMeshQuery* query,
|
||||
const dtMeshTile* tile, const float* offset, unsigned int flags, const int linkTypes)
|
||||
{
|
||||
@ -256,6 +267,9 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh
|
||||
if (flags & DU_DRAWNAVMESH_TRAVERSE_LINKS)
|
||||
drawTraverseLinks(dd, mesh, query, tile, offset, linkTypes);
|
||||
|
||||
if (flags & DU_DRAWNAVMESH_CELLS)
|
||||
drawTileCells(dd, tile, offset);
|
||||
|
||||
if (flags & DU_DRAWNAVMESH_OFFMESHCONS)
|
||||
{
|
||||
dd->begin(DU_DRAW_LINES, 2.0f, offset);
|
||||
@ -270,10 +284,8 @@ static void drawMeshTile(duDebugDraw* dd, const dtNavMesh& mesh, const dtNavMesh
|
||||
unsigned int col;
|
||||
if (query && query->isInClosedList(base | (dtPolyRef)i))
|
||||
col = duRGBA(255,196,0,220);
|
||||
else if (con->unk1 == 1)
|
||||
col = duDarkenCol(duTransCol(duRGBA(0,0,255,255), 220));
|
||||
else
|
||||
col = duDarkenCol(duTransCol(duRGBA(255,0,255,255), 220));
|
||||
col = duDarkenCol(duTransCol(duRGBA(0,0,255,255), 220));
|
||||
|
||||
const float* va = &tile->verts[p->verts[0]*3];
|
||||
const float* vb = &tile->verts[p->verts[1]*3];
|
||||
|
Loading…
x
Reference in New Issue
Block a user