core/sourcemod.h
author David Anderson <dvander@alliedmods.net>
Fri Jan 19 02:14:50 2007 +0000 (2007-01-19)
changeset 317 e5342c8a0cf4
parent 315 5f48300aa103
child 333 b668cbd49c35
permissions -rw-r--r--
added new path format functions
exposed helpers as ISourceMod
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
dvander@209
    36
	/** 
dvander@209
    37
	 * @brief Returns whether or not a mapload is in progress
dvander@209
    38
	 */
dvander@209
    39
	bool IsMapLoading();
dvander@209
    40
dvander@317
    41
public: //ISourceMod
dvander@317
    42
	const char *GetModPath();
dvander@317
    43
	const char *GetSourceModPath();
dvander@317
    44
	size_t BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...);
dvander@317
    45
	void LogMessage(IExtension *pExt, const char *format, ...);
dvander@317
    46
	void LogError(IExtension *pExt, const char *format, ...);
dvander@209
    47
private:
dvander@209
    48
	/**
dvander@209
    49
	 * @brief Loading plugins
dvander@209
    50
	 */
dvander@209
    51
	void DoGlobalPluginLoads();
dvander@209
    52
private:
dvander@209
    53
	char m_SMBaseDir[PLATFORM_MAX_PATH+1];
dvander@209
    54
	bool m_IsMapLoading;
dvander@211
    55
};
dvander@211
    56
dvander@160
    57
extern SourceModBase g_SourceMod;
dvander@159
    58
dvander@159
    59
#endif //_INCLUDE_SOURCEMOD_GLOBALHEADER_H_