core/sourcemod.h
author David Anderson <dvander@alliedmods.net>
Sat Jan 27 09:25:07 2007 +0000 (2007-01-27)
changeset 401 18fc0da83775
parent 370 d3a484f98f6d
child 422 5ef0f5610c2a
permissions -rw-r--r--
fixed this using /MD in release mode
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
	/** 
faluco@289
    40
	* @brief Shuts down all SourceMod components
faluco@289
    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
	/**
faluco@333
    50
	* @brief Level shutdown hook
faluco@333
    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
dvander@317
    59
public: //ISourceMod
dvander@317
    60
	const char *GetModPath();
dvander@317
    61
	const char *GetSourceModPath();
dvander@317
    62
	size_t BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...);
dvander@317
    63
	void LogMessage(IExtension *pExt, const char *format, ...);
dvander@317
    64
	void LogError(IExtension *pExt, const char *format, ...);
dvander@347
    65
	size_t FormatString(char *buffer, size_t maxlength, IPluginContext *pContext, const cell_t *params, unsigned int param);
dvander@209
    66
private:
dvander@209
    67
	/**
dvander@209
    68
	 * @brief Loading plugins
dvander@209
    69
	 */
dvander@209
    70
	void DoGlobalPluginLoads();
dvander@209
    71
private:
dvander@209
    72
	char m_SMBaseDir[PLATFORM_MAX_PATH+1];
dvander@345
    73
	char m_SMRelDir[PLATFORM_MAX_PATH+1];
dvander@209
    74
	bool m_IsMapLoading;
faluco@333
    75
	bool m_ExecPluginReload;
dvander@211
    76
};
dvander@211
    77
dvander@160
    78
extern SourceModBase g_SourceMod;
dvander@159
    79
dvander@159
    80
#endif //_INCLUDE_SOURCEMOD_GLOBALHEADER_H_