diff options
Diffstat (limited to 'src/being')
-rw-r--r-- | src/being/localplayer.cpp | 65 | ||||
-rw-r--r-- | src/being/localplayer.h | 17 |
2 files changed, 14 insertions, 68 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 36275dbbe..77706051c 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -27,6 +27,7 @@ #include "client.h" #include "configuration.h" #include "dropshortcut.h" +#include "gamemodifiers.h" #include "guild.h" #include "item.h" #include "party.h" @@ -173,7 +174,6 @@ LocalPlayer::LocalPlayer(const int id, const uint16_t subtype) : mKeepAttacking(false), mPathSetByMouse(false), mWaitPing(false), - mAwayMode(false), mPseudoAwayMode(false), mShowNavigePath(false) { @@ -342,7 +342,7 @@ void LocalPlayer::slowLogic() if (mTradebot && shopWindow && !shopWindow->isShopEmpty()) smile |= BeingFlag::SHOP; - if (mAwayMode || mPseudoAwayMode) + if (settings.awayMode || mPseudoAwayMode) smile |= BeingFlag::AWAY; if (mInactive) @@ -1255,61 +1255,6 @@ void LocalPlayer::changeMode(unsigned *restrict const var, debugMsg(str.substr(4)); } -const unsigned awayModeSize = 2; - -void LocalPlayer::changeAwayMode() -{ - mAwayMode = !mAwayMode; - mAfkTime = 0; - mInactive = false; - updateName(); - UpdateStatusListener::distributeEvent(); - if (mAwayMode) - { - if (chatWindow) - chatWindow->clearAwayLog(); - - cancelFollow(); - navigateClean(); - if (outfitWindow) - outfitWindow->wearAwayOutfit(); - // TRANSLATORS: away message box header - mAwayDialog = new OkDialog(_("Away"), - config.getStringValue("afkMessage"), - DialogType::SILENCE, true, false); - mAwayDialog->addActionListener(mAwayListener); - soundManager.volumeOff(); - addAfkEffect(); - } - else - { - mAwayDialog = nullptr; - soundManager.volumeRestore(); - if (chatWindow) - { - chatWindow->displayAwayLog(); - chatWindow->clearAwayLog(); - } - removeAfkEffect(); - } -} - -static const char *const awayModeStrings[] = -{ - // TRANSLATORS: away type in status bar - N_("(O) on keyboard"), - // TRANSLATORS: away type in status bar - N_("(A) away"), - // TRANSLATORS: away type in status bar - N_("(?) away") -}; - -std::string LocalPlayer::getAwayModeString() -{ - return gettext(getVarItem(&awayModeStrings[0], - mAwayMode, awayModeSize)); -} - const unsigned cameraModeSize = 2; static const char *const cameraModeStrings[] = @@ -2576,7 +2521,7 @@ void LocalPlayer::tryPingRequest() void LocalPlayer::setAway(const std::string &message) { setAfkMessage(message); - changeAwayMode(); + modifiers->changeAwayMode(); updateStatus(); } @@ -2605,7 +2550,7 @@ void LocalPlayer::setPseudoAway(const std::string &message) void LocalPlayer::afkRespond(ChatTab *const tab, const std::string &nick) { - if (mAwayMode) + if (settings.awayMode) { const int time = cur_time; if (mAfkTime == 0 || time < mAfkTime @@ -3399,7 +3344,7 @@ void LocalPlayer::updateStatus() const if (mTradebot && shopWindow && !shopWindow->isShopEmpty()) status |= BeingFlag::SHOP; - if (mAwayMode || mPseudoAwayMode) + if (settings.awayMode || mPseudoAwayMode) status |= BeingFlag::AWAY; if (mInactive) diff --git a/src/being/localplayer.h b/src/being/localplayer.h index cf604a1ca..3aabda22d 100644 --- a/src/being/localplayer.h +++ b/src/being/localplayer.h @@ -232,15 +232,10 @@ class LocalPlayer final : public Being, void pingResponse(); - void changeAwayMode(); - void setAway(const std::string &message); void setPseudoAway(const std::string &message); - bool getAway() const A_WARN_UNUSED - { return mAwayMode; } - bool getPseudoAway() const A_WARN_UNUSED { return mPseudoAwayMode; } @@ -392,8 +387,6 @@ class LocalPlayer final : public Being, void setTestParticle(const std::string &fileName, const bool updateHash = true); - std::string getAwayModeString(); - static std::string getCameraModeString(); int getLastAttackX() const override final @@ -412,6 +405,15 @@ class LocalPlayer final : public Being, void updateMusic(); + void setAfkTime(const int v) + { mAfkTime = v; } + + void setAwayDialog(OkDialog *const dialog) + { mAwayDialog = dialog; } + + AwayListener *getAwayListener() const A_WARN_UNUSED + { return mAwayListener; } + protected: void updateCoords() override final; @@ -534,7 +536,6 @@ class LocalPlayer final : public Being, // Tells if the path was set using mouse bool mPathSetByMouse; bool mWaitPing; - bool mAwayMode; bool mPseudoAwayMode; bool mShowNavigePath; }; |