From 698985c30c15f933af20cef8fd2874f9e3d8802f Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 21 Jan 2010 13:57:44 +1300 Subject: [PATCH] more refs to Game.world (Controller) --- OpenRa.Game/Chrome.cs | 2 +- OpenRa.Game/Controller.cs | 34 ++++++++++++++++---------------- OpenRa.Game/Game.cs | 4 ++-- OpenRa.Game/Graphics/Viewport.cs | 10 +++++----- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/OpenRa.Game/Chrome.cs b/OpenRa.Game/Chrome.cs index d21745005b..e5e9df354e 100644 --- a/OpenRa.Game/Chrome.cs +++ b/OpenRa.Game/Chrome.cs @@ -812,7 +812,7 @@ namespace OpenRa } int2 lastMousePos; - public bool HandleInput(MouseInput mi) + public bool HandleInput(World world, MouseInput mi) { if (mi.Event == MouseInputEvent.Move) lastMousePos = mi.Location; diff --git a/OpenRa.Game/Controller.cs b/OpenRa.Game/Controller.cs index 743468a466..2e73dd00ce 100644 --- a/OpenRa.Game/Controller.cs +++ b/OpenRa.Game/Controller.cs @@ -43,15 +43,15 @@ namespace OpenRa List recentOrders = new List(); - void ApplyOrders(float2 xy, MouseInput mi) + void ApplyOrders(World world, float2 xy, MouseInput mi) { if (orderGenerator == null) return; - var orders = orderGenerator.Order(Game.world, xy.ToInt2(), mi).ToArray(); + var orders = orderGenerator.Order(world, xy.ToInt2(), mi).ToArray(); recentOrders.AddRange( orders ); var voicedActor = orders.Select(o => o.Subject) - .FirstOrDefault(a => a.Owner == Game.world.LocalPlayer && a.traits.Contains()); + .FirstOrDefault(a => a.Owner == world.LocalPlayer && a.traits.Contains()); var isMove = orders.Any(o => o.OrderString == "Move"); var isAttack = orders.Any( o => o.OrderString == "Attack" ); @@ -61,7 +61,7 @@ namespace OpenRa Sound.PlayVoice(isAttack ? "Attack" : "Move", voicedActor); if (isMove) - Game.world.Add(new Effects.MoveFlash(Game.world, Game.CellSize * xy)); + world.Add(new Effects.MoveFlash(world, Game.CellSize * xy)); } } @@ -76,7 +76,7 @@ namespace OpenRa } float2 dragStart, dragEnd; - public bool HandleInput(MouseInput mi) + public bool HandleInput(World world, MouseInput mi) { var xy = Game.viewport.ViewToWorld(mi); @@ -84,7 +84,7 @@ namespace OpenRa { if (!(orderGenerator is PlaceBuildingOrderGenerator)) dragStart = dragEnd = xy; - ApplyOrders(xy, mi); + ApplyOrders(world, xy, mi); } if (mi.Button == MouseButton.Left && mi.Event == MouseInputEvent.Move) @@ -94,8 +94,8 @@ namespace OpenRa { if (orderGenerator is UnitOrderGenerator) { - var newSelection = Game.world.SelectActorsInBox(Game.CellSize * dragStart, Game.CellSize * xy); - CombineSelection(newSelection, mi.Modifiers.HasModifier(Modifiers.Shift), dragStart == xy); + var newSelection = world.SelectActorsInBox(Game.CellSize * dragStart, Game.CellSize * xy); + CombineSelection(world, newSelection, mi.Modifiers.HasModifier(Modifiers.Shift), dragStart == xy); } dragStart = dragEnd = xy; @@ -105,12 +105,12 @@ namespace OpenRa dragStart = dragEnd = xy; if (mi.Button == MouseButton.Right && mi.Event == MouseInputEvent.Down) - ApplyOrders(xy, mi); + ApplyOrders(world, xy, mi); return true; } - void CombineSelection(IEnumerable newSelection, bool isCombine, bool isClick) + void CombineSelection(World world, IEnumerable newSelection, bool isCombine, bool isClick) { var oldSelection = (orderGenerator is UnitOrderGenerator) ? (orderGenerator as UnitOrderGenerator).selection : new Actor[] { }.AsEnumerable(); @@ -127,7 +127,7 @@ namespace OpenRa var voicedUnit = ((UnitOrderGenerator)orderGenerator).selection .Where(a => a.traits.Contains() - && a.Owner == Game.world.LocalPlayer) + && a.Owner == world.LocalPlayer) .FirstOrDefault(); Sound.PlayVoice("Select", voicedUnit); @@ -144,9 +144,9 @@ namespace OpenRa public float2 MousePosition { get { return dragEnd; } } - public Cursor ChooseCursor() + public Cursor ChooseCursor( World world ) { - int sync = Game.world.SyncHash(); + int sync = world.SyncHash(); try { @@ -157,18 +157,18 @@ namespace OpenRa Modifiers = GetModifierKeys(), }; - return orderGenerator.GetCursor( Game.world, MousePosition.ToInt2(), mi ); + return orderGenerator.GetCursor( world, MousePosition.ToInt2(), mi ); } finally { - if( sync != Game.world.SyncHash() ) + if( sync != world.SyncHash() ) throw new InvalidOperationException( "Desync in Controller.ChooseCursor" ); } } Cache> controlGroups = new Cache>(_ => new List()); - public void DoControlGroup(int group, Modifiers mods) + public void DoControlGroup(World world, int group, Modifiers mods) { var uog = orderGenerator as UnitOrderGenerator; if (uog == null) return; @@ -193,7 +193,7 @@ namespace OpenRa return; } - CombineSelection(controlGroups[group], mods.HasModifier(Modifiers.Shift), false); + CombineSelection(world, controlGroups[group], mods.HasModifier(Modifiers.Shift), false); } public int? GetControlGroupForActor(Actor a) diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index ba262b2a24..3bdae15e52 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -237,7 +237,7 @@ namespace OpenRa { int sync = Game.world.SyncHash(); - Game.viewport.DispatchMouseInput( + Game.viewport.DispatchMouseInput( world, new MouseInput { Button = (MouseButton)(int)e.Button, @@ -271,7 +271,7 @@ namespace OpenRa if( !Game.chat.isChatting ) if( e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9 ) - Game.controller.DoControlGroup( (int)e.KeyCode - (int)Keys.D0, (Modifiers)(int)e.Modifiers ); + Game.controller.DoControlGroup( world, (int)e.KeyCode - (int)Keys.D0, (Modifiers)(int)e.Modifiers ); if( sync != Game.world.SyncHash() ) throw new InvalidOperationException( "Desync in OnKeyDown" ); diff --git a/OpenRa.Game/Graphics/Viewport.cs b/OpenRa.Game/Graphics/Viewport.cs index 1e198ad97e..c3e12badeb 100644 --- a/OpenRa.Game/Graphics/Viewport.cs +++ b/OpenRa.Game/Graphics/Viewport.cs @@ -8,7 +8,7 @@ namespace OpenRa.Graphics { interface IHandleInput { - bool HandleInput(MouseInput mi); + bool HandleInput(World world, MouseInput mi); } class Viewport @@ -85,7 +85,7 @@ namespace OpenRa.Graphics Game.chrome.DrawLobby( world ); } - var c = Game.chrome.HitTest(mousePos) ? Cursor.Default : Game.controller.ChooseCursor(); + var c = Game.chrome.HitTest(mousePos) ? Cursor.Default : Game.controller.ChooseCursor( world ); cursorRenderer.DrawSprite(c.GetSprite((int)cursorFrame), mousePos + Location - c.GetHotspot(), 0); cursorRenderer.Flush(); @@ -98,18 +98,18 @@ namespace OpenRa.Graphics } IHandleInput dragRegion = null; - public void DispatchMouseInput(MouseInput mi) + public void DispatchMouseInput(World world, MouseInput mi) { if (mi.Event == MouseInputEvent.Move) mousePos = mi.Location; if (dragRegion != null) { - dragRegion.HandleInput( mi ); + dragRegion.HandleInput( world, mi ); if (mi.Event == MouseInputEvent.Up) dragRegion = null; return; } - dragRegion = regions.FirstOrDefault(r => r.HandleInput(mi)); + dragRegion = regions.FirstOrDefault(r => r.HandleInput(world, mi)); if (mi.Event != MouseInputEvent.Down) dragRegion = null; }