core/smn_usermsgs.h
author Scott Ehlert <ds@alliedmods.net>
Wed Aug 15 06:19:30 2007 +0000 (2007-08-15)
changeset 1330 ab94316bb52b
parent 1231 17badaf66ce4
child 1947 e73a1e51833b
permissions -rw-r--r--
Updated license headers on virtually all files with extremely minor changes in the name of some sort of strange consistency.
All plugin and include file headers also have been changed to say about GPL3 instead of GPL2.

(This day shall henceforth be known as the Eighty Column Massacre of '07)
faluco@552
     1
/**
ds@653
     2
 * vim: set ts=4 :
ds@1330
     3
 * =============================================================================
dvander@1231
     4
 * SourceMod
dvander@1231
     5
 * Copyright (C) 2004-2007 AlliedModders LLC.  All rights reserved.
ds@1330
     6
 * =============================================================================
ds@653
     7
 *
ds@1330
     8
 * This program is free software; you can redistribute it and/or modify it under
ds@1330
     9
 * the terms of the GNU General Public License, version 3.0, as published by the
ds@1330
    10
 * Free Software Foundation.
dvander@1231
    11
 * 
ds@1330
    12
 * This program is distributed in the hope that it will be useful, but WITHOUT
ds@1330
    13
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ds@1330
    14
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ds@1330
    15
 * details.
dvander@1231
    16
 *
ds@1330
    17
 * You should have received a copy of the GNU General Public License along with
ds@1330
    18
 * this program.  If not, see <http://www.gnu.org/licenses/>.
dvander@1231
    19
 *
ds@1330
    20
 * As a special exception, AlliedModders LLC gives you permission to link the
ds@1330
    21
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ds@1330
    22
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ds@1330
    23
 * by the Valve Corporation.  You must obey the GNU General Public License in
ds@1330
    24
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ds@1330
    25
 * this exception to all derivative works.  AlliedModders LLC defines further
ds@1330
    26
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ds@1330
    27
 * or <http://www.sourcemod.net/license.php>.
ds@653
    28
 *
ds@653
    29
 * Version: $Id$
ds@653
    30
 */
faluco@552
    31
faluco@552
    32
#ifndef _INCLUDE_SOURCEMOD_CMSGLISTENERWRAPPER_H_
faluco@552
    33
#define _INCLUDE_SOURCEMOD_CMSGLISTENERWRAPPER_H_
faluco@552
    34
faluco@552
    35
extern int g_MsgPlayers[256];
faluco@552
    36
faluco@552
    37
class MsgListenerWrapper : public IUserMessageListener
faluco@552
    38
{
faluco@552
    39
public:
faluco@593
    40
	void Initialize(int msgid, IPluginFunction *hook, IPluginFunction *notify, bool intercept);
faluco@552
    41
	bool IsInterceptHook() const;
faluco@552
    42
	int GetMessageId() const;
faluco@552
    43
	IPluginFunction *GetHookedFunction() const;
faluco@552
    44
	IPluginFunction *GetNotifyFunction() const;
faluco@552
    45
public: //IUserMessageListener
faluco@552
    46
	void OnUserMessage(int msg_id, bf_write *bf, IRecipientFilter *pFilter);
faluco@552
    47
	ResultType InterceptUserMessage(int msg_id, bf_write *bf, IRecipientFilter *pFilter);
faluco@552
    48
	void OnUserMessageSent(int msg_id);
faluco@552
    49
private:
faluco@593
    50
	size_t _FillInPlayers(int *pl_array, IRecipientFilter *pFilter);
faluco@552
    51
private:
faluco@552
    52
	IPluginFunction *m_Hook;
faluco@552
    53
	IPluginFunction *m_Intercept;
faluco@552
    54
	IPluginFunction *m_Notify;
faluco@552
    55
	bool m_IsInterceptHook;
faluco@552
    56
	int m_MsgId;
faluco@552
    57
};
faluco@552
    58
faluco@552
    59
#endif //_INCLUDE_SOURCEMOD_CMSGLISTENERWRAPPER_H_