Ensures there's a regular fallback actionmap for toggling the game menu

This commit is contained in:
Areloch 2024-07-24 10:48:55 -05:00
parent 7db28feb67
commit 8ce6fb96ad
2 changed files with 25 additions and 4 deletions

View file

@ -88,12 +88,12 @@ function UI::initClient(%this)
function UI::onCreateClientConnection(%this) function UI::onCreateClientConnection(%this)
{ {
GameMenuActionMap.push(); GameMenuToggleActionMap.push();
} }
function UI::onDestroyClientConnection(%this) function UI::onDestroyClientConnection(%this)
{ {
GameMenuActionMap.pop(); GameMenuToggleActionMap.pop();
} }
function UI::registerGameMenus(%this, %menusArrayObj) function UI::registerGameMenus(%this, %menusArrayObj)

View file

@ -64,6 +64,15 @@ function GameMenu::onSleep(%this)
} }
} }
//This is just for general usage/fallback for ensuring we can get to the game menu
if(!isObject( GameMenuToggleActionMap ) )
{
new ActionMap(GameMenuToggleActionMap){};
GameMenuToggleActionMap.bindCmd( keyboard, Escape, "toggleGameMenu();", "" );
GameMenuToggleActionMap.bindCmd( gamepad, btn_start, "toggleGameMenu();", "" );
}
if(!isObject( GameMenuActionMap ) ) if(!isObject( GameMenuActionMap ) )
{ {
new ActionMap(GameMenuActionMap){}; new ActionMap(GameMenuActionMap){};
@ -78,9 +87,9 @@ if(!isObject( GameMenuActionMap ) )
GameMenuActionMap.bind( keyboard, Space, BaseUIActivateSelected ); GameMenuActionMap.bind( keyboard, Space, BaseUIActivateSelected );
GameMenuActionMap.bind( gamepad, btn_a, BaseUIActivateSelected ); GameMenuActionMap.bind( gamepad, btn_a, BaseUIActivateSelected );
GameMenuActionMap.bindCmd( keyboard, Escape, "Canvas.popDialog(GameMenu);", "" ); GameMenuActionMap.bindCmd( keyboard, Escape, "toggleGameMenu();", "" );
GameMenuActionMap.bindCmd( gamepad, btn_b, "Canvas.popDialog(GameMenu);", "" ); GameMenuActionMap.bindCmd( gamepad, btn_b, "Canvas.popDialog(GameMenu);", "" );
GameMenuActionMap.bindCmd( gamepad, btn_start, "Canvas.popDialog(GameMenu);", "" ); GameMenuActionMap.bindCmd( gamepad, btn_start, "toggleGameMenu();", "" );
GameMenuActionMap.bind( keyboard, q, GameMenuPrevMenu ); GameMenuActionMap.bind( keyboard, q, GameMenuPrevMenu );
GameMenuActionMap.bind( gamepad, btn_l, GameMenuPrevMenu ); GameMenuActionMap.bind( gamepad, btn_l, GameMenuPrevMenu );
@ -89,6 +98,18 @@ if(!isObject( GameMenuActionMap ) )
GameMenuActionMap.bind( gamepad, btn_r, GameMenuNextMenu ); GameMenuActionMap.bind( gamepad, btn_r, GameMenuNextMenu );
} }
function toggleGameMenu()
{
if(GameMenu.isAwake() && GameMenu.isVisible())
{
Canvas.popDialog(GameMenu);
}
else
{
Canvas.pushDialog(GameMenu);
}
}
function GameMenu::openGameMenu(%this, %menuName) function GameMenu::openGameMenu(%this, %menuName)
{ {
%menuIdx = %this.gameMenusArray.getIndexFromKey(%menuName); %menuIdx = %this.gameMenusArray.getIndexFromKey(%menuName);