3 * ===============================================================
4 * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
5 * ===============================================================
7 * This file is not open source and may not be copied without explicit
8 * written permission of AlliedModders LLC. This file may not be redistributed
9 * in whole or significant part.
10 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
15 #ifndef _INCLUDE_SOURCEMOD_GLOBALS_H_
16 #define _INCLUDE_SOURCEMOD_GLOBALS_H_
19 * @file Contains global headers that most files in SourceMod will need.
22 #include <sp_vm_types.h>
23 #include <sp_vm_api.h>
24 #include "sm_platform.h"
25 #include <IShareSys.h>
27 using namespace SourcePawn;
28 using namespace SourceMod;
31 * @brief Lists error codes possible from attempting to set a core configuration option.
35 CoreConfig_Okay = 0, /**< No error */
36 CoreConfig_NoRuntime = 1, /**< Cannot set config option while SourceMod is running */
37 CoreConfig_InvalidValue = 2, /**< Invalid value specified for config option */
38 CoreConfig_InvalidOption = 3, /**< Invalid config option specified */
39 /* -------------------- */
40 CoreConfig_TOTAL /**< Total number of core config error codes */
44 * @brief Any class deriving from this will be automatically initiated/shutdown by SourceMod
48 friend class SourceModBase;
49 friend class CoreConfig;
54 * @brief Called when SourceMod is initially loading
56 virtual void OnSourceModStartup(bool late)
61 * @brief Called after all global classes have initialized
63 virtual void OnSourceModAllInitialized()
68 * @brief Called when SourceMod is shutting down
70 virtual void OnSourceModShutdown()
75 * @brief Called after SourceMod is completely shut down
77 virtual void OnSourceModAllShutdown()
82 * @brief Called when a core config option is changed.
83 * @note This is called once BEFORE OnSourceModStartup() when SourceMod is loading
84 * @note It can then be called again when the 'sm config' command is used
86 virtual CoreConfigErr OnSourceModConfigChanged(const char *option, const char *value)
88 return CoreConfig_InvalidOption;
91 SMGlobalClass *m_pGlobalClassNext;
92 static SMGlobalClass *head;
95 extern ISourcePawnEngine *g_pSourcePawn;
96 extern IVirtualMachine *g_pVM;
97 extern IdentityToken_t *g_pCoreIdent;
99 #include "sm_autonatives.h"
101 #endif //_INCLUDE_SOURCEMOD_GLOBALS_H_