From 3b83356825e61e6c61d1a7effc3e5bbeda12fcc2 Mon Sep 17 00:00:00 2001 From: Nicholas Hastings Date: Tue, 14 May 2013 10:19:29 -0400 Subject: [PATCH] Updated for latest hl2sdk-dota changes. --HG-- extra : rebase_source : 0365a2c057523822481dee0880f8a5d525a8050a --- core/CellRecipientFilter.h | 19 +++++++++++++++++-- core/smn_usermsgs.cpp | 8 +++++++- extensions/sdktools/CellRecipientFilter.h | 19 +++++++++++++++++-- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/core/CellRecipientFilter.h b/core/CellRecipientFilter.h index e7dcddee..87ccd1d1 100644 --- a/core/CellRecipientFilter.h +++ b/core/CellRecipientFilter.h @@ -44,7 +44,11 @@ public: //IRecipientFilter bool IsReliable() const; bool IsInitMessage() const; int GetRecipientCount() const; +#if SOURCE_ENGINE == SE_DOTA + void GetRecipientIndex(int *clientIndex, int slot) const; +#else int GetRecipientIndex(int slot) const; +#endif public: void Initialize(const cell_t *ptr, size_t count); void SetToReliable(bool isreliable); @@ -79,13 +83,24 @@ inline int CellRecipientFilter::GetRecipientCount() const return m_Size; } +#if SOURCE_ENGINE == SE_DOTA +inline void CellRecipientFilter::GetRecipientIndex(int *clientIndex, int slot) const +#else inline int CellRecipientFilter::GetRecipientIndex(int slot) const +#endif { + int ret; if ((slot < 0) || (slot >= GetRecipientCount())) { - return -1; + ret = -1; } - return static_cast(m_Players[slot]); + ret = static_cast(m_Players[slot]); + +#if SOURCE_ENGINE == SE_DOTA + *clientIndex = ret; +#else + return ret; +#endif } inline void CellRecipientFilter::SetToInit(bool isinitmsg) diff --git a/core/smn_usermsgs.cpp b/core/smn_usermsgs.cpp index 42c80dfa..876e8a7e 100644 --- a/core/smn_usermsgs.cpp +++ b/core/smn_usermsgs.cpp @@ -268,7 +268,13 @@ size_t MsgListenerWrapper::_FillInPlayers(int *pl_array, IRecipientFilter *pFilt for (size_t i=0; iGetRecipientIndex(i); + int index; +#if SOURCE_ENGINE == SE_DOTA + pFilter->GetRecipientIndex(&index, i); +#else + index = pFilter->GetRecipientIndex(i); +#endif + pl_array[i] = index; } return size; diff --git a/extensions/sdktools/CellRecipientFilter.h b/extensions/sdktools/CellRecipientFilter.h index e48ed7d1..164edd02 100644 --- a/extensions/sdktools/CellRecipientFilter.h +++ b/extensions/sdktools/CellRecipientFilter.h @@ -44,7 +44,11 @@ public: //IRecipientFilter bool IsReliable() const; bool IsInitMessage() const; int GetRecipientCount() const; +#if SOURCE_ENGINE == SE_DOTA + void GetRecipientIndex(int*&clientIndex, int slot) const; +#else int GetRecipientIndex(int slot) const; +#endif public: void Initialize(cell_t *ptr, size_t count); void SetToReliable(bool isreliable); @@ -79,13 +83,24 @@ inline int CellRecipientFilter::GetRecipientCount() const return m_Size; } +#if SOURCE_ENGINE == SE_DOTA +inline void CellRecipientFilter::GetRecipientIndex(int *clientIndex, int slot) const +#else inline int CellRecipientFilter::GetRecipientIndex(int slot) const +#endif { + int ret; if ((slot < 0) || (slot >= GetRecipientCount())) { - return -1; + ret = -1; } - return static_cast(m_Players[slot]); + ret = static_cast(m_Players[slot]); + +#if SOURCE_ENGINE == SE_DOTA + *clientIndex = ret; +#else + return ret; +#endif } inline void CellRecipientFilter::SetToInit(bool isinitmsg)