From fd6f7a8fec07920c5941c5010e086f4bb449404e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 25 Dec 2012 16:44:35 +0300 Subject: Add new action "stop or sit" --- src/actionmanager.cpp | 20 ++++++++++++++++++++ src/actionmanager.h | 1 + src/gui/setupactiondata.h | 5 +++++ src/keyboarddata.h | 7 +++++++ src/keydata.h | 1 + src/touchactions.cpp | 10 +--------- 6 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp index f41a9269c..92087b6db 100644 --- a/src/actionmanager.cpp +++ b/src/actionmanager.cpp @@ -1045,4 +1045,24 @@ impHandler0(safeVideoMode) return true; } +impHandler0(stopSit) +{ + if (player_node) + { + player_node->stopAttack(); + // not consume if target attack key pressed + if (inputManager.isActionActive(Input::KEY_TARGET_ATTACK)) + return false; + if (!player_node->getTarget()) + { + if (inputManager.isActionActive(Input::KEY_EMOTE)) + player_node->updateSit(); + else + player_node->toggleSit(); + } + return true; + } + return false; +} + } diff --git a/src/actionmanager.h b/src/actionmanager.h index c04dceff5..380a156c7 100644 --- a/src/actionmanager.h +++ b/src/actionmanager.h @@ -94,6 +94,7 @@ namespace ActionManager decHandler(targetMonster); decHandler(targetNPC); decHandler(safeVideoMode); + decHandler(stopSit); decHandler(hideWindows); decHandler(helpWindowShow); diff --git a/src/gui/setupactiondata.h b/src/gui/setupactiondata.h index 3fab79b61..2ca6aaa3c 100644 --- a/src/gui/setupactiondata.h +++ b/src/gui/setupactiondata.h @@ -159,6 +159,11 @@ static SetupActionData setupActionData0[] = Input::KEY_QUIT, "", }, + { + N_("Stop or sit"), + Input::KEY_STOP_SIT, + "", + }, { N_("Return to safe video mode"), Input::KEY_SAFE_VIDEO, diff --git a/src/keyboarddata.h b/src/keyboarddata.h index 155743aab..506594d7a 100644 --- a/src/keyboarddata.h +++ b/src/keyboarddata.h @@ -1922,6 +1922,13 @@ static const KeyData keyData[Input::KEY_TOTAL] = { Input::GRP_DEFAULT, &ActionManager::safeVideoMode, Input::KEY_NO_VALUE, 50, + COND_DEFAULT}, + {"keyStopSit", + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + INPUT_UNKNOWN, Input::KEY_NO_VALUE, + Input::GRP_DEFAULT, + &ActionManager::stopSit, + Input::KEY_NO_VALUE, 50, COND_DEFAULT} }; diff --git a/src/keydata.h b/src/keydata.h index b5107113e..5d3606d69 100644 --- a/src/keydata.h +++ b/src/keydata.h @@ -337,6 +337,7 @@ namespace Input KEY_GUI_INSERT, KEY_GUI_MOD, KEY_SAFE_VIDEO, + KEY_STOP_SIT, KEY_TOTAL }; } diff --git a/src/touchactions.cpp b/src/touchactions.cpp index a12f54e99..2a6fbacaa 100644 --- a/src/touchactions.cpp +++ b/src/touchactions.cpp @@ -21,10 +21,7 @@ #include "touchactions.h" #include "actionmanager.h" -#include "being.h" #include "game.h" -#include "keydata.h" -#include "localplayer.h" #include "logger.h" #include "mouseinput.h" #include "touchmanager.h" @@ -154,10 +151,5 @@ impHandler0(attackClick) impHandler0(cancelClick) { - if (player_node) - { - ActionManager::stopAttack(tempEvent); - if (!player_node->getTarget()) - ActionManager::sit(tempEvent); - } + ActionManager::stopSit(tempEvent); } -- cgit v1.2.3-60-g2f50