core/interfaces/ISourceMod.h
author David Anderson <dvander@alliedmods.net>
Fri Jan 19 02:14:50 2007 +0000 (2007-01-19)
changeset 317 e5342c8a0cf4
permissions -rw-r--r--
added new path format functions
exposed helpers as ISourceMod
dvander@317
     1
#ifndef _INCLUDE_SOURCEMOD_MAIN_HELPER_INTERFACE_H_
dvander@317
     2
#define _INCLUDE_SOURCEMOD_MAIN_HELPER_INTERFACE_H_
dvander@317
     3
dvander@317
     4
#include <IShareSys.h>
dvander@317
     5
dvander@317
     6
#define SMINTERFACE_SOURCEMOD_NAME		"ISourceMod"
dvander@317
     7
#define SMINTERFACE_SOURCEMOD_VERSION	1
dvander@317
     8
dvander@317
     9
namespace SourceMod
dvander@317
    10
{
dvander@317
    11
	enum PathType
dvander@317
    12
	{
dvander@317
    13
		Path_None = 0,
dvander@317
    14
		Path_Game,
dvander@317
    15
		Path_SM,
dvander@317
    16
	};
dvander@317
    17
dvander@317
    18
	class ISourceMod : public SMInterface
dvander@317
    19
	{
dvander@317
    20
	public:
dvander@317
    21
		virtual const char *GetInterfaceName()
dvander@317
    22
		{
dvander@317
    23
			return SMINTERFACE_SOURCEMOD_NAME;
dvander@317
    24
		}
dvander@317
    25
		virtual unsigned int GetInterfaceVersion()
dvander@317
    26
		{
dvander@317
    27
			return SMINTERFACE_SOURCEMOD_VERSION;
dvander@317
    28
		}
dvander@317
    29
	public:
dvander@317
    30
		/**
dvander@317
    31
		 * @brief Returns the full path to the mod directory.
dvander@317
    32
		 *
dvander@317
    33
		 * @return			A string containing the full mod path.
dvander@317
    34
		 */
dvander@317
    35
		virtual const char *GetModPath() =0;
dvander@317
    36
dvander@317
    37
		/**
dvander@317
    38
		 * @brief Returns the full path to the SourceMod directory.
dvander@317
    39
		 *
dvander@317
    40
		 * @return			A string containing the full SourceMod path.
dvander@317
    41
		 */
dvander@317
    42
		virtual const char *GetSourceModPath() =0;
dvander@317
    43
dvander@317
    44
		/**
dvander@317
    45
		 * @brief Builds a platform path for a specific target base path.
dvander@317
    46
		 *
dvander@317
    47
		 * @param type		Type of path to use as a base.
dvander@317
    48
		 * @param buffer	Buffer to write to.
dvander@317
    49
		 * @param maxlength	Size of buffer.
dvander@317
    50
		 * @param format	Format string.
dvander@317
    51
		 * @param ...		Format arguments.
dvander@317
    52
		 * @return			Number of bytes written.
dvander@317
    53
		 */
dvander@317
    54
		virtual size_t BuildPath(PathType type, char *buffer, size_t maxlength, char *format, ...) =0;
dvander@317
    55
dvander@317
    56
		/**
dvander@317
    57
		 * @brief Logs a message to the SourceMod logs.
dvander@317
    58
		 *
dvander@317
    59
		 * @param format	Message format.
dvander@317
    60
		 * @param ...		Message format parameters.
dvander@317
    61
		 */
dvander@317
    62
		virtual void LogMessage(IExtension *pExt, const char *format, ...) =0;
dvander@317
    63
dvander@317
    64
		/**
dvander@317
    65
		 * @brief Logs a message to the SourceMod error logs.
dvander@317
    66
		 *
dvander@317
    67
		 * @param format	Message format.
dvander@317
    68
		 * @param ...		Message format parameters.
dvander@317
    69
		 */
dvander@317
    70
		virtual void LogError(IExtension *pExt, const char *format, ...) =0;
dvander@317
    71
	};
dvander@317
    72
};
dvander@317
    73
dvander@317
    74
#endif //_INCLUDE_SOURCEMOD_MAIN_HELPER_INTERFACE_H_