diff --git a/Artemis/Artemis/ArtemisBootstrapper.cs b/Artemis/Artemis/ArtemisBootstrapper.cs index d9d09728f..c41bb0e64 100644 --- a/Artemis/Artemis/ArtemisBootstrapper.cs +++ b/Artemis/Artemis/ArtemisBootstrapper.cs @@ -1,92 +1,93 @@ -using System.Diagnostics; -using System.Linq; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Forms; -using Artemis.ViewModels; -using Autofac; -using Caliburn.Micro; -using Caliburn.Micro.Autofac; -using Application = System.Windows.Application; -using MessageBox = System.Windows.Forms.MessageBox; - -namespace Artemis -{ - public class ArtemisBootstrapper : AutofacBootstrapper - { - public ArtemisBootstrapper() - { - CheckDuplicateInstances(); - - Initialize(); - - MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) => - { - var img = ctx.Source as Image; - var input = ctx.Source as IInputElement; - var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs; - - // If there is an image control, get the scaled position - if (img != null && e != null) - { - Point position = e.GetPosition(img); - return (int)(img.Source.Width * (position.X / img.ActualWidth)); - } - - // If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen - if (e != null && input != null) - return e.GetPosition(input).X; - - // Return 0 if no processing could be done - return 0; - }); - MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) => - { - var img = ctx.Source as Image; - var input = ctx.Source as IInputElement; - var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs; - - // If there is an image control, get the scaled position - if (img != null && e != null) - { - Point position = e.GetPosition(img); - return (int)(img.Source.Width * (position.Y / img.ActualWidth)); - } - - // If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen - if (e != null && input != null) - return e.GetPosition(input).Y; - - // Return 0 if no processing could be done - return 0; - }); - } - - protected override void ConfigureContainer(ContainerBuilder builder) - { - base.ConfigureContainer(builder); - - // create a window manager instance to be used by everyone asking for one (including Caliburn.Micro) - builder.RegisterInstance(new WindowManager()); - builder.RegisterType(); - builder.RegisterType(); - } - - protected override void OnStartup(object sender, StartupEventArgs e) - { - DisplayRootViewFor(); - } - - private void CheckDuplicateInstances() - { - var processes = Process.GetProcesses(); - if (processes.Count(p => p.ProcessName == "Artemis") < 2) - return; - - MessageBox.Show("An instance of Artemis is already running (check your system tray).", - "Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning); - Application.Current.Shutdown(); - } - - } +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Forms; +using Artemis.ViewModels; +using Autofac; +using Caliburn.Micro; +using Caliburn.Micro.Autofac; +using Application = System.Windows.Application; +using MessageBox = System.Windows.Forms.MessageBox; + +namespace Artemis +{ + public class ArtemisBootstrapper : AutofacBootstrapper + { + public ArtemisBootstrapper() + { + CheckDuplicateInstances(); + + Initialize(); + + MessageBinder.SpecialValues.Add("$scaledmousex", (ctx) => + { + var img = ctx.Source as Image; + var input = ctx.Source as IInputElement; + var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs; + + // If there is an image control, get the scaled position + if (img != null && e != null) + { + Point position = e.GetPosition(img); + return (int)(img.Source.Width * (position.X / img.ActualWidth)); + } + + // If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen + if (e != null && input != null) + return e.GetPosition(input).X; + + // Return 0 if no processing could be done + return 0; + }); + MessageBinder.SpecialValues.Add("$scaledmousey", (ctx) => + { + var img = ctx.Source as Image; + var input = ctx.Source as IInputElement; + var e = ctx.EventArgs as System.Windows.Input.MouseEventArgs; + + // If there is an image control, get the scaled position + if (img != null && e != null) + { + Point position = e.GetPosition(img); + return (int)(img.Source.Width * (position.Y / img.ActualWidth)); + } + + // If there is another type of of IInputControl get the non-scaled position - or do some processing to get a scaled position, whatever needs to happen + if (e != null && input != null) + return e.GetPosition(input).Y; + + // Return 0 if no processing could be done + return 0; + }); + } + + protected override void ConfigureContainer(ContainerBuilder builder) + { + base.ConfigureContainer(builder); + + // create a window manager instance to be used by everyone asking for one (including Caliburn.Micro) + builder.RegisterInstance(new WindowManager()); + builder.RegisterType(); + builder.RegisterType(); + } + + protected override void OnStartup(object sender, StartupEventArgs e) + { + DisplayRootViewFor(); + } + + private void CheckDuplicateInstances() + { + if (Process.GetProcesses().Count(p => p.ProcessName.Contains(Assembly.GetExecutingAssembly() + .FullName.Split(',')[0]) && !p.Modules[0].FileName.Contains("vshost")) < 2) + return; + + MessageBox.Show("An instance of Artemis is already running (check your system tray).", + "Artemis (╯°□°)╯︵ ┻━┻", MessageBoxButtons.OK, MessageBoxIcon.Warning); + Application.Current.Shutdown(); + } + + } } \ No newline at end of file diff --git a/pointers.json b/pointers.json index 66fb6af27..83e812568 100644 --- a/pointers.json +++ b/pointers.json @@ -2,17 +2,17 @@ [ { "Game":"RocketLeague", - "GameVersion":"1.15", + "GameVersion":"1.16", "GameAddresses":[ { "Description":"Boost", "BasePointer":{ - "value":22555396 + "value":22411984 }, "Offsets":[ - 180, - 260, - 800, + 1632, + 64, + 1636, 1800, 540 ]