core/sourcemod.h
author Borja Ferrer <faluco@alliedmods.net>
Sat Jan 20 02:12:53 2007 +0000 (2007-01-20)
changeset 333 b668cbd49c35
parent 317 e5342c8a0cf4
child 345 df0b05b4f50d
permissions -rw-r--r--
plugins get updated on map change
maponly plugins get unloaded on map change
dvander@159
     1
#ifndef _INCLUDE_SOURCEMOD_GLOBALHEADER_H_
dvander@159
     2
#define _INCLUDE_SOURCEMOD_GLOBALHEADER_H_
dvander@159
     3
dvander@160
     4
#include "sm_globals.h"
dvander@317
     5
#include <ISourceMod.h>
dvander@159
     6
dvander@162
     7
/**
dvander@162
     8
 * @brief Implements SourceMod's global overall management, API, and logic
dvander@162
     9
 */
dvander@162
    10
dvander@317
    11
class SourceModBase : public ISourceMod
dvander@160
    12
{
dvander@160
    13
public:
dvander@209
    14
	SourceModBase();
dvander@209
    15
public:
dvander@160
    16
	/**
dvander@160
    17
	 * @brief Initializes SourceMod, or returns an error on failure.
dvander@160
    18
	 */
dvander@160
    19
	bool InitializeSourceMod(char *error, size_t err_max, bool late);
dvander@209
    20
dvander@209
    21
	/** 
dvander@209
    22
	 * @brief Starts everything SourceMod needs to run
dvander@209
    23
	 */
dvander@209
    24
	void StartSourceMod(bool late);
dvander@209
    25
faluco@289
    26
	/** 
faluco@289
    27
	* @brief Shuts down all SourceMod components
faluco@289
    28
	*/
faluco@289
    29
	void CloseSourceMod();
faluco@289
    30
dvander@209
    31
	/**
dvander@209
    32
	 * @brief Map change hook
dvander@209
    33
	 */
dvander@209
    34
	bool LevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background);
dvander@209
    35
faluco@333
    36
	/**
faluco@333
    37
	* @brief Level shutdown hook
faluco@333
    38
	*/
faluco@333
    39
	void LevelShutdown();
faluco@333
    40
dvander@209
    41
	/** 
dvander@209
    42
	 * @brief Returns whether or not a mapload is in progress
dvander@209
    43
	 */
dvander@209
    44
	bool IsMapLoading();
dvander@209
    45
dvander@317
    46
public: //ISourceMod
dvander@317
    47
	const char *GetModPath();
dvander@317
    48
	const char *GetSourceModPath();
dvander@317
    49
	size_t BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...);
dvander@317
    50
	void LogMessage(IExtension *pExt, const char *format, ...);
dvander@317
    51
	void LogError(IExtension *pExt, const char *format, ...);
dvander@209
    52
private:
dvander@209
    53
	/**
dvander@209
    54
	 * @brief Loading plugins
dvander@209
    55
	 */
dvander@209
    56
	void DoGlobalPluginLoads();
dvander@209
    57
private:
dvander@209
    58
	char m_SMBaseDir[PLATFORM_MAX_PATH+1];
dvander@209
    59
	bool m_IsMapLoading;
faluco@333
    60
	bool m_ExecPluginReload;
dvander@211
    61
};
dvander@211
    62
dvander@160
    63
extern SourceModBase g_SourceMod;
dvander@159
    64
dvander@159
    65
#endif //_INCLUDE_SOURCEMOD_GLOBALHEADER_H_