Skip to content

Commit 375b7c7

Browse files
committed
feat: Add in-game custom hotkey remapping for unit/building production keys
- Add per-faction (USA/China/GLA) hotkey categories to KeyboardOptionsMenu - Override-Map in HotKeyManager for persistent key rebinding - Manual overlay layout management (no Shell push/pop conflicts) - ComboBox category selector, ListBox command list, TextEntry key input - Assign/ResetAll buttons with full MetaMap + CommandButton support
1 parent df31c7e commit 375b7c7

4 files changed

Lines changed: 434 additions & 62 deletions

File tree

GeneralsMD/Code/GameEngine/Include/GameClient/GUICallbacks.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ extern void KeyboardOptionsMenuUpdate( WindowLayout *layout, void *userData );
130130
extern void KeyboardOptionsMenuShutdown( WindowLayout *layout, void *userData );
131131
extern WindowMsgHandledType KeyboardOptionsMenuSystem( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
132132
extern WindowMsgHandledType KeyboardOptionsMenuInput( GameWindow *window, UnsignedInt msg, WindowMsgData mData1, WindowMsgData mData2 );
133+
extern void OpenKeyboardOptionsMenu( void ); ///< open as overlay (no Shell push)
134+
extern void CloseKeyboardOptionsMenu( void ); ///< close overlay and return to Options
133135

134136
// Lan Lobby Menu ----------------------------------------------------------------------------------
135137
extern void LanLobbyMenuInit( WindowLayout *layout, void *userData );

GeneralsMD/Code/GameEngine/Source/Common/System/FunctionLexicon.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,7 @@ static FunctionLexicon::TableEntry winLayoutUpdateTable[] =
294294

295295
{ NAMEKEY_INVALID, "MainMenuUpdate", (void*)MainMenuUpdate },
296296
{ NAMEKEY_INVALID, "OptionsMenuUpdate", (void*)OptionsMenuUpdate },
297+
{ NAMEKEY_INVALID, "KeyboardOptionsMenuUpdate", (void*)KeyboardOptionsMenuUpdate },
297298
{ NAMEKEY_INVALID, "SinglePlayerMenuUpdate", (void*)SinglePlayerMenuUpdate },
298299
{ NAMEKEY_INVALID, "MapSelectMenuUpdate", (void*)MapSelectMenuUpdate },
299300
{ NAMEKEY_INVALID, "LanLobbyMenuUpdate", (void*)LanLobbyMenuUpdate },

0 commit comments

Comments
 (0)