core/sm_globals.h
author David Anderson <dvander@alliedmods.net>
Sat Dec 30 07:23:17 2006 +0000 (2006-12-30)
changeset 233 968f92668138
parent 229 7819a42069e4
child 252 ce166c465bad
permissions -rw-r--r--
added automatic native registration
added string include file
renamed typeutil and its functions
redid a bunch of the string natives
string natives now register
dvander@160
     1
#ifndef _INCLUDE_SOURCEMOD_GLOBALS_H_
dvander@160
     2
#define _INCLUDE_SOURCEMOD_GLOBALS_H_
dvander@160
     3
dvander@162
     4
/**
dvander@162
     5
 * @file Contains global headers that most files in SourceMod will need.
dvander@162
     6
 */
dvander@162
     7
dvander@160
     8
#include <sp_vm_types.h>
dvander@160
     9
#include <sp_vm_api.h>
dvander@160
    10
#include "sm_platform.h"
dvander@160
    11
#include "interfaces/IShareSys.h"
dvander@160
    12
dvander@160
    13
using namespace SourcePawn;
dvander@160
    14
using namespace SourceMod;
dvander@160
    15
dvander@229
    16
/** 
dvander@229
    17
 * @brief Any class deriving from this will be automatically initiated/shutdown by SourceMod
dvander@229
    18
 */
dvander@229
    19
class SMGlobalClass
dvander@229
    20
{
dvander@229
    21
	friend class SourceModBase;
dvander@229
    22
public:
dvander@229
    23
	SMGlobalClass();
dvander@229
    24
public:
dvander@229
    25
	/**
dvander@229
    26
	 * @brief Called when SourceMod is initially loading
dvander@229
    27
	 */
dvander@229
    28
	virtual void OnSourceModStartup(bool late)
dvander@229
    29
	{
dvander@229
    30
	}
dvander@229
    31
dvander@229
    32
	/**
dvander@229
    33
	 * @brief Called after all global classes have initialized
dvander@229
    34
	 */
dvander@229
    35
	virtual void OnSourceModAllInitialized()
dvander@229
    36
	{
dvander@229
    37
	}
dvander@229
    38
dvander@229
    39
	/**
dvander@229
    40
	 * @brief Called when SourceMod is shutting down
dvander@229
    41
	 */
dvander@229
    42
	virtual void OnSourceModShutdown()
dvander@229
    43
	{
dvander@229
    44
	}
dvander@229
    45
private:
dvander@229
    46
	SMGlobalClass *m_pGlobalClassNext;
dvander@229
    47
	static SMGlobalClass *head;
dvander@229
    48
};
dvander@229
    49
dvander@160
    50
extern ISourcePawnEngine *g_pSourcePawn;
dvander@160
    51
extern IVirtualMachine *g_pVM;
dvander@160
    52
dvander@233
    53
#include "sm_autonatives.h"
dvander@233
    54
dvander@160
    55
#endif //_INCLUDE_SOURCEMOD_GLOBALS_H_