diff --git a/vnavmesh/Navmesh.cs b/vnavmesh/Navmesh.cs index 487ec13..4d84486 100644 --- a/vnavmesh/Navmesh.cs +++ b/vnavmesh/Navmesh.cs @@ -11,7 +11,7 @@ namespace Navmesh; public record class Navmesh(int CustomizationVersion, DtNavMesh Mesh, VoxelMap? Volume) { public static readonly uint Magic = 0x444D564E; // 'NVMD' - public static readonly uint Version = 16; + public static readonly uint Version = 17; // throws an exception on failure public static Navmesh Deserialize(BinaryReader reader, int expectedCustomizationVersion) diff --git a/vnavmesh/SceneExtractor.cs b/vnavmesh/SceneExtractor.cs index d67835c..2b7bd06 100644 --- a/vnavmesh/SceneExtractor.cs +++ b/vnavmesh/SceneExtractor.cs @@ -116,10 +116,8 @@ public unsafe SceneExtractor(SceneDefinition scene) foreach (var coll in scene.Colliders) { // try to filter out all colliders that become inactive under normal conditions - // auto-opening doors seem to all have material type 0x7400 - // the transparent purple wall that surrounds the party before "duty commenced" in an instance has material type 0x6400 - // however, invisible walls that surround a lot of overworld zones (like southern thanalan) have material type 0x202411, so we can't test just for 0x400 - if ((coll.matId & 0x6400) == 0x6400) + // this is basically every material with 0x400 set, except for the invisible walls that surround most overworld zones, which are 0x202411 + if ((coll.matId & 0x410) == 0x400) continue; var info = ExtractColliderInfo(scene, coll.key, coll.transform, coll.crc, coll.type);