plugins/include/core.inc
author Scott Ehlert <ds@alliedmods.net>
Wed Jun 06 20:42:46 2007 +0000 (2007-06-06)
changeset 891 30343d215489
parent 815 8946ca39d52b
child 938 8e95112b2501
permissions -rw-r--r--
Changed a few natives/stocks that should have used IsClientInGame() rather than IsClientConnected()
dvander@374
     1
/**
ds@475
     2
 * vim: set ts=4 :
dvander@374
     3
 * ===============================================================
dvander@374
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@374
     5
 * ===============================================================
dvander@374
     6
 *
dvander@374
     7
 *  This file is part of the SourceMod/SourcePawn SDK.  This file may only be used 
dvander@374
     8
 * or modified under the Terms and Conditions of its License Agreement, which is found 
dvander@374
     9
 * in LICENSE.txt.  The Terms and Conditions for making SourceMod extensions/plugins 
dvander@374
    10
 * may change at any time.  To view the latest information, see:
dvander@374
    11
 *   http://www.sourcemod.net/license.php
dvander@374
    12
 *
dvander@374
    13
 * Version: $Id$
dvander@374
    14
 */
dvander@374
    15
dvander@298
    16
#if defined _core_included
dvander@298
    17
 #endinput
dvander@298
    18
#endif
dvander@298
    19
#define _core_included
dvander@298
    20
dvander@572
    21
#include <version>
dvander@572
    22
dvander@572
    23
#define SOURCEMOD_PLUGINAPI_VERSION		2
dvander@298
    24
struct PlVers
dvander@298
    25
{
dvander@298
    26
	version,
dvander@572
    27
	String:filevers[],
dvander@298
    28
};
dvander@298
    29
dvander@483
    30
/**
ds@696
    31
 * Function helper values.
ds@621
    32
 */
ds@621
    33
enum Function
ds@621
    34
{
ds@621
    35
     INVALID_FUNCTION = -1,
ds@621
    36
};
ds@621
    37
ds@621
    38
/**
dvander@483
    39
 * Specifies what to do after a hook completes.
dvander@483
    40
 */
dvander@497
    41
enum Action
dvander@483
    42
{
dvander@483
    43
	Plugin_Continue = 0,	/**< Continue with the original action */
dvander@483
    44
	Plugin_Handled = 3,		/**< Handle the action at the end (don't call it) */
dvander@483
    45
	Plugin_Stop = 4,		/**< Immediately stop the hook chain and handle the original */
dvander@815
    46
};
dvander@483
    47
dvander@298
    48
public PlVers:__version = 
dvander@298
    49
{
dvander@298
    50
	version = SOURCEMOD_PLUGINAPI_VERSION,
dvander@572
    51
	filevers = SOURCEMOD_VERSION
dvander@298
    52
};
dvander@298
    53
dvander@618
    54
/**
dvander@618
    55
 * Plugin status values.
dvander@618
    56
 */
dvander@618
    57
enum PluginStatus
dvander@618
    58
{
dvander@618
    59
	Plugin_Running=0,		/**< Plugin is running */
dvander@618
    60
	/* All states below are "temporarily" unexecutable */
dvander@618
    61
	Plugin_Paused,			/**< Plugin is loaded but paused */
dvander@618
    62
	Plugin_Error,			/**< Plugin is loaded but errored/locked */
dvander@618
    63
	/* All states below do not have all natives */
dvander@618
    64
	Plugin_Loaded,			/**< Plugin has passed loading and can be finalized */
dvander@618
    65
	Plugin_Failed,			/**< Plugin has a fatal failure */
dvander@618
    66
	Plugin_Created,			/**< Plugin is created but not initialized */
dvander@618
    67
	Plugin_Uncompiled,		/**< Plugin is not yet compiled by the JIT */
dvander@618
    68
	Plugin_BadLoad,			/**< Plugin failed to load */
dvander@618
    69
};
dvander@618
    70
dvander@618
    71
/**
dvander@618
    72
 * Plugin information properties.
dvander@618
    73
 */
dvander@618
    74
enum PluginInfo
dvander@618
    75
{
dvander@618
    76
	PlInfo_Name,			/**< Plugin name */
dvander@618
    77
	PlInfo_Author,			/**< Plugin author */
dvander@618
    78
	PlInfo_Description,		/**< Plugin description */
dvander@618
    79
	PlInfo_Version,			/**< Plugin verison */
dvander@618
    80
	PlInfo_URL,				/**< Plugin URL */
dvander@618
    81
};
dvander@618
    82
dvander@619
    83
/**
dvander@619
    84
 * Defines how an extension must expose itself for autoloading.
dvander@619
    85
 */
dvander@298
    86
struct Extension
dvander@298
    87
{
dvander@298
    88
	const String:name[],	/* Short name */
dvander@298
    89
	const String:file[],	/* Default file name */
dvander@298
    90
	bool:autoload,			/* Whether or not to auto-load */
dvander@298
    91
	bool:required,			/* Whether or not to require */
dvander@298
    92
};
dvander@298
    93
dvander@298
    94
#define AUTOLOAD_EXTENSIONS
dvander@298
    95
#define REQUIRE_EXTENSIONS