From 3d91bc31437bec0a332ea10e183298c5320d3b87 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Tue, 29 Oct 2024 12:44:39 +0100 Subject: [PATCH] Recast: fix micro-LUTs for hull traversability Some of them were incorrectly assigned and also missed a few traverse types dedicated to of-mesh connections. These new values now correspond exactly to the values the game uses. The only one that couldn't be confirmed is GOLIATH, but it should be the same as TITAN. This will fix cases where a polygon island is marked as unreachable for an NPC hull that could traverse a link connecting its current island to the goal one. --- src/naveditor/Editor.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/naveditor/Editor.cpp b/src/naveditor/Editor.cpp index 5febe35b..cba88c39 100644 --- a/src/naveditor/Editor.cpp +++ b/src/naveditor/Editor.cpp @@ -68,19 +68,20 @@ static int s_traverseAnimTraverseFlags[TraverseAnimType_e::ANIMTYPE_COUNT]; static void initTraverseMasks() { s_traverseAnimTraverseFlags[ANIMTYPE_HUMAN] = 0x0000013F; - s_traverseAnimTraverseFlags[ANIMTYPE_SPECTRE] = 0x0000013F; #if DT_NAVMESH_SET_VERSION == 5 + s_traverseAnimTraverseFlags[ANIMTYPE_SPECTRE] = 0x000BFF7E; s_traverseAnimTraverseFlags[ANIMTYPE_STALKER] = 0x001BDF7F; s_traverseAnimTraverseFlags[ANIMTYPE_FRAG_DRONE] = 0x001BFFFF; #else + s_traverseAnimTraverseFlags[ANIMTYPE_SPECTRE] = 0x0013FF7E; s_traverseAnimTraverseFlags[ANIMTYPE_STALKER] = 0x0033DF7F; s_traverseAnimTraverseFlags[ANIMTYPE_FRAG_DRONE] = 0x0033FFFF; #endif - s_traverseAnimTraverseFlags[ANIMTYPE_PILOT] = 0x0000013F; - s_traverseAnimTraverseFlags[ANIMTYPE_PROWLER] = 0x00033F87; - s_traverseAnimTraverseFlags[ANIMTYPE_SUPER_SPECTRE] = 0x00033F82; - s_traverseAnimTraverseFlags[ANIMTYPE_TITAN] = 0000003000; - s_traverseAnimTraverseFlags[ANIMTYPE_GOLIATH] = 0000003000; + s_traverseAnimTraverseFlags[ANIMTYPE_PILOT] = 0x0008013F; + s_traverseAnimTraverseFlags[ANIMTYPE_PROWLER] = 0x00033FB7; + s_traverseAnimTraverseFlags[ANIMTYPE_SUPER_SPECTRE] = 0x00033FB2; + s_traverseAnimTraverseFlags[ANIMTYPE_TITAN] = 0000000030; + s_traverseAnimTraverseFlags[ANIMTYPE_GOLIATH] = 0000000030; // TODO: figure out all the activities GOLIATH has. } TraverseType_s s_traverseTable[NUM_TRAVERSE_TYPES];