finally exposed IGameHelpers interface
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40971
This commit is contained in:
		
							parent
							
								
									9bd438d3bb
								
							
						
					
					
						commit
						1e1992482f
					
				@ -85,6 +85,7 @@ void CHalfLife2::OnSourceModStartup(bool late)
 | 
				
			|||||||
void CHalfLife2::OnSourceModAllInitialized()
 | 
					void CHalfLife2::OnSourceModAllInitialized()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	m_MsgTextMsg = g_UserMsgs.GetMessageIndex("TextMsg");
 | 
						m_MsgTextMsg = g_UserMsgs.GetMessageIndex("TextMsg");
 | 
				
			||||||
 | 
						g_ShareSys.AddInterface(NULL, this);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IChangeInfoAccessor *CBaseEdict::GetChangeAccessor()
 | 
					IChangeInfoAccessor *CBaseEdict::GetChangeAccessor()
 | 
				
			||||||
 | 
				
			|||||||
@ -19,12 +19,10 @@
 | 
				
			|||||||
#include <sh_tinyhash.h>
 | 
					#include <sh_tinyhash.h>
 | 
				
			||||||
#include "sm_trie.h"
 | 
					#include "sm_trie.h"
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "sm_globals.h"
 | 
				
			||||||
#include <dt_send.h>
 | 
					#include <IGameHelpers.h>
 | 
				
			||||||
#include <server_class.h>
 | 
					 | 
				
			||||||
#include <datamap.h>
 | 
					 | 
				
			||||||
#include <edict.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace SourceHook;
 | 
					using namespace SourceHook;
 | 
				
			||||||
 | 
					using namespace SourceMod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define HUD_PRINTTALK		3
 | 
					#define HUD_PRINTTALK		3
 | 
				
			||||||
#define HUD_PRINTCENTER		4
 | 
					#define HUD_PRINTCENTER		4
 | 
				
			||||||
@ -41,7 +39,9 @@ struct DataMapTrie
 | 
				
			|||||||
	Trie *trie;
 | 
						Trie *trie;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CHalfLife2 : public SMGlobalClass
 | 
					class CHalfLife2 : 
 | 
				
			||||||
 | 
						public SMGlobalClass,
 | 
				
			||||||
 | 
						public IGameHelpers
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	CHalfLife2();
 | 
						CHalfLife2();
 | 
				
			||||||
@ -50,8 +50,9 @@ public:
 | 
				
			|||||||
	void OnSourceModStartup(bool late);
 | 
						void OnSourceModStartup(bool late);
 | 
				
			||||||
	void OnSourceModAllInitialized();
 | 
						void OnSourceModAllInitialized();
 | 
				
			||||||
	/*void OnSourceModAllShutdown();*/
 | 
						/*void OnSourceModAllShutdown();*/
 | 
				
			||||||
public:
 | 
					public: //IGameHelpers
 | 
				
			||||||
	SendProp *FindInSendTable(const char *classname, const char *offset);
 | 
						SendProp *FindInSendTable(const char *classname, const char *offset);
 | 
				
			||||||
 | 
						datamap_t *GetDataMap(CBaseEntity *pEntity);
 | 
				
			||||||
	ServerClass *FindServerClass(const char *classname);
 | 
						ServerClass *FindServerClass(const char *classname);
 | 
				
			||||||
	typedescription_t *FindInDataMap(datamap_t *pMap, const char *offset);
 | 
						typedescription_t *FindInDataMap(datamap_t *pMap, const char *offset);
 | 
				
			||||||
	void SetEdictStateChanged(edict_t *pEdict, unsigned short offset);
 | 
						void SetEdictStateChanged(edict_t *pEdict, unsigned short offset);
 | 
				
			||||||
 | 
				
			|||||||
@ -472,6 +472,10 @@
 | 
				
			|||||||
				RelativePath="..\..\public\IGameConfigs.h"
 | 
									RelativePath="..\..\public\IGameConfigs.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\..\public\IGameHelpers.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\..\public\IHandleSys.h"
 | 
									RelativePath="..\..\public\IHandleSys.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
 | 
				
			|||||||
@ -109,6 +109,12 @@ inline datamap_t *CBaseEntity_GetDataDescMap(CBaseEntity *pEntity)
 | 
				
			|||||||
	return VGetDataDescMap(pEntity, offset);
 | 
						return VGetDataDescMap(pEntity, offset);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* :TODO: Move this! */
 | 
				
			||||||
 | 
					datamap_t *CHalfLife2::GetDataMap(CBaseEntity *pEntity)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return CBaseEntity_GetDataDescMap(pEntity);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static cell_t GetMaxEntities(IPluginContext *pContext, const cell_t *params)
 | 
					static cell_t GetMaxEntities(IPluginContext *pContext, const cell_t *params)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return gpGlobals->maxEntities;
 | 
						return gpGlobals->maxEntities;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										103
									
								
								public/IGameHelpers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								public/IGameHelpers.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 :
 | 
				
			||||||
 | 
					 * ===============================================================
 | 
				
			||||||
 | 
					 * SourceMod, Copyright (C) 2004-2007 AlliedModders LLC. 
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 * ===============================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  This file is part of the SourceMod/SourcePawn SDK.  This file may only be 
 | 
				
			||||||
 | 
					 * used or modified under the Terms and Conditions of its License Agreement, 
 | 
				
			||||||
 | 
					 * which is found in public/licenses/LICENSE.txt.  As of this notice, derivative 
 | 
				
			||||||
 | 
					 * works must be licensed under the GNU General Public License (version 2 or 
 | 
				
			||||||
 | 
					 * greater).  A copy of the GPL is included under public/licenses/GPL.txt.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * To view the latest information, see: http://www.sourcemod.net/license.php
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_SOURCEMOD_GAMEHELPERS_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_SOURCEMOD_GAMEHELPERS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <IShareSys.h>
 | 
				
			||||||
 | 
					#include <dt_send.h>
 | 
				
			||||||
 | 
					#include <server_class.h>
 | 
				
			||||||
 | 
					#include <datamap.h>
 | 
				
			||||||
 | 
					#include <edict.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SMINTERFACE_GAMEHELPERS_NAME		"IGameHelpers"
 | 
				
			||||||
 | 
					#define SMINTERFACE_GAMEHELPERS_VERSION		1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file IGameHelpers.h
 | 
				
			||||||
 | 
					 * @brief Provides Source helper functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace SourceMod
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						class IGameHelpers : public SMInterface
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						public:
 | 
				
			||||||
 | 
							virtual const char *GetInterfaceName()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return SMINTERFACE_GAMEHELPERS_NAME;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							virtual unsigned int GetInterfaceVersion()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return SMINTERFACE_GAMEHELPERS_VERSION;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						public:
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Finds a send property in a named send table.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @param classname		Top-level sendtable name.
 | 
				
			||||||
 | 
							 * @param offset		Property name.
 | 
				
			||||||
 | 
							 * @return				SendProp pointer on success, NULL on failure.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual SendProp *FindInSendTable(const char *classname, const char *offset) =0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Finds a named server class.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @return				ServerClass pointer on success, NULL on failure.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual ServerClass *FindServerClass(const char *classname) =0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Finds a datamap_t definition.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @param pMap			datamap_t pointer.
 | 
				
			||||||
 | 
							 * @param offset		Property name.
 | 
				
			||||||
 | 
							 * @return				typedescription_t pointer on success, NULL 
 | 
				
			||||||
 | 
							 *						on failure.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual typedescription_t *FindInDataMap(datamap_t *pMap, const char *offset) =0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Retrieves an entity's datamap_t pointer.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @param pEntity		CBaseEntity entity.
 | 
				
			||||||
 | 
							 * @return				datamap_t pointer, or NULL on failure.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual datamap_t *GetDataMap(CBaseEntity *pEntity) =0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Marks an edict as state changed for an offset.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @param pEdict		Edict pointer.
 | 
				
			||||||
 | 
							 * @param offset		Offset index.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual void SetEdictStateChanged(edict_t *pEdict, unsigned short offset) =0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/**
 | 
				
			||||||
 | 
							 * @brief Sends a text message to a client.
 | 
				
			||||||
 | 
							 *
 | 
				
			||||||
 | 
							 * @param client		Client index.
 | 
				
			||||||
 | 
							 * @param dest			Destination on the HUD.
 | 
				
			||||||
 | 
							 * @param msg			Message to send.
 | 
				
			||||||
 | 
							 */
 | 
				
			||||||
 | 
							virtual void TextMsg(int client, int dest, const char *msg) =0;
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //_INCLUDE_SOURCEMOD_GAMEHELPERS_H_
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user