From 7eb210637511dd11c78669adf71372a5e1c2cb07 Mon Sep 17 00:00:00 2001 From: Jan-Willem Buurlage Date: Sun, 8 Feb 2015 22:38:05 +0100 Subject: [PATCH] Change cursor according to the command with highest priority. --- OpenRA.Game/Orders/UnitOrderGenerator.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenRA.Game/Orders/UnitOrderGenerator.cs b/OpenRA.Game/Orders/UnitOrderGenerator.cs index ed9714530b..fe54431119 100644 --- a/OpenRA.Game/Orders/UnitOrderGenerator.cs +++ b/OpenRA.Game/Orders/UnitOrderGenerator.cs @@ -79,12 +79,13 @@ namespace OpenRA.Orders target = frozen != null ? Target.FromFrozenActor(frozen) : Target.FromCell(world, xy); } - var orders = world.Selection.Actors + var ordersWithCursor = world.Selection.Actors .Select(a => OrderForUnit(a, target, mi)) - .Where(o => o != null); + .Where(o => o != null && o.Cursor != null); - var cursorName = orders.Select(o => o.Cursor).FirstOrDefault(); - return cursorName ?? (useSelect ? "select" : "default"); + var cursorOrder = ordersWithCursor.MaxByOrDefault(o => o.Order.OrderPriority); + + return cursorOrder != null ? cursorOrder.Cursor : (useSelect ? "select" : "default"); } static UnitOrderResult OrderForUnit(Actor self, Target target, MouseInput mi)