pull mouse button preference from global property

This commit is contained in:
Matthias Mailänder
2013-01-17 19:08:38 +01:00
committed by Chris Forbes
parent 2503ddfde4
commit c5313375f0
7 changed files with 38 additions and 20 deletions

View File

@@ -29,6 +29,8 @@ namespace OpenRA
{
public static int CellSize { get { return modData.Manifest.TileSize; } }
public static MouseButtonPreference mouseButtonPreference = new MouseButtonPreference();
public static ModData modData;
static WorldRenderer worldRenderer;

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information
/*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
* Copyright 2007-2013 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
@@ -15,32 +15,53 @@ namespace OpenRA
public class NullInputHandler : IInputHandler
{
// ignore all input
public void ModifierKeys( Modifiers mods ) { }
public void OnKeyInput( KeyInput input ) { }
public void OnMouseInput( MouseInput input ) { }
public void ModifierKeys(Modifiers mods) { }
public void OnKeyInput(KeyInput input) { }
public void OnMouseInput(MouseInput input) { }
}
public class DefaultInputHandler : IInputHandler
{
readonly World world;
public DefaultInputHandler( World world )
public DefaultInputHandler(World world)
{
this.world = world;
}
public void ModifierKeys( Modifiers mods )
public void ModifierKeys(Modifiers mods)
{
Game.HandleModifierKeys( mods );
Game.HandleModifierKeys(mods);
}
public void OnKeyInput( KeyInput input )
public void OnKeyInput(KeyInput input)
{
Sync.CheckSyncUnchanged(world, () => Ui.HandleKeyPress(input));
}
public void OnMouseInput( MouseInput input )
public void OnMouseInput(MouseInput input)
{
Sync.CheckSyncUnchanged(world, () => Ui.HandleInput(input));
}
}
public class MouseButtonPreference
{
public MouseButton Action
{
get
{
return Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Left : MouseButton.Right;
}
}
public MouseButton Cancel
{
get
{
return Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Right : MouseButton.Left;
}
}
}
}

View File

@@ -69,15 +69,13 @@ namespace OpenRA.Orders
static UnitOrderResult OrderForUnit(Actor self, CPos xy, MouseInput mi, Actor underCursor)
{
var ActionMouseButton = (Game.Settings.Game.UseClassicMouseStyle) ? MouseButton.Left : MouseButton.Right;
if (self.Owner != self.World.LocalPlayer)
return null;
if (self.Destroyed)
return null;
if (mi.Button == ActionMouseButton)
if (mi.Button == Game.mouseButtonPreference.Action)
{
foreach( var o in self.TraitsImplementing<IIssueOrder>()
.SelectMany(trait => trait.Orders

View File

@@ -156,7 +156,7 @@ namespace OpenRA.Widgets
var mi = new MouseInput
{
Location = pos,
Button = Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Left : MouseButton.Right,
Button = Game.mouseButtonPreference.Action,
Modifiers = Game.GetModifierKeys()
};

View File

@@ -112,7 +112,7 @@ namespace OpenRA.Mods.RA
public IEnumerable<Order> Order(World world, CPos xy, MouseInput mi)
{
if (mi.Button == (Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Right : MouseButton.Left))
if (mi.Button == Game.mouseButtonPreference.Cancel)
{
world.CancelInputMode();
yield break;

View File

@@ -100,7 +100,7 @@ namespace OpenRA.Mods.RA
public IEnumerable<Order> Order(World world, CPos xy, MouseInput mi)
{
if (mi.Button == (Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Right : MouseButton.Left))
if (mi.Button == Game.mouseButtonPreference.Cancel)
{
world.CancelInputMode();
yield break;
@@ -111,8 +111,7 @@ namespace OpenRA.Mods.RA
? a.Info.Traits.Get<SelectableInfo>().Priority : int.MinValue)
.FirstOrDefault();
if (mi.Button == (Game.Settings.Game.UseClassicMouseStyle ? MouseButton.Left : MouseButton.Right)
&& underCursor == null)
if (mi.Button == Game.mouseButtonPreference.Action && underCursor == null)
{
minelayer.World.CancelInputMode();
yield return new Order("PlaceMinefield", minelayer, false) { TargetLocation = xy };

View File

@@ -86,11 +86,9 @@ namespace OpenRA.Mods.RA.Widgets
var actors = World.Selection.Actors
.Where(a => a.Owner == World.LocalPlayer).ToArray();
var ActionMouseButton = (Game.Settings.Game.UseClassicMouseStyle) ? MouseButton.Left : MouseButton.Right;
if (actors.Length > 0)
World.OrderGenerator = new GenericSelectTarget(actors, "AttackMove",
"attackmove", ActionMouseButton);
"attackmove", Game.mouseButtonPreference.Action);
return true;
}