diff --git a/pkNX.WinForms/Dumping/SV/Encounter/EncounterDumperSV.cs b/pkNX.WinForms/Dumping/SV/Encounter/EncounterDumperSV.cs index cb2183d3..0b04a2d4 100644 --- a/pkNX.WinForms/Dumping/SV/Encounter/EncounterDumperSV.cs +++ b/pkNX.WinForms/Dumping/SV/Encounter/EncounterDumperSV.cs @@ -13,9 +13,6 @@ public static class EncounterDumperSV private const float tolY = 30f; private const float tolZ = 30f; - public static bool IsContainedBy(T collider, LocationPointDetail point) where T : IContainsV3f - => collider.ContainsPoint(point.X, point.Y, point.Z, tolX, tolY, tolZ); - public static bool IsContainedBy(T collider, PackedVec3f point) where T : IContainsV3f => collider.ContainsPoint(point.X, point.Y, point.Z, tolX, tolY, tolZ); diff --git a/pkNX.WinForms/Dumping/SV/Encounter/EncounterSlotDumper9.cs b/pkNX.WinForms/Dumping/SV/Encounter/EncounterSlotDumper9.cs index b7e725b1..6ffb198a 100644 --- a/pkNX.WinForms/Dumping/SV/Encounter/EncounterSlotDumper9.cs +++ b/pkNX.WinForms/Dumping/SV/Encounter/EncounterSlotDumper9.cs @@ -15,7 +15,8 @@ public static void DumpSlots(IFileInternal rom, EncounterDumpConfigSV config, Pa var db = new LocationDatabase(); // Process all field indices - foreach (var index in EncounterDumperSV.AllMaps) ProcessAreas(index, scene, db, spawns, config.PlaceNameMap); + foreach (var index in EncounterDumperSV.AllMaps) + ProcessAreas(index, scene, db, spawns, config.PlaceNameMap); // Each area and their local / crossover points have been aggregated. // Integrate the points' slots into a single list, and consolidate entries with same level ranges to as few objects as possible. @@ -60,6 +61,7 @@ private static void ProcessAreas(PaldeaFieldIndex fieldIndex, PaldeaSceneModel s var areaNames = scene.AreaNames[(int)fieldIndex]; var areas = scene.AreaInfos[(int)fieldIndex]; var types = scene.PaldeaType[(int)fieldIndex]; + var pd = map.GetPokeData(fieldIndex); for (var i = areaNames.Count - 1; i >= 0; i--) { var areaName = areaNames[i]; @@ -85,7 +87,7 @@ private static void ProcessAreas(PaldeaFieldIndex fieldIndex, PaldeaSceneModel s var type = types[areaName]; var points = map.GetPoints(fieldIndex, type); storage.LoadPoints(points, collider, areaInfo.ActualMinLevel, areaInfo.ActualMaxLevel, areaInfo.AdjustEncLv); - storage.GetEncounters(map.GetPokeData(fieldIndex), scene); + storage.GetEncounters(pd, scene); } // Add in the locations that each point can be activated, that are not the current area. @@ -183,7 +185,7 @@ private static void ProcessAreas(PaldeaFieldIndex fieldIndex, PaldeaSceneModel s foreach (var point in cross.Local) { // If the crossover point is close enough to the current area's collider, add it to the current area's list of crossover points. - if (EncounterDumperSV.IsContainedBy(collider, point)) + if (EncounterDumperSV.IsContainedBy(collider, point.Point.Position)) storage.Nearby.Add(point); } }