From 1ca9c905656528cd63a9b2eb220963dd9f0d3e75 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 27 Sep 2013 17:58:44 +1200 Subject: [PATCH] Add ScreenMap.ActorsAt(MouseInput) overload. --- OpenRA.Game/Orders/UnitOrderGenerator.cs | 4 ++-- OpenRA.Game/Traits/World/ScreenMap.cs | 5 +++++ OpenRA.Mods.RA/Guard.cs | 2 +- OpenRA.Mods.RA/Minelayer.cs | 2 +- OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs | 2 +- OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs | 2 +- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/OpenRA.Game/Orders/UnitOrderGenerator.cs b/OpenRA.Game/Orders/UnitOrderGenerator.cs index f405c6a7f3..379157d741 100644 --- a/OpenRA.Game/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Game/Orders/UnitOrderGenerator.cs @@ -19,7 +19,7 @@ namespace OpenRA.Orders { public IEnumerable Order(World world, CPos xy, MouseInput mi) { - var underCursor = world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + var underCursor = world.ScreenMap.ActorsAt(mi) .Where(a => !world.FogObscures(a) && a.HasTrait()) .OrderByDescending(a => a.Info.SelectionPriority()) .FirstOrDefault(); @@ -60,7 +60,7 @@ namespace OpenRA.Orders public string GetCursor(World world, CPos xy, MouseInput mi) { var useSelect = false; - var underCursor = world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + var underCursor = world.ScreenMap.ActorsAt(mi) .Where(a => !world.FogObscures(a) && a.HasTrait()) .OrderByDescending(a => a.Info.SelectionPriority()) .FirstOrDefault(); diff --git a/OpenRA.Game/Traits/World/ScreenMap.cs b/OpenRA.Game/Traits/World/ScreenMap.cs index ca38c8cf26..8c0ae310a8 100755 --- a/OpenRA.Game/Traits/World/ScreenMap.cs +++ b/OpenRA.Game/Traits/World/ScreenMap.cs @@ -127,6 +127,11 @@ namespace OpenRA.Traits .Select(kv => kv.Key); } + public IEnumerable ActorsAt(MouseInput mi) + { + return ActorsAt(worldRenderer.Viewport.ViewToWorldPx(mi.Location)); + } + public IEnumerable ActorsInBox(int2 a, int2 b) { return ActorsInBox(Rectangle.FromLTRB(Math.Min(a.X, b.X), Math.Min(a.Y, b.Y), Math.Max(a.X, b.X), Math.Max(a.Y, b.Y))); diff --git a/OpenRA.Mods.RA/Guard.cs b/OpenRA.Mods.RA/Guard.cs index ef60634cc8..621fba527c 100644 --- a/OpenRA.Mods.RA/Guard.cs +++ b/OpenRA.Mods.RA/Guard.cs @@ -88,7 +88,7 @@ namespace OpenRA.Mods.RA static IEnumerable FriendlyGuardableUnits(World world, MouseInput mi) { - return world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + return world.ScreenMap.ActorsAt(mi) .Where(a => !world.FogObscures(a) && !a.IsDead() && a.AppearsFriendlyTo(world.LocalPlayer.PlayerActor) && a.HasTrait()); diff --git a/OpenRA.Mods.RA/Minelayer.cs b/OpenRA.Mods.RA/Minelayer.cs index b3626a59ee..ea22afad4e 100644 --- a/OpenRA.Mods.RA/Minelayer.cs +++ b/OpenRA.Mods.RA/Minelayer.cs @@ -133,7 +133,7 @@ namespace OpenRA.Mods.RA yield break; } - var underCursor = world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + var underCursor = world.ScreenMap.ActorsAt(mi) .Where(a => !world.FogObscures(a)) .OrderByDescending(a => a.Info.Traits.Contains() ? a.Info.Traits.Get().Priority : int.MinValue) diff --git a/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs b/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs index dc600a5407..c21bcf18de 100755 --- a/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs @@ -39,7 +39,7 @@ namespace OpenRA.Mods.RA.Orders { if (mi.Button == MouseButton.Left) { - var underCursor = world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + var underCursor = world.ScreenMap.ActorsAt(mi) .Where(a => a.Owner == world.LocalPlayer && a.HasTrait()).FirstOrDefault(); if (underCursor != null) diff --git a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs index c2d931ba4a..33f339955c 100644 --- a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.RA.Orders { if (mi.Button == MouseButton.Left) { - var underCursor = world.ScreenMap.ActorsAt(Game.viewport.ViewToWorldPx(mi.Location)) + var underCursor = world.ScreenMap.ActorsAt(mi) .Where(a => !world.FogObscures(a) && a.AppearsFriendlyTo(world.LocalPlayer.PlayerActor) && a.HasTrait()).FirstOrDefault(); if (underCursor == null)