core/sourcemod.h
author David Anderson <dvander@alliedmods.net>
Thu Feb 08 01:11:45 2007 +0000 (2007-02-08)
changeset 453 7611078f11cd
parent 448 25984ddd0ce0
child 484 d254e257cac2
permissions -rw-r--r--
added gameevents to the publicly available interfaces
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@159
    14
#ifndef _INCLUDE_SOURCEMOD_GLOBALHEADER_H_
dvander@159
    15
#define _INCLUDE_SOURCEMOD_GLOBALHEADER_H_
dvander@159
    16
dvander@160
    17
#include "sm_globals.h"
dvander@317
    18
#include <ISourceMod.h>
dvander@159
    19
dvander@162
    20
/**
dvander@162
    21
 * @brief Implements SourceMod's global overall management, API, and logic
dvander@162
    22
 */
dvander@162
    23
dvander@317
    24
class SourceModBase : public ISourceMod
dvander@160
    25
{
dvander@160
    26
public:
dvander@209
    27
	SourceModBase();
dvander@209
    28
public:
dvander@160
    29
	/**
dvander@160
    30
	 * @brief Initializes SourceMod, or returns an error on failure.
dvander@160
    31
	 */
dvander@160
    32
	bool InitializeSourceMod(char *error, size_t err_max, bool late);
dvander@209
    33
dvander@209
    34
	/** 
dvander@209
    35
	 * @brief Starts everything SourceMod needs to run
dvander@209
    36
	 */
dvander@209
    37
	void StartSourceMod(bool late);
dvander@209
    38
faluco@289
    39
	/** 
dvander@448
    40
	 * @brief Shuts down all SourceMod components
dvander@448
    41
	 */
faluco@289
    42
	void CloseSourceMod();
faluco@289
    43
dvander@209
    44
	/**
dvander@209
    45
	 * @brief Map change hook
dvander@209
    46
	 */
dvander@209
    47
	bool LevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background);
dvander@209
    48
faluco@333
    49
	/**
dvander@448
    50
	 * @brief Level shutdown hook
dvander@448
    51
	 */
faluco@333
    52
	void LevelShutdown();
faluco@333
    53
dvander@209
    54
	/** 
dvander@209
    55
	 * @brief Returns whether or not a mapload is in progress
dvander@209
    56
	 */
dvander@209
    57
	bool IsMapLoading();
dvander@209
    58
faluco@422
    59
	/** 
dvander@448
    60
	 * @brief Stores the global target index.
dvander@448
    61
	 */
faluco@422
    62
	void SetGlobalTarget(unsigned int index);
faluco@422
    63
faluco@422
    64
	/** 
dvander@448
    65
	 * @brief Returns the global target index.
dvander@448
    66
	 */
faluco@422
    67
	unsigned int GetGlobalTarget() const;
dvander@317
    68
public: //ISourceMod
dvander@317
    69
	const char *GetModPath();
dvander@317
    70
	const char *GetSourceModPath();
dvander@317
    71
	size_t BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...);
dvander@317
    72
	void LogMessage(IExtension *pExt, const char *format, ...);
dvander@317
    73
	void LogError(IExtension *pExt, const char *format, ...);
dvander@347
    74
	size_t FormatString(char *buffer, size_t maxlength, IPluginContext *pContext, const cell_t *params, unsigned int param);
dvander@448
    75
	void SetAuthChecking(bool set);
dvander@209
    76
private:
dvander@209
    77
	/**
dvander@209
    78
	 * @brief Loading plugins
dvander@209
    79
	 */
dvander@209
    80
	void DoGlobalPluginLoads();
dvander@448
    81
	void GameFrame(bool simulating);
dvander@209
    82
private:
dvander@209
    83
	char m_SMBaseDir[PLATFORM_MAX_PATH+1];
dvander@345
    84
	char m_SMRelDir[PLATFORM_MAX_PATH+1];
dvander@209
    85
	bool m_IsMapLoading;
faluco@333
    86
	bool m_ExecPluginReload;
faluco@422
    87
	unsigned int m_target;
dvander@448
    88
	bool m_CheckingAuth;
dvander@211
    89
};
dvander@211
    90
dvander@160
    91
extern SourceModBase g_SourceMod;
dvander@159
    92
dvander@159
    93
#endif //_INCLUDE_SOURCEMOD_GLOBALHEADER_H_