summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actions/commands.cpp12
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/input/inputaction.h1
-rw-r--r--src/input/inputactionmap.h5
4 files changed, 19 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index ea9ef59e7..c879916a1 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -805,4 +805,16 @@ impHandler(warp)
return true;
}
+impHandler(homunTalk)
+{
+ if (!serverFeatures->haveTalkPet())
+ return false;
+
+ std::string args = event.args;
+ if (findCutFirst(args, "/me "))
+ args = textToMe(args);
+ homunculusHandler->talk(args);
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/commands.h b/src/actions/commands.h
index b67e4457b..de09f2633 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -79,6 +79,7 @@ namespace Actions
decHandler(fireHomunculus);
decHandler(leaveParty);
decHandler(warp);
+ decHandler(homunTalk);
} // namespace Actions
#undef decHandler
diff --git a/src/input/inputaction.h b/src/input/inputaction.h
index ee91ed0f3..281022755 100644
--- a/src/input/inputaction.h
+++ b/src/input/inputaction.h
@@ -538,6 +538,7 @@ namespace InputAction
WINDOW_CART,
HEAL_MOST_DAMAGED,
PET_MOVE,
+ HOMUN_TALK,
TOTAL
};
} // namespace InputAction
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 0c37a2936..7e8465781 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -3984,6 +3984,11 @@ static const InputActionData inputActionData[InputAction::TOTAL] = {
InputCondition::INGAME,
"movepet|petmove",
true},
+ {"keyHomunTalk",
+ defaultAction(&Actions::homunTalk),
+ InputCondition::INGAME,
+ "homuntalk|merctalk",
+ true},
};
#undef defaultAction