From 7d74ff4c2f94fe8d5a148f8dc906de024859e9e4 Mon Sep 17 00:00:00 2001 From: Asval Date: Sun, 27 Oct 2019 19:12:00 +0100 Subject: [PATCH] FModel 3.0 --- .gitignore | 2 +- FModel.sln | 26 +- FModel/App.config | 124 +- FModel/App.xaml | 18 + FModel/App.xaml.cs | 18 + FModel/Commands/FModel_Commands.cs | 12 + FModel/Custom/JsonExtensions.cs | 38 - FModel/Custom/TypeAssistant.cs | 25 - .../DLLs/ScintillaNET FindReplaceDialog.dll | Bin 83456 -> 0 bytes FModel/DLLs/csharp-wick.dll | Bin 6656 -> 0 bytes FModel/FModel.csproj | 642 ++- FModel/FModel.ico | Bin 73621 -> 0 bytes FModel/FModel_Main.xaml | 191 + FModel/FModel_Main.xaml.cs | 360 ++ FModel/Forms/AESManager.Designer.cs | 155 - FModel/Forms/AESManager.cs | 93 - FModel/Forms/AESManager.resx | 1353 ----- FModel/Forms/AESManager.xaml | 40 + FModel/Forms/AESManager.xaml.cs | 132 + FModel/Forms/About.Designer.cs | 167 - FModel/Forms/About.cs | 30 - FModel/Forms/About.resx | 1353 ----- FModel/Forms/ColorPicker/Code/ColorPalette.cs | 108 + .../Code/ColorPickerDialogOptions.cs | 16 + .../Forms/ColorPicker/Code/ColorSwatchItem.cs | 15 + FModel/Forms/ColorPicker/Code/Util.cs | 256 + FModel/Forms/ColorPicker/ColorPickRow.xaml | 26 + FModel/Forms/ColorPicker/ColorPickRow.xaml.cs | 42 + .../Forms/ColorPicker/ColorPickerControl.xaml | 89 + .../ColorPicker/ColorPickerControl.xaml.cs | 419 ++ .../Forms/ColorPicker/ColorPickerSettings.cs | 15 + .../Forms/ColorPicker/ColorPickerSwatch.xaml | 27 + .../ColorPicker/ColorPickerSwatch.xaml.cs | 77 + .../Forms/ColorPicker/ColorPickerWindow.xaml | 23 + .../ColorPicker/ColorPickerWindow.xaml.cs | 100 + FModel/Forms/ColorPicker/SliderRow.xaml | 21 + FModel/Forms/ColorPicker/SliderRow.xaml.cs | 59 + FModel/Forms/FModel_About.xaml | 43 + FModel/Forms/FModel_About.xaml.cs | 25 + FModel/Forms/FModel_CustomMB.xaml | 62 + FModel/Forms/FModel_CustomMB.xaml.cs | 234 + FModel/Forms/FModel_ImagesMerger.xaml | 32 + FModel/Forms/FModel_ImagesMerger.xaml.cs | 255 + FModel/Forms/FModel_SearchFiles.xaml | 49 + FModel/Forms/FModel_SearchFiles.xaml.cs | 269 + FModel/Forms/FModel_Settings.xaml | 104 + FModel/Forms/FModel_Settings.xaml.cs | 576 ++ FModel/Forms/HexViewer/BaseByte.cs | 559 ++ FModel/Forms/HexViewer/BrushesDictionary.xaml | 15 + FModel/Forms/HexViewer/Core/BookMark.cs | 40 + .../HexViewer/Core/Bytes/ByteConverters.cs | 255 + .../HexViewer/Core/Bytes/ByteModified.cs | 100 + .../HexViewer/Core/Bytes/ByteProvider.cs | 1725 ++++++ FModel/Forms/HexViewer/Core/Caret.cs | 277 + .../HexViewer/Core/CharacterTable/DTE.cs | 164 + .../HexViewer/Core/CharacterTable/Enum.cs | 30 + .../Core/CharacterTable/TBLStream.cs | 406 ++ .../Forms/HexViewer/Core/ConstantReadOnly.cs | 23 + .../Core/Converters/BoolInverterConverter.cs | 36 + .../BooleanToVisibilityConverter.cs | 36 + .../Converters/HexToLongStringConverter.cs | 29 + .../Converters/LongToHexStringConverter.cs | 30 + .../Converters/PathToFilenameConverter.cs | 25 + FModel/Forms/HexViewer/Core/Enumeration.cs | 209 + .../HexViewer/Core/GenericStaticInstance.cs | 17 + .../HexViewer/Core/Interfaces/IByteControl.cs | 52 + .../Core/Interfaces/IByteModified.cs | 26 + FModel/Forms/HexViewer/Core/KeyValidator.cs | 179 + .../MethodExtention/ApplicationExtention.cs | 44 + .../MethodExtention/ByteArrayExtention.cs | 47 + .../Core/MethodExtention/DoubleExtension.cs | 14 + .../Core/MethodExtention/StringExtension.cs | 34 + .../Core/MethodExtention/TrackExtention.cs | 60 + .../HexViewer/Core/Native/NativeMethods.cs | 33 + .../Core/Xcbb/CustomBackgroundBlock.cs | 83 + FModel/Forms/HexViewer/Core/Xcbb/ExeFile.cs | 61 + FModel/Forms/HexViewer/Core/Xcbb/Exefile.xcbb | 95 + .../Core/Xcbb/XcbbExpressionParser.cs | 46 + .../HexViewer/Core/Xcbb/XcbbFileParser.cs | 24 + FModel/Forms/HexViewer/FastTextLine.cs | 127 + FModel/Forms/HexViewer/FindReplaceWindow.xaml | 229 + .../Forms/HexViewer/FindReplaceWindow.xaml.cs | 84 + FModel/Forms/HexViewer/FindWindow.xaml | 119 + FModel/Forms/HexViewer/FindWindow.xaml.cs | 60 + FModel/Forms/HexViewer/GiveByteWindow.xaml | 56 + FModel/Forms/HexViewer/GiveByteWindow.xaml.cs | 14 + FModel/Forms/HexViewer/HexBox.xaml | 87 + FModel/Forms/HexViewer/HexBox.xaml.cs | 174 + FModel/Forms/HexViewer/HexByte.cs | 218 + FModel/Forms/HexViewer/HexEditor.xaml | 425 ++ FModel/Forms/HexViewer/HexEditor.xaml.cs | 4892 +++++++++++++++++ FModel/Forms/HexViewer/HexViewer.xaml | 286 + FModel/Forms/HexViewer/HexViewer.xaml.cs | 217 + .../HexViewer/MiscelanousDictionary.xaml | 18 + FModel/Forms/HexViewer/ReplaceByteWindow.xaml | 70 + .../Forms/HexViewer/ReplaceByteWindow.xaml.cs | 14 + FModel/Forms/HexViewer/StringByte.cs | 299 + FModel/Forms/HexViewer/ToolTipDictionary.xaml | 86 + FModel/Forms/MergeImages.Designer.cs | 240 - FModel/Forms/MergeImages.cs | 324 -- FModel/Forms/MergeImages.resx | 1356 ----- FModel/Forms/SearchFiles.Designer.cs | 224 - FModel/Forms/SearchFiles.cs | 308 -- FModel/Forms/SearchFiles.resx | 1356 ----- FModel/Forms/Settings.Designer.cs | 532 -- FModel/Forms/Settings.cs | 484 -- FModel/Forms/Settings.resx | 1353 ----- FModel/Forms/UpdateModeSettings.Designer.cs | 375 -- FModel/Forms/UpdateModeSettings.cs | 346 -- FModel/Forms/UpdateModeSettings.resx | 1353 ----- FModel/Logo.ico | Bin 0 -> 25486 bytes FModel/MainWindow.Designer.cs | 712 --- FModel/MainWindow.cs | 1640 ------ FModel/MainWindow.resx | 1420 ----- .../Methods/AESManager/DynamicKeys/AddToUI.cs | 113 - .../AESManager/DynamicKeys/Keychain.cs | 24 - .../Methods/AESManager/DynamicKeysChecker.cs | 82 + .../Methods/AESManager/DynamicKeysManager.cs | 42 - FModel/Methods/AESManager/KeysManager.cs | 35 + FModel/Methods/Assets/AssetInformations.cs | 59 + FModel/Methods/Assets/AssetTranslations.cs | 210 + FModel/Methods/Assets/AssetsLoader.cs | 236 + .../IconCreator/AthenaID/CosmeticSet.cs | 75 + .../AthenaID/IconUserFacingFlags.cs | 140 + .../ChallengeID/ChallengeBundleInfos.cs | 262 + .../ChallengeID/ChallengeCompletionRewards.cs | 197 + .../ChallengeID/ChallengeIconDesign.cs | 355 ++ .../ChallengeID/ChallengeRewards.cs | 318 ++ .../HeroID/HeroGameplayDefinition.cs | 230 + .../Methods/Assets/IconCreator/IconCreator.cs | 67 + .../Methods/Assets/IconCreator/IconImage.cs | 342 ++ FModel/Methods/Assets/IconCreator/IconText.cs | 311 ++ .../Assets/IconCreator/IconWatermark.cs | 32 + FModel/Methods/Assets/IconCreator/Rarity.cs | 157 + .../IconCreator/WeaponID/IconAmmoData.cs | 95 + .../IconCreator/WeaponID/WeaponStats.cs | 166 + .../RegisterDownloadedBackups.cs | 66 + .../Converter/UnrealEngineDataToOGG.cs | 130 - FModel/Methods/DLLImport.cs | 38 - FModel/Methods/FVar.cs | 127 + FModel/Methods/FindReplace/FindReplace.cs | 466 ++ .../FindReplace/FindReplaceDialog.xaml | 65 + .../FindReplace/FindReplaceDialog.xaml.cs | 41 + .../ChallengeGenerator/BundleDesign.cs | 418 -- .../ChallengeGenerator/BundleInfos.cs | 291 - .../ChallengeGenerator/ChallengeInfoEntry.cs | 26 - .../ChallengeGenerator/DrawingRewards.cs | 263 - .../IconGenerator/ItemGenerator/DrawText.cs | 660 --- .../IconGenerator/ItemGenerator/ItemIcon.cs | 360 -- .../IconGenerator/ItemGenerator/Rarity.cs | 175 - .../SchematicGenerator/SchematicIconDesign.cs | 192 - .../SchematicGenerator/SchematicInfoEntry.cs | 24 - .../SchematicGenerator/SchematicItemInfos.cs | 117 - .../IconGenerator/Translations/LoadLocRes.cs | 98 - .../Translations/SearchResource.cs | 91 - FModel/Methods/JohnWick/JohnWick.cs | 156 - FModel/Methods/MessageBox/DarkMessageBox.cs | 262 + FModel/Methods/PAKs/BackupPAKs.cs | 86 + FModel/Methods/PAKs/PAKsLoader.cs | 289 + FModel/Methods/PAKs/RegisterFromPath.cs | 61 + FModel/Methods/PakHelper/BackupFilesEntry.cs | 20 - FModel/Methods/PakHelper/CreateBackup.cs | 128 - FModel/Methods/PakHelper/PakHelper.cs | 172 - FModel/Methods/PakReader/AESDecryptor.cs | 49 + FModel/Methods/PakReader/AssetReader.cs | 3060 +++++++++++ FModel/Methods/PakReader/AssetRegReader.cs | 325 ++ FModel/Methods/PakReader/DDSDecoder.cs | 2082 +++++++ FModel/Methods/PakReader/Extensions.cs | 77 + FModel/Methods/PakReader/ImageExporter.cs | 170 + FModel/Methods/PakReader/LocReader.cs | 259 + FModel/Methods/PakReader/MeshExporter.cs | 1329 +++++ FModel/Methods/PakReader/Objects.cs | 751 +++ FModel/Methods/PakReader/PakIndex.cs | 81 + FModel/Methods/PakReader/PakReader.cs | 151 + FModel/Methods/PakReader/SigReader.cs | 41 + FModel/Methods/PakReader/UDicReader.cs | 88 + FModel/Methods/Scintilla/MyScintilla.cs | 110 - FModel/Methods/Serializer/AssetReader.cs | 30 - .../Serializer/LocRes/HotfixedStrings.cs | 63 - .../Serializer/LocRes/LocResSerializer.cs | 125 - FModel/Methods/SyntaxHighlighter/Ini.xshd | 64 + FModel/Methods/SyntaxHighlighter/Json.xshd | 24 + .../SyntaxHighlighter/ResourceLoader.cs | 18 + .../TreeViewModel/PropertyChangedBase.cs | 51 + .../SortedTreeViewWindowViewModel.cs | 49 + .../TreeViewModel/TreeViewItemBehavior.cs | 57 + FModel/Methods/TreeViewModel/TreeViewModel.cs | 32 + FModel/Methods/UpdateMode/RegisterSettings.cs | 30 - FModel/Methods/Utilities/AESUtility.cs | 37 + FModel/Methods/Utilities/AssetsUtility.cs | 416 ++ FModel/Methods/Utilities/ChallengesUtility.cs | 176 + FModel/Methods/Utilities/EndpointsUtility.cs | 70 + FModel/Methods/Utilities/FoldersUtility.cs | 120 + FModel/Methods/Utilities/FontUtilities.cs | 82 - FModel/Methods/Utilities/FormsUtility.cs | 20 + FModel/Methods/Utilities/ImageUtilities.cs | 74 - FModel/Methods/Utilities/ImagesUtility.cs | 118 + FModel/Methods/Utilities/ListBoxUtility.cs | 137 + FModel/Methods/Utilities/MBoxesUtility.cs | 31 + FModel/Methods/Utilities/PAKsUtility.cs | 107 + FModel/Methods/Utilities/TasksUtility.cs | 26 + FModel/Methods/Utilities/TextsUtility.cs | 11 + FModel/Methods/Utilities/TreeViewUtility.cs | 106 + FModel/Methods/Utilities/UIUtility.cs | 267 + FModel/Methods/Utilities/Utilities.cs | 284 - FModel/Methods/VarApp.cs | 145 - FModel/Program.cs | 31 +- FModel/Properties/AssemblyInfo.cs | 40 +- FModel/Properties/Resources.Designer.cs | 504 +- FModel/Properties/Resources.resx | 204 +- FModel/Properties/Settings.Designer.cs | 464 +- FModel/Properties/Settings.settings | 118 +- .../BurbankBigCondensed-Black-vJapanese.otf | Bin 1134904 -> 0 bytes FModel/Resources/EBCDIC-NoSpecialChar.tbl | 256 + FModel/Resources/EBCDIC.tbl | 256 + FModel/Resources/FModel.ico | Bin 73621 -> 0 bytes FModel/Resources/FModel_Logo.png | Bin 315502 -> 0 bytes FModel/Resources/LBolt64.png | Bin 1066 -> 0 bytes FModel/Resources/Logo-Icon.ico | Bin 0 -> 99678 bytes FModel/Resources/Logo.png | Bin 0 -> 20768 bytes ...tusAnnotations_Information_16xLG_color.png | Bin 338 -> 0 bytes .../{cTemplate.png => Template_Challenge.png} | Bin FModel/Resources/Template_D_F.png | Bin 56924 -> 35378 bytes FModel/Resources/Template_D_N.png | Bin 48445 -> 27926 bytes FModel/Resources/Template_F_F.png | Bin 21503 -> 25046 bytes FModel/Resources/Template_F_N.png | Bin 14852 -> 22061 bytes FModel/Resources/Template_M_F.png | Bin 56472 -> 35166 bytes FModel/Resources/Template_M_N.png | Bin 47936 -> 27434 bytes FModel/Resources/close_file_16x.png | Bin 0 -> 1053 bytes FModel/Resources/colorpicker1.png | Bin 0 -> 60205 bytes FModel/Resources/colorpicker2.png | Bin 0 -> 6893 bytes FModel/Resources/folder_16x.png | Bin 286 -> 930 bytes FModel/Resources/folder_Closed_16xLG.png | Bin 196 -> 0 bytes FModel/Resources/info_16x.png | Bin 0 -> 1994 bytes FModel/Resources/open_16x.png | Bin 0 -> 556 bytes FModel/Resources/properties_16xLG.png | Bin 357 -> 0 bytes FModel/Resources/save_16x.png | Bin 0 -> 715 bytes FModel/Resources/settings_16x.png | Bin 0 -> 2227 bytes FModel/Resources/twitter.ico | Bin 6617 -> 0 bytes .../Themes/LeftMarginMultiplierConverter.cs | 26 + FModel/Themes/Styles.xaml | 3181 +++++++++++ FModel/Themes/TreeViewItemExtensions.cs | 30 + FModel/csharp_wick.dll | Bin 1053696 -> 0 bytes FModel/packages.config | 15 +- Images/FModel.png | Bin 0 -> 49737 bytes Images/FModel_Demo.gif | Bin 0 -> 8974453 bytes Images/Logo.png | Bin 0 -> 20768 bytes README.md | 194 +- 248 files changed, 36499 insertions(+), 20526 deletions(-) create mode 100644 FModel/App.xaml create mode 100644 FModel/App.xaml.cs create mode 100644 FModel/Commands/FModel_Commands.cs delete mode 100644 FModel/Custom/JsonExtensions.cs delete mode 100644 FModel/Custom/TypeAssistant.cs delete mode 100644 FModel/DLLs/ScintillaNET FindReplaceDialog.dll delete mode 100644 FModel/DLLs/csharp-wick.dll delete mode 100644 FModel/FModel.ico create mode 100644 FModel/FModel_Main.xaml create mode 100644 FModel/FModel_Main.xaml.cs delete mode 100644 FModel/Forms/AESManager.Designer.cs delete mode 100644 FModel/Forms/AESManager.cs delete mode 100644 FModel/Forms/AESManager.resx create mode 100644 FModel/Forms/AESManager.xaml create mode 100644 FModel/Forms/AESManager.xaml.cs delete mode 100644 FModel/Forms/About.Designer.cs delete mode 100644 FModel/Forms/About.cs delete mode 100644 FModel/Forms/About.resx create mode 100644 FModel/Forms/ColorPicker/Code/ColorPalette.cs create mode 100644 FModel/Forms/ColorPicker/Code/ColorPickerDialogOptions.cs create mode 100644 FModel/Forms/ColorPicker/Code/ColorSwatchItem.cs create mode 100644 FModel/Forms/ColorPicker/Code/Util.cs create mode 100644 FModel/Forms/ColorPicker/ColorPickRow.xaml create mode 100644 FModel/Forms/ColorPicker/ColorPickRow.xaml.cs create mode 100644 FModel/Forms/ColorPicker/ColorPickerControl.xaml create mode 100644 FModel/Forms/ColorPicker/ColorPickerControl.xaml.cs create mode 100644 FModel/Forms/ColorPicker/ColorPickerSettings.cs create mode 100644 FModel/Forms/ColorPicker/ColorPickerSwatch.xaml create mode 100644 FModel/Forms/ColorPicker/ColorPickerSwatch.xaml.cs create mode 100644 FModel/Forms/ColorPicker/ColorPickerWindow.xaml create mode 100644 FModel/Forms/ColorPicker/ColorPickerWindow.xaml.cs create mode 100644 FModel/Forms/ColorPicker/SliderRow.xaml create mode 100644 FModel/Forms/ColorPicker/SliderRow.xaml.cs create mode 100644 FModel/Forms/FModel_About.xaml create mode 100644 FModel/Forms/FModel_About.xaml.cs create mode 100644 FModel/Forms/FModel_CustomMB.xaml create mode 100644 FModel/Forms/FModel_CustomMB.xaml.cs create mode 100644 FModel/Forms/FModel_ImagesMerger.xaml create mode 100644 FModel/Forms/FModel_ImagesMerger.xaml.cs create mode 100644 FModel/Forms/FModel_SearchFiles.xaml create mode 100644 FModel/Forms/FModel_SearchFiles.xaml.cs create mode 100644 FModel/Forms/FModel_Settings.xaml create mode 100644 FModel/Forms/FModel_Settings.xaml.cs create mode 100644 FModel/Forms/HexViewer/BaseByte.cs create mode 100644 FModel/Forms/HexViewer/BrushesDictionary.xaml create mode 100644 FModel/Forms/HexViewer/Core/BookMark.cs create mode 100644 FModel/Forms/HexViewer/Core/Bytes/ByteConverters.cs create mode 100644 FModel/Forms/HexViewer/Core/Bytes/ByteModified.cs create mode 100644 FModel/Forms/HexViewer/Core/Bytes/ByteProvider.cs create mode 100644 FModel/Forms/HexViewer/Core/Caret.cs create mode 100644 FModel/Forms/HexViewer/Core/CharacterTable/DTE.cs create mode 100644 FModel/Forms/HexViewer/Core/CharacterTable/Enum.cs create mode 100644 FModel/Forms/HexViewer/Core/CharacterTable/TBLStream.cs create mode 100644 FModel/Forms/HexViewer/Core/ConstantReadOnly.cs create mode 100644 FModel/Forms/HexViewer/Core/Converters/BoolInverterConverter.cs create mode 100644 FModel/Forms/HexViewer/Core/Converters/BooleanToVisibilityConverter.cs create mode 100644 FModel/Forms/HexViewer/Core/Converters/HexToLongStringConverter.cs create mode 100644 FModel/Forms/HexViewer/Core/Converters/LongToHexStringConverter.cs create mode 100644 FModel/Forms/HexViewer/Core/Converters/PathToFilenameConverter.cs create mode 100644 FModel/Forms/HexViewer/Core/Enumeration.cs create mode 100644 FModel/Forms/HexViewer/Core/GenericStaticInstance.cs create mode 100644 FModel/Forms/HexViewer/Core/Interfaces/IByteControl.cs create mode 100644 FModel/Forms/HexViewer/Core/Interfaces/IByteModified.cs create mode 100644 FModel/Forms/HexViewer/Core/KeyValidator.cs create mode 100644 FModel/Forms/HexViewer/Core/MethodExtention/ApplicationExtention.cs create mode 100644 FModel/Forms/HexViewer/Core/MethodExtention/ByteArrayExtention.cs create mode 100644 FModel/Forms/HexViewer/Core/MethodExtention/DoubleExtension.cs create mode 100644 FModel/Forms/HexViewer/Core/MethodExtention/StringExtension.cs create mode 100644 FModel/Forms/HexViewer/Core/MethodExtention/TrackExtention.cs create mode 100644 FModel/Forms/HexViewer/Core/Native/NativeMethods.cs create mode 100644 FModel/Forms/HexViewer/Core/Xcbb/CustomBackgroundBlock.cs create mode 100644 FModel/Forms/HexViewer/Core/Xcbb/ExeFile.cs create mode 100644 FModel/Forms/HexViewer/Core/Xcbb/Exefile.xcbb create mode 100644 FModel/Forms/HexViewer/Core/Xcbb/XcbbExpressionParser.cs create mode 100644 FModel/Forms/HexViewer/Core/Xcbb/XcbbFileParser.cs create mode 100644 FModel/Forms/HexViewer/FastTextLine.cs create mode 100644 FModel/Forms/HexViewer/FindReplaceWindow.xaml create mode 100644 FModel/Forms/HexViewer/FindReplaceWindow.xaml.cs create mode 100644 FModel/Forms/HexViewer/FindWindow.xaml create mode 100644 FModel/Forms/HexViewer/FindWindow.xaml.cs create mode 100644 FModel/Forms/HexViewer/GiveByteWindow.xaml create mode 100644 FModel/Forms/HexViewer/GiveByteWindow.xaml.cs create mode 100644 FModel/Forms/HexViewer/HexBox.xaml create mode 100644 FModel/Forms/HexViewer/HexBox.xaml.cs create mode 100644 FModel/Forms/HexViewer/HexByte.cs create mode 100644 FModel/Forms/HexViewer/HexEditor.xaml create mode 100644 FModel/Forms/HexViewer/HexEditor.xaml.cs create mode 100644 FModel/Forms/HexViewer/HexViewer.xaml create mode 100644 FModel/Forms/HexViewer/HexViewer.xaml.cs create mode 100644 FModel/Forms/HexViewer/MiscelanousDictionary.xaml create mode 100644 FModel/Forms/HexViewer/ReplaceByteWindow.xaml create mode 100644 FModel/Forms/HexViewer/ReplaceByteWindow.xaml.cs create mode 100644 FModel/Forms/HexViewer/StringByte.cs create mode 100644 FModel/Forms/HexViewer/ToolTipDictionary.xaml delete mode 100644 FModel/Forms/MergeImages.Designer.cs delete mode 100644 FModel/Forms/MergeImages.cs delete mode 100644 FModel/Forms/MergeImages.resx delete mode 100644 FModel/Forms/SearchFiles.Designer.cs delete mode 100644 FModel/Forms/SearchFiles.cs delete mode 100644 FModel/Forms/SearchFiles.resx delete mode 100644 FModel/Forms/Settings.Designer.cs delete mode 100644 FModel/Forms/Settings.cs delete mode 100644 FModel/Forms/Settings.resx delete mode 100644 FModel/Forms/UpdateModeSettings.Designer.cs delete mode 100644 FModel/Forms/UpdateModeSettings.cs delete mode 100644 FModel/Forms/UpdateModeSettings.resx create mode 100644 FModel/Logo.ico delete mode 100644 FModel/MainWindow.Designer.cs delete mode 100644 FModel/MainWindow.cs delete mode 100644 FModel/MainWindow.resx delete mode 100644 FModel/Methods/AESManager/DynamicKeys/AddToUI.cs delete mode 100644 FModel/Methods/AESManager/DynamicKeys/Keychain.cs create mode 100644 FModel/Methods/AESManager/DynamicKeysChecker.cs delete mode 100644 FModel/Methods/AESManager/DynamicKeysManager.cs create mode 100644 FModel/Methods/AESManager/KeysManager.cs create mode 100644 FModel/Methods/Assets/AssetInformations.cs create mode 100644 FModel/Methods/Assets/AssetTranslations.cs create mode 100644 FModel/Methods/Assets/AssetsLoader.cs create mode 100644 FModel/Methods/Assets/IconCreator/AthenaID/CosmeticSet.cs create mode 100644 FModel/Methods/Assets/IconCreator/AthenaID/IconUserFacingFlags.cs create mode 100644 FModel/Methods/Assets/IconCreator/ChallengeID/ChallengeBundleInfos.cs create mode 100644 FModel/Methods/Assets/IconCreator/ChallengeID/ChallengeCompletionRewards.cs create mode 100644 FModel/Methods/Assets/IconCreator/ChallengeID/ChallengeIconDesign.cs create mode 100644 FModel/Methods/Assets/IconCreator/ChallengeID/ChallengeRewards.cs create mode 100644 FModel/Methods/Assets/IconCreator/HeroID/HeroGameplayDefinition.cs create mode 100644 FModel/Methods/Assets/IconCreator/IconCreator.cs create mode 100644 FModel/Methods/Assets/IconCreator/IconImage.cs create mode 100644 FModel/Methods/Assets/IconCreator/IconText.cs create mode 100644 FModel/Methods/Assets/IconCreator/IconWatermark.cs create mode 100644 FModel/Methods/Assets/IconCreator/Rarity.cs create mode 100644 FModel/Methods/Assets/IconCreator/WeaponID/IconAmmoData.cs create mode 100644 FModel/Methods/Assets/IconCreator/WeaponID/WeaponStats.cs create mode 100644 FModel/Methods/BackupsManager/RegisterDownloadedBackups.cs delete mode 100644 FModel/Methods/Converter/UnrealEngineDataToOGG.cs delete mode 100644 FModel/Methods/DLLImport.cs create mode 100644 FModel/Methods/FVar.cs create mode 100644 FModel/Methods/FindReplace/FindReplace.cs create mode 100644 FModel/Methods/FindReplace/FindReplaceDialog.xaml create mode 100644 FModel/Methods/FindReplace/FindReplaceDialog.xaml.cs delete mode 100644 FModel/Methods/IconGenerator/ChallengeGenerator/BundleDesign.cs delete mode 100644 FModel/Methods/IconGenerator/ChallengeGenerator/BundleInfos.cs delete mode 100644 FModel/Methods/IconGenerator/ChallengeGenerator/ChallengeInfoEntry.cs delete mode 100644 FModel/Methods/IconGenerator/ChallengeGenerator/DrawingRewards.cs delete mode 100644 FModel/Methods/IconGenerator/ItemGenerator/DrawText.cs delete mode 100644 FModel/Methods/IconGenerator/ItemGenerator/ItemIcon.cs delete mode 100644 FModel/Methods/IconGenerator/ItemGenerator/Rarity.cs delete mode 100644 FModel/Methods/IconGenerator/SchematicGenerator/SchematicIconDesign.cs delete mode 100644 FModel/Methods/IconGenerator/SchematicGenerator/SchematicInfoEntry.cs delete mode 100644 FModel/Methods/IconGenerator/SchematicGenerator/SchematicItemInfos.cs delete mode 100644 FModel/Methods/IconGenerator/Translations/LoadLocRes.cs delete mode 100644 FModel/Methods/IconGenerator/Translations/SearchResource.cs delete mode 100644 FModel/Methods/JohnWick/JohnWick.cs create mode 100644 FModel/Methods/MessageBox/DarkMessageBox.cs create mode 100644 FModel/Methods/PAKs/BackupPAKs.cs create mode 100644 FModel/Methods/PAKs/PAKsLoader.cs create mode 100644 FModel/Methods/PAKs/RegisterFromPath.cs delete mode 100644 FModel/Methods/PakHelper/BackupFilesEntry.cs delete mode 100644 FModel/Methods/PakHelper/CreateBackup.cs delete mode 100644 FModel/Methods/PakHelper/PakHelper.cs create mode 100644 FModel/Methods/PakReader/AESDecryptor.cs create mode 100644 FModel/Methods/PakReader/AssetReader.cs create mode 100644 FModel/Methods/PakReader/AssetRegReader.cs create mode 100644 FModel/Methods/PakReader/DDSDecoder.cs create mode 100644 FModel/Methods/PakReader/Extensions.cs create mode 100644 FModel/Methods/PakReader/ImageExporter.cs create mode 100644 FModel/Methods/PakReader/LocReader.cs create mode 100644 FModel/Methods/PakReader/MeshExporter.cs create mode 100644 FModel/Methods/PakReader/Objects.cs create mode 100644 FModel/Methods/PakReader/PakIndex.cs create mode 100644 FModel/Methods/PakReader/PakReader.cs create mode 100644 FModel/Methods/PakReader/SigReader.cs create mode 100644 FModel/Methods/PakReader/UDicReader.cs delete mode 100644 FModel/Methods/Scintilla/MyScintilla.cs delete mode 100644 FModel/Methods/Serializer/AssetReader.cs delete mode 100644 FModel/Methods/Serializer/LocRes/HotfixedStrings.cs delete mode 100644 FModel/Methods/Serializer/LocRes/LocResSerializer.cs create mode 100644 FModel/Methods/SyntaxHighlighter/Ini.xshd create mode 100644 FModel/Methods/SyntaxHighlighter/Json.xshd create mode 100644 FModel/Methods/SyntaxHighlighter/ResourceLoader.cs create mode 100644 FModel/Methods/TreeViewModel/PropertyChangedBase.cs create mode 100644 FModel/Methods/TreeViewModel/SortedTreeViewWindowViewModel.cs create mode 100644 FModel/Methods/TreeViewModel/TreeViewItemBehavior.cs create mode 100644 FModel/Methods/TreeViewModel/TreeViewModel.cs delete mode 100644 FModel/Methods/UpdateMode/RegisterSettings.cs create mode 100644 FModel/Methods/Utilities/AESUtility.cs create mode 100644 FModel/Methods/Utilities/AssetsUtility.cs create mode 100644 FModel/Methods/Utilities/ChallengesUtility.cs create mode 100644 FModel/Methods/Utilities/EndpointsUtility.cs create mode 100644 FModel/Methods/Utilities/FoldersUtility.cs delete mode 100644 FModel/Methods/Utilities/FontUtilities.cs create mode 100644 FModel/Methods/Utilities/FormsUtility.cs delete mode 100644 FModel/Methods/Utilities/ImageUtilities.cs create mode 100644 FModel/Methods/Utilities/ImagesUtility.cs create mode 100644 FModel/Methods/Utilities/ListBoxUtility.cs create mode 100644 FModel/Methods/Utilities/MBoxesUtility.cs create mode 100644 FModel/Methods/Utilities/PAKsUtility.cs create mode 100644 FModel/Methods/Utilities/TasksUtility.cs create mode 100644 FModel/Methods/Utilities/TextsUtility.cs create mode 100644 FModel/Methods/Utilities/TreeViewUtility.cs create mode 100644 FModel/Methods/Utilities/UIUtility.cs delete mode 100644 FModel/Methods/Utilities/Utilities.cs delete mode 100644 FModel/Methods/VarApp.cs delete mode 100644 FModel/Resources/BurbankBigCondensed-Black-vJapanese.otf create mode 100644 FModel/Resources/EBCDIC-NoSpecialChar.tbl create mode 100644 FModel/Resources/EBCDIC.tbl delete mode 100644 FModel/Resources/FModel.ico delete mode 100644 FModel/Resources/FModel_Logo.png delete mode 100644 FModel/Resources/LBolt64.png create mode 100644 FModel/Resources/Logo-Icon.ico create mode 100644 FModel/Resources/Logo.png delete mode 100644 FModel/Resources/StatusAnnotations_Information_16xLG_color.png rename FModel/Resources/{cTemplate.png => Template_Challenge.png} (100%) create mode 100644 FModel/Resources/close_file_16x.png create mode 100644 FModel/Resources/colorpicker1.png create mode 100644 FModel/Resources/colorpicker2.png delete mode 100644 FModel/Resources/folder_Closed_16xLG.png create mode 100644 FModel/Resources/info_16x.png create mode 100644 FModel/Resources/open_16x.png delete mode 100644 FModel/Resources/properties_16xLG.png create mode 100644 FModel/Resources/save_16x.png create mode 100644 FModel/Resources/settings_16x.png delete mode 100644 FModel/Resources/twitter.ico create mode 100644 FModel/Themes/LeftMarginMultiplierConverter.cs create mode 100644 FModel/Themes/Styles.xaml create mode 100644 FModel/Themes/TreeViewItemExtensions.cs delete mode 100644 FModel/csharp_wick.dll create mode 100644 Images/FModel.png create mode 100644 Images/FModel_Demo.gif create mode 100644 Images/Logo.png diff --git a/.gitignore b/.gitignore index 3e759b75..63ed14cb 100644 --- a/.gitignore +++ b/.gitignore @@ -236,7 +236,7 @@ Generated_Code/ # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ -Backup*/ +#Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ diff --git a/FModel.sln b/FModel.sln index 945e05f0..fb6bcab7 100644 --- a/FModel.sln +++ b/FModel.sln @@ -1,37 +1,25 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 -VisualStudioVersion = 16.0.28803.202 +VisualStudioVersion = 16.0.28803.452 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FModel", "FModel\FModel.csproj", "{8FABCD3A-9D55-4B54-B237-B259D815DEB8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FModel", "FModel\FModel.csproj", "{8AAB27BD-18D7-4164-8BBC-AB534D55D30F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|x64.ActiveCfg = Debug|x64 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|x64.Build.0 = Debug|x64 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|x86.ActiveCfg = Debug|x86 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Debug|x86.Build.0 = Debug|x86 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|Any CPU.Build.0 = Release|Any CPU - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|x64.ActiveCfg = Release|x64 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|x64.Build.0 = Release|x64 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|x86.ActiveCfg = Release|x86 - {8FABCD3A-9D55-4B54-B237-B259D815DEB8}.Release|x86.Build.0 = Release|x86 + {8AAB27BD-18D7-4164-8BBC-AB534D55D30F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AAB27BD-18D7-4164-8BBC-AB534D55D30F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AAB27BD-18D7-4164-8BBC-AB534D55D30F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AAB27BD-18D7-4164-8BBC-AB534D55D30F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3D4827DE-E5BC-4FA0-9D6B-6804C8F3BA96} + SolutionGuid = {42CA5618-EB78-4DDF-95A4-BD589CC52791} EndGlobalSection EndGlobal diff --git a/FModel/App.config b/FModel/App.config index c32c8ca7..89e07837 100644 --- a/FModel/App.config +++ b/FModel/App.config @@ -6,77 +6,77 @@ - + - + - + - - False - - + - - 0 - - - 1 - - - False - - - - - - 1 - - - 0 - - - False - - - False - - - - - - True - - - English - - - - - - - - - False - - - - - - 1 - - - 50,50,50 - - + Default - + + English + + + False + + + False + + + + + + 0 + + + 0 + + + 3 + + + 3 + + + {BundleName} - {Date} + + + False + + + + + + 0 + + + False + + + True + + + False + + + True + + + 21:32:43 + + + 29:161:242 + + True @@ -84,8 +84,8 @@ - - + + diff --git a/FModel/App.xaml b/FModel/App.xaml new file mode 100644 index 00000000..f780ac10 --- /dev/null +++ b/FModel/App.xaml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/FModel/App.xaml.cs b/FModel/App.xaml.cs new file mode 100644 index 00000000..f7652b44 --- /dev/null +++ b/FModel/App.xaml.cs @@ -0,0 +1,18 @@ +using FModel.Methods.MessageBox; +using System.Windows; + +namespace FModel +{ + /// + /// Logique d'interaction pour App.xaml + /// + public partial class App : Application + { + void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) + { + string errorMessage = string.Format("An unhandled exception occurred: {0}", e.Exception.Message); + DarkMessageBox.Show(errorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error); + e.Handled = true; + } + } +} diff --git a/FModel/Commands/FModel_Commands.cs b/FModel/Commands/FModel_Commands.cs new file mode 100644 index 00000000..17503699 --- /dev/null +++ b/FModel/Commands/FModel_Commands.cs @@ -0,0 +1,12 @@ +using System.Windows.Input; + +namespace FModel.Commands +{ + static class FModel_Commands + { + public static readonly RoutedUICommand OpenSettings = new RoutedUICommand("Open Settings Window", "OpenSettings", typeof(MainWindow)); + public static readonly RoutedUICommand OpenSearch = new RoutedUICommand("Open Search Window", "OpenSearch", typeof(MainWindow)); + public static readonly RoutedUICommand OpenOutput = new RoutedUICommand("Open Output Folder", "OpenOutput", typeof(MainWindow)); + public static readonly RoutedUICommand MergeImages = new RoutedUICommand("Merge Images", "MergeImages", typeof(MainWindow)); + } +} diff --git a/FModel/Custom/JsonExtensions.cs b/FModel/Custom/JsonExtensions.cs deleted file mode 100644 index e8c1f48e..00000000 --- a/FModel/Custom/JsonExtensions.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; - -namespace FModel -{ - public static class JsonExtensions - { - public static List FindTokens(this JToken containerToken, string name) - { - List matches = new List(); - FindTokens(containerToken, name, matches); - return matches; - } - - private static void FindTokens(JToken containerToken, string name, List matches) - { - if (containerToken.Type == JTokenType.Object) - { - foreach (JProperty child in containerToken.Children()) - { - if (string.Equals(child.Name, name, StringComparison.CurrentCultureIgnoreCase)) - { - matches.Add(child.Value); - } - FindTokens(child.Value, name, matches); - } - } - else if (containerToken.Type == JTokenType.Array) - { - foreach (JToken child in containerToken.Children()) - { - FindTokens(child, name, matches); - } - } - } - } -} diff --git a/FModel/Custom/TypeAssistant.cs b/FModel/Custom/TypeAssistant.cs deleted file mode 100644 index c8519775..00000000 --- a/FModel/Custom/TypeAssistant.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Threading; - -namespace FModel -{ - public class TypeAssistant - { - public event EventHandler Idled = delegate { }; - public int WaitingMilliSeconds { get; set; } - Timer _waitingTimer; - - public TypeAssistant(int waitingMilliSeconds = 600) - { - WaitingMilliSeconds = waitingMilliSeconds; - _waitingTimer = new Timer(p => - { - Idled(this, EventArgs.Empty); - }); - } - public void TextChanged() - { - _waitingTimer.Change(WaitingMilliSeconds, Timeout.Infinite); - } - } -} diff --git a/FModel/DLLs/ScintillaNET FindReplaceDialog.dll b/FModel/DLLs/ScintillaNET FindReplaceDialog.dll deleted file mode 100644 index 45659b0ff1742b48d4bb228e02cf687b3a4065ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83456 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 diff --git a/FModel/DLLs/csharp-wick.dll b/FModel/DLLs/csharp-wick.dll deleted file mode 100644 index 48dc32a104921b41f8c9cfbbbbe59d639313e863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 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 diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index f922844f..5c0df7d5 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -4,16 +4,34 @@ Debug AnyCPU - {8FABCD3A-9D55-4B54-B237-B259D815DEB8} + {8AAB27BD-18D7-4164-8BBC-AB534D55D30F} WinExe FModel FModel - v4.7.1 + v4.7.2 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 true true + + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true x64 @@ -24,259 +42,460 @@ DEBUG;TRACE prompt 4 + true - AnyCPU + x64 pdbonly true bin\Release\ TRACE prompt 4 + true + false - FModel.ico + Logo.ico FModel.Program - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x64\Release\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - ..\packages\Autoupdater.NET.Official.1.5.4\lib\net40\AutoUpdater.NET.dll + + ..\packages\Autoupdater.NET.Official.1.5.7\lib\net40\AutoUpdater.NET.dll - - False - DLLs\csharp-wick.dll + + ..\packages\HtmlAgilityPack.1.11.16\lib\Net45\HtmlAgilityPack.dll - - ..\packages\Cyotek.Windows.Forms.ColorPicker.1.7.2\lib\net35\Cyotek.Windows.Forms.ColorPicker.dll - - - ..\packages\HtmlAgilityPack.1.11.12\lib\Net45\HtmlAgilityPack.dll + + ..\packages\AvalonEdit.6.0.0\lib\net45\ICSharpCode.AvalonEdit.dll ..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Ookii.Dialogs.Wpf.1.1.0\lib\net45\Ookii.Dialogs.Wpf.dll + ..\packages\RestSharp.106.6.10\lib\net452\RestSharp.dll - - False - DLLs\ScintillaNET FindReplaceDialog.dll - - - ..\packages\jacobslusser.ScintillaNET.3.6.3\lib\net40\ScintillaNET.dll + + ..\packages\SkiaSharp.1.68.0\lib\net45\SkiaSharp.dll - - - - - - - - + - + + + + + + + + + 4.0 + + + + + + ..\packages\WriteableBitmapEx.1.6.3\lib\net40\WriteableBitmapEx.Wpf.dll + - - Form - - - MergeImages.cs - - - - - - Form - - - AESManager.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - Form - - - About.cs - - - Form - - - SearchFiles.cs - - - Form - - - Settings.cs - - - Form - - - UpdateModeSettings.cs - - - Form - - - MainWindow.cs - - - - - - - - - About.cs - - - AESManager.cs - - - MergeImages.cs - - - SearchFiles.cs - - - Settings.cs - - - UpdateModeSettings.cs - - - MainWindow.cs - - - ResXFileCodeGenerator + + MSBuild:Compile Designer - Resources.Designer.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - + + + + AESManager.xaml + + + + + + + ColorPickerControl.xaml + + + + ColorPickerSwatch.xaml + + + ColorPickerWindow.xaml + + + ColorPickRow.xaml + + + SliderRow.xaml + + + FModel_About.xaml + + + FModel_CustomMB.xaml + + + FModel_ImagesMerger.xaml + + + FModel_SearchFiles.xaml + + + FModel_Settings.xaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FindReplaceWindow.xaml + + + FindWindow.xaml + + + GiveByteWindow.xaml + + + HexBox.xaml + + + + HexEditor.xaml + + + HexViewer.xaml + + + ReplaceByteWindow.xaml + + + + + + + + + + + + + + + + + + + + + + + + + FindReplaceDialog.xaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True True Resources.resx + + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + FModel_Main.xaml + Code + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + + + Code + True Settings.settings True + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + - - Always - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + False + Microsoft .NET Framework 4.7.2 %28x86 et x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -285,8 +504,11 @@ - - - - + + + + Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}. + + + \ No newline at end of file diff --git a/FModel/FModel.ico b/FModel/FModel.ico deleted file mode 100644 index e2328d8ac168f7463e16afe3ddb165c342a15782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73621 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 TtHGKI00000NkvXXu0mjfke;_F diff --git a/FModel/FModel_Main.xaml b/FModel/FModel_Main.xaml new file mode 100644 index 00000000..c326a826 --- /dev/null +++ b/FModel/FModel_Main.xaml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FModel/Forms/FModel_CustomMB.xaml.cs b/FModel/Forms/FModel_CustomMB.xaml.cs new file mode 100644 index 00000000..ca68b44d --- /dev/null +++ b/FModel/Forms/FModel_CustomMB.xaml.cs @@ -0,0 +1,234 @@ +using FModel.Methods.Utilities; +using System.Drawing; +using System.Windows; +using System.Windows.Media; + +namespace FModel.Forms +{ + /// + /// Logique d'interaction pour FModel_CustomMB.xaml + /// + internal partial class FModel_CustomMB : Window + { + internal string Caption + { + get + { + return Title; + } + set + { + Title = value; + } + } + + internal string Message + { + get + { + return TextBlock_Message.Text; + } + set + { + TextBlock_Message.Text = value; + } + } + + internal string OkButtonText + { + get + { + return Label_Ok.Content.ToString(); + } + set + { + Label_Ok.Content = value.TryAddKeyboardAccellerator(); + } + } + + internal string CancelButtonText + { + get + { + return Label_Cancel.Content.ToString(); + } + set + { + Label_Cancel.Content = value.TryAddKeyboardAccellerator(); + } + } + + internal string YesButtonText + { + get + { + return Label_Yes.Content.ToString(); + } + set + { + Label_Yes.Content = value.TryAddKeyboardAccellerator(); + } + } + + internal string NoButtonText + { + get + { + return Label_No.Content.ToString(); + } + set + { + Label_No.Content = value.TryAddKeyboardAccellerator(); + } + } + + public MessageBoxResult Result { get; set; } + + internal FModel_CustomMB(string message) + { + InitializeComponent(); + this.SetValue(TextOptions.TextFormattingModeProperty, TextFormattingMode.Display); + + Message = message; + Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed; + DisplayButtons(MessageBoxButton.OK); + } + + internal FModel_CustomMB(string message, string caption) + { + InitializeComponent(); + + Message = message; + Caption = caption; + Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed; + DisplayButtons(MessageBoxButton.OK); + } + + internal FModel_CustomMB(string message, string caption, MessageBoxButton button) + { + InitializeComponent(); + + Message = message; + Caption = caption; + Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed; + + DisplayButtons(button); + } + + internal FModel_CustomMB(string message, string caption, MessageBoxImage image) + { + InitializeComponent(); + + Message = message; + Caption = caption; + DisplayImage(image); + DisplayButtons(MessageBoxButton.OK); + } + + internal FModel_CustomMB(string message, string caption, MessageBoxButton button, MessageBoxImage image) + { + InitializeComponent(); + + Message = message; + Caption = caption; + Image_MessageBox.Visibility = System.Windows.Visibility.Collapsed; + + DisplayButtons(button); + DisplayImage(image); + } + + private void DisplayButtons(MessageBoxButton button) + { + switch (button) + { + case MessageBoxButton.OKCancel: + // Hide all but OK, Cancel + Button_OK.Visibility = System.Windows.Visibility.Visible; + Button_OK.Focus(); + Button_Cancel.Visibility = System.Windows.Visibility.Visible; + + Button_Yes.Visibility = System.Windows.Visibility.Collapsed; + Button_No.Visibility = System.Windows.Visibility.Collapsed; + break; + case MessageBoxButton.YesNo: + // Hide all but Yes, No + Button_Yes.Visibility = System.Windows.Visibility.Visible; + Button_Yes.Focus(); + Button_No.Visibility = System.Windows.Visibility.Visible; + + Button_OK.Visibility = System.Windows.Visibility.Collapsed; + Button_Cancel.Visibility = System.Windows.Visibility.Collapsed; + break; + case MessageBoxButton.YesNoCancel: + // Hide only OK + Button_Yes.Visibility = System.Windows.Visibility.Visible; + Button_Yes.Focus(); + Button_No.Visibility = System.Windows.Visibility.Visible; + Button_Cancel.Visibility = System.Windows.Visibility.Visible; + + Button_OK.Visibility = System.Windows.Visibility.Collapsed; + break; + default: + // Hide all but OK + Button_OK.Visibility = System.Windows.Visibility.Visible; + Button_OK.Focus(); + + Button_Yes.Visibility = System.Windows.Visibility.Collapsed; + Button_No.Visibility = System.Windows.Visibility.Collapsed; + Button_Cancel.Visibility = System.Windows.Visibility.Collapsed; + break; + } + } + + private void DisplayImage(MessageBoxImage image) + { + Icon icon; + + switch (image) + { + case MessageBoxImage.Exclamation: // Enumeration value 48 - also covers "Warning" + icon = SystemIcons.Exclamation; + break; + case MessageBoxImage.Error: // Enumeration value 16, also covers "Hand" and "Stop" + icon = SystemIcons.Hand; + break; + case MessageBoxImage.Information: // Enumeration value 64 - also covers "Asterisk" + icon = SystemIcons.Information; + break; + case MessageBoxImage.Question: + icon = SystemIcons.Question; + break; + default: + icon = SystemIcons.Information; + break; + } + + Image_MessageBox.Source = icon.ToImageSource(); + Image_MessageBox.Visibility = System.Windows.Visibility.Visible; + } + + private void Button_OK_Click(object sender, RoutedEventArgs e) + { + Result = MessageBoxResult.OK; + Close(); + } + + private void Button_Cancel_Click(object sender, RoutedEventArgs e) + { + Result = MessageBoxResult.Cancel; + Close(); + } + + private void Button_Yes_Click(object sender, RoutedEventArgs e) + { + Result = MessageBoxResult.Yes; + Close(); + } + + private void Button_No_Click(object sender, RoutedEventArgs e) + { + Result = MessageBoxResult.No; + Close(); + } + } +} diff --git a/FModel/Forms/FModel_ImagesMerger.xaml b/FModel/Forms/FModel_ImagesMerger.xaml new file mode 100644 index 00000000..e4bcd6db --- /dev/null +++ b/FModel/Forms/FModel_ImagesMerger.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/FModel/Forms/HexViewer/FindReplaceWindow.xaml.cs b/FModel/Forms/HexViewer/FindReplaceWindow.xaml.cs new file mode 100644 index 00000000..e3521307 --- /dev/null +++ b/FModel/Forms/HexViewer/FindReplaceWindow.xaml.cs @@ -0,0 +1,84 @@ +using System.IO; +using System.Windows; + +namespace WpfHexaEditor.Dialog +{ + /// + /// Logique d'interaction pour FindReplaceWindow.xaml + /// + public partial class FindReplaceWindow + { + private readonly HexEditor _parent; + + public FindReplaceWindow(HexEditor parent, byte[] findData = null) + { + InitializeComponent(); + + //Parent hexeditor for "binding" search + _parent = parent; + + InitializeMStream(FindHexEdit, findData); + InitializeMStream(ReplaceHexEdit); + } + + #region Events + private void ClearButton_Click(object sender, RoutedEventArgs e) => InitializeMStream(FindHexEdit); + private void ClearReplaceButton_Click(object sender, RoutedEventArgs e) => InitializeMStream(ReplaceHexEdit); + private void CloseButton_Click(object sender, RoutedEventArgs e) => Close(); + + private void FindAllButton_Click(object sender, RoutedEventArgs e) => + _parent?.FindAll(FindHexEdit.GetAllBytes(), HighlightMenuItem.IsChecked); + + private void FindFirstButton_Click(object sender, RoutedEventArgs e) => + _parent?.FindFirst(FindHexEdit.GetAllBytes(), 0, HighlightMenuItem.IsChecked); + + private void FindNextButton_Click(object sender, RoutedEventArgs e) => + _parent?.FindNext(FindHexEdit.GetAllBytes(), HighlightMenuItem.IsChecked); + + private void FindLastButton_Click(object sender, RoutedEventArgs e) => + _parent?.FindLast(FindHexEdit.GetAllBytes(), HighlightMenuItem.IsChecked); + + private void ReplaceButton_Click(object sender, RoutedEventArgs e) => + _parent?.ReplaceFirst(FindHexEdit.GetAllBytes(), ReplaceHexEdit.GetAllBytes(), + TrimMenuItem.IsChecked, HighlightMenuItem.IsChecked); + + private void ReplaceNextButton_Click(object sender, RoutedEventArgs e) => + _parent?.ReplaceNext(FindHexEdit.GetAllBytes(), ReplaceHexEdit.GetAllBytes(), + TrimMenuItem.IsChecked, HighlightMenuItem.IsChecked); + + private void ReplaceAllButton_Click(object sender, RoutedEventArgs e) => + _parent?.ReplaceAll(FindHexEdit.GetAllBytes(), ReplaceHexEdit.GetAllBytes(), + TrimMenuItem.IsChecked, HighlightMenuItem.IsChecked); + + private void ReplaceHexEdit_BytesDeleted(object sender, System.EventArgs e) => + InitializeMStream(ReplaceHexEdit, ReplaceHexEdit.GetAllBytes()); + + private void FindHexEdit_BytesDeleted(object sender, System.EventArgs e) => + InitializeMStream(FindHexEdit, FindHexEdit.GetAllBytes()); + + private void SettingButton_Click(object sender, RoutedEventArgs e) => SettingPopup.IsOpen = true; + + private void SettingMenuItem_Click(object sender, RoutedEventArgs e) => SettingPopup.IsOpen = false; + #endregion + + #region Methods + /// + /// Initialize stream and hexeditor + /// + private void InitializeMStream(HexEditor hexeditor, byte[] findData = null) + { + hexeditor.CloseProvider(); + + var ms = new MemoryStream(1); + + if (findData != null && findData.Length > 0) + foreach (byte b in findData) + ms.WriteByte(b); + else + ms.WriteByte(0); + + hexeditor.Stream = ms; + } + #endregion + } +} diff --git a/FModel/Forms/HexViewer/FindWindow.xaml b/FModel/Forms/HexViewer/FindWindow.xaml new file mode 100644 index 00000000..e6c67396 --- /dev/null +++ b/FModel/Forms/HexViewer/FindWindow.xaml @@ -0,0 +1,119 @@ + + + + + + +