From 988160abd4e4b2706678a125002c3c62afbebd2e Mon Sep 17 00:00:00 2001 From: rsn8887 Date: Mon, 26 Mar 2018 12:06:08 -0500 Subject: [PATCH] Vita: improve keymap, map mouse buttons also to R/L --- src/client.cc | 8 ++--- src/gui/LevelMenu.cc | 8 ++--- src/gui/LevelPackMenu.cc | 4 +-- src/psp2/psp2_input.c | 75 ++++++++++++++++++++-------------------- 4 files changed, 48 insertions(+), 47 deletions(-) diff --git a/src/client.cc b/src/client.cc index 019a4b374..ccf841792 100644 --- a/src/client.cc +++ b/src/client.cc @@ -490,10 +490,10 @@ void Client::on_keydown(SDL_Event &e) { #ifdef __vita__ static const char *helptext_ingame[] = { - N_("Left mouse (square):"), N_("Activate/drop leftmost inventory item"), - N_("Right mouse (triangle):"), N_("Rotate inventory items"), N_("Escape (start/circle):"), N_("Show game menu"), - N_("Shift+Escape:"), N_("Quit game immediately"), N_("F1 (l-trigger):"), N_("Show this help"), N_("F3 (select):"), - N_("Kill current marble"), N_("Shift+F3 (r-trigger):"), N_("Restart the current level"), N_("F4:"), + N_("Left mouse (square/L):"), N_("Activate/drop leftmost inventory item"), + N_("Right mouse (triangle/R):"), N_("Rotate inventory items"), N_("Escape (circle):"), N_("Show game menu"), + N_("Shift+Escape:"), N_("Quit game immediately"), N_("F1 (start):"), N_("Show this help"), N_("F3 (select):"), + N_("Kill current marble"), N_("Shift+F3 (R+select):"), N_("Restart the current level"), N_("F4:"), N_("Skip to next level"), N_("F5:"), 0, // see below N_("F6:"), N_("Jump back to last level"), N_("F10:"), N_("Make screenshot"), N_("Left/right arrow (dpad):"), N_("Change mouse speed"), N_("Alt+x:"), N_("Return to level menu"), diff --git a/src/gui/LevelMenu.cc b/src/gui/LevelMenu.cc index d66314574..b7fe73c3f 100644 --- a/src/gui/LevelMenu.cc +++ b/src/gui/LevelMenu.cc @@ -191,8 +191,8 @@ namespace enigma { namespace gui { #ifdef __vita__ static const char *helptext_levelmenu[] = { - N_("Escape (start/circle):"), N_("Skip to main menu"), - "F1 (l-trigger):", N_("Show this help"), + N_("Escape (circle):"), N_("Skip to main menu"), + "F1 (start):", N_("Show this help"), "F5:", 0, // see below "F7:", N_("Update levelpack"), N_("Arrows (dpad):"), N_("Select level"), @@ -201,8 +201,8 @@ namespace enigma { namespace gui { "u", N_("Mark current level as unsolved"), // "s", N_("Mark current level as Solved"), N_("Alt+Return:"), N_("Switch between fullscreen and window"), - N_("Left click (square):"), N_("Play selected level"), - N_("Right click (triangle):"), N_("Inspect selected level"), + N_("Left click (square/L):"), N_("Play selected level"), + N_("Right click (triangle/R):"), N_("Inspect selected level"), 0 }; #else diff --git a/src/gui/LevelPackMenu.cc b/src/gui/LevelPackMenu.cc index 6c84074fb..d61044b3c 100644 --- a/src/gui/LevelPackMenu.cc +++ b/src/gui/LevelPackMenu.cc @@ -46,8 +46,8 @@ namespace enigma { namespace gui { static const char *helptext[] = { N_("Left column:"), N_("Levelpack groups"), N_("Right columns:"), N_("Levelpacks of selected group"), - N_("Left click (square):"), N_("Select group or levelpack"), - N_("Right click (triangle):"), N_("Configure group or levelpack"), + N_("Left click (square/L):"), N_("Select group or levelpack"), + N_("Right click (triangle/R):"), N_("Configure group or levelpack"), 0 }; #else diff --git a/src/psp2/psp2_input.c b/src/psp2/psp2_input.c index 6a613f383..7152eb15c 100644 --- a/src/psp2/psp2_input.c +++ b/src/psp2/psp2_input.c @@ -1,13 +1,13 @@ #include "psp2_input.h" #include -int lastAnalogX = 0; -int lastAnalogY = 0; int lastmx = 0; int lastmy = 0; int hiresDX = 0; int hiresDY = 0; int insideMenu = 1; +int holding_R = 0; + extern SDL_Joystick *vitaJoy0; int PSP2_PollEvent(SDL_Event *event) { @@ -16,9 +16,6 @@ int PSP2_PollEvent(SDL_Event *event) { if(event != NULL) { - int analogX = lastAnalogX; - int analogY = lastAnalogY; - switch (event->type) { case SDL_MOUSEMOTION: @@ -29,32 +26,17 @@ int PSP2_PollEvent(SDL_Event *event) { if (event->jbutton.which==0) // Only Joystick 0 controls the game { switch (event->jbutton.button) { - case PAD_START: case PAD_CIRCLE: event->type = SDL_KEYDOWN; event->key.keysym.sym = SDLK_ESCAPE; event->key.keysym.mod = 0; break; - case PAD_SELECT: - event->type = SDL_KEYDOWN; - event->key.keysym.sym = SDLK_F3; - event->key.keysym.mod = 0; - break; - case PAD_R: - event->type = SDL_KEYDOWN; - event->key.keysym.sym = SDLK_F3; - event->key.keysym.mod = KMOD_LSHIFT; - break; - case PAD_L: - event->type = SDL_KEYDOWN; - event->key.keysym.sym = SDLK_F1; - event->key.keysym.mod = 0; - break; case PAD_CROSS: event->type = SDL_KEYDOWN; event->key.keysym.sym = SDLK_RETURN; event->key.keysym.mod = 0; break; + case PAD_L: // intentional fall-through case PAD_SQUARE: event->type = SDL_MOUSEBUTTONDOWN; event->button.button = SDL_BUTTON_LEFT; @@ -62,6 +44,8 @@ int PSP2_PollEvent(SDL_Event *event) { event->button.x = lastmx; event->button.y = lastmy; break; + case PAD_R: + holding_R = 1; // intentional fall-through case PAD_TRIANGLE: event->type = SDL_MOUSEBUTTONDOWN; event->button.button = SDL_BUTTON_RIGHT; @@ -69,6 +53,21 @@ int PSP2_PollEvent(SDL_Event *event) { event->button.x = lastmx; event->button.y = lastmy; break; + case PAD_START: + event->type = SDL_KEYDOWN; + event->key.keysym.sym = SDLK_F1; + event->key.keysym.mod = 0; + break; + case PAD_SELECT: + event->type = SDL_KEYDOWN; + event->key.keysym.sym = SDLK_F3; + if (holding_R) { + event->key.keysym.mod = KMOD_LSHIFT; + } + else { + event->key.keysym.mod = 0; + } + break; case PAD_LEFT: event->type = SDL_KEYDOWN; event->key.keysym.sym = SDLK_LEFT; @@ -99,32 +98,17 @@ int PSP2_PollEvent(SDL_Event *event) { if (event->jbutton.which==0) // Only Joystick 0 controls the game { switch (event->jbutton.button) { - case PAD_START: case PAD_CIRCLE: event->type = SDL_KEYUP; event->key.keysym.sym = SDLK_ESCAPE; event->key.keysym.mod = 0; break; - case PAD_SELECT: - event->type = SDL_KEYUP; - event->key.keysym.sym = SDLK_F3; - event->key.keysym.mod = 0; - break; - case PAD_R: - event->type = SDL_KEYUP; - event->key.keysym.sym = SDLK_F3; - event->key.keysym.mod = KMOD_LSHIFT; - break; - case PAD_L: - event->type = SDL_KEYUP; - event->key.keysym.sym = SDLK_F1; - event->key.keysym.mod = 0; - break; case PAD_CROSS: event->type = SDL_KEYUP; event->key.keysym.sym = SDLK_RETURN; event->key.keysym.mod = 0; break; + case PAD_L: // intentional fall-through case PAD_SQUARE: event->type = SDL_MOUSEBUTTONUP; event->button.button = SDL_BUTTON_LEFT; @@ -132,6 +116,8 @@ int PSP2_PollEvent(SDL_Event *event) { event->button.x = lastmx; event->button.y = lastmy; break; + case PAD_R: + holding_R = 0; // intentional fall-through case PAD_TRIANGLE: event->type = SDL_MOUSEBUTTONUP; event->button.button = SDL_BUTTON_RIGHT; @@ -139,6 +125,21 @@ int PSP2_PollEvent(SDL_Event *event) { event->button.x = lastmx; event->button.y = lastmy; break; + case PAD_START: + event->type = SDL_KEYUP; + event->key.keysym.sym = SDLK_F1; + event->key.keysym.mod = 0; + break; + case PAD_SELECT: + event->type = SDL_KEYUP; + event->key.keysym.sym = SDLK_F3; + if (holding_R) { + event->key.keysym.mod = KMOD_LSHIFT; + } + else { + event->key.keysym.mod = 0; + } + break; case PAD_LEFT: event->type = SDL_KEYUP; event->key.keysym.sym = SDLK_LEFT;