core/sm_globals.h
author David Anderson <dvander@alliedmods.net>
Sat Feb 17 09:02:22 2007 +0000 (2007-02-17)
changeset 516 0807e52b4e02
parent 455 6d3a8434ac65
child 653 ef60870067ff
permissions -rw-r--r--
clientconnect now blocks properly when needed
removed cruft
dvander@370
     1
/**
dvander@370
     2
 * ===============================================================
dvander@370
     3
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@370
     4
 * ===============================================================
dvander@370
     5
 *
dvander@370
     6
 * This file is not open source and may not be copied without explicit
dvander@370
     7
 * written permission of AlliedModders LLC.  This file may not be redistributed 
dvander@370
     8
 * in whole or significant part.
dvander@370
     9
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@370
    10
 *
dvander@370
    11
 * Version: $Id$
dvander@370
    12
 */
dvander@370
    13
dvander@160
    14
#ifndef _INCLUDE_SOURCEMOD_GLOBALS_H_
dvander@160
    15
#define _INCLUDE_SOURCEMOD_GLOBALS_H_
dvander@160
    16
dvander@162
    17
/**
dvander@162
    18
 * @file Contains global headers that most files in SourceMod will need.
dvander@162
    19
 */
dvander@162
    20
dvander@160
    21
#include <sp_vm_types.h>
dvander@160
    22
#include <sp_vm_api.h>
dvander@160
    23
#include "sm_platform.h"
dvander@324
    24
#include <IShareSys.h>
dvander@160
    25
dvander@160
    26
using namespace SourcePawn;
dvander@160
    27
using namespace SourceMod;
dvander@160
    28
dvander@229
    29
/** 
dvander@229
    30
 * @brief Any class deriving from this will be automatically initiated/shutdown by SourceMod
dvander@229
    31
 */
dvander@229
    32
class SMGlobalClass
dvander@229
    33
{
dvander@229
    34
	friend class SourceModBase;
dvander@229
    35
public:
dvander@229
    36
	SMGlobalClass();
dvander@229
    37
public:
dvander@229
    38
	/**
dvander@229
    39
	 * @brief Called when SourceMod is initially loading
dvander@229
    40
	 */
dvander@229
    41
	virtual void OnSourceModStartup(bool late)
dvander@229
    42
	{
dvander@229
    43
	}
dvander@229
    44
dvander@229
    45
	/**
dvander@229
    46
	 * @brief Called after all global classes have initialized
dvander@229
    47
	 */
dvander@229
    48
	virtual void OnSourceModAllInitialized()
dvander@229
    49
	{
dvander@229
    50
	}
dvander@229
    51
dvander@229
    52
	/**
dvander@229
    53
	 * @brief Called when SourceMod is shutting down
dvander@229
    54
	 */
dvander@229
    55
	virtual void OnSourceModShutdown()
dvander@229
    56
	{
dvander@229
    57
	}
faluco@281
    58
faluco@281
    59
	/**
ds@455
    60
	* @brief Called after SourceMod is completely shut down
faluco@281
    61
	*/
faluco@281
    62
	virtual void OnSourceModAllShutdown()
faluco@281
    63
	{
faluco@281
    64
	}
dvander@229
    65
private:
dvander@229
    66
	SMGlobalClass *m_pGlobalClassNext;
dvander@229
    67
	static SMGlobalClass *head;
dvander@229
    68
};
dvander@229
    69
dvander@160
    70
extern ISourcePawnEngine *g_pSourcePawn;
dvander@160
    71
extern IVirtualMachine *g_pVM;
dvander@252
    72
extern IdentityToken_t *g_pCoreIdent;
dvander@160
    73
dvander@233
    74
#include "sm_autonatives.h"
dvander@233
    75
dvander@160
    76
#endif //_INCLUDE_SOURCEMOD_GLOBALS_H_