X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fjoystick.c;h=61d0a113970302c70e1337d20096cab32b5102b9;hp=92eec0e352e9f13e84115756556f818d1b0fe2eb;hb=0d214d4e314f6f42df24be140bb433e980319767;hpb=abe44529b439ad39b4d8dbf19cbd67c9b9844279 diff --git a/src/libgame/joystick.c b/src/libgame/joystick.c index 92eec0e3..61d0a113 100644 --- a/src/libgame/joystick.c +++ b/src/libgame/joystick.c @@ -159,21 +159,24 @@ void CheckJoystickData() } } -int Joystick(int player_nr) +int JoystickExt(int player_nr, boolean use_as_joystick_nr) { - int joystick_fd = joystick.fd[player_nr]; + int joystick_nr = joystick.nr[player_nr]; int js_x, js_y; boolean js_b1, js_b2; int left, right, up, down; int result = JOY_NO_ACTION; + if (use_as_joystick_nr) + joystick_nr = player_nr; + if (joystick.status != JOYSTICK_ACTIVATED) return JOY_NO_ACTION; - if (joystick_fd < 0 || !setup.input[player_nr].use_joystick) + if (joystick_nr < 0) return JOY_NO_ACTION; - if (!ReadJoystick(joystick_fd, &js_x, &js_y, &js_b1, &js_b2)) + if (!ReadJoystick(joystick_nr, &js_x, &js_y, &js_b1, &js_b2)) { Error(ERR_WARN, "cannot read joystick device '%s'", setup.input[player_nr].joy.device_name); @@ -208,10 +211,15 @@ int Joystick(int player_nr) return result; } -int JoystickButton(int player_nr) +int Joystick(int player_nr) +{ + return JoystickExt(player_nr, FALSE); +} + +int JoystickButtonExt(int player_nr, boolean use_as_joystick_nr) { static int last_joy_button[MAX_PLAYERS] = { 0, 0, 0, 0 }; - int joy_button = (Joystick(player_nr) & JOY_BUTTON); + int joy_button = (JoystickExt(player_nr, use_as_joystick_nr) & JOY_BUTTON); int result; if (joy_button) @@ -233,13 +241,18 @@ int JoystickButton(int player_nr) return result; } +int JoystickButton(int player_nr) +{ + return JoystickButtonExt(player_nr, FALSE); +} + int AnyJoystick() { int i; int result = 0; for (i = 0; i < MAX_PLAYERS; i++) - result |= Joystick(i); + result |= JoystickExt(i, TRUE); return result; } @@ -251,7 +264,7 @@ int AnyJoystickButton() for (i = 0; i < MAX_PLAYERS; i++) { - result = JoystickButton(i); + result = JoystickButtonExt(i, TRUE); if (result != JOY_BUTTON_NOT_PRESSED) break; }