From ac733404e111ab1e5d66bb3ed2b975089fb3bffd Mon Sep 17 00:00:00 2001 From: joint Date: Mon, 12 Aug 2019 16:58:00 +0300 Subject: [PATCH] Fixes to new message dispatcher. --- include/message.h | 7 +++++++ source/message.cpp | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/message.h b/include/message.h index 91bcfc2..d5c65e9 100644 --- a/include/message.h +++ b/include/message.h @@ -142,6 +142,13 @@ public: int32 id (NetMsg msg) const { return m_maps[msg]; } + +private: + void reset () { + m_current = NetMsg::None; + m_bot = nullptr; + m_broadcast = false; + } }; static auto &msgs = MessageDispatcher::get (); \ No newline at end of file diff --git a/source/message.cpp b/source/message.cpp index d924beb..e92fc06 100644 --- a/source/message.cpp +++ b/source/message.cpp @@ -377,6 +377,7 @@ MessageDispatcher::MessageDispatcher () { m_wanted[name] = id; m_handlers[id] = handler; }; + reset (); // we want to handle next messages pushWanted ("TextMsg", NetMsg::TextMsg, &MessageDispatcher::netMsgTextMsg); @@ -454,7 +455,7 @@ void MessageDispatcher::registerMessage (const String &name, int32 id) { } void MessageDispatcher::start (edict_t *ent, int32 dest, int32 type) { - m_current = NetMsg::None; + reset (); // search if we need to handle this message for (const auto &msg : m_maps) { @@ -475,7 +476,7 @@ void MessageDispatcher::start (edict_t *ent, int32 dest, int32 type) { } // message for bot bot? - if (ent && (ent->v.flags & FL_FAKECLIENT)) { + if (ent && (ent->v.flags & FL_FAKECLIENT) && !(ent->v.flags & FL_DORMANT)) { m_bot = bots[ent]; if (!m_bot) {