From e765ad540d5c572cab52e9a0cc639ca8728c7ac9 Mon Sep 17 00:00:00 2001 From: Daniel Ong Date: Sun, 2 Sep 2018 13:35:57 -0700 Subject: [PATCH] Initial commit --- App.cs | 33 ++++ AssemblyInfo.cs | 15 ++ MainWindow.xaml.cs | 324 ++++++++++++++++++++++++++++++++++++ Properties/Resources.cs | 52 ++++++ Properties/Resources.resx | 120 +++++++++++++ Properties/Settings.cs | 27 +++ mainwindow.xaml | 12 ++ mhw.cs | 119 +++++++++++++ mhw_damage_meter_1_0.csproj | 63 +++++++ mhw_damage_meter_1_0.sln | 20 +++ 10 files changed, 785 insertions(+) create mode 100644 App.cs create mode 100644 AssemblyInfo.cs create mode 100644 MainWindow.xaml.cs create mode 100644 Properties/Resources.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.cs create mode 100644 mainwindow.xaml create mode 100644 mhw.cs create mode 100644 mhw_damage_meter_1_0.csproj create mode 100644 mhw_damage_meter_1_0.sln diff --git a/App.cs b/App.cs new file mode 100644 index 0000000..1b15717 --- /dev/null +++ b/App.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: mhw_dps_wpf.App +// Assembly: mhw_dps_wpf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 9AF2A04E-56DA-4D52-9297-848C4FCE5E85 +// Assembly location: C:\Users\Daniel\Desktop\mhw_damage_meter_1_0.exe + +using System; +using System.CodeDom.Compiler; +using System.Diagnostics; +using System.Windows; + +namespace mhw_dps_wpf +{ + public class App : Application + { + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() + { + this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative); + } + + [STAThread] + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + public static void Main() + { + App app = new App(); + app.InitializeComponent(); + app.Run(); + } + } +} diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs new file mode 100644 index 0000000..e3d7822 --- /dev/null +++ b/AssemblyInfo.cs @@ -0,0 +1,15 @@ +using System.Reflection; +using System.Runtime.InteropServices; +using System.Windows; + +[assembly: AssemblyTitle("mhw_dps_wpf")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("mhw_dps_wpf")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] +[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.0.0")] diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs new file mode 100644 index 0000000..7374b28 --- /dev/null +++ b/MainWindow.xaml.cs @@ -0,0 +1,324 @@ +// Decompiled with JetBrains decompiler +// Type: mhw_dps_wpf.MainWindow +// Assembly: mhw_dps_wpf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 9AF2A04E-56DA-4D52-9297-848C4FCE5E85 +// Assembly location: C:\Users\Daniel\Desktop\mhw_damage_meter_1_0.exe + +using System; +using System.CodeDom.Compiler; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Effects; +using System.Windows.Shapes; +using System.Windows.Threading; + +namespace mhw_dps_wpf +{ + public partial class MainWindow : Window, IComponentConnector + { + private static Color[] player_colors = new Color[4] + { + Color.FromRgb((byte) 225, (byte) 65, (byte) 55), + Color.FromRgb((byte) 53, (byte) 136, (byte) 227), + Color.FromRgb((byte) 196, (byte) 172, (byte) 44), + Color.FromRgb((byte) 42, (byte) 208, (byte) 55) + }; + private DispatcherTimer dispatcherTimer = new DispatcherTimer(); + private string[] player_names = new string[4]; + private int[] player_damages = new int[4]{ 4, 5, 6, 7 }; + private int my_seat_id = -5; + private Rectangle[] damage_bar_rects = new Rectangle[4]; + private TextBlock[] player_name_tbs = new TextBlock[4]; + private TextBlock[] player_dmg_tbs = new TextBlock[4]; + private double last_activated = MainWindow.time(); + private Process game; + private bool init_finished; + internal Canvas front_canvas; + private bool _contentLoaded; + + public MainWindow() + { + this.Topmost = true; + this.AllowsTransparency = true; + this.WindowStyle = WindowStyle.None; + this.Background = (Brush) Brushes.Transparent; + this.find_game_proc(); + this.InitializeComponent(); + } + + private static void assert(bool flag, string reason = "", bool show_reason = true) + { + if (flag) + return; + if (show_reason) + { + int num = (int) MessageBox.Show("assertion failed: " + reason); + } + Application.Current.Shutdown(); + } + + private void find_game_proc() + { + IEnumerable source = ((IEnumerable) Process.GetProcesses()).Where((Func) (x => x.ProcessName == "MonsterHunterWorld")); + MainWindow.assert(source.Count() == 1, "frm_main_load: #proc not 1.", true); + this.game = source.FirstOrDefault(); + } + + private void update_tick(object sender, EventArgs e) + { + if (this.game.HasExited) + Application.Current.Shutdown(); + if (!this.init_finished) + return; + int[] teamDmg = mhw.get_team_dmg(this.game); + string[] teamPlayerNames = mhw.get_team_player_names(this.game); + int playerSeatId = mhw.get_player_seat_id(this.game); + if (((IEnumerable) teamDmg).Sum() != 0 && playerSeatId >= 0 && teamPlayerNames[0] != "") + { + this.player_damages = teamDmg; + this.player_names = teamPlayerNames; + this.my_seat_id = playerSeatId; + this.update_info(false); + } + else + { + if (this.my_seat_id == -5) + return; + this.update_info(true); + } + } + + private void update_info(bool quest_end) + { + if (!this.init_finished) + return; + int num = ((IEnumerable) this.player_damages).Sum(); + if (quest_end) + { + for (int index = 0; index < 4; ++index) + { + this.player_name_tbs[index].Text = this.player_names[index]; + this.player_dmg_tbs[index].Text = this.player_names[index] == "" ? "" : this.player_damages[index].ToString() + " (" + ((float) ((double) this.player_damages[index] / (double) num * 100.0)).ToString("0.0") + "%)"; + } + } + else + { + for (int index = 0; index < 4; ++index) + { + this.player_name_tbs[index].Text = this.player_names[index]; + this.player_dmg_tbs[index].Text = this.player_names[index] == "" ? "" : " " + ((float) ((double) this.player_damages[index] / (double) num * 100.0)).ToString("0.0") + "%"; + } + if (num == 0) + { + for (int index = 0; index < 4; ++index) + this.damage_bar_rects[index].Width = 0.0; + } + else + { + for (int index = 0; index < 4; ++index) + { + this.damage_bar_rects[index].Width = (double) this.player_damages[index] / (double) ((IEnumerable) this.player_damages).Max() * this.front_canvas.ActualWidth; + if (index == this.my_seat_id) + this.damage_bar_rects[index].StrokeThickness = 1.0; + else + this.damage_bar_rects[index].StrokeThickness = 0.0; + } + } + } + } + + private void update_layout() + { + if (!this.init_finished) + return; + double num1 = (this.front_canvas.ActualHeight - 8.0) * 0.200000002980232; + double num2 = (this.front_canvas.ActualHeight - num1) / 3.0 - 2.0; + for (int index = 0; index < 4; ++index) + { + this.damage_bar_rects[index].Height = num1; + Canvas.SetTop((UIElement) this.damage_bar_rects[index], (double) index * num2 + 3.0); + Canvas.SetTop((UIElement) this.player_name_tbs[index], (double) index * num2 + 3.0 + 0.5 * num1 - 12.0); + Canvas.SetTop((UIElement) this.player_dmg_tbs[index], (double) index * num2 + 3.0 + 0.5 * num1 - 14.0); + Canvas.SetLeft((UIElement) this.player_dmg_tbs[index], this.front_canvas.ActualWidth - this.player_dmg_tbs[index].Width); + } + if (((IEnumerable) this.player_damages).Sum() == 0) + { + for (int index = 0; index < 4; ++index) + this.damage_bar_rects[index].Width = 0.0; + } + else + { + for (int index = 0; index < 4; ++index) + { + this.damage_bar_rects[index].Width = (double) this.player_damages[index] / (double) ((IEnumerable) this.player_damages).Max() * this.front_canvas.ActualWidth; + if (index == this.my_seat_id) + this.damage_bar_rects[index].StrokeThickness = 1.0; + else + this.damage_bar_rects[index].StrokeThickness = 0.0; + } + } + } + + private void init_canvas() + { + this.init_finished = true; + double num1 = this.front_canvas.ActualHeight * 0.200000002980232 - 1.75; + double num2 = (this.front_canvas.ActualHeight - num1) / 3.0; + for (int index = 0; index < 4; ++index) + { + this.damage_bar_rects[index] = new Rectangle(); + this.damage_bar_rects[index].Stroke = (Brush) new SolidColorBrush(Colors.White); + this.damage_bar_rects[index].StrokeThickness = 0.0; + this.damage_bar_rects[index].Fill = (Brush) new SolidColorBrush(MainWindow.player_colors[index]); + this.damage_bar_rects[index].Fill.Opacity = 0.65; + this.damage_bar_rects[index].Width = 200.0; + this.damage_bar_rects[index].Height = num1; + Canvas.SetTop((UIElement) this.damage_bar_rects[index], (double) index * num2); + this.front_canvas.Children.Add((UIElement) this.damage_bar_rects[index]); + this.player_name_tbs[index] = new TextBlock(); + this.player_name_tbs[index].FontSize = 16.0; + this.player_name_tbs[index].Width = 220.0; + this.player_name_tbs[index].Height = 40.0; + this.player_name_tbs[index].FontWeight = FontWeights.Bold; + this.player_name_tbs[index].Foreground = (Brush) new SolidColorBrush(Colors.White); + this.player_name_tbs[index].Effect = (Effect) new DropShadowEffect() + { + ShadowDepth = 0.0, + Color = Colors.Black, + BlurRadius = 4.0, + Opacity = 1.0 + }; + Canvas.SetTop((UIElement) this.player_name_tbs[index], (double) index * num2 + 0.5 * num1 - 14.0); + Canvas.SetLeft((UIElement) this.player_name_tbs[index], 3.0); + this.front_canvas.Children.Add((UIElement) this.player_name_tbs[index]); + this.player_dmg_tbs[index] = new TextBlock(); + this.player_dmg_tbs[index].TextAlignment = TextAlignment.Right; + this.player_dmg_tbs[index].Text = (index * 4000).ToString() + " (125.4%)"; + this.player_dmg_tbs[index].Effect = (Effect) new DropShadowEffect() + { + ShadowDepth = 0.0, + Color = Colors.Black, + BlurRadius = 4.0, + Opacity = 1.0 + }; + this.player_dmg_tbs[index].FontWeight = FontWeights.Bold; + this.player_dmg_tbs[index].FontSize = 16.0; + this.player_dmg_tbs[index].Foreground = (Brush) new SolidColorBrush(Colors.White); + this.player_dmg_tbs[index].Width = 175.0; + this.player_dmg_tbs[index].Height = 40.0; + Canvas.SetTop((UIElement) this.player_dmg_tbs[index], (double) index * num2 + 0.5 * num1 - 14.0); + Canvas.SetLeft((UIElement) this.player_dmg_tbs[index], this.front_canvas.ActualWidth - this.player_dmg_tbs[index].Width - 3.0); + this.front_canvas.Children.Add((UIElement) this.player_dmg_tbs[index]); + } + this.player_name_tbs[0].Text = "拖统计条:移动窗口"; + this.player_name_tbs[1].Text = "drag bars to move"; + this.player_name_tbs[2].Text = "滚轮:放大缩小窗口"; + this.player_name_tbs[3].Text = "mouse wheel to zoom"; + this.update_layout(); + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + this.init_canvas(); + this.dispatcherTimer.Tick += new EventHandler(this.update_tick); + this.dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 150); + this.dispatcherTimer.Start(); + this.ShowInTaskbar = false; + this.ShowInTaskbar = true; + } + + private void Window_SizeChanged(object sender, SizeChangedEventArgs e) + { + this.update_layout(); + } + + private static double time() + { + return (DateTime.UtcNow - DateTime.MinValue).TotalSeconds; + } + + private void Window_Activated(object sender, EventArgs e) + { + double num = MainWindow.time() - this.last_activated; + } + + private void Window_MouseDown(object sender, MouseButtonEventArgs e) + { + try + { + if (e.LeftButton != MouseButtonState.Pressed) + return; + this.DragMove(); + } + catch (Exception ex) + { + } + } + + private void Window_MouseWheel(object sender, MouseWheelEventArgs e) + { + if (e.RightButton == MouseButtonState.Pressed) + { + double num = this.Width + (double) e.Delta * 0.100000001490116; + if (num <= this.MinWidth) + return; + this.Width = num; + } + else if (e.LeftButton == MouseButtonState.Pressed) + { + double num = this.Height + (double) e.Delta * 0.100000001490116; + if (num <= this.MinHeight) + return; + this.Height = num; + } + else + { + double num1 = this.Width + (double) e.Delta * 0.0700000002980232; + if (num1 > this.MinWidth) + this.Width = num1; + double num2 = this.Height + (double) e.Delta * 0.0299999993294477; + if (num2 <= this.MinHeight) + return; + this.Height = num2; + } + } + + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() + { + if (this._contentLoaded) + return; + this._contentLoaded = true; + Application.LoadComponent((object) this, new Uri("/mhw_dps_wpf;component/mainwindow.xaml", UriKind.Relative)); + } + + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + [EditorBrowsable(EditorBrowsableState.Never)] + void IComponentConnector.Connect(int connectionId, object target) + { + if (connectionId != 1) + { + if (connectionId == 2) + this.front_canvas = (Canvas) target; + else + this._contentLoaded = true; + } + else + { + ((FrameworkElement) target).Loaded += new RoutedEventHandler(this.Window_Loaded); + ((FrameworkElement) target).SizeChanged += new SizeChangedEventHandler(this.Window_SizeChanged); + ((UIElement) target).MouseDown += new MouseButtonEventHandler(this.Window_MouseDown); + ((UIElement) target).MouseWheel += new MouseWheelEventHandler(this.Window_MouseWheel); + } + } + } +} diff --git a/Properties/Resources.cs b/Properties/Resources.cs new file mode 100644 index 0000000..8cadb76 --- /dev/null +++ b/Properties/Resources.cs @@ -0,0 +1,52 @@ +// Decompiled with JetBrains decompiler +// Type: mhw_dps_wpf.Properties.Resources +// Assembly: mhw_dps_wpf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 9AF2A04E-56DA-4D52-9297-848C4FCE5E85 +// Assembly location: C:\Users\Daniel\Desktop\mhw_damage_meter_1_0.exe + +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Resources; +using System.Runtime.CompilerServices; + +namespace mhw_dps_wpf.Properties +{ + [GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [DebuggerNonUserCode] + [CompilerGenerated] + internal class Resources + { + private static ResourceManager resourceMan; + private static CultureInfo resourceCulture; + + internal Resources() + { + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static ResourceManager ResourceManager + { + get + { + if (mhw_dps_wpf.Properties.Resources.resourceMan == null) + mhw_dps_wpf.Properties.Resources.resourceMan = new ResourceManager("mhw_dps_wpf.Properties.Resources", typeof (mhw_dps_wpf.Properties.Resources).Assembly); + return mhw_dps_wpf.Properties.Resources.resourceMan; + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static CultureInfo Culture + { + get + { + return mhw_dps_wpf.Properties.Resources.resourceCulture; + } + set + { + mhw_dps_wpf.Properties.Resources.resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..d58980a --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.cs b/Properties/Settings.cs new file mode 100644 index 0000000..42e7377 --- /dev/null +++ b/Properties/Settings.cs @@ -0,0 +1,27 @@ +// Decompiled with JetBrains decompiler +// Type: mhw_dps_wpf.Properties.Settings +// Assembly: mhw_dps_wpf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 9AF2A04E-56DA-4D52-9297-848C4FCE5E85 +// Assembly location: C:\Users\Daniel\Desktop\mhw_damage_meter_1_0.exe + +using System.CodeDom.Compiler; +using System.Configuration; +using System.Runtime.CompilerServices; + +namespace mhw_dps_wpf.Properties +{ + [CompilerGenerated] + [GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed class Settings : ApplicationSettingsBase + { + private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings()); + + public static Settings Default + { + get + { + return Settings.defaultInstance; + } + } + } +} diff --git a/mainwindow.xaml b/mainwindow.xaml new file mode 100644 index 0000000..92a0592 --- /dev/null +++ b/mainwindow.xaml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/mhw.cs b/mhw.cs new file mode 100644 index 0000000..3b284e4 --- /dev/null +++ b/mhw.cs @@ -0,0 +1,119 @@ +// Decompiled with JetBrains decompiler +// Type: mhw +// Assembly: mhw_dps_wpf, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 9AF2A04E-56DA-4D52-9297-848C4FCE5E85 +// Assembly location: C:\Users\Daniel\Desktop\mhw_damage_meter_1_0.exe + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; + +public static class mhw +{ + [DllImport("kernel32.dll")] + private static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead); + + private static bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer) + { + int lpNumberOfBytesRead = 0; + return mhw.ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer, lpBuffer.Length, ref lpNumberOfBytesRead); + } + + private static ulong read_ulong(IntPtr hProcess, IntPtr lpBaseAddress) + { + byte[] lpBuffer = new byte[8]; + mhw.ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer); + return BitConverter.ToUInt64(lpBuffer, 0); + } + + private static uint read_uint(IntPtr hProcess, IntPtr lpBaseAddress) + { + byte[] lpBuffer = new byte[4]; + mhw.ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer); + return BitConverter.ToUInt32(lpBuffer, 0); + } + + private static int dword_to_int(ref byte[] array) + { + return (int) array[0] + ((int) array[1] << 8) + ((int) array[2] << 16) + ((int) array[3] << 24); + } + + private static ulong asm_func1(Process proc, ulong rcx, uint edx) + { + int num1 = (int) mhw.read_uint(proc.Handle, (IntPtr) 5428922716L); + ulong num2 = rcx; + int num3 = (int) edx; + rcx = (ulong) (uint) (num1 & num3) * 88UL; + return num2 + 72UL + rcx; + } + + public static int[] get_team_dmg(Process proc) + { + int[] numArray = new int[4]; + byte[] array = new byte[4]; + byte[] lpBuffer = new byte[8]; + mhw.ReadProcessMemory(proc.Handle, (IntPtr) 5430696680L, lpBuffer); + ulong num1 = BitConverter.ToUInt64(lpBuffer, 0) + 26288UL; + mhw.ReadProcessMemory(proc.Handle, (IntPtr) 5430707384L, lpBuffer); + ulong uint64_1 = BitConverter.ToUInt64(lpBuffer, 0); + for (int index = 0; index < 4; ++index) + { + mhw.ReadProcessMemory(proc.Handle, (IntPtr) ((long) num1 + 4L * (long) index), array); + uint edx = mhw.read_uint(proc.Handle, (IntPtr) ((long) num1 + 4L * (long) index)); + ulong num2 = mhw.asm_func1(proc, uint64_1, edx); + if (num2 > 0UL) + { + mhw.ReadProcessMemory(proc.Handle, (IntPtr) ((long) num2 + 72L), lpBuffer); + ulong uint64_2 = BitConverter.ToUInt64(lpBuffer, 0); + if (uint64_2 > 0UL) + { + int num3 = mhw.ReadProcessMemory(proc.Handle, (IntPtr) ((long) uint64_2 + 72L), array) ? 1 : 0; + int num4 = mhw.dword_to_int(ref array); + if (num3 != 0 && num4 >= 0 && num4 <= 1048575) + numArray[index] = num4; + } + } + } + return numArray; + } + + public static int get_player_seat_id(Process proc) + { + uint num1 = mhw.read_uint(proc.Handle, (IntPtr) 5444288144L); + uint num2 = mhw.read_uint(proc.Handle, (IntPtr) ((long) (num1 + 600U))); + int num3 = -1; + if (num2 > 4096U) + { + uint num4 = mhw.read_uint(proc.Handle, (IntPtr) ((long) (num2 + 16U))); + if (num4 != 0U) + num3 = (int) mhw.read_uint(proc.Handle, (IntPtr) ((long) (num4 + 49132U))); + } + return num3; + } + + public static string[] get_team_player_names(Process proc) + { + string[] strArray = new string[4]; + byte[] array = new byte[40]; + int num = (int) mhw.read_uint(proc.Handle, (IntPtr) 5444288144L) + 346693; + for (int index1 = 0; index1 < 4; ++index1) + { + Array.Resize(ref array, 40); + mhw.ReadProcessMemory(proc.Handle, (IntPtr) (num + 33 * index1), array); + int index2 = Array.FindIndex(array, (Predicate) (x => x == (byte) 0)); + switch (index2) + { + case -1: + case 0: + strArray[index1] = ""; + break; + default: + Array.Resize(ref array, index2); + strArray[index1] = Encoding.UTF8.GetString(array); + break; + } + } + return strArray; + } +} diff --git a/mhw_damage_meter_1_0.csproj b/mhw_damage_meter_1_0.csproj new file mode 100644 index 0000000..1228595 --- /dev/null +++ b/mhw_damage_meter_1_0.csproj @@ -0,0 +1,63 @@ + + + + + Debug + AnyCPU + {D4F66696-B9F6-4DDD-B068-7C09EBDD4242} + WinExe + mhw_dps_wpf + v4.6.1 + 1.0.0.0 + 512 + mhw_dps_wpf + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + mainwindow.xaml + Code + + + + + + + + + MSBuild:Compile + Designer + + + + \ No newline at end of file diff --git a/mhw_damage_meter_1_0.sln b/mhw_damage_meter_1_0.sln new file mode 100644 index 0000000..ca767f9 --- /dev/null +++ b/mhw_damage_meter_1_0.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mhw_dps_wpf", "mhw_damage_meter_1_0.csproj", "{D4F66696-B9F6-4DDD-B068-7C09EBDD4242}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D4F66696-B9F6-4DDD-B068-7C09EBDD4242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4F66696-B9F6-4DDD-B068-7C09EBDD4242}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4F66696-B9F6-4DDD-B068-7C09EBDD4242}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4F66696-B9F6-4DDD-B068-7C09EBDD4242}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal