make hotkey user-configurable via in-game settings
This commit is contained in:
@@ -16,6 +16,7 @@ using OpenRA.Graphics;
|
||||
using OpenRA.Network;
|
||||
using OpenRA.Orders;
|
||||
using OpenRA.Widgets;
|
||||
using OpenRA.Mods.RA.Orders;
|
||||
|
||||
namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
@@ -23,14 +24,6 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
public World World { get { return OrderManager.world; } }
|
||||
|
||||
public string AttackMoveKey = "a";
|
||||
public string StopKey = "s";
|
||||
public string ScatterKey = "x";
|
||||
public string DeployKey = "f";
|
||||
public string StanceCycleKey = "z";
|
||||
public string BaseCycleKey = "backspace";
|
||||
public string GotoLastEventKey = "space";
|
||||
|
||||
public readonly OrderManager OrderManager;
|
||||
|
||||
[ObjectCreator.UseCtor]
|
||||
@@ -51,28 +44,37 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
if (e.Modifiers == Modifiers.None && e.Event == KeyInputEvent.Down)
|
||||
{
|
||||
if (e.KeyName == BaseCycleKey)
|
||||
if (e.KeyName == Game.Settings.Keys.CycleBaseKey)
|
||||
return CycleBases();
|
||||
|
||||
if (e.KeyName == GotoLastEventKey)
|
||||
if (e.KeyName == Game.Settings.Keys.GotoLastEventKey)
|
||||
return GotoLastEvent();
|
||||
|
||||
if (!World.Selection.Actors.Any())
|
||||
if (e.KeyName == Game.Settings.Keys.SellKey)
|
||||
return PerformSwitchToSellMode();
|
||||
|
||||
if (e.KeyName == Game.Settings.Keys.PowerDownKey)
|
||||
return PerformSwitchToPowerDownMode();
|
||||
|
||||
if (e.KeyName == Game.Settings.Keys.RepairKey)
|
||||
return PerformSwitchToRepairMode();
|
||||
|
||||
if (!World.Selection.Actors.Any()) // Put all functions, that are no unit-functions, before this line!
|
||||
return false;
|
||||
|
||||
if (e.KeyName == AttackMoveKey)
|
||||
if (e.KeyName == Game.Settings.Keys.AttackMoveKey)
|
||||
return PerformAttackMove();
|
||||
|
||||
if (e.KeyName == StopKey)
|
||||
if (e.KeyName == Game.Settings.Keys.StopKey)
|
||||
return PerformStop();
|
||||
|
||||
if (e.KeyName == ScatterKey)
|
||||
if (e.KeyName == Game.Settings.Keys.ScatterKey)
|
||||
return PerformScatter();
|
||||
|
||||
if (e.KeyName == DeployKey)
|
||||
if (e.KeyName == Game.Settings.Keys.DeployKey)
|
||||
return PerformDeploy();
|
||||
|
||||
if (e.KeyName == StanceCycleKey)
|
||||
if (e.KeyName == Game.Settings.Keys.StanceCycleKey)
|
||||
return PerformStanceCycle();
|
||||
}
|
||||
|
||||
@@ -115,10 +117,11 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
|
||||
bool PerformDeploy()
|
||||
{
|
||||
/* hack: three orders here -- ReturnToBase, DeployTransform, Unload. */
|
||||
/* hack: multiple orders here */
|
||||
PerformKeyboardOrderOnSelection(a => new Order("ReturnToBase", a, false));
|
||||
PerformKeyboardOrderOnSelection(a => new Order("DeployTransform", a, false));
|
||||
PerformKeyboardOrderOnSelection(a => new Order("Unload", a, false));
|
||||
PerformKeyboardOrderOnSelection(a => new Order("DemoDeploy", a, false));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -184,5 +187,23 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
Game.viewport.Center(eventNotifier.lastAttackLocation.ToFloat2());
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool PerformSwitchToSellMode ()
|
||||
{
|
||||
World.ToggleInputMode<SellOrderGenerator> ();
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool PerformSwitchToPowerDownMode ()
|
||||
{
|
||||
World.ToggleInputMode<PowerDownOrderGenerator> ();
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool PerformSwitchToRepairMode ()
|
||||
{
|
||||
World.ToggleInputMode<RepairOrderGenerator>();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user