diff --git a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs index 1a82e8d50..ed62cae4e 100644 --- a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs +++ b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchDataModel.cs @@ -51,6 +51,7 @@ namespace Artemis.Modules.Games.Overwatch Ana, Sombra, Orisa, - Doomfist + Doomfist, + Moira } } \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs index 059fc90f6..5f85b4629 100644 --- a/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs +++ b/Artemis/Artemis/Modules/Games/Overwatch/OverwatchModel.cs @@ -78,7 +78,8 @@ namespace Artemis.Modules.Games.Overwatch new CharacterColor {Character = OverwatchCharacter.Ana, Color = Color.FromRgb(16, 36, 87)}, new CharacterColor {Character = OverwatchCharacter.Sombra, Color = Color.FromRgb(20, 5, 101)}, new CharacterColor {Character = OverwatchCharacter.Orisa, Color = Color.FromRgb(1,40,0)}, - new CharacterColor {Character = OverwatchCharacter.Doomfist, Color = Color.FromRgb(33, 3, 1)} + new CharacterColor {Character = OverwatchCharacter.Doomfist, Color = Color.FromRgb(33, 3, 1)}, + new CharacterColor {Character = OverwatchCharacter.Moira, Color = Color.FromRgb(28, 0, 2)}, // Same as Reaper }; } @@ -213,6 +214,10 @@ namespace Artemis.Modules.Games.Overwatch // If a new character was chosen, let the other methods know if (characterMatch.Character != gameDataModel.Character) _characterChange = DateTime.Now; + + // Update the datamodel + gameDataModel.Character = characterMatch.Character; + gameDataModel.CharacterColor = colors[0, 20].ToHex(); // If no character was found, this method shouldn't continue if (characterMatch.Character == OverwatchCharacter.None) @@ -220,10 +225,6 @@ namespace Artemis.Modules.Games.Overwatch // If WASD isn't orange (any of them will do), player is in character select _stickyStatus.Value = ControlsShown(colors) ? OverwatchStatus.InGame : OverwatchStatus.InCharacterSelect; - - // Update the datamodel - gameDataModel.Character = characterMatch.Character; - gameDataModel.CharacterColor = colors[0, 20].ToHex(); return characterMatch; } diff --git a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs index f3a53d9d9..fb316f663 100644 --- a/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs +++ b/Artemis/Artemis/Modules/Games/WoW/WoWModel.cs @@ -1,4 +1,6 @@ -using Artemis.DAL; +using System.IO; +using System.IO.Compression; +using Artemis.DAL; using Artemis.Managers; using Artemis.Modules.Abstract; using Artemis.Modules.Games.WoW.Models; @@ -7,8 +9,6 @@ using Artemis.Services; using Artemis.Utilities; using Microsoft.Win32; using Newtonsoft.Json.Linq; -using System.IO; -using System.IO.Compression; namespace Artemis.Modules.Games.WoW { @@ -42,7 +42,7 @@ namespace Artemis.Modules.Games.WoW public override void Enable() { PlaceAddon(); - _packetScanner.Start(); + _packetScanner.Start(((WoWSettings) Settings).NetworkAdapter); base.Enable(); } @@ -258,4 +258,4 @@ namespace Artemis.Modules.Games.WoW dataModel.Target.CastBar.Clear(); } } -} \ No newline at end of file +} diff --git a/Artemis/Artemis/Modules/Games/WoW/WoWPacketScanner.cs b/Artemis/Artemis/Modules/Games/WoW/WoWPacketScanner.cs index 17064d22f..b3f78aaa1 100644 --- a/Artemis/Artemis/Modules/Games/WoW/WoWPacketScanner.cs +++ b/Artemis/Artemis/Modules/Games/WoW/WoWPacketScanner.cs @@ -29,7 +29,7 @@ namespace Artemis.Modules.Games.WoW public event EventHandler RaiseDataReceived; - public void Start() + public void Start(string networkAdapter) { // Start scanning WoW packets // Retrieve the device list from the local machine @@ -41,8 +41,14 @@ namespace Artemis.Modules.Games.WoW return; } - // Take the selected adapter - PacketDevice selectedDevice = allDevices.First(); + // Take the configured network adapter + // TODO: Create UI with available network adapters dropdown + PacketDevice selectedDevice = null; + if (!string.IsNullOrEmpty(networkAdapter)) + selectedDevice = allDevices.FirstOrDefault(d => d.Name.Contains(networkAdapter)); + // If not found take the first active network adapter + if (selectedDevice == null) + selectedDevice = allDevices.First(d => d.Addresses.Any()); // Open the device try diff --git a/Artemis/Artemis/Modules/Games/WoW/WoWSettings.cs b/Artemis/Artemis/Modules/Games/WoW/WoWSettings.cs index 524fdac66..d79302b93 100644 --- a/Artemis/Artemis/Modules/Games/WoW/WoWSettings.cs +++ b/Artemis/Artemis/Modules/Games/WoW/WoWSettings.cs @@ -5,5 +5,6 @@ namespace Artemis.Modules.Games.WoW public class WoWSettings : ModuleSettings { public string GameDirectory { get; set; } + public string NetworkAdapter { get; set; } } }