From e32136d5b22ddf549b7364ad6aa0084d4476b024 Mon Sep 17 00:00:00 2001 From: GMatrixGames Date: Tue, 22 Jun 2021 12:56:15 -0400 Subject: [PATCH] Fix most* of the NPC patrol paths Requires more testing on other GFD we need, but this will resolve a majority of them. --- FModel/ViewModels/MapViewerViewModel.cs | 29 ++++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/FModel/ViewModels/MapViewerViewModel.cs b/FModel/ViewModels/MapViewerViewModel.cs index c3843863..3c7cb001 100644 --- a/FModel/ViewModels/MapViewerViewModel.cs +++ b/FModel/ViewModels/MapViewerViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -412,13 +412,26 @@ namespace FModel.ViewModels var patrolsPathBitmap = new SKBitmap(_widthHeight, _widthHeight, SKColorType.Rgba8888, SKAlphaType.Premul); using var c = new SKCanvas(patrolsPathBitmap); - if (!Utils.TryLoadObject("FortniteGame/Plugins/GameFeatures/NPCLibrary/Content/GameFeatureData.GameFeatureData", out UObject gameFeatureData) || - !gameFeatureData.TryGetValue(out FPackageIndex levelOverlayConfig, "LevelOverlayConfig") || - !Utils.TryGetPackageIndexExport(levelOverlayConfig, out UObject npcLibrary) || - !npcLibrary.TryGetValue(out FStructFallback[] overlayList, "OverlayList")) - return; + var gameFeatureDatas = new List + { + "FortniteGame/Plugins/GameFeatures/NPCLibrary/Content/GameFeatureData.GameFeatureData", + "FortniteGame/Plugins/GameFeatures/BattlepassS17/Content/GameFeatureData.GameFeatureData" + }; - foreach (var overlay in overlayList) + var overlays = new List(); + + foreach (var path in gameFeatureDatas) + { + if (!Utils.TryLoadObject(path, out UObject gameFeatureData) || + !gameFeatureData.TryGetValue(out FPackageIndex levelOverlayConfig, "LevelOverlayConfig") || + !Utils.TryGetPackageIndexExport(levelOverlayConfig, out UObject npcLibrary) || + !npcLibrary.TryGetValue(out FStructFallback[] overlayList, "OverlayList")) + return; + + overlays.AddRange(overlayList); + } + + foreach (var overlay in overlays) { if (!overlay.TryGetValue(out FSoftObjectPath overlayWorld, "OverlayWorld")) continue; @@ -689,4 +702,4 @@ namespace FModel.ViewModels }); } } -} \ No newline at end of file +}