From b2ef30efb59c8aa4df3bbaab376d46c583a40d98 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Wed, 27 Dec 2006 20:39:21 +0000 Subject: Client-sided implementation of attacks --- src/game.cpp | 43 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 32 deletions(-) (limited to 'src/game.cpp') diff --git a/src/game.cpp b/src/game.cpp index 15298ec6..21b6008e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -509,6 +509,17 @@ void Game::handleInput() } break; + // attacking + // TODO: Reimplement attacking with joystick buttons + // (old code allowed permanent attacking and not 1 attack + // with each button push) + // I would like to do this but i don't own a joystick. + case SDLK_LCTRL: + case SDLK_RCTRL: + player_node->attack(); + used = true; + break; + // Quitting confirmation dialog case SDLK_ESCAPE: if (!exitConfirm) { @@ -651,38 +662,6 @@ void Game::handleInput() player_node->walk(direction); - // Attacking monsters - if (keys[SDLK_LCTRL] || keys[SDLK_RCTRL] || - joystick && joystick->buttonPressed(0)) - { - Being *target = NULL; - bool newTarget = keys[SDLK_LSHIFT] || keys[SDLK_RSHIFT]; - - // A set target has highest priority - if (newTarget || !player_node->getTarget()) - { - Uint16 targetX = x, targetY = y; - - if (player_node->getDirection() & Being::UP) - targetY--; - if (player_node->getDirection() & Being::DOWN) - targetY++; - if (player_node->getDirection() & Being::LEFT) - targetX--; - if (player_node->getDirection() & Being::RIGHT) - targetX++; - - // Attack priority is: Monster, Player, auto target - target = beingManager->findBeing( - targetX, targetY, Being::MONSTER); - if (!target) - target = beingManager->findBeing( - targetX, targetY, Being::PLAYER); - } - - player_node->attack(target, newTarget); - } - // Target the nearest monster if 'a' pressed if (keys[SDLK_a]) { -- cgit v1.2.3-70-g09d2