From a4a409f39bae6def704e6cb77da872bd07ac5dfd Mon Sep 17 00:00:00 2001 From: reaperrr Date: Tue, 15 Sep 2020 10:42:50 +0200 Subject: [PATCH] Pass world directly to UnitOrders.ResolveOrder Avoids order.Subject.World look-ups. Also removes validOrders parameter, we can get that directly from World now. --- OpenRA.Game/Network/UnitOrders.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 4a744a4b1a..1500f45f4d 100644 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -336,22 +336,22 @@ namespace OpenRA.Network break; if (order.GroupedActors == null) - ResolveOrder(order, world.OrderValidators, orderManager, clientId); + ResolveOrder(order, world, orderManager, clientId); else foreach (var subject in order.GroupedActors) - ResolveOrder(Order.FromGroupedOrder(order, subject), world.OrderValidators, orderManager, clientId); + ResolveOrder(Order.FromGroupedOrder(order, subject), world, orderManager, clientId); break; } } } - static void ResolveOrder(Order order, IEnumerable validateOrders, OrderManager orderManager, int clientId) + static void ResolveOrder(Order order, World world, OrderManager orderManager, int clientId) { if (order.Subject == null || order.Subject.IsDead) return; - if (validateOrders.All(vo => vo.OrderValidation(orderManager, order.Subject.World, clientId, order))) + if (world.OrderValidators.All(vo => vo.OrderValidation(orderManager, world, clientId, order))) foreach (var t in order.Subject.TraitsImplementing()) t.ResolveOrder(order.Subject, order); }