summaryrefslogtreecommitdiff
path: root/src/being/localplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/being/localplayer.cpp')
-rw-r--r--src/being/localplayer.cpp65
1 files changed, 5 insertions, 60 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)