Move selectableActor check inside InputOverridesSelection.

This commit is contained in:
Paul Chote
2020-03-25 23:55:29 +00:00
committed by reaperrr
parent e2572b214f
commit 2c7a56625c
2 changed files with 7 additions and 13 deletions

View File

@@ -96,7 +96,7 @@ namespace OpenRA.Orders
public virtual bool InputOverridesSelection(World world, int2 xy, MouseInput mi) public virtual bool InputOverridesSelection(World world, int2 xy, MouseInput mi)
{ {
var actor = world.ScreenMap.ActorsAtMouse(xy) var actor = world.ScreenMap.ActorsAtMouse(xy)
.Where(a => !a.Actor.IsDead) .Where(a => !a.Actor.IsDead && a.Actor.Info.HasTraitInfo<ISelectableInfo>() && (a.Actor.Owner.IsAlliedWith(world.RenderPlayer) || !world.FogObscures(a.Actor)))
.WithHighestSelectionPriority(xy, mi.Modifiers); .WithHighestSelectionPriority(xy, mi.Modifiers);
if (actor == null) if (actor == null)

View File

@@ -117,19 +117,13 @@ namespace OpenRA.Mods.Common.Widgets
{ {
if (useClassicMouseStyle && HasMouseFocus) if (useClassicMouseStyle && HasMouseFocus)
{ {
if (!IsValidDragbox && World.Selection.Actors.Any() && !multiClick) if (!IsValidDragbox && World.Selection.Actors.Any() && !multiClick && uog.InputOverridesSelection(World, mousePos, mi))
{ {
var selectableActor = World.ScreenMap.ActorsAtMouse(mousePos).Select(a => a.Actor).Any(x => // Order units instead of selecting
x.Info.HasTraitInfo<ISelectableInfo>() && (x.Owner.IsAlliedWith(World.RenderPlayer) || !World.FogObscures(x))); ApplyOrders(World, mi);
isDragging = false;
if (!selectableActor || uog.InputOverridesSelection(World, mousePos, mi)) YieldMouseFocus(mi);
{ return true;
// Order units instead of selecting
ApplyOrders(World, mi);
isDragging = false;
YieldMouseFocus(mi);
return true;
}
} }
} }