diff --git a/CHANGELOG b/CHANGELOG
index 7af416a5fe..ab481d73c9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
NEW:
All Mods:
- Added the ability to place map beacons for highlighting areas to teammates.
+ Added the ability to place map beacons for highlighting areas to teammates (Hotkey: F9).
+ The default pause hotkey has changed to F8.
Structures under attack and friendly superweapon launch targets will now be highlighted on the radar.
Fixed unloading passengers moving unnecessarily far from their transport.
Fixed the unload cursor sometimes being displayed for transports even when they were unable to unload.
diff --git a/OpenRA.Game/GameRules/Settings.cs b/OpenRA.Game/GameRules/Settings.cs
index d320d8eb9b..f1804f9fda 100644
--- a/OpenRA.Game/GameRules/Settings.cs
+++ b/OpenRA.Game/GameRules/Settings.cs
@@ -147,9 +147,8 @@ namespace OpenRA.GameRules
public Hotkey SelectAllUnitsKey = new Hotkey(Keycode.A, Modifiers.Ctrl);
public Hotkey SelectUnitsByTypeKey = new Hotkey(Keycode.T, Modifiers.Ctrl);
- public Hotkey PlaceBeaconKey = new Hotkey(Keycode.B, Modifiers.Ctrl);
-
- public Hotkey PauseKey = new Hotkey(Keycode.F9, Modifiers.None);
+ public Hotkey PauseKey = new Hotkey(Keycode.F8, Modifiers.None);
+ public Hotkey PlaceBeaconKey = new Hotkey(Keycode.F9, Modifiers.None);
public Hotkey SellKey = new Hotkey(Keycode.F10, Modifiers.None);
public Hotkey PowerDownKey = new Hotkey(Keycode.F11, Modifiers.None);
public Hotkey RepairKey = new Hotkey(Keycode.F12, Modifiers.None);
diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
index b8d440bbf6..869c7ea7e7 100644
--- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
+++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj
@@ -488,6 +488,7 @@
+
diff --git a/OpenRA.Mods.RA/Orders/BeaconOrderGenerator.cs b/OpenRA.Mods.RA/Orders/BeaconOrderGenerator.cs
new file mode 100644
index 0000000000..ba8ce8a995
--- /dev/null
+++ b/OpenRA.Mods.RA/Orders/BeaconOrderGenerator.cs
@@ -0,0 +1,35 @@
+#region Copyright & License Information
+/*
+ * Copyright 2007-2014 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,
+ * see COPYING.
+ */
+#endregion
+
+using System.Collections.Generic;
+using OpenRA.Graphics;
+
+namespace OpenRA.Mods.RA.Orders
+{
+ public class BeaconOrderGenerator : IOrderGenerator
+ {
+ public IEnumerable Order(World world, CPos xy, MouseInput mi)
+ {
+ if (mi.Button != MouseButton.Left)
+ world.CancelInputMode();
+
+ if (!world.ShroudObscures(xy))
+ {
+ world.CancelInputMode();
+ yield return new Order("PlaceBeacon", world.LocalPlayer.PlayerActor, false) { TargetLocation = xy };
+ }
+ }
+
+ public virtual void Tick(World world) { }
+ public IEnumerable Render(WorldRenderer wr, World world) { yield break; }
+ public void RenderAfterWorld(WorldRenderer wr, World world) { }
+ public string GetCursor(World world, CPos xy, MouseInput mi) { return !world.ShroudObscures(xy) ? "ability" : "generic-blocked"; }
+ }
+}
diff --git a/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs
index a9793db2f3..3826a02773 100644
--- a/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs
+++ b/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs
@@ -32,6 +32,13 @@ namespace OpenRA.Mods.RA.Widgets.Logic
BindOrderButton(world, repair, "repair");
}
+ var beacon = widget.GetOrNull("BEACON_BUTTON");
+ if (beacon != null)
+ {
+ beacon.GetKey = _ => Game.Settings.Keys.PlaceBeaconKey;
+ BindOrderButton(world, beacon, "beacon");
+ }
+
var power = widget.GetOrNull("POWER_BUTTON");
if (power != null)
{
diff --git a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs
index 77387d9875..84cec991bc 100644
--- a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs
+++ b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs
@@ -65,9 +65,6 @@ namespace OpenRA.Mods.RA.Widgets
if (key == ks.ToggleStatusBarsKey)
return ToggleStatusBars();
- if (key == ks.PlaceBeaconKey)
- return PerformPlaceBeacon();
-
// Put all functions that aren't unit-specific before this line!
if (!world.Selection.Actors.Any())
return false;
@@ -189,15 +186,6 @@ namespace OpenRA.Mods.RA.Widgets
return true;
}
- bool PerformPlaceBeacon()
- {
- if (world.LocalPlayer == null)
- return true;
-
- world.OrderGenerator = new GenericSelectTarget(world.LocalPlayer.PlayerActor, "PlaceBeacon", "ability");
- return true;
- }
-
bool CycleBases()
{
var bases = world.ActorsWithTrait()
diff --git a/artsrc/cnc/chrome.svg b/artsrc/cnc/chrome.svg
index 19a978210e..ecd33e9e92 100644
--- a/artsrc/cnc/chrome.svg
+++ b/artsrc/cnc/chrome.svg
@@ -13,9 +13,9 @@
height="512"
id="svg2"
version="1.1"
- inkscape:version="0.48.4 r9939"
+ inkscape:version="0.48.2 r9819"
sodipodi:docname="chrome.svg"
- inkscape:export-filename="/home/matthias/Projekte/OpenRA/mods/cnc/uibits/chrome.png"
+ inkscape:export-filename="/Users/paul/src/OpenRA/mods/cnc/uibits/chrome.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
enable-background="new">
@@ -99,17 +99,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
- inkscape:zoom="5.6568539"
- inkscape:cx="424.27411"
- inkscape:cy="420.32669"
+ inkscape:zoom="11.313708"
+ inkscape:cx="399.83211"
+ inkscape:cy="452.59159"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
- inkscape:window-width="1920"
- inkscape:window-height="1060"
- inkscape:window-x="1364"
- inkscape:window-y="-3"
- inkscape:window-maximized="1"
+ inkscape:window-width="1151"
+ inkscape:window-height="1004"
+ inkscape:window-x="540"
+ inkscape:window-y="22"
+ inkscape:window-maximized="0"
showguides="true"
inkscape:guide-bbox="true">
image/svg+xml
-
+
@@ -870,14 +870,14 @@
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path3948"
- d="m 400,588.3622 4,4 0,0 -4,4 z"
+ d="m 416,588.3622 4,4 0,0 -4,4 z"
style="fill:#ffffff;fill-opacity:1;stroke:none" />
+
+
+
+
+
+