Restored faulty left-click logic for now.

This commit is contained in:
Bynnar18
2015-02-10 19:48:41 -06:00
committed by Bynnar18
parent 75bfd0fb31
commit 36d59d6b1d
12 changed files with 156 additions and 95 deletions

View File

@@ -27,6 +27,8 @@ namespace OpenRA
{
public static class Game
{
public static MouseButtonPreference mouseButtonPreference = new MouseButtonPreference();
public const int NetTickScale = 3; // 120 ms net tick for 40 ms local tick
public const int Timestep = 40;
public const int TimestepJankThreshold = 250; // Don't catch up for delays larger than 250ms

View File

@@ -49,4 +49,25 @@ namespace OpenRA
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

@@ -96,7 +96,7 @@ namespace OpenRA.Orders
if (self.Destroyed || !target.IsValidFor(self))
return null;
if (mi.Button == MouseButton.Right)
if (mi.Button == Game.mouseButtonPreference.Action)
{
foreach (var o in self.TraitsImplementing<IIssueOrder>()
.SelectMany(trait => trait.Orders

View File

@@ -130,6 +130,7 @@ namespace OpenRA
public float ViewportEdgeScrollStep = 10f;
public float UIScrollSpeed = 50f;
public bool UseClassicMouseStyle = false;
public bool AlwaysShowStatusBars = false;
public bool TeamHealthColors = false;

View File

@@ -55,6 +55,9 @@ namespace OpenRA.Widgets
public override bool HandleMouseInput(MouseInput mi)
{
var xy = worldRenderer.Viewport.ViewToWorldPx(mi.Location);
var useClassicMouseStyle = Game.Settings.Game.UseClassicMouseStyle;
var hasBox = SelectionBox != null;
var multiClick = mi.MultiTapCount >= 2;
@@ -66,7 +69,8 @@ namespace OpenRA.Widgets
dragStart = xy;
// place buildings
ApplyOrders(World, xy, mi);
if(!useClassicMouseStyle)
ApplyOrders(World, xy, mi);
}
if (mi.Button == MouseButton.Left && mi.Event == MouseInputEvent.Move && dragStart.HasValue)
@@ -74,6 +78,18 @@ namespace OpenRA.Widgets
if (mi.Button == MouseButton.Left && mi.Event == MouseInputEvent.Up)
{
if (useClassicMouseStyle && HasMouseFocus)
{
// order units around
if (!hasBox && World.Selection.Actors.Any() && !multiClick)
{
ApplyOrders(World, xy, mi);
YieldMouseFocus(mi);
return true;
}
}
if (World.OrderGenerator is UnitOrderGenerator)
{
if (multiClick)
@@ -97,9 +113,14 @@ namespace OpenRA.Widgets
YieldMouseFocus(mi);
}
// don't issue orders while selecting
if (mi.Button == MouseButton.Right && mi.Event == MouseInputEvent.Down && !hasBox)
ApplyOrders(World, xy, mi);
if (mi.Button == MouseButton.Right && mi.Event == MouseInputEvent.Down)
{
if (useClassicMouseStyle)
World.Selection.Clear();
if (!hasBox) // don't issue orders while selecting
ApplyOrders(World, xy, mi);
}
lastMousePosition = xy;
@@ -172,7 +193,7 @@ namespace OpenRA.Widgets
var mi = new MouseInput
{
Location = screenPos,
Button = MouseButton.Right,
Button = Game.mouseButtonPreference.Action,
Modifiers = Game.GetModifierKeys()
};