summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/windows/chatwindow.cpp18
-rw-r--r--src/gui/windows/chatwindow.h4
2 files changed, 22 insertions, 0 deletions
diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp
index 553deea70..a707ac8c4 100644
--- a/src/gui/windows/chatwindow.cpp
+++ b/src/gui/windows/chatwindow.cpp
@@ -1529,6 +1529,12 @@ bool ChatWindow::resortChatLog(std::string line,
localPetDirection(nick, static_cast<BeingDirection::Type>(
atoi(line.c_str())));
}
+ else if (line.find(": \302\202\302a") != std::string::npos)
+ {
+ const std::string nick = line.substr(0, idx2 - 1);
+ line = line.substr(idx2 + 6);
+ localPetAi(nick, atoi(line.c_str()) ? true : false);
+ }
// ignore other special message formats.
return false;
}
@@ -1690,6 +1696,18 @@ void ChatWindow::localPetEmote(const std::string &nick, const uint8_t emoteId)
pet->setEmote(emoteId, 0);
}
+void ChatWindow::localPetAi(const std::string &nick, const bool start)
+{
+ Being *const pet = getPetForNick(nick);
+ if (pet)
+ {
+ if (start)
+ pet->enablePetAi();
+ else
+ pet->disablePetAi();
+ }
+}
+
void ChatWindow::localPetMove(const std::string &nick,
const int x, const int y)
{
diff --git a/src/gui/windows/chatwindow.h b/src/gui/windows/chatwindow.h
index bbc188c3a..9455557dd 100644
--- a/src/gui/windows/chatwindow.h
+++ b/src/gui/windows/chatwindow.h
@@ -304,6 +304,10 @@ class ChatWindow final : public Window,
static void localPetDirection(const std::string &nick,
BeingDirection::Type dir);
+
+ static void localPetAi(const std::string &nick,
+ const bool start);
+
void postConnection();
#ifdef USE_PROFILER