dvander@160: #ifndef _INCLUDE_SOURCEMOD_GLOBALS_H_ dvander@160: #define _INCLUDE_SOURCEMOD_GLOBALS_H_ dvander@160: dvander@162: /** dvander@162: * @file Contains global headers that most files in SourceMod will need. dvander@162: */ dvander@162: dvander@160: #include dvander@160: #include dvander@160: #include "sm_platform.h" dvander@160: #include "interfaces/IShareSys.h" dvander@160: dvander@160: using namespace SourcePawn; dvander@160: using namespace SourceMod; dvander@160: dvander@229: /** dvander@229: * @brief Any class deriving from this will be automatically initiated/shutdown by SourceMod dvander@229: */ dvander@229: class SMGlobalClass dvander@229: { dvander@229: friend class SourceModBase; dvander@229: public: dvander@229: SMGlobalClass(); dvander@229: public: dvander@229: /** dvander@229: * @brief Called when SourceMod is initially loading dvander@229: */ dvander@229: virtual void OnSourceModStartup(bool late) dvander@229: { dvander@229: } dvander@229: dvander@229: /** dvander@229: * @brief Called after all global classes have initialized dvander@229: */ dvander@229: virtual void OnSourceModAllInitialized() dvander@229: { dvander@229: } dvander@229: dvander@229: /** dvander@229: * @brief Called when SourceMod is shutting down dvander@229: */ dvander@229: virtual void OnSourceModShutdown() dvander@229: { dvander@229: } dvander@229: private: dvander@229: SMGlobalClass *m_pGlobalClassNext; dvander@229: static SMGlobalClass *head; dvander@229: }; dvander@229: dvander@160: extern ISourcePawnEngine *g_pSourcePawn; dvander@160: extern IVirtualMachine *g_pVM; dvander@252: extern IdentityToken_t *g_pCoreIdent; dvander@160: dvander@233: #include "sm_autonatives.h" dvander@233: dvander@160: #endif //_INCLUDE_SOURCEMOD_GLOBALS_H_