From 99c3272a815f3039299411aeb93a5a989166e4ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 20 Mar 2013 08:24:38 +0100 Subject: [PATCH 1/5] add tab cycle key to setting GUI --- OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs index 7530023eed..3c643c0df2 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/SettingsMenuLogic.cs @@ -176,6 +176,10 @@ namespace OpenRA.Mods.RA.Widgets.Logic SetupKeyBinding(repairKey, "Switch to Repair-Cursor:", () => keyConfig.RepairKey, k => keyConfig.RepairKey = k); specialHotkeyList.AddChild(repairKey); + var tabCycleKey = ScrollItemWidget.Setup(specialHotkeyTemplate, () => false, () => {}); + SetupKeyBinding(tabCycleKey, "Cycle Tabs (+Shift to Reverse):", () => keyConfig.CycleTabsKey, k => keyConfig.CycleTabsKey = k); + specialHotkeyList.AddChild(tabCycleKey); + var unitCommandHotkeyList = keys.Get("UNITCOMMANDHOTKEY_LIST"); var unitCommandHotkeyTemplate = unitCommandHotkeyList.Get("UNITCOMMANDHOTKEY_TEMPLATE"); From f0876828f49564a41e36c0ac685fe3a2f93d0553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 20 Mar 2013 11:54:15 +0100 Subject: [PATCH 2/5] fixes #2791 don't crash on powerdown hotkey when playing cnc --- mods/cnc/bits/nopower.shp | Bin 0 -> 2410 bytes mods/cnc/bits/poweroff.shp | Bin 0 -> 3005 bytes mods/cnc/cursors.yaml | 14 +++++++++++++- mods/cnc/notifications.yaml | 2 ++ mods/cnc/sequences/misc.yaml | 10 ++++++++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 mods/cnc/bits/nopower.shp create mode 100644 mods/cnc/bits/poweroff.shp diff --git a/mods/cnc/bits/nopower.shp b/mods/cnc/bits/nopower.shp new file mode 100644 index 0000000000000000000000000000000000000000..b57ce96fd61c6e997497ef7905e009699faf52c7 GIT binary patch literal 2410 zcmeHIOK!q26tpU&rmKiuSMCAgGxQR@1t$nnBG_^iq@=K6ogE_k9>hoJj9=n7iD^+Q z7M1#t@bkRSyx2onDB3eVv{$9JTz3z$ek^2td6aea#OPqn;Qq*q*SD}pyEcWLM*-C5 ziQwZvo*02mse=kz0luKi`du^7^8-%`ou1i5B2rWri9I0Tm=UN2wi~puhf+5((YhzG zW}`6tp)_t#TbQl@xKeG300ECT=tMk4gmbRTig9G*g?0~+f?g@ltZY?ko)0Ptt(!id zB~_NO)!CXNfL(xamKoD^cN9w1E#?Pa=N-^5ZMv^v{noGTn|HyI$cF*wI1>@@7*x%vpsq+8&CpXsM@cXn~g6De`)jrV*>J1KdTj$HIa^DcumW5o;q z9QWyDcAM}^7}zP8UlOR9Ftziq!IV-oeIG&bXn#&hJgUf}@Wdxi?v65ov-&E`w^G+W zxQZ)Ma)P9WCn6TSncjX&+d-+LR@Vma1L`uu$cp&UVtbBt8^Ggq-Cs literal 0 HcmV?d00001 diff --git a/mods/cnc/bits/poweroff.shp b/mods/cnc/bits/poweroff.shp new file mode 100644 index 0000000000000000000000000000000000000000..04a194e6da41345cf59f2b84e9aa5ababedd0aa2 GIT binary patch literal 3005 zcmeH}K~BXm3`8pgLWo7x9XH?>S#lsw@V6|v$=_s&dJ(P?iJ5Vl)JY`TeS<`zvE%31 zR`s7It~dN~eN5Ah`}c$GzmK-RKimHKV*Af4z3N))@%$--u!h04aL4Km;l5x+XCQy1 zAC+tViV`DoasUfXuqS7IZFQ!D)yps#!i5(<>&{RffJnVT1XiNvuR03hD`Ywn8p_Cj zs6%b3%BXeT_#M&z^yCnI6F%9raxiCuHQ;1 L$@N Date: Wed, 20 Mar 2013 12:06:51 +0100 Subject: [PATCH 3/5] pull cnc sell/repair button hotkeys from settings --- OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs | 3 +++ mods/cnc/chrome/ingame.yaml | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs index b961612561..cedab28475 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs @@ -123,6 +123,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic BindOrderButton(world, sidebarRoot, "SELL_BUTTON", "sell"); BindOrderButton(world, sidebarRoot, "REPAIR_BUTTON", "repair"); + sidebarRoot.Get("SELL_BUTTON").Key = Game.Settings.Keys.SellKey; + sidebarRoot.Get("REPAIR_BUTTON").Key = Game.Settings.Keys.RepairKey; + var powerManager = world.LocalPlayer.PlayerActor.Trait(); var playerResources = world.LocalPlayer.PlayerActor.Trait(); sidebarRoot.Get("CASH").GetText = () => diff --git a/mods/cnc/chrome/ingame.yaml b/mods/cnc/chrome/ingame.yaml index 779d911eed..21d839f3b0 100644 --- a/mods/cnc/chrome/ingame.yaml +++ b/mods/cnc/chrome/ingame.yaml @@ -112,7 +112,6 @@ Container@PLAYER_WIDGETS: ImageCollection:order-icons ImageName:options ToggleButton@SELL_BUTTON: - Key: [ X:82 Y:0-24 Width:30 @@ -126,7 +125,6 @@ Container@PLAYER_WIDGETS: Y:5 ImageCollection:order-icons ToggleButton@REPAIR_BUTTON: - Key: ] X:122 Y:0-24 Width:30 From 57d85e2c978bb5ca59137c436dc6fe1a26a4b987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Wed, 20 Mar 2013 12:44:47 +0100 Subject: [PATCH 4/5] fixes #2785 don't crash when last player leaves game in cnc --- OpenRA.Mods.Cnc/Widgets/Logic/CncConquestObjectivesLogic.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncConquestObjectivesLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncConquestObjectivesLogic.cs index 92bdab650e..be81802353 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncConquestObjectivesLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncConquestObjectivesLogic.cs @@ -46,7 +46,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic foreach (var p in world.Players.Where(a => !a.NonCombatant)) { Player pp = p; - var c = world.LobbyInfo.ClientWithIndex(pp.ClientIndex); var item = itemTemplate.Clone(); var nameLabel = item.Get("NAME"); nameLabel.GetText = () => pp.WinState == WinState.Lost ? pp.PlayerName + " (Dead)" : pp.PlayerName; @@ -58,7 +57,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic item.Get("FACTION").GetText = () => pp.Country.Name; var team = item.Get("TEAM"); - team.GetText = () => (c.Team == 0) ? "-" : c.Team.ToString(); + team.GetText = () => (pp.PlayerReference.Team == 0) ? "-" : pp.PlayerReference.Team.ToString(); scrollpanel.AddChild(item); item.Get("KILLS").GetText = () => pp.Kills.ToString(); From 7f6eaf8d5e5f03ec4663b90ef3c05638c4ef4e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Sat, 23 Mar 2013 09:47:35 +0100 Subject: [PATCH 5/5] move order button hotkey logic to ingame chrome logic removes power-down again from cnc mod as it is not wanted there --- .../Widgets/Logic/IngameChromeLogic.cs | 5 ++++ .../Widgets/Logic/OrderButtonsChromeLogic.cs | 1 + OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs | 27 ------------------- 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/OpenRA.Mods.RA/Widgets/Logic/IngameChromeLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/IngameChromeLogic.cs index a7356190e2..640e1b79c8 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/IngameChromeLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/IngameChromeLogic.cs @@ -53,6 +53,11 @@ namespace OpenRA.Mods.RA.Widgets.Logic objectivesButton.IsVisible = () => world.LocalPlayer != null; } + var moneybin = gameRoot.Get("INGAME_MONEY_BIN"); + moneybin.Get("SELL").Key = Game.Settings.Keys.SellKey; + moneybin.Get("POWER_DOWN").Key = Game.Settings.Keys.PowerDownKey; + moneybin.Get("REPAIR").Key = Game.Settings.Keys.RepairKey; + optionsBG.Get("DISCONNECT").OnClick = () => LeaveGame(optionsBG, world); optionsBG.Get("SETTINGS").OnClick = () => Ui.OpenWindow("SETTINGS_MENU"); diff --git a/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs index 907f21b5cb..c98b86a752 100644 --- a/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs +++ b/OpenRA.Mods.RA/Widgets/Logic/OrderButtonsChromeLogic.cs @@ -41,6 +41,7 @@ namespace OpenRA.Mods.RA.Widgets.Logic { w.Pressed = () => world.OrderGenerator is T; w.OnMouseDown = mi => world.ToggleInputMode(); + w.OnKeyPress = ki => world.ToggleInputMode(); } } } diff --git a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs index 7e181fb528..32e3b65e4e 100644 --- a/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs +++ b/OpenRA.Mods.RA/Widgets/WorldCommandWidget.cs @@ -53,15 +53,6 @@ namespace OpenRA.Mods.RA.Widgets if (e.KeyName == Game.Settings.Keys.ToSelectionKey) return ToSelection(); - 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; @@ -196,23 +187,5 @@ namespace OpenRA.Mods.RA.Widgets Game.viewport.Center(World.Selection.Actors); return true; } - - bool PerformSwitchToSellMode() - { - World.ToggleInputMode(); - return true; - } - - bool PerformSwitchToPowerDownMode() - { - World.ToggleInputMode(); - return true; - } - - bool PerformSwitchToRepairMode() - { - World.ToggleInputMode(); - return true; - } } }