@ -1,5 +1,7 @@
# include "controller_buttons.h"
# include "plrctrls.h"
namespace devilution {
namespace controller_button_icon {
const string_view Playstation_Triangle = " \uE000 " ;
@ -56,7 +58,7 @@ const string_view Nintendo_LStick_W = "\uE032";
const string_view Nintendo_LStick_SW = " \uE033 " ;
const string_view Nintendo_LStick_N = " \uE034 " ;
const string_view Nintendo_LStick = " \uE035 " ;
const string_view Nintendoo _LStick_S = " \uE036 " ;
const string_view Nintendo_LStick_S = " \uE036 " ;
const string_view Nintendo_LStick_NE = " \uE037 " ;
const string_view Nintendo_LStick_E = " \uE038 " ;
const string_view Nintendo_LStick_SE = " \uE039 " ;
@ -86,9 +88,9 @@ const string_view Xbox_RT = "\uE050";
const string_view Xbox_LB = " \uE051 " ;
const string_view Xbox_RB = " \uE052 " ;
const string_view Xbox_DPad_Up = " \uE053 " ;
const string_view Xbox_Dp ad_Right = " \uE054 " ;
const string_view Xbox_Dp ad_Down = " \uE055 " ;
const string_view Xbox_Dp ad_Left = " \uE056 " ;
const string_view Xbox_DP ad_Right = " \uE054 " ;
const string_view Xbox_DP ad_Down = " \uE055 " ;
const string_view Xbox_DP ad_Left = " \uE056 " ;
const string_view Xbox_LStick_NW = " \uE057 " ;
const string_view Xbox_LStick_W = " \uE058 " ;
const string_view Xbox_LStick_SW = " \uE059 " ;
@ -110,4 +112,184 @@ const string_view Xbox_RStick_SE = "\uE068";
const string_view Xbox_RStick_Click = " \uE069 " ;
const string_view Xbox_Xbox = " \uE06A " ;
} // namespace controller_button_icon
string_view ToPlayStationIcon ( ControllerButton button )
{
switch ( button ) {
case devilution : : ControllerButton_BUTTON_A :
return controller_button_icon : : Playstation_X ;
case devilution : : ControllerButton_BUTTON_B :
return controller_button_icon : : Playstation_Circle ;
case devilution : : ControllerButton_BUTTON_X :
return controller_button_icon : : Playstation_Square ;
case devilution : : ControllerButton_BUTTON_Y :
return controller_button_icon : : Playstation_Triangle ;
case devilution : : ControllerButton_BUTTON_START :
return controller_button_icon : : Playstation_Options ;
case devilution : : ControllerButton_BUTTON_BACK :
return controller_button_icon : : Playstation_Share ;
case devilution : : ControllerButton_AXIS_TRIGGERLEFT :
return controller_button_icon : : Playstation_L2 ;
case devilution : : ControllerButton_AXIS_TRIGGERRIGHT :
return controller_button_icon : : Playstation_R2 ;
case devilution : : ControllerButton_BUTTON_LEFTSHOULDER :
return controller_button_icon : : Playstation_L1 ;
case devilution : : ControllerButton_BUTTON_RIGHTSHOULDER :
return controller_button_icon : : Playstation_R1 ;
case devilution : : ControllerButton_BUTTON_LEFTSTICK :
return controller_button_icon : : Playstation_L3 ;
case devilution : : ControllerButton_BUTTON_RIGHTSTICK :
return controller_button_icon : : Playstation_R3 ;
case devilution : : ControllerButton_BUTTON_DPAD_UP :
return controller_button_icon : : Playstation_DPad_Up ;
case devilution : : ControllerButton_BUTTON_DPAD_DOWN :
return controller_button_icon : : Playstation_DPad_Down ;
case devilution : : ControllerButton_BUTTON_DPAD_LEFT :
return controller_button_icon : : Playstation_DPad_Left ;
case devilution : : ControllerButton_BUTTON_DPAD_RIGHT :
return controller_button_icon : : Playstation_DPad_Right ;
default :
return ToGenericButtonText ( button ) ;
}
}
string_view ToNintendoIcon ( ControllerButton button )
{
switch ( button ) {
case devilution : : ControllerButton_BUTTON_A :
return controller_button_icon : : Nintendo_B ;
case devilution : : ControllerButton_BUTTON_B :
return controller_button_icon : : Nintendo_A ;
case devilution : : ControllerButton_BUTTON_X :
return controller_button_icon : : Nintendo_Y ;
case devilution : : ControllerButton_BUTTON_Y :
return controller_button_icon : : Nintendo_X ;
case devilution : : ControllerButton_BUTTON_START :
return controller_button_icon : : Nintendo_Plus ;
case devilution : : ControllerButton_BUTTON_BACK :
return controller_button_icon : : Nintendo_Minus ;
case devilution : : ControllerButton_AXIS_TRIGGERLEFT :
return controller_button_icon : : Nintendo_ZL ;
case devilution : : ControllerButton_AXIS_TRIGGERRIGHT :
return controller_button_icon : : Nintendo_ZR ;
case devilution : : ControllerButton_BUTTON_LEFTSHOULDER :
return controller_button_icon : : Nintendo_L ;
case devilution : : ControllerButton_BUTTON_RIGHTSHOULDER :
return controller_button_icon : : Nintendo_R ;
case devilution : : ControllerButton_BUTTON_LEFTSTICK :
return controller_button_icon : : Nintendo_LStick_Click ;
case devilution : : ControllerButton_BUTTON_RIGHTSTICK :
return controller_button_icon : : Nintendo_RStick_Click ;
case devilution : : ControllerButton_BUTTON_DPAD_UP :
return controller_button_icon : : Nintendo_DPad_Up ;
case devilution : : ControllerButton_BUTTON_DPAD_DOWN :
return controller_button_icon : : Nintendo_DPad_Down ;
case devilution : : ControllerButton_BUTTON_DPAD_LEFT :
return controller_button_icon : : Nintendo_DPad_Left ;
case devilution : : ControllerButton_BUTTON_DPAD_RIGHT :
return controller_button_icon : : Nintendo_DPad_Right ;
default :
return ToGenericButtonText ( button ) ;
}
}
string_view ToXboxIcon ( ControllerButton button )
{
switch ( button ) {
case devilution : : ControllerButton_BUTTON_A :
return controller_button_icon : : Xbox_A ;
case devilution : : ControllerButton_BUTTON_B :
return controller_button_icon : : Xbox_B ;
case devilution : : ControllerButton_BUTTON_X :
return controller_button_icon : : Xbox_X ;
case devilution : : ControllerButton_BUTTON_Y :
return controller_button_icon : : Xbox_Y ;
case devilution : : ControllerButton_BUTTON_START :
return controller_button_icon : : Xbox_Menu ;
case devilution : : ControllerButton_BUTTON_BACK :
return controller_button_icon : : Xbox_View ;
case devilution : : ControllerButton_AXIS_TRIGGERLEFT :
return controller_button_icon : : Xbox_LT ;
case devilution : : ControllerButton_AXIS_TRIGGERRIGHT :
return controller_button_icon : : Xbox_RT ;
case devilution : : ControllerButton_BUTTON_LEFTSHOULDER :
return controller_button_icon : : Xbox_LB ;
case devilution : : ControllerButton_BUTTON_RIGHTSHOULDER :
return controller_button_icon : : Xbox_RB ;
case devilution : : ControllerButton_BUTTON_LEFTSTICK :
return controller_button_icon : : Xbox_LStick_Click ;
case devilution : : ControllerButton_BUTTON_RIGHTSTICK :
return controller_button_icon : : Xbox_RStick_Click ;
case devilution : : ControllerButton_BUTTON_DPAD_UP :
return controller_button_icon : : Xbox_DPad_Up ;
case devilution : : ControllerButton_BUTTON_DPAD_DOWN :
return controller_button_icon : : Xbox_DPad_Down ;
case devilution : : ControllerButton_BUTTON_DPAD_LEFT :
return controller_button_icon : : Xbox_DPad_Left ;
case devilution : : ControllerButton_BUTTON_DPAD_RIGHT :
return controller_button_icon : : Xbox_DPad_Right ;
default :
return ToGenericButtonText ( button ) ;
}
}
string_view ToGenericButtonText ( ControllerButton button )
{
switch ( button ) {
case devilution : : ControllerButton_BUTTON_A :
return " A " ;
case devilution : : ControllerButton_BUTTON_B :
return " B " ;
case devilution : : ControllerButton_BUTTON_X :
return " X " ;
case devilution : : ControllerButton_BUTTON_Y :
return " Y " ;
case devilution : : ControllerButton_BUTTON_START :
return " Start " ;
case devilution : : ControllerButton_BUTTON_BACK :
return " Select " ;
case devilution : : ControllerButton_AXIS_TRIGGERLEFT :
return " LT " ;
case devilution : : ControllerButton_AXIS_TRIGGERRIGHT :
return " RT " ;
case devilution : : ControllerButton_BUTTON_LEFTSHOULDER :
return " LB " ;
case devilution : : ControllerButton_BUTTON_RIGHTSHOULDER :
return " RB " ;
case devilution : : ControllerButton_BUTTON_LEFTSTICK :
return " LS " ;
case devilution : : ControllerButton_BUTTON_RIGHTSTICK :
return " RS " ;
case devilution : : ControllerButton_BUTTON_DPAD_UP :
return " Up " ;
case devilution : : ControllerButton_BUTTON_DPAD_DOWN :
return " Down " ;
case devilution : : ControllerButton_BUTTON_DPAD_LEFT :
return " Left " ;
case devilution : : ControllerButton_BUTTON_DPAD_RIGHT :
return " Right " ;
case devilution : : ControllerButton_NONE :
return " None " ;
case devilution : : ControllerButton_IGNORE :
return " Ignored " ;
default :
return " Unknown " ;
}
}
string_view ToString ( ControllerButton button )
{
switch ( GamepadType ) {
case devilution : : GamepadLayout : : PlayStation :
return ToPlayStationIcon ( button ) ;
case devilution : : GamepadLayout : : Nintendo :
return ToNintendoIcon ( button ) ;
case devilution : : GamepadLayout : : Xbox :
return ToXboxIcon ( button ) ;
default :
case devilution : : GamepadLayout : : Generic :
return ToGenericButtonText ( button ) ;
}
}
} // namespace devilution