From 8b6afd0d756b9fc66c9f4de3ef452c24f64c87d1 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 21 Jul 2014 17:53:41 +0300 Subject: move "change attack type" option into gamemodifiers. --- src/actionmanager.cpp | 2 +- src/being/localplayer.cpp | 41 ++++++---------------------------------- src/being/localplayer.h | 8 -------- src/game.cpp | 4 ++-- src/gamemodifiers.cpp | 29 ++++++++++++++++++++++++++++ src/gamemodifiers.h | 4 ++++ src/gui/popups/statuspopup.cpp | 2 +- src/gui/windows/statuswindow.cpp | 2 +- src/settings.h | 2 ++ 9 files changed, 46 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp index 07e452117..65edb562a 100644 --- a/src/actionmanager.cpp +++ b/src/actionmanager.cpp @@ -519,7 +519,7 @@ impHandler0(changeAttackWeaponType) impHandler0(changeAttackType) { - callYellowBar(changeAttackType); + callYellowBar2(changeAttackType); } impHandler0(changeFollowMode) diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index aed4a17e2..aaaf2e411 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -119,7 +119,6 @@ LocalPlayer::LocalPlayer(const int id, const uint16_t subtype) : mPickUpType(config.getIntValue("pickUpType")), mMagicAttackType(config.getIntValue("magicAttackType")), mPvpAttackType(config.getIntValue("pvpAttackType")), - mAttackType(config.getIntValue("attackType")), mImitationMode(config.getIntValue("imitationMode")), mLastTargetX(0), mLastTargetY(0), @@ -558,7 +557,7 @@ void LocalPlayer::setDestination(const int x, const int y) { mActivityTime = cur_time; - if (getAttackType() == 0 || !mAttackMoving) + if (settings.attackType == 0 || !mAttackMoving) mKeepAttacking = false; // Only send a new message to the server when destination changes @@ -1261,34 +1260,6 @@ void LocalPlayer::changeMode(unsigned *restrict const var, debugMsg(str.substr(4)); } -const unsigned attackTypeSize = 4; - -void LocalPlayer::changeAttackType(const bool forward) -{ - changeMode(&mAttackType, attackTypeSize, "attackType", - &LocalPlayer::getAttackTypeString, 0, true, forward); -} - -static const char *const attackTypeStrings[] = -{ - // TRANSLATORS: attack type in status bar - N_("(D) default attack"), - // TRANSLATORS: attack type in status bar - N_("(G) go and attack"), - // TRANSLATORS: attack type in status bar - N_("(A) go, attack, pickup"), - // TRANSLATORS: attack type in status bar - N_("(d) without auto attack"), - // TRANSLATORS: attack type in status bar - N_("(?) attack") -}; - -std::string LocalPlayer::getAttackTypeString() -{ - return gettext(getVarItem(&attackTypeStrings[0], - mAttackType, attackTypeSize)); -} - const unsigned quickDropCounterSize = 31; void LocalPlayer::changeQuickDropCounter(const bool forward) @@ -3121,13 +3092,13 @@ void LocalPlayer::attack2(Being *const target, const bool keep, changeEquipmentBeforeAttack(target); // probably need cache getPathLength(target) - if ((!target || mAttackType == 0 || mAttackType == 3) + if ((!target || settings.attackType == 0 || settings.attackType == 3) || (withinAttackRange(target, serverVersion < 1, serverVersion < 1 ? 1 : 0) && getPathLength(target) <= getAttackRange2())) { attack(target, keep); - if (mAttackType == 2) + if (settings.attackType == 2) { if (!target) { @@ -3142,7 +3113,7 @@ void LocalPlayer::attack2(Being *const target, const bool keep, } else if (!mPickUpTarget) { - if (mAttackType == 2) + if (settings.attackType == 2) { if (pickUpItems()) return; @@ -3457,7 +3428,7 @@ void LocalPlayer::fixAttackTarget() if (!mMap || !mTarget) return; - if (settings.moveToTargetType == 7 || !mAttackType + if (settings.moveToTargetType == 7 || !settings.attackType || !config.getBoolValue("autofixPos")) { return; @@ -3557,7 +3528,7 @@ void LocalPlayer::resetYellowBar() settings.moveToTargetType = config.resetIntValue("moveToTargetType"); settings.followMode = config.resetIntValue("followMode"); settings.attackWeaponType = config.resetIntValue("attackWeaponType"); - mAttackType = config.resetIntValue("attackType"); + settings.attackType = config.resetIntValue("attackType"); mMagicAttackType = config.resetIntValue("magicAttackType"); mPvpAttackType = config.resetIntValue("pvpAttackType"); mQuickDropCounter = config.resetIntValue("quickDropCounter"); diff --git a/src/being/localplayer.h b/src/being/localplayer.h index 711582125..4225be4a0 100644 --- a/src/being/localplayer.h +++ b/src/being/localplayer.h @@ -186,14 +186,9 @@ class LocalPlayer final : public Being, bool isPathSetByMouse() const A_WARN_UNUSED { return mPathSetByMouse; } - int getAttackType() const A_WARN_UNUSED - { return mAttackType; } - int getImitationMode() const A_WARN_UNUSED { return mImitationMode; } - void changeAttackType(const bool forward); - void changeImitationMode(const bool forward); void changePickUpType(const bool forward); @@ -429,8 +424,6 @@ class LocalPlayer final : public Being, void setTestParticle(const std::string &fileName, const bool updateHash = true); - std::string getAttackTypeString(); - std::string getQuickDropCounterString(); std::string getPickUpTypeString(); @@ -517,7 +510,6 @@ class LocalPlayer final : public Being, unsigned int mMagicAttackType; // pvp attack type unsigned int mPvpAttackType; - unsigned int mAttackType; unsigned int mImitationMode; int mLastTargetX; diff --git a/src/game.cpp b/src/game.cpp index 877204a4d..f282cbeae 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1059,7 +1059,7 @@ void Game::changeMap(const std::string &mapPath) void Game::updateHistory(const SDL_Event &event) { - if (!player_node || !player_node->getAttackType()) + if (!player_node || !settings.attackType) return; if (static_cast(event.key.keysym.sym) != -1) @@ -1116,7 +1116,7 @@ void Game::checkKeys() const int timeRange = 120; const int cntInTime = 130; - if (!player_node || !player_node->getAttackType()) + if (!player_node || !settings.attackType) return; const int time = cur_time; diff --git a/src/gamemodifiers.cpp b/src/gamemodifiers.cpp index e04629301..6fa606408 100644 --- a/src/gamemodifiers.cpp +++ b/src/gamemodifiers.cpp @@ -41,6 +41,7 @@ GameModifiers::GameModifiers() settings.moveToTargetType = config.getIntValue("moveToTargetType"); settings.followMode = config.getIntValue("followMode"); settings.attackWeaponType = config.getIntValue("attackWeaponType"); + settings.attackType = config.getIntValue("attackType"); } GameModifiers::~GameModifiers() @@ -253,3 +254,31 @@ std::string GameModifiers::getAttackWeaponTypeString() return gettext(getVarItem(&attackWeaponTypeStrings[0], settings.attackWeaponType, attackWeaponTypeSize)); } + +const unsigned attackTypeSize = 4; + +void GameModifiers::changeAttackType(const bool forward) +{ + changeMode(&settings.attackType, attackTypeSize, "attackType", + &GameModifiers::getAttackTypeString, 0, true, forward); +} + +static const char *const attackTypeStrings[] = +{ + // TRANSLATORS: attack type in status bar + N_("(D) default attack"), + // TRANSLATORS: attack type in status bar + N_("(G) go and attack"), + // TRANSLATORS: attack type in status bar + N_("(A) go, attack, pickup"), + // TRANSLATORS: attack type in status bar + N_("(d) without auto attack"), + // TRANSLATORS: attack type in status bar + N_("(?) attack") +}; + +std::string GameModifiers::getAttackTypeString() +{ + return gettext(getVarItem(&attackTypeStrings[0], + settings.attackType, attackTypeSize)); +} diff --git a/src/gamemodifiers.h b/src/gamemodifiers.h index 9c1e21953..1ede2d49a 100644 --- a/src/gamemodifiers.h +++ b/src/gamemodifiers.h @@ -52,6 +52,8 @@ class GameModifiers final void changeAttackWeaponType(const bool forward); + void changeAttackType(const bool forward); + std::string getMoveTypeString(); std::string getCrazyMoveTypeString(); @@ -62,6 +64,8 @@ class GameModifiers final std::string getAttackWeaponTypeString(); + std::string getAttackTypeString(); + protected: static const char *getVarItem(const char *const *const arr, const unsigned index, diff --git a/src/gui/popups/statuspopup.cpp b/src/gui/popups/statuspopup.cpp index 5a5c27e12..8275e1748 100644 --- a/src/gui/popups/statuspopup.cpp +++ b/src/gui/popups/statuspopup.cpp @@ -150,7 +150,7 @@ void StatusPopup::updateLabels() const InputAction::CHANGE_FOLLOW_MODE); setLabelText(4, modifiers->getAttackWeaponTypeString(), InputAction::CHANGE_ATTACK_WEAPON_TYPE); - setLabelText(5, player_node->getAttackTypeString(), + setLabelText(5, modifiers->getAttackTypeString(), InputAction::CHANGE_ATTACK_TYPE); setLabelText(6, player_node->getQuickDropCounterString(), InputAction::SWITCH_QUICK_DROP); diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp index 718234814..5be44f76b 100644 --- a/src/gui/windows/statuswindow.cpp +++ b/src/gui/windows/statuswindow.cpp @@ -648,7 +648,7 @@ void StatusWindow::updateStatusBar(ProgressBar *const bar, .append(translateLetter2(modifiers->getFollowModeString())) .append(" ").append(translateLetter2( modifiers->getAttackWeaponTypeString())) - .append(translateLetter2(player_node->getAttackTypeString())) + .append(translateLetter2(modifiers->getAttackTypeString())) .append(translateLetter2(player_node->getMagicAttackString())) .append(translateLetter2(player_node->getPvpAttackString())) .append(" ").append(translateLetter2( diff --git a/src/settings.h b/src/settings.h index 668079707..05c24a9b4 100644 --- a/src/settings.h +++ b/src/settings.h @@ -57,6 +57,7 @@ class Settings final moveToTargetType(0U), followMode(0U), attackWeaponType(0U), + attackType(0U), persistentIp(true), limitFps(false), inputFocused(true), @@ -88,6 +89,7 @@ class Settings final unsigned int moveToTargetType; unsigned int followMode; unsigned int attackWeaponType; + unsigned int attackType; bool persistentIp; bool limitFps; bool inputFocused; -- cgit v1.2.3-60-g2f50