From c07c1357e5880bc21ec344c79eaaa0e8e9a857c7 Mon Sep 17 00:00:00 2001 From: Crow-bar Date: Fri, 27 May 2022 15:11:38 +0300 Subject: [PATCH] platform: buttons layout update --- engine/client/console.c | 20 ++++++++++++++++++-- engine/client/keys.c | 26 ++++++++++++++++++++++++++ engine/platform/psp/in_psp.c | 2 +- mainui | 2 +- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/engine/client/console.c b/engine/client/console.c index 1cfe1277..89f85a2d 100644 --- a/engine/client/console.c +++ b/engine/client/console.c @@ -1508,7 +1508,11 @@ void Field_KeyDownEvent( field_t *edit, int key ) return; } +#if XASH_PSP + if( key == K_BACKSPACE || key == K_X_BUTTON ) +#else if( key == K_BACKSPACE ) +#endif { if( edit->cursor > 0 ) { @@ -1718,7 +1722,11 @@ void Key_Console( int key ) } // enter finishes the line +#if XASH_PSP + if( key == K_ENTER || key == K_KP_ENTER || key == K_A_BUTTON ) +#else if( key == K_ENTER || key == K_KP_ENTER ) +#endif { // if not in the game explicitly prepent a slash if needed if( cls.state != ca_active && con.input.buffer[0] != '\\' && con.input.buffer[0] != '/' ) @@ -1789,7 +1797,7 @@ void Key_Console( int key ) // console scrolling #if XASH_PSP - if( key == K_JOY2 ) + if( key == K_PGUP || key == K_R1_BUTTON ) #else if( key == K_PGUP ) #endif @@ -1798,7 +1806,7 @@ void Key_Console( int key ) return; } #if XASH_PSP - if( key == K_JOY1 ) + if( key == K_PGDN || key == K_L1_BUTTON ) #else if( key == K_PGDN ) #endif @@ -1852,14 +1860,22 @@ void Key_Message( int key ) { char buffer[MAX_SYSPATH]; +#if XASH_PSP + if( key == K_ESCAPE || key == K_START_BUTTON ) +#else if( key == K_ESCAPE ) +#endif { Key_SetKeyDest( key_game ); Con_ClearField( &con.chat ); return; } +#if XASH_PSP + if( key == K_ENTER || key == K_KP_ENTER || key == K_A_BUTTON ) +#else if( key == K_ENTER || key == K_KP_ENTER ) +#endif { if( con.chat.buffer[0] && cls.state == ca_active ) { diff --git a/engine/client/keys.c b/engine/client/keys.c index c941b286..0bb61e6c 100644 --- a/engine/client/keys.c +++ b/engine/client/keys.c @@ -106,7 +106,11 @@ keyname_t keynames[] = {"R1_BUTTON", K_R1_BUTTON, ""}, {"BACK", K_BACK_BUTTON, ""}, {"MODE", K_MODE_BUTTON, ""}, +#if XASH_PSP +{"START", K_START_BUTTON, "escape"}, // hardcoded +#else {"START", K_START_BUTTON, ""}, +#endif {"STICK1", K_LSTICK, ""}, {"STICK2", K_RSTICK, ""}, {"L2_BUTTON", K_L2_BUTTON, ""}, // in case... @@ -380,6 +384,9 @@ void Key_Unbindall_f( void ) // set some defaults Key_SetBinding( K_ESCAPE, "escape" ); +#if XASH_PSP + Key_SetBinding( K_START_BUTTON, "escape" ); +#endif } /* @@ -714,7 +721,11 @@ void GAME_EXPORT Key_Event( int key, int down ) Touch_KeyEvent( key, down ); // console key is hardcoded, so the user can never unbind it +#if XASH_PSP + if( key == '`' || key == '~' || key == K_MODE_BUTTON ) +#else if( key == '`' || key == '~' ) +#endif { // we are in typing mode, so don't switch to console if( cls.key_dest == key_message || !down ) @@ -725,7 +736,11 @@ void GAME_EXPORT Key_Event( int key, int down ) } // escape is always handled special +#if XASH_PSP + if( ( key == K_ESCAPE || key == K_START_BUTTON ) && down ) +#else if( key == K_ESCAPE && down ) +#endif { switch( cls.key_dest ) { @@ -890,7 +905,11 @@ Normal keyboard characters, already shifted / capslocked / etc void CL_CharEvent( int key ) { // the console key should never be used as a char +#if XASH_PSP + if( key == '`' || key == '~' || key == K_MODE_BUTTON ) return; +#else if( key == '`' || key == '~' ) return; +#endif if( cls.key_dest == key_console && !Con_Visible( )) { @@ -1015,7 +1034,11 @@ static qboolean OSK_KeyEvent( int key, int down ) if( osk.curbutton.val == 0 ) { +#if XASH_PSP + if( key == K_ENTER || key == K_A_BUTTON ) +#else if( key == K_ENTER ) +#endif { osk.curbutton.val = osk_keylayout[osk.curlayout][osk.curbutton.y][osk.curbutton.x]; return true; @@ -1026,6 +1049,9 @@ static qboolean OSK_KeyEvent( int key, int down ) switch ( key ) { +#if XASH_PSP + case K_A_BUTTON: +#endif case K_ENTER: switch( osk.curbutton.val ) { diff --git a/engine/platform/psp/in_psp.c b/engine/platform/psp/in_psp.c index 34a04fd2..dcd5e1a2 100644 --- a/engine/platform/psp/in_psp.c +++ b/engine/platform/psp/in_psp.c @@ -31,7 +31,7 @@ static struct psp_keymap_s int dstkey; }psp_keymap[] = { -#if 1 +#if 0 { PSP_CTRL_SELECT, '~' }, { PSP_CTRL_START, K_ESCAPE }, { PSP_CTRL_UP, K_UPARROW }, diff --git a/mainui b/mainui index 37e4c7cb..0cd109c0 160000 --- a/mainui +++ b/mainui @@ -1 +1 @@ -Subproject commit 37e4c7cb817403f59edb9babbfdf3435ea2ba1ab +Subproject commit 0cd109c0463c1d5fd4f84055fa4f21e49f2d901f