From d811b764c763bb4ed48dc1d2444c47a1c28e94a5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 9 Nov 2011 23:45:52 +0300 Subject: Fix joystick attack (button 0). Add stop attack action to joystick (button 4). --- src/game.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index a6d79658c..e2a401d80 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1580,19 +1580,22 @@ void Game::handleInput() } } - if (((player_node->getAttackType() == 0 + bool joyAttack(false); + if (joystick && joystick->buttonPressed(0)) + joyAttack = true; + + if ((((player_node->getAttackType() == 0 && player_node->getFollow().empty()) || event.type == SDL_KEYDOWN) - && mValidSpeed) + || joyAttack) && mValidSpeed) { // Attacking monsters - if (keyboard.isKeyActive(keyboard.KEY_ATTACK) || - (joystick && joystick->buttonPressed(0))) + if (keyboard.isKeyActive(keyboard.KEY_ATTACK)) { if (player_node->getTarget()) player_node->attack(player_node->getTarget(), true); } - if (keyboard.isKeyActive(keyboard.KEY_TARGET_ATTACK) + if ((keyboard.isKeyActive(keyboard.KEY_TARGET_ATTACK) || joyAttack) && !keyboard.isKeyActive(keyboard.KEY_MOVE_TO_TARGET)) { Being *target = nullptr; @@ -1676,10 +1679,15 @@ void Game::handleInput() if (!keyboard.isKeyActive(keyboard.KEY_ATTACK) && !keyboard.isKeyActive(keyboard.KEY_EMOTE)) { - if (keyboard.isKeyActive(keyboard.KEY_TARGET)) + if (keyboard.isKeyActive(keyboard.KEY_TARGET) + || (joystick && joystick->buttonPressed(4))) + { player_node->stopAttack(); + } else if (keyboard.isKeyActive(keyboard.KEY_UNTARGET)) + { player_node->untarget(); + } } if (joystick) -- cgit v1.2.3-70-g09d2