summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/actions/commands.cpp66
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/dyetool/actions/commands.cpp1
-rw-r--r--src/enums/input/inputaction.h1
-rw-r--r--src/gui/widgets/tabs/chat/partytab.cpp6
-rw-r--r--src/input/inputactionmap.h6
6 files changed, 81 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index e01e9e904..4f809411c 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -1822,4 +1822,70 @@ impHandler(partyExpShare)
return true;
}
+impHandler(partyAutoItemShare)
+{
+ if (!localPlayer)
+ return false;
+
+ if (localPlayer->isInParty() == false)
+ return true;
+
+ ChatTab *tab = event.tab;
+ if (tab == nullptr)
+ tab = localChatTab;
+ if (tab == nullptr)
+ return true;
+
+ const std::string args = event.args;
+ if (args.empty())
+ {
+ switch (partyHandler->getShareAutoItems())
+ {
+ case PartyShare::YES:
+ // TRANSLATORS: chat message
+ tab->chatLog(_("Auto item sharing enabled."),
+ ChatMsgType::BY_SERVER);
+ return true;
+ case PartyShare::NO:
+ // TRANSLATORS: chat message
+ tab->chatLog(_("Auto item sharing disabled."),
+ ChatMsgType::BY_SERVER);
+ return true;
+ case PartyShare::NOT_POSSIBLE:
+ // TRANSLATORS: chat message
+ tab->chatLog(_("Auto item sharing not possible."),
+ ChatMsgType::BY_SERVER);
+ return true;
+ case PartyShare::UNKNOWN:
+ // TRANSLATORS: chat message
+ tab->chatLog(_("Auto item sharing unknown."),
+ ChatMsgType::BY_SERVER);
+ return true;
+ default:
+ break;
+ }
+ }
+
+ const signed char opt = parseBoolean(args);
+
+ switch (opt)
+ {
+ case 1:
+ partyHandler->setShareAutoItems(
+ PartyShare::YES);
+ break;
+ case 0:
+ partyHandler->setShareAutoItems(
+ PartyShare::NO);
+ break;
+ case -1:
+ tab->chatLog(strprintf(BOOLEAN_OPTIONS, "item"),
+ ChatMsgType::BY_SERVER);
+ break;
+ default:
+ break;
+ }
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/commands.h b/src/actions/commands.h
index 72d5f5c5b..627390860 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -151,6 +151,7 @@ namespace Actions
decHandler(setSkillOffsetY);
decHandler(partyItemShare);
decHandler(partyExpShare);
+ decHandler(partyAutoItemShare);
} // namespace Actions
#undef decHandler
diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp
index 2b9ef0ad3..56541134c 100644
--- a/src/dyetool/actions/commands.cpp
+++ b/src/dyetool/actions/commands.cpp
@@ -151,5 +151,6 @@ impHandlerVoid(setSkillOffsetX)
impHandlerVoid(setSkillOffsetY)
impHandlerVoid(partyItemShare)
impHandlerVoid(partyExpShare)
+impHandlerVoid(partyAutoItemShare)
} // namespace Actions
diff --git a/src/enums/input/inputaction.h b/src/enums/input/inputaction.h
index 31bd6d436..3491aba78 100644
--- a/src/enums/input/inputaction.h
+++ b/src/enums/input/inputaction.h
@@ -683,6 +683,7 @@ enumStart(InputAction)
GUILD_NOTICE,
PARTY_ITEM_SHARE,
PARTY_EXP_SHARE,
+ PARTY_AUTO_ITEM_SHARE,
TOTAL
}
enumEnd(InputAction);
diff --git a/src/gui/widgets/tabs/chat/partytab.cpp b/src/gui/widgets/tabs/chat/partytab.cpp
index 6a52dc634..f39ee7a45 100644
--- a/src/gui/widgets/tabs/chat/partytab.cpp
+++ b/src/gui/widgets/tabs/chat/partytab.cpp
@@ -88,6 +88,12 @@ bool PartyTab::handleCommand(const std::string &restrict type,
args,
this);
}
+ else if (type == "autoitem")
+ {
+ inputManager.executeChatCommand(InputAction::PARTY_AUTO_ITEM_SHARE,
+ args,
+ this);
+ }
else if (type == "exp")
{
inputManager.executeChatCommand(InputAction::PARTY_EXP_SHARE,
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 332138ed5..2d56aafec 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -5588,6 +5588,12 @@ static const InputActionData inputActionData
"expshare|shareexp",
UseArgs_true,
Protected_true},
+ {"keyPartyAutoItemShare",
+ defaultAction(&Actions::partyAutoItemShare),
+ InputCondition::INGAME,
+ "autoitemshare|shareautoitem|itemautoshare",
+ UseArgs_true,
+ Protected_true},
};
#undef defaultAction