From f70a452c56eb53545ab10ec14a1bc1c48eb18ecb Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 22 Feb 2019 20:04:47 +0000 Subject: [PATCH] Remove Order.TargetLocation from Minelayer. --- OpenRA.Mods.Cnc/Traits/Minelayer.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/OpenRA.Mods.Cnc/Traits/Minelayer.cs b/OpenRA.Mods.Cnc/Traits/Minelayer.cs index e315dbed23..eb49274eb3 100644 --- a/OpenRA.Mods.Cnc/Traits/Minelayer.cs +++ b/OpenRA.Mods.Cnc/Traits/Minelayer.cs @@ -89,22 +89,24 @@ namespace OpenRA.Mods.Cnc.Traits void IResolveOrder.ResolveOrder(Actor self, Order order) { - if (order.OrderString == "BeginMinefield") - minefieldStart = order.TargetLocation; + if (order.OrderString != "BeginMinefield" && order.OrderString != "PlaceMinefield" && order.OrderString != "PlaceMine") + return; - if (order.OrderString == "PlaceMine") + var cell = self.World.Map.CellContaining(order.Target.CenterPosition); + if (order.OrderString == "BeginMinefield") + minefieldStart = cell; + else if (order.OrderString == "PlaceMine") { - minefieldStart = order.TargetLocation; - Minefield = new CPos[] { order.TargetLocation }; + minefieldStart = cell; + Minefield = new[] { cell }; self.CancelActivity(); self.QueueActivity(new LayMines(self)); } - - if (order.OrderString == "PlaceMinefield") + else if (order.OrderString == "PlaceMinefield") { var movement = self.Trait(); - Minefield = GetMinefieldCells(minefieldStart, order.TargetLocation, info.MinefieldDepth) + Minefield = GetMinefieldCells(minefieldStart, cell, info.MinefieldDepth) .Where(p => movement.CanEnterCell(p, null, false)).ToArray(); if (Minefield.Length == 1 && Minefield[0] != self.Location)