mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 09:39:43 +01:00
Make left/right key input correct for RTL menus
Instead of just up/down, you can also control menus with left/right. Which is illogical in Arabic... No big deal, I imagined this code to become much worse than it did. (And action sets is probably gonna refactor the whole thing anyway)
This commit is contained in:
parent
2b22f7cda2
commit
25bdf0866a
2 changed files with 50 additions and 6 deletions
|
@ -249,11 +249,11 @@ void Graphics::map_tab(int opt, const char* text, bool selected /*= false*/)
|
||||||
{
|
{
|
||||||
char buffer[SCREEN_WIDTH_CHARS + 1];
|
char buffer[SCREEN_WIDTH_CHARS + 1];
|
||||||
vformat_buf(buffer, sizeof(buffer), loc::get_langmeta()->menu_select_tight.c_str(), "label:str", text);
|
vformat_buf(buffer, sizeof(buffer), loc::get_langmeta()->menu_select_tight.c_str(), "label:str", text);
|
||||||
font::print(PR_CEN | PR_CJK_LOW, x, 220, buffer, 196, 196, 255 - help.glow);
|
font::print(PR_CEN | PR_CJK_LOW | PR_RTL_XFLIP, x, 220, buffer, 196, 196, 255 - help.glow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
font::print(PR_CEN | PR_CJK_LOW, x, 220, text, 64, 64, 64);
|
font::print(PR_CEN | PR_CJK_LOW | PR_RTL_XFLIP, x, 220, text, 64, 64, 64);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2289,11 +2289,33 @@ void titleinput(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (key.isDown(KEYBOARD_LEFT) || key.isDown(KEYBOARD_UP) || key.isDown(KEYBOARD_a) || key.isDown(KEYBOARD_w) || key.controllerWantsLeft(true))
|
SDL_Keycode left, right, a, d;
|
||||||
|
bool controller_up = key.controllerWantsUp();
|
||||||
|
bool controller_down = key.controllerWantsDown();
|
||||||
|
if (!font::is_rtl(PR_FONT_INTERFACE))
|
||||||
|
{
|
||||||
|
left = KEYBOARD_LEFT;
|
||||||
|
right = KEYBOARD_RIGHT;
|
||||||
|
a = KEYBOARD_a;
|
||||||
|
d = KEYBOARD_d;
|
||||||
|
controller_up |= key.controllerWantsLeft(false);
|
||||||
|
controller_down |= key.controllerWantsRight(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
left = KEYBOARD_RIGHT;
|
||||||
|
right = KEYBOARD_LEFT;
|
||||||
|
a = KEYBOARD_d;
|
||||||
|
d = KEYBOARD_a;
|
||||||
|
controller_up |= key.controllerWantsRight(false);
|
||||||
|
controller_down |= key.controllerWantsLeft(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.isDown(left) || key.isDown(KEYBOARD_UP) || key.isDown(a) || key.isDown(KEYBOARD_w) || controller_up)
|
||||||
{
|
{
|
||||||
game.press_left = true;
|
game.press_left = true;
|
||||||
}
|
}
|
||||||
if (key.isDown(KEYBOARD_RIGHT) || key.isDown(KEYBOARD_DOWN) || key.isDown(KEYBOARD_d) || key.isDown(KEYBOARD_s) || key.controllerWantsRight(true))
|
if (key.isDown(right) || key.isDown(KEYBOARD_DOWN) || key.isDown(d) || key.isDown(KEYBOARD_s) || controller_down)
|
||||||
{
|
{
|
||||||
game.press_right = true;
|
game.press_right = true;
|
||||||
}
|
}
|
||||||
|
@ -3019,11 +3041,33 @@ void mapinput(void)
|
||||||
&& ((!version2_2 && !game.fadetomenu && game.fadetomenudelay <= 0 && !game.fadetolab && game.fadetolabdelay <= 0)
|
&& ((!version2_2 && !game.fadetomenu && game.fadetomenudelay <= 0 && !game.fadetolab && game.fadetolabdelay <= 0)
|
||||||
|| graphics.fademode == FADE_NONE))
|
|| graphics.fademode == FADE_NONE))
|
||||||
{
|
{
|
||||||
if (key.isDown(KEYBOARD_LEFT) || key.isDown(KEYBOARD_UP) || key.isDown(KEYBOARD_a) || key.isDown(KEYBOARD_w)|| key.controllerWantsLeft(true))
|
SDL_Keycode left, right, a, d;
|
||||||
|
bool controller_up = key.controllerWantsUp();
|
||||||
|
bool controller_down = key.controllerWantsDown();
|
||||||
|
if (!font::is_rtl(PR_FONT_INTERFACE))
|
||||||
|
{
|
||||||
|
left = KEYBOARD_LEFT;
|
||||||
|
right = KEYBOARD_RIGHT;
|
||||||
|
a = KEYBOARD_a;
|
||||||
|
d = KEYBOARD_d;
|
||||||
|
controller_up |= key.controllerWantsLeft(false);
|
||||||
|
controller_down |= key.controllerWantsRight(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
left = KEYBOARD_RIGHT;
|
||||||
|
right = KEYBOARD_LEFT;
|
||||||
|
a = KEYBOARD_d;
|
||||||
|
d = KEYBOARD_a;
|
||||||
|
controller_up |= key.controllerWantsRight(false);
|
||||||
|
controller_down |= key.controllerWantsLeft(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key.isDown(left) || key.isDown(KEYBOARD_UP) || key.isDown(a) || key.isDown(KEYBOARD_w)|| controller_up)
|
||||||
{
|
{
|
||||||
game.press_left = true;
|
game.press_left = true;
|
||||||
}
|
}
|
||||||
if (key.isDown(KEYBOARD_RIGHT) || key.isDown(KEYBOARD_DOWN) || key.isDown(KEYBOARD_d) || key.isDown(KEYBOARD_s)|| key.controllerWantsRight(true))
|
if (key.isDown(right) || key.isDown(KEYBOARD_DOWN) || key.isDown(d) || key.isDown(KEYBOARD_s)|| controller_down)
|
||||||
{
|
{
|
||||||
game.press_right = true;
|
game.press_right = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue