Files
GTASource/game/frontend/page_deck/uiPageHotkey.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

100 lines
2.2 KiB
C++

/////////////////////////////////////////////////////////////////////////////////
//
// FILE : uiPageHotkey.cpp
// PURPOSE : Container object for an input type, tooltip and action to perform.
// Used as top-level interactions on a given page.
//
// AUTHOR : james.strain
// STARTED : March 2021
//
/////////////////////////////////////////////////////////////////////////////////
#include "uiPageHotkey.h"
#if UI_PAGE_DECK_ENABLED
#include "uiPageHotkey_parser.h"
#include "frontend/page_deck/messages/uiPageDeckMessages.h"
FRONTEND_OPTIMISATIONS();
uiPageHotkey::uiPageHotkey()
: m_message( nullptr )
, m_label()
, m_inputType( UNDEFINED_INPUT )
{
}
uiPageHotkey::~uiPageHotkey()
{
delete m_message;
}
eFRONTEND_INPUT uiPageHotkey::GetFrontendInputType() const
{
return GetFrontendInputType( m_inputType );
}
// Blame the long departed for these kind of shenanigans
eFRONTEND_INPUT uiPageHotkey::GetFrontendInputType( rage::InputType const inputType )
{
eFRONTEND_INPUT result = FRONTEND_INPUT_MAX;
switch( inputType )
{
case rage::INPUT_FRONTEND_ACCEPT:
{
result = FRONTEND_INPUT_ACCEPT;
break;
}
case rage::INPUT_FRONTEND_CANCEL:
{
result = FRONTEND_INPUT_BACK;
break;
}
case rage::INPUT_FRONTEND_X:
{
result = FRONTEND_INPUT_X;
break;
}
case rage::INPUT_FRONTEND_Y:
{
result = FRONTEND_INPUT_Y;
break;
}
case rage::INPUT_FRONTEND_PAUSE:
{
result = FRONTEND_INPUT_START;
break;
}
case rage::INPUT_FRONTEND_SELECT:
{
result = FRONTEND_INPUT_SELECT;
break;
}
case rage::INPUT_FRONTEND_LS:
{
result = FRONTEND_INPUT_L3;
break;
}
case rage::INPUT_FRONTEND_RS:
{
result = FRONTEND_INPUT_R3;
break;
}
default:
{
// nop
uiAssertf( false, "Unsupported hotkey %d specified", inputType );
}
}
return result;
}
bool uiPageHotkey::IsValid() const
{
return m_message != nullptr && GetFrontendInputType() != FRONTEND_INPUT_MAX;
}
#endif // UI_PAGE_DECK_ENABLED