From f2ca64970e953093acde9b3195cb235915c80f60 Mon Sep 17 00:00:00 2001 From: OliBomby Date: Sat, 22 May 2021 19:31:09 +0200 Subject: [PATCH] Updated OsuMemoryDataProvider It works in x64 now --- Mapping_Tools.sln | 8 +++---- Mapping_Tools/Classes/SystemTools/IOHelper.cs | 21 ++++++++++++++---- Mapping_Tools/Mapping_Tools.csproj | 18 +++++++++------ .../Mapping_Tools_Tests.csproj | 2 +- lib/OsuMemoryDataProvider.dll | Bin 35840 -> 0 bytes lib/ProcessMemoryDataFinder.dll | Bin 43008 -> 0 bytes 6 files changed, 33 insertions(+), 16 deletions(-) delete mode 100644 lib/OsuMemoryDataProvider.dll delete mode 100644 lib/ProcessMemoryDataFinder.dll diff --git a/Mapping_Tools.sln b/Mapping_Tools.sln index bae02985..ad2fa5bd 100644 --- a/Mapping_Tools.sln +++ b/Mapping_Tools.sln @@ -19,8 +19,8 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x64.ActiveCfg = Debug|Any CPU - {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x64.Build.0 = Debug|Any CPU + {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x64.ActiveCfg = Debug|x64 + {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x64.Build.0 = Debug|x64 {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x86.ActiveCfg = Debug|x86 {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Debug|x86.Build.0 = Debug|x86 {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -31,8 +31,8 @@ Global {D01ED42E-8057-489C-96B4-FFDCEBD5E53F}.Release|x86.Build.0 = Release|Any CPU {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x64.ActiveCfg = Debug|Any CPU - {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x64.Build.0 = Debug|Any CPU + {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x64.ActiveCfg = Debug|x64 + {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x64.Build.0 = Debug|x64 {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x86.ActiveCfg = Debug|x86 {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Debug|x86.Build.0 = Debug|x86 {F418EF3E-C92E-4303-A00D-8D0B78793AAA}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/Mapping_Tools/Classes/SystemTools/IOHelper.cs b/Mapping_Tools/Classes/SystemTools/IOHelper.cs index 0714b367..77fd5772 100644 --- a/Mapping_Tools/Classes/SystemTools/IOHelper.cs +++ b/Mapping_Tools/Classes/SystemTools/IOHelper.cs @@ -5,10 +5,13 @@ using OsuMemoryDataProvider; using Mapping_Tools.Classes.ToolHelpers; using Microsoft.Win32; +using OsuMemoryDataProvider.OsuMemoryModels; +using OsuMemoryDataProvider.OsuMemoryModels.Direct; namespace Mapping_Tools.Classes.SystemTools { public class IOHelper { - private static readonly IOsuMemoryReader PioReader = OsuMemoryReader.Instance; + private static readonly StructuredOsuMemoryReader pioStructuredReader = StructuredOsuMemoryReader.Instance; + private static readonly OsuBaseAddresses osuBaseAddresses = new(); public static string FolderDialog(string initialDirectory = "") { bool restore = initialDirectory == ""; @@ -143,6 +146,16 @@ public static string[] BeatmapFileDialog(string initialDirectory, bool multisele return openFileDialog.FileNames; } + private static T ReadClassProperty(object readObj, string propName, T defaultValue = default) where T : class { + if (pioStructuredReader.TryReadProperty(readObj, propName, out var readResult)) + return (T)readResult; + + return defaultValue; + } + + private static string ReadString(object readObj, string propName) + => ReadClassProperty(readObj, propName); + public static string GetCurrentBeatmap() { string path; try { @@ -152,9 +165,9 @@ public static string GetCurrentBeatmap() { throw new Exception( @"Can't fetch current in-game beatmap, because there is no Songs path specified in Preferences."); } - - string folder = PioReader.GetMapFolderName(); - string filename = PioReader.GetOsuFileName(); + + string folder = ReadString(osuBaseAddresses.Beatmap, nameof(CurrentBeatmap.FolderName)); + string filename = ReadString(osuBaseAddresses.Beatmap, nameof(CurrentBeatmap.OsuFileName)); if (string.IsNullOrEmpty(folder)) { throw new Exception(@"Can't fetch the folder name of the current in-game beatmap."); diff --git a/Mapping_Tools/Mapping_Tools.csproj b/Mapping_Tools/Mapping_Tools.csproj index b56f0b05..ed70b9cb 100644 --- a/Mapping_Tools/Mapping_Tools.csproj +++ b/Mapping_Tools/Mapping_Tools.csproj @@ -9,7 +9,7 @@ 1.8.1 Mapping Tools Data\mt_icon.ico - AnyCPU;x86 + AnyCPU;x86;x64 Mapping_Tools @@ -17,6 +17,10 @@ true + + true + + true @@ -26,6 +30,11 @@ false + + true + false + + true false @@ -35,12 +44,6 @@ true - - true - - - true - ..\lib\NonInvasiveKeyboardHookLibrary.Core.dll @@ -57,6 +60,7 @@ + diff --git a/Mapping_Tools_Tests/Mapping_Tools_Tests.csproj b/Mapping_Tools_Tests/Mapping_Tools_Tests.csproj index bdc4ae51..1a0b8e05 100644 --- a/Mapping_Tools_Tests/Mapping_Tools_Tests.csproj +++ b/Mapping_Tools_Tests/Mapping_Tools_Tests.csproj @@ -2,7 +2,7 @@ net5.0-windows false - AnyCPU;x86 + AnyCPU;x86;x64 diff --git a/lib/OsuMemoryDataProvider.dll b/lib/OsuMemoryDataProvider.dll deleted file mode 100644 index 9ab206fb6b22db6ae29cb5cf967cbc330b09c5be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35840 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 a=f9%`?!~$ZdbKV1@2K4W==A^E0{;vA@&(@j