public/IGameHelpers.h
author David Anderson <dvander@alliedmods.net>
Thu Jul 19 00:34:44 2007 +0000 (2007-07-19)
changeset 1132 e8d4e82e9541
parent 966 7152bf978703
child 1226 478550a4d5ec
permissions -rw-r--r--
- changed TextMsg to return a bool
- fixed a bug where you couldn't send messages from post hooks
- added protection in functions which expect StartMessage to succeed
dvander@965
     1
/**
dvander@965
     2
 * vim: set ts=4 :
dvander@965
     3
 * ===============================================================
dvander@965
     4
 * SourceMod, Copyright (C) 2004-2007 AlliedModders LLC. 
dvander@965
     5
 * All rights reserved.
dvander@965
     6
 * ===============================================================
dvander@965
     7
 *
dvander@965
     8
 *  This file is part of the SourceMod/SourcePawn SDK.  This file may only be 
dvander@965
     9
 * used or modified under the Terms and Conditions of its License Agreement, 
dvander@965
    10
 * which is found in public/licenses/LICENSE.txt.  As of this notice, derivative 
dvander@965
    11
 * works must be licensed under the GNU General Public License (version 2 or 
dvander@965
    12
 * greater).  A copy of the GPL is included under public/licenses/GPL.txt.
dvander@965
    13
 * 
dvander@965
    14
 * To view the latest information, see: http://www.sourcemod.net/license.php
dvander@965
    15
 *
dvander@965
    16
 * Version: $Id$
dvander@965
    17
 */
dvander@965
    18
dvander@965
    19
#ifndef _INCLUDE_SOURCEMOD_GAMEHELPERS_H_
dvander@965
    20
#define _INCLUDE_SOURCEMOD_GAMEHELPERS_H_
dvander@965
    21
dvander@965
    22
#include <IShareSys.h>
dvander@965
    23
#include <dt_send.h>
dvander@965
    24
#include <server_class.h>
dvander@965
    25
#include <datamap.h>
dvander@965
    26
#include <edict.h>
dvander@965
    27
dvander@965
    28
#define SMINTERFACE_GAMEHELPERS_NAME		"IGameHelpers"
dvander@965
    29
#define SMINTERFACE_GAMEHELPERS_VERSION		1
dvander@965
    30
dvander@965
    31
/**
dvander@965
    32
 * @file IGameHelpers.h
dvander@965
    33
 * @brief Provides Source helper functions.
dvander@965
    34
 */
dvander@965
    35
dvander@965
    36
namespace SourceMod
dvander@965
    37
{
dvander@965
    38
	class IGameHelpers : public SMInterface
dvander@965
    39
	{
dvander@965
    40
	public:
dvander@965
    41
		virtual const char *GetInterfaceName()
dvander@965
    42
		{
dvander@965
    43
			return SMINTERFACE_GAMEHELPERS_NAME;
dvander@965
    44
		}
dvander@965
    45
		virtual unsigned int GetInterfaceVersion()
dvander@965
    46
		{
dvander@965
    47
			return SMINTERFACE_GAMEHELPERS_VERSION;
dvander@965
    48
		}
dvander@965
    49
	public:
dvander@965
    50
		/**
dvander@965
    51
		 * @brief Finds a send property in a named send table.
dvander@965
    52
		 *
dvander@965
    53
		 * @param classname		Top-level sendtable name.
dvander@965
    54
		 * @param offset		Property name.
dvander@965
    55
		 * @return				SendProp pointer on success, NULL on failure.
dvander@965
    56
		 */
dvander@965
    57
		virtual SendProp *FindInSendTable(const char *classname, const char *offset) =0;
dvander@965
    58
dvander@965
    59
		/**
dvander@965
    60
		 * @brief Finds a named server class.
dvander@965
    61
		 *
dvander@965
    62
		 * @return				ServerClass pointer on success, NULL on failure.
dvander@965
    63
		 */
dvander@965
    64
		virtual ServerClass *FindServerClass(const char *classname) =0;
dvander@965
    65
dvander@965
    66
		/**
dvander@965
    67
		 * @brief Finds a datamap_t definition.
dvander@965
    68
		 *
dvander@965
    69
		 * @param pMap			datamap_t pointer.
dvander@965
    70
		 * @param offset		Property name.
dvander@965
    71
		 * @return				typedescription_t pointer on success, NULL 
dvander@965
    72
		 *						on failure.
dvander@965
    73
		 */
dvander@965
    74
		virtual typedescription_t *FindInDataMap(datamap_t *pMap, const char *offset) =0;
dvander@965
    75
dvander@965
    76
		/**
dvander@965
    77
		 * @brief Retrieves an entity's datamap_t pointer.
dvander@965
    78
		 *
dvander@965
    79
		 * @param pEntity		CBaseEntity entity.
dvander@965
    80
		 * @return				datamap_t pointer, or NULL on failure.
dvander@965
    81
		 */
dvander@965
    82
		virtual datamap_t *GetDataMap(CBaseEntity *pEntity) =0;
dvander@965
    83
dvander@965
    84
		/**
dvander@965
    85
		 * @brief Marks an edict as state changed for an offset.
dvander@965
    86
		 *
dvander@965
    87
		 * @param pEdict		Edict pointer.
dvander@965
    88
		 * @param offset		Offset index.
dvander@965
    89
		 */
dvander@965
    90
		virtual void SetEdictStateChanged(edict_t *pEdict, unsigned short offset) =0;
dvander@965
    91
dvander@965
    92
		/**
dvander@965
    93
		 * @brief Sends a text message to a client.
dvander@965
    94
		 *
dvander@965
    95
		 * @param client		Client index.
dvander@965
    96
		 * @param dest			Destination on the HUD.
dvander@965
    97
		 * @param msg			Message to send.
dvander@1132
    98
		 * @return				True on success, false on failure.
dvander@965
    99
		 */
dvander@1132
   100
		virtual bool TextMsg(int client, int dest, const char *msg) =0;
dvander@965
   101
	};
dvander@965
   102
}
dvander@965
   103
dvander@966
   104
#endif //_INCLUDE_SOURCEMOD_GAMEHELPERS_H_