working orders via minimap

This commit is contained in:
Chris Forbes
2010-04-28 11:29:36 +12:00
parent 2f4df42924
commit 6b82f21569
2 changed files with 34 additions and 11 deletions

View File

@@ -48,11 +48,6 @@ namespace OpenRA.Widgets
string radarCollection;
int2 MinimapPixelToCell(RectangleF r, int2 p)
{
return int2.Zero;
}
public override bool HandleInput(MouseInput mi)
{
if (!hasRadar || radarAnimating) return false; // we're not set up for this.
@@ -63,11 +58,29 @@ namespace OpenRA.Widgets
if (!mapRect.Contains(mi.Location.ToPointF()))
return false;
var loc = MinimapPixelToCell(mapRect, mi.Location);
var loc = Game.world.Minimap.MinimapPixelToCell(mapRect, mi.Location);
if ((mi.Event == MouseInputEvent.Down || mi.Event == MouseInputEvent.Move) && mi.Button == MouseButton.Left)
Game.viewport.Center(loc);
if (mi.Event == MouseInputEvent.Down && mi.Button == MouseButton.Right)
{
// fake a mousedown/mouseup here
var fakemi = new MouseInput
{
Event = MouseInputEvent.Down,
Button = MouseButton.Right,
Modifiers = mi.Modifiers,
Location = (loc * Game.CellSize - Game.viewport.Location).ToInt2()
};
Game.controller.HandleInput(Game.world, fakemi);
fakemi.Event = MouseInputEvent.Up;
Game.controller.HandleInput(Game.world, fakemi);
}
return true;
}
@@ -143,7 +156,7 @@ namespace OpenRA.Widgets
if (radarAnimationFrame >= radarSlideAnimationLength)
{
RectangleF mapRect = new RectangleF(radarOrigin.X + 9, radarOrigin.Y + (192 - radarMinimapHeight) / 2, 192, radarMinimapHeight);
var mapRect = new RectangleF(radarOrigin.X + 9, radarOrigin.Y + (192 - radarMinimapHeight) / 2, 192, radarMinimapHeight);
world.Minimap.Draw(mapRect);
}
}