air units are targetable

This commit is contained in:
Chris Forbes
2009-12-28 12:54:43 +13:00
parent daaf9686b7
commit bf6c30e9ef
2 changed files with 3 additions and 6 deletions

View File

@@ -92,11 +92,8 @@ namespace OpenRa.Game
if (!Rules.Map.IsInMap(xy.X, xy.Y))
return null;
// HACK: Get the first unit in the cell
// This will need to be updated for multiple-infantry-in-a-cell
// HACK: this doesn't work for targeting air units either
var underCursor = Game.UnitInfluence.GetUnitsAt( xy ).FirstOrDefault()
?? Game.BuildingInfluence.GetBuildingAt( xy );
var loc = mi.Location + Game.viewport.Location;
var underCursor = Game.FindUnits(loc, loc).FirstOrDefault();
if (underCursor != null && !underCursor.Info.Selectable)
underCursor = null;

View File

@@ -124,7 +124,7 @@ namespace OpenRa.Game
{
var mods = GetModifierKeys();
var c = (orderGenerator is UnitOrderGenerator) ? orderGenerator.Order(dragEnd.ToInt2(),
new MouseInput { Button = MouseButton.Right, Modifiers = mods })
new MouseInput { Location = (Game.CellSize * dragEnd - Game.viewport.Location).ToInt2(), Button = MouseButton.Right, Modifiers = mods })
.Where(o => o.Validate())
.Select(o => CursorForOrderString(o.OrderString, o.Subject, o.TargetLocation))
.FirstOrDefault(a => a != null) : null;