plugins/include/sourcemod.inc
author David Anderson <dvander@alliedmods.net>
Mon Jan 01 01:09:53 2007 +0000 (2007-01-01)
changeset 240 1360e8aa47d7
parent 212 d473435366b3
child 242 9dcd59d9014a
permissions -rw-r--r--
initial import of new debugger API
dvander@165
     1
/**
dvander@165
     2
 * :TODO: license info
dvander@165
     3
 */
dvander@165
     4
dvander@165
     5
#if defined _sourcemod_included
dvander@165
     6
 #endinput
dvander@165
     7
#endif
dvander@165
     8
#define _sourcemod_included
dvander@165
     9
dvander@170
    10
struct Plugin
dvander@170
    11
{
dvander@170
    12
   const String:name[],			/* Plugin Name */
dvander@170
    13
   const String:description[],		/* Plugin Description */
dvander@170
    14
   const String:author[],		/* Plugin Author */
dvander@170
    15
   const String:version[],		/* Plugin Version */
dvander@170
    16
   const String:url[],			/* Plugin URL */
dvander@170
    17
}
dvander@170
    18
dvander@165
    19
/**
dvander@170
    20
 * Declare this as a struct in your plugin to expose its information.
dvander@170
    21
 * Example:
dvander@170
    22
 *
dvander@170
    23
 * public Plugin:myinfo =
dvander@170
    24
 * {
dvander@170
    25
 *    name = "My Plugin",
dvander@170
    26
 *    //etc
dvander@170
    27
 * };
dvander@165
    28
 */
dvander@170
    29
public Plugin:myinfo;
dvander@165
    30
 
dvander@165
    31
/**
dvander@212
    32
 * Called when the plugin is fully initialized and all known external references are resolved.
dvander@212
    33
 * This is called even if the plugin type is "private."
dvander@212
    34
 * NOTE: Errors in this function will cause the plugin to stop running.
dvander@165
    35
 *
dvander@165
    36
 * @noreturn
dvander@165
    37
 */
dvander@212
    38
forward OnPluginInit(Handle:myself);
dvander@165
    39
 
dvander@165
    40
/**
dvander@212
    41
 *   Called before OnPluginInit, in case the plugin wants to check for load failure.
dvander@212
    42
 * This is called even if the plugin type is "private."  Any natives from modules are 
dvander@212
    43
 * not available at this point.  Thus, this forward should only be used for explicit 
dvander@212
    44
 * pre-emptive things, such as adding dynamic natives, or setting certain types of load filters.
dvander@212
    45
 * 
dvander@212
    46
 * NOTE: It is not safe to call externally resolved natives until OnPluginInit().
dvander@212
    47
 * NOTE: Any sort of RTE in this function will cause the plugin to fail loading.
dvander@165
    48
 *
dvander@165
    49
 * @param myself	Handle to the plugin.
dvander@165
    50
 * @param late		Whether or not the plugin was loaded "late" (after map load).
dvander@165
    51
 * @param error		Error message buffer in case load failed.
dvander@165
    52
 * @param err_max	Maximum number of characters for error message buffer.
dvander@165
    53
 * @return		True if load success, false otherwise.
dvander@165
    54
 */
dvander@212
    55
forward bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max);
dvander@165
    56
dvander@165
    57
/**
dvander@165
    58
 * Called when the plugin is about to be unloaded.
dvander@165
    59
 *
dvander@165
    60
 * @noreturn
dvander@165
    61
 */
dvander@165
    62
forward OnPluginUnload();
dvander@165
    63
dvander@165
    64
/**
dvander@165
    65
 * Called when the plugin's pause status is changing.
dvander@165
    66
 *
dvander@165
    67
 * @noreturn
dvander@165
    68
 */
dvander@165
    69
forward OnPluginPauseChange(bool:pause);