diff --git a/CUE4Parse b/CUE4Parse index db808145..4fb74359 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit db808145a2910f3e9b5db3a7c87abae396109b9a +Subproject commit 4fb7435973fc57bfb78577c971d776f7577440cf diff --git a/FModel/App.xaml b/FModel/App.xaml index fd1ca58e..603f409d 100644 --- a/FModel/App.xaml +++ b/FModel/App.xaml @@ -7,6 +7,10 @@ + + + + diff --git a/FModel/App.xaml.cs b/FModel/App.xaml.cs index 95007ca9..c434def6 100644 --- a/FModel/App.xaml.cs +++ b/FModel/App.xaml.cs @@ -51,7 +51,7 @@ public partial class App var createMe = false; if (!Directory.Exists(UserSettings.Default.OutputDirectory)) { - var currentDir = Directory.GetCurrentDirectory(); + var currentDir = AppContext.BaseDirectory; try { var outputDir = Directory.CreateDirectory(Path.Combine(currentDir, "Output")); diff --git a/FModel/Settings/UserSettings.cs b/FModel/Settings/UserSettings.cs index f6a77b19..ebf9e534 100644 --- a/FModel/Settings/UserSettings.cs +++ b/FModel/Settings/UserSettings.cs @@ -252,6 +252,13 @@ namespace FModel.Settings set => SetProperty(ref _imageMergerMargin, value); } + private bool _canExportRawData; + public bool CanExportRawData + { + get => _canExportRawData; + set => SetProperty(ref _canExportRawData, value); + } + private bool _readScriptData; public bool ReadScriptData { diff --git a/FModel/ViewModels/CUE4ParseViewModel.cs b/FModel/ViewModels/CUE4ParseViewModel.cs index defb2bf0..d76aae47 100644 --- a/FModel/ViewModels/CUE4ParseViewModel.cs +++ b/FModel/ViewModels/CUE4ParseViewModel.cs @@ -1037,7 +1037,7 @@ public class CUE4ParseViewModel : ViewModel var pointer = new FPackageIndex(pkg, index + 1).ResolvedObject; if (pointer?.Object is null) return false; - var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class?.Object?.Value as UStruct, pkg); + var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class, pkg); switch (dummy) { case UVerseDigest when isNone && pointer.Object.Value is UVerseDigest verseDigest: @@ -1381,7 +1381,7 @@ public class CUE4ParseViewModel : ViewModel if (pointer?.Object is null && pointer.Class?.Object?.Value is null) continue; - var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class?.Object?.Value as UStruct, pkg); + var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class, pkg); if (dummy is not UClass || pointer.Object.Value is not UClass blueprint) continue; diff --git a/FModel/ViewModels/GameFileViewModel.cs b/FModel/ViewModels/GameFileViewModel.cs index 2b1a92a8..adefb5f5 100644 --- a/FModel/ViewModels/GameFileViewModel.cs +++ b/FModel/ViewModels/GameFileViewModel.cs @@ -196,7 +196,7 @@ public class GameFileViewModel(GameFile asset) : ViewModel if (pointer?.Object is null) return; - var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class?.Object?.Value as UStruct, pkg); + var dummy = ((AbstractUePackage) pkg).ConstructObject(pointer.Class, pkg); ResolvedAssetType = dummy.ExportType; (AssetCategory, AssetActions) = dummy switch diff --git a/FModel/Views/Resources/Controls/ContextMenus/FileContextMenu.xaml b/FModel/Views/Resources/Controls/ContextMenus/FileContextMenu.xaml index 109b71fb..b72206f3 100644 --- a/FModel/Views/Resources/Controls/ContextMenus/FileContextMenu.xaml +++ b/FModel/Views/Resources/Controls/ContextMenus/FileContextMenu.xaml @@ -110,7 +110,8 @@ - + + Command="{Binding RightClickMenuCommand}" + Visibility="{Binding CanExportRawData, Source={x:Static settings:UserSettings.Default}, Converter={StaticResource BoolToVisibilityConverter}}"> diff --git a/FModel/Views/Resources/Resources.xaml b/FModel/Views/Resources/Resources.xaml index 6f0ab0d2..d9f04f99 100644 --- a/FModel/Views/Resources/Resources.xaml +++ b/FModel/Views/Resources/Resources.xaml @@ -13,8 +13,6 @@ xmlns:adonisConverters="clr-namespace:AdonisUI.Converters;assembly=AdonisUI" xmlns:adonisExtensions="clr-namespace:AdonisUI.Extensions;assembly=AdonisUI" xmlns:adonisControls="clr-namespace:AdonisUI.Controls;assembly=AdonisUI"> - -