dvander@374: /** ds@475: * vim: set ts=4 : dvander@374: * =============================================================== dvander@374: * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. dvander@374: * =============================================================== dvander@374: * dvander@374: * This file is part of the SourceMod/SourcePawn SDK. This file may only be used dvander@374: * or modified under the Terms and Conditions of its License Agreement, which is found dvander@374: * in LICENSE.txt. The Terms and Conditions for making SourceMod extensions/plugins dvander@374: * may change at any time. To view the latest information, see: dvander@374: * http://www.sourcemod.net/license.php dvander@374: * dvander@374: * Version: $Id$ dvander@374: */ dvander@374: dvander@298: #if defined _core_included dvander@298: #endinput dvander@298: #endif dvander@298: #define _core_included dvander@298: dvander@572: #include dvander@572: dvander@572: #define SOURCEMOD_PLUGINAPI_VERSION 2 dvander@298: struct PlVers dvander@298: { dvander@298: version, dvander@572: String:filevers[], dvander@298: }; dvander@298: dvander@483: /** ds@696: * Function helper values. ds@621: */ ds@621: enum Function ds@621: { ds@621: INVALID_FUNCTION = -1, ds@621: }; ds@621: ds@621: /** dvander@483: * Specifies what to do after a hook completes. dvander@483: */ dvander@497: enum Action dvander@483: { dvander@483: Plugin_Continue = 0, /**< Continue with the original action */ dvander@483: Plugin_Handled = 3, /**< Handle the action at the end (don't call it) */ dvander@483: Plugin_Stop = 4, /**< Immediately stop the hook chain and handle the original */ dvander@815: }; dvander@483: dvander@298: public PlVers:__version = dvander@298: { dvander@298: version = SOURCEMOD_PLUGINAPI_VERSION, dvander@572: filevers = SOURCEMOD_VERSION dvander@298: }; dvander@298: dvander@618: /** dvander@618: * Plugin status values. dvander@618: */ dvander@618: enum PluginStatus dvander@618: { dvander@618: Plugin_Running=0, /**< Plugin is running */ dvander@618: /* All states below are "temporarily" unexecutable */ dvander@618: Plugin_Paused, /**< Plugin is loaded but paused */ dvander@618: Plugin_Error, /**< Plugin is loaded but errored/locked */ dvander@618: /* All states below do not have all natives */ dvander@618: Plugin_Loaded, /**< Plugin has passed loading and can be finalized */ dvander@618: Plugin_Failed, /**< Plugin has a fatal failure */ dvander@618: Plugin_Created, /**< Plugin is created but not initialized */ dvander@618: Plugin_Uncompiled, /**< Plugin is not yet compiled by the JIT */ dvander@618: Plugin_BadLoad, /**< Plugin failed to load */ dvander@618: }; dvander@618: dvander@618: /** dvander@618: * Plugin information properties. dvander@618: */ dvander@618: enum PluginInfo dvander@618: { dvander@618: PlInfo_Name, /**< Plugin name */ dvander@618: PlInfo_Author, /**< Plugin author */ dvander@618: PlInfo_Description, /**< Plugin description */ dvander@618: PlInfo_Version, /**< Plugin verison */ dvander@618: PlInfo_URL, /**< Plugin URL */ dvander@618: }; dvander@618: dvander@619: /** dvander@619: * Defines how an extension must expose itself for autoloading. dvander@619: */ dvander@298: struct Extension dvander@298: { dvander@938: const String:name[], /**< Short name */ dvander@938: const String:file[], /**< Default file name */ dvander@938: bool:autoload, /**< Whether or not to auto-load */ dvander@938: bool:required, /**< Whether or not to require */ dvander@298: }; dvander@298: dvander@1000: public Float:NULL_VECTOR[3]; /**< Pass this into certain functions to act as a C++ NULL */ dvander@1000: public const String:NULL_STRING[1]; /**< pass this into certain functions to act as a C++ NULL */ dvander@938: dvander@298: #define AUTOLOAD_EXTENSIONS dvander@298: #define REQUIRE_EXTENSIONS