added new block_message flag in the message system
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401256
This commit is contained in:
parent
b20fa11911
commit
5a612d22e5
@ -163,11 +163,11 @@ bf_write *UserMessages::StartMessage(int msg_id, cell_t players[], unsigned int
|
||||
|
||||
m_InExec = true;
|
||||
|
||||
if (m_CurFlags & (USERMSG_PASSTHRU_ALL|USERMSG_PASSTHRU))
|
||||
if (m_CurFlags & USERMSG_BLOCKHOOKS)
|
||||
{
|
||||
buffer = engine->UserMessageBegin(static_cast<IRecipientFilter *>(&m_CellRecFilter), msg_id);
|
||||
} else {
|
||||
buffer = ENGINE_CALL(UserMessageBegin)(static_cast<IRecipientFilter *>(&m_CellRecFilter), msg_id);
|
||||
} else {
|
||||
buffer = engine->UserMessageBegin(static_cast<IRecipientFilter *>(&m_CellRecFilter), msg_id);
|
||||
}
|
||||
|
||||
return buffer;
|
||||
@ -180,11 +180,11 @@ bool UserMessages::EndMessage()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_CurFlags & (USERMSG_PASSTHRU_ALL|USERMSG_PASSTHRU))
|
||||
if (m_CurFlags & USERMSG_BLOCKHOOKS)
|
||||
{
|
||||
engine->MessageEnd();
|
||||
} else {
|
||||
ENGINE_CALL(MessageEnd)();
|
||||
} else {
|
||||
engine->MessageEnd();
|
||||
}
|
||||
|
||||
m_InExec = false;
|
||||
@ -286,7 +286,7 @@ bf_write *UserMessages::OnStartMessage_Pre(IRecipientFilter *filter, int msg_typ
|
||||
bool is_hook_empty = m_msgHooks[msg_type].empty();
|
||||
|
||||
if ((is_intercept_empty && is_hook_empty)
|
||||
|| (m_InExec && !(m_CurFlags & USERMSG_PASSTHRU_ALL)))
|
||||
|| (m_InExec && (m_CurFlags & USERMSG_BLOCKHOOKS)))
|
||||
{
|
||||
m_InHook = false;
|
||||
RETURN_META_VALUE(MRES_IGNORED, NULL);
|
||||
|
@ -33,9 +33,10 @@ enum UserMsg
|
||||
#define USERMSG_PASSTHRU_ALL (1<<1) /**< (DEPRECATED, NO EFFECT) */
|
||||
#define USERMSG_RELIABLE (1<<2) /**< Message will be set on the reliable stream */
|
||||
#define USERMSG_INITMSG (1<<3) /**< Message will be considered to be an initmsg */
|
||||
#define USERMSG_BLOCK_MM (1<<4) /**< Message will be blocked from going through MM:S hooks */
|
||||
#define USERMSG_BLOCK_SM (1<<5) /**< Message will be blocked from going through SourceMod hooks */
|
||||
#define USERMSG_BLOCK_ALL (1<<6) /**< Message will be blocked from going through any hooks */
|
||||
#define USERMSG_BLOCK_MM (1<<4) /**< (DEPRECATED, NO EFFECT) */
|
||||
#define USERMSG_BLOCK_SM (1<<5) /**< (DEPRECATED, NO EFFECT) */
|
||||
#define USERMSG_BLOCK_ALL (1<<6) /**< (DEPRECATED, NO EFFECT) */
|
||||
#define USERMSG_BLOCKHOOKS (1<<7) /**< Prevents the message from triggering SourceMod and Metamod hooks */
|
||||
|
||||
/**
|
||||
* @endsection
|
||||
|
@ -89,10 +89,9 @@ namespace SourceMod
|
||||
}
|
||||
};
|
||||
|
||||
#define USERMSG_PASSTHRU (1<<0) /**< Message will pass through other SourceMM plugins */
|
||||
#define USERMSG_PASSTHRU_ALL (1<<1) /**< Message will pass through other SourceMM plugins AND SourceMod */
|
||||
#define USERMSG_RELIABLE (1<<2) /**< Message will be set to reliable */
|
||||
#define USERMSG_INITMSG (1<<3) /**< Message will be considered to be an initmsg */
|
||||
#define USERMSG_BLOCKHOOKS (1<<7) /**< Prevents the message from triggering SourceMod and Metamod hooks */
|
||||
|
||||
/**
|
||||
* @brief Contains functions for hooking user messages.
|
||||
|
Loading…
Reference in New Issue
Block a user