diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-07-20 00:36:55 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-07-20 00:36:55 +0300 |
commit | e081ded6fba48fed7da637076ceddb4dc8b40e03 (patch) | |
tree | 21faf7c51479a5f6a426fd6802aa261e5ad4c6c1 | |
parent | 042da1df2289c2e4db5ad146f3cfe2c1e71c9f84 (diff) | |
download | manaplus-e081ded6fba48fed7da637076ceddb4dc8b40e03.tar.gz manaplus-e081ded6fba48fed7da637076ceddb4dc8b40e03.tar.bz2 manaplus-e081ded6fba48fed7da637076ceddb4dc8b40e03.tar.xz manaplus-e081ded6fba48fed7da637076ceddb4dc8b40e03.zip |
Yellow bar action methods add support for back and forward switch.
For now unused.
-rw-r--r-- | src/actionmanager.cpp | 22 | ||||
-rw-r--r-- | src/being/localplayer.cpp | 64 | ||||
-rw-r--r-- | src/being/localplayer.h | 25 |
3 files changed, 62 insertions, 49 deletions
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp index 1896e333d..593f3f6da 100644 --- a/src/actionmanager.cpp +++ b/src/actionmanager.cpp @@ -386,7 +386,7 @@ impHandler0(switchQuickDrop) { if (player_node && !player_node->getDisableGameModifiers()) { - player_node->changeQuickDropCounter(); + player_node->changeQuickDropCounter(true); return true; } return false; @@ -444,7 +444,7 @@ impHandler0(changeCrazyMove) { if (player_node) { - player_node->changeCrazyMoveType(); + player_node->changeCrazyMoveType(true); return true; } return false; @@ -454,7 +454,7 @@ impHandler0(changePickupType) { if (player_node) { - player_node->changePickUpType(); + player_node->changePickUpType(true); return true; } return false; @@ -498,7 +498,7 @@ impHandler0(changeMoveType) { if (player_node) { - player_node->invertDirection(); + player_node->invertDirection(true); return true; } return false; @@ -508,7 +508,7 @@ impHandler0(changeAttackWeaponType) { if (player_node) { - player_node->changeAttackWeaponType(); + player_node->changeAttackWeaponType(true); return true; } return false; @@ -518,7 +518,7 @@ impHandler0(changeAttackType) { if (player_node) { - player_node->changeAttackType(); + player_node->changeAttackType(true); return true; } return false; @@ -528,7 +528,7 @@ impHandler0(changeFollowMode) { if (player_node) { - player_node->changeFollowMode(); + player_node->changeFollowMode(true); return true; } return false; @@ -538,7 +538,7 @@ impHandler0(changeImitationMode) { if (player_node) { - player_node->changeImitationMode(); + player_node->changeImitationMode(true); return true; } return false; @@ -558,7 +558,7 @@ impHandler0(changeMagicAttack) { if (player_node) { - player_node->switchMagicAttack(); + player_node->switchMagicAttack(true); return true; } return false; @@ -568,7 +568,7 @@ impHandler0(changePvpMode) { if (player_node) { - player_node->switchPvpAttack(); + player_node->switchPvpAttack(true); return true; } return false; @@ -578,7 +578,7 @@ impHandler0(changeMoveToTarget) { if (player_node) { - player_node->changeMoveToTargetType(); + player_node->changeMoveToTargetType(true); return true; } return false; diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 0a05782d9..a643a3a0e 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -1244,14 +1244,26 @@ void LocalPlayer::changeMode(unsigned *restrict const var, const char *restrict const conf, std::string (LocalPlayer::*const func)(), const unsigned def, - const bool save) + const bool save, + const bool forward) { if (!var) return; - (*var) ++; - if (*var >= limit) - *var = def; + if (forward) + { + (*var) ++; + if (*var >= limit) + *var = def; + } + else + { + if (!*var) + *var = limit - 1; + else + (*var) --; + } + if (save) config.setValue(conf, *var); UpdateStatusListener::distributeEvent(); @@ -1260,11 +1272,11 @@ void LocalPlayer::changeMode(unsigned *restrict const var, debugMsg(str.substr(4)); } -void LocalPlayer::invertDirection() +void LocalPlayer::invertDirection(const bool forward) { mMoveState = 0; changeMode(&mInvertDirection, invertDirectionSize, "invertMoveDirection", - &LocalPlayer::getInvertDirectionString, 0, false); + &LocalPlayer::getInvertDirectionString, 0, false, forward); } static const char *const invertDirectionStrings[] = @@ -1291,11 +1303,11 @@ std::string LocalPlayer::getInvertDirectionString() static const unsigned crazyMoveTypeSize = 11; -void LocalPlayer::changeCrazyMoveType() +void LocalPlayer::changeCrazyMoveType(const bool forward) { mCrazyMoveState = 0; changeMode(&mCrazyMoveType, crazyMoveTypeSize, "crazyMoveType", - &LocalPlayer::getCrazyMoveTypeString, 1, true); + &LocalPlayer::getCrazyMoveTypeString, 1, true, forward); } std::string LocalPlayer::getCrazyMoveTypeString() @@ -1320,10 +1332,10 @@ std::string LocalPlayer::getCrazyMoveTypeString() static const unsigned moveToTargetTypeSize = 13; -void LocalPlayer::changeMoveToTargetType() +void LocalPlayer::changeMoveToTargetType(const bool forward) { changeMode(&mMoveToTargetType, moveToTargetTypeSize, "moveToTargetType", - &LocalPlayer::getMoveToTargetTypeString, 0, true); + &LocalPlayer::getMoveToTargetTypeString, 0, true, forward); } static const char *const moveToTargetTypeStrings[] = @@ -1366,10 +1378,10 @@ std::string LocalPlayer::getMoveToTargetTypeString() static const unsigned followModeSize = 4; -void LocalPlayer::changeFollowMode() +void LocalPlayer::changeFollowMode(const bool forward) { changeMode(&mFollowMode, followModeSize, "followMode", - &LocalPlayer::getFollowModeString, 0, true); + &LocalPlayer::getFollowModeString, 0, true, forward); } static const char *const followModeStrings[] = @@ -1394,10 +1406,10 @@ std::string LocalPlayer::getFollowModeString() const unsigned attackWeaponTypeSize = 4; -void LocalPlayer::changeAttackWeaponType() +void LocalPlayer::changeAttackWeaponType(const bool forward) { changeMode(&mAttackWeaponType, attackWeaponTypeSize, "attackWeaponType", - &LocalPlayer::getAttackWeaponTypeString, 1, true); + &LocalPlayer::getAttackWeaponTypeString, 1, true, forward); } static const char *const attackWeaponTypeStrings[] = @@ -1422,10 +1434,10 @@ std::string LocalPlayer::getAttackWeaponTypeString() const unsigned attackTypeSize = 4; -void LocalPlayer::changeAttackType() +void LocalPlayer::changeAttackType(const bool forward) { changeMode(&mAttackType, attackTypeSize, "attackType", - &LocalPlayer::getAttackTypeString, 0, true); + &LocalPlayer::getAttackTypeString, 0, true, forward); } static const char *const attackTypeStrings[] = @@ -1450,10 +1462,10 @@ std::string LocalPlayer::getAttackTypeString() const unsigned quickDropCounterSize = 31; -void LocalPlayer::changeQuickDropCounter() +void LocalPlayer::changeQuickDropCounter(const bool forward) { changeMode(&mQuickDropCounter, quickDropCounterSize, "quickDropCounter", - &LocalPlayer::getQuickDropCounterString, 1, true); + &LocalPlayer::getQuickDropCounterString, 1, true, forward); } std::string LocalPlayer::getQuickDropCounterString() @@ -1481,10 +1493,10 @@ void LocalPlayer::setQuickDropCounter(const int n) const unsigned pickUpTypeSize = 7; -void LocalPlayer::changePickUpType() +void LocalPlayer::changePickUpType(const bool forward) { changeMode(&mPickUpType, pickUpTypeSize, "pickUpType", - &LocalPlayer::getPickUpTypeString, 0, true); + &LocalPlayer::getPickUpTypeString, 0, true, forward); } static const char *const pickUpTypeStrings[] = @@ -1543,10 +1555,10 @@ std::string LocalPlayer::getMapDrawTypeString() const unsigned magicAttackSize = 5; -void LocalPlayer::switchMagicAttack() +void LocalPlayer::switchMagicAttack(const bool forward) { changeMode(&mMagicAttackType, magicAttackSize, "magicAttackType", - &LocalPlayer::getMagicAttackString, 0, true); + &LocalPlayer::getMagicAttackString, 0, true, forward); } static const char *const magicAttackStrings[] = @@ -1573,10 +1585,10 @@ std::string LocalPlayer::getMagicAttackString() const unsigned pvpAttackSize = 4; -void LocalPlayer::switchPvpAttack() +void LocalPlayer::switchPvpAttack(const bool forward) { changeMode(&mPvpAttackType, pvpAttackSize, "pvpAttackType", - &LocalPlayer::getPvpAttackString, 0, true); + &LocalPlayer::getPvpAttackString, 0, true, forward); } static const char *const pvpAttackStrings[] = @@ -1601,10 +1613,10 @@ std::string LocalPlayer::getPvpAttackString() const unsigned imitationModeSize = 2; -void LocalPlayer::changeImitationMode() +void LocalPlayer::changeImitationMode(const bool forward) { changeMode(&mImitationMode, imitationModeSize, "imitationMode", - &LocalPlayer::getImitationModeString, 0, true); + &LocalPlayer::getImitationModeString, 0, true, forward); } static const char *const imitationModeStrings[] = diff --git a/src/being/localplayer.h b/src/being/localplayer.h index 2d7ec8069..4e9efef21 100644 --- a/src/being/localplayer.h +++ b/src/being/localplayer.h @@ -192,7 +192,7 @@ class LocalPlayer final : public Being, void setInvertDirection(const int n) { mInvertDirection = n; } - void invertDirection(); + void invertDirection(const bool forward); int getAttackWeaponType() const A_WARN_UNUSED { return mAttackWeaponType; } @@ -206,15 +206,15 @@ class LocalPlayer final : public Being, int getImitationMode() const A_WARN_UNUSED { return mImitationMode; } - void changeAttackWeaponType(); + void changeAttackWeaponType(const bool forward); - void changeAttackType(); + void changeAttackType(const bool forward); - void changeFollowMode(); + void changeFollowMode(const bool forward); - void changeImitationMode(); + void changeImitationMode(const bool forward); - void changePickUpType(); + void changePickUpType(const bool forward); int getCrazyMoveType() const A_WARN_UNUSED { return mCrazyMoveType; } @@ -227,7 +227,7 @@ class LocalPlayer final : public Being, void setQuickDropCounter(const int n); - void changeQuickDropCounter(); + void changeQuickDropCounter(const bool forward); int getMoveState() const A_WARN_UNUSED { return mMoveState; } @@ -235,9 +235,9 @@ class LocalPlayer final : public Being, void setMoveState(const int n) { mMoveState = n; } - void switchMagicAttack(); + void switchMagicAttack(const bool forward); - void switchPvpAttack(); + void switchPvpAttack(const bool forward); int getMagicAttackType() const A_WARN_UNUSED { return mMagicAttackType; } @@ -255,7 +255,7 @@ class LocalPlayer final : public Being, void tryPingRequest(); - void changeMoveToTargetType(); + void changeMoveToTargetType(const bool forward); void switchGameModifiers(); @@ -267,7 +267,7 @@ class LocalPlayer final : public Being, bool pickUpItems(int pickUpType = 0); - void changeCrazyMoveType(); + void changeCrazyMoveType(const bool forward); void crazyMove(); @@ -521,7 +521,8 @@ class LocalPlayer final : public Being, const char *restrict const conf, std::string (LocalPlayer::*const func)(), const unsigned def, - const bool save); + const bool save, + const bool forward); void crazyMove1(); void crazyMove2(); |