Make control group hotkeys configurable

- Split control groups management to its own interface
- Add hotkeys for selecting, creating, adding to and combining with control groups
- Add a ControlGroups widget to manage the player interaction
This commit is contained in:
Ivaylo Draganov
2021-09-14 22:54:45 +03:00
committed by abcdefg30
parent 04b456d6c2
commit 7a93b9ea8c
31 changed files with 598 additions and 137 deletions

View File

@@ -1162,8 +1162,12 @@ Container@PLAYER_WIDGETS:
BookmarkSaveKeyPrefix: MapBookmarkSave
BookmarkRestoreKeyPrefix: MapBookmarkRestore
BookmarkKeyCount: 4
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
Logic: ControlGroupLogic
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic

View File

@@ -19,6 +19,9 @@ Container@HOTKEYS_PANEL:
Types: Music
Chat Commands:
Types: Chat
Control Groups:
Template: TWO_COLUMN
Types: ControlGroups
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:

View File

@@ -159,6 +159,7 @@ Hotkeys:
common|hotkeys/supportpowers.yaml
common|hotkeys/viewport.yaml
common|hotkeys/chat.yaml
common|hotkeys/control-groups.yaml
cnc|hotkeys.yaml
LoadScreen: CncLoadScreen

View File

@@ -4,6 +4,7 @@
ScreenMap:
ActorMap:
Selection:
ControlGroups:
MusicPlaylist:
VictoryMusic: win1
DefeatMusic: nod_map1

View File

@@ -270,6 +270,7 @@ pips:
groups: pdigits
Length: *
Offset: 9, 5
Frames: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
pip-hazmat: pip-hazmat
Offset: -3, 0

View File

@@ -19,6 +19,9 @@ Container@HOTKEYS_PANEL:
Types: Music
Chat Commands:
Types: Chat
Control Groups:
Template: TWO_COLUMN
Types: ControlGroups
Width: PARENT_RIGHT
Height: PARENT_BOTTOM
Children:

View File

@@ -0,0 +1,203 @@
ControlGroupSelect01: NUMBER_1
Description: Select group 1
Types: ControlGroups, Player
ControlGroupSelect02: NUMBER_2
Description: Select group 2
Types: ControlGroups, Player
ControlGroupSelect03: NUMBER_3
Description: Select group 3
Types: ControlGroups, Player
ControlGroupSelect04: NUMBER_4
Description: Select group 4
Types: ControlGroups, Player
ControlGroupSelect05: NUMBER_5
Description: Select group 5
Types: ControlGroups, Player
ControlGroupSelect06: NUMBER_6
Description: Select group 6
Types: ControlGroups, Player
ControlGroupSelect07: NUMBER_7
Description: Select group 7
Types: ControlGroups, Player
ControlGroupSelect08: NUMBER_8
Description: Select group 8
Types: ControlGroups, Player
ControlGroupSelect09: NUMBER_9
Description: Select group 9
Types: ControlGroups, Player
ControlGroupSelect10: NUMBER_0
Description: Select group 0
Types: ControlGroups, Player
ControlGroupCreate01: NUMBER_1 Ctrl
Description: Create group 1
Types: ControlGroups, Player
ControlGroupCreate02: NUMBER_2 Ctrl
Description: Create group 2
Types: ControlGroups, Player
ControlGroupCreate03: NUMBER_3 Ctrl
Description: Create group 3
Types: ControlGroups, Player
ControlGroupCreate04: NUMBER_4 Ctrl
Description: Create group 4
Types: ControlGroups, Player
ControlGroupCreate05: NUMBER_5 Ctrl
Description: Create group 5
Types: ControlGroups, Player
ControlGroupCreate06: NUMBER_6 Ctrl
Description: Create group 6
Types: ControlGroups, Player
ControlGroupCreate07: NUMBER_7 Ctrl
Description: Create group 7
Types: ControlGroups, Player
ControlGroupCreate08: NUMBER_8 Ctrl
Description: Create group 8
Types: ControlGroups, Player
ControlGroupCreate09: NUMBER_9 Ctrl
Description: Create group 9
Types: ControlGroups, Player
ControlGroupCreate10: NUMBER_0 Ctrl
Description: Create group 0
Types: ControlGroups, Player
ControlGroupAddTo01: NUMBER_1 Ctrl, Shift
Description: Add to group 1
Types: ControlGroups, Player
ControlGroupAddTo02: NUMBER_2 Ctrl, Shift
Description: Add to group 2
Types: ControlGroups, Player
ControlGroupAddTo03: NUMBER_3 Ctrl, Shift
Description: Add to group 3
Types: ControlGroups, Player
ControlGroupAddTo04: NUMBER_4 Ctrl, Shift
Description: Add to group 4
Types: ControlGroups, Player
ControlGroupAddTo05: NUMBER_5 Ctrl, Shift
Description: Add to group 5
Types: ControlGroups, Player
ControlGroupAddTo06: NUMBER_6 Ctrl, Shift
Description: Add to group 6
Types: ControlGroups, Player
ControlGroupAddTo07: NUMBER_7 Ctrl, Shift
Description: Add to group 7
Types: ControlGroups, Player
ControlGroupAddTo08: NUMBER_8 Ctrl, Shift
Description: Add to group 8
Types: ControlGroups, Player
ControlGroupAddTo09: NUMBER_9 Ctrl, Shift
Description: Add to group 9
Types: ControlGroups, Player
ControlGroupAddTo10: NUMBER_0 Ctrl, Shift
Description: Add to group 0
Types: ControlGroups, Player
ControlGroupCombineWith01: NUMBER_1 Shift
Description: Combine with group 1
Types: ControlGroups, Player
ControlGroupCombineWith02: NUMBER_2 Shift
Description: Combine with group 2
Types: ControlGroups, Player
ControlGroupCombineWith03: NUMBER_3 Shift
Description: Combine with group 3
Types: ControlGroups, Player
ControlGroupCombineWith04: NUMBER_4 Shift
Description: Combine with group 4
Types: ControlGroups, Player
ControlGroupCombineWith05: NUMBER_5 Shift
Description: Combine with group 5
Types: ControlGroups, Player
ControlGroupCombineWith06: NUMBER_6 Shift
Description: Combine with group 6
Types: ControlGroups, Player
ControlGroupCombineWith07: NUMBER_7 Shift
Description: Combine with group 7
Types: ControlGroups, Player
ControlGroupCombineWith08: NUMBER_8 Shift
Description: Combine with group 8
Types: ControlGroups, Player
ControlGroupCombineWith09: NUMBER_9 Shift
Description: Combine with group 9
Types: ControlGroups, Player
ControlGroupCombineWith10: NUMBER_0 Shift
Description: Combine with group 0
Types: ControlGroups, Player
ControlGroupJumpTo01: NUMBER_1 Alt
Description: Jump to group 1
Types: ControlGroups, Player
ControlGroupJumpTo02: NUMBER_2 Alt
Description: Jump to group 2
Types: ControlGroups, Player
ControlGroupJumpTo03: NUMBER_3 Alt
Description: Jump to group 3
Types: ControlGroups, Player
ControlGroupJumpTo04: NUMBER_4 Alt
Description: Jump to group 4
Types: ControlGroups, Player
ControlGroupJumpTo05: NUMBER_5 Alt
Description: Jump to group 5
Types: ControlGroups, Player
ControlGroupJumpTo06: NUMBER_6 Alt
Description: Jump to group 6
Types: ControlGroups, Player
ControlGroupJumpTo07: NUMBER_7 Alt
Description: Jump to group 7
Types: ControlGroups, Player
ControlGroupJumpTo08: NUMBER_8 Alt
Description: Jump to group 8
Types: ControlGroups, Player
ControlGroupJumpTo09: NUMBER_9 Alt
Description: Jump to group 9
Types: ControlGroups, Player
ControlGroupJumpTo10: NUMBER_0 Alt
Description: Jump to group 0
Types: ControlGroups, Player
RemoveFromControlGroup:
Description: Remove from control group
Types: ControlGroups, Player

View File

@@ -22,10 +22,6 @@ CycleHarvesters: N
Description: Cycle Harvesters
Types: World, Player, Spectator
RemoveFromControlGroup:
Description: Remove from control group
Types: World, Player
Pause: PAUSE
Description: Pause / Unpause
Types: World, Player, Spectator

View File

@@ -2,8 +2,12 @@ Container@PLAYER_WIDGETS:
Logic: LoadIngameChatLogic
Children:
Container@CHAT_ROOT:
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
Logic: ControlGroupLogic
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic

View File

@@ -144,6 +144,7 @@ Hotkeys:
common|hotkeys/supportpowers.yaml
common|hotkeys/viewport.yaml
common|hotkeys/chat.yaml
common|hotkeys/control-groups.yaml
d2k|hotkeys.yaml
LoadScreen: LogoStripeLoadScreen

View File

@@ -4,6 +4,7 @@
ScreenMap:
ActorMap:
Selection:
ControlGroups:
MusicPlaylist:
VictoryMusic: score
DefeatMusic: score

View File

@@ -128,8 +128,8 @@ sandtrail:
pips:
groups: DATA.R8
Start: 17
Length: 10
Frames: 18, 19, 20, 21, 22, 23, 24, 25, 26, 17
Offset: 3, 3
pickup-indicator: DATA.R8
Start: 112

View File

@@ -2,8 +2,12 @@ Container@PLAYER_WIDGETS:
Logic: LoadIngameChatLogic
Children:
Container@CHAT_ROOT:
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
Logic: ControlGroupLogic
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic

View File

@@ -165,6 +165,7 @@ Hotkeys:
common|hotkeys/supportpowers.yaml
common|hotkeys/viewport.yaml
common|hotkeys/chat.yaml
common|hotkeys/control-groups.yaml
ra|hotkeys.yaml
LoadScreen: LogoStripeLoadScreen

View File

@@ -4,6 +4,7 @@
ActorMap:
ScreenMap:
Selection:
ControlGroups:
MusicPlaylist:
VictoryMusic: score
DefeatMusic: map

View File

@@ -96,8 +96,8 @@ burn-s:
pips:
groups:
Start: 8
Length: 10
Frames: 9, 10, 11, 12, 13, 14, 15, 16, 17, 8
Offset: 9, 5
medic:
Start: 20

View File

@@ -9,8 +9,12 @@ Container@PLAYER_WIDGETS:
DecreaseDepthPreviewContrastKey: DecreaseDepthPreviewContrast
IncreaseDepthPreviewOffsetKey: IncreaseDepthPreviewOffset
DecreaseDepthPreviewOffsetKey: DecreaseDepthPreviewOffset
LogicKeyListener@CONTROLGROUP_KEYHANDLER:
Logic: ControlGroupLogic
ControlGroups@CONTROLGROUPS:
SelectGroupKeyPrefix: ControlGroupSelect
CreateGroupKeyPrefix: ControlGroupCreate
AddToGroupKeyPrefix: ControlGroupAddTo
CombineWithGroupKeyPrefix: ControlGroupCombineWith
JumpToGroupKeyPrefix: ControlGroupJumpTo
LogicTicker@SIDEBAR_TICKER:
Container@SUPPORT_POWERS:
Logic: SupportPowerBinLogic

View File

@@ -19,6 +19,9 @@ Container@HOTKEYS_PANEL:
Types: Music
Chat Commands:
Types: Chat
Control Groups:
Template: TWO_COLUMN
Types: ControlGroups
Depth Preview Debug:
Types: DepthDebug
Width: PARENT_RIGHT

View File

@@ -201,6 +201,7 @@ Hotkeys:
common|hotkeys/supportpowers.yaml
common|hotkeys/viewport.yaml
common|hotkeys/chat.yaml
common|hotkeys/control-groups.yaml
ts|hotkeys.yaml
LoadScreen: LogoStripeLoadScreen

View File

@@ -4,6 +4,7 @@
ScreenMap:
ActorMap:
Selection:
ControlGroups:
MusicPlaylist:
VictoryMusic: score
DefeatMusic: maps