From 694ab834bddb10e4c7ddbd8814032e28b2ab9466 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Fri, 9 Sep 2016 11:48:12 +0200 Subject: [PATCH] Referencing to own CUE build for now Fixed mousemat color processing --- Artemis/Artemis/Artemis.csproj | 2 +- .../Corsair/CorsairMousemats.cs | 24 +++++++++--------- Artemis/Artemis/Modules/Games/WoW/WoWModel.cs | 8 +++++- Artemis/Artemis/ViewModels/GamesViewModel.cs | 9 +++++++ Artemis/Artemis/lib/CUE.NET.dll | Bin 0 -> 70656 bytes 5 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 Artemis/Artemis/lib/CUE.NET.dll diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index 065d941fb..3cf6424bb 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -153,7 +153,7 @@ False - ..\..\..\CUE.NET\bin\CUE.NET.dll + lib\CUE.NET.dll ..\packages\DeltaCompressionDotNet.1.0.0\lib\net45\DeltaCompressionDotNet.dll diff --git a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs index 63c656c24..d8802317e 100644 --- a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs +++ b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs @@ -45,38 +45,38 @@ namespace Artemis.DeviceProviders.Corsair if (bitmap.Width != bitmap.Height) throw new ArgumentException("Bitmap must be a perfect square"); - var yStep = (double) bitmap.Width/5; - var xStep = (double) bitmap.Width/7; + var yStep = (double) bitmap.Width/4; + var xStep = (double) bitmap.Width/6; // This approach will break if any mousemats with different LED amounts are released, for now it will do. using (bitmap) { - var ledIndex = 1; + var ledIndex = 0; // Color each LED according to one of the pixels foreach (var corsairLed in CueSDK.MousematSDK.Leds.OrderBy(l => l.ToString())) { Color col; // Left side - if (ledIndex < 6) + if (ledIndex < 5) { - col = ledIndex != 5 - ? bitmap.GetPixel(0, (int) (ledIndex*yStep + yStep/2)) + col = ledIndex == 0 + ? bitmap.GetPixel(0, (int) (ledIndex*yStep)) : bitmap.GetPixel(0, (int) (ledIndex*yStep) - 1); } // Bottom - else if (ledIndex < 11) + else if (ledIndex < 10) { - // Start at index 2 because the corner belongs to the left side + // Start at index 1 because the corner belongs to the left side var zoneIndex = ledIndex - 4; - col = bitmap.GetPixel((int) (zoneIndex*xStep + xStep/2), 0); + col = bitmap.GetPixel((int) (zoneIndex*xStep), 39); } // Right side else { var zoneIndex = ledIndex - 10; - col = zoneIndex != 5 - ? bitmap.GetPixel(0, bitmap.Height - ((int) (zoneIndex*yStep + yStep/2))) - : bitmap.GetPixel(0, bitmap.Height - ((int) (zoneIndex*yStep) - 1)); + col = zoneIndex == 4 + ? bitmap.GetPixel(39, 40 - (int) (zoneIndex*yStep)) + : bitmap.GetPixel(39, 39 - (int) (zoneIndex*yStep)); } corsairLed.Color = col; diff --git a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs index 16ceebc01..546d47426 100644 --- a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs +++ b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs @@ -6,6 +6,7 @@ using Artemis.Managers; using Artemis.Models; using Artemis.Modules.Games.WoW.Data; using Artemis.Profiles.Layers.Models; +using Artemis.Settings; using Artemis.Utilities.Memory; using Process.NET; @@ -22,7 +23,12 @@ namespace Artemis.Modules.Games.WoW Name = "WoW"; ProcessName = "Wow-64"; Scale = 4; - Enabled = Settings.Enabled; + + // Currently WoW is locked behind a hidden trigger (obviously not that hidden if you're reading this) + // It is using memory reading and lets first try to contact Blizzard + var settings = SettingsProvider.Load(); + Enabled = settings.GamestatePort == 62575 && Settings.Enabled; + Initialized = false; // TODO: Retrieve from GitHub diff --git a/Artemis/Artemis/ViewModels/GamesViewModel.cs b/Artemis/Artemis/ViewModels/GamesViewModel.cs index f575a80ed..69bfe4c75 100644 --- a/Artemis/Artemis/ViewModels/GamesViewModel.cs +++ b/Artemis/Artemis/ViewModels/GamesViewModel.cs @@ -1,6 +1,9 @@ using System.Linq; +using Artemis.DAL; using Artemis.Managers; using Artemis.Modules.Effects.ProfilePreview; +using Artemis.Modules.Games.WoW; +using Artemis.Settings; using Artemis.ViewModels.Abstract; namespace Artemis.ViewModels @@ -23,8 +26,14 @@ namespace Artemis.ViewModels { base.OnActivate(); + var settings = SettingsProvider.Load(); foreach (var gameViewModel in _gameViewModels.OrderBy(g => g.DisplayName)) + { + if (settings.GamestatePort != 62575 && gameViewModel is WoWViewModel) + continue; + ActivateItem(gameViewModel); + } } } } \ No newline at end of file diff --git a/Artemis/Artemis/lib/CUE.NET.dll b/Artemis/Artemis/lib/CUE.NET.dll new file mode 100644 index 0000000000000000000000000000000000000000..4eb84292a6fff5e0e9b4a210a510e64cc8ea37aa GIT binary patch literal 70656 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