dvander@592: /** dvander@592: * vim: set ts=4 : dvander@592: * =============================================================== dvander@592: * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. dvander@592: * =============================================================== dvander@592: * dvander@592: * This file is not open source and may not be copied without explicit dvander@592: * written permission of AlliedModders LLC. This file may not be redistributed dvander@592: * in whole or significant part. dvander@592: * For information, see LICENSE.txt or http://www.sourcemod.net/license.php dvander@592: * dvander@592: * Version: $Id$ dvander@592: */ dvander@592: dvander@592: #ifndef _INCLUDE_SOURCEMOD_CHALFLIFE2_H_ dvander@592: #define _INCLUDE_SOURCEMOD_CHALFLIFE2_H_ dvander@592: dvander@592: #include faluco@682: #include dvander@592: #include "sm_trie.h" dvander@592: #include "sm_globals.h" dvander@965: #include dvander@592: dvander@592: using namespace SourceHook; dvander@965: using namespace SourceMod; dvander@592: dvander@895: #define HUD_PRINTTALK 3 dvander@895: #define HUD_PRINTCENTER 4 dvander@895: dvander@592: struct DataTableInfo dvander@592: { dvander@592: ServerClass *sc; dvander@592: Trie *lookup; dvander@592: }; dvander@592: faluco@682: struct DataMapTrie faluco@682: { faluco@682: DataMapTrie() : trie(NULL) {} faluco@682: Trie *trie; faluco@682: }; faluco@682: dvander@965: class CHalfLife2 : dvander@965: public SMGlobalClass, dvander@965: public IGameHelpers dvander@592: { dvander@592: public: dvander@592: CHalfLife2(); dvander@592: ~CHalfLife2(); dvander@592: public: dvander@677: void OnSourceModStartup(bool late); ds@873: void OnSourceModAllInitialized(); dvander@677: /*void OnSourceModAllShutdown();*/ dvander@965: public: //IGameHelpers dvander@592: SendProp *FindInSendTable(const char *classname, const char *offset); dvander@965: datamap_t *GetDataMap(CBaseEntity *pEntity); dvander@592: ServerClass *FindServerClass(const char *classname); faluco@682: typedescription_t *FindInDataMap(datamap_t *pMap, const char *offset); dvander@685: void SetEdictStateChanged(edict_t *pEdict, unsigned short offset); ds@873: void TextMsg(int client, int dest, const char *msg); dvander@592: private: dvander@592: DataTableInfo *_FindServerClass(const char *classname); dvander@592: private: dvander@592: Trie *m_pClasses; dvander@592: List m_Tables; faluco@682: THash m_Maps; ds@873: int m_MsgTextMsg; dvander@592: }; dvander@592: dvander@592: extern CHalfLife2 g_HL2; dvander@685: extern bool g_IsOriginalEngine; dvander@592: dvander@592: #endif //_INCLUDE_SOURCEMOD_CHALFLIFE2_H_