core/sourcemod.h
author David Anderson <dvander@alliedmods.net>
Thu Jan 25 06:19:17 2007 +0000 (2007-01-25)
changeset 347 aa2dfce8bff6
parent 345 df0b05b4f50d
child 370 d3a484f98f6d
permissions -rw-r--r--
added an easier format string Function
changed normal log names to be more consistent
added logging natives
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@347
    52
	size_t FormatString(char *buffer, size_t maxlength, IPluginContext *pContext, const cell_t *params, unsigned int param);
dvander@209
    53
private:
dvander@209
    54
	/**
dvander@209
    55
	 * @brief Loading plugins
dvander@209
    56
	 */
dvander@209
    57
	void DoGlobalPluginLoads();
dvander@209
    58
private:
dvander@209
    59
	char m_SMBaseDir[PLATFORM_MAX_PATH+1];
dvander@345
    60
	char m_SMRelDir[PLATFORM_MAX_PATH+1];
dvander@209
    61
	bool m_IsMapLoading;
faluco@333
    62
	bool m_ExecPluginReload;
dvander@211
    63
};
dvander@211
    64
dvander@160
    65
extern SourceModBase g_SourceMod;
dvander@159
    66
dvander@159
    67
#endif //_INCLUDE_SOURCEMOD_GLOBALHEADER_H_