2020-05-20 17:19:52 -05:00
|
|
|
function MainMenuGui::onAdd(%this)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2019-08-29 00:22:33 -05:00
|
|
|
function MainMenuGui::onWake(%this)
|
|
|
|
|
{
|
2023-12-06 19:50:51 -06:00
|
|
|
MainMenuButtonList.listPosition = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!isObject( MainMenuActionMap ) )
|
|
|
|
|
{
|
|
|
|
|
new ActionMap(MainMenuActionMap){};
|
2022-05-09 16:17:22 -05:00
|
|
|
|
2023-12-06 19:50:51 -06:00
|
|
|
MainMenuActionMap.bind( keyboard, w, mainMenuNavigateUp );
|
|
|
|
|
MainMenuActionMap.bind( keyboard, s, mainMenuNavigateDown );
|
|
|
|
|
MainMenuActionMap.bind( gamepad, yaxis, "D", "-0.23 0.23", mainMenuStickNavigate );
|
|
|
|
|
MainMenuActionMap.bind( gamepad, upov, mainMenuNavigateUp );
|
|
|
|
|
MainMenuActionMap.bind( gamepad, dpov, mainMenuNavigateDown );
|
2022-05-09 16:17:22 -05:00
|
|
|
|
2023-12-06 19:50:51 -06:00
|
|
|
MainMenuActionMap.bind( keyboard, Enter, activateSelected );
|
|
|
|
|
MainMenuActionMap.bind( gamepad, btn_a, activateSelected );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function mainMenuNavigateUp(%val)
|
|
|
|
|
{
|
|
|
|
|
if(%val)
|
|
|
|
|
{
|
|
|
|
|
MainMenuButtonList.listPosition -= 1;
|
|
|
|
|
if(MainMenuButtonList.listPosition < 0)
|
|
|
|
|
MainMenuButtonList.listPosition = 0;
|
|
|
|
|
|
|
|
|
|
MainMenuGUI.syncGUI();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function mainMenuNavigateDown(%val)
|
|
|
|
|
{
|
|
|
|
|
if(%val)
|
|
|
|
|
{
|
|
|
|
|
MainMenuButtonList.listPosition += 1;
|
|
|
|
|
if(MainMenuButtonList.listPosition >= MainMenuButtonList.getCount())
|
|
|
|
|
MainMenuButtonList.listPosition = MainMenuButtonList.getCount()-1;
|
|
|
|
|
|
|
|
|
|
MainMenuGUI.syncGUI();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function mainMenuStickNavigate(%val)
|
|
|
|
|
{
|
|
|
|
|
if(%val == -1)
|
|
|
|
|
mainMenuNavigateUp(1);
|
|
|
|
|
else if(%val == 1)
|
|
|
|
|
mainMenuNavigateDown(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function MainMenuGUI::syncGUI(%this)
|
|
|
|
|
{
|
|
|
|
|
MainMenuButtonList.callOnChildren("setHighlighted", false);
|
2022-05-06 23:39:16 -05:00
|
|
|
|
2023-12-06 19:50:51 -06:00
|
|
|
%btn = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
|
|
|
|
|
%btn.setHighlighted(true);
|
2022-06-05 01:21:38 -05:00
|
|
|
|
2023-12-06 19:50:51 -06:00
|
|
|
//
|
|
|
|
|
//Update the button imagery to comply to the last input device we'd used
|
|
|
|
|
%device = Canvas.getLastInputDevice();
|
|
|
|
|
if(%device $= "mouse")
|
|
|
|
|
%device = "keyboard";
|
|
|
|
|
|
|
|
|
|
%binding = MainMenuActionMap.getBinding("activateSelected");
|
|
|
|
|
|
|
|
|
|
%bindingCount = getFieldCount(%binding);
|
|
|
|
|
for(%i=0; %i < %bindingCount; %i+=2)
|
|
|
|
|
{
|
|
|
|
|
%mapDevice = stripTrailingNumber(getField(%binding, %i));
|
|
|
|
|
if(%mapDevice $= %device)
|
|
|
|
|
{
|
|
|
|
|
%button = getField(%binding, %i+1);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
%assetId = getButtonBitmap(%device, %button);
|
|
|
|
|
MainMenuGoButton.setBitmap(%assetId);
|
2020-05-20 17:19:52 -05:00
|
|
|
}
|
|
|
|
|
|
2023-12-06 19:50:51 -06:00
|
|
|
function activateSelected()
|
2020-05-20 17:19:52 -05:00
|
|
|
{
|
2023-12-06 19:50:51 -06:00
|
|
|
%btn = MainMenuButtonList.getObject(MainMenuButtonList.listPosition);
|
|
|
|
|
%btn.performClick();
|
2022-05-06 23:39:16 -05:00
|
|
|
}
|