diff --git a/addons/metamod/bin/metamod.2.sdk2013.dll b/addons/metamod/bin/metamod.2.sdk2013.dll
deleted file mode 100644
index 1973b1aaf..000000000
Binary files a/addons/metamod/bin/metamod.2.sdk2013.dll and /dev/null differ
diff --git a/addons/metamod/bin/metamod.2.sdk2013.so b/addons/metamod/bin/metamod.2.sdk2013.so
deleted file mode 100644
index 617d27c17..000000000
Binary files a/addons/metamod/bin/metamod.2.sdk2013.so and /dev/null differ
diff --git a/addons/sourcemod/bin/sourcemod.2.sdk2013.dll b/addons/sourcemod/bin/sourcemod.2.sdk2013.dll
deleted file mode 100644
index 0404325e1..000000000
Binary files a/addons/sourcemod/bin/sourcemod.2.sdk2013.dll and /dev/null differ
diff --git a/addons/sourcemod/bin/sourcemod.2.sdk2013.so b/addons/sourcemod/bin/sourcemod.2.sdk2013.so
deleted file mode 100644
index b1a4a7be6..000000000
Binary files a/addons/sourcemod/bin/sourcemod.2.sdk2013.so and /dev/null differ
diff --git a/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.dll b/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.dll
deleted file mode 100644
index ede360fec..000000000
Binary files a/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.dll and /dev/null differ
diff --git a/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.so b/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.so
deleted file mode 100644
index 45a94b422..000000000
Binary files a/addons/sourcemod/extensions/sdkhooks.ext.2.sdk2013.so and /dev/null differ
diff --git a/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.dll b/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.dll
deleted file mode 100644
index 5fa5512bd..000000000
Binary files a/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.dll and /dev/null differ
diff --git a/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.so b/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.so
deleted file mode 100644
index f7505788e..000000000
Binary files a/addons/sourcemod/extensions/sdktools.ext.2.sdk2013.so and /dev/null differ
diff --git a/addons/sourcemod/scripting/archive/modules/ReqMatch.sp b/addons/sourcemod/scripting/archive/modules/ReqMatch.sp
index c32adaf2a..12dc4aeff 100644
--- a/addons/sourcemod/scripting/archive/modules/ReqMatch.sp
+++ b/addons/sourcemod/scripting/archive/modules/ReqMatch.sp
@@ -163,7 +163,7 @@ RM_Match_Unload(bool:bForced=false)
if(!IsHumansOnServer() || bForced)
{
if(RM_DEBUG || IsDebugEnabled())
- LogMessage("%s Match ís no longer active, sb_all_bot_game reset to 0, IsHumansOnServer %b, bForced %b",RM_DEBUG_PREFIX,IsHumansOnServer(),bForced);
+ LogMessage("%s Match нs no longer active, sb_all_bot_game reset to 0, IsHumansOnServer %b, bForced %b",RM_DEBUG_PREFIX,IsHumansOnServer(),bForced);
RM_bIsAMatchActive = false;
SetConVarInt(FindConVar("sb_all_bot_game"),0);
diff --git a/addons/sourcemod/scripting/include/admin.inc b/addons/sourcemod/scripting/include/admin.inc
deleted file mode 100644
index f98cf37f5..000000000
--- a/addons/sourcemod/scripting/include/admin.inc
+++ /dev/null
@@ -1,804 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _admin_included
- #endinput
-#endif
-#define _admin_included
-
-/**
- * Access levels (flags) for admins.
- */
-enum AdminFlag
-{
- Admin_Reservation = 0, /**< Reserved slot */
- Admin_Generic, /**< Generic admin abilities */
- Admin_Kick, /**< Kick another user */
- Admin_Ban, /**< Ban another user */
- Admin_Unban, /**< Unban another user */
- Admin_Slay, /**< Slay/kill/damage another user */
- Admin_Changemap, /**< Change the map */
- Admin_Convars, /**< Change basic convars */
- Admin_Config, /**< Change configuration */
- Admin_Chat, /**< Special chat privileges */
- Admin_Vote, /**< Special vote privileges */
- Admin_Password, /**< Set a server password */
- Admin_RCON, /**< Use RCON */
- Admin_Cheats, /**< Change sv_cheats and use its commands */
- Admin_Root, /**< All access by default */
- Admin_Custom1, /**< First custom flag type */
- Admin_Custom2, /**< Second custom flag type */
- Admin_Custom3, /**< Third custom flag type */
- Admin_Custom4, /**< Fourth custom flag type */
- Admin_Custom5, /**< Fifth custom flag type */
- Admin_Custom6 /**< Sixth custom flag type */
-};
-
-#define AdminFlags_TOTAL 21 /**< Total number of admin flags */
-
-/**
- * @section Bitwise values definitions for admin flags.
- */
-#define ADMFLAG_RESERVATION (1<<0) /**< Convenience macro for Admin_Reservation as a FlagBit */
-#define ADMFLAG_GENERIC (1<<1) /**< Convenience macro for Admin_Generic as a FlagBit */
-#define ADMFLAG_KICK (1<<2) /**< Convenience macro for Admin_Kick as a FlagBit */
-#define ADMFLAG_BAN (1<<3) /**< Convenience macro for Admin_Ban as a FlagBit */
-#define ADMFLAG_UNBAN (1<<4) /**< Convenience macro for Admin_Unban as a FlagBit */
-#define ADMFLAG_SLAY (1<<5) /**< Convenience macro for Admin_Slay as a FlagBit */
-#define ADMFLAG_CHANGEMAP (1<<6) /**< Convenience macro for Admin_Changemap as a FlagBit */
-#define ADMFLAG_CONVARS (1<<7) /**< Convenience macro for Admin_Convars as a FlagBit */
-#define ADMFLAG_CONFIG (1<<8) /**< Convenience macro for Admin_Config as a FlagBit */
-#define ADMFLAG_CHAT (1<<9) /**< Convenience macro for Admin_Chat as a FlagBit */
-#define ADMFLAG_VOTE (1<<10) /**< Convenience macro for Admin_Vote as a FlagBit */
-#define ADMFLAG_PASSWORD (1<<11) /**< Convenience macro for Admin_Password as a FlagBit */
-#define ADMFLAG_RCON (1<<12) /**< Convenience macro for Admin_RCON as a FlagBit */
-#define ADMFLAG_CHEATS (1<<13) /**< Convenience macro for Admin_Cheats as a FlagBit */
-#define ADMFLAG_ROOT (1<<14) /**< Convenience macro for Admin_Root as a FlagBit */
-#define ADMFLAG_CUSTOM1 (1<<15) /**< Convenience macro for Admin_Custom1 as a FlagBit */
-#define ADMFLAG_CUSTOM2 (1<<16) /**< Convenience macro for Admin_Custom2 as a FlagBit */
-#define ADMFLAG_CUSTOM3 (1<<17) /**< Convenience macro for Admin_Custom3 as a FlagBit */
-#define ADMFLAG_CUSTOM4 (1<<18) /**< Convenience macro for Admin_Custom4 as a FlagBit */
-#define ADMFLAG_CUSTOM5 (1<<19) /**< Convenience macro for Admin_Custom5 as a FlagBit */
-#define ADMFLAG_CUSTOM6 (1<<20) /**< Convenience macro for Admin_Custom6 as a FlagBit */
-
-/**
- * @endsection
- */
-
-/**
- * @section Hardcoded authentication methods
- */
-#define AUTHMETHOD_STEAM "steam" /**< SteamID based authentication */
-#define AUTHMETHOD_IP "ip" /**< IP based authentication */
-#define AUTHMETHOD_NAME "name" /**< Name based authentication */
-
-/**
- * @endsection
- */
-
-/**
- * Access override types.
- */
-enum OverrideType
-{
- Override_Command = 1, /**< Command */
- Override_CommandGroup /**< Command group */
-};
-
-/**
- * Access override rules.
- */
-enum OverrideRule
-{
- Command_Deny = 0,
- Command_Allow = 1
-};
-
-/**
- * DEPRECATED, do not use.
- */
-enum ImmunityType
-{
- Immunity_Default = 1, /**< Deprecated. */
- Immunity_Global /**< Deprecated. */
-};
-
-/**
- * Identifies a unique entry in the group permissions cache. These are not Handles.
- */
-enum GroupId
-{
- INVALID_GROUP_ID = -1 /**< An invalid/non-existent group */
-};
-
-/**
- * Identifies a unique entry in the admin permissions cache. These are not Handles.
- */
-enum AdminId
-{
- INVALID_ADMIN_ID = -1 /**< An invalid/non-existent admin */
-};
-
-/**
- * Methods of computing access permissions.
- */
-enum AdmAccessMode
-{
- Access_Real, /**< Access the user has inherently */
- Access_Effective /**< Access the user has from their groups */
-};
-
-/**
- * Represents the various cache regions.
- */
-enum AdminCachePart
-{
- AdminCache_Overrides = 0, /**< Global overrides */
- AdminCache_Groups = 1, /**< All groups (automatically invalidates admins too) */
- AdminCache_Admins = 2 /**< All admins */
-};
-
-methodmap AdminId {
- // Retrieves an admin's user name as made with CreateAdmin().
- //
- // @note This function can return UTF-8 strings, and will safely chop UTF-8 strings.
- //
- // @param name String buffer to store name.
- // @param maxlength Maximum size of string buffer.
- // @return Number of bytes written.
- public native void GetUsername(char[] name, int maxlength);
-
- // Binds an admin to an identity for fast lookup later on. The bind must be unique.
- //
- // @param authMethod Auth method to use, predefined or from RegisterAuthIdentType().
- // @param ident String containing the arbitrary, unique identity.
- // @return True on success, false if the auth method was not found,
- // ident was already taken, or ident invalid for auth method.
- public native bool BindIdentity(const char[] authMethod, const char[] ident);
-
- // Sets whether or not a flag is enabled on an admin.
- //
- // @param flag Admin flag to use.
- // @param enabled True to enable, false to disable.
- public native void SetFlag(AdminFlag flag, bool enabled);
-
- // Returns whether or not a flag is enabled on an admin.
- //
- // @param flag Admin flag to use.
- // @param mode Access mode to check.
- // @return True if enabled, false otherwise.
- public native bool HasFlag(AdminFlag flag, AdmAccessMode mode=Access_Effective);
-
- // Returns the bitstring of access flags on an admin.
- //
- // @param mode Access mode to use.
- // @return A bitstring containing which flags are enabled.
- public native int GetFlags(AdmAccessMode mode);
-
- // Adds a group to an admin's inherited group list. Any flags the group has
- // will be added to the admin's effective flags.
- //
- // @param gid GroupId index of the group.
- // @return True on success, false on invalid input or duplicate membership.
- public native bool InheritGroup(GroupId gid);
-
- // Returns group information from an admin.
- //
- // @param index Group number to retrieve, from 0 to N-1, where N
- // is the value of the GroupCount property.
- // @param name Buffer to store the group's name.
- // Note: This will safely chop UTF-8 strings.
- // @param maxlength Maximum size of the output name buffer.
- // @return A GroupId index and a name pointer, or
- // INVALID_GROUP_ID and NULL if an error occurred.
- public native GroupId GetGroup(int index, char[] name, int maxlength);
-
- // Sets a password on an admin.
- //
- // @param password String containing the password.
- public native void SetPassword(const char[] password);
-
- // Gets an admin's password.
- //
- // @param buffer Optional buffer to store the admin's password.
- // @param maxlength Maximum size of the output name buffer.
- // Note: This will safely chop UTF-8 strings.
- // @return True if there was a password set, false otherwise.
- public native bool GetPassword(char[] buffer="", int maxlength=0);
-
- // Tests whether one admin can target another.
- //
- // The heuristics for this check are as follows:
- // 0. If the targeting AdminId is INVALID_ADMIN_ID, targeting fails.
- // 1. If the targeted AdminId is INVALID_ADMIN_ID, targeting succeeds.
- // 2. If the targeted AdminId is the same as the targeting AdminId,
- // (self) targeting succeeds.
- // 3. If the targeting admin is root, targeting succeeds.
- // 4. If the targeted admin has access higher (as interpreted by
- // (sm_immunity_mode) than the targeting admin, then targeting fails.
- // 5. If the targeted admin has specific immunity from the
- // targeting admin via group immunities, targeting fails.
- // 6. Targeting succeeds.
- //
- // @param target Target admin (may be INVALID_ADMIN_ID).
- // @return True if targetable, false if immune.
- public native bool CanTarget(AdminId other);
-
- // The number of groups of which this admin is a member.
- property int GroupCount {
- public native get();
- }
-
- // Immunity level used for targetting.
- property int ImmunityLevel {
- public native get();
- public native set(int level);
- }
-}
-
-methodmap GroupId {
- // Gets whether or not a flag is enabled on a group's flag set.
- //
- // @param flag Admin flag to retrieve.
- // @return True if enabled, false otherwise,
- public native bool HasFlag(AdminFlag flag);
-
- // Adds or removes a flag from a group's flag set.
- //
- // @param flag Admin flag to toggle.
- // @param enabled True to set the flag, false to unset/disable.
- public native void SetFlag(AdminFlag flag, bool enabled);
-
- // Returns the flag set that is added to users from this group.
- //
- // @return Bitstring containing the flags enabled.
- public native int GetFlags();
-
- // Returns a group that this group is immune to given an index.
- //
- // @param number Index from 0 to N-1, from GroupImmunitiesCount.
- // @return GroupId that this group is immune to, or INVALID_GROUP_ID on failure.
- public native GroupId GetGroupImmunity(int index);
-
- // Adds immunity to a specific group.
- //
- // @param other Group id to receive immunity to.
- public native void AddGroupImmunity(GroupId other);
-
- // Retrieves a group-specific command override.
- //
- // @param name String containing command name (case sensitive).
- // @param type Override type (specific command or group).
- // @param rule Optional pointer to store allow/deny setting.
- // @return True if an override exists, false otherwise.
- public native bool GetCommandOverride(const char[] name, OverrideType type, OverrideRule &rule);
-
- // Adds a group-specific override type.
- //
- // @param name String containing command name (case sensitive).
- // @param type Override type (specific command or group).
- // @param rule Override allow/deny setting.
- public native void AddCommandOverride(const char[] name, OverrideType type, OverrideRule rule);
-
- // Number of specific group immunities
- property int GroupImmunitiesCount {
- public native get();
- }
-
- // Immunity level used for targetting.
- property int ImmunityLevel {
- public native get();
- public native set(int level);
- }
-}
-
-/**
- * Called when part of the cache needs to be rebuilt.
- *
- * @param part Part of the admin cache to rebuild.
- */
-forward void OnRebuildAdminCache(AdminCachePart part);
-
-/**
- * Tells the admin system to dump a portion of the cache.
- *
- * @param part Part of the cache to dump. Specifying groups also dumps admins.
- * @param rebuild If true, the rebuild forwards will fire.
- */
-native void DumpAdminCache(AdminCachePart part, bool rebuild);
-
-/**
- * Adds a global command flag override. Any command registered with this name
- * will assume the new flag. This is applied retroactively as well.
- *
- * @param cmd String containing command name (case sensitive).
- * @param type Override type (specific command or group).
- * @param flags New admin flag.
- */
-native void AddCommandOverride(const char[] cmd, OverrideType type, int flags);
-
-/**
- * Returns a command override.
- *
- * @param cmd String containing command name (case sensitive).
- * @param type Override type (specific command or group).
- * @param flags By-reference cell to store the flag (undefined if not found).
- * @return True if there is an override, false otherwise.
- */
-native bool GetCommandOverride(const char[] cmd, OverrideType type, int &flags);
-
-/**
- * Unsets a command override.
- *
- * @param cmd String containing command name (case sensitive).
- * @param type Override type (specific command or group).
- */
-native void UnsetCommandOverride(const char[] cmd, OverrideType type);
-
-/**
- * Adds a new group. Name must be unique.
- *
- * @param group_name String containing the group name.
- * @return A new group id, INVALID_GROUP_ID if it already exists.
- */
-native GroupId CreateAdmGroup(const char[] group_name);
-
-/**
- * Finds a group by name.
- *
- * @param group_name String containing the group name.
- * @return A group id, or INVALID_GROUP_ID if not found.
- */
-native GroupId FindAdmGroup(const char[] group_name);
-
-/**
- * Adds or removes a flag from a group's flag set.
- * @note These are called "add flags" because they add to a user's flags.
- *
- * @param id Group id.
- * @param flag Admin flag to toggle.
- * @param enabled True to set the flag, false to unset/disable.
- */
-native void SetAdmGroupAddFlag(GroupId id, AdminFlag flag, bool enabled);
-
-/**
- * Gets the set value of an add flag on a group's flag set.
- * @note These are called "add flags" because they add to a user's flags.
- *
- * @param id Group id.
- * @param flag Admin flag to retrieve.
- * @return True if enabled, false otherwise,
- */
-native bool GetAdmGroupAddFlag(GroupId id, AdminFlag flag);
-
-/**
- * Returns the flag set that is added to a user from their group.
- * @note These are called "add flags" because they add to a user's flags.
- *
- * @param id GroupId of the group.
- * @return Bitstring containing the flags enabled.
- */
-native int GetAdmGroupAddFlags(GroupId id);
-
-/**
- * @deprecated Functionality removed.
- */
-#pragma deprecated Use SetAdmGroupImmunityLevel() instead.
-native void SetAdmGroupImmunity(GroupId id, ImmunityType type, bool enabled);
-
-/**
- * @deprecated Functionality removed.
- */
-#pragma deprecated Use GetAdmGroupImmunityLevel() instead.
-native bool GetAdmGroupImmunity(GroupId id, ImmunityType type);
-
-/**
- * Adds immunity to a specific group.
- *
- * @param id Group id.
- * @param other_id Group id to receive immunity to.
- */
-native void SetAdmGroupImmuneFrom(GroupId id, GroupId other_id);
-
-/**
- * Returns the number of specific group immunities.
- *
- * @param id Group id.
- * @return Number of group immunities.
- */
-native int GetAdmGroupImmuneCount(GroupId id);
-
-/**
- * Returns a group that this group is immune to given an index.
- *
- * @param id Group id.
- * @param number Index from 0 to N-1, from GetAdmGroupImmuneCount().
- * @return GroupId that this group is immune to, or INVALID_GROUP_ID on failure.
- */
-native GroupId GetAdmGroupImmuneFrom(GroupId id, int number);
-
-/**
- * Adds a group-specific override type.
- *
- * @param id Group id.
- * @param name String containing command name (case sensitive).
- * @param type Override type (specific command or group).
- * @param rule Override allow/deny setting.
- */
-native void AddAdmGroupCmdOverride(GroupId id, const char[] name, OverrideType type, OverrideRule rule);
-
-/**
- * Retrieves a group-specific command override.
- *
- * @param id Group id.
- * @param name String containing command name (case sensitive).
- * @param type Override type (specific command or group).
- * @param rule Optional pointer to store allow/deny setting.
- * @return True if an override exists, false otherwise.
- */
-native bool GetAdmGroupCmdOverride(GroupId id, const char[] name, OverrideType type, OverrideRule &rule);
-
-/**
- * Registers an authentication identity type. You normally never need to call this except for
- * very specific systems.
- *
- * @param name Codename to use for your authentication type.
- */
-native void RegisterAuthIdentType(const char[] name);
-
-/**
- * Creates a new admin entry in the permissions cache and returns the generated AdminId index.
- *
- * @param name Name for this entry (does not have to be unique).
- * Specify an empty string for an anonymous admin.
- * @return New AdminId index or INVALID_ADMIN_ID if name is empty
- */
-native AdminId CreateAdmin(const char[] name="");
-
-/**
- * Retrieves an admin's user name as made with CreateAdmin().
- *
- * @note This function can return UTF-8 strings, and will safely chop UTF-8 strings.
- *
- * @param id AdminId of the admin.
- * @param name String buffer to store name.
- * @param maxlength Maximum size of string buffer.
- * @return Number of bytes written.
- */
-native int GetAdminUsername(AdminId id, char[] name, int maxlength);
-
-/**
- * Binds an admin to an identity for fast lookup later on. The bind must be unique.
- *
- * @param id AdminId of the admin.
- * @param auth Auth method to use, predefined or from RegisterAuthIdentType().
- * @param ident String containing the arbitrary, unique identity.
- * @return True on success, false if the auth method was not found,
- * ident was already taken, or ident invalid for auth method.
- */
-native bool BindAdminIdentity(AdminId id, const char[] auth, const char[] ident);
-
-/**
- * Sets whether or not a flag is enabled on an admin.
- *
- * @param id AdminId index of the admin.
- * @param flag Admin flag to use.
- * @param enabled True to enable, false to disable.
- */
-native void SetAdminFlag(AdminId id, AdminFlag flag, bool enabled);
-
-/**
- * Returns whether or not a flag is enabled on an admin.
- *
- * @param id AdminId index of the admin.
- * @param flag Admin flag to use.
- * @param mode Access mode to check.
- * @return True if enabled, false otherwise.
- */
-native bool GetAdminFlag(AdminId id, AdminFlag flag, AdmAccessMode mode=Access_Effective);
-
-/**
- * Returns the bitstring of access flags on an admin.
- *
- * @param id AdminId index of the admin.
- * @param mode Access mode to use.
- * @return A bitstring containing which flags are enabled.
- */
-native int GetAdminFlags(AdminId id, AdmAccessMode mode);
-
-/**
- * Adds a group to an admin's inherited group list. Any flags the group has
- * will be added to the admin's effective flags.
- *
- * @param id AdminId index of the admin.
- * @param gid GroupId index of the group.
- * @return True on success, false on invalid input or duplicate membership.
- */
-native bool AdminInheritGroup(AdminId id, GroupId gid);
-
-/**
- * Returns the number of groups this admin is a member of.
- *
- * @param id AdminId index of the admin.
- * @return Number of groups this admin is a member of.
- */
-native int GetAdminGroupCount(AdminId id);
-
-/**
- * Returns group information from an admin.
- *
- * @param id AdminId index of the admin.
- * @param index Group number to retrieve, from 0 to N-1, where N
- * is the value of GetAdminGroupCount(id).
- * @param name Buffer to store the group's name.
- * Note: This will safely chop UTF-8 strings.
- * @param maxlength Maximum size of the output name buffer.
- * @return A GroupId index and a name pointer, or
- * INVALID_GROUP_ID and NULL if an error occurred.
- */
-native GroupId GetAdminGroup(AdminId id, int index, char[] name, int maxlength);
-
-/**
- * Sets a password on an admin.
- *
- * @param id AdminId index of the admin.
- * @param password String containing the password.
- */
-native void SetAdminPassword(AdminId id, const char[] password);
-
-/**
- * Gets an admin's password.
- *
- * @param id AdminId index of the admin.
- * @param buffer Optional buffer to store the admin's password.
- * @param maxlength Maximum size of the output name buffer.
- * Note: This will safely chop UTF-8 strings.
- * @return True if there was a password set, false otherwise.
- */
-native bool GetAdminPassword(AdminId id, char[] buffer="", int maxlength=0);
-
-/**
- * Attempts to find an admin by an auth method and an identity.
- *
- * @param auth Auth method to try.
- * @param identity Identity string to look up.
- * @return An AdminId index if found, INVALID_ADMIN_ID otherwise.
- */
-native AdminId FindAdminByIdentity(const char[] auth, const char[] identity);
-
-/**
- * Removes an admin entry from the cache.
- *
- * @note This will remove any bindings to a specific user.
- *
- * @param id AdminId index to remove/invalidate.
- * @return True on success, false otherwise.
- */
-native bool RemoveAdmin(AdminId id);
-
-/**
- * Converts a flag bit string to a bit array.
- *
- * @param bits Bit string containing the flags.
- * @param array Array to write the flags to. Enabled flags will be 'true'.
- * @param maxSize Maximum number of flags the array can store.
- * @return Number of flags written.
- */
-native int FlagBitsToBitArray(int bits, bool[] array, int maxSize);
-
-/**
- * Converts a flag array to a bit string.
- *
- * @param array Array containing true or false for each AdminFlag.
- * @param maxSize Maximum size of the flag array.
- * @return A bit string composed of the array bits.
- */
-native int FlagBitArrayToBits(const bool[] array, int maxSize);
-
-/**
- * Converts an array of flags to bits.
- *
- * @param array Array containing flags that are enabled.
- * @param numFlags Number of flags in the array.
- * @return A bit string composed of the array flags.
- */
-native int FlagArrayToBits(const AdminFlag[] array, int numFlags);
-
-/**
- * Converts a bit string to an array of flags.
- *
- * @param bits Bit string containing the flags.
- * @param array Output array to write flags.
- * @param maxSize Maximum size of the flag array.
- * @return Number of flags written.
- */
-native int FlagBitsToArray(int bits, AdminFlag[] array, int maxSize);
-
-/**
- * Finds a flag by its string name.
- *
- * @param name Flag name (like "kick"), case sensitive.
- * @param flag Variable to store flag in.
- * @return True on success, false if not found.
- */
-native bool FindFlagByName(const char[] name, AdminFlag &flag);
-
-/**
- * Finds a flag by a given character.
- *
- * @param c Flag ASCII character/token.
- * @param flag Variable to store flag in.
- * @return True on success, false if not found.
- */
-native bool FindFlagByChar(int c, AdminFlag &flag);
-
-/**
- * Finds the flag char for a given admin flag.
- *
- * @param flag Flag to look up.
- * @param c Variable to store flag char.
- * @return True on success, false if not found.
- */
-native bool FindFlagChar(AdminFlag flag, int &c);
-
-/**
- * Converts a string of flag characters to a bit string.
- *
- * @param flags Flag ASCII string.
- * @param numchars Optional variable to store the number of bytes read.
- * @return Bit string of ADMFLAG values.
- */
-native int ReadFlagString(const char[] flags, int &numchars=0);
-
-/**
- * Tests whether one admin can target another.
- *
- * The heuristics for this check are as follows:
- * 0. If the targeting AdminId is INVALID_ADMIN_ID, targeting fails.
- * 1. If the targeted AdminId is INVALID_ADMIN_ID, targeting succeeds.
- * 2. If the targeted AdminId is the same as the targeting AdminId,
- * (self) targeting succeeds.
- * 3. If the targeting admin is root, targeting succeeds.
- * 4. If the targeted admin has access higher (as interpreted by
- * (sm_immunity_mode) than the targeting admin, then targeting fails.
- * 5. If the targeted admin has specific immunity from the
- * targeting admin via group immunities, targeting fails.
- * 6. Targeting succeeds.
- *
- * @param admin Admin doing the targetting (may be INVALID_ADMIN_ID).
- * @param target Target admin (may be INVALID_ADMIN_ID).
- * @return True if targetable, false if immune.
- */
-native bool CanAdminTarget(AdminId admin, AdminId target);
-
-/**
- * Creates an admin auth method. This does not need to be called more than once
- * per method, ever.
- *
- * @param method Name of the authentication method.
- * @return True on success, false on failure.
- */
-native bool CreateAuthMethod(const char[] method);
-
-/**
- * Sets a group's immunity level.
- *
- * @param gid Group Id.
- * @param level Immunity level value.
- * @return Old immunity level value.
- */
-native int SetAdmGroupImmunityLevel(GroupId gid, int level);
-
-/**
- * Gets a group's immunity level (defaults to 0).
- *
- * @param gid Group Id.
- * @return Immunity level value.
- */
-native int GetAdmGroupImmunityLevel(GroupId gid);
-
-/**
- * Sets an admin's immunity level.
- *
- * @param id Admin Id.
- * @param level Immunity level value.
- * @return Old immunity level value.
- */
-native int SetAdminImmunityLevel(AdminId id, int level);
-
-/**
- * Gets an admin's immunity level.
- *
- * @param id Admin Id.
- * @return Immunity level value.
- */
-native int GetAdminImmunityLevel(AdminId id);
-
-/**
- * Converts a flag to its single bit.
- *
- * @param flag Flag to convert.
- * @return Bit representation of the flag.
- */
-stock int FlagToBit(AdminFlag flag)
-{
- return (1 << view_as(flag));
-}
-
-/**
- * Converts a bit to an AdminFlag.
- *
- * @param bit Bit to convert.
- * @param flag Stores the converted flag by reference.
- * @return True on success, false otherwise.
- */
-stock bool BitToFlag(int bit, AdminFlag &flag)
-{
- AdminFlag array[1];
-
- if (FlagBitsToArray(bit, array, 1))
- {
- flag = array[0];
- return true;
- }
-
- return false;
-}
-
-/**
- * Converts a bit string to a string of flag characters.
- *
- * @param bits Bit string containing the flags.
- * @param flags Output array to write a string of flag characters.
- * @param maxSize Maximum size of the string array.
- * @return Number of flag characters written.
- */
-stock int FlagBitsToString(const int bits, char[] flags, const int maxSize)
-{
- AdminFlag array[AdminFlags_TOTAL];
- int numFlags = FlagBitsToArray(bits, array, AdminFlags_TOTAL);
- if (numFlags > maxSize)
- {
- numFlags = maxSize;
- }
- int i, c, numId = 0;
- for (i = 0; i < numFlags; ++i)
- {
- if(FindFlagChar(array[i], c))
- {
- flags[numId++] = c;
- }
- }
- flags[numId] = '\0';
-
- return numId;
-}
diff --git a/addons/sourcemod/scripting/include/adminmenu.inc b/addons/sourcemod/scripting/include/adminmenu.inc
deleted file mode 100644
index e82323e14..000000000
--- a/addons/sourcemod/scripting/include/adminmenu.inc
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _adminmenu_included
- #endinput
-#endif
-#define _adminmenu_included
-
-/* Decide whether topmenus should be required */
-#if !defined REQUIRE_PLUGIN
- #if defined REQUIRE_EXTENSIONS
- #define TEMP_REQUIRE_EXTENSIONS
- #undef REQUIRE_EXTENSIONS
- #endif
-#endif
-
-#include
-
-/* Restore old REQUIRE_EXTENSIONS value if necessary */
-#if defined TEMP_REQUIRE_EXTENSIONS
- #define REQUIRE_EXTENSIONS
- #undef TEMP_REQUIRE_EXTENSIONS
-#endif
-
-/** Category for player commands. */
-#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
-/** Category for server commands. */
-#define ADMINMENU_SERVERCOMMANDS "ServerCommands"
-/** Category for voting commands. */
-#define ADMINMENU_VOTINGCOMMANDS "VotingCommands"
-
-/**
- * Called when the admin menu is created and 3rd party plugins can grab
- * the Handle or add categories.
- *
- * @param topmenu Handle to the admin menu's TopMenu.
- */
-forward void OnAdminMenuCreated(Handle topmenu);
-
-/**
- * Called when the admin menu is ready to have items added.
- *
- * @param topmenu Handle to the admin menu's TopMenu.
- */
-forward void OnAdminMenuReady(Handle topmenu);
-
-/**
- * Retrieves the Handle to the admin top menu.
- *
- * @return Handle to the admin menu's TopMenu,
- * or INVALID_HANDLE if not created yet.
- */
-native TopMenu GetAdminTopMenu();
-
-/**
- * Adds targets to an admin menu.
- *
- * Each client is displayed as: name (userid)
- * Each item contains the userid as a string for its info.
- *
- * @param menu Menu Handle.
- * @param source_client Source client, or 0 to ignore immunity.
- * @param in_game_only True to only select in-game players.
- * @param alive_only True to only select alive players.
- * @return Number of clients added.
- */
-native int AddTargetsToMenu(Handle menu,
- int source_client,
- bool in_game_only=true,
- bool alive_only=false);
-
-/**
- * Adds targets to an admin menu.
- *
- * Each client is displayed as: name (userid)
- * Each item contains the userid as a string for its info.
- *
- * @param menu Menu Handle.
- * @param source_client Source client, or 0 to ignore immunity.
- * @param flags COMMAND_FILTER flags from commandfilters.inc.
- * @return Number of clients added.
- */
-native int AddTargetsToMenu2(Handle menu, int source_client, int flags);
-
-/**
- * Re-displays the admin menu to a client after selecting an item.
- * Auto-aborts if the Handle is invalid.
- *
- * @param topmenu TopMenu Handle.
- * @param client Client index.
- * @return True on success, false on failure.
- */
-stock bool RedisplayAdminMenu(Handle topmenu, int client)
-{
- if (topmenu == INVALID_HANDLE)
- {
- return false;
- }
-
- return DisplayTopMenu(topmenu, client, TopMenuPosition_LastCategory);
-}
-
-/* DO NOT EDIT BELOW THIS LINE */
-
-public SharedPlugin __pl_adminmenu =
-{
- name = "adminmenu",
- file = "adminmenu.smx",
-#if defined REQUIRE_PLUGIN
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_PLUGIN
-public void __pl_adminmenu_SetNTVOptional()
-{
- MarkNativeAsOptional("GetAdminTopMenu");
- MarkNativeAsOptional("AddTargetsToMenu");
- MarkNativeAsOptional("AddTargetsToMenu2");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/adt.inc b/addons/sourcemod/scripting/include/adt.inc
deleted file mode 100644
index 75051bf14..000000000
--- a/addons/sourcemod/scripting/include/adt.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _adt_included
- #endinput
-#endif
-#define _adt_included
-
-#include
-#include
-#include
diff --git a/addons/sourcemod/scripting/include/adt_array.inc b/addons/sourcemod/scripting/include/adt_array.inc
deleted file mode 100644
index c8fd9193c..000000000
--- a/addons/sourcemod/scripting/include/adt_array.inc
+++ /dev/null
@@ -1,469 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _adt_array_included
- #endinput
-#endif
-#define _adt_array_included
-
-/**
- * Given a maximum string size (including the null terminator),
- * returns the number of cells required to fit that string.
- *
- * @param size Number of bytes.
- * @return Minimum number of cells required to fit the byte count.
- */
-stock int ByteCountToCells(int size)
-{
- if (!size)
- {
- return 1;
- }
-
- return (size + 3) / 4;
-}
-
-methodmap ArrayList < Handle {
- // Creates a dynamic global cell array. While slower than a normal array,
- // it can be used globally AND dynamically, which is otherwise impossible.
- //
- // The contents of the array are uniform; i.e. storing a string at index X
- // and then retrieving it as an integer is NOT the same as StringToInt()!
- // The "blocksize" determines how many cells each array slot has; it cannot
- // be changed after creation.
- //
- // @param blocksize The number of cells each member of the array can
- // hold. For example, 32 cells is equivalent to:
- // new Array[X][32]
- // @param startsize Initial size of the array. Note that data will
- // NOT be auto-initialized.
- // @return New Handle to the array object.
- public native ArrayList(int blocksize=1, int startsize=0);
-
- // Clears an array of all entries. This is the same as Resize(0).
- public native void Clear();
-
- // Clones an array, returning a new handle with the same size and data.
- // This should NOT be confused with CloneHandle. This is a completely new
- // handle with the same data but no relation to the original. It should
- // closed when no longer needed.
- //
- // @return New handle to the cloned array object
- public native ArrayList Clone();
-
- // Resizes an array. If the size is smaller than the current size, the
- // array is truncated. If the size is larger than the current size,
- // the data at the additional indexes will not be initialized.
- //
- // @param newsize New size.
- public native void Resize(int newsize);
-
- // Pushes a value onto the end of an array, adding a new index.
- //
- // This may safely be used even if the array has a blocksize greater
- // than 1.
- //
- // @param value Value to push.
- // @return Index of the new entry.
- // @error Invalid Handle or out of memory.
- public native int Push(any value);
-
- // Pushes a string onto the end of an array, truncating it if it is too big.
- //
- // @param value String to push.
- // @return Index of the new entry.
- public native int PushString(const char[] value);
-
- // Pushes an array of cells onto the end of an array. The cells
- // are pushed as a block (i.e. the entire array sits at the index),
- // rather than pushing each cell individually.
- //
- // @param values Block of values to copy.
- // @param size If not set, the number of elements copied from the array
- // will be equal to the blocksize. If set higher than the
- // blocksize, the operation will be truncated.
- // @return Index of the new entry.
- public native int PushArray(const any[] values, int size=-1);
-
- // Retrieves a cell value from an array.
- //
- // @param index Index in the array.
- // @param block Optionally specify which block to read from
- // (useful if the blocksize > 0).
- // @param asChar Optionally read as a byte instead of a cell.
- // @return Value read.
- // @error Invalid index.
- public native any Get(int index, int block=0, bool asChar=false);
-
- // Retrieves a string value from an array.
- //
- // @param index Index in the array.
- // @param buffer Buffer to copy to.
- // @param maxlength Maximum size of the buffer.
- // @return Number of characters copied.
- // @error Invalid index.
- public native int GetString(int index, char[] buffer, int maxlength);
-
- // Retrieves an array of cells from an array.
- //
- // @param index Index in the array.
- // @param buffer Buffer to store the array in.
- // @param size If not set, assumes the buffer size is equal to the
- // blocksize. Otherwise, the size passed is used.
- // @return Number of cells copied.
- // @error Invalid index.
- public native int GetArray(int index, any[] buffer, int size=-1);
-
- // Sets a cell value in an array.
- //
- // @param index Index in the array.
- // @param value Cell value to set.
- // @param block Optionally specify which block to write to
- // (useful if the blocksize > 0).
- // @param asChar Optionally set as a byte instead of a cell.
- // @error Invalid index, or invalid block.
- public native void Set(int index, any value, int block=0, bool asChar=false);
-
- // Sets a string value in an array.
- //
- // @param index Index in the array.
- // @param value String value to set.
- // @return Number of characters copied.
- // @error Invalid index.
- public native void SetString(int index, const char[] value);
-
- // Sets an array of cells in an array.
- //
- // @param index Index in the array.
- // @param values Array to copy.
- // @param size If not set, assumes the buffer size is equal to the
- // blocksize. Otherwise, the size passed is used.
- // @return Number of cells copied.
- // @error Invalid index.
- public native void SetArray(int index, const any[] values, int size=-1);
-
- // Shifts an array up. All array contents after and including the given
- // index are shifted up by one, and the given index is then "free."
- // After shifting, the contents of the given index is undefined.
- //
- // @param index Index in the array to shift up from.
- // @error Invalid index.
- public native void ShiftUp(int index);
-
- // Removes an array index, shifting the entire array down from that position
- // on. For example, if item 8 of 10 is removed, the last 3 items will then be
- // (6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.
- //
- // @param index Index in the array to remove at.
- // @error Invalid index.
- public native void Erase(int index);
-
- // Swaps two items in the array.
- //
- // @param index1 First index.
- // @param index2 Second index.
- // @error Invalid index.
- public native void SwapAt(int index1, int index2);
-
- // Returns the index for the first occurrence of the provided string. If
- // the string cannot be located, -1 will be returned.
- //
- // @param item String to search for
- // @return Array index, or -1 on failure
- public native int FindString(const char[] item);
-
- // Returns the index for the first occurrence of the provided value. If the
- // value cannot be located, -1 will be returned.
- //
- // @param item Value to search for
- // @param block Optionally which block to search in
- // @return Array index, or -1 on failure
- // @error Invalid block index
- public native int FindValue(any item, int block=0);
-
- // Sort an ADT Array. Specify the type as Integer, Float, or String.
- //
- // @param order Sort order to use, same as other sorts.
- // @param type Data type stored in the ADT Array
- public native void Sort(SortOrder order, SortType type);
-
- // Custom sorts an ADT Array. You must pass in a comparison function.
- //
- // @param sortfunc Sort comparison function to use
- // @param hndl Optional Handle to pass through the comparison calls.
- public native void SortCustom(SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
-
- // Retrieve the size of the array.
- property int Length {
- public native get();
- }
-
- // Retrieve the blocksize the array was created with.
- property int BlockSize {
- public native get();
- }
-};
-
-/**
- * Creates a dynamic global cell array. While slower than a normal array,
- * it can be used globally AND dynamically, which is otherwise impossible.
- *
- * The contents of the array are uniform; i.e. storing a string at index X
- * and then retrieving it as an integer is NOT the same as StringToInt()!
- * The "blocksize" determines how many cells each array slot has; it cannot
- * be changed after creation.
- *
- * @param blocksize The number of cells each member of the array can
- * hold. For example, 32 cells is equivalent to:
- * new Array[X][32]
- * @param startsize Initial size of the array. Note that data will
- * NOT be auto-initialized.
- * @return New Handle to the array object.
- */
-native ArrayList CreateArray(int blocksize=1, int startsize=0);
-
-/**
- * Clears an array of all entries. This is the same as ResizeArray(0).
- *
- * @param array Array Handle.
- * @error Invalid Handle.
- */
-native void ClearArray(Handle array);
-
-/**
- * Clones an array, returning a new handle with the same size and data. This should NOT
- * be confused with CloneHandle. This is a completely new handle with the same data but
- * no relation to the original. You MUST close it.
- *
- * @param array Array handle to be cloned
- * @return New handle to the cloned array object
- * @error Invalid Handle
- */
-native Handle CloneArray(Handle array);
-
-/**
- * Resizes an array. If the size is smaller than the current size,
- * the array is truncated. If the size is larger than the current size,
- * the data at the additional indexes will not be initialized.
- *
- * @param array Array Handle.
- * @param newsize New size.
- * @error Invalid Handle or out of memory.
- */
-native void ResizeArray(Handle array, int newsize);
-
-/**
- * Returns the array size.
- *
- * @param array Array Handle.
- * @return Number of elements in the array.
- * @error Invalid Handle.
- */
-native int GetArraySize(Handle array);
-
-/**
- * Pushes a value onto the end of an array, adding a new index.
- *
- * This may safely be used even if the array has a blocksize
- * greater than 1.
- *
- * @param array Array Handle.
- * @param value Value to push.
- * @return Index of the new entry.
- * @error Invalid Handle or out of memory.
- */
-native int PushArrayCell(Handle array, any value);
-
-/**
- * Pushes a string onto the end of an array, truncating it
- * if it is too big.
- *
- * @param array Array Handle.
- * @param value String to push.
- * @return Index of the new entry.
- * @error Invalid Handle or out of memory.
- */
-native int PushArrayString(Handle array, const char[] value);
-
-/**
- * Pushes an array of cells onto the end of an array. The cells
- * are pushed as a block (i.e. the entire array sits at the index),
- * rather than pushing each cell individually.
- *
- * @param array Array Handle.
- * @param values Block of values to copy.
- * @param size If not set, the number of elements copied from the array
- * will be equal to the blocksize. If set higher than the
- * blocksize, the operation will be truncated.
- * @return Index of the new entry.
- * @error Invalid Handle or out of memory.
- */
-native int PushArrayArray(Handle array, const any[] values, int size=-1);
-
-/**
- * Retrieves a cell value from an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param block Optionally specify which block to read from
- * (useful if the blocksize > 0).
- * @param asChar Optionally read as a byte instead of a cell.
- * @return Value read.
- * @error Invalid Handle, invalid index, or invalid block.
- */
-native any GetArrayCell(Handle array, int index, int block=0, bool asChar=false);
-
-/**
- * Retrieves a string value from an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param buffer Buffer to copy to.
- * @param maxlength Maximum size of the buffer.
- * @return Number of characters copied.
- * @error Invalid Handle or invalid index.
- */
-native int GetArrayString(Handle array, int index, char[] buffer, int maxlength);
-
-/**
- * Retrieves an array of cells from an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param buffer Buffer to store the array in.
- * @param size If not set, assumes the buffer size is equal to the
- * blocksize. Otherwise, the size passed is used.
- * @return Number of cells copied.
- * @error Invalid Handle or invalid index.
- */
-native int GetArrayArray(Handle array, int index, any[] buffer, int size=-1);
-
-/**
- * Sets a cell value in an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param value Cell value to set.
- * @param block Optionally specify which block to write to
- * (useful if the blocksize > 0).
- * @param asChar Optionally set as a byte instead of a cell.
- * @error Invalid Handle, invalid index, or invalid block.
- */
-native void SetArrayCell(Handle array, int index, any value, int block=0, bool asChar=false);
-
-/**
- * Sets a string value in an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param value String value to set.
- * @return Number of characters copied.
- * @error Invalid Handle or invalid index.
- */
-native int SetArrayString(Handle array, int index, const char[] value);
-
-/**
- * Sets an array of cells in an array.
- *
- * @param array Array Handle.
- * @param index Index in the array.
- * @param values Array to copy.
- * @param size If not set, assumes the buffer size is equal to the
- * blocksize. Otherwise, the size passed is used.
- * @return Number of cells copied.
- * @error Invalid Handle or invalid index.
- */
-native int SetArrayArray(Handle array, int index, const any[] values, int size=-1);
-
-/**
- * Shifts an array up. All array contents after and including the given
- * index are shifted up by one, and the given index is then "free."
- * After shifting, the contents of the given index is undefined.
- *
- * @param array Array Handle.
- * @param index Index in the array to shift up from.
- * @error Invalid Handle or invalid index.
- */
-native void ShiftArrayUp(Handle array, int index);
-
-/**
- * Removes an array index, shifting the entire array down from that position
- * on. For example, if item 8 of 10 is removed, the last 3 items will then be
- * (6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.
- *
- * @param array Array Handle.
- * @param index Index in the array to remove at.
- * @error Invalid Handle or invalid index.
- */
-native void RemoveFromArray(Handle array, int index);
-
-/**
- * Swaps two items in the array.
- *
- * @param array Array Handle.
- * @param index1 First index.
- * @param index2 Second index.
- * @error Invalid Handle or invalid index.
- */
-native void SwapArrayItems(Handle array, int index1, int index2);
-
-/**
- * Returns the index for the first occurrence of the provided string. If the string
- * cannot be located, -1 will be returned.
- *
- * @param array Array Handle.
- * @param item String to search for
- * @return Array index, or -1 on failure
- * @error Invalid Handle
- */
-native int FindStringInArray(Handle array, const char[] item);
-
-/**
- * Returns the index for the first occurrence of the provided value. If the value
- * cannot be located, -1 will be returned.
- *
- * @param array Array Handle.
- * @param item Value to search for
- * @param block Optionally which block to search in
- * @return Array index, or -1 on failure
- * @error Invalid Handle or invalid block
- */
-native int FindValueInArray(Handle array, any item, int block=0);
-
-/**
- * Returns the blocksize the array was created with.
- *
- * @param array Array Handle.
- * @return The blocksize of the array.
- * @error Invalid Handle
- */
-native int GetArrayBlockSize(Handle array);
diff --git a/addons/sourcemod/scripting/include/adt_stack.inc b/addons/sourcemod/scripting/include/adt_stack.inc
deleted file mode 100644
index 408711b6d..000000000
--- a/addons/sourcemod/scripting/include/adt_stack.inc
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _adt_stack_included
- #endinput
-#endif
-#define _adt_stack_included
-
-methodmap ArrayStack < Handle
-{
- // Creates a stack structure. A stack is a LIFO (last in, first out)
- // vector (array) of items. It has O(1) insertion and O(1) removal.
- //
- // Stacks have two operations: Push (adding an item) and Pop (removes
- // items in reverse-push order).
- //
- // The contents of the stack are uniform; i.e. storing a string and then
- // retrieving it as an integer is NOT the same as StringToInt()!
- //
- // The "blocksize" determines how many cells each slot has; it cannot
- // be changed after creation.
- //
- // @param blocksize The number of cells each entry in the stack can
- // hold. For example, 32 cells is equivalent to:
- // new Array[X][32]
- public native ArrayStack(int blocksize=1);
-
- // Clones an stack, returning a new handle with the same size and data.
- // This should NOT be confused with CloneHandle. This is a completely new
- // handle with the same data but no relation to the original. It should
- // closed when no longer needed.
- //
- // @return New handle to the cloned stack object
- public native ArrayStack Clone();
-
- // Pushes a value onto the end of the stack, adding a new index.
- //
- // This may safely be used even if the stack has a blocksize
- // greater than 1.
- //
- // @param value Value to push.
- public native void Push(any value);
-
- // Pushes a copy of a string onto the end of a stack, truncating it if it
- // is too big.
- //
- // @param value String to push.
- public native void PushString(const char[] value);
-
- // Pushes a copy of an array of cells onto the end of a stack. The cells
- // are pushed as a block (i.e. the entire array takes up one stack slot),
- // rather than pushing each cell individually.
- //
- // @param stack Stack Handle.
- // @param values Block of values to copy.
- // @param size If not set, the number of elements copied from the array
- // will be equal to the blocksize. If set higher than the
- // blocksize, the operation will be truncated.
- public native void PushArray(const any[] values, int size=-1);
-
- // Pops a cell value from a stack.
- //
- // @param block Optionally specify which block to read from
- // (useful if the blocksize > 0).
- // @param asChar Optionally read as a byte instead of a cell.
- // @return Value popped from the stack.
- // @error The stack is empty.
- public native any Pop(int block=0, bool asChar=false);
-
- // Pops a string value from a stack.
- //
- // @param buffer Buffer to store string.
- // @param maxlength Maximum size of the buffer.
- // @param written Number of characters written to buffer, not including
- // the null terminator.
- // @error The stack is empty.
- public native void PopString(char[] buffer, int maxlength, int &written = 0);
-
- // Pops an array of cells from a stack.
- //
- // @param buffer Buffer to store the array in.
- // @param size If not set, assumes the buffer size is equal to the
- // blocksize. Otherwise, the size passed is used.
- // @error The stack is empty.
- public native void PopArray(any[] buffer, int size=-1);
-
- // Returns true if the stack is empty, false otherwise.
- property bool Empty {
- public native get();
- }
-
- // Retrieve the blocksize the stack was created with.
- property int BlockSize {
- public native get();
- }
-};
-
-/**
- * Creates a stack structure. A stack is a LIFO (last in, first out)
- * vector (array) of items. It has O(1) insertion and O(1) removal.
- *
- * Stacks have two operations: Push (adding an item) and Pop (removes
- * items in reverse-push order).
- *
- * The contents of the stack are uniform; i.e. storing a string and then
- * retrieving it as an integer is NOT the same as StringToInt()!
- *
- * The "blocksize" determines how many cells each slot has; it cannot
- * be changed after creation.
- *
- * @param blocksize The number of cells each entry in the stack can
- * hold. For example, 32 cells is equivalent to:
- * new Array[X][32]
- * @return New stack Handle.
- */
-native ArrayStack CreateStack(int blocksize=1);
-
-/**
- * Pushes a value onto the end of the stack, adding a new index.
- *
- * This may safely be used even if the stack has a blocksize
- * greater than 1.
- *
- * @param stack Stack Handle.
- * @param value Value to push.
- * @error Invalid Handle or out of memory.
- */
-native void PushStackCell(Handle stack, any value);
-
-/**
- * Pushes a copy of a string onto the end of a stack, truncating it if it is
- * too big.
- *
- * @param stack Stack Handle.
- * @param value String to push.
- * @error Invalid Handle or out of memory.
- */
-native void PushStackString(Handle stack, const char[] value);
-
-/**
- * Pushes a copy of an array of cells onto the end of a stack. The cells
- * are pushed as a block (i.e. the entire array takes up one stack slot),
- * rather than pushing each cell individually.
- *
- * @param stack Stack Handle.
- * @param values Block of values to copy.
- * @param size If not set, the number of elements copied from the array
- * will be equal to the blocksize. If set higher than the
- * blocksize, the operation will be truncated.
- * @error Invalid Handle or out of memory.
- */
-native void PushStackArray(Handle stack, const any[] values, int size=-1);
-
-/**
- * Pops a cell value from a stack.
- *
- * @param stack Stack Handle.
- * @param value Variable to store the value.
- * @param block Optionally specify which block to read from
- * (useful if the blocksize > 0).
- * @param asChar Optionally read as a byte instead of a cell.
- * @return True on success, false if the stack is empty.
- * @error Invalid Handle.
- */
-native bool PopStackCell(Handle stack, any &value, int block=0, bool asChar=false);
-
-/**
- * Pops a string value from a stack.
- *
- * @param stack Stack Handle.
- * @param buffer Buffer to store string.
- * @param maxlength Maximum size of the buffer.
- * @return True on success, false if the stack is empty.
- * @error Invalid Handle.
- */
-native bool PopStackString(Handle stack, char[] buffer, int maxlength, int &written=0);
-
-/**
- * Pops an array of cells from a stack.
- *
- * @param stack Stack Handle.
- * @param buffer Buffer to store the array in.
- * @param size If not set, assumes the buffer size is equal to the
- * blocksize. Otherwise, the size passed is used.
- * @return True on success, false if the stack is empty.
- * @error Invalid Handle.
- */
-native bool PopStackArray(Handle stack, any[] buffer, int size=-1);
-
-/**
- * Checks if a stack is empty.
- *
- * @param stack Stack Handle.
- * @return True if empty, false if not empty.
- * @error Invalid Handle.
- */
-native bool IsStackEmpty(Handle stack);
-
-/**
- * Pops a value off a stack, ignoring it completely.
- *
- * @param stack Stack Handle.
- * @return True if something was popped, false otherwise.
- * @error Invalid Handle.
- */
-stock bool PopStack(Handle stack)
-{
- int value;
- return PopStackCell(stack, value);
-}
-
-/**
- * Returns the blocksize the stack was created with.
- *
- * @param stack Stack Handle.
- * @return The blocksize of the stack.
- * @error Invalid Handle
- */
-native int GetStackBlockSize(Handle stack);
diff --git a/addons/sourcemod/scripting/include/adt_trie.inc b/addons/sourcemod/scripting/include/adt_trie.inc
deleted file mode 100644
index 9e9eb34b8..000000000
--- a/addons/sourcemod/scripting/include/adt_trie.inc
+++ /dev/null
@@ -1,332 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _adt_trie_included
- #endinput
-#endif
-#define _adt_trie_included
-
-/* Object-oriented wrapper for maps. */
-methodmap StringMap < Handle
-{
- // Creates a hash map. A hash map is a container that can map strings (called
- // "keys") to arbitrary values (cells, arrays, or strings). Keys in a hash map
- // are unique. That is, there is at most one entry in the map for a given key.
- //
- // Insertion, deletion, and lookup in a hash map are all considered to be fast
- // operations, amortized to O(1), or constant time.
- //
- // The word "Trie" in this API is historical. As of SourceMod 1.6, tries have
- // been internally replaced with hash tables, which have O(1) insertion time
- // instead of O(n).
- //
- // The StringMap must be freed via delete or CloseHandle().
- public native StringMap();
-
- // Clones a string map, returning a new handle with the same size and data.
- // This should NOT be confused with CloneHandle. This is a completely new
- // handle with the same data but no relation to the original. It should be
- // closed when no longer needed with delete or CloseHandle().
- //
- // @return New handle to the cloned string map
- public native StringMap Clone();
-
- // Sets a value in a hash map, either inserting a new entry or replacing an old one.
- //
- // @param key Key string.
- // @param value Value to store at this key.
- // @param replace If false, operation will fail if the key is already set.
- // @return True on success, false on failure.
- public native bool SetValue(const char[] key, any value, bool replace=true);
-
- // Sets an array value in a Map, either inserting a new entry or replacing an old one.
- //
- // @param key Key string.
- // @param array Array to store.
- // @param num_items Number of items in the array.
- // @param replace If false, operation will fail if the key is already set.
- // @return True on success, false on failure.
- public native bool SetArray(const char[] key, const any[] array, int num_items, bool replace=true);
-
- // Sets a string value in a Map, either inserting a new entry or replacing an old one.
- //
- // @param key Key string.
- // @param value String to store.
- // @param replace If false, operation will fail if the key is already set.
- // @return True on success, false on failure.
- public native bool SetString(const char[] key, const char[] value, bool replace=true);
-
- // Retrieves a value in a Map.
- //
- // @param key Key string.
- // @param value Variable to store value.
- // @return True on success. False if the key is not set, or the key is set
- // as an array or string (not a value).
- public native bool GetValue(const char[] key, any &value);
-
- // Retrieves an array in a Map.
- //
- // @param key Key string.
- // @param array Buffer to store array.
- // @param max_size Maximum size of array buffer.
- // @param size Optional parameter to store the number of elements written to the buffer.
- // @return True on success. False if the key is not set, or the key is set
- // as a value or string (not an array).
- public native bool GetArray(const char[] key, any[] array, int max_size, int &size=0);
-
- // Retrieves a string in a Map.
- //
- // @param key Key string.
- // @param value Buffer to store value.
- // @param max_size Maximum size of string buffer.
- // @param size Optional parameter to store the number of bytes written to the buffer.
- // @return True on success. False if the key is not set, or the key is set
- // as a value or array (not a string).
- public native bool GetString(const char[] key, char[] value, int max_size, int &size=0);
-
- // Checks whether a key is present in a Map.
- //
- // @param key Key string.
- // @return True if the key has been found, else false.
- public native bool ContainsKey(const char[] key);
-
- // Removes a key entry from a Map.
- //
- // @param key Key string.
- // @return True on success, false if the value was never set.
- public native bool Remove(const char[] key);
-
- // Clears all entries from a Map.
- public native void Clear();
-
- // Create a snapshot of the map's keys. See StringMapSnapshot.
- public native StringMapSnapshot Snapshot();
-
- // Retrieves the number of elements in a map.
- property int Size {
- public native get();
- }
-};
-
-/**
- * A StringMapSnapshot is created via StringMap.Snapshot(). It captures the
- * keys on a map so they can be read. Snapshots must be freed with delete or
- * CloseHandle().
- */
-methodmap StringMapSnapshot < Handle
-{
- // Returns the number of keys in the map snapshot.
- property int Length {
- public native get();
- }
-
- // Returns the buffer size required to store a given key. That is, it
- // returns the length of the key plus one.
- //
- // @param index Key index (starting from 0).
- // @return Buffer size required to store the key string.
- // @error Index out of range.
- public native int KeyBufferSize(int index);
-
- // Retrieves the key string of a given key in a map snapshot.
- //
- // @param index Key index (starting from 0).
- // @param buffer String buffer.
- // @param maxlength Maximum buffer length.
- // @return Number of bytes written to the buffer.
- // @error Index out of range.
- public native int GetKey(int index, char[] buffer, int maxlength);
-};
-
-/**
- * Creates a hash map. A hash map is a container that can map strings (called
- * "keys") to arbitrary values (cells, arrays, or strings). Keys in a hash map
- * are unique. That is, there is at most one entry in the map for a given key.
- *
- * Insertion, deletion, and lookup in a hash map are all considered to be fast
- * operations, amortized to O(1), or constant time.
- *
- * The word "Trie" in this API is historical. As of SourceMod 1.6, tries have
- * been internally replaced with hash tables, which have O(1) insertion time
- * instead of O(n).
- *
- * @return New Map Handle, which must be freed via CloseHandle().
- */
-native StringMap CreateTrie();
-
-/**
- * Sets a value in a hash map, either inserting a new entry or replacing an old one.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param value Value to store at this key.
- * @param replace If false, operation will fail if the key is already set.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool SetTrieValue(Handle map, const char[] key, any value, bool replace=true);
-
-/**
- * Sets an array value in a Map, either inserting a new entry or replacing an old one.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param array Array to store.
- * @param num_items Number of items in the array.
- * @param replace If false, operation will fail if the key is already set.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool SetTrieArray(Handle map, const char[] key, const any[] array, int num_items, bool replace=true);
-
-/**
- * Sets a string value in a Map, either inserting a new entry or replacing an old one.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param value String to store.
- * @param replace If false, operation will fail if the key is already set.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool SetTrieString(Handle map, const char[] key, const char[] value, bool replace=true);
-
-/**
- * Retrieves a value in a Map.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param value Variable to store value.
- * @return True on success. False if the key is not set, or the key is set
- * as an array or string (not a value).
- * @error Invalid Handle.
- */
-native bool GetTrieValue(Handle map, const char[] key, any &value);
-
-/**
- * Retrieves an array in a Map.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param array Buffer to store array.
- * @param max_size Maximum size of array buffer.
- * @param size Optional parameter to store the number of elements written to the buffer.
- * @return True on success. False if the key is not set, or the key is set
- * as a value or string (not an array).
- * @error Invalid Handle.
- */
-native bool GetTrieArray(Handle map, const char[] key, any[] array, int max_size, int &size=0);
-
-/**
- * Retrieves a string in a Map.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @param value Buffer to store value.
- * @param max_size Maximum size of string buffer.
- * @param size Optional parameter to store the number of bytes written to the buffer.
- * @return True on success. False if the key is not set, or the key is set
- * as a value or array (not a string).
- * @error Invalid Handle.
- */
-native bool GetTrieString(Handle map, const char[] key, char[] value, int max_size, int &size=0);
-
-/**
- * Removes a key entry from a Map.
- *
- * @param map Map Handle.
- * @param key Key string.
- * @return True on success, false if the value was never set.
- * @error Invalid Handle.
- */
-native bool RemoveFromTrie(Handle map, const char[] key);
-
-/**
- * Clears all entries from a Map.
- *
- * @param map Map Handle.
- * @error Invalid Handle.
- */
-native void ClearTrie(Handle map);
-
-/**
- * Retrieves the number of elements in a map.
- *
- * @param map Map Handle.
- * @return Number of elements in the trie.
- * @error Invalid Handle.
- */
-native int GetTrieSize(Handle map);
-
-/**
- * Creates a snapshot of all keys in the map. If the map is changed after this
- * call, the changes are not reflected in the snapshot. Keys are not sorted.
- *
- * @param map Map Handle.
- * @return New Map Snapshot Handle, which must be closed via CloseHandle().
- * @error Invalid Handle.
- */
-native Handle CreateTrieSnapshot(Handle map);
-
-/**
- * Returns the number of keys in a map snapshot. Note that this may be
- * different from the size of the map, since the map can change after the
- * snapshot of its keys was taken.
- *
- * @param snapshot Map snapshot.
- * @return Number of keys.
- * @error Invalid Handle.
- */
-native int TrieSnapshotLength(Handle snapshot);
-
-/**
- * Returns the buffer size required to store a given key. That is, it returns
- * the length of the key plus one.
- *
- * @param snapshot Map snapshot.
- * @param index Key index (starting from 0).
- * @return Buffer size required to store the key string.
- * @error Invalid Handle or index out of range.
- */
-native int TrieSnapshotKeyBufferSize(Handle snapshot, int index);
-
-/**
- * Retrieves the key string of a given key in a map snapshot.
- *
- * @param snapshot Map snapshot.
- * @param index Key index (starting from 0).
- * @param buffer String buffer.
- * @param maxlength Maximum buffer length.
- * @return Number of bytes written to the buffer.
- * @error Invalid Handle or index out of range.
- */
-native int GetTrieSnapshotKey(Handle snapshot, int index, char[] buffer, int maxlength);
diff --git a/addons/sourcemod/scripting/include/banning.inc b/addons/sourcemod/scripting/include/banning.inc
deleted file mode 100644
index e22f64136..000000000
--- a/addons/sourcemod/scripting/include/banning.inc
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _banning_included
- #endinput
-#endif
-#define _banning_included
-
-#define BANFLAG_AUTO (1<<0) /**< Auto-detects whether to ban by steamid or IP */
-#define BANFLAG_IP (1<<1) /**< Always ban by IP address */
-#define BANFLAG_AUTHID (1<<2) /**< Always ban by authstring (for BanIdentity) if possible */
-#define BANFLAG_NOKICK (1<<3) /**< Does not kick the client */
-
-/**
- * Called for calls to BanClient() with a non-empty command.
- *
- * @param client Client being banned.
- * @param time Time the client is being banned for (0 = permanent).
- * @param flags One if AUTHID or IP will be enabled. If AUTO is also
- * enabled, it means Core autodetected which to use.
- * @param reason Reason passed via BanClient().
- * @param kick_message Kick message passed via BanClient().
- * @param command Command string to identify the ban source.
- * @param source Source value passed via BanClient().
- * @return Plugin_Handled to block the actual server banning.
- * Kicking will still occur.
- */
-forward Action OnBanClient(int client,
- int time,
- int flags,
- const char[] reason,
- const char[] kick_message,
- const char[] command,
- any source);
-
-/**
- * Called for calls to BanIdentity() with a non-empty command.
- *
- * @param identity Identity string being banned (authstring or ip).
- * @param time Time the client is being banned for (0 = permanent).
- * @param flags Ban flags (only IP or AUTHID are valid here).
- * @param reason Reason passed via BanIdentity().
- * @param command Command string to identify the ban source.
- * @param source Source value passed via BanIdentity().
- * @return Plugin_Handled to block the actual server banning.
- */
-forward Action OnBanIdentity(const char[] identity,
- int time,
- int flags,
- const char[] reason,
- const char[] command,
- any source);
-
-/**
- * Called for calls to RemoveBan() with a non-empty command.
- *
- * @param identity Identity string being banned (authstring or ip).
- * @param flags Ban flags (only IP or AUTHID are valid here).
- * @param command Command string to identify the ban source.
- * @param source Source value passed via BanIdentity().
- * @return Plugin_Handled to block the actual unbanning.
- */
-forward Action OnRemoveBan(const char[] identity,
- int flags,
- const char[] command,
- any source);
-
-/**
- * Bans a client.
- *
- * @param client Client being banned.
- * @param time Time (in minutes) to ban (0 = permanent).
- * @param flags Flags for controlling the ban mechanism. If AUTHID
- * is set and no AUTHID is available, the ban will fail
- * unless AUTO is also flagged.
- * @param reason Reason to ban the client for.
- * @param kick_message Message to display to the user when kicking.
- * @param command Command string to identify the source. If this is left
- * empty, then the OnBanClient forward will not be called.
- * @param source A source value that could be interpreted as a player
- * index of any sort (not actually checked by Core).
- * @return True on success, false on failure.
- * @error Invalid client index or client not in game.
- */
-native bool BanClient(int client,
- int time,
- int flags,
- const char[] reason,
- const char[] kick_message="",
- const char[] command="",
- any source=0);
-
-/**
- * Bans an identity (either an IP address or auth string).
- *
- * @param identity String to ban (ip or authstring).
- * @param time Time to ban for (0 = permanent).
- * @param flags Flags (only IP and AUTHID are valid flags here).
- * @param reason Ban reason string.
- * @param command Command string to identify the source. If this is left
- * empty, then the OnBanIdentity forward will not be called.
- * @param source A source value that could be interpreted as a player
- * index of any sort (not actually checked by Core).
- * @return True on success, false on failure.
- */
-native bool BanIdentity(const char[] identity,
- int time,
- int flags,
- const char[] reason,
- const char[] command="",
- any source=0);
-
-/**
- * Removes a ban that was written to the server (either in memory or on disk).
- *
- * @param identity String to unban (ip or authstring).
- * @param flags Flags (only IP and AUTHID are valid flags here).
- * @param command Command string to identify the source. If this is left
- * empty, then OnRemoveBan will not be called.
- * @param source A source value that could be interpreted as a player
- * index of any sort (not actually checked by Core).
- * @return True on success, false on failure.
- */
-native bool RemoveBan(const char[] identity,
- int flags,
- const char[] command="",
- any source=0);
diff --git a/addons/sourcemod/scripting/include/basecomm.inc b/addons/sourcemod/scripting/include/basecomm.inc
deleted file mode 100644
index 7b7a4c7cc..000000000
--- a/addons/sourcemod/scripting/include/basecomm.inc
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2011 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _basecomm_included
- #endinput
-#endif
-#define _basecomm_included
-
-/**
- * Called when a client is muted or unmuted
- *
- * @param client Client index
- * @param muteState True if client was muted, false otherwise
- */
-forward void BaseComm_OnClientMute(int client, bool muteState);
-
- /**
- * Called when a client is gagged or ungagged
- *
- * @param client Client index
- * @param gagState True if client was gaged, false otherwise
- */
-forward void BaseComm_OnClientGag(int client, bool gagState);
-
-/**
- * Returns whether or not a client is gagged
- *
- * @param client Client index.
- * @return True if client is gagged, false otherwise.
- */
-native bool BaseComm_IsClientGagged(int client);
-
-/**
- * Returns whether or not a client is muted
- *
- * @param client Client index.
- * @return True if client is muted, false otherwise.
- */
-native bool BaseComm_IsClientMuted(int client);
-
-/**
- * Sets a client's gag state
- *
- * @param client Client index.
- * @param gagState True to gag client, false to ungag.
- * @return True if this caused a change in gag state, false otherwise.
- */
-native bool BaseComm_SetClientGag(int client, bool gagState);
-
-/**
- * Sets a client's mute state
- *
- * @param client Client index.
- * @param muteState True to mute client, false to unmute.
- * @return True if this caused a change in mute state, false otherwise.
- */
-native bool BaseComm_SetClientMute(int client, bool muteState);
-
-/* DO NOT EDIT BELOW THIS LINE */
-
-public SharedPlugin __pl_basecomm =
-{
- name = "basecomm",
- file = "basecomm.smx",
-#if defined REQUIRE_PLUGIN
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_PLUGIN
-public void __pl_basecomm_SetNTVOptional()
-{
- MarkNativeAsOptional("BaseComm_IsClientGagged");
- MarkNativeAsOptional("BaseComm_IsClientMuted");
- MarkNativeAsOptional("BaseComm_SetClientGag");
- MarkNativeAsOptional("BaseComm_SetClientMute");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/bitbuffer.inc b/addons/sourcemod/scripting/include/bitbuffer.inc
deleted file mode 100644
index 635958b59..000000000
--- a/addons/sourcemod/scripting/include/bitbuffer.inc
+++ /dev/null
@@ -1,470 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _bitbuffer_included
- #endinput
-#endif
-#define _bitbuffer_included
-
-methodmap BfWrite < Handle
-{
- // Writes a single bit to a writable bitbuffer (bf_write).
- //
- // @param bit Bit to write (true for 1, false for 0).
- public native void WriteBool(bool bit);
-
- // Writes a byte to a writable bitbuffer (bf_write).
- //
- // @param byte Byte to write (value will be written as 8bit).
- public native void WriteByte(int byte);
-
- // Writes a byte to a writable bitbuffer (bf_write).
- //
- // @param chr Character to write.
- public native void WriteChar(int chr);
-
- // Writes a 16bit integer to a writable bitbuffer (bf_write).
- //
- // @param num Integer to write (value will be written as 16bit).
- public native void WriteShort(int num);
-
- // Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).
- //
- // @param num Integer to write (value will be written as 16bit).
- public native void WriteWord(int num);
-
- // Writes a normal integer to a writable bitbuffer (bf_write).
- //
- // @param num Integer to write (value will be written as 32bit).
- public native void WriteNum(int num);
-
- // Writes a floating point number to a writable bitbuffer (bf_write).
- //
- // @param num Number to write.
- public native void WriteFloat(float num);
-
- // Writes a string to a writable bitbuffer (bf_write).
- //
- // @param string Text string to write.
- public native void WriteString(const char[] string);
-
- // Writes an entity to a writable bitbuffer (bf_write).
- //
- // @param ent Entity index to write.
- public native void WriteEntity(int ent);
-
- // Writes a bit angle to a writable bitbuffer (bf_write).
- //
- // @param angle Angle to write.
- // @param numBits Optional number of bits to use.
- public native void WriteAngle(float angle, int numBits=8);
-
- // Writes a coordinate to a writable bitbuffer (bf_write).
- //
- // @param coord Coordinate to write.
- public native void WriteCoord(float coord);
-
- // Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).
- //
- // @param coord Coordinate array to write.
- public native void WriteVecCoord(float coord[3]);
-
- // Writes a 3D normal vector to a writable bitbuffer (bf_write).
- //
- // @param vec Vector to write.
- public native void WriteVecNormal(float vec[3]);
-
- // Writes a 3D angle vector to a writable bitbuffer (bf_write).
- //
- // @param angles Angle vector to write.
- public native void WriteAngles(float angles[3]);
-};
-
-methodmap BfRead < Handle
-{
- // Reads a single bit from a readable bitbuffer (bf_read).
- //
- // @return Bit value read.
- public native bool ReadBool();
-
- // Reads a byte from a readable bitbuffer (bf_read).
- //
- // @return Byte value read (read as 8bit).
- public native int ReadByte();
-
- // Reads a character from a readable bitbuffer (bf_read).
- //
- // @return Character value read.
- public native int ReadChar();
-
- // Reads a 16bit integer from a readable bitbuffer (bf_read).
- //
- // @param bf bf_read handle to read from.
- // @return Integer value read (read as 16bit).
- public native int ReadShort();
-
- // Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).
- //
- // @param bf bf_read handle to read from.
- // @return Integer value read (read as 16bit).
- public native int ReadWord();
-
- // Reads a normal integer to a readable bitbuffer (bf_read).
- //
- // @return Integer value read (read as 32bit).
- public native int ReadNum();
-
- // Reads a floating point number from a readable bitbuffer (bf_read).
- //
- // @return Floating point value read.
- public native float ReadFloat();
-
- // Reads a string from a readable bitbuffer (bf_read).
- //
- // @param buffer Destination string buffer.
- // @param maxlength Maximum length of output string buffer.
- // @param line If true the buffer will be copied until it reaches a '\n' or a null terminator.
- // @return Number of bytes written to the buffer. If the bitbuffer stream overflowed,
- // that is, had no terminator before the end of the stream, then a negative
- // number will be returned equal to the number of characters written to the
- // buffer minus 1. The buffer will be null terminated regardless of the
- // return value.
- public native int ReadString(char[] buffer, int maxlength, bool line=false);
-
- // Reads an entity from a readable bitbuffer (bf_read).
- //
- // @return Entity index read.
- public native int ReadEntity();
-
- // Reads a bit angle from a readable bitbuffer (bf_read).
- //
- // @param numBits Optional number of bits to use.
- // @return Angle read.
- public native float ReadAngle(int numBits=8);
-
- // Reads a coordinate from a readable bitbuffer (bf_read).
- //
- // @return Coordinate read.
- public native float ReadCoord();
-
- // Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).
- //
- // @param coord Destination coordinate array.
- public native void ReadVecCoord(float coord[3]);
-
- // Reads a 3D normal vector from a readable bitbuffer (bf_read).
- //
- // @param vec Destination vector array.
- public native void ReadVecNormal(float vec[3]);
-
- // Reads a 3D angle vector from a readable bitbuffer (bf_read).
- //
- // @param angles Destination angle vector.
- public native void ReadAngles(float angles[3]);
-
- // Returns the number of bytes left in a readable bitbuffer (bf_read).
- property int BytesLeft {
- public native get();
- }
-};
-
-/**
- * Writes a single bit to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param bit Bit to write (true for 1, false for 0).
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteBool(Handle bf, bool bit);
-
-/**
- * Writes a byte to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param byte Byte to write (value will be written as 8bit).
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteByte(Handle bf, int byte);
-
-/**
- * Writes a byte to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param chr Character to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteChar(Handle bf, int chr);
-
-/**
- * Writes a 16bit integer to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param num Integer to write (value will be written as 16bit).
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteShort(Handle bf, int num);
-
-/**
- * Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param num Integer to write (value will be written as 16bit).
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteWord(Handle bf, int num);
-
-/**
- * Writes a normal integer to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param num Integer to write (value will be written as 32bit).
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteNum(Handle bf, int num);
-
-/**
- * Writes a floating point number to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param num Number to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteFloat(Handle bf, float num);
-
-/**
- * Writes a string to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param string Text string to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteString(Handle bf, const char[] string);
-
-/**
- * Writes an entity to a writable bitbuffer (bf_write).
- * @note This is a wrapper around BfWriteShort().
- *
- * @param bf bf_write handle to write to.
- * @param ent Entity index to write.
- * @error Invalid or incorrect Handle, or invalid entity.
- */
-native void BfWriteEntity(Handle bf, int ent);
-
-/**
- * Writes a bit angle to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param angle Angle to write.
- * @param numBits Optional number of bits to use.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteAngle(Handle bf, float angle, int numBits=8);
-
-/**
- * Writes a coordinate to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param coord Coordinate to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteCoord(Handle bf, float coord);
-
-/**
- * Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param coord Coordinate array to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteVecCoord(Handle bf, float coord[3]);
-
-/**
- * Writes a 3D normal vector to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param vec Vector to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteVecNormal(Handle bf, float vec[3]);
-
-/**
- * Writes a 3D angle vector to a writable bitbuffer (bf_write).
- *
- * @param bf bf_write handle to write to.
- * @param angles Angle vector to write.
- * @error Invalid or incorrect Handle.
- */
-native void BfWriteAngles(Handle bf, float angles[3]);
-
-/**
- * Reads a single bit from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Bit value read.
- * @error Invalid or incorrect Handle.
- */
-native bool BfReadBool(Handle bf);
-
-/**
- * Reads a byte from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Byte value read (read as 8bit).
- * @error Invalid or incorrect Handle.
- */
-native int BfReadByte(Handle bf);
-
-/**
- * Reads a character from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Character value read.
- * @error Invalid or incorrect Handle.
- */
-native int BfReadChar(Handle bf);
-
-/**
- * Reads a 16bit integer from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Integer value read (read as 16bit).
- * @error Invalid or incorrect Handle.
- */
-native int BfReadShort(Handle bf);
-
-/**
- * Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Integer value read (read as 16bit).
- * @error Invalid or incorrect Handle.
- */
-native int BfReadWord(Handle bf);
-
-/**
- * Reads a normal integer to a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Integer value read (read as 32bit).
- * @error Invalid or incorrect Handle.
- */
-native int BfReadNum(Handle bf);
-
-/**
- * Reads a floating point number from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Floating point value read.
- * @error Invalid or incorrect Handle.
- */
-native float BfReadFloat(Handle bf);
-
-/**
- * Reads a string from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param line If true the buffer will be copied until it reaches a '\n' or a null terminator.
- * @return Number of bytes written to the buffer. If the bitbuffer stream overflowed,
- * that is, had no terminator before the end of the stream, then a negative
- * number will be returned equal to the number of characters written to the
- * buffer minus 1. The buffer will be null terminated regardless of the
- * return value.
- * @error Invalid or incorrect Handle.
- */
-native int BfReadString(Handle bf, char[] buffer, int maxlength, bool line=false);
-
-/**
- * Reads an entity from a readable bitbuffer (bf_read).
- * @note This is a wrapper around BfReadShort().
- *
- * @param bf bf_read handle to read from.
- * @return Entity index read.
- * @error Invalid or incorrect Handle.
- */
-native int BfReadEntity(Handle bf);
-
-/**
- * Reads a bit angle from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @param numBits Optional number of bits to use.
- * @return Angle read.
- * @error Invalid or incorrect Handle.
- */
-native float BfReadAngle(Handle bf, int numBits=8);
-
-/**
- * Reads a coordinate from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Coordinate read.
- * @error Invalid or incorrect Handle.
- */
-native float BfReadCoord(Handle bf);
-
-/**
- * Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @param coord Destination coordinate array.
- * @error Invalid or incorrect Handle.
- */
-native void BfReadVecCoord(Handle bf, float coord[3]);
-
-/**
- * Reads a 3D normal vector from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @param vec Destination vector array.
- * @error Invalid or incorrect Handle.
- */
-native void BfReadVecNormal(Handle bf, float vec[3]);
-
-/**
- * Reads a 3D angle vector from a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @param angles Destination angle vector.
- * @error Invalid or incorrect Handle.
- */
-native void BfReadAngles(Handle bf, float angles[3]);
-
-/**
- * Returns the number of bytes left in a readable bitbuffer (bf_read).
- *
- * @param bf bf_read handle to read from.
- * @return Number of bytes left unread.
- * @error Invalid or incorrect Handle.
- */
-native int BfGetNumBytesLeft(Handle bf);
diff --git a/addons/sourcemod/scripting/include/clientprefs.inc b/addons/sourcemod/scripting/include/clientprefs.inc
deleted file mode 100644
index 2255263c1..000000000
--- a/addons/sourcemod/scripting/include/clientprefs.inc
+++ /dev/null
@@ -1,368 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2011 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _clientprefs_included
- #endinput
-#endif
-#define _clientprefs_included
-
-/**
- * Cookie access types for client viewing
- */
-enum CookieAccess
-{
- CookieAccess_Public, /**< Visible and Changeable by users */
- CookieAccess_Protected, /**< Read only to users */
- CookieAccess_Private /**< Completely hidden cookie */
-};
-
-/**
- * Cookie Prefab menu types
- */
-enum CookieMenu
-{
- CookieMenu_YesNo, /**< Yes/No menu with "yes"/"no" results saved into the cookie */
- CookieMenu_YesNo_Int, /**< Yes/No menu with 1/0 saved into the cookie */
- CookieMenu_OnOff, /**< On/Off menu with "on"/"off" results saved into the cookie */
- CookieMenu_OnOff_Int /**< On/Off menu with 1/0 saved into the cookie */
-};
-
-enum CookieMenuAction
-{
- /**
- * An option is being drawn for a menu.
- *
- * INPUT : Client index and data if available.
- * OUTPUT: Buffer for rendering, maxlength of buffer.
- */
- CookieMenuAction_DisplayOption = 0,
-
- /**
- * A menu option has been selected.
- *
- * INPUT : Client index and any data if available.
- */
- CookieMenuAction_SelectOption = 1
-};
-
-#define COOKIE_MAX_NAME_LENGTH 30 /**< Maximum Cookie name length. */
-#define COOKIE_MAX_DESCRIPTION_LENGTH 255 /**< Maximum Cookie description length. */
-
-/**
- * Cookie Menu Callback prototype
- *
- * @param client Client index.
- * @param action CookieMenuAction being performed.
- * @param info Info data passed.
- * @param buffer Outbut buffer.
- * @param maxlen Max length of the output buffer.
- */
-typedef CookieMenuHandler = function void (
- int client,
- CookieMenuAction action,
- any info,
- char[] buffer,
- int maxlen
-);
-
-/**
- * Note:
- *
- * A successful return value/result on any client prefs native only guarantees that the local cache has been updated.
- * Database connection problems can still prevent the data from being permanently saved. Connection problems will be logged as
- * errors by the clientprefs extension.
- */
-
-methodmap Cookie < Handle {
- // Creates a new Client preference cookie.
- //
- // Handles returned can be closed via CloseHandle() when
- // no longer needed.
- //
- // @param name Name of the new preference cookie.
- // @param description Optional description of the preference cookie.
- // @param access What CookieAccess level to assign to this cookie.
- // @return A handle to the newly created cookie. If the cookie already
- // exists, a handle to it will still be returned.
- // @error Cookie name is blank.
- public native Cookie(const char[] name, const char[] description, CookieAccess access);
-
- // Searches for a Client preference cookie.
- //
- // Handles returned by Cookie.Find can be closed via CloseHandle() when
- // no longer needed.
- //
- // @param name Name of cookie to find.
- // @return A handle to the cookie if it is found, null otherwise.
-
- public static native Cookie Find(const char[] name);
-
- // Set the value of a Client preference cookie.
- //
- // @param client Client index.
- // @param value String value to set.
- // @error Invalid cookie handle or invalid client index.
- public native void Set(int client, const char[] value);
-
- // Retrieve the value of a Client preference cookie.
- //
- // @param client Client index.
- // @param buffer Copyback buffer for value.
- // @param maxlen Maximum length of the buffer.
- // @error Invalid cookie handle or invalid client index.
- public native void Get(int client, char[] buffer, int maxlen);
-
- // Sets the value of a Client preference cookie based on an authID string.
- //
- // @param authID String Auth/STEAM ID of player to set.
- // @param value String value to set.
- // @error Invalid cookie handle.
- public native void SetByAuthId(const char[] authID, const char[] value);
-
- // Add a new prefab item to the client cookie settings menu.
- //
- // Note: This handles everything automatically and does not require a callback
- //
- // @param type A CookieMenu prefab menu type.
- // @param display Text to show on the menu.
- // @param handler Optional handler callback for translations and output on selection
- // @param info Info data to pass to the callback.
- // @error Invalid cookie handle.
- public native void SetPrefabMenu(CookieMenu type, const char[] display, CookieMenuHandler handler=INVALID_FUNCTION, any info=0);
-
- // Returns the last updated timestamp for a client cookie
- //
- // @param client Client index.
- // @return Last updated timestamp.
- public native int GetClientTime(int client);
-
- // Returns the access level of a cookie
- //
- // @return CookieAccess access level.
- // @error Invalid cookie handle.
- property CookieAccess AccessLevel {
- public native get();
- }
-};
-
-/**
- * Creates a new Client preference cookie.
- *
- * Handles returned by RegClientCookie can be closed via CloseHandle() when
- * no longer needed.
- *
- * @param name Name of the new preference cookie.
- * @param description Optional description of the preference cookie.
- * @param access What CookieAccess level to assign to this cookie.
- * @return A handle to the newly created cookie. If the cookie already
- * exists, a handle to it will still be returned.
- * @error Cookie name is blank.
- */
-native Cookie RegClientCookie(const char[] name, const char[] description, CookieAccess access);
-
-/**
- * Searches for a Client preference cookie.
- *
- * Handles returned by FindClientCookie can be closed via CloseHandle() when
- * no longer needed.
- *
- * @param name Name of cookie to find.
- * @return A handle to the cookie if it is found, null otherwise.
-
- */
-native Cookie FindClientCookie(const char[] name);
-
-/**
- * Set the value of a Client preference cookie.
- *
- * @param client Client index.
- * @param cookie Client preference cookie handle.
- * @param value String value to set.
- * @error Invalid cookie handle or invalid client index.
- */
-native void SetClientCookie(int client, Handle cookie, const char[] value);
-
-/**
- * Retrieve the value of a Client preference cookie.
- *
- * @param client Client index.
- * @param cookie Client preference cookie handle.
- * @param buffer Copyback buffer for value.
- * @param maxlen Maximum length of the buffer.
- * @error Invalid cookie handle or invalid client index.
- */
-native void GetClientCookie(int client, Handle cookie, char[] buffer, int maxlen);
-
-/**
- * Sets the value of a Client preference cookie based on an authID string.
- *
- * @param authID String Auth/STEAM ID of player to set.
- * @param cookie Client preference cookie handle.
- * @param value String value to set.
- * @error Invalid cookie handle.
- */
-native void SetAuthIdCookie(const char[] authID, Handle cookie, const char[] value);
-
-/**
- * Checks if a clients cookies have been loaded from the database.
- *
- * @param client Client index.
- * @return True if loaded, false otherwise.
- * @error Invalid client index.
- */
-native bool AreClientCookiesCached(int client);
-
-/**
- * Called once a client's saved cookies have been loaded from the database.
- *
- * @param client Client index.
- */
-forward void OnClientCookiesCached(int client);
-
-/**
- * Add a new prefab item to the client cookie settings menu.
- *
- * Note: This handles everything automatically and does not require a callback
- *
- * @param cookie Client preference cookie handle.
- * @param type A CookieMenu prefab menu type.
- * @param display Text to show on the menu.
- * @param handler Optional handler callback for translations and output on selection
- * @param info Info data to pass to the callback.
- * @error Invalid cookie handle.
- */
-native void SetCookiePrefabMenu(Handle cookie, CookieMenu type, const char[] display, CookieMenuHandler handler=INVALID_FUNCTION, any info=0);
-
-/**
- * Adds a new item to the client cookie settings menu.
- *
- * Note: This only adds the top level menu item. You need to handle any submenus from the callback.
- *
- * @param handler A MenuHandler callback function.
- * @param info Data to pass to the callback.
- * @param display Text to show on the menu.
- * @error Invalid cookie handle.
- */
-native void SetCookieMenuItem(CookieMenuHandler handler, any info, const char[] display);
-
-/**
- * Displays the settings menu to a client.
- *
- * @param client Client index.
- */
-native void ShowCookieMenu(int client);
-
-/**
- * Gets a cookie iterator. Must be freed with CloseHandle().
- *
- * @return A new cookie iterator.
- */
-native Handle GetCookieIterator();
-
-/**
- * Reads a cookie iterator, then advances to the next cookie if any.
- *
- * @param iter Cookie iterator Handle.
- * @param name Name buffer.
- * @param nameLen Name buffer size.
- * @param access Access level of the cookie.
- * @param desc Cookie description buffer.
- * @param descLen Cookie description buffer size.
- * @return True on success, false if there are no more commands.
- */
-native bool ReadCookieIterator(Handle iter,
- char[] name,
- int nameLen,
- CookieAccess &access,
- char[] desc="",
- int descLen=0);
-
-/**
- * Returns the access level of a cookie
- *
- * @param cookie Client preference cookie handle.
- * @return CookieAccess access level.
- * @error Invalid cookie handle.
- */
-native CookieAccess GetCookieAccess(Handle cookie);
-
-/**
- * Returns the last updated timestamp for a client cookie
- *
- * @param client Client index.
- * @param cookie Cookie handle.
- * @return Last updated timestamp.
- */
-native int GetClientCookieTime(int client, Handle cookie);
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_cprefs =
-{
- name = "Client Preferences",
- file = "clientprefs.ext",
- autoload = 1,
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public void __ext_cprefs_SetNTVOptional()
-{
- MarkNativeAsOptional("RegClientCookie");
- MarkNativeAsOptional("FindClientCookie");
- MarkNativeAsOptional("SetClientCookie");
- MarkNativeAsOptional("GetClientCookie");
- MarkNativeAsOptional("SetAuthIdCookie");
- MarkNativeAsOptional("AreClientCookiesCached");
- MarkNativeAsOptional("SetCookiePrefabMenu");
- MarkNativeAsOptional("SetCookieMenuItem");
- MarkNativeAsOptional("ShowCookieMenu");
- MarkNativeAsOptional("GetCookieIterator");
- MarkNativeAsOptional("ReadCookieIterator");
- MarkNativeAsOptional("GetCookieAccess");
- MarkNativeAsOptional("GetClientCookieTime");
-
- MarkNativeAsOptional("Cookie.Cookie");
- MarkNativeAsOptional("Cookie.Find");
- MarkNativeAsOptional("Cookie.Set");
- MarkNativeAsOptional("Cookie.Get");
- MarkNativeAsOptional("Cookie.SetByAuthId");
- MarkNativeAsOptional("Cookie.SetPrefabMenu");
- MarkNativeAsOptional("Cookie.GetClientTime");
- MarkNativeAsOptional("Cookie.AccessLevel.get");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/clients.inc b/addons/sourcemod/scripting/include/clients.inc
deleted file mode 100644
index 9b0919c77..000000000
--- a/addons/sourcemod/scripting/include/clients.inc
+++ /dev/null
@@ -1,830 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _clients_included
- #endinput
-#endif
-#define _clients_included
-
-/**
- * Network flow directions.
- */
-enum NetFlow
-{
- NetFlow_Outgoing = 0, /**< Outgoing traffic */
- NetFlow_Incoming, /**< Incoming traffic */
- NetFlow_Both /**< Both values added together */
-};
-
-/**
- * Auth string types.
- *
- * Note that for the Steam2 and Steam3 types, the following ids are
- * also valid values:
- * "STEAM_ID_PENDING" - Authentication is pending.
- * "STEAM_ID_LAN" - Authentication is disabled because of being on a LAN server.
- * "BOT" - The client is a bot.
- */
-enum AuthIdType
-{
- AuthId_Engine = 0, /**< The game-specific auth string as returned from the engine */
-
- // The following are only available on games that support Steam authentication.
- AuthId_Steam2, /**< Steam2 rendered format, ex "STEAM_1:1:4153990" */
- AuthId_Steam3, /**< Steam3 rendered format, ex "[U:1:8307981]" */
- AuthId_SteamID64 /**< A SteamID64 (uint64) as a String, ex "76561197968573709" */
-};
-
-/**
- * MAXPLAYERS is not the same as MaxClients.
- * MAXPLAYERS is a hardcoded value as an upper limit. MaxClients changes based on the server.
- */
-
-#define MAXPLAYERS 65 /**< Maximum number of players SourceMod supports */
-#define MAX_NAME_LENGTH 128 /**< Maximum buffer required to store a client name */
-
-public const int MaxClients; /**< Maximum number of players the server supports (dynamic) */
-
-/**
- * Called on client connection. If you return true, the client will be allowed in the server.
- * If you return false (or return nothing), the client will be rejected. If the client is
- * rejected by this forward or any other, OnClientDisconnect will not be called.
- *
- * Note: Do not write to rejectmsg if you plan on returning true. If multiple plugins write
- * to the string buffer, it is not defined which plugin's string will be shown to the client,
- * but it is guaranteed one of them will.
- *
- * @param client Client index.
- * @param rejectmsg Buffer to store the rejection message when the connection is refused.
- * @param maxlen Maximum number of characters for rejection buffer.
- * @return True to validate client's connection, false to refuse it.
- */
-forward bool OnClientConnect(int client, char[] rejectmsg, int maxlen);
-
-/**
- * Called once a client successfully connects. This callback is paired with OnClientDisconnect.
- *
- * @param client Client index.
- */
-forward void OnClientConnected(int client);
-
-/**
- * Called when a client is entering the game.
- *
- * Whether a client has a steamid is undefined until OnClientAuthorized
- * is called, which may occur either before or after OnClientPutInServer.
- * Similarly, use OnClientPostAdminCheck() if you need to verify whether
- * connecting players are admins.
- *
- * GetClientCount() will include clients as they are passed through this
- * function, as clients are already in game at this point.
- *
- * @param client Client index.
- */
-forward void OnClientPutInServer(int client);
-
-/**
- * Called when a client is disconnecting from the server.
- *
- * @param client Client index.
- */
-forward void OnClientDisconnect(int client);
-
-/**
- * Called when a client is disconnected from the server.
- *
- * @param client Client index.
- */
-forward void OnClientDisconnect_Post(int client);
-
-/**
- * Called when a client is sending a command.
- *
- * As of SourceMod 1.3, the client is guaranteed to be in-game.
- * Use command listeners (console.inc) for more advanced hooks.
- *
- * @param client Client index.
- * @param args Number of arguments.
- * @return Plugin_Handled blocks the command from being sent,
- * and Plugin_Continue resumes normal functionality.
- */
-forward Action OnClientCommand(int client, int args);
-
-/**
- * Called when a client is sending a KeyValues command.
- *
- * @param client Client index.
- * @param kv Editable KeyValues data to be sent as the command.
- * (This handle should not be stored and will be closed
- * after this forward completes.)
- * @return Plugin_Handled blocks the command from being sent,
- * and Plugin_Continue resumes normal functionality.
- */
-forward Action OnClientCommandKeyValues(int client, KeyValues kv);
-
-/**
- * Called after a client has sent a KeyValues command.
- *
- * @param client Client index.
- * @param kv KeyValues data sent as the command.
- * (This handle should not be stored and will be closed
- * after this forward completes.)
- */
-forward void OnClientCommandKeyValues_Post(int client, KeyValues kv);
-
-/**
- * Called whenever the client's settings are changed.
- *
- * @param client Client index.
- */
-forward void OnClientSettingsChanged(int client);
-
-/**
- * Called when a client receives an auth ID. The state of a client's
- * authorization as an admin is not guaranteed here. Use
- * OnClientPostAdminCheck() if you need a client's admin status.
- *
- * This is called by bots, but the ID will be "BOT".
- *
- * @param client Client index.
- * @param auth Client Steam2 id, if available, else engine auth id.
- */
-forward void OnClientAuthorized(int client, const char[] auth);
-
-/**
- * Called once a client is authorized and fully in-game, but
- * before admin checks are done. This can be used to override
- * the default admin checks for a client. You should only use
- * this for overriding; use OnClientPostAdminCheck() instead
- * if you want notification.
- *
- * Note: If handled/blocked, PostAdminCheck must be signalled
- * manually via NotifyPostAdminCheck().
- *
- * This callback is guaranteed to occur on all clients, and always
- * after each OnClientPutInServer() call.
- *
- * @param client Client index.
- * @return Plugin_Handled to block admin checks.
- */
-forward Action OnClientPreAdminCheck(int client);
-
-/**
- * Called directly before OnClientPostAdminCheck() as a method to
- * alter administrative permissions before plugins perform final
- * post-connect operations.
- *
- * In general, do not use this function unless you are specifically
- * attempting to change access permissions. Use OnClientPostAdminCheck()
- * instead if you simply want to perform post-connect authorization
- * routines.
- *
- * See OnClientPostAdminCheck() for more information.
- *
- * @param client Client index.
- */
-forward void OnClientPostAdminFilter(int client);
-
-/**
- * Called once a client is authorized and fully in-game, and
- * after all post-connection authorizations have been performed.
- *
- * This callback is guaranteed to occur on all clients, and always
- * after each OnClientPutInServer() call.
- *
- * @param client Client index.
- */
-forward void OnClientPostAdminCheck(int client);
-
-/**
- * Called when the language was received from the player.
- *
- * @param client Client index.
- * @param language Language number.
- */
-forward void OnClientLanguageChanged(int client, int language);
-
-/**
- * This function is deprecated. Use the MaxClients variable instead.
- *
- * Returns the maximum number of clients allowed on the server. This may
- * return 0 if called before OnMapStart(), and thus should not be called
- * in OnPluginStart().
- *
- * You should not globally cache the value to GetMaxClients() because it can change from
- * SourceTV or TF2's arena mode. Use the "MaxClients" dynamic variable documented at the
- * top of this file.
- *
- * @return Maximum number of clients allowed.
- * @deprecated Use MaxClients variable instead.
- */
-#pragma deprecated Use MaxClients variable instead.
-native int GetMaxClients();
-
-/**
- * Returns the maximum number of human players allowed on the server. This is
- * a game-specific function used on newer games to limit the number of humans
- * that can join a game and can be lower than MaxClients. It is the number often
- * reflected in the server browser or when viewing the output of the status command.
- * On unsupported games or modes without overrides, it will return the same value
- * as MaxClients.
- *
- * You should not globally cache the value to GetMaxHumanPlayers() because it can change across
- * game modes. You may still cache it locally.
- *
- * @return Maximum number of humans allowed.
- */
-native int GetMaxHumanPlayers();
-
-/**
- * Returns the client count put in the server.
- *
- * @param inGameOnly If false connecting players are also counted.
- * @return Client count in the server.
- */
-native int GetClientCount(bool inGameOnly=true);
-
-/**
- * Returns the client's name.
- *
- * @param client Player index.
- * @param name Buffer to store the client's name.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @return True on success, false otherwise.
- * @error If the client is not connected an error will be thrown.
- */
-native bool GetClientName(int client, char[] name, int maxlen);
-
-/**
- * Retrieves a client's IP address.
- *
- * @param client Player index.
- * @param ip Buffer to store the client's ip address.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @param remport Remove client's port from the ip string (true by default).
- * @return True on success, false otherwise.
- * @error If the client is not connected or the index is invalid.
- */
-native bool GetClientIP(int client, char[] ip, int maxlen, bool remport=true);
-
-/**
- * Retrieves a client's authentication string (SteamID).
- *
- * @param client Player index.
- * @param auth Buffer to store the client's auth string.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @param validate Check backend validation status.
- * DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
- * You WILL KNOW if you need to use this, MOST WILL NOT.
- * @return True on success, false otherwise.
- * @error If the client is not connected or the index is invalid.
- * @deprecated Use GetClientAuthId
- */
-#pragma deprecated Use GetClientAuthId
-native bool GetClientAuthString(int client, char[] auth, int maxlen, bool validate=true);
-
-/**
- * Retrieves a client's authentication string (SteamID).
- *
- * @param client Player index.
- * @param authType Auth id type and format to use.
- * @param auth Buffer to store the client's auth id.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @param validate Check backend validation status.
- * DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
- * You WILL KNOW if you need to use this, MOST WILL NOT.
- * @return True on success, false otherwise.
- * @error If the client is not connected or the index is invalid.
- */
-native bool GetClientAuthId(int client, AuthIdType authType, char[] auth, int maxlen, bool validate=true);
-
-/**
- * Returns the client's Steam account ID, a number uniquely identifying a given Steam account.
- * This number is the basis for the various display SteamID forms, see the AuthIdType enum for examples.
- *
- * @param client Client Index.
- * @param validate Check backend validation status.
- * DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
- * You WILL KNOW if you need to use this, MOST WILL NOT.
- * @return Steam account ID or 0 if not available.
- * @error If the client is not connected or the index is invalid.
- */
-native int GetSteamAccountID(int client, bool validate=true);
-
-/**
- * Retrieves a client's user id, which is an index incremented for every client
- * that joins the server.
- *
- * @param client Player index.
- * @return User id of the client.
- * @error If the client is not connected or the index is invalid.
- */
-native int GetClientUserId(int client);
-
-/**
- * Returns if a certain player is connected.
- *
- * @param client Player index.
- * @return True if player is connected to the server, false otherwise.
- * @error Invalid client index.
- */
-native bool IsClientConnected(int client);
-
-/**
- * Returns if a certain player has entered the game.
- *
- * @param client Player index (index does not have to be connected).
- * @return True if player has entered the game, false otherwise.
- * @error Invalid client index.
- */
-native bool IsClientInGame(int client);
-
-/**
- * Returns if a client is in the "kick queue" (i.e. the client will be kicked
- * shortly and thus they should not appear as valid).
- *
- * @param client Player index (must be connected).
- * @return True if in the kick queue, false otherwise.
- * @error Invalid client index.
- */
-native bool IsClientInKickQueue(int client);
-
-/**
- * Backwards compatibility stock - use IsClientInGame
- * @deprecated Renamed to IsClientInGame
- */
-#pragma deprecated Use IsClientInGame() instead
-stock bool IsPlayerInGame(int client)
-{
- return IsClientInGame(client);
-}
-
-/**
- * Returns if a certain player has been authenticated.
- *
- * @param client Player index.
- * @return True if player has been authenticated, false otherwise.
- * @error Invalid client index.
- */
-native bool IsClientAuthorized(int client);
-
-/**
- * Returns if a certain player is a fake client.
- *
- * @param client Player index.
- * @return True if player is a fake client, false otherwise.
- * @error Invalid client index, or client not connected.
- */
-native bool IsFakeClient(int client);
-
-/**
- * Returns if a certain player is the SourceTV bot.
- *
- * @param client Player index.
- * @return True if player is the SourceTV bot, false otherwise.
- * @error Invalid client index, or client not connected.
- */
-native bool IsClientSourceTV(int client);
-
-/**
- * Returns if a certain player is the Replay bot.
- *
- * @param client Player index.
- * @return True if player is the Replay bot, false otherwise.
- * @error Invalid client index, or client not connected.
- */
-native bool IsClientReplay(int client);
-
-/**
- * Returns if a certain player is an observer/spectator.
- *
- * @param client Player index.
- * @return True if player is an observer, false otherwise.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native bool IsClientObserver(int client);
-
-/**
- * Returns if the client is alive or dead.
- *
- * Note: This function was originally in SDKTools and was moved to core.
- *
- * @param client Player's index.
- * @return True if the client is alive, false otherwise.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native bool IsPlayerAlive(int client);
-
-/**
- * Retrieves values from client replicated keys.
- *
- * @param client Player's index.
- * @param key Key string.
- * @param value Buffer to store value.
- * @param maxlen Maximum length of valve (UTF-8 safe).
- * @return True on success, false otherwise.
- * @error Invalid client index, or client not connected.
- */
-native bool GetClientInfo(int client, const char[] key, char[] value, int maxlen);
-
-/**
- * Retrieves a client's team index.
- *
- * @param client Player's index.
- * @return Team index the client is on (mod specific).
- * @error Invalid client index, client not in game, or no mod support.
- */
-native int GetClientTeam(int client);
-
-/**
- * Sets a client's AdminId.
- *
- * @param client Player's index.
- * @param id AdminId to set. INVALID_ADMIN_ID removes admin permissions.
- * @param temp True if the id should be freed on disconnect.
- * @error Invalid client index, client not connected, or bogus AdminId.
- */
-native void SetUserAdmin(int client, AdminId id, bool temp=false);
-
-/**
- * Retrieves a client's AdminId.
- *
- * @param client Player's index.
- * @return AdminId of the client, or INVALID_ADMIN_ID if none.
- * @error Invalid client index, or client not connected.
- */
-native AdminId GetUserAdmin(int client);
-
-/**
- * Sets access flags on a client. If the client is not an admin,
- * a temporary, anonymous AdminId is given.
- *
- * @param client Player's index.
- * @param ... Flags to set on the client.
- * @error Invalid client index, or client not connected.
- */
-native void AddUserFlags(int client, AdminFlag ...);
-
-/**
- * Removes flags from a client. If the client is not an admin,
- * this has no effect.
- *
- * @param client Player's index.
- * @param ... Flags to remove from the client.
- * @error Invalid client index, or client not connected.
- */
-native void RemoveUserFlags(int client, AdminFlag ...);
-
-/**
- * Sets access flags on a client using bits instead of flags. If the
- * client is not an admin, and flags not 0, a temporary, anonymous AdminId is given.
- *
- * @param client Player's index.
- * @param flags Bitstring of flags to set on client.
- * @error Invalid client index, or client not connected.
- */
-native void SetUserFlagBits(int client, int flags);
-
-/**
- * Returns client access flags. If the client is not an admin,
- * the result is always 0.
- *
- * @param client Player's index.
- * @return Flags
- * @error Invalid client index, or client not connected.
- */
-native int GetUserFlagBits(int client);
-
-/**
- * Returns whether a user can target another user.
- * This is a helper function for CanAdminTarget.
- *
- * @param client Player's index.
- * @param target Target player's index.
- * @return True if target is targettable by the player, false otherwise.
- * @error Invalid or unconnected player indexers.
- */
-native bool CanUserTarget(int client, int target);
-
-/**
- * Runs through the Core-defined admin authorization checks on a player.
- * Has no effect if the player is already an admin.
- *
- * Note: This function is based on the internal cache only.
- *
- * @param client Client index.
- * @return True if access was changed, false if it did not.
- * @error Invalid client index or client not in-game AND authorized.
- */
-native bool RunAdminCacheChecks(int client);
-
-/**
- * Signals that a player has completed post-connection admin checks.
- * Has no effect if the player has already had this event signalled.
- *
- * Note: This must be sent even if no admin id was assigned.
- *
- * @param client Client index.
- * @error Invalid client index or client not in-game AND authorized.
- */
-native void NotifyPostAdminCheck(int client);
-
-/**
- * Creates a fake client.
- *
- * @param name Name to use.
- * @return Client index on success, 0 otherwise.
- * @error No map is active.
- */
-native int CreateFakeClient(const char[] name);
-
-/**
- * Sets a convar value on a fake client.
- *
- * @param client Client index.
- * @param cvar ConVar name.
- * @param value ConVar value.
- * @error Invalid client index, client not connected,
- * or client not a fake client.
- */
-native void SetFakeClientConVar(int client, const char[] cvar, const char[] value);
-
-/**
- * Returns the client's health.
- *
- * @param client Player's index.
- * @return Health value.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native int GetClientHealth(int client);
-
-/**
- * Returns the client's model name.
- *
- * @param client Player's index.
- * @param model Buffer to store the client's model name.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientModel(int client, char[] model, int maxlen);
-
-/**
- * Returns the client's weapon name.
- *
- * @param client Player's index.
- * @param weapon Buffer to store the client's weapon name.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientWeapon(int client, char[] weapon, int maxlen);
-
-/**
- * Returns the client's max size vector.
- *
- * @param client Player's index.
- * @param vec Destination vector to store the client's max size.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientMaxs(int client, float vec[3]);
-
-/**
- * Returns the client's min size vector.
- *
- * @param client Player's index.
- * @param vec Destination vector to store the client's min size.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientMins(int client, float vec[3]);
-
-/**
- * Returns the client's position angle.
- *
- * @param client Player's index.
- * @param ang Destination vector to store the client's position angle.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientAbsAngles(int client, float ang[3]);
-
-/**
- * Returns the client's origin vector.
- *
- * @param client Player's index.
- * @param vec Destination vector to store the client's origin vector.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientAbsOrigin(int client, float vec[3]);
-
-/**
- * Returns the client's armor.
- *
- * @param client Player's index.
- * @return Armor value.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native int GetClientArmor(int client);
-
-/**
- * Returns the client's death count.
- *
- * @param client Player's index.
- * @return Death count.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native int GetClientDeaths(int client);
-
-/**
- * Returns the client's frag count.
- *
- * @param client Player's index.
- * @return Frag count.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native int GetClientFrags(int client);
-
-/**
- * Returns the client's send data rate in bytes/sec.
- *
- * @param client Player's index.
- * @return Data rate.
- * @error Invalid client index, client not connected, or fake client.
- */
-native int GetClientDataRate(int client);
-
-/**
- * Returns if a client is timing out
- *
- * @param client Player's index.
- * @return True if client is timing out, false otherwise.
- * @error Invalid client index, client not connected, or fake client.
- */
-native bool IsClientTimingOut(int client);
-
-/**
- * Returns the client's connection time in seconds.
- *
- * @param client Player's index.
- * @return Connection time.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientTime(int client);
-
-/**
- * Returns the client's current latency (RTT), more accurate than GetAvgLatency but jittering.
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Latency, or -1 if network info is not available.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientLatency(int client, NetFlow flow);
-
-/**
- * Returns the client's average packet latency in seconds.
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Latency, or -1 if network info is not available.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientAvgLatency(int client, NetFlow flow);
-
-/**
- * Returns the client's average packet loss, values go from 0 to 1 (for percentages).
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Average packet loss, or -1 if network info is not available.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientAvgLoss(int client, NetFlow flow);
-
-/**
- * Returns the client's average packet choke, values go from 0 to 1 (for percentages).
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Average packet loss, or -1 if network info is not available.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientAvgChoke(int client, NetFlow flow);
-
-/**
- * Returns the client's data flow in bytes/sec.
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Data flow.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientAvgData(int client, NetFlow flow);
-
-/**
- * Returns the client's average packet frequency in packets/sec.
- *
- * @param client Player's index.
- * @param flow Traffic flowing direction.
- * @return Packet frequency.
- * @error Invalid client index, client not connected, or fake client.
- */
-native float GetClientAvgPackets(int client, NetFlow flow);
-
-/**
- * Translates an userid index to the real player index.
- *
- * @param userid Userid value.
- * @return Client value.
- * @error Returns 0 if invalid userid.
- */
-native int GetClientOfUserId(int userid);
-
-/**
- * Disconnects a client from the server as soon as the next frame starts.
- *
- * Note: Originally, KickClient() was immediate. The delay was introduced
- * because despite warnings, plugins were using it in ways that would crash.
- * The new safe version can break cases that rely on immediate disconnects,
- * but ensures that plugins do not accidentally cause crashes.
- *
- * If you need immediate disconnects, use KickClientEx().
- *
- * Note: IsClientInKickQueue() will return true before the kick occurs.
- *
- * @param client Client index.
- * @param format Optional formatting rules for disconnect reason.
- * Note that a period is automatically appended to the string by the engine.
- * @param ... Variable number of format parameters.
- * @error Invalid client index, or client not connected.
- */
-native void KickClient(int client, const char[] format="", any ...);
-
-/**
- * Immediately disconnects a client from the server.
- *
- * Kicking clients from certain events or callbacks may cause crashes. If in
- * doubt, create a short (0.1 second) timer to kick the client in the next
- * available frame.
- *
- * @param client Client index.
- * @param format Optional formatting rules for disconnect reason.
- * Note that a period is automatically appended to the string by the engine.
- * @param ... Variable number of format parameters.
- * @error Invalid client index, or client not connected.
- */
-native void KickClientEx(int client, const char[] format="", any ...);
-
-/**
- * Changes a client's team through the mod's generic team changing function.
- * On CS:S, this will kill the player.
- *
- * @param client Client index.
- * @param team Mod-specific team index.
- * @error Invalid client index, client not in game, or lack of
- * mod support.
- */
-native void ChangeClientTeam(int client, int team);
-
-/**
- * Returns the clients unique serial identifier.
- *
- * @param client Client index.
- * @return Serial number.
- * @error Invalid client index, or client not connected.
- */
-native int GetClientSerial(int client);
-
-/**
- * Returns the client index by its serial number.
- *
- * @param serial Serial number.
- * @return Client index, or 0 for invalid serial.
- */
-native int GetClientFromSerial(int serial);
diff --git a/addons/sourcemod/scripting/include/commandfilters.inc b/addons/sourcemod/scripting/include/commandfilters.inc
deleted file mode 100644
index de8ebb19f..000000000
--- a/addons/sourcemod/scripting/include/commandfilters.inc
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _commandfilters_included
- #endinput
-#endif
-#define _commandfilters_included
-
-#define MAX_TARGET_LENGTH 64
-
-#define COMMAND_FILTER_ALIVE (1<<0) /**< Only allow alive players */
-#define COMMAND_FILTER_DEAD (1<<1) /**< Only filter dead players */
-#define COMMAND_FILTER_CONNECTED (1<<2) /**< Allow players not fully in-game */
-#define COMMAND_FILTER_NO_IMMUNITY (1<<3) /**< Ignore immunity rules */
-#define COMMAND_FILTER_NO_MULTI (1<<4) /**< Do not allow multiple target patterns */
-#define COMMAND_FILTER_NO_BOTS (1<<5) /**< Do not allow bots to be targetted */
-
-#define COMMAND_TARGET_NONE 0 /**< No target was found */
-#define COMMAND_TARGET_NOT_ALIVE -1 /**< Single client is not alive */
-#define COMMAND_TARGET_NOT_DEAD -2 /**< Single client is not dead */
-#define COMMAND_TARGET_NOT_IN_GAME -3 /**< Single client is not in game */
-#define COMMAND_TARGET_IMMUNE -4 /**< Single client is immune */
-#define COMMAND_TARGET_EMPTY_FILTER -5 /**< A multi-filter (such as @all) had no targets */
-#define COMMAND_TARGET_NOT_HUMAN -6 /**< Target was not human */
-#define COMMAND_TARGET_AMBIGUOUS -7 /**< Partial name had too many targets */
-
-/**
- * Processes a generic command target string, and resolves it to a list
- * of clients or one client, based on filtering rules and a pattern.
- *
- * Note that you should use LoadTranslations("common.phrases") in OnPluginStart(),
- * as that file is guaranteed to contain all of the translatable phrases that
- * ProcessTargetString() will return.
- *
- * @param pattern Pattern to find clients against.
- * @param admin Admin performing the action, or 0 if the server.
- * @param targets Array to hold targets.
- * @param max_targets Maximum size of the targets array.
- * @param filter_flags Filter flags.
- * @param target_name Buffer to store the target name.
- * @param tn_maxlength Maximum length of the target name buffer.
- * @param tn_is_ml OUTPUT: Will be true if the target name buffer is an ML phrase,
- * false if it is a normal string.
- * @return If a multi-target pattern was used, the number of clients found
- * is returned. If a single-target pattern was used, 1 is returned
- * if one valid client is found. Otherwise, a COMMAND_TARGET reason
- * for failure is returned.
- */
-native int ProcessTargetString(const char[] pattern,
- int admin,
- int[] targets,
- int max_targets,
- int filter_flags,
- char[] target_name,
- int tn_maxlength,
- bool &tn_is_ml);
-
-/**
- * Replies to a client with a given message describing a targetting
- * failure reason.
- *
- * Note: The translation phrases are found in common.phrases.txt.
- *
- * @param client Client index, or 0 for server.
- * @param reason COMMAND_TARGET reason.
- */
-stock void ReplyToTargetError(int client, int reason)
-{
- switch (reason)
- {
- case COMMAND_TARGET_NONE:
- {
- ReplyToCommand(client, "[SM] %t", "No matching client");
- }
- case COMMAND_TARGET_NOT_ALIVE:
- {
- ReplyToCommand(client, "[SM] %t", "Target must be alive");
- }
- case COMMAND_TARGET_NOT_DEAD:
- {
- ReplyToCommand(client, "[SM] %t", "Target must be dead");
- }
- case COMMAND_TARGET_NOT_IN_GAME:
- {
- ReplyToCommand(client, "[SM] %t", "Target is not in game");
- }
- case COMMAND_TARGET_IMMUNE:
- {
- ReplyToCommand(client, "[SM] %t", "Unable to target");
- }
- case COMMAND_TARGET_EMPTY_FILTER:
- {
- ReplyToCommand(client, "[SM] %t", "No matching clients");
- }
- case COMMAND_TARGET_NOT_HUMAN:
- {
- ReplyToCommand(client, "[SM] %t", "Cannot target bot");
- }
- case COMMAND_TARGET_AMBIGUOUS:
- {
- ReplyToCommand(client, "[SM] %t", "More than one client matched");
- }
- }
-}
-
-#define FEATURECAP_MULTITARGETFILTER_CLIENTPARAM "SourceMod MultiTargetFilter ClientParam"
-
-/**
- * Adds clients to a multi-target filter.
- *
- * @param pattern Pattern name.
- * @param clients Array to fill with unique, valid client indexes.
- * @param client Client that triggered this filter.
- * @return True if pattern was recognized, false otherwise.
- *
- * @note To see if the client param is available, use FeatureType_Capability and FEATURECAP_MULTITARGETFILTER_CLIENTPARAM.
- */
-typeset MultiTargetFilter {
- function bool (const char[] pattern, Handle clients);
- function bool (const char[] pattern, ArrayList clients);
- function bool (const char[] pattern, Handle clients, int client);
- function bool (const char[] pattern, ArrayList clients, int client);
-}
-
-/**
- * Adds a multi-target filter function for ProcessTargetString().
- *
- * @param pattern Pattern to match (case sensitive).
- * @param filter Filter function.
- * @param phrase Descriptive phrase to display on successful match.
- * @param phraseIsML True if phrase is multi-lingual, false otherwise.
- */
-native void AddMultiTargetFilter(const char[] pattern, MultiTargetFilter filter,
- const char[] phrase, bool phraseIsML);
-
-/**
- * Removes a multi-target filter function from ProcessTargetString().
- *
- * @param pattern Pattern to match (case sensitive).
- * @param filter Filter function.
- */
-native void RemoveMultiTargetFilter(const char[] pattern, MultiTargetFilter filter);
diff --git a/addons/sourcemod/scripting/include/commandline.inc b/addons/sourcemod/scripting/include/commandline.inc
deleted file mode 100644
index 33e4a1346..000000000
--- a/addons/sourcemod/scripting/include/commandline.inc
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _commandline_included_
- #endinput
-#endif
-#define _commandline_included_
-
-/**
- * Gets the full command line the server was launched with.
- *
- * @param commandLine Buffer to store the command line in.
- * @param maxlen Maximum length of the command line buffer.
- * @return True if the command line is valid; otherwise, false.
- * @error No command line available, or no mod support.
- */
-native bool GetCommandLine(char[] commandLine, int maxlen);
-
-/**
- * Gets the value of a command line parameter the server was launched with.
- *
- * @param param The command line parameter to get the value of.
- * @param value Buffer to store the parameter value in.
- * @param maxlen Maximum length of the value buffer.
- * @param defValue The default value to return if the parameter wasn't specified.
- * @error No command line available, or no mod support.
- */
-native void GetCommandLineParam(const char[] param, char[] value, int maxlen, const char[] defValue="");
-
-/**
- * Gets the value of a command line parameter the server was launched with.
- *
- * @param param The command line parameter to get the value of.
- * @param defValue The default value to return if the parameter wasn't specified.
- * @return The integer value of the command line parameter value.
- * @error No command line available, or no mod support.
- */
-native int GetCommandLineParamInt(const char[] param, int defValue=0);
-
-/**
- * Gets the value of a command line parameter the server was launched with.
- *
- * @param param The command line parameter to get the value of.
- * @param defValue The default value to return if the parameter wasn't specified.
- * @return The floating point value of the command line parameter value.
- * @error No command line available, or no mod support.
- */
-native float GetCommandLineParamFloat(const char[] param, float defValue=0.0);
-
-/**
- * Determines if a specific command line parameter is present.
- *
- * @param param The command line parameter to test.
- * @return True if the command line parameter is specified; otherwise, false.
- * @error No command line available, or no mod support.
- */
-native bool FindCommandLineParam(const char[] param);
diff --git a/addons/sourcemod/scripting/include/console.inc b/addons/sourcemod/scripting/include/console.inc
deleted file mode 100644
index 9e1455760..000000000
--- a/addons/sourcemod/scripting/include/console.inc
+++ /dev/null
@@ -1,745 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _console_included
- #endinput
-#endif
-#define _console_included
-
-#define INVALID_FCVAR_FLAGS (-1)
-
-/**
- * Console variable query helper values.
- */
-enum QueryCookie
-{
- QUERYCOOKIE_FAILED = 0
-};
-
-/**
- * Reply sources for commands.
- */
-enum ReplySource
-{
- SM_REPLY_TO_CONSOLE = 0,
- SM_REPLY_TO_CHAT = 1
-};
-
-/**
- * @section Flags for console commands and console variables. The descriptions
- * for each constant come directly from the Source SDK.
- */
-
-#pragma deprecated No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
-#define FCVAR_PLUGIN 0 // Actual value is same as FCVAR_SS_ADDED in Left 4 Dead and later.
-#pragma deprecated Did you mean FCVAR_DEVELOPMENTONLY? (No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.)
-#define FCVAR_LAUNCHER (1<<1) // Same value as FCVAR_DEVELOPMENTONLY, which is what most usages of this were intending to use.
-
-
-#define FCVAR_NONE 0 // The default, no flags at all
-#define FCVAR_UNREGISTERED (1<<0) // If this is set, don't add to linked list, etc.
-#define FCVAR_DEVELOPMENTONLY (1<<1) // Hidden in released products. Flag is removed automatically if ALLOW_DEVELOPMENT_CVARS is defined. (OB+)
-#define FCVAR_GAMEDLL (1<<2) // Defined by the game DLL.
-#define FCVAR_CLIENTDLL (1<<3) // Defined by the client DLL.
-#define FCVAR_MATERIAL_SYSTEM (1<<4) // Defined by the material system. (EP1-only)
-#define FCVAR_HIDDEN (1<<4) // Hidden. Doesn't appear in find or autocomplete. Like DEVELOPMENTONLY, but can't be compiled out.1 (OB+)
-#define FCVAR_PROTECTED (1<<5) // It's a server cvar, but we don't send the data since it's a password, etc.
- // Sends 1 if it's not bland/zero, 0 otherwise as value.
-#define FCVAR_SPONLY (1<<6) // This cvar cannot be changed by clients connected to a multiplayer server.
-#define FCVAR_ARCHIVE (1<<7) // Set to cause it to be saved to vars.rc
-#define FCVAR_NOTIFY (1<<8) // Notifies players when changed.
-#define FCVAR_USERINFO (1<<9) // Changes the client's info string.
-#define FCVAR_PRINTABLEONLY (1<<10) // This cvar's string cannot contain unprintable characters (e.g., used for player name, etc.)
-#define FCVAR_UNLOGGED (1<<11) // If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log
-#define FCVAR_NEVER_AS_STRING (1<<12) // Never try to print that cvar.
-#define FCVAR_REPLICATED (1<<13) // Server setting enforced on clients.
-#define FCVAR_CHEAT (1<<14) // Only useable in singleplayer / debug / multiplayer & sv_cheats
-#define FCVAR_SS (1<<15) // causes varnameN where N 2 through max splitscreen slots for mod to be autogenerated (L4D+)
-#define FCVAR_DEMO (1<<16) // Record this cvar when starting a demo file.
-#define FCVAR_DONTRECORD (1<<17) // Don't record these command in demo files.
-#define FCVAR_SS_ADDED (1<<18) // This is one of the "added" FCVAR_SS variables for the splitscreen players (L4D+)
-#define FCVAR_RELEASE (1<<19) // Cvars tagged with this are the only cvars available to customers (L4D+)
-#define FCVAR_RELOAD_MATERIALS (1<<20) // If this cvar changes, it forces a material reload (OB+)
-#define FCVAR_RELOAD_TEXTURES (1<<21) // If this cvar changes, if forces a texture reload (OB+)
-#define FCVAR_NOT_CONNECTED (1<<22) // Cvar cannot be changed by a client that is connected to a server.
-#define FCVAR_MATERIAL_SYSTEM_THREAD (1<<23) // Indicates this cvar is read from the material system thread (OB+)
-#define FCVAR_ARCHIVE_XBOX (1<<24) // Cvar written to config.cfg on the Xbox.
-#define FCVAR_ARCHIVE_GAMECONSOLE (1<<24) // Cvar written to config.cfg on the Xbox.
-#define FCVAR_ACCESSIBLE_FROM_THREADS (1<<25) // used as a debugging tool necessary to check material system thread convars (OB+)
-#define FCVAR_SERVER_CAN_EXECUTE (1<<28) // the server is allowed to execute this command on clients via
- // ClientCommand/NET_StringCmd/CBaseClientState::ProcessStringCmd. (OB+)
-#define FCVAR_SERVER_CANNOT_QUERY (1<<29) // If this is set, then the server is not allowed to query this cvar's value (via
- // IServerPluginHelpers::StartQueryCvarValue).
-#define FCVAR_CLIENTCMD_CAN_EXECUTE (1<<30) // IVEngineClient::ClientCmd is allowed to execute this command.
- // Note: IVEngineClient::ClientCmd_Unrestricted can run any client command.
-
-/**
- * @endsection
- */
-
-/**
- * Executes a server command as if it were on the server console (or RCON)
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-native void ServerCommand(const char[] format, any ...);
-
-/**
- * Executes a server command as if it were on the server console (or RCON)
- * and stores the printed text into buffer.
- *
- * Warning: This calls ServerExecute internally and may have issues if
- * certain commands are in the buffer, only use when you really need
- * the response.
- * Also, on L4D2 this will not print the command output to the server console.
- *
- * @param buffer String to store command result into.
- * @param maxlen Length of buffer.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-native void ServerCommandEx(char[] buffer, int maxlen, const char[] format, any ...);
-
-/**
- * Inserts a server command at the beginning of the server command buffer.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-native void InsertServerCommand(const char[] format, any ...);
-
-/**
- * Executes every command in the server's command buffer, rather than once per frame.
- */
-native void ServerExecute();
-
-/**
- * Executes a client command. Note that this will not work on clients unless
- * they have cl_restrict_server_commands set to 0.
- *
- * @param client Index of the client.
- * @param fmt Format of the client command.
- * @param ... Format parameters
- * @error Invalid client index, or client not connected.
- */
-native void ClientCommand(int client, const char[] fmt, any ...);
-
-/**
- * Executes a client command on the server without being networked.
- *
- * FakeClientCommand() overwrites the command tokenization buffer. This can
- * cause undesired effects because future calls to GetCmdArg* will return
- * data from the FakeClientCommand(), not the parent command. If you are in
- * a hook where this matters (for example, a "say" hook), you should use
- * FakeClientCommandEx() instead.
- *
- * @param client Index of the client.
- * @param fmt Format of the client command.
- * @param ... Format parameters
- * @error Invalid client index, or client not connected.
- */
-native void FakeClientCommand(int client, const char[] fmt, any ...);
-
-/**
- * Executes a client command on the server without being networked. The
- * execution of the client command is delayed by one frame to prevent any
- * re-entrancy issues that might surface with FakeClientCommand().
- *
- * @param client Index of the client.
- * @param fmt Format of the client command.
- * @param ... Format parameters
- * @error Invalid client index, or client not connected.
- */
-native void FakeClientCommandEx(int client, const char[] fmt, any ...);
-
-/**
- * Executes a KeyValues client command on the server without being networked.
- *
- * @param client Index of the client.
- * @param kv KeyValues data to be sent.
- * @error Invalid client index, client not connected,
- * or unsupported on current game.
- */
-native void FakeClientCommandKeyValues(int client, KeyValues kv);
-
-/**
- * Sends a message to the server console.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-native void PrintToServer(const char[] format, any ...);
-
-/**
- * Sends a message to a client's console.
- *
- * @param client Client index.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error If the client is not connected an error will be thrown.
- */
-native void PrintToConsole(int client, const char[] format, any ...);
-
-
-/**
- * Sends a message to every client's console.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-stock void PrintToConsoleAll(const char[] format, any ...)
-{
- char buffer[254];
-
- for (int i = 1; i <= MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- SetGlobalTransTarget(i);
- VFormat(buffer, sizeof(buffer), format, 2);
- PrintToConsole(i, "%s", buffer);
- }
- }
-}
-
-/**
- * Replies to a message in a command.
- *
- * A client index of 0 will use PrintToServer().
- * If the command was from the console, PrintToConsole() is used.
- * If the command was from chat, PrintToChat() is used.
- *
- * @param client Client index, or 0 for server.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error If the client is not connected or invalid.
- */
-native void ReplyToCommand(int client, const char[] format, any ...);
-
-/**
- * Returns the current reply source of a command.
- *
- * @return ReplySource value.
- */
-native ReplySource GetCmdReplySource();
-
-/**
- * Sets the current reply source of a command.
- *
- * Only use this if you know what you are doing. You should save the old value
- * and restore it once you are done.
- *
- * @param source New ReplySource value.
- * @return Old ReplySource value.
- */
-native ReplySource SetCmdReplySource(ReplySource source);
-
-/**
- * Returns whether the current say hook is a chat trigger.
- *
- * This function is only meaningful inside say or say_team hooks.
- *
- * @return True if a chat trigger, false otherwise.
- */
-native bool IsChatTrigger();
-
-/**
- * Displays usage of an admin command to users depending on the
- * setting of the sm_show_activity cvar. All users receive a message
- * in their chat text, except for the originating client, who receives
- * the message based on the current ReplySource.
- *
- * @param client Client index doing the action, or 0 for server.
- * @param tag Tag to prepend to the message.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error
- */
-native void ShowActivity2(int client, const char[] tag, const char[] format, any ...);
-
-/**
- * Displays usage of an admin command to users depending on the
- * setting of the sm_show_activity cvar.
- *
- * This version does not display a message to the originating client
- * if used from chat triggers or menus. If manual replies are used
- * for these cases, then this function will suffice. Otherwise,
- * ShowActivity2() is slightly more useful.
- *
- * @param client Client index doing the action, or 0 for server.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error
- */
-native void ShowActivity(int client, const char[] format, any ...);
-
-/**
- * Same as ShowActivity(), except the tag parameter is used instead of
- * "[SM] " (note that you must supply any spacing).
- *
- * @param client Client index doing the action, or 0 for server.
- * @param tag Tag to display with.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error
- */
-native void ShowActivityEx(int client, const char[] tag, const char[] format, any ...);
-
-/**
- * Given an originating client and a target client, returns the string
- * that describes the originating client according to the sm_show_activity cvar.
- *
- * For example, "ADMIN", "PLAYER", or a player's name could be placed in this buffer.
- *
- * @param client Originating client; may be 0 for server console.
- * @param target Targeted client.
- * @param namebuf Name buffer.
- * @param maxlength Maximum size of the name buffer.
- * @return True if activity should be shown. False otherwise. In either
- * case, the name buffer is filled. The return value can be used
- * to broadcast a "safe" name to all players regardless of the
- * sm_show_activity filters.
- * @error Invalid client index or client not connected.
- */
-native bool FormatActivitySource(int client, int target, const char[] namebuf, int maxlength);
-
-/**
- * Called when a server-only command is invoked.
- *
- * @param args Number of arguments that were in the argument string.
- * @return An Action value. Not handling the command
- * means that Source will report it as "not found."
- */
-typedef SrvCmd = function Action (int args);
-
-/**
- * Creates a server-only console command, or hooks an already existing one.
- *
- * Server commands are case sensitive.
- *
- * @param cmd Name of the command to hook or create.
- * @param callback A function to use as a callback for when the command is invoked.
- * @param description Optional description to use for command creation.
- * @param flags Optional flags to use for command creation.
- * @error Command name is the same as an existing convar.
- */
-native void RegServerCmd(const char[] cmd, SrvCmd callback, const char[] description="", int flags=0);
-
-/**
- * Called when a generic console command is invoked.
- *
- * @param client Index of the client, or 0 from the server.
- * @param args Number of arguments that were in the argument string.
- * @return An Action value. Not handling the command
- * means that Source will report it as "not found."
- */
-typedef ConCmd = function Action (int client, int args);
-
-/**
- * Creates a console command, or hooks an already existing one.
- *
- * Console commands are case sensitive. However, if the command already exists in the game,
- * a client may enter the command in any case. SourceMod corrects for this automatically,
- * and you should only hook the "real" version of the command.
- *
- * @param cmd Name of the command to hook or create.
- * @param callback A function to use as a callback for when the command is invoked.
- * @param description Optional description to use for command creation.
- * @param flags Optional flags to use for command creation.
- * @error Command name is the same as an existing convar.
- */
-native void RegConsoleCmd(const char[] cmd, ConCmd callback, const char[] description="", int flags=0);
-
-/**
- * Creates a console command as an administrative command. If the command does not exist,
- * it is created. When this command is invoked, the access rights of the player are
- * automatically checked before allowing it to continue.
- *
- * Admin commands are case sensitive from both the client and server.
- *
- * @param cmd String containing command to register.
- * @param callback A function to use as a callback for when the command is invoked.
- * @param adminflags Administrative flags (bitstring) to use for permissions.
- * @param description Optional description to use for help.
- * @param group String containing the command group to use. If empty,
- * the plugin's filename will be used instead.
- * @param flags Optional console flags.
- * @error Command name is the same as an existing convar.
- */
-native void RegAdminCmd(const char[] cmd,
- ConCmd callback,
- int adminflags,
- const char[] description="",
- const char[] group="",
- int flags=0);
-
-/**
- * Returns the number of arguments from the current console or server command.
- * @note Unlike the HL2 engine call, this does not include the command itself.
- *
- * @return Number of arguments to the current command.
- */
-native int GetCmdArgs();
-
-/**
- * Retrieves a command argument given its index, from the current console or
- * server command.
- * @note Argument indexes start at 1; 0 retrieves the command name.
- *
- * @param argnum Argument number to retrieve.
- * @param buffer Buffer to use for storing the string.
- * @param maxlength Maximum length of the buffer.
- * @return Length of string written to buffer.
- */
-native int GetCmdArg(int argnum, char[] buffer, int maxlength);
-
-/**
- * Retrieves a numeric command argument given its index, from the current
- * console or server command. Will return 0 if the argument can not be
- * parsed as a number. Use GetCmdArgIntEx to handle that explicitly.
- *
- * @param argnum Argument number to retrieve.
- * @return Value of the command argument.
- */
-stock int GetCmdArgInt(int argnum) {
- char str[12];
- GetCmdArg(argnum, str, sizeof(str));
-
- return StringToInt(str);
-}
-
-/**
- * Retrieves a numeric command argument given its index, from the current
- * console or server command. Returns false if the argument can not be
- * completely parsed as an integer.
- *
- * @param argnum Argument number to retrieve.
- * @param value Populated with the value of the command argument.
- * @return Whether the argument was entirely a numeric value.
- */
-stock bool GetCmdArgIntEx(int argnum, int &value) {
- char str[12];
- int len = GetCmdArg(argnum, str, sizeof(str));
-
- return StringToIntEx(str, value) == len && len > 0;
-}
-
-/**
- * Retrieves the entire command argument string in one lump from the current
- * console or server command.
- *
- * @param buffer Buffer to use for storing the string.
- * @param maxlength Maximum length of the buffer.
- * @return Length of string written to buffer.
- */
-native int GetCmdArgString(char[] buffer, int maxlength);
-
-methodmap CommandIterator < Handle {
- // Creates a new CommandIterator. Must be freed with delete or
- // CloseHandle().
- //
- // The CommandIterator can be used to iterate commands created by
- // SourceMod plugins and allows inspection of properties associated
- // with the command.
- //
- // @return New CommandIterator Handle.
- public native CommandIterator();
-
- // Determines if there is a next command. If one is found, the
- // iterator is advanced to it.
- //
- // @return true if found and iterator is advanced.
- public native bool Next();
-
- // Retrieves the command's description.
- //
- // @param buffer Buffer to copy to.
- // @param maxlen Maximum size of the buffer.
- // @error Invalid iterator position.
- public native void GetDescription(char[] buffer, int maxlen);
-
- // Retrieves the command's name.
- //
- // @param buffer Buffer to copy to.
- // @param maxlen Maximum size of the buffer.
- // @error Invalid iterator position.
- public native void GetName(char[] buffer, int maxlen);
-
- // Retrieves the plugin handle of the command's creator
- //
- // @error Invalid iterator position.
- property Handle Plugin {
- public native get();
- }
-
- // Retrieves the command's default flags
- //
- // @error Invalid iterator position.
- property int Flags {
- public native get();
- }
-}
-
-/**
- * Gets a command iterator. Must be freed with CloseHandle().
- *
- * @return A new command iterator.
- */
-native Handle GetCommandIterator();
-
-/**
- * Reads a command iterator, then advances to the next command if any.
- * Only SourceMod specific commands are returned.
- *
- * @param iter Command iterator Handle.
- * @param name Name buffer.
- * @param nameLen Name buffer size.
- * @param eflags Effective default flags of a command.
- * @param desc Command description buffer.
- * @param descLen Command description buffer size.
- * @return True on success, false if there are no more commands.
- */
-native bool ReadCommandIterator(Handle iter,
- char[] name,
- int nameLen,
- int &eflags=0,
- char[] desc="",
- int descLen=0);
-
-/**
- * Returns whether a client has access to a given command string. The string
- * can be any override string, as overrides can be independent of
- * commands. This feature essentially allows you to create custom
- * flags using the override system.
- *
- * @param client Client index.
- * @param command Command name. If the command is not found, the default
- * flags are used.
- * @param flags Flag string to use as a default, if the command or override
- * is not found.
- * @param override_only If true, SourceMod will not attempt to find a matching
- * command, and it will only use the default flags specified.
- * Otherwise, SourceMod will ignore the default flags if
- * there is a matching admin command.
- * @return True if the client has access, false otherwise.
- */
-native bool CheckCommandAccess(int client,
- const char[] command,
- int flags,
- bool override_only=false);
-
-/**
- * Returns whether an admin has access to a given command string. The string
- * can be any override string, as overrides can be independent of
- * commands. This feature essentially allows you to create custom flags
- * using the override system.
- *
- * @param id AdminId of the admin.
- * @param command Command name. If the command is not found, the default
- * flags are used.
- * @param flags Flag string to use as a default, if the command or override
- * is not found.
- * @param override_only If true, SourceMod will not attempt to find a matching
- * command, and it will only use the default flags specified.
- * Otherwise, SourceMod will ignore the default flags if
- * there is a matching admin command.
- * @return True if the admin has access, false otherwise.
- */
-native bool CheckAccess(AdminId id,
- const char[] command,
- int flags,
- bool override_only=false);
-
-/**
- * Returns the bitstring of flags of a command.
- *
- * @param name Name of the command.
- * @return A bitstring containing the FCVAR_* flags that are enabled
- * or INVALID_FCVAR_FLAGS if command not found.
- */
-native int GetCommandFlags(const char[] name);
-
-/**
- * Sets the bitstring of flags of a command.
- *
- * @param name Name of the command.
- * @param flags A bitstring containing the FCVAR_* flags to enable.
- * @return True on success, otherwise false.
- */
-native bool SetCommandFlags(const char[] name, int flags);
-
-/**
- * Starts a ConCommandBase search, traversing the list of ConVars and
- * ConCommands. If a Handle is returned, the next entry must be read
- * via FindNextConCommand(). The order of the list is undefined.
- *
- * @param buffer Buffer to store entry name.
- * @param max_size Maximum size of the buffer.
- * @param isCommand Variable to store whether the entry is a command.
- * If it is not a command, it is a ConVar.
- * @param flags Variable to store entry flags.
- * @param description Buffer to store the description, empty if no description present.
- * @param descrmax_size Maximum size of the description buffer.
- * @return On success, a ConCmdIter Handle is returned, which
- can be read via FindNextConCommand(), and must be
- closed via CloseHandle(). Additionally, the output
- parameters will be filled with information of the
- first ConCommandBase entry.
- On failure, INVALID_HANDLE is returned, and the
- contents of outputs is undefined.
- */
-native Handle FindFirstConCommand(char[] buffer, int max_size, bool &isCommand, int &flags=0, char[] description="", int descrmax_size=0);
-
-/**
- * Reads the next entry in a ConCommandBase iterator.
- *
- * @param search ConCmdIter Handle to search.
- * @param buffer Buffer to store entry name.
- * @param max_size Maximum size of the buffer.
- * @param isCommand Variable to store whether the entry is a command.
- If it is not a command, it is a ConVar.
- * @param flags Variable to store entry flags.
- * @param description Buffer to store the description, empty if no description present.
- * @param descrmax_size Maximum size of the description buffer.
- * @return On success, the outputs are filled, the iterator is
- advanced to the next entry, and true is returned.
- If no more entries exist, false is returned, and the
- contents of outputs is undefined.
- */
-native bool FindNextConCommand(Handle search, char[] buffer, int max_size, bool &isCommand, int &flags=0, char[] description="", int descrmax_size=0);
-
-/**
- * Adds an informational string to the server's public "tags".
- * This string should be a short, unique identifier.
- *
- * Note: Tags are automatically removed when a plugin unloads.
- * Note: Currently, this function does nothing because of bugs in the Valve master.
- *
- * @param tag Tag string to append.
- */
-native void AddServerTag(const char[] tag);
-
-/**
- * Removes a tag previously added by the calling plugin.
- *
- * @param tag Tag string to remove.
- */
-native void RemoveServerTag(const char[] tag);
-
-/**
- * Callback for command listeners. This is invoked whenever any command
- * reaches the server, from the server console itself or a player.
- *
- * Clients may be in the process of connecting when they are executing commands
- * IsClientConnected(client) is not guaranteed to return true. Other functions
- * such as GetClientIP() may not work at this point either.
- *
- * Returning Plugin_Handled or Plugin_Stop will prevent the original,
- * baseline code from running.
- *
- * -- TEXT BELOW IS IMPLEMENTATION, AND NOT GUARANTEED --
- * Even if returning Plugin_Handled or Plugin_Stop, some callbacks will still
- * trigger. These are:
- * * C++ command dispatch hooks from Metamod:Source plugins
- * * Reg*Cmd() hooks that did not create new commands.
- *
- * @param client Client, or 0 for server.
- * Client may not be connected or in game.
- * @param command Command name, lower case. To get name as typed, use
- * GetCmdArg() and specify argument 0.
- * @param argc Argument count.
- * @return Action to take (see extended notes above).
- */
-typedef CommandListener = function Action (int client, const char[] command, int argc);
-
-#define FEATURECAP_COMMANDLISTENER "command listener"
-
-/**
- * Adds a callback that will fire when a command is sent to the server.
- *
- * Registering commands is designed to create a new command as part of the UI,
- * whereas this is a lightweight hook on a command string, existing or not.
- * Using Reg*Cmd to intercept is in poor practice, as it physically creates a
- * new command and can slow down dispatch in general.
- *
- * To see if this feature is available, use FeatureType_Capability and
- * FEATURECAP_COMMANDLISTENER.
- *
- * @param callback Callback.
- * @param command Command, or if not specified, a global listener.
- * The command is case insensitive.
- * @return True if this feature is available on the current game,
- * false otherwise.
- */
-native bool AddCommandListener(CommandListener callback, const char[] command="");
-
-/**
- * Removes a previously added command listener, in reverse order of being added.
- *
- * @param callback Callback.
- * @param command Command, or if not specified, a global listener.
- * The command is case insensitive.
- * @error Callback has no active listeners.
- */
-native void RemoveCommandListener(CommandListener callback, const char[] command="");
-
-/**
- * Returns true if the supplied command exists.
- *
- * @param command Command to find.
- * @return True if command is found, false otherwise.
- */
-stock bool CommandExists(const char[] command)
-{
- return (GetCommandFlags(command) != INVALID_FCVAR_FLAGS);
-}
-/**
- * Global listener for the chat commands.
- *
- * @param client Client index.
- * @param command Command name.
- * @param sArgs Chat argument string.
- *
- * @return An Action value. Returning Plugin_Handled bypasses the game function call.
- * Returning Plugin_Stop bypasses the post hook as well as the game function.
- */
-forward Action OnClientSayCommand(int client, const char[] command, const char[] sArgs);
-
-/**
- * Global post listener for the chat commands.
- *
- * @param client Client index.
- * @param command Command name.
- * @param sArgs Chat argument string.
- */
-forward void OnClientSayCommand_Post(int client, const char[] command, const char[] sArgs);
diff --git a/addons/sourcemod/scripting/include/convars.inc b/addons/sourcemod/scripting/include/convars.inc
deleted file mode 100644
index 907ed4d92..000000000
--- a/addons/sourcemod/scripting/include/convars.inc
+++ /dev/null
@@ -1,514 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _convars_included
- #endinput
-#endif
-#define _convars_included
-
-/**
- * Console variable bound values used with Get/SetConVarBounds()
- */
-enum ConVarBounds
-{
- ConVarBound_Upper = 0,
- ConVarBound_Lower
-};
-
-/**
- * Console variable query result values.
- */
-enum ConVarQueryResult
-{
- ConVarQuery_Cancelled = -1, //< Client disconnected during query */
- ConVarQuery_Okay = 0, //< Retrieval of client convar value was successful. */
- ConVarQuery_NotFound, //< Client convar was not found. */
- ConVarQuery_NotValid, //< A console command with the same name was found, but there is no convar. */
- ConVarQuery_Protected //< Client convar was found, but it is protected. The server cannot retrieve its value. */
-};
-
-/**
- * Called when a console variable's value is changed.
- *
- * @param convar Handle to the convar that was changed.
- * @param oldValue String containing the value of the convar before it was changed.
- * @param newValue String containing the new value of the convar.
- */
-typedef ConVarChanged = function void (ConVar convar, const char[] oldValue, const char[] newValue);
-
-/**
- * Creates a new console variable.
- *
- * @param name Name of new convar.
- * @param defaultValue String containing the default value of new convar.
- * @param description Optional description of the convar.
- * @param flags Optional bitstring of flags determining how the convar should be handled. See FCVAR_* constants for more details.
- * @param hasMin Optional boolean that determines if the convar has a minimum value.
- * @param min Minimum floating point value that the convar can have if hasMin is true.
- * @param hasMax Optional boolean that determines if the convar has a maximum value.
- * @param max Maximum floating point value that the convar can have if hasMax is true.
- * @return A handle to the newly created convar. If the convar already exists, a handle to it will still be returned.
- * @error Convar name is blank or is the same as an existing console command.
- */
-native ConVar CreateConVar(
- const char[] name,
- const char[] defaultValue,
- const char[] description="",
- int flags=0,
- bool hasMin=false, float min=0.0,
- bool hasMax=false, float max=0.0);
-
-/**
- * Searches for a console variable.
- *
- * @param name Name of convar to find.
- * @return A ConVar object if found; null otherwise.
- */
-native ConVar FindConVar(const char[] name);
-
-// A ConVar is a configurable, named setting in the srcds console.
-methodmap ConVar < Handle
-{
- // Retrieves or sets a boolean value for the convar.
- property bool BoolValue {
- public native get();
- public native set(bool b);
- }
-
- // Retrieves or sets an integer value for the convar.
- property int IntValue {
- public native get();
- public native set(int value);
- }
-
- // Retrieves or sets a float value for the convar.
- property float FloatValue {
- public native get();
- public native set(float value);
- }
-
- // Gets or sets the flag bits (FCVAR_*) on the convar.
- property int Flags {
- public native get();
- public native set(int flags);
- }
-
- // Retrieves the plugin handle of the convar's creator
- property Handle Plugin {
- public native get();
- }
-
- // Sets the boolean value of a console variable.
- //
- // Note: The replicate and notify params are only relevant for the
- // original, Dark Messiah, and Episode 1 engines. Newer engines
- // automatically do these things when the convar value is changed.
- //
- // @param value New boolean value.
- // @param replicate If set to true, the new convar value will be set on all clients.
- // This will only work if the convar has the FCVAR_REPLICATED flag
- // and actually exists on clients.
- // @param notify If set to true, clients will be notified that the convar has changed.
- // This will only work if the convar has the FCVAR_NOTIFY flag.
- public native void SetBool(bool value, bool replicate=false, bool notify=false);
-
- // Sets the integer value of a console variable.
- //
- // Note: The replicate and notify params are only relevant for the
- // original, Dark Messiah, and Episode 1 engines. Newer engines
- // automatically do these things when the convar value is changed.
- //
- // @param value New integer value.
- // @param replicate If set to true, the new convar value will be set on all clients.
- // This will only work if the convar has the FCVAR_REPLICATED flag
- // and actually exists on clients.
- // @param notify If set to true, clients will be notified that the convar has changed.
- // This will only work if the convar has the FCVAR_NOTIFY flag.
- public native void SetInt(int value, bool replicate=false, bool notify=false);
-
- // Sets the floating point value of a console variable.
- //
- // Note: The replicate and notify params are only relevant for the
- // original, Dark Messiah, and Episode 1 engines. Newer engines
- // automatically do these things when the convar value is changed.
- //
- // @param value New floating point value.
- // @param replicate If set to true, the new convar value will be set on all clients.
- // This will only work if the convar has the FCVAR_REPLICATED flag
- // and actually exists on clients.
- // @param notify If set to true, clients will be notified that the convar has changed.
- // This will only work if the convar has the FCVAR_NOTIFY flag.
- public native void SetFloat(float value, bool replicate=false, bool notify=false);
-
- // Retrieves the string value of a console variable.
- //
- // @param value Buffer to store the value of the convar.
- // @param maxlength Maximum length of string buffer.
- public native void GetString(char[] value, int maxlength);
-
- // Sets the string value of a console variable.
- //
- // Note: The replicate and notify params are only relevant for the
- // original, Dark Messiah, and Episode 1 engines. Newer engines
- // automatically do these things when the convar value is changed.
- //
- // @param value New string value.
- // @param replicate If set to true, the new convar value will be set on all clients.
- // This will only work if the convar has the FCVAR_REPLICATED flag
- // and actually exists on clients.
- // @param notify If set to true, clients will be notified that the convar has changed.
- // This will only work if the convar has the FCVAR_NOTIFY flag.
- public native void SetString(const char[] value, bool replicate=false, bool notify=false);
-
- // Resets the console variable to its default value.
- //
- // Note: The replicate and notify params are only relevant for the
- // original, Dark Messiah, and Episode 1 engines. Newer engines
- // automatically do these things when the convar value is changed.
- //
- // @param replicate If set to true, the new convar value will be set on all clients.
- // This will only work if the convar has the FCVAR_REPLICATED flag
- // and actually exists on clients.
- // @param notify If set to true, clients will be notified that the convar has changed.
- // This will only work if the convar has the FCVAR_NOTIFY flag.
- public native void RestoreDefault(bool replicate=false, bool notify=false);
-
- // Retrieves the default string value of a console variable.
- //
- // @param value Buffer to store the default value of the convar.
- // @param maxlength Maximum length of string buffer.
- // @return Number of bytes written to the buffer (UTF-8 safe).
- public native int GetDefault(char[] value, int maxlength);
-
- // Retrieves the specified bound of a console variable.
- //
- // @param type Type of bound to retrieve, ConVarBound_Lower or ConVarBound_Upper.
- // @param value By-reference cell to store the specified floating point bound value.
- // @return True if the convar has the specified bound set, false otherwise.
- public native bool GetBounds(ConVarBounds type, float &value);
-
- // Sets the specified bound of a console variable.
- //
- // @param type Type of bound to set, ConVarBound_Lower or ConVarBound_Upper
- // @param set If set to true, convar will use specified bound. If false, bound will be removed.
- // @param value Floating point value to use as the specified bound.
- public native void SetBounds(ConVarBounds type, bool set, float value=0.0);
-
- // Retrieves the name of a console variable.
- //
- // @param name Buffer to store the name of the convar.
- // @param maxlength Maximum length of string buffer.
- public native void GetName(char[] name, int maxlength);
-
- // Retrieves the description of a console variable.
- //
- // @param buffer Buffer to store the description of the convar.
- // @param maxlength Maximum length of string buffer.
- public native void GetDescription(char[] buffer, int maxlength);
-
- // Replicates a convar value to a specific client. This does not change the actual convar value.
- //
- // @param client Client index
- // @param value String value to send
- // @return True on success, false on failure
- // @error Invalid client index, client not in game, or client is fake
- public native bool ReplicateToClient(int client, const char[] value);
-
- // Creates a hook for when a console variable's value is changed.
- //
- // @param callback An OnConVarChanged function pointer.
- public native void AddChangeHook(ConVarChanged callback);
-
- // Removes a hook for when a console variable's value is changed.
- //
- // @param callback An OnConVarChanged function pointer.
- // @error No active hook on convar.
- public native void RemoveChangeHook(ConVarChanged callback);
-}
-
-/**
- * Creates a hook for when a console variable's value is changed.
- *
- * @param convar Handle to the convar.
- * @param callback An OnConVarChanged function pointer.
- * @error Invalid or corrupt Handle or invalid callback function.
- */
-native void HookConVarChange(Handle convar, ConVarChanged callback);
-
-/**
- * Removes a hook for when a console variable's value is changed.
- *
- * @param convar Handle to the convar.
- * @param callback An OnConVarChanged function pointer.
- * @error Invalid or corrupt Handle, invalid callback function, or no active hook on convar.
- */
-native void UnhookConVarChange(Handle convar, ConVarChanged callback);
-
-/**
- * Returns the boolean value of a console variable.
- *
- * @param convar Handle to the convar.
- * @return The boolean value of the convar.
- * @error Invalid or corrupt Handle.
- */
-native bool GetConVarBool(Handle convar);
-
-/**
- * Sets the boolean value of a console variable.
- *
- * Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
- * Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
- *
- * @param convar Handle to the convar.
- * @param value New boolean value.
- * @param replicate If set to true, the new convar value will be set on all clients.
- * This will only work if the convar has the FCVAR_REPLICATED flag
- * and actually exists on clients.
- * @param notify If set to true, clients will be notified that the convar has changed.
- * This will only work if the convar has the FCVAR_NOTIFY flag.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarBool(Handle convar, bool value, bool replicate=false, bool notify=false);
-
-/**
- * Returns the integer value of a console variable.
- *
- * @param convar Handle to the convar.
- * @return The integer value of the convar.
- * @error Invalid or corrupt Handle.
- */
-native int GetConVarInt(Handle convar);
-
-/**
- * Sets the integer value of a console variable.
- *
- * Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
- * Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
- *
- * @param convar Handle to the convar.
- * @param value New integer value.
- * @param replicate If set to true, the new convar value will be set on all clients.
- * This will only work if the convar has the FCVAR_REPLICATED flag
- * and actually exists on clients.
- * @param notify If set to true, clients will be notified that the convar has changed.
- * This will only work if the convar has the FCVAR_NOTIFY flag.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarInt(Handle convar, int value, bool replicate=false, bool notify=false);
-
-/**
- * Returns the floating point value of a console variable.
- *
- * @param convar Handle to the convar.
- * @return The floating point value of the convar.
- * @error Invalid or corrupt Handle.
- */
-native float GetConVarFloat(Handle convar);
-
-/**
- * Sets the floating point value of a console variable.
- *
- * Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
- * Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
- *
- * @param convar Handle to the convar.
- * @param value New floating point value.
- * @param replicate If set to true, the new convar value will be set on all clients.
- * This will only work if the convar has the FCVAR_REPLICATED flag
- * and actually exists on clients.
- * @param notify If set to true, clients will be notified that the convar has changed.
- * This will only work if the convar has the FCVAR_NOTIFY flag.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarFloat(Handle convar, float value, bool replicate=false, bool notify=false);
-
-/**
- * Retrieves the string value of a console variable.
- *
- * @param convar Handle to the convar.
- * @param value Buffer to store the value of the convar.
- * @param maxlength Maximum length of string buffer.
- * @error Invalid or corrupt Handle.
- */
-native void GetConVarString(Handle convar, char[] value, int maxlength);
-
-/**
- * Sets the string value of a console variable.
- *
- * Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
- * Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
- *
- * @param convar Handle to the convar.
- * @param value New string value.
- * @param replicate If set to true, the new convar value will be set on all clients.
- * This will only work if the convar has the FCVAR_REPLICATED flag
- * and actually exists on clients.
- * @param notify If set to true, clients will be notified that the convar has changed.
- * This will only work if the convar has the FCVAR_NOTIFY flag.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarString(Handle convar, const char[] value, bool replicate=false, bool notify=false);
-
-/**
- * Resets the console variable to its default value.
- *
- * Note: The replicate and notify params are only relevant for the original, Dark Messiah, and
- * Episode 1 engines. Newer engines automatically do these things when the convar value is changed.
- *
- * @param convar Handle to the convar.
- * @param replicate If set to true, the new convar value will be set on all clients.
- * This will only work if the convar has the FCVAR_REPLICATED flag
- * and actually exists on clients.
- * @param notify If set to true, clients will be notified that the convar has changed.
- * This will only work if the convar has the FCVAR_NOTIFY flag.
- * @error Invalid or corrupt Handle.
- */
-native void ResetConVar(Handle convar, bool replicate=false, bool notify=false);
-
-/**
- * Retrieves the default string value of a console variable.
- *
- * @param convar Handle to the convar.
- * @param value Buffer to store the default value of the convar.
- * @param maxlength Maximum length of string buffer.
- * @return Number of bytes written to the buffer (UTF-8 safe).
- * @error Invalid or corrupt Handle.
- */
-native int GetConVarDefault(Handle convar, char[] value, int maxlength);
-
-/**
- * Returns the bitstring of flags on a console variable.
- *
- * @param convar Handle to the convar.
- * @return A bitstring containing the FCVAR_* flags that are enabled.
- * @error Invalid or corrupt Handle.
- */
-native int GetConVarFlags(Handle convar);
-
-/**
- * Sets the bitstring of flags on a console variable.
- *
- * @param convar Handle to the convar.
- * @param flags A bitstring containing the FCVAR_* flags to enable.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarFlags(Handle convar, int flags);
-
-/**
- * Retrieves the specified bound of a console variable.
- *
- * @param convar Handle to the convar.
- * @param type Type of bound to retrieve, ConVarBound_Lower or ConVarBound_Upper.
- * @param value By-reference cell to store the specified floating point bound value.
- * @return True if the convar has the specified bound set, false otherwise.
- * @error Invalid or corrupt Handle.
- */
-native bool GetConVarBounds(Handle convar, ConVarBounds type, float &value);
-
-/**
- * Sets the specified bound of a console variable.
- *
- * @param convar Handle to the convar.
- * @param type Type of bound to set, ConVarBound_Lower or ConVarBound_Upper
- * @param set If set to true, convar will use specified bound. If false, bound will be removed.
- * @param value Floating point value to use as the specified bound.
- * @error Invalid or corrupt Handle.
- */
-native void SetConVarBounds(Handle convar, ConVarBounds type, bool set, float value=0.0);
-
-/**
- * Retrieves the name of a console variable.
- *
- * @param convar Handle to the convar.
- * @param name Buffer to store the name of the convar.
- * @param maxlength Maximum length of string buffer.
- * @error Invalid or corrupt Handle.
- */
-native void GetConVarName(Handle convar, char[] name, int maxlength);
-
-/**
- * Replicates a convar value to a specific client. This does not change the actual convar value.
- *
- * @param client Client index
- * @param convar ConVar handle
- * @param value String value to send
- * @return True on success, false on failure
- * @error Invalid client index, client not in game, or client is fake
- */
-native bool SendConVarValue(int client, Handle convar, const char[] value);
-
-typeset ConVarQueryFinished
-{
- // Called when a query to retrieve a client's console variable has finished.
- //
- // @param cookie Unique identifier of query.
- // @param client Player index.
- // @param result Result of query that tells one whether or not query was successful.
- // See ConVarQueryResult enum for more details.
- // @param convarName Name of client convar that was queried.
- // @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
- // @param value Value that was passed when query was started.
- function void (QueryCookie cookie, int client, ConVarQueryResult result, const char[] cvarName, const char[] cvarValue, any value);
-
- // Called when a query to retrieve a client's console variable has finished.
- //
- // @param cookie Unique identifier of query.
- // @param client Player index.
- // @param result Result of query that tells one whether or not query was successful.
- // See ConVarQueryResult enum for more details.
- // @param convarName Name of client convar that was queried.
- // @param convarValue Value of client convar that was queried if successful. This will be "" if it was not.
- function void (QueryCookie cookie, int client, ConVarQueryResult result, const char[] cvarName, const char[] cvarValue);
-};
-
-/**
- * Starts a query to retrieve the value of a client's console variable.
- *
- * @param client Player index.
- * @param cvarName Name of client convar to query.
- * @param callback A function to use as a callback when the query has finished.
- * @param value Optional value to pass to the callback function.
- * @return A cookie that uniquely identifies the query.
- * Returns QUERYCOOKIE_FAILED on failure, such as when used on a bot.
- */
-native QueryCookie QueryClientConVar(int client, const char[] cvarName, ConVarQueryFinished callback, any value=0);
-
-/**
- * Returns true if the supplied character is valid in a ConVar name.
- *
- * @param c Character to validate.
- * @return True is valid for ConVars, false otherwise
- */
-stock bool IsValidConVarChar(int c)
-{
- return (c == '_' || IsCharAlpha(c) || IsCharNumeric(c));
-}
diff --git a/addons/sourcemod/scripting/include/core.inc b/addons/sourcemod/scripting/include/core.inc
deleted file mode 100644
index 8fed55c16..000000000
--- a/addons/sourcemod/scripting/include/core.inc
+++ /dev/null
@@ -1,320 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet:
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _core_included
- #endinput
-#endif
-#define _core_included
-
-#include
-
-/** If this gets changed, you need to update Core's check. */
-#define SOURCEMOD_PLUGINAPI_VERSION 5
-
-struct PlVers
-{
- public int version;
- public const char[] filevers;
- public const char[] date;
- public const char[] time;
-};
-
-/**
- * Specifies what to do after a hook completes.
- */
-enum Action
-{
- Plugin_Continue = 0, /**< Continue with the original action */
- Plugin_Changed = 1, /**< Inputs or outputs have been overridden with new values */
- Plugin_Handled = 3, /**< Handle the action at the end (don't call it) */
- Plugin_Stop = 4 /**< Immediately stop the hook chain and handle the original */
-};
-
-/**
- * Specifies identity types.
- */
-enum Identity
-{
- Identity_Core = 0,
- Identity_Extension = 1,
- Identity_Plugin = 2
-};
-
-public PlVers __version =
-{
- version = SOURCEMOD_PLUGINAPI_VERSION,
- filevers = SOURCEMOD_VERSION,
- date = __DATE__,
- time = __TIME__
-};
-
-/**
- * Plugin status values.
- */
-enum PluginStatus
-{
- Plugin_Running=0, /**< Plugin is running */
- /* All states below are "temporarily" unexecutable */
- Plugin_Paused, /**< Plugin is loaded but paused */
- Plugin_Error, /**< Plugin is loaded but errored/locked */
- /* All states below do not have all natives */
- Plugin_Loaded, /**< Plugin has passed loading and can be finalized */
- Plugin_Failed, /**< Plugin has a fatal failure */
- Plugin_Created, /**< Plugin is created but not initialized */
- Plugin_Uncompiled, /**< Plugin is not yet compiled by the JIT */
- Plugin_BadLoad, /**< Plugin failed to load */
- Plugin_Evicted /**< Plugin was unloaded due to an error */
-};
-
-/**
- * Plugin information properties. Plugins can declare a global variable with
- * their info. Example,
- *
- * public Plugin myinfo = {
- * name = "Admin Help",
- * author = "AlliedModders LLC",
- * description = "Display command information",
- * version = "1.0",
- * url = "http://www.sourcemod.net/"
- * };
- *
- * SourceMod will display this information when a user inspects plugins in the
- * console.
- */
-enum PluginInfo
-{
- PlInfo_Name, /**< Plugin name */
- PlInfo_Author, /**< Plugin author */
- PlInfo_Description, /**< Plugin description */
- PlInfo_Version, /**< Plugin version */
- PlInfo_URL /**< Plugin URL */
-};
-
-/**
- * Defines how an extension must expose itself for autoloading.
- */
-struct Extension
-{
- public const char[] name; /**< Short name */
- public const char[] file; /**< Default file name */
- public bool autoload; /**< Whether or not to auto-load */
- public bool required; /**< Whether or not to require */
-};
-
-/**
- * Defines how a plugin must expose itself for native requiring.
- */
-struct SharedPlugin
-{
- public const char[] name; /**< Short name */
- public const char[] file; /**< File name */
- public bool required; /**< Whether or not to require */
-};
-
-public float NULL_VECTOR[3]; /**< Pass this into certain functions to act as a C++ NULL */
-public const char NULL_STRING[1]; /**< pass this into certain functions to act as a C++ NULL */
-
-/**
- * Check if the given vector is the NULL_VECTOR.
- *
- * @param vec The vector to test.
- * @return True if NULL_VECTOR, false otherwise.
- */
-native bool IsNullVector(const float vec[3]);
-
-/**
- * Check if the given string is the NULL_STRING.
- *
- * @param str The string to test.
- * @return True if NULL_STRING, false otherwise.
- */
-native bool IsNullString(const char[] str);
-
-/**
- * Horrible compatibility shim.
- */
-public Extension __ext_core =
-{
- name = "Core",
- file = "core",
- autoload = 0,
- required = 0,
-};
-
-native int VerifyCoreVersion();
-
-/**
- * Sets a native as optional, such that if it is unloaded, removed,
- * or otherwise non-existent, the plugin will still work. Calling
- * removed natives results in a run-time error.
- *
- * @param name Native name.
- */
-native void MarkNativeAsOptional(const char[] name);
-
-public void __ext_core_SetNTVOptional()
-{
- MarkNativeAsOptional("GetFeatureStatus");
- MarkNativeAsOptional("RequireFeature");
- MarkNativeAsOptional("AddCommandListener");
- MarkNativeAsOptional("RemoveCommandListener");
-
- MarkNativeAsOptional("BfWriteBool");
- MarkNativeAsOptional("BfWriteByte");
- MarkNativeAsOptional("BfWriteChar");
- MarkNativeAsOptional("BfWriteShort");
- MarkNativeAsOptional("BfWriteWord");
- MarkNativeAsOptional("BfWriteNum");
- MarkNativeAsOptional("BfWriteFloat");
- MarkNativeAsOptional("BfWriteString");
- MarkNativeAsOptional("BfWriteEntity");
- MarkNativeAsOptional("BfWriteAngle");
- MarkNativeAsOptional("BfWriteCoord");
- MarkNativeAsOptional("BfWriteVecCoord");
- MarkNativeAsOptional("BfWriteVecNormal");
- MarkNativeAsOptional("BfWriteAngles");
- MarkNativeAsOptional("BfReadBool");
- MarkNativeAsOptional("BfReadByte");
- MarkNativeAsOptional("BfReadChar");
- MarkNativeAsOptional("BfReadShort");
- MarkNativeAsOptional("BfReadWord");
- MarkNativeAsOptional("BfReadNum");
- MarkNativeAsOptional("BfReadFloat");
- MarkNativeAsOptional("BfReadString");
- MarkNativeAsOptional("BfReadEntity");
- MarkNativeAsOptional("BfReadAngle");
- MarkNativeAsOptional("BfReadCoord");
- MarkNativeAsOptional("BfReadVecCoord");
- MarkNativeAsOptional("BfReadVecNormal");
- MarkNativeAsOptional("BfReadAngles");
- MarkNativeAsOptional("BfGetNumBytesLeft");
-
- MarkNativeAsOptional("BfWrite.WriteBool");
- MarkNativeAsOptional("BfWrite.WriteByte");
- MarkNativeAsOptional("BfWrite.WriteChar");
- MarkNativeAsOptional("BfWrite.WriteShort");
- MarkNativeAsOptional("BfWrite.WriteWord");
- MarkNativeAsOptional("BfWrite.WriteNum");
- MarkNativeAsOptional("BfWrite.WriteFloat");
- MarkNativeAsOptional("BfWrite.WriteString");
- MarkNativeAsOptional("BfWrite.WriteEntity");
- MarkNativeAsOptional("BfWrite.WriteAngle");
- MarkNativeAsOptional("BfWrite.WriteCoord");
- MarkNativeAsOptional("BfWrite.WriteVecCoord");
- MarkNativeAsOptional("BfWrite.WriteVecNormal");
- MarkNativeAsOptional("BfWrite.WriteAngles");
- MarkNativeAsOptional("BfRead.ReadBool");
- MarkNativeAsOptional("BfRead.ReadByte");
- MarkNativeAsOptional("BfRead.ReadChar");
- MarkNativeAsOptional("BfRead.ReadShort");
- MarkNativeAsOptional("BfRead.ReadWord");
- MarkNativeAsOptional("BfRead.ReadNum");
- MarkNativeAsOptional("BfRead.ReadFloat");
- MarkNativeAsOptional("BfRead.ReadString");
- MarkNativeAsOptional("BfRead.ReadEntity");
- MarkNativeAsOptional("BfRead.ReadAngle");
- MarkNativeAsOptional("BfRead.ReadCoord");
- MarkNativeAsOptional("BfRead.ReadVecCoord");
- MarkNativeAsOptional("BfRead.ReadVecNormal");
- MarkNativeAsOptional("BfRead.ReadAngles");
- MarkNativeAsOptional("BfRead.BytesLeft.get");
-
- MarkNativeAsOptional("PbReadInt");
- MarkNativeAsOptional("PbReadFloat");
- MarkNativeAsOptional("PbReadBool");
- MarkNativeAsOptional("PbReadString");
- MarkNativeAsOptional("PbReadColor");
- MarkNativeAsOptional("PbReadAngle");
- MarkNativeAsOptional("PbReadVector");
- MarkNativeAsOptional("PbReadVector2D");
- MarkNativeAsOptional("PbGetRepeatedFieldCount");
- MarkNativeAsOptional("PbSetInt");
- MarkNativeAsOptional("PbSetFloat");
- MarkNativeAsOptional("PbSetBool");
- MarkNativeAsOptional("PbSetString");
- MarkNativeAsOptional("PbSetColor");
- MarkNativeAsOptional("PbSetAngle");
- MarkNativeAsOptional("PbSetVector");
- MarkNativeAsOptional("PbSetVector2D");
- MarkNativeAsOptional("PbAddInt");
- MarkNativeAsOptional("PbAddFloat");
- MarkNativeAsOptional("PbAddBool");
- MarkNativeAsOptional("PbAddString");
- MarkNativeAsOptional("PbAddColor");
- MarkNativeAsOptional("PbAddAngle");
- MarkNativeAsOptional("PbAddVector");
- MarkNativeAsOptional("PbAddVector2D");
- MarkNativeAsOptional("PbRemoveRepeatedFieldValue");
- MarkNativeAsOptional("PbReadMessage");
- MarkNativeAsOptional("PbReadRepeatedMessage");
- MarkNativeAsOptional("PbAddMessage");
-
- MarkNativeAsOptional("Protobuf.ReadInt");
- MarkNativeAsOptional("Protobuf.ReadInt64");
- MarkNativeAsOptional("Protobuf.ReadFloat");
- MarkNativeAsOptional("Protobuf.ReadBool");
- MarkNativeAsOptional("Protobuf.ReadString");
- MarkNativeAsOptional("Protobuf.ReadColor");
- MarkNativeAsOptional("Protobuf.ReadAngle");
- MarkNativeAsOptional("Protobuf.ReadVector");
- MarkNativeAsOptional("Protobuf.ReadVector2D");
- MarkNativeAsOptional("Protobuf.GetRepeatedFieldCount");
- MarkNativeAsOptional("Protobuf.SetInt");
- MarkNativeAsOptional("Protobuf.SetInt64");
- MarkNativeAsOptional("Protobuf.SetFloat");
- MarkNativeAsOptional("Protobuf.SetBool");
- MarkNativeAsOptional("Protobuf.SetString");
- MarkNativeAsOptional("Protobuf.SetColor");
- MarkNativeAsOptional("Protobuf.SetAngle");
- MarkNativeAsOptional("Protobuf.SetVector");
- MarkNativeAsOptional("Protobuf.SetVector2D");
- MarkNativeAsOptional("Protobuf.AddInt");
- MarkNativeAsOptional("Protobuf.AddInt64");
- MarkNativeAsOptional("Protobuf.AddFloat");
- MarkNativeAsOptional("Protobuf.AddBool");
- MarkNativeAsOptional("Protobuf.AddString");
- MarkNativeAsOptional("Protobuf.AddColor");
- MarkNativeAsOptional("Protobuf.AddAngle");
- MarkNativeAsOptional("Protobuf.AddVector");
- MarkNativeAsOptional("Protobuf.AddVector2D");
- MarkNativeAsOptional("Protobuf.RemoveRepeatedFieldValue");
- MarkNativeAsOptional("Protobuf.ReadMessage");
- MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
- MarkNativeAsOptional("Protobuf.AddMessage");
-
- VerifyCoreVersion();
-}
-
-
-#define AUTOLOAD_EXTENSIONS
-#define REQUIRE_EXTENSIONS
-#define REQUIRE_PLUGIN
diff --git a/addons/sourcemod/scripting/include/cstrike.inc b/addons/sourcemod/scripting/include/cstrike.inc
deleted file mode 100644
index 38321bd0d..000000000
--- a/addons/sourcemod/scripting/include/cstrike.inc
+++ /dev/null
@@ -1,488 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _cstrike_included
- #endinput
-#endif
-#define _cstrike_included
-
-#define CS_TEAM_NONE 0 /**< No team yet. */
-#define CS_TEAM_SPECTATOR 1 /**< Spectators. */
-#define CS_TEAM_T 2 /**< Terrorists. */
-#define CS_TEAM_CT 3 /**< Counter-Terrorists. */
-
-#define CS_SLOT_PRIMARY 0 /**< Primary weapon slot. */
-#define CS_SLOT_SECONDARY 1 /**< Secondary weapon slot. */
-#define CS_SLOT_KNIFE 2 /**< Knife slot. */
-#define CS_SLOT_GRENADE 3 /**< Grenade slot (will only return one grenade). */
-#define CS_SLOT_C4 4 /**< C4 slot. */
-#define CS_SLOT_BOOST 11 /**< Slot for healthshot and shield (will only return one weapon/item). */
-#define CS_SLOT_UTILITY 12 /**< Slot for tablet. */
-
-#define CS_DMG_HEADSHOT (1 << 30) /**< Headshot */
-
-enum CSRoundEndReason
-{
- CSRoundEnd_TargetBombed = 0, /**< Target Successfully Bombed! */
- CSRoundEnd_VIPEscaped, /**< The VIP has escaped! - Doesn't exist on CS:GO */
- CSRoundEnd_VIPKilled, /**< VIP has been assassinated! - Doesn't exist on CS:GO */
- CSRoundEnd_TerroristsEscaped, /**< The terrorists have escaped! */
- CSRoundEnd_CTStoppedEscape, /**< The CTs have prevented most of the terrorists from escaping! */
- CSRoundEnd_TerroristsStopped, /**< Escaping terrorists have all been neutralized! */
- CSRoundEnd_BombDefused, /**< The bomb has been defused! */
- CSRoundEnd_CTWin, /**< Counter-Terrorists Win! */
- CSRoundEnd_TerroristWin, /**< Terrorists Win! */
- CSRoundEnd_Draw, /**< Round Draw! */
- CSRoundEnd_HostagesRescued, /**< All Hostages have been rescued! */
- CSRoundEnd_TargetSaved, /**< Target has been saved! */
- CSRoundEnd_HostagesNotRescued, /**< Hostages have not been rescued! */
- CSRoundEnd_TerroristsNotEscaped, /**< Terrorists have not escaped! */
- CSRoundEnd_VIPNotEscaped, /**< VIP has not escaped! - Doesn't exist on CS:GO */
- CSRoundEnd_GameStart, /**< Game Commencing! */
-
- // The below only exist on CS:GO
- CSRoundEnd_TerroristsSurrender, /**< Terrorists Surrender */
- CSRoundEnd_CTSurrender, /**< CTs Surrender */
- CSRoundEnd_TerroristsPlanted, /**< Terrorists Planted the bomb */
- CSRoundEnd_CTsReachedHostage /**< CTs Reached the hostage */
-};
-
-enum CSWeaponID
-{
- CSWeapon_NONE = 0,
- CSWeapon_P228,
- CSWeapon_GLOCK,
- CSWeapon_SCOUT,
- CSWeapon_HEGRENADE,
- CSWeapon_XM1014,
- CSWeapon_C4,
- CSWeapon_MAC10,
- CSWeapon_AUG,
- CSWeapon_SMOKEGRENADE,
- CSWeapon_ELITE,
- CSWeapon_FIVESEVEN,
- CSWeapon_UMP45,
- CSWeapon_SG550,
- CSWeapon_GALIL,
- CSWeapon_FAMAS,
- CSWeapon_USP,
- CSWeapon_AWP,
- CSWeapon_MP5NAVY,
- CSWeapon_M249,
- CSWeapon_M3,
- CSWeapon_M4A1,
- CSWeapon_TMP,
- CSWeapon_G3SG1,
- CSWeapon_FLASHBANG,
- CSWeapon_DEAGLE,
- CSWeapon_SG552,
- CSWeapon_AK47,
- CSWeapon_KNIFE,
- CSWeapon_P90,
- CSWeapon_SHIELD,
- CSWeapon_KEVLAR,
- CSWeapon_ASSAULTSUIT,
- CSWeapon_NIGHTVISION, //Anything below is CS:GO ONLY
- CSWeapon_GALILAR,
- CSWeapon_BIZON,
- CSWeapon_MAG7,
- CSWeapon_NEGEV,
- CSWeapon_SAWEDOFF,
- CSWeapon_TEC9,
- CSWeapon_TASER,
- CSWeapon_HKP2000,
- CSWeapon_MP7,
- CSWeapon_MP9,
- CSWeapon_NOVA,
- CSWeapon_P250,
- CSWeapon_SCAR17,
- CSWeapon_SCAR20,
- CSWeapon_SG556,
- CSWeapon_SSG08,
- CSWeapon_KNIFE_GG,
- CSWeapon_MOLOTOV,
- CSWeapon_DECOY,
- CSWeapon_INCGRENADE,
- CSWeapon_DEFUSER,
- CSWeapon_HEAVYASSAULTSUIT,
- //The rest are actual item definition indexes for CS:GO
- CSWeapon_CUTTERS = 56,
- CSWeapon_HEALTHSHOT = 57,
- CSWeapon_KNIFE_T = 59,
- CSWeapon_M4A1_SILENCER = 60,
- CSWeapon_USP_SILENCER = 61,
- CSWeapon_CZ75A = 63,
- CSWeapon_REVOLVER = 64,
- CSWeapon_TAGGRENADE = 68,
- CSWeapon_FISTS = 69,
- CSWeapon_BREACHCHARGE = 70,
- CSWeapon_TABLET = 72,
- CSWeapon_MELEE = 74,
- CSWeapon_AXE = 75,
- CSWeapon_HAMMER = 76,
- CSWeapon_SPANNER = 78,
- CSWeapon_KNIFE_GHOST = 80,
- CSWeapon_FIREBOMB = 81,
- CSWeapon_DIVERSION = 82,
- CSWeapon_FRAGGRENADE = 83,
- CSWeapon_SNOWBALL = 84,
- CSWeapon_BUMPMINE = 85,
- CSWeapon_MAX_WEAPONS_NO_KNIFES, // Max without the knife item defs, useful when treating all knives as a regular knife.
- CSWeapon_BAYONET = 500,
- CSWeapon_KNIFE_CLASSIC = 503,
- CSWeapon_KNIFE_FLIP = 505,
- CSWeapon_KNIFE_GUT = 506,
- CSWeapon_KNIFE_KARAMBIT = 507,
- CSWeapon_KNIFE_M9_BAYONET = 508,
- CSWeapon_KNIFE_TATICAL = 509,
- CSWeapon_KNIFE_FALCHION = 512,
- CSWeapon_KNIFE_SURVIVAL_BOWIE = 514,
- CSWeapon_KNIFE_BUTTERFLY = 515,
- CSWeapon_KNIFE_PUSH = 516,
- CSWeapon_KNIFE_CORD = 517,
- CSWeapon_KNIFE_CANIS = 518,
- CSWeapon_KNIFE_URSUS = 519,
- CSWeapon_KNIFE_GYPSY_JACKKNIFE = 520,
- CSWeapon_KNIFE_OUTDOOR = 521,
- CSWeapon_KNIFE_STILETTO = 522,
- CSWeapon_KNIFE_WIDOWMAKER = 523,
- CSWeapon_KNIFE_SKELETON = 525,
- CSWeapon_MAX_WEAPONS //THIS MUST BE LAST, EASY WAY TO CREATE LOOPS. When looping, do CS_IsValidWeaponID(i), to check.
-};
-
-/**
- * Called when a player attempts to purchase an item.
- * Return Plugin_Continue to allow the purchase or return a
- * higher action to deny.
- *
- * @param client Client index
- * @param weapon User input for weapon name
- */
-forward Action CS_OnBuyCommand(int client, const char[] weapon);
-
-/**
- * Called when CSWeaponDrop is called
- * Return Plugin_Continue to allow the call or return a
- * higher action to block.
- *
- * @param client Client index
- * @param weaponIndex Weapon index
- * @param donated Was weapon donated (Bought from a buy menu while ctrl was pressed)
- * (Note: This param is for CS:GO only, will be false on other games)
- */
-forward Action CS_OnCSWeaponDrop(int client, int weaponIndex, bool donated);
-
-/**
- * Called when game retrieves a weapon's price for a player.
- * Return Plugin_Continue to use default value or return a higher
- * action to use a newly-set price.
- *
- * @note This can be called multiple times per weapon purchase
- *
- * @param client Client index
- * @param weapon Weapon classname
- * @param price Buffer param for the price of the weapon
- *
- * @note Not all "weapons" call GetWeaponPrice. Example: c4, knife, vest, vest helmet, night vision.
- */
-forward Action CS_OnGetWeaponPrice(int client, const char[] weapon, int &price);
-
-/**
- * Called when TerminateRound is called.
- * Return Plugin_Continue to ignore, return Plugin_Changed to continue,
- * using the given delay and reason, or return Plugin_Handled or a higher
- * action to block TerminateRound from firing.
- *
- * @param delay Time (in seconds) until new round starts
- * @param reason Reason for round end
- */
-forward Action CS_OnTerminateRound(float &delay, CSRoundEndReason &reason);
-
-/**
- * Respawns a player.
- *
- * @param client Player's index.
- * @error Invalid client index, client not in game.
- */
-native void CS_RespawnPlayer(int client);
-
-/**
- * Switches the player's team.
- *
- * @param client Player's index.
- * @param team Team index.
- * @error Invalid client index, client not in game.
- */
-native void CS_SwitchTeam(int client, int team);
-
-/**
- * Forces a player to drop or toss their weapon
- *
- * @param client Player's index.
- * @param weaponIndex Index of weapon to drop.
- * @param toss True to toss weapon (with velocity) or false to just drop weapon
- * @param blockhook Set to true to stop the corresponding CS_OnCSWeaponDrop
- * @error Invalid client index, client not in game, or invalid weapon index.
- */
-native void CS_DropWeapon(int client, int weaponIndex, bool toss, bool blockhook = false);
-
-/**
- * Forces round to end with a reason
- *
- * @param delay Time (in seconds) to delay before new round starts
- * @param reason Reason for the round ending
- * @param blockhook Set to true to stop the corresponding CS_OnTerminateRound
- * forward from being called.
- */
-native void CS_TerminateRound(float delay, CSRoundEndReason reason, bool blockhook = false);
-
-/**
- * Gets a weapon name from a weapon alias
- *
- * @param alias Weapons alias to get weapon name for.
- * @param weapon Buffer to store weapons name
- * @param size Size of buffer to store the weapons name.
- *
- * @note Will set the buffer to the original alias if it is not an alias to a weapon.
- */
-native void CS_GetTranslatedWeaponAlias(const char[] alias, char[] weapon, int size);
-
-/**
- * Gets a weapon's price
- *
- * @param client Client to check weapon price for.
- * @param id Weapon id for the weapon to check
- * @param defaultprice Set to true to get defaultprice.
- * @return Returns price of the weapon (even if modified)
- * @error Invalid client, failing to get weapon info, or failing to get price offset.
- *
- * @note c4, knife and shield will always return 0. vest, vest helmet and night vision will always return default price.
- */
-native int CS_GetWeaponPrice(int client, CSWeaponID id, bool defaultprice = false);
-
-/**
- * Gets a clients clan tag
- *
- * @param client Client index to get clan tag for.
- * @param buffer Buffer to store clients clan tag in.
- * @param size Size of the buffer.
- * @return Number of non-null bytes written.
- * @error Invalid client.
- */
-native int CS_GetClientClanTag(int client, char[] buffer, int size);
-
-/**
- * Sets a clients clan tag
- *
- * @param client Client index to set clan tag for.
- * @param tag Tag to set clients clan tag as.
- * @error Invalid client.
- */
-native void CS_SetClientClanTag(int client, const char[] tag);
-
-/**
- * Gets a team's score
- *
- * @param team Team index to get score for.
- * @return Returns the internal team score.
- * @error Invalid team index.
- */
-native int CS_GetTeamScore(int team);
-
-/**
- * Sets a team's score
- *
- * @param team Team index to set score for.
- * @param value Value to set teams score as.
- * @error Invalid team index.
- *
- * @note This will update the scoreboard only after the scoreboard update function is called.
- * Use SetTeamScore plus this to update the scoreboard instantly and save values correctly.
- */
-native void CS_SetTeamScore(int team, int value);
-
-/**
- * Gets a client's mvp count
- *
- * @param client Client index to get mvp count of.
- * @return Returns the client's internal MVP count.
- * @error Invalid client.
- */
-native int CS_GetMVPCount(int client);
-
-/**
- * Sets a client's mvp count
- *
- * @param client Client index to set mvp count for.
- * @param value Value to set client's mvp count as.
- * @error Invalid client.
- */
-native void CS_SetMVPCount(int client, int value);
-
-/**
- * Gets a client's contribution score (CS:GO only)
- *
- * @param client Client index to get score of.
- * @return Returns the client's score.
- * @error Invalid client.
- */
-native int CS_GetClientContributionScore(int client);
-
-/**
- * Sets a client's contribution score (CS:GO only)
- *
- * @param client Client index to set score for.
- * @param value Value to set client's score as.
- * @error Invalid client.
- */
-native void CS_SetClientContributionScore(int client, int value);
-
-/**
- * Gets a client's assists (CS:GO only)
- *
- * @param client Client index to get assists of.
- * @return Returns the client's assists.
- * @error Invalid client.
- */
-native int CS_GetClientAssists(int client);
-
-/**
- * Sets a client's assists (CS:GO only)
- *
- * @param client Client index to set assists for.
- * @param value Value to set client's assists as.
- * @error Invalid client.
- */
-native void CS_SetClientAssists(int client, int value);
-
-/**
- * Gets a weaponID from a alias
- *
- * @param alias Weapon alias to attempt to get an id for.
- * @return Returns a weapon id or 0 if failed to find a match.
- *
- * @note For best results use CS_GetTranslatedWeaponAlias on the weapon name before passing it.
- */
-native CSWeaponID CS_AliasToWeaponID(const char[] alias);
-
-/**
- * Gets a alias from a weaponID
- *
- * @param weaponID WeaponID to get alias for.
- * @param destination Destination string to hold the weapon alias.
- * @param len Length of the destination array.
- * @return Returns number of cells written.
- */
-native int CS_WeaponIDToAlias(CSWeaponID weaponID, char[] destination, int len);
-
-/**
- * Returns weather a WeaponID is valid on the current mod (css or csgo)
- *
- * @param weaponID WeaponID to check
- * @return Returns true if its a valid WeaponID false otherwise.
- *
- * @note This will return false always for CSWeapon_NONE. Should only be called after OnMapStart since weapon info isnt intialized before.
- */
-native bool CS_IsValidWeaponID(CSWeaponID id);
-
-/**
- * Sets a player's model based on their current class
- *
- * @param client Player's index.
- * @error Invalid client index, client not in game.
- */
-native void CS_UpdateClientModel(int client);
-
-/**
- * Returns a CSWeaponID equivalent based on the item definition index.
- *
- * @param iDefIndex Definition index to get the CSWeaponID value for.
- * @return Returns CSWeaponID value for the definition index.
- * @error Invalid definition index.
- *
- * @note In most cases the id will be the item definition index. Works for CS:GO ONLY.
- */
-native CSWeaponID CS_ItemDefIndexToID(int iDefIndex);
-
-/**
- * Returns a item definition index equivalent based on the CSWeaponID.
- *
- * @param id CSWeaponID to get the item definition for.
- * @return Returns item definition index value for the weapon id.
- * @error Invalid weapon id.
- *
- * @note In most cases the item deinition index will be the id. Works for CS:GO ONLY.
- */
-native int CS_WeaponIDToItemDefIndex(CSWeaponID id);
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_cstrike =
-{
- name = "cstrike",
- file = "games/game.cstrike.ext",
- autoload = 0,
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public void __ext_cstrike_SetNTVOptional()
-{
- MarkNativeAsOptional("CS_RespawnPlayer");
- MarkNativeAsOptional("CS_SwitchTeam");
- MarkNativeAsOptional("CS_DropWeapon");
- MarkNativeAsOptional("CS_TerminateRound");
- MarkNativeAsOptional("CS_GetTranslatedWeaponAlias");
- MarkNativeAsOptional("CS_GetWeaponPrice");
- MarkNativeAsOptional("CS_GetClientClanTag");
- MarkNativeAsOptional("CS_SetClientClanTag");
- MarkNativeAsOptional("CS_GetTeamScore");
- MarkNativeAsOptional("CS_SetTeamScore");
- MarkNativeAsOptional("CS_GetMVPCount");
- MarkNativeAsOptional("CS_SetMVPCount");
- MarkNativeAsOptional("CS_GetClientContributionScore");
- MarkNativeAsOptional("CS_SetClientContributionScore");
- MarkNativeAsOptional("CS_GetClientAssists");
- MarkNativeAsOptional("CS_SetClientAssists");
- MarkNativeAsOptional("CS_AliasToWeaponID");
- MarkNativeAsOptional("CS_WeaponIDToAlias");
- MarkNativeAsOptional("CS_IsValidWeaponID");
- MarkNativeAsOptional("CS_UpdateClientModel");
- MarkNativeAsOptional("CS_ItemDefIndexToID");
- MarkNativeAsOptional("CS_WeaponIDToItemDefIndex");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/datapack.inc b/addons/sourcemod/scripting/include/datapack.inc
deleted file mode 100644
index ae8b4d9e3..000000000
--- a/addons/sourcemod/scripting/include/datapack.inc
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _datapack_included
- #endinput
-#endif
-#define _datapack_included
-
-
-/**
- * Opaque handle to a datapack position.
- */
-enum DataPackPos: {};
-
-// A DataPack allows serializing multiple variables into a single stream.
-methodmap DataPack < Handle
-{
- // Creates a new data pack.
- public native DataPack();
-
- // Packs a normal cell into a data pack.
- //
- // @param cell Cell to add.
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteCell(any cell, bool insert = false);
-
- // Packs a float into a data pack.
- //
- // @param val Float to add.
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteFloat(float val, bool insert = false);
-
- // Packs a string into a data pack.
- //
- // @param str String to add.
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteString(const char[] str, bool insert = false);
-
- // Packs a function pointer into a data pack.
- //
- // @param fktptr Function pointer to add.
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteFunction(Function fktptr, bool insert = false);
-
- // Packs an array of cells into a data pack.
- //
- // @param array Array to add.
- // @param count Number of elements
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteCellArray(const any[] array, int count, bool insert = false);
-
- // Packs an array of floats into a data pack.
- //
- // @param array Array to add.
- // @param count Number of elements
- // @param insert Determines whether mid-pack writes will insert instead of overwrite.
- public native void WriteFloatArray(const float[] array, int count, bool insert = false);
-
- // Reads a cell from a data pack.
- //
- // @return A cell at this position
- public native any ReadCell();
-
- // Reads a float from a data pack.
- //
- // @return Float at this position
- public native float ReadFloat();
-
- // Reads a string from a data pack.
- //
- // @param buffer Destination string buffer.
- // @param maxlen Maximum length of output string buffer.
- public native void ReadString(char[] buffer, int maxlen);
-
- // Reads a function pointer from a data pack.
- //
- // @return Function pointer.
- public native Function ReadFunction();
-
- // Reads an array of cells a data pack.
- //
- // @param buffer Destination buffer.
- // @param count Maximum length of output buffer.
- public native void ReadCellArray(any[] buffer, int count);
-
- // Reads an array of floats from a data pack.
- //
- // @param buffer Destination buffer.
- // @param count Maximum length of output buffer.
- public native void ReadFloatArray(float[] buffer, int count);
-
- // Resets the position in a data pack.
- //
- // @param clear If true, clears the contained data.
- public native void Reset(bool clear=false);
-
- // Returns whether or not a specified number of bytes from the data pack
- // position to the end can be read.
- //
- // @param unused Unused variable. Exists for backwards compatability.
- public native bool IsReadable(int unused = 0);
-
- // The read or write position in a data pack.
- property DataPackPos Position {
- public native get();
- public native set(DataPackPos pos);
- }
-};
-
-/**
- * Creates a new data pack.
- *
- * @return A Handle to the data pack. Must be closed with CloseHandle().
- */
-native DataPack CreateDataPack();
-
-/**
- * Packs a normal cell into a data pack.
- *
- * @param pack Handle to the data pack.
- * @param cell Cell to add.
- * @error Invalid handle.
- */
-native void WritePackCell(Handle pack, any cell);
-
-/**
- * Packs a float into a data pack.
- *
- * @param pack Handle to the data pack.
- * @param val Float to add.
- * @error Invalid handle.
- */
-native void WritePackFloat(Handle pack, float val);
-
-/**
- * Packs a string into a data pack.
- *
- * @param pack Handle to the data pack.
- * @param str String to add.
- * @error Invalid handle.
- */
-native void WritePackString(Handle pack, const char[] str);
-
-/**
- * Packs a function pointer into a data pack.
- *
- * @param pack Handle to the data pack.
- * @param fktptr Function pointer to add.
- * @error Invalid handle.
- */
-native void WritePackFunction(Handle pack, Function fktptr);
-
-/**
- * Reads a cell from a data pack.
- *
- * @param pack Handle to the data pack.
- * @return Cell value.
- * @error Invalid handle, or bounds error.
- */
-native any ReadPackCell(Handle pack);
-
-/**
- * Reads a float from a data pack.
- *
- * @param pack Handle to the data pack.
- * @return Float value.
- * @error Invalid handle, or bounds error.
- */
-native float ReadPackFloat(Handle pack);
-
-/**
- * Reads a string from a data pack.
- *
- * @param pack Handle to the data pack.
- * @param buffer Destination string buffer.
- * @param maxlen Maximum length of output string buffer.
- * @error Invalid handle, or bounds error.
- */
-native void ReadPackString(Handle pack, char[] buffer, int maxlen);
-
-/**
- * Reads a function pointer from a data pack.
- *
- * @param pack Handle to the data pack.
- * @return Function pointer.
- * @error Invalid handle, or bounds error.
- */
-native Function ReadPackFunction(Handle pack);
-
-/**
- * Resets the position in a data pack.
- *
- * @param pack Handle to the data pack.
- * @param clear If true, clears the contained data.
- * @error Invalid handle.
- */
-native void ResetPack(Handle pack, bool clear=false);
-
-/**
- * Returns the read or write position in a data pack.
- *
- * @param pack Handle to the data pack.
- * @return Position in the data pack, only usable with calls to SetPackPosition.
- * @error Invalid handle.
- */
-native DataPackPos GetPackPosition(Handle pack);
-
-/**
- * Sets the read/write position in a data pack.
- *
- * @param pack Handle to the data pack.
- * @param position New position to set. Must have been previously retrieved from a call to GetPackPosition.
- * @error Invalid handle, or position is beyond the pack bounds.
- */
-native void SetPackPosition(Handle pack, DataPackPos position);
-
-/**
- * Returns whether or not a specified number of bytes from the data pack
- * position to the end can be read.
- *
- * @param pack Handle to the data pack.
- * @param bytes Number of bytes to simulate reading.
- * @return True if can be read, false otherwise.
- * @error Invalid handle.
- */
-native bool IsPackReadable(Handle pack, int bytes);
diff --git a/addons/sourcemod/scripting/include/dbi.inc b/addons/sourcemod/scripting/include/dbi.inc
deleted file mode 100644
index 834398eae..000000000
--- a/addons/sourcemod/scripting/include/dbi.inc
+++ /dev/null
@@ -1,1073 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _dbi_included
- #endinput
-#endif
-#define _dbi_included
-
-/**
- * Describes a database field fetch status.
- */
-enum DBResult
-{
- DBVal_Error = 0, /**< Column number/field is invalid. */
- DBVal_TypeMismatch = 1, /**< You cannot retrieve this data with this type. */
- DBVal_Null = 2, /**< Field has no data (NULL) */
- DBVal_Data = 3 /**< Field has data */
-};
-
-/**
- * Describes binding types.
- */
-enum DBBindType
-{
- DBBind_Int = 0, /**< Bind an integer. */
- DBBind_Float = 1, /**< Bind a float. */
- DBBind_String = 2 /**< Bind a string. */
-};
-
-/**
- * Threading priority level.
- */
-enum DBPriority
-{
- DBPrio_High = 0, /**< High priority. */
- DBPrio_Normal = 1, /**< Normal priority. */
- DBPrio_Low = 2 /**< Low priority. */
-};
-
-// A Driver represents a database backend, currently MySQL or SQLite.
-//
-// Driver handles cannot be closed.
-methodmap DBDriver < Handle
-{
- // Finds the driver associated with a name.
- //
- // Supported driver strings:
- // mysql
- // sqlite
- //
- // @param name Driver identification string, or an empty string
- // to return the default driver.
- // @return Driver handle, or null on failure.
- public static native DBDriver Find(const char[] name = "");
-
- // Retrieves a driver's identification string.
- //
- // Example: "mysql", "sqlite"
- //
- // @param ident Identification string buffer.
- // @param maxlength Maximum length of the buffer.
- public native void GetIdentifier(char[] ident, int maxlength);
-
- // Retrieves a driver's product string.
- //
- // Example: "MySQL", "SQLite"
- //
- // @param product Product string buffer.
- // @param maxlength Maximum length of the buffer.
- public native void GetProduct(char[] product, int maxlength);
-};
-
-// Represents a set of results returned from executing a query.
-methodmap DBResultSet < Handle
-{
- // Advances to the next set of results.
- //
- // In some SQL implementations, multiple result sets can exist on one query.
- // This is possible in MySQL with simple queries when executing a CALL
- // query. If this is the case, all result sets must be processed before
- // another query is made.
- //
- // @return True if there was another result set, false otherwise.
- public native bool FetchMoreResults();
-
- // Returns whether or not a result set exists. This will
- // return true even if 0 results were returned, but false
- // on queries like UPDATE, INSERT, or DELETE.
- property bool HasResults {
- public native get();
- }
-
- // Retrieves the number of rows in the last result set.
- //
- // @param query A query (or statement) Handle.
- // @return Number of rows in the current result set.
- property int RowCount {
- public native get();
- }
-
- // Retrieves the number of fields in the last result set.
- property int FieldCount {
- public native get();
- }
-
- // Returns the number of affected rows from the query that generated this
- // result set.
- property int AffectedRows {
- public native get();
- }
-
- // Returns the insert id from the query that generated this result set.
- property int InsertId {
- public native get();
- }
-
- // Retrieves the name of a field by index.
- //
- // @param field Field number (starting from 0).
- // @param name Name buffer.
- // @param maxlength Maximum length of the name buffer.
- // @error Invalid field index, or no current result set.
- public native void FieldNumToName(int field, char[] name, int maxlength);
-
- // Retrieves a field index by name.
- //
- // @param name Name of the field (case sensitive).
- // @param field Variable to store field index in.
- // @return True if found, false if not found.
- // @error No current result set.
- public native bool FieldNameToNum(const char[] name, int &field);
-
- // Fetches a row from the current result set. This must be
- // successfully called before any results are fetched.
- //
- // If this function fails, MoreRows can be used to
- // tell if there was an error or the result set is finished.
- //
- // @return True if a row was fetched, false otherwise.
- public native bool FetchRow();
-
- // Returns if there are more rows.
- //
- // @return True if there are more rows, false otherwise.
- property bool MoreRows {
- public native get();
- }
-
- // Rewinds a result set back to the first result.
- //
- // @return True on success, false otherwise.
- // @error No current result set.
- public native bool Rewind();
-
- // Fetches a string from a field in the current row of a result set.
- // If the result is NULL, an empty string will be returned. A NULL
- // check can be done with the result parameter, or SQL_IsFieldNull().
- //
- // @param field The field index (starting from 0).
- // @param buffer String buffer.
- // @param maxlength Maximum size of the string buffer.
- // @param result Optional variable to store the status of the return value.
- // @return Number of bytes written.
- // @error Invalid field index, invalid type conversion requested
- // from the database, or no current result set.
- public native int FetchString(int field, char[] buffer, int maxlength, DBResult &result=DBVal_Error);
-
- // Fetches a float from a field in the current row of a result set.
- // If the result is NULL, a value of 0.0 will be returned. A NULL
- // check can be done with the result parameter, or SQL_IsFieldNull().
- //
- // @param field The field index (starting from 0).
- // @param result Optional variable to store the status of the return value.
- // @return A float value.
- // @error Invalid field index, invalid type conversion requested
- // from the database, or no current result set.
- public native float FetchFloat(int field, DBResult &result=DBVal_Error);
-
- // Fetches an integer from a field in the current row of a result set.
- // If the result is NULL, a value of 0 will be returned. A NULL
- // check can be done with the result parameter, or SQL_IsFieldNull().
- //
- // @param field The field index (starting from 0).
- // @param result Optional variable to store the status of the return value.
- // @return An integer value.
- // @error Invalid field index, invalid type conversion requested
- // from the database, or no current result set.
- public native int FetchInt(int field, DBResult &result=DBVal_Error);
-
- // Returns whether a field's data in the current row of a result set is
- // NULL or not. NULL is an SQL type which means "no data."
- //
- // @param field The field index (starting from 0).
- // @return True if data is NULL, false otherwise.
- // @error Invalid field index, or no current result set.
- public native bool IsFieldNull(int field);
-
- // Returns the length of a field's data in the current row of a result
- // set. This only needs to be called for strings to determine how many
- // bytes to use. Note that the return value does not include the null
- // terminator.
- //
- // @param field The field index (starting from 0).
- // @return Number of bytes for the field's data size.
- // @error Invalid field index or no current result set.
- public native int FetchSize(int field);
-};
-
-typeset SQLTxnSuccess
-{
- // Callback for a successful transaction.
- //
- // @param db Database handle.
- // @param data Data value passed to SQL_ExecuteTransaction().
- // @param numQueries Number of queries executed in the transaction.
- // @param results An array of Query handle results, one for each of numQueries. They are closed automatically.
- // @param queryData An array of each data value passed to SQL_AddQuery().
- function void (Database db, any data, int numQueries, Handle[] results, any[] queryData);
-
- // Callback for a successful transaction.
- //
- // @param db Database handle.
- // @param data Data value passed to SQL_ExecuteTransaction().
- // @param numQueries Number of queries executed in the transaction.
- // @param results An array of DBResultSet results, one for each of numQueries. They are closed automatically.
- // @param queryData An array of each data value passed to SQL_AddQuery().
- function void (Database db, any data, int numQueries, DBResultSet[] results, any[] queryData);
-}
-
-/**
- * Callback for a failed transaction.
- *
- * @param db Database handle.
- * @param data Data value passed to SQL_ExecuteTransaction().
- * @param numQueries Number of queries executed in the transaction.
- * @param error Error message.
- * @param failIndex Index of the query that failed, or -1 if something else.
- * @param queryData An array of each data value passed to SQL_AddQuery().
- */
-typedef SQLTxnFailure = function void (Database db, any data, int numQueries, const char[] error, int failIndex, any[] queryData);
-
-// A Transaction is a collection of SQL statements that must all execute
-// successfully or not at all.
-methodmap Transaction < Handle
-{
- // Create a new transaction.
- public native Transaction();
-
- // Adds a query to the transaction.
- //
- // @param query Query string.
- // @param data Extra data value to pass to the final callback.
- // @return The index of the query in the transaction's query list.
- public native int AddQuery(const char[] query, any data=0);
-};
-
-// A DBStatement is a pre-compiled SQL query that may be executed multiple
-// times with different parameters. A DBStatement holds a reference to the
-// Database that prepared it.
-methodmap DBStatement < Handle
-{
- // Binds a parameter in a prepared statement to a given integer value.
- //
- // @param param The parameter index (starting from 0).
- // @param number The number to bind.
- // @param signed True to bind the number as signed, false to
- // bind it as unsigned.
- // @error Invalid parameter index, or SQL error.
- public native void BindInt(int param, int number, bool signed=true);
-
- // Binds a parameter in a prepared statement to a given float value.
- //
- // @param param The parameter index (starting from 0).
- // @param value The float number to bind.
- // @error Invalid parameter index, or SQL error.
- public native void BindFloat(int param, float value);
-
- // Binds a parameter in a prepared statement to a given string value.
- //
- // @param param The parameter index (starting from 0).
- // @param value The string to bind.
- // @param copy Whether or not SourceMod should copy the value
- // locally if necessary. If the string contents
- // won't change before calling SQL_Execute(), this
- // can be set to false for optimization.
- // @error Invalid parameter index, or SQL error.
- public native void BindString(int param, const char[] value, bool copy);
-};
-
-/**
- * Callback for receiving asynchronous database connections.
- *
- * @param db Handle to the database connection.
- * @param error Error string if there was an error. The error could be
- * empty even if an error condition exists, so it is important
- * to check the actual Handle value instead.
- * @param data Data passed in via the original threaded invocation.
- */
-typedef SQLConnectCallback = function void (Database db, const char[] error, any data);
-
-/**
- * Callback for receiving asynchronous database query results.
- *
- * @param db Cloned handle to the database connection.
- * @param results Result object, or null on failure.
- * @param error Error string if there was an error. The error could be
- * empty even if an error condition exists, so it is important
- * to check the actual results value instead.
- * @param data Data passed in via the original threaded invocation.
- */
-typedef SQLQueryCallback = function void (Database db, DBResultSet results, const char[] error, any data);
-
-// A Database represents a live connection to a database, either over the
-// wire, through a unix domain socket, or over an open file.
-methodmap Database < Handle
-{
- // Connects to a database asynchronously, so the game thread is not blocked.
- //
- // @param callback Callback. If no driver was found, the owner is null.
- // @param name Database configuration name.
- // @param data Extra data value to pass to the callback.
- public static native void Connect(SQLConnectCallback callback, const char[] name="default", any data=0);
-
- // Returns the driver for this database connection.
- property DBDriver Driver {
- public native get();
- }
-
- // Sets the character set of the connection.
- // Like SET NAMES .. in mysql, but stays after connection problems.
- //
- // Example: "utf8", "latin1"
- //
- // @param charset The character set string to change to.
- // @return True, if character set was changed, false otherwise.
- public native bool SetCharset(const char[] charset);
-
- // Escapes a database string for literal insertion. This is not needed
- // for binding strings in prepared statements.
- //
- // Generally, database strings are inserted into queries enclosed in
- // single quotes ('). If user input has a single quote in it, the
- // quote needs to be escaped. This function ensures that any unsafe
- // characters are safely escaped according to the database engine and
- // the database's character set.
- //
- // NOTE: SourceMod only guarantees properly escaped strings when the query
- // encloses the string in single quotes. While drivers tend to allow double
- // quotes (") instead, the string may be not be escaped (for example, on SQLite)!
- //
- // @param string String to quote.
- // @param buffer Buffer to store quoted string in.
- // @param maxlength Maximum length of the buffer.
- // @param written Optionally returns the number of bytes written.
- // @return True on success, false if buffer is not big enough.
- // The buffer must be at least 2*strlen(string)+1.
- public native bool Escape(const char[] string, char[] buffer, int maxlength, int &written=0);
-
- // Formats a string according to the SourceMod format rules (see documentation).
- // All format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.
- //
- // @param buffer Destination string buffer.
- // @param maxlength Maximum length of output string buffer.
- // @param format Formatting rules.
- // @param ... Variable number of format parameters.
- // @return Number of cells written.
- public native int Format(const char[] buffer, int maxlength, const char[] format, any ...);
-
- // Returns whether a database is the same connection as another database.
- public native bool IsSameConnection(Database other);
-
- // Executes a query via a thread. The result handle is passed through the
- // callback.
- //
- // The database handle returned through the callback is always a new Handle,
- // and if necessary, IsSameConnection() should be used to test against other
- // connections.
- //
- // The result handle returned through the callback is temporary and destroyed
- // at the end of the callback.
- //
- // @param callback Callback.
- // @param query Query string.
- // @param data Extra data value to pass to the callback.
- // @param prio Priority queue to use.
- public native void Query(SQLQueryCallback callback, const char[] query,
- any data = 0,
- DBPriority prio = DBPrio_Normal);
-
- // Sends a transaction to the database thread. The transaction handle is
- // automatically closed. When the transaction completes, the optional
- // callback is invoked.
- //
- // @param txn A transaction handle.
- // @param onSuccess An optional callback to receive a successful transaction.
- // @param onError An optional callback to receive an error message.
- // @param data An optional value to pass to callbacks.
- // @param prio Priority queue to use.
- public native void Execute(Transaction txn,
- SQLTxnSuccess onSuccess = INVALID_FUNCTION,
- SQLTxnFailure onError = INVALID_FUNCTION,
- any data = 0,
- DBPriority priority = DBPrio_Normal);
-};
-
-/**
- * Creates an SQL connection from a named configuration.
- *
- * @param confname Named configuration.
- * @param persistent True to re-use a previous persistent connection if
- * possible, false otherwise.
- * @param error Error buffer.
- * @param maxlength Maximum length of the error buffer.
- * @return A database connection Handle, or INVALID_HANDLE on failure.
- */
-native Database SQL_Connect(const char[] confname, bool persistent, char[] error, int maxlength);
-
-/**
- * Creates a default SQL connection.
- *
- * @param error Error buffer.
- * @param maxlength Maximum length of the error buffer.
- * @param persistent True to re-use a previous persistent connection
- * if possible, false otherwise.
- * @return A database connection Handle, or INVALID_HANDLE on failure.
- * On failure the error buffer will be filled with a message.
- */
-stock Database SQL_DefConnect(char[] error, int maxlength, bool persistent=true)
-{
- return SQL_Connect("default", persistent, error, maxlength);
-}
-
-/**
- * Connects to a database using key value pairs containing the database info.
- * The key/value pairs should match what would be in databases.cfg.
- *
- * I.e. "driver" should be "default" or a driver name (or omitted for
- * the default). For SQLite, only the "database" parameter is needed in addition.
- * For drivers which require external connections, more of the parameters may be
- * needed.
- *
- * In general it is discouraged to use this function. Connections should go through
- * databases.cfg for greatest flexibility on behalf of users.
- *
- * @param keyvalues Key/value pairs from a KeyValues handle, describing the connection.
- * @param error Error buffer.
- * @param maxlength Maximum length of the error buffer.
- * @param persistent True to re-use a previous persistent connection if
- * possible, false otherwise.
- * @return A database connection Handle, or INVALID_HANDLE on failure.
- * On failure the error buffer will be filled with a message.
- * @error Invalid KeyValues handle.
- */
-native Database SQL_ConnectCustom(Handle keyvalues,
- char[] error,
- int maxlength,
- bool persistent);
-
-/**
- * Grabs a handle to an SQLite database, creating one if it does not exist.
- *
- * Unless there are extenuating circumstances, you should consider using "sourcemod-local" as the
- * database name. This provides some unification between plugins on behalf of users.
- *
- * As a precaution, you should always create some sort of unique prefix to your table names so
- * there are no conflicts, and you should never drop or modify tables that you do not own.
- *
- * @param database Database name.
- * @param error Error buffer.
- * @param maxlength Maximum length of the error buffer.
- * @return A database connection Handle, or INVALID_HANDLE on failure.
- * On failure the error buffer will be filled with a message.
- */
-stock Database SQLite_UseDatabase(const char[] database, char[] error, int maxlength)
-{
- KeyValues kv = new KeyValues("");
- kv.SetString("driver", "sqlite");
- kv.SetString("database", database);
-
- Database db = SQL_ConnectCustom(kv, error, maxlength, false);
-
- delete kv;
-
- return db;
-}
-
-/**
- * This function is deprecated. Use SQL_ConnectCustom or SQLite_UseDatabase instead.
- * @deprecated
- */
-#pragma deprecated Use SQL_ConnectCustom instead.
-native Handle SQL_ConnectEx(Handle driver,
- const char[] host,
- const char[] user,
- const char[] pass,
- const char[] database,
- char[] error,
- int maxlength,
- bool persistent=true,
- int port=0,
- int maxTimeout=0);
-
-/**
- * Returns if a named configuration is present in databases.cfg.
- *
- * @param name Configuration name.
- * @return True if it exists, false otherwise.
- */
-native bool SQL_CheckConfig(const char[] name);
-
-/**
- * Returns a driver Handle from a name string.
- *
- * If the driver is not found, SourceMod will attempt
- * to load an extension named dbi..ext.[dll|so].
- *
- * @param name Driver identification string, or an empty
- * string to return the default driver.
- * @return Driver Handle, or INVALID_HANDLE on failure.
- */
-native DBDriver SQL_GetDriver(const char[] name="");
-
-/**
- * Reads the driver of an opened database.
- *
- * @param database Database Handle.
- * @param ident Option buffer to store the identification string.
- * @param ident_length Maximum length of the buffer.
- * @return Driver Handle.
- */
-native DBDriver SQL_ReadDriver(Handle database, char[] ident="", int ident_length=0);
-
-/**
- * Retrieves a driver's identification string.
- *
- * Example: "mysql", "sqlite"
- *
- * @param driver Driver Handle, or INVALID_HANDLE for the default driver.
- * @param ident Identification string buffer.
- * @param maxlength Maximum length of the buffer.
- * @error Invalid Handle other than INVALID_HANDLE.
- */
-native void SQL_GetDriverIdent(Handle driver, char[] ident, int maxlength);
-
-/**
- * Retrieves a driver's product string.
- *
- * Example: "MySQL", "SQLite"
- *
- * @param driver Driver Handle, or INVALID_HANDLE for the default driver.
- * @param product Product string buffer.
- * @param maxlength Maximum length of the buffer.
- * @error Invalid Handle other than INVALID_HANDLE.
- */
-native void SQL_GetDriverProduct(Handle driver, char[] product, int maxlength);
-
-/**
- * Sets the character set of the current connection.
- * Like SET NAMES .. in mysql, but stays after connection problems.
- *
- * Example: "utf8", "latin1"
- *
- * @param database Database Handle.
- * @param charset The character set string to change to.
- * @return True, if character set was changed, false otherwise.
- */
-native bool SQL_SetCharset(Handle database, const char[] charset);
-
-/**
- * Returns the number of affected rows from the last query.
- *
- * @param hndl A database OR statement Handle.
- * @return Number of rows affected by the last query.
- * @error Invalid database or statement Handle.
- */
-native int SQL_GetAffectedRows(Handle hndl);
-
-/**
- * Returns the last query's insertion id.
- *
- * @param hndl A database, query, OR statement Handle.
- * @return Last query's insertion id.
- * @error Invalid database, query, or statement Handle.
- */
-native int SQL_GetInsertId(Handle hndl);
-
-/**
- * Returns the error reported by the last query.
- *
- * @param hndl A database, query, OR statement Handle.
- * @param error Error buffer.
- * @param maxlength Maximum length of the buffer.
- * @return True if there was an error, false otherwise.
- * @error Invalid database, query, or statement Handle.
- */
-native bool SQL_GetError(Handle hndl, char[] error, int maxlength);
-
-/**
- * Escapes a database string for literal insertion. This is not needed
- * for binding strings in prepared statements.
- *
- * Generally, database strings are inserted into queries enclosed in
- * single quotes ('). If user input has a single quote in it, the
- * quote needs to be escaped. This function ensures that any unsafe
- * characters are safely escaped according to the database engine and
- * the database's character set.
- *
- * NOTE: SourceMod only guarantees properly escaped strings when the query
- * encloses the string in single quotes. While drivers tend to allow double
- * quotes (") instead, the string may be not be escaped (for example, on SQLite)!
- *
- * @param database A database Handle.
- * @param string String to quote.
- * @param buffer Buffer to store quoted string in.
- * @param maxlength Maximum length of the buffer.
- * @param written Optionally returns the number of bytes written.
- * @return True on success, false if buffer is not big enough.
- * The buffer must be at least 2*strlen(string)+1.
- * @error Invalid database or statement Handle.
- */
-native bool SQL_EscapeString(Handle database,
- const char[] string,
- char[] buffer,
- int maxlength,
- int &written=0);
-
-/**
- * Formats a string according to the SourceMod format rules (see documentation).
- * All format specifiers are escaped (see SQL_EscapeString) unless the '!' flag is used.
- *
- * @param database A database Handle.
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @return Number of cells written.
- */
-native int SQL_FormatQuery(Handle database, const char[] buffer, int maxlength, const char[] format, any ...);
-
-/**
- * This function is deprecated. Use SQL_EscapeString instead.
- * @deprecated
- */
-#pragma deprecated Use SQL_EscapeString instead.
-stock bool SQL_QuoteString(Handle database,
- const char[] string,
- char[] buffer,
- int maxlength,
- int &written=0)
-{
- return SQL_EscapeString(database, string, buffer, maxlength, written);
-}
-
-/**
- * Executes a query and ignores the result set.
- *
- * @param database A database Handle.
- * @param query Query string.
- * @param len Optional parameter to specify the query length, in
- * bytes. This can be used to send binary queries that
- * have a premature terminator.
- * @return True if query succeeded, false otherwise. Use
- * SQL_GetError to find the last error.
- * @error Invalid database Handle.
- */
-native bool SQL_FastQuery(Handle database, const char[] query, int len=-1);
-
-/**
- * Executes a simple query and returns a new query Handle for
- * receiving the results.
- *
- * @param database A database Handle.
- * @param query Query string.
- * @param len Optional parameter to specify the query length, in
- * bytes. This can be used to send binary queries that
- * have a premature terminator.
- * @return A new Query Handle on success, INVALID_HANDLE
- * otherwise. The Handle must be freed with CloseHandle().
- * @error Invalid database Handle.
- */
-native DBResultSet SQL_Query(Handle database, const char[] query, int len=-1);
-
-/**
- * Creates a new prepared statement query. Prepared statements can
- * be executed any number of times. They can also have placeholder
- * parameters, similar to variables, which can be bound safely and
- * securely (for example, you do not need to quote bound strings).
- *
- * Statement handles will work in any function that accepts a Query handle.
- *
- * @param database A database Handle.
- * @param query Query string.
- * @param error Error buffer.
- * @param maxlength Maximum size of the error buffer.
- * @return A new statement Handle on success, INVALID_HANDLE
- * otherwise. The Handle must be freed with CloseHandle().
- * @error Invalid database Handle.
- */
-native DBStatement SQL_PrepareQuery(Handle database, const char[] query, char[] error, int maxlength);
-
-/**
- * Advances to the next set of results.
- *
- * In some SQL implementations, multiple result sets can exist on one query.
- * This is possible in MySQL with simple queries when executing a CALL
- * query. If this is the case, all result sets must be processed before
- * another query is made.
- *
- * @param query A query Handle.
- * @return True if there was another result set, false otherwise.
- * @error Invalid query Handle.
- */
-native bool SQL_FetchMoreResults(Handle query);
-
-/**
- * Returns whether or not a result set exists. This will
- * return true even if 0 results were returned, but false
- * on queries like UPDATE, INSERT, or DELETE.
- *
- * @param query A query (or statement) Handle.
- * @return True if there is a result set, false otherwise.
- * @error Invalid query Handle.
- */
-native bool SQL_HasResultSet(Handle query);
-
-/**
- * Retrieves the number of rows in the last result set.
- *
- * @param query A query (or statement) Handle.
- * @return Number of rows in the current result set.
- * @error Invalid query Handle.
- */
-native int SQL_GetRowCount(Handle query);
-
-/**
- * Retrieves the number of fields in the last result set.
- *
- * @param query A query (or statement) Handle.
- * @return Number of fields in the current result set.
- * @error Invalid query Handle.
- */
-native int SQL_GetFieldCount(Handle query);
-
-/**
- * Retrieves the name of a field by index.
- *
- * @param query A query (or statement) Handle.
- * @param field Field number (starting from 0).
- * @param name Name buffer.
- * @param maxlength Maximum length of the name buffer.
- * @error Invalid query Handle, invalid field index, or
- * no current result set.
- */
-native void SQL_FieldNumToName(Handle query, int field, char[] name, int maxlength);
-
-/**
- * Retrieves a field index by name.
- *
- * @param query A query (or statement) Handle.
- * @param name Name of the field (case sensitive).
- * @param field Variable to store field index in.
- * @return True if found, false if not found.
- * @error Invalid query Handle or no current result set.
- */
-native bool SQL_FieldNameToNum(Handle query, const char[] name, int &field);
-
-/**
- * Fetches a row from the current result set. This must be
- * successfully called before any results are fetched.
- *
- * If this function fails, SQL_MoreRows() can be used to
- * tell if there was an error or the result set is finished.
- *
- * @param query A query (or statement) Handle.
- * @return True if a row was fetched, false otherwise.
- * @error Invalid query Handle.
- */
-native bool SQL_FetchRow(Handle query);
-
-/**
- * Returns if there are more rows.
- *
- * @param query A query (or statement) Handle.
- * @return True if there are more rows, false otherwise.
- * @error Invalid query Handle.
- */
-native bool SQL_MoreRows(Handle query);
-
-/**
- * Rewinds a result set back to the first result.
- *
- * @param query A query (or statement) Handle.
- * @return True on success, false otherwise.
- * @error Invalid query Handle or no current result set.
- */
-native bool SQL_Rewind(Handle query);
-
-/**
- * Fetches a string from a field in the current row of a result set.
- * If the result is NULL, an empty string will be returned. A NULL
- * check can be done with the result parameter, or SQL_IsFieldNull().
- *
- * @param query A query (or statement) Handle.
- * @param field The field index (starting from 0).
- * @param buffer String buffer.
- * @param maxlength Maximum size of the string buffer.
- * @param result Optional variable to store the status of the return value.
- * @return Number of bytes written.
- * @error Invalid query Handle or field index, invalid
- * type conversion requested from the database,
- * or no current result set.
- */
-native int SQL_FetchString(Handle query, int field, char[] buffer, int maxlength, DBResult &result=DBVal_Error);
-
-/**
- * Fetches a float from a field in the current row of a result set.
- * If the result is NULL, a value of 0.0 will be returned. A NULL
- * check can be done with the result parameter, or SQL_IsFieldNull().
- *
- * @param query A query (or statement) Handle.
- * @param field The field index (starting from 0).
- * @param result Optional variable to store the status of the return value.
- * @return A float value.
- * @error Invalid query Handle or field index, invalid
- * type conversion requested from the database,
- * or no current result set.
- */
-native float SQL_FetchFloat(Handle query, int field, DBResult &result=DBVal_Error);
-
-/**
- * Fetches an integer from a field in the current row of a result set.
- * If the result is NULL, a value of 0 will be returned. A NULL
- * check can be done with the result parameter, or SQL_IsFieldNull().
- *
- * @param query A query (or statement) Handle.
- * @param field The field index (starting from 0).
- * @param result Optional variable to store the status of the return value.
- * @return An integer value.
- * @error Invalid query Handle or field index, invalid
- * type conversion requested from the database,
- * or no current result set.
- */
-native int SQL_FetchInt(Handle query, int field, DBResult &result=DBVal_Error);
-
-/**
- * Returns whether a field's data in the current row of a result set is
- * NULL or not. NULL is an SQL type which means "no data."
- *
- * @param query A query (or statement) Handle.
- * @param field The field index (starting from 0).
- * @return True if data is NULL, false otherwise.
- * @error Invalid query Handle or field index, or no
- * current result set.
- */
-native bool SQL_IsFieldNull(Handle query, int field);
-
-/**
- * Returns the length of a field's data in the current row of a result
- * set. This only needs to be called for strings to determine how many
- * bytes to use. Note that the return value does not include the null
- * terminator.
- *
- * @param query A query (or statement) Handle.
- * @param field The field index (starting from 0).
- * @return Number of bytes for the field's data size.
- * @error Invalid query Handle or field index or no
- * current result set.
- */
-native int SQL_FetchSize(Handle query, int field);
-
-/**
- * Binds a parameter in a prepared statement to a given integer value.
- *
- * @param statement A statement (prepared query) Handle.
- * @param param The parameter index (starting from 0).
- * @param number The number to bind.
- * @param signed True to bind the number as signed, false to
- * bind it as unsigned.
- * @error Invalid statement Handle or parameter index, or
- * SQL error.
- */
-native void SQL_BindParamInt(Handle statement, int param, int number, bool signed=true);
-
-/**
- * Binds a parameter in a prepared statement to a given float value.
- *
- * @param statement A statement (prepared query) Handle.
- * @param param The parameter index (starting from 0).
- * @param value The float number to bind.
- * @error Invalid statement Handle or parameter index, or
- * SQL error.
- */
-native void SQL_BindParamFloat(Handle statement, int param, float value);
-
-/**
- * Binds a parameter in a prepared statement to a given string value.
- *
- * @param statement A statement (prepared query) Handle.
- * @param param The parameter index (starting from 0).
- * @param value The string to bind.
- * @param copy Whether or not SourceMod should copy the value
- * locally if necessary. If the string contents
- * won't change before calling SQL_Execute(), this
- * can be set to false for optimization.
- * @error Invalid statement Handle or parameter index, or
- * SQL error.
- */
-native void SQL_BindParamString(Handle statement, int param, const char[] value, bool copy);
-
-/**
- * Executes a prepared statement. All parameters must be bound beforehand.
- *
- * @param statement A statement (prepared query) Handle.
- * @return True on success, false on failure.
- * @error Invalid statement Handle.
- */
-native bool SQL_Execute(Handle statement);
-
-/**
- * Locks a database so threading operations will not interrupt.
- *
- * If you are using a database Handle for both threading and non-threading,
- * this MUST be called before doing any set of non-threading DB operations.
- * Otherwise you risk corrupting the database driver's memory or network
- * connection.
- *
- * Leaving a lock on a database and then executing a threaded query results
- * in a dead lock! Make sure to call SQL_UnlockDatabase()!
- *
- * If the lock cannot be acquired, the main thread will pause until the
- * threaded operation has concluded.
- *
- * @param database A database Handle.
- * @error Invalid database Handle.
- */
-native void SQL_LockDatabase(Handle database);
-
-/**
- * Unlocks a database so threading operations may continue.
- *
- * @param database A database Handle.
- * @error Invalid database Handle.
- */
-native void SQL_UnlockDatabase(Handle database);
-
-/**
- * General callback for threaded SQL stuff.
- *
- * @param owner Parent object of the Handle (or INVALID_HANDLE if none).
- * @param hndl Handle to the child object (or INVALID_HANDLE if none).
- * @param error Error string if there was an error. The error could be
- * empty even if an error condition exists, so it is important
- * to check the actual Handle value instead.
- * @param data Data passed in via the original threaded invocation.
- */
-typedef SQLTCallback = function void (Handle owner, Handle hndl, const char[] error, any data);
-
-/**
- * Tells whether two database handles both point to the same database
- * connection.
- *
- * @param hndl1 First database Handle.
- * @param hndl2 Second database Handle.
- * @return True if the Handles point to the same
- * connection, false otherwise.
- * @error Invalid Handle.
- */
-native bool SQL_IsSameConnection(Handle hndl1, Handle hndl2);
-
-/**
- * Connects to a database via a thread. This can be used instead of
- * SQL_Connect() if you wish for non-blocking functionality.
- *
- * It is not necessary to use this to use threaded queries. However, if you
- * don't (or you mix threaded/non-threaded queries), you should see
- * SQL_LockDatabase().
- *
- * @param callback Callback; new Handle will be in hndl, owner is the driver.
- * If no driver was found, the owner is INVALID_HANDLE.
- * @param name Database name.
- * @param data Extra data value to pass to the callback.
- */
-native void SQL_TConnect(SQLTCallback callback, const char[] name="default", any data=0);
-
-/**
- * Executes a simple query via a thread. The query Handle is passed through
- * the callback.
- *
- * The database Handle returned through the callback is always a new Handle,
- * and if necessary, SQL_IsSameConnection() should be used to test against
- * other connections.
- *
- * The query Handle returned through the callback is temporary and destroyed
- * at the end of the callback. If you need to hold onto it, use CloneHandle().
- *
- * @param database A database Handle.
- * @param callback Callback; database is in "owner" and the query Handle
- * is passed in "hndl".
- * @param query Query string.
- * @param data Extra data value to pass to the callback.
- * @param prio Priority queue to use.
- * @error Invalid database Handle.
- */
-native void SQL_TQuery(Handle database, SQLTCallback callback, const char[] query, any data=0, DBPriority prio=DBPrio_Normal);
-
-/**
- * Creates a new transaction object. A transaction object is a list of queries
- * that can be sent to the database thread and executed as a single transaction.
- *
- * @return A transaction handle.
- */
-native Transaction SQL_CreateTransaction();
-
-/**
- * Adds a query to a transaction object.
- *
- * @param txn A transaction handle.
- * @param query Query string.
- * @param data Extra data value to pass to the final callback.
- * @return The index of the query in the transaction's query list.
- * @error Invalid transaction handle.
- */
-native int SQL_AddQuery(Transaction txn, const char[] query, any data=0);
-
-/**
- * Sends a transaction to the database thread. The transaction handle is
- * automatically closed. When the transaction completes, the optional
- * callback is invoked.
- *
- * @param db A database handle.
- * @param txn A transaction handle.
- * @param onSuccess An optional callback to receive a successful transaction.
- * @param onError An optional callback to receive an error message.
- * @param data An optional value to pass to callbacks.
- * @param prio Priority queue to use.
- * @error An invalid handle.
- */
-native void SQL_ExecuteTransaction(
- Handle db,
- Transaction txn,
- SQLTxnSuccess onSuccess = INVALID_FUNCTION,
- SQLTxnFailure onError = INVALID_FUNCTION,
- any data=0,
- DBPriority priority=DBPrio_Normal);
diff --git a/addons/sourcemod/scripting/include/dhooks.inc b/addons/sourcemod/scripting/include/dhooks.inc
deleted file mode 100644
index 51bb3bb6a..000000000
--- a/addons/sourcemod/scripting/include/dhooks.inc
+++ /dev/null
@@ -1,1067 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2021 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _dhooks_included
-#endinput
-#endif
-#define _dhooks_included
-
-// Needed for the SDKFuncConfSource enum.
-#include
-
-#define INVALID_HOOK_ID 0
-
-enum ObjectValueType
-{
- ObjectValueType_Int = 0,
- ObjectValueType_Bool,
- ObjectValueType_Ehandle,
- ObjectValueType_Float,
- ObjectValueType_CBaseEntityPtr,
- ObjectValueType_IntPtr,
- ObjectValueType_BoolPtr,
- ObjectValueType_EhandlePtr,
- ObjectValueType_FloatPtr,
- ObjectValueType_Vector,
- ObjectValueType_VectorPtr,
- ObjectValueType_CharPtr,
- ObjectValueType_String
-};
-
-enum ListenType
-{
- ListenType_Created,
- ListenType_Deleted
-};
-
-enum ReturnType
-{
- ReturnType_Unknown,
- ReturnType_Void,
- ReturnType_Int,
- ReturnType_Bool,
- ReturnType_Float,
- ReturnType_String, //Note this is a string_t
- ReturnType_StringPtr, //Note this is a string_t *
- ReturnType_CharPtr,
- ReturnType_Vector,
- ReturnType_VectorPtr,
- ReturnType_CBaseEntity,
- ReturnType_Edict
-};
-
-enum HookParamType
-{
- HookParamType_Unknown,
- HookParamType_Int,
- HookParamType_Bool,
- HookParamType_Float,
- HookParamType_String, //Note this is a string_t
- HookParamType_StringPtr, //Note this is a string_t *
- HookParamType_CharPtr,
- HookParamType_VectorPtr,
- HookParamType_CBaseEntity,
- HookParamType_ObjectPtr,
- HookParamType_Edict,
- HookParamType_Object
-};
-
-enum ThisPointerType
-{
- ThisPointer_Ignore,
- ThisPointer_CBaseEntity,
- ThisPointer_Address
-};
-
-enum HookType
-{
- HookType_Entity,
- HookType_GameRules,
- HookType_Raw
-};
-
-enum CallingConvention
-{
- CallConv_CDECL,
- CallConv_THISCALL,
- CallConv_STDCALL,
- CallConv_FASTCALL,
-};
-
-enum HookMode
-{
- Hook_Pre, // Callback will be executed BEFORE the original function.
- Hook_Post // Callback will be executed AFTER the original function.
-};
-
-enum MRESReturn
-{
- MRES_ChangedHandled = -2, // Use changed values and return MRES_Handled
- MRES_ChangedOverride, // Use changed values and return MRES_Override
- MRES_Ignored, // plugin didn't take any action
- MRES_Handled, // plugin did something, but real function should still be called
- MRES_Override, // call real function, but use my return value
- MRES_Supercede // skip real function; use my return value
-};
-
-enum DHookPassFlag
-{
- DHookPass_ByVal = (1<<0), /**< Passing by value */
- DHookPass_ByRef = (1<<1), /**< Passing by reference */
- DHookPass_ODTOR = (1<<2), /**< Object has a destructor */
- DHookPass_OCTOR = (1<<3), /**< Object has a constructor */
- DHookPass_OASSIGNOP = (1<<4), /**< Object has an assignment operator */
-};
-
-enum DHookRegister
-{
- // Don't change the register and use the default for the calling convention.
- DHookRegister_Default,
-
- // 8-bit general purpose registers
- DHookRegister_AL,
- DHookRegister_CL,
- DHookRegister_DL,
- DHookRegister_BL,
- DHookRegister_AH,
- DHookRegister_CH,
- DHookRegister_DH,
- DHookRegister_BH,
-
- // 32-bit general purpose registers
- DHookRegister_EAX,
- DHookRegister_ECX,
- DHookRegister_EDX,
- DHookRegister_EBX,
- DHookRegister_ESP,
- DHookRegister_EBP,
- DHookRegister_ESI,
- DHookRegister_EDI,
-
- // 128-bit XMM registers
- DHookRegister_XMM0,
- DHookRegister_XMM1,
- DHookRegister_XMM2,
- DHookRegister_XMM3,
- DHookRegister_XMM4,
- DHookRegister_XMM5,
- DHookRegister_XMM6,
- DHookRegister_XMM7,
-
- // 80-bit FPU registers
- DHookRegister_ST0
-};
-
-typeset ListenCB
-{
- //Deleted
- function void (int entity);
-
- //Created
- function void (int entity, const char[] classname);
-};
-
-typeset DHookRemovalCB
-{
- function void (int hookid);
-};
-typeset DHookCallback
-{
- //Function Example: void Ham::Test() with this pointer ignore
- function MRESReturn ();
-
- //Function Example: void Ham::Test() with this pointer passed
- function MRESReturn (int pThis);
-
- //Function Example: void Ham::Test(int cake) with this pointer ignore
- function MRESReturn (DHookParam hParams);
-
- //Function Example: void Ham::Test(int cake) with this pointer passed
- function MRESReturn (int pThis, DHookParam hParams);
-
- //Function Example: int Ham::Test() with this pointer ignore
- function MRESReturn (DHookReturn hReturn);
-
- //Function Example: int Ham::Test() with this pointer passed
- function MRESReturn (int pThis, DHookReturn hReturn);
-
- //Function Example: int Ham::Test(int cake) with this pointer ignore
- function MRESReturn (DHookReturn hReturn, DHookParam hParams);
-
- //Function Example: int Ham::Test(int cake) with this pointer passed
- function MRESReturn (int pThis, DHookReturn hReturn, DHookParam hParams);
-
- //Address NOW
-
- //Function Example: void Ham::Test() with this pointer passed
- function MRESReturn (Address pThis);
-
- //Function Example: void Ham::Test(int cake) with this pointer passed
- function MRESReturn (Address pThis, DHookParam hParams);
-
- //Function Example: int Ham::Test() with this pointer passed
- function MRESReturn (Address pThis, DHookReturn hReturn);
-
- //Function Example: int Ham::Test(int cake) with this pointer passed
- function MRESReturn (Address pThis, DHookReturn hReturn, DHookParam hParams);
-
-};
-
-// Represents the parameters of the hooked function.
-methodmap DHookParam < Handle
-{
- // Get the value of a parameter.
- // Use only for: int, entity, edict, bool or float parameter types.
- //
- // @param num Parameter number to get, starting at 1. Parameter number 0 returns
- // the number of parameters.
- //
- // @return Value if num greater than 0. If 0 returns parameter count.
- // If CBaseEntity returns entity index.
- // @error Invalid handle, invalid param number or invalid param type.
- public native any Get(int num);
-
- // Get the value of a vector parameter.
- // Use only for: vector or vectorptr parameter types.
- //
- // @param num Parameter number to get, starting at 1.
- // @param vec Vector buffer to store result.
- //
- // @error Invalid handle, invalid param number or invalid param type.
- public native void GetVector(int num, float vec[3]);
-
- // Get the value of a string parameter.
- // Use only for: string, stringptr or charptr parameter types.
- //
- // @param num Parameter number to get, starting at 1.
- // @param buffer String buffer to store result.
- // @param size Buffer size.
- //
- // @error Invalid handle, invalid param number or invalid param type.
- public native void GetString(int num, char[] buffer, int size);
-
- // Set the value of a parameter.
- // Use only for: int, entity, edict, bool or float parameter types.
- //
- // The changes are only applied when MRES_ChangedHandled or MRES_ChangedOverride
- // is returned in the callback.
- //
- // @param num Parameter number to set starting at 1.
- // @param value Value to set it as (only pass int, bool, float or entity index).
- //
- // @error Invalid handle, invalid param number or invalid param type.
- public native void Set(int num, any value);
-
- // Set the value of a vector parameter.
- // Use only for: vector or vectorptr parameter types.
- //
- // The changes are only applied when MRES_ChangedHandled or MRES_ChangedOverride
- // is returned in the callback.
- //
- // @param num Parameter number to set, starting at 1.
- // @param vec Value to set vector as.
- //
- // @error Invalid handle, invalid param number or invalid param type.
- public native void SetVector(int num, const float vec[3]);
-
- // Set the value of a string parameter.
- // Use only for: string, stringptr or charptr parameter types.
- //
- // The changes are only applied when MRES_ChangedHandled or MRES_ChangedOverride
- // is returned in the callback.
- //
- // @param num Parameter number to set, starting at 1.
- // @param value Value to set string as.
- //
- // @error Invalid handle, invalid param number or invalid param type.
- public native void SetString(int num, const char[] value);
-
- // Gets an object's variable value.
- //
- // @param num Parameter number to get, starting at 1.
- // @param offset Byte offset within the object to the var to get.
- // @param type Type of var it is.
- //
- // @return Value of the objects var. If EHANDLE type or entity returns entity index.
- // @error Invalid handle, invalid param number, invalid param type or invalid Object type.
- public native any GetObjectVar(int num, int offset, ObjectValueType type);
-
- // Gets an object's vector variable value.
- //
- // @param num Parameter number to get, starting at 1.
- // @param offset Byte offset within the object to the var to get.
- // @param type Type of var it is.
- // @param vec Buffer to store the result vector.
- //
- // @error Invalid handle, invalid param number, invalid param type or invalid Object type.
- public native void GetObjectVarVector(int num, int offset, ObjectValueType type, float vec[3]);
-
- // Gets an object's string variable value.
- //
- // @param num Parameter number to get, starting at 1.
- // @param offset Byte offset within the object to the var to get.
- // @param type Type of var it is.
- // @param buffer Buffer to store the result string.
- // @param size Size of the buffer.
- //
- // @error Invalid handle, invalid param number, invalid param type or invalid Object type.
- public native void GetObjectVarString(int num, int offset, ObjectValueType type, char[] buffer, int size);
-
- // Sets an object's variable value.
- //
- // The changes are only applied when MRES_ChangedHandled or MRES_ChangedOverride
- // is returned in the callback.
- //
- // @param num Parameter number to set, starting at 1.
- // @param offset Byte offset within the object to the var to set.
- // @param type Type of var it is.
- // @param value The value to set the var to.
- //
- // @error Invalid handle, invalid param number, invalid param type or invalid Object type.
- public native void SetObjectVar(int num, int offset, ObjectValueType type, any value);
-
- // Sets an object's vector variable value.
- //
- // The changes are only applied when MRES_ChangedHandled or MRES_ChangedOverride
- // is returned in the callback.
- //
- // @param num Parameter number to set, starting at 1.
- // @param offset Byte offset within the object to the var to set.
- // @param type Type of var it is.
- // @param vec The value to set the vector var to.
- //
- // @error Invalid handle, invalid param number, invalid param type or invalid Object type.
- public native void SetObjectVarVector(int num, int offset, ObjectValueType type, const float vec[3]);
-
- // No setter for object strings yet. Open an issue if you really need it.
-
- // Checks if a pointer parameter is null.
- //
- // @param num Parameter number to check, starting at 1.
- //
- // @return True if null, false otherwise.
- // @error Non-pointer parameter.
- public native bool IsNull(int num);
-
- // Get param address (Use only for ptr param types)
- //
- // @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
- //
- // @error Invalid handle. Invalid param number. Invalid param type.
- // @return address of the parameter.
- public native Address GetAddress(int num);
-};
-
-
-// Represents the return value of the hooked function.
-methodmap DHookReturn < Handle
-{
- // Retrieves or sets the return value.
- // Use only for: int, entity, edict, bool or float return types.
- //
- // The return value is only readable in a post hook.
- // The value is only applied when MRES_Override or MRES_Supercede is returned
- // in the callback.
- property any Value {
- public native get();
- public native set(any value);
- }
-
- // Get return vector value.
- // Use only for: vector or vectorptr return types.
- //
- // Only useful in post hooks.
- //
- // @param vec Vector buffer to store result in.
- //
- // @error Invalid Handle or invalid type.
- public native void GetVector(float vec[3]);
-
- // Get return string value.
- // Use only for: string, stringptr or charptr return types.
- //
- // Only useful in post hooks.
- //
- // @param buffer String buffer to store result in.
- // @param size String buffer size.
- //
- // @error Invalid Handle or invalid type.
- public native void GetString(char[] buffer, int size);
-
- // Set return vector value.
- // Use only for: vector or vectorptr return types.
- //
- // The value is only applied when MRES_Override or MRES_Supercede is returned
- // in the callback.
- //
- // @param vec Value to set return vector to.
- //
- // @error Invalid Handle or invalid type.
- public native void SetVector(const float vec[3]);
-
- // Set return string value.
- // Use only for: string, stringptr or charptr return types.
- //
- // The value is only applied when MRES_Override or MRES_Supercede is returned
- // in the callback.
- //
- // @param buffer Value to set return string to.
- //
- // @error Invalid Handle or invalid type.
- public native void SetString(const char[] buffer);
-};
-
-// Base method map for common functions between virtual hooks and detours.
-methodmap DHookSetup < Handle
-{
- // Load address or offset for a vtable hook or detour from a gamedata file.
- //
- // @param gameconf GameData handle.
- // @param source Whether to look in Offsets, Signatures, or Addresses.
- // @param name Name of the property to find.
- //
- // @return True on success, false if nothing was found.
- // @error Invalid setup or gamedata handle.
- public native bool SetFromConf(Handle gameconf, SDKFuncConfSource source, const char[] name);
-
- // Adds a parameter to a hook setup.
- //
- // @param type Parameter type.
- // @param size Used for Objects (not Object ptr) to define the size of the object.
- // @param flag Used to change the pass type (ignored by detours).
- // @param custom_register The register this argument is passed in instead of the stack (ignored by vhooks).
- //
- // @error Invalid setup handle or too many params added (request upping the max in thread).
- public native void AddParam(HookParamType type, int size=-1, DHookPassFlag flag=DHookPass_ByVal, DHookRegister custom_register=DHookRegister_Default);
-};
-
-// A DynamicHook allows to hook a virtual function on any C++ object.
-// Currently CBaseEntity and CGameRules have a convenience API for easy entity hooking,
-// but it's possible to provide a raw this-pointer to hook any object in memory too.
-//
-// Internally this intercepts function calls by replacing the function pointer
-// in the virtual table of the object with our own function.
-methodmap DynamicHook < DHookSetup
-{
- // Creates a vtable hook.
- //
- // @param offset Virtual table offset of function to hook.
- // @param hooktype Type of hook.
- // @param returntype Type of return value.
- // @param thistype Type of this pointer or ignore (ignore can be used if not needed).
- //
- // @error Failed to create hook setup handle or invalid callback function.
- public native DynamicHook(int offset, HookType hooktype, ReturnType returntype, ThisPointerType thistype);
-
- // Setup a vtable hook for a function as described in a "Functions" section in gamedata.
- // The "Functions" section is parsed once the gamedata file is loaded and cached globally.
- //
- // @param gameconf GameData handle to use for address lookup.
- // Doesn't have to be the same as the one with the "Functions" section.
- // @param name Name of the function in a "Functions" section to load.
- //
- // @return Setup handle for the detour or null if offset wasn't found.
- // @error Failed to create detour setup handle, invalid gamedata handle,
- // invalid callback function or failed to find function in cached "Functions" sections.
- public static native DynamicHook FromConf(Handle gameconf, const char[] name);
-
- // Hook an entity.
- //
- // Entity hooks are auto-removed when the entity is destroyed.
- // If you need to read the return value of the function, choose a post hook.
- //
- // @param mode The desired hook mode - pre or post.
- // A pre hook calls your callback BEFORE the original function is called.
- // You can access the parameters, set the return value, and skip the original function.
- // A post hook calls your callback AFTER the original function executed.
- // You can access the parameters and get/set the return value.
- // @param entity Entity index to hook on.
- // @param callback Callback function.
- // @param removalcb Optional callback for when the hook is removed.
- //
- // @return A hookid on success, INVALID_HOOK_ID otherwise.
- // @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- public native int HookEntity(HookMode mode, int entity, DHookCallback callback, DHookRemovalCB removalcb=INVALID_FUNCTION);
-
- // Hook gamerules object.
- //
- // Game rules hooks are auto-removed on map end.
- // If you need to read the return value of the function, choose a post hook.
- //
- // @param mode The desired hook mode - pre or post.
- // A pre hook calls your callback BEFORE the original function is called.
- // You can access the parameters, set the return value, and skip the original function.
- // A post hook calls your callback AFTER the original function executed.
- // You can access the parameters and get/set the return value.
- // @param callback Callback function.
- // @param removalcb Optional callback for when the hook is removed.
- //
- // @return A hookid on success, INVALID_HOOK_ID otherwise.
- // @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- public native int HookGamerules(HookMode mode, DHookCallback callback, DHookRemovalCB removalcb=INVALID_FUNCTION);
-
- // Hook a raw this-pointer.
- // If you need to read the return value of the function, choose a post hook.
- //
- // @param mode The desired hook mode - pre or post.
- // A pre hook calls your callback BEFORE the original function is called.
- // You can access the parameters, set the return value, and skip the original function.
- // A post hook calls your callback AFTER the original function executed.
- // You can access the parameters and get/set the return value.
- // @param addr This pointer address.
- // @param callback Callback function.
- //
- // @return A hookid on success, INVALID_HOOK_ID otherwise.
- // @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- public native int HookRaw(HookMode mode, Address addr, DHookCallback callback);
-
- // Remove hook by hook id:
- // This will NOT fire the removal callback!
- //
- // @param hookid Hook id to remove.
- //
- // @return True on success, false otherwise
- public static native bool RemoveHook(int hookid);
-};
-
-// A DynamicDetour is a way to hook and block any function in memory.
-// Given the address of a function, it can call a callback in your script whenever
-// the function gets called. The callback has access to all parameters of the function
-// as well as the return value.
-//
-// Internally this works by replacing the first instructions of the function
-// with a jump to our own code. This means that the signature used to find
-// the function address in the first place might not match anymore after a detour.
-// If you need to detour the same function in different plugins make sure to
-// wildcard \x2a the first 6 bytes of the signature to accommodate for the patched
-// jump introduced by the detour.
-methodmap DynamicDetour < DHookSetup
-{
- // Creates a detour.
- //
- // @param funcaddr The address of the function to detour.
- // Can be Address_Null if you want to load the address from gamedata using DHookSetFromConf.
- // @param callConv Calling convention of the function.
- // @param returnType Type of the return value.
- // @param thisType Type of this pointer or ignore (ignore can be used if not needed).
- // Only used for thiscall detours.
- //
- // @error Failed to create detour setup handle.
- public native DynamicDetour(Address funcaddr, CallingConvention callConv, ReturnType returntype, ThisPointerType thisType=ThisPointer_Ignore);
-
- // Setup a detour for a function as described in a "Functions" section in gamedata.
- // The "Functions" section is parsed once the gamedata file is loaded and cached globally.
- //
- // @param gameconf GameData handle to use for address lookup.
- // Doesn't have to be the same as the one with the "Functions" section.
- // @param name Name of the function in a "Functions" section to load.
- //
- // @return Setup handle for the detour or null if offset wasn't found.
- // @error Failed to create detour setup handle, invalid gamedata handle,
- // invalid callback function or failed to find function in cached "Functions" sections.
- public static native DynamicDetour FromConf(Handle gameconf, const char[] name);
-
- // Enable the detour of the function described in this detour setup.
- // If you need to read the return value of the function, choose a post hook.
- //
- // @param mode The desired hook mode - pre or post.
- // A pre hook calls your callback BEFORE the original function is called.
- // You can access the parameters, set the return value, and skip the original function.
- // A post hook calls your callback AFTER the original function executed.
- // You can access the parameters and get/set the return value.
- // @param callback Callback function.
- //
- // @return True if detour was enabled, false otherwise.
- // @error Hook handle is not setup for a detour.
- public native bool Enable(HookMode mode, DHookCallback callback);
-
- // Disable the detour of the function described in this detour setup.
- //
- // @param mode The hook mode to disable - pre or post.
- // @param callback Callback function.
- //
- // @return True if detour was disabled, false otherwise.
- // @error Hook handle is not setup for a detour or function is not detoured.
- public native bool Disable(HookMode mode, DHookCallback callback);
-};
-
-/* Adds an entity listener hook
- *
- * @param type Type of listener to add
- * @param callback Callback to use
- *
- * @noreturn
-*/
-native void DHookAddEntityListener(ListenType type, ListenCB callback);
-
-/* Removes an entity listener hook
- *
- * @param type Type of listener to remove
- * @param callback Callback this listener was using
- *
- * @return True if one was removed false otherwise.
-*/
-native bool DHookRemoveEntityListener(ListenType type, ListenCB callback);
-
-/* Creates a hook
- *
- * @param offset vtable offset of function to hook
- * @param hooktype Type of hook
- * @param returntype Type of return value
- * @param thistype Type of this pointer or ignore (ignore can be used if not needed)
- * @param callback Optional callback function, if not set here must be set when hooking.
- *
- * @return Returns setup handle for the hook.
- * @error Failed to create hook setup handle or invalid callback function.
-*/
-native DynamicHook DHookCreate(int offset, HookType hooktype, ReturnType returntype, ThisPointerType thistype, DHookCallback callback=INVALID_FUNCTION);
-
-/**
- * Creates a detour
- *
- * @param funcaddr The address of the function to detour.
- * Can be Address_Null if you want to load the address from gamedata using DHookSetFromConf.
- * @param callConv Calling convention of the function.
- * @param returnType Type of the return value.
- * @param thisType Type of this pointer or ignore (ignore can be used if not needed)
- *
- * @return Setup handle for the detour.
- * @error Failed to create detour setup handle.
- */
-native DynamicDetour DHookCreateDetour(Address funcaddr, CallingConvention callConv, ReturnType returntype, ThisPointerType thisType);
-
-/**
- * Setup a detour or hook for a function as described in a "Functions" section in gamedata.
- *
- * @param gameconf GameConfig handle
- * @param name Name of the function in the gamedata to load.
- *
- * @return Setup handle for the detour or INVALID_HANDLE if offset/signature/address wasn't found.
- * @error Failed to create detour setup handle, invalid gamedata handle, invalid callback function or failed to find function in gamedata.
- */
-native DHookSetup DHookCreateFromConf(Handle gameconf, const char[] name);
-
-/**
- * Load details for a vhook or detour from a gamedata file.
- *
- * @param setup Hook setup handle to set the offset or address on.
- * @param gameconf GameConfig handle
- * @param source Whether to look in Offsets or Signatures.
- * @param name Name of the property to find.
- *
- * @return True on success, false if nothing was found.
- * @error Invalid setup or gamedata handle.
- */
-native bool DHookSetFromConf(Handle setup, Handle gameconf, SDKFuncConfSource source, const char[] name);
-
-/**
- * Enable the detour of the function described in the hook setup handle.
- *
- * @param setup Hook setup handle
- * @param post True to make the hook a post hook. (If you need to change the retunr value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
- * @param callback Callback function
- *
- * @return True if detour was enabled, false otherwise.
- * @error Hook handle is not setup for a detour.
- */
-native bool DHookEnableDetour(Handle setup, bool post, DHookCallback callback);
-
-/**
- * Disable the detour of the function described in the hook setup handle.
- *
- * @param setup Hook setup handle
- * @param post True to disable a post hook.
- * @param callback Callback function
- *
- * @return True if detour was disabled, false otherwise.
- * @error Hook handle is not setup for a detour or function is not detoured.
- */
-native bool DHookDisableDetour(Handle setup, bool post, DHookCallback callback);
-
-/* Adds param to a hook setup
- *
- * @param setup Setup handle to add the param to.
- * @param type Param type
- * @param size Used for Objects (not Object ptr) to define the size of the object.
- * @param flag Used to change the pass type.
- * @param custom_register The register this argument is passed in instead of the stack.
- *
- * @error Invalid setup handle or too many params added (request upping the max in thread)
- * @noreturn
-*/
-native void DHookAddParam(Handle setup, HookParamType type, int size=-1, DHookPassFlag flag=DHookPass_ByVal, DHookRegister custom_register=DHookRegister_Default);
-
-/* Hook entity
- *
- * @param setup Setup handle to use to add the hook.
- * @param post True to make the hook a post hook. (If you need to change the return value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
- * @param entity Entity index to hook on.
- * @param removalcb Callback for when the hook is removed (Entity hooks are auto-removed on entity destroyed and will call this callback)
- * @param callback Optional callback function, if not set here must be set when creating the hook.
- *
- * @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- * @return INVALID_HOOK_ID on fail a hookid on success
-*/
-native int DHookEntity(Handle setup, bool post, int entity, DHookRemovalCB removalcb=INVALID_FUNCTION, DHookCallback callback=INVALID_FUNCTION);
-
-/* Hook gamerules
- *
- * @param setup Setup handle to use to add the hook.
- * @param post True to make the hook a post hook. (If you need to change the return value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
- * @param removalcb Callback for when the hook is removed (Game rules hooks are auto-removed on map end and will call this callback)
- * @param callback Optional callback function, if not set here must be set when creating the hook.
- *
- * @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- * @return INVALID_HOOK_ID on fail a hookid on success
-*/
-native int DHookGamerules(Handle setup, bool post, DHookRemovalCB removalcb=INVALID_FUNCTION, DHookCallback callback=INVALID_FUNCTION);
-
-/* Hook a raw pointer
- *
- * @param setup Setup handle to use to add the hook.
- * @param post True to make the hook a post hook. (If you need to change the return value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
- * @param addr This pointer address.
- * @param removalcb Callback for when the hook is removed (Entity hooks are auto-removed on entity destroyed and will call this callback)
- * @param callback Optional callback function, if not set here must be set when creating the hook.
- *
- * @error Invalid setup handle, invalid address, invalid hook type or invalid callback.
- * @return INVALID_HOOK_ID on fail a hookid on success
-*/
-native int DHookRaw(Handle setup, bool post, Address addr, DHookRemovalCB removalcb=INVALID_FUNCTION, DHookCallback callback=INVALID_FUNCTION);
-
-/* Remove hook by hook id
- *
- * @param hookid Hook id to remove
- *
- * @return true on success false otherwise
- * @note This will not fire the removal callback!
-*/
-native bool DHookRemoveHookID(int hookid);
-
-/* Get param value (Use only for: int, entity, bool or float param types)
- *
- * @param hParams Handle to params structure
- * @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1. 0 Will return the number of params stored)
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @return value if num greater than 0. If 0 returns paramcount.
-*/
-native any DHookGetParam(Handle hParams, int num);
-
-/* Get vector param value
- *
- * @param hParams Handle to params structure
- * @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
- * @param vec Vector buffer to store result.
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @noreturn
-*/
-native void DHookGetParamVector(Handle hParams, int num, float vec[3]);
-
-/* Get string param value
- *
- * @param hParams Handle to params structure
- * @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
- * @param buffer String buffer to store result
- * @param size Buffer size
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @noreturn
-*/
-native void DHookGetParamString(Handle hParams, int num, char[] buffer, int size);
-
-/* Set param value (Use only for: int, entity, bool or float param types)
- *
- * @param hParams Handle to params structure
- * @param num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
- * @param value Value to set it as (only pass int, bool, float or entity index)
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @noreturn
-*/
-native void DHookSetParam(Handle hParams, int num, any value);
-
-/* Set vector param value
- *
- * @param hParams Handle to params structure
- * @param num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
- * @param vec Value to set vector as.
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @noreturn
-*/
-native void DHookSetParamVector(Handle hParams, int num, float vec[3]);
-
-/* Set string param value
- *
- * @param hParams Handle to params structure
- * @param num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
- * @param value Value to set string as.
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @noreturn
-*/
-native void DHookSetParamString(Handle hParams, int num, char[] value);
-
-/* Get return value (Use only for: int, entity, bool or float return types)
- *
- * @param hReturn Handle to return structure
- *
- * @error Invalid Handle, invalid type.
- * @return Returns default value if prehook returns actual value if post hook.
-*/
-native any DHookGetReturn(Handle hReturn);
-
-/* Get return vector value
- *
- * @param hReturn Handle to return structure
- * @param vec Vector buffer to store result in. (In pre hooks will be default value (0.0,0.0,0.0))
- *
- * @error Invalid Handle, invalid type.
- * @noreturn
-*/
-native void DHookGetReturnVector(Handle hReturn, float vec[3]);
-
-/* Get return string value
- *
- * @param hReturn Handle to return structure
- * @param buffer String buffer to store result in. (In pre hooks will be default value "")
- * @param size String buffer size
- *
- * @error Invalid Handle, invalid type.
- * @noreturn
-*/
-native void DHookGetReturnString(Handle hReturn, char[] buffer, int size);
-
-/* Set return value (Use only for: int, entity, bool or float return types)
- *
- * @param hReturn Handle to return structure
- * @param value Value to set return as
- *
- * @error Invalid Handle, invalid type.
- * @noreturn
-*/
-native void DHookSetReturn(Handle hReturn, any value);
-
-/* Set return vector value
- *
- * @param hReturn Handle to return structure
- * @param vec Value to set return vector as
- *
- * @error Invalid Handle, invalid type.
- * @noreturn
-*/
-native void DHookSetReturnVector(Handle hReturn, float vec[3]);
-
-/* Set return string value
- *
- * @param hReturn Handle to return structure
- * @param value Value to set return string as
- *
- * @error Invalid Handle, invalid type.
- * @noreturn
-*/
-native void DHookSetReturnString(Handle hReturn, char[] value);
-
-//WE SHOULD WRAP THESE AROUND STOCKS FOR NON PTR AS WE SUPPORT BOTH WITH THESE NATIVE'S
-
-/* Gets an objects variable value
- *
- * @param hParams Handle to params structure
- * @param num Param number to get.
- * @param offset Offset within the object to the var to get.
- * @param type Type of var it is
- *
- * @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
- * @return Value of the objects var. If EHANDLE type or entity returns entity index.
-*/
-native any DHookGetParamObjectPtrVar(Handle hParams, int num, int offset, ObjectValueType type);
-
-/* Sets an objects variable value
- *
- * @param hParams Handle to params structure
- * @param num Param number to set.
- * @param offset Offset within the object to the var to set.
- * @param type Type of var it is
- * @param value The value to set the var to.
- *
- * @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
- * @noreturn
-*/
-native void DHookSetParamObjectPtrVar(Handle hParams, int num, int offset, ObjectValueType type, any value);
-
-/* Gets an objects vector variable value
- *
- * @param hParams Handle to params structure
- * @param num Param number to get.
- * @param offset Offset within the object to the var to get.
- * @param type Type of var it is
- * @param buffer Buffer to store the result vector
- *
- * @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
- * @noreturn
-*/
-native void DHookGetParamObjectPtrVarVector(Handle hParams, int num, int offset, ObjectValueType type, float buffer[3]);
-
-/* Sets an objects vector variable value
- *
- * @param hParams Handle to params structure
- * @param num Param number to set.
- * @param offset Offset within the object to the var to set.
- * @param type Type of var it is
- * @param value The value to set the vector var to.
- *
- * @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
- * @noreturn
-*/
-native void DHookSetParamObjectPtrVarVector(Handle hParams, int num, int offset, ObjectValueType type, float value[3]);
-
-/* Gets an objects string variable value
- *
- * @param hParams Handle to params structure
- * @param num Param number to get.
- * @param offset Offset within the object to the var to get.
- * @param type Type of var it is
- * @param buffer Buffer to store the result vector
- * @param size Size of the buffer
- *
- * @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
- * @noreturn
-*/
-native void DHookGetParamObjectPtrString(Handle hParams, int num, int offset, ObjectValueType type, char[] buffer, int size);
-
-/* Checks if a pointer param is null
- *
- * @param hParams Handle to params structure
- * @param num Param number to check.
- *
- * @error Non pointer param
- * @return True if null false otherwise.
-*/
-native bool DHookIsNullParam(Handle hParams, int num);
-
-/* Get param address (Use only for ptr param types)
- *
- * @param hParams Handle to params structure
- * @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
- *
- * @error Invalid handle. Invalid param number. Invalid param type.
- * @return address of the parameter.
-*/
-native Address DHookGetParamAddress(Handle hParams, int num);
-
-public Extension __ext_dhooks =
-{
- name = "dhooks",
- file = "dhooks.ext",
-#if defined AUTOLOAD_EXTENSIONS
- autoload = 1,
-#else
- autoload = 0,
-#endif
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public __ext_dhooks_SetNTVOptional()
-{
- MarkNativeAsOptional("DHookAddEntityListener");
- MarkNativeAsOptional("DHookRemoveEntityListener");
- MarkNativeAsOptional("DHookCreate");
- MarkNativeAsOptional("DHookCreateDetour");
- MarkNativeAsOptional("DHookCreateFromConf");
- MarkNativeAsOptional("DHookSetFromConf");
- MarkNativeAsOptional("DHookEnableDetour");
- MarkNativeAsOptional("DHookDisableDetour");
- MarkNativeAsOptional("DHookAddParam");
- MarkNativeAsOptional("DHookEntity");
- MarkNativeAsOptional("DHookGamerules");
- MarkNativeAsOptional("DHookRaw");
- MarkNativeAsOptional("DHookRemoveHookID");
- MarkNativeAsOptional("DHookGetParam");
- MarkNativeAsOptional("DHookGetParamVector");
- MarkNativeAsOptional("DHookGetParamString");
- MarkNativeAsOptional("DHookSetParam");
- MarkNativeAsOptional("DHookSetParamVector");
- MarkNativeAsOptional("DHookSetParamString");
- MarkNativeAsOptional("DHookGetReturn");
- MarkNativeAsOptional("DHookGetReturnVector");
- MarkNativeAsOptional("DHookGetReturnString");
- MarkNativeAsOptional("DHookSetReturn");
- MarkNativeAsOptional("DHookSetReturnVector");
- MarkNativeAsOptional("DHookSetReturnString");
- MarkNativeAsOptional("DHookGetParamObjectPtrVar");
- MarkNativeAsOptional("DHookSetParamObjectPtrVar");
- MarkNativeAsOptional("DHookGetParamObjectPtrVarVector");
- MarkNativeAsOptional("DHookSetParamObjectPtrVarVector");
- MarkNativeAsOptional("DHookIsNullParam");
- MarkNativeAsOptional("DHookGetParamObjectPtrString");
- MarkNativeAsOptional("DHookGetParamAddress");
-
- MarkNativeAsOptional("DHookParam.IsNull");
- MarkNativeAsOptional("DHookParam.Get");
- MarkNativeAsOptional("DHookParam.GetVector");
- MarkNativeAsOptional("DHookParam.GetString");
- MarkNativeAsOptional("DHookParam.Set");
- MarkNativeAsOptional("DHookParam.SetVector");
- MarkNativeAsOptional("DHookParam.SetString");
- MarkNativeAsOptional("DHookParam.GetObjectVar");
- MarkNativeAsOptional("DHookParam.GetObjectVarVector");
- MarkNativeAsOptional("DHookParam.GetObjectVarString");
- MarkNativeAsOptional("DHookParam.SetObjectVar");
- MarkNativeAsOptional("DHookParam.SetObjectVarVector");
- MarkNativeAsOptional("DHookParam.GetAddress");
- MarkNativeAsOptional("DHookReturn.Value.get");
- MarkNativeAsOptional("DHookReturn.Value.set");
- MarkNativeAsOptional("DHookReturn.GetVector");
- MarkNativeAsOptional("DHookReturn.GetString");
- MarkNativeAsOptional("DHookReturn.SetVector");
- MarkNativeAsOptional("DHookReturn.SetString");
- MarkNativeAsOptional("DHookSetup.SetFromConf");
- MarkNativeAsOptional("DHookSetup.AddParam");
- MarkNativeAsOptional("DynamicHook.DynamicHook");
- MarkNativeAsOptional("DynamicHook.FromConf");
- MarkNativeAsOptional("DynamicHook.HookEntity");
- MarkNativeAsOptional("DynamicHook.HookGamerules");
- MarkNativeAsOptional("DynamicHook.HookRaw");
- MarkNativeAsOptional("DynamicHook.RemoveHook");
- MarkNativeAsOptional("DynamicDetour.DynamicDetour");
- MarkNativeAsOptional("DynamicDetour.FromConf");
- MarkNativeAsOptional("DynamicDetour.Enable");
- MarkNativeAsOptional("DynamicDetour.Disable");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/entity.inc b/addons/sourcemod/scripting/include/entity.inc
deleted file mode 100644
index cb76e8334..000000000
--- a/addons/sourcemod/scripting/include/entity.inc
+++ /dev/null
@@ -1,769 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2011 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _entity_included
- #endinput
-#endif
-#define _entity_included
-
-/**
- * Property types for entities.
- */
-enum PropType
-{
- Prop_Send = 0, /**< This property is networked. */
- Prop_Data = 1 /**< This property is for save game data fields. */
-};
-
-/**
- * @section For more information on these, see the HL2SDK (public/edict.h)
- */
-#define FL_EDICT_CHANGED (1<<0) /**< Game DLL sets this when the entity state changes
- Mutually exclusive with FL_EDICT_PARTIAL_CHANGE. */
-#define FL_EDICT_FREE (1<<1) /**< this edict if free for reuse */
-#define FL_EDICT_FULL (1<<2) /**< this is a full server entity */
-#define FL_EDICT_FULLCHECK (0<<0) /**< call ShouldTransmit() each time, this is a fake flag */
-#define FL_EDICT_ALWAYS (1<<3) /**< always transmit this entity */
-#define FL_EDICT_DONTSEND (1<<4) /**< don't transmit this entity */
-#define FL_EDICT_PVSCHECK (1<<5) /**< always transmit entity, but cull against PVS */
-#define FL_EDICT_PENDING_DORMANT_CHECK (1<<6)
-#define FL_EDICT_DIRTY_PVS_INFORMATION (1<<7)
-#define FL_FULL_EDICT_CHANGED (1<<8)
-
-enum PropFieldType
-{
- PropField_Unsupported, /**< The type is unsupported. */
- PropField_Integer, /**< Valid for SendProp and Data fields */
- PropField_Float, /**< Valid for SendProp and Data fields */
- PropField_Entity, /**< Valid for Data fields only (SendProp shows as int) */
- PropField_Vector, /**< Valid for SendProp and Data fields */
- PropField_String, /**< Valid for SendProp and Data fields */
- PropField_String_T, /**< Valid for Data fields. Read only.
- Note that the size of a string_t is dynamic, and
- thus FindDataMapOffs() will return the constant size
- of the string_t container (which is 32 bits right now). */
- PropField_Variant /**< Valid for Data fields only Type is not known at the field level,
- (for this call), but dependent on current field value. */
-};
-
-/**
- * @endsection
- */
-
-/**
- * Returns the maximum number of networked entities.
- *
- * Note: For legacy reasons, this only returns the maximum
- * networked entities (maximum edicts), rather than total
- * maximum entities.
- *
- * @return Maximum number of networked entities.
- */
-native int GetMaxEntities();
-
-/**
- * Returns the number of networked entities in the server.
- *
- * Note: For legacy reasons, this only returns the current count
- * of networked entities (current edicts), rather than total
- * count of current entities.
- *
- * @return Number of entities in the server.
- */
-native int GetEntityCount();
-
-/**
- * Returns whether or not an entity is valid. Returns false
- * if there is no matching CBaseEntity for this entity index.
- *
- * @param entity Index of the entity.
- * @return True if valid, false otherwise.
- */
-native bool IsValidEntity(int entity);
-
-/**
- * Returns whether or not an edict index is valid.
- *
- * @param edict Index of the edict.
- * @return True if valid, false otherwise.
- */
-native bool IsValidEdict(int edict);
-
-/**
- * Returns whether or not an entity has a valid networkable edict.
- *
- * @param entity Index of the entity.
- * @return True if networkable, false if invalid or not networkable.
- */
-native bool IsEntNetworkable(int entity);
-
-/**
- * Creates a new edict (the basis of a networkable entity)
- *
- * @return Index of the edict, 0 on failure.
- */
-native int CreateEdict();
-
-/**
- * Removes an edict from the world.
- *
- * @param edict Index of the edict.
- * @error Invalid edict index.
- */
-native void RemoveEdict(int edict);
-
-/**
- * Marks an entity for deletion.
- *
- * @param entity Index of the entity.
- * @error Invalid entity index.
- */
-native void RemoveEntity(int entity);
-
-/**
- * Returns the flags on an edict. These are not the same as entity flags.
- *
- * @param edict Index of the entity.
- * @return Edict flags.
- * @error Invalid edict index.
- */
-native int GetEdictFlags(int edict);
-
-/**
- * Sets the flags on an edict. These are not the same as entity flags.
- *
- * @param edict Index of the entity.
- * @param flags Flags to set.
- * @error Invalid edict index.
- */
-native void SetEdictFlags(int edict, int flags);
-
-/**
- * Retrieves an edict classname.
- *
- * @param edict Index of the entity.
- * @param clsname Buffer to store the classname.
- * @param maxlength Maximum length of the buffer.
- * @return True on success, false if there is no classname set.
- */
-native bool GetEdictClassname(int edict, char[] clsname, int maxlength);
-
-/**
- * Retrieves an entity's networkable serverclass name.
- * This is not the same as the classname and is used for networkable state changes.
- *
- * @param edict Index of the entity.
- * @param clsname Buffer to store the serverclass name.
- * @param maxlength Maximum length of the buffer.
- * @return True on success, false if the edict is not networkable.
- * @error Invalid edict index.
- */
-native bool GetEntityNetClass(int edict, char[] clsname, int maxlength);
-
-/**
- * @section Entity offset functions
- *
- * Offsets should be specified in byte distance from the CBaseEntity
- * structure, not short (double byte) or integer (four byte) multiples.
- * It is somewhat common practice to use offsets aligned to their final
- * type, and thus make sure you are not falling to this error in SourceMod.
- * For example, if your "integer-aligned" offset was 119, your byte-aligned
- * offset is 119*4, or 476.
-
- * Specifying incorrect offsets or the incorrect data type for an offset
- * can have fatal consequences. If you are hardcoding offsets, and the
- * layout of CBaseEntity does not match, you can easily crash the server.
- *
- * The reasonable bounds for offsets is greater than or equal to 0 and
- * below 32768. Offsets out of these bounds will throw an error. However,
- * this does not represent any real range, it is simply a sanity check for
- * illegal values. Any range outside of the CBaseEntity structure's private
- * size will cause undefined behavior or even crash.
- */
-
-/**
- * Marks an entity as state changed. This can be useful if you set an offset
- * and wish for it to be immediately changed over the network. By default this
- * is not done for offset setting functions.
- *
- * @param edict Index to the edict.
- * @param offset Offset to mark as changed. If 0,
- * the entire edict is marked as changed.
- * @error Invalid entity or offset out of bounds.
- */
-native void ChangeEdictState(int edict, int offset = 0);
-
-/**
- * Peeks into an entity's object data and retrieves the integer value at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param size Number of bytes to read (valid values are 1, 2, or 4).
- * @return Value at the given memory location.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native int GetEntData(int entity, int offset, int size=4);
-
-/**
- * Peeks into an entity's object data and sets the integer value at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param value Value to set.
- * @param size Number of bytes to write (valid values are 1, 2, or 4).
- * @param changeState If true, change will be sent over the network.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntData(int entity, int offset, any value, int size=4, bool changeState=false);
-
-/**
- * Peeks into an entity's object data and retrieves the float value at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @return Value at the given memory location.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native float GetEntDataFloat(int entity, int offset);
-
-/**
- * Peeks into an entity's object data and sets the float value at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param value Value to set.
- * @param changeState If true, change will be sent over the network.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntDataFloat(int entity, int offset, float value, bool changeState=false);
-
-/**
- * This function is deprecated. Use GetEntDataEnt2 instead, for
- * reasons explained in the notes.
- *
- * Note: This function returns 0 on failure, which may be misleading,
- * as the number 0 is also used for the world entity index.
- *
- * Note: This function makes no attempt to validate the returned
- * entity, and in fact, it could be garbage or completely unexpected.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @return Entity index at the given location, or 0 if none.
- * @error Invalid entity or offset out of reasonable bounds.
- * @deprecated Use GetEntDataEnt2() instead.
- */
-#pragma deprecated Use GetEntDataEnt2() instead.
-native int GetEntDataEnt(int entity, int offset);
-
-/**
- * This function is deprecated. Use SetEntDataEnt2 instead, for
- * reasons explained in the notes.
- *
- * Note: This function uses 0 as an indicator to unset data, but
- * 0 is also the world entity index. Thus, a property cannot
- * be set to the world entity using this native.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param other Entity index to set, or 0 to clear.
- * @param changeState If true, change will be sent over the network.
- * @error Invalid entity or offset out of reasonable bounds.
- * @deprecated Use SetEntDataEnt2() instead.
- */
-#pragma deprecated Use SetEntDataEnt2() instead.
-native void SetEntDataEnt(int entity, int offset, int other, bool changeState=false);
-
-/**
- * Peeks into an entity's object data and retrieves the entity index
- * at the given offset.
- *
- * Note: This will only work on offsets that are stored as "entity
- * handles" (which usually looks like m_h* in properties). These
- * are not SourceMod Handles, but internal Source structures.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @return Entity index at the given location. If there is no entity,
- * or the stored entity is invalid, then -1 is returned.
- * @error Invalid input entity, or offset out of reasonable bounds.
- */
-native int GetEntDataEnt2(int entity, int offset);
-
-/**
- * Peeks into an entity's object data and sets the entity index at the
- * given offset.
- *
- * Note: This will only work on offsets that are stored as "entity
- * handles" (which usually looks like m_h* in properties). These
- * are not SourceMod Handles, but internal Source structures.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param other Entity index to set, or -1 to clear.
- * @param changeState If true, change will be sent over the network.
- * @error Invalid input entity, or offset out of reasonable bounds.
- */
-native void SetEntDataEnt2(int entity, int offset, int other, bool changeState=false);
-
-/**
- * Peeks into an entity's object data and retrieves the vector at the
- * given offset.
- * @note Both a Vector and a QAngle are three floats. This is a
- * convenience function and will work with both types.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param vec Vector buffer to store data in.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void GetEntDataVector(int entity, int offset, float vec[3]);
-
-/**
- * Peeks into an entity's object data and sets the vector at the given
- * offset.
- * @note Both a Vector and a QAngle are three floats. This is a
- * convenience function and will work with both types.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param vec Vector to set.
- * @param changeState If true, change will be sent over the network.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntDataVector(int entity, int offset, const float vec[3], bool changeState=false);
-
-/**
- * Peeks into an entity's object data and retrieves the string at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param buffer Destination string buffer.
- * @param maxlen Maximum length of output string buffer.
- * @return Number of non-null bytes written.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native int GetEntDataString(int entity, int offset, char[] buffer, int maxlen);
-
-/**
- * Peeks into an entity's object data and sets the string at
- * the given offset.
- *
- * @param entity Edict index.
- * @param offset Offset to use.
- * @param buffer String to set.
- * @param maxlen Maximum length of bytes to write.
- * @param changeState If true, change will be sent over the network.
- * @return Number of non-null bytes written.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native int SetEntDataString(int entity, int offset, const char[] buffer, int maxlen, bool changeState=false);
-
-/**
- * @endsection
- */
-
-/**
- * Given a ServerClass name, finds a networkable send property offset.
- * This information is cached for future calls.
- *
- * Note, this function may return offsets that do not work!
- * If a property is nested beneath a parent object, the resulting offset
- * will be invalid for direct use with data functions. Therefore, you
- * should use FindSendPropInfo() instead. An example of such a property is
- * CTFPlayer::DT_LocalPlayer.m_nDisguiseClass on Team Fortress.
- *
- * @param cls Classname.
- * @param prop Property name.
- * @return An offset, or -1 on failure.
- * @deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
- */
-#pragma deprecated Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
-native int FindSendPropOffs(const char[] cls, const char[] prop);
-
-/**
- * Given a ServerClass name, finds a networkable send property offset.
- * This information is cached for future calls.
- *
- * @param cls Classname.
- * @param prop Property name.
- * @param type Optional parameter to store the type.
- * @param num_bits Optional parameter to store the number of bits the field
- * uses, if applicable (otherwise 0 is stored). The number
- * of bits varies for integers and floats, and is always 0
- * for strings.
- * @param local_offset Optional parameter to store the local offset, as
- * FindSendPropOffs() would return.
- * @param array_size Optional parameter to store array size, 0 if not an array.
- * @return On success, returns an absolutely computed offset.
- * If no offset is available, 0 is returned.
- * If the property is not found, -1 is returned.
- */
-native int FindSendPropInfo(const char[] cls,
- const char[] prop,
- PropFieldType &type=view_as(0),
- int &num_bits=0,
- int &local_offset=0,
- int &array_size=0);
-
-/**
- * Given an entity, finds a datamap property offset.
- * This information is cached for future calls.
- *
- * @param entity Entity index.
- * @param prop Property name.
- * @param type Optional parameter to store the type.
- * @param num_bits Optional parameter to store the number of bits the field
- * uses. The bit count will either be 1 (for boolean) or
- * divisible by 8 (including 0 if unknown).
- * @return An offset, or -1 on failure.
- * @deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
- */
-#pragma deprecated Use FindDataMapInfo instead, or HasEntProp if you just want to check for existence.
-native int FindDataMapOffs(int entity,
- const char[] prop,
- PropFieldType &type=view_as(0),
- int &num_bits=0);
-
-/**
- * Given an entity, finds a nested datamap property offset.
- * This information is cached for future calls.
- *
- * @param entity Entity index.
- * @param prop Property name.
- * @param type Optional parameter to store the type.
- * @param num_bits Optional parameter to store the number of bits the field
- * uses. The bit count will either be 1 (for boolean) or
- * divisible by 8 (including 0 if unknown).
- * @param local_offset Optional parameter to store the local offset, as
- * FindDataMapOffs() would return.
- * @return An offset, or -1 on failure.
- */
-native int FindDataMapInfo(int entity,
- const char[] prop,
- PropFieldType &type=view_as(0),
- int &num_bits=0,
- int &local_offset=0);
-
-/**
- * Wrapper function for finding a send property for a particular entity.
- *
- * @param ent Entity index.
- * @param prop Property name.
- * @param actual Defaults to false for backwards compatibility.
- * If true, the newer FindSendPropInfo() function
- * is used instead.
- * @return An offset, or -1 on failure.
- */
-stock int GetEntSendPropOffs(int ent, const char[] prop, bool actual=false)
-{
- char cls[64];
-
- if (!GetEntityNetClass(ent, cls, sizeof(cls)))
- {
- return -1;
- }
-
- int local = -1;
- int offset = FindSendPropInfo(cls, prop, _, _, local);
-
- if (actual)
- {
- return offset;
- }
-
- return local;
-}
-
-/**
- * Checks if an entity property exists on an entity.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @return Whether the property exists on the entity.
- * @error Invalid entity.
- */
-stock bool HasEntProp(int entity, PropType type, const char[] prop)
-{
- if (type == Prop_Data)
- {
- return (FindDataMapInfo(entity, prop) != -1);
- }
-
- if (type != Prop_Send)
- {
- return false;
- }
-
- char cls[64];
- if (!GetEntityNetClass(entity, cls, sizeof(cls)))
- {
- return false;
- }
-
- return (FindSendPropInfo(cls, prop) != -1);
-}
-
-/**
- * Retrieves an integer value from an entity's property.
- *
- * This function is considered safer and more robust over GetEntData,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param size Number of bytes to write (valid values are 1, 2, or 4).
- * This value is auto-detected, and the size parameter is
- * only used as a fallback in case detection fails.
- * @param element Element # (starting from 0) if property is an array.
- * @return Value at the given property offset.
- * @error Invalid entity or property not found.
- */
-native int GetEntProp(int entity, PropType type, const char[] prop, int size=4, int element=0);
-
-/**
- * Sets an integer value in an entity's property.
- *
- * This function is considered safer and more robust over SetEntData,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param value Value to set.
- * @param size Number of bytes to write (valid values are 1, 2, or 4).
- * This value is auto-detected, and the size parameter is
- * only used as a fallback in case detection fails.
- * @param element Element # (starting from 0) if property is an array.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntProp(int entity, PropType type, const char[] prop, any value, int size=4, int element=0);
-
-/**
- * Retrieves a float value from an entity's property.
- *
- * This function is considered safer and more robust over GetEntDataFloat,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param element Element # (starting from 0) if property is an array.
- * @return Value at the given property offset.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native float GetEntPropFloat(int entity, PropType type, const char[] prop, int element=0);
-
-/**
- * Sets a float value in an entity's property.
- *
- * This function is considered safer and more robust over SetEntDataFloat,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param value Value to set.
- * @param element Element # (starting from 0) if property is an array.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntPropFloat(int entity, PropType type, const char[] prop, float value, int element=0);
-
-/**
- * Retrieves an entity index from an entity's property.
- *
- * This function is considered safer and more robust over GetEntDataEnt*,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param element Element # (starting from 0) if property is an array.
- * @return Entity index at the given property.
- * If there is no entity, or the entity is not valid,
- * then -1 is returned.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native int GetEntPropEnt(int entity, PropType type, const char[] prop, int element=0);
-
-/**
- * Sets an entity index in an entity's property.
- *
- * This function is considered safer and more robust over SetEntDataEnt*,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param other Entity index to set, or -1 to unset.
- * @param element Element # (starting from 0) if property is an array.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-native void SetEntPropEnt(int entity, PropType type, const char[] prop, int other, int element=0);
-
-/**
- * Retrieves a vector of floats from an entity, given a named network property.
- *
- * This function is considered safer and more robust over GetEntDataVector,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param vec Vector buffer to store data in.
- * @param element Element # (starting from 0) if property is an array.
- * @error Invalid entity, property not found, or property not
- * actually a vector data type.
- */
-native void GetEntPropVector(int entity, PropType type, const char[] prop, float vec[3], int element=0);
-
-/**
- * Sets a vector of floats in an entity, given a named network property.
- *
- * This function is considered safer and more robust over SetEntDataVector,
- * because it performs strict offset checking and typing rules.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @param vec Vector to set.
- * @param element Element # (starting from 0) if property is an array.
- * @error Invalid entity, property not found, or property not
- * actually a vector data type.
- */
-native void SetEntPropVector(int entity, PropType type, const char[] prop, const float vec[3], int element=0);
-
-/**
- * Gets a network property as a string.
- *
- * @param entity Edict index.
- * @param type Property type.
- * @param prop Property to use.
- * @param buffer Destination string buffer.
- * @param maxlen Maximum length of output string buffer.
- * @param element Element # (starting from 0) if property is an array.
- * @return Number of non-null bytes written.
- * @error Invalid entity, offset out of reasonable bounds, or property is not a valid string.
- */
-native int GetEntPropString(int entity, PropType type, const char[] prop, char[] buffer, int maxlen, int element=0);
-
-/**
- * Sets a network property as a string.
- *
- * @param entity Edict index.
- * @param type Property type.
- * @param prop Property to use.
- * @param buffer String to set.
- * @param element Element # (starting from 0) if property is an array.
- * @return Number of non-null bytes written.
- * @error Invalid entity, offset out of reasonable bounds, or property is not a valid string.
- */
-native int SetEntPropString(int entity, PropType type, const char[] prop, const char[] buffer, int element=0);
-
-/**
- * Retrieves the count of values that an entity property's array can store.
- *
- * @param entity Entity/edict index.
- * @param type Property type.
- * @param prop Property name.
- * @return Size of array (in elements) or 0 if property is not an array.
- * @error Invalid entity or property not found.
- */
-native int GetEntPropArraySize(int entity, PropType type, const char[] prop);
-
-/**
- * Copies an array of cells from an entity at a given offset.
- *
- * @param entity Entity index.
- * @param offset Offset to use.
- * @param array Array to read into.
- * @param arraySize Number of values to read.
- * @param dataSize Size of each value in bytes (1, 2, or 4).
- * @error Invalid entity or offset out of reasonable bounds.
- */
-stock void GetEntDataArray(int entity, int offset, any[] array, int arraySize, int dataSize=4)
-{
- for (int i = 0; i < arraySize; i++)
- {
- array[i] = GetEntData(entity, offset + i*dataSize, dataSize);
- }
-}
-
-/**
- * Copies an array of cells to an entity at a given offset.
- *
- * @param entity Entity index.
- * @param offset Offset to use.
- * @param array Array of values to copy.
- * @param arraySize Number of values to copy.
- * @param dataSize Size of each value in bytes (1, 2, or 4).
- * @param changeState True to set the network state as changed; false otherwise.
- * @error Invalid entity or offset out of reasonable bounds.
- */
-stock void SetEntDataArray(int entity, int offset, const any[] array, int arraySize, int dataSize=4, bool changeState=false)
-{
- for (int i = 0; i < arraySize; i++)
- {
- SetEntData(entity, offset + i*dataSize, array[i], dataSize, changeState);
- }
-}
-
-/**
- * Gets the memory address of an entity.
- *
- * @param entity Entity index.
- * @return Address of the entity.
- * @error Invalid entity.
- */
-native Address GetEntityAddress(int entity);
-
-/**
- * Retrieves the classname of an entity.
- * This is like GetEdictClassname(), except it works for ALL
- * entities, not just edicts.
- *
- * @param entity Index of the entity.
- * @param clsname Buffer to store the classname.
- * @param maxlength Maximum length of the buffer.
- * @return True on success, false if there is no classname set.
- */
-stock bool GetEntityClassname(int entity, char[] clsname, int maxlength)
-{
- return !!GetEntPropString(entity, Prop_Data, "m_iClassname", clsname, maxlength);
-}
diff --git a/addons/sourcemod/scripting/include/entity_prop_stocks.inc b/addons/sourcemod/scripting/include/entity_prop_stocks.inc
deleted file mode 100644
index c0bc6ffd2..000000000
--- a/addons/sourcemod/scripting/include/entity_prop_stocks.inc
+++ /dev/null
@@ -1,594 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _entity_prop_stocks_included
- #endinput
-#endif
-#define _entity_prop_stocks_included
-
-enum MoveType
-{
- MOVETYPE_NONE = 0, /**< never moves */
- MOVETYPE_ISOMETRIC, /**< For players */
- MOVETYPE_WALK, /**< Player only - moving on the ground */
- MOVETYPE_STEP, /**< gravity, special edge handling -- monsters use this */
- MOVETYPE_FLY, /**< No gravity, but still collides with stuff */
- MOVETYPE_FLYGRAVITY, /**< flies through the air + is affected by gravity */
- MOVETYPE_VPHYSICS, /**< uses VPHYSICS for simulation */
- MOVETYPE_PUSH, /**< no clip to world, push and crush */
- MOVETYPE_NOCLIP, /**< No gravity, no collisions, still do velocity/avelocity */
- MOVETYPE_LADDER, /**< Used by players only when going onto a ladder */
- MOVETYPE_OBSERVER, /**< Observer movement, depends on player's observer mode */
- MOVETYPE_CUSTOM /**< Allows the entity to describe its own physics */
-};
-
-enum RenderMode
-{
- RENDER_NORMAL, /**< src */
- RENDER_TRANSCOLOR, /**< c*a+dest*(1-a) */
- RENDER_TRANSTEXTURE, /**< src*a+dest*(1-a) */
- RENDER_GLOW, /**< src*a+dest -- No Z buffer checks -- Fixed size in screen space */
- RENDER_TRANSALPHA, /**< src*srca+dest*(1-srca) */
- RENDER_TRANSADD, /**< src*a+dest */
- RENDER_ENVIRONMENTAL, /**< not drawn, used for environmental effects */
- RENDER_TRANSADDFRAMEBLEND, /**< use a fractional frame value to blend between animation frames */
- RENDER_TRANSALPHAADD, /**< src + dest*(1-a) */
- RENDER_WORLDGLOW, /**< Same as kRenderGlow but not fixed size in screen space */
- RENDER_NONE /**< Don't render. */
-};
-
-enum RenderFx
-{
- RENDERFX_NONE = 0,
- RENDERFX_PULSE_SLOW,
- RENDERFX_PULSE_FAST,
- RENDERFX_PULSE_SLOW_WIDE,
- RENDERFX_PULSE_FAST_WIDE,
- RENDERFX_FADE_SLOW,
- RENDERFX_FADE_FAST,
- RENDERFX_SOLID_SLOW,
- RENDERFX_SOLID_FAST,
- RENDERFX_STROBE_SLOW,
- RENDERFX_STROBE_FAST,
- RENDERFX_STROBE_FASTER,
- RENDERFX_FLICKER_SLOW,
- RENDERFX_FLICKER_FAST,
- RENDERFX_NO_DISSIPATION,
- RENDERFX_DISTORT, /**< Distort/scale/translate flicker */
- RENDERFX_HOLOGRAM, /**< kRenderFxDistort + distance fade */
- RENDERFX_EXPLODE, /**< Scale up really big! */
- RENDERFX_GLOWSHELL, /**< Glowing Shell */
- RENDERFX_CLAMP_MIN_SCALE, /**< Keep this sprite from getting very small (SPRITES only!) */
- RENDERFX_ENV_RAIN, /**< for environmental rendermode, make rain */
- RENDERFX_ENV_SNOW, /**< " " " , make snow */
- RENDERFX_SPOTLIGHT, /**< TEST CODE for experimental spotlight */
- RENDERFX_RAGDOLL, /**< HACKHACK: TEST CODE for signalling death of a ragdoll character */
- RENDERFX_PULSE_FAST_WIDER,
- RENDERFX_MAX
-};
-
-// These defines are for client button presses.
-#define IN_ATTACK (1 << 0)
-#define IN_JUMP (1 << 1)
-#define IN_DUCK (1 << 2)
-#define IN_FORWARD (1 << 3)
-#define IN_BACK (1 << 4)
-#define IN_USE (1 << 5)
-#define IN_CANCEL (1 << 6)
-#define IN_LEFT (1 << 7)
-#define IN_RIGHT (1 << 8)
-#define IN_MOVELEFT (1 << 9)
-#define IN_MOVERIGHT (1 << 10)
-#define IN_ATTACK2 (1 << 11)
-#define IN_RUN (1 << 12)
-#define IN_RELOAD (1 << 13)
-#define IN_ALT1 (1 << 14)
-#define IN_ALT2 (1 << 15)
-#define IN_SCORE (1 << 16) /**< Used by client.dll for when scoreboard is held down */
-#define IN_SPEED (1 << 17) /**< Player is holding the speed key */
-#define IN_WALK (1 << 18) /**< Player holding walk key */
-#define IN_ZOOM (1 << 19) /**< Zoom key for HUD zoom */
-#define IN_WEAPON1 (1 << 20) /**< weapon defines these bits */
-#define IN_WEAPON2 (1 << 21) /**< weapon defines these bits */
-#define IN_BULLRUSH (1 << 22)
-#define IN_GRENADE1 (1 << 23) /**< grenade 1 */
-#define IN_GRENADE2 (1 << 24) /**< grenade 2 */
-#define IN_ATTACK3 (1 << 25)
-
-// Note: these are only for use with GetEntityFlags and SetEntityFlags
-// and may not match the game's actual, internal m_fFlags values.
-// PLAYER SPECIFIC FLAGS FIRST BECAUSE WE USE ONLY A FEW BITS OF NETWORK PRECISION
-#define FL_ONGROUND (1 << 0) /**< At rest / on the ground */
-#define FL_DUCKING (1 << 1) /**< Player flag -- Player is fully crouched */
-#define FL_WATERJUMP (1 << 2) /**< player jumping out of water */
-#define FL_ONTRAIN (1 << 3) /**< Player is _controlling_ a train, so movement commands should be ignored on client during prediction. */
-#define FL_INRAIN (1 << 4) /**< Indicates the entity is standing in rain */
-#define FL_FROZEN (1 << 5) /**< Player is frozen for 3rd person camera */
-#define FL_ATCONTROLS (1 << 6) /**< Player can't move, but keeps key inputs for controlling another entity */
-#define FL_CLIENT (1 << 7) /**< Is a player */
-#define FL_FAKECLIENT (1 << 8) /**< Fake client, simulated server side; don't send network messages to them */
-// NOTE if you move things up, make sure to change this value
-#define PLAYER_FLAG_BITS 9
-// NON-PLAYER SPECIFIC (i.e., not used by GameMovement or the client .dll ) -- Can still be applied to players, though
-#define FL_INWATER (1 << 9) /**< In water */
-#define FL_FLY (1 << 10) /**< Changes the SV_Movestep() behavior to not need to be on ground */
-#define FL_SWIM (1 << 11) /**< Changes the SV_Movestep() behavior to not need to be on ground (but stay in water) */
-#define FL_CONVEYOR (1 << 12)
-#define FL_NPC (1 << 13)
-#define FL_GODMODE (1 << 14)
-#define FL_NOTARGET (1 << 15)
-#define FL_AIMTARGET (1 << 16) /**< set if the crosshair needs to aim onto the entity */
-#define FL_PARTIALGROUND (1 << 17) /**< not all corners are valid */
-#define FL_STATICPROP (1 << 18) /**< Eetsa static prop! */
-#define FL_GRAPHED (1 << 19) /**< worldgraph has this ent listed as something that blocks a connection */
-#define FL_GRENADE (1 << 20)
-#define FL_STEPMOVEMENT (1 << 21) /**< Changes the SV_Movestep() behavior to not do any processing */
-#define FL_DONTTOUCH (1 << 22) /**< Doesn't generate touch functions, generates Untouch() for anything it was touching when this flag was set */
-#define FL_BASEVELOCITY (1 << 23) /**< Base velocity has been applied this frame (used to convert base velocity into momentum) */
-#define FL_WORLDBRUSH (1 << 24) /**< Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something) */
-#define FL_OBJECT (1 << 25) /**< Terrible name. This is an object that NPCs should see. Missiles, for example. */
-#define FL_KILLME (1 << 26) /**< This entity is marked for death -- will be freed by game DLL */
-#define FL_ONFIRE (1 << 27) /**< You know... */
-#define FL_DISSOLVING (1 << 28) /**< We're dissolving! */
-#define FL_TRANSRAGDOLL (1 << 29) /**< In the process of turning into a client side ragdoll. */
-#define FL_UNBLOCKABLE_BY_PLAYER (1 << 30) /**< pusher that can't be blocked by the player */
-#define FL_FREEZING (1 << 31) /**< We're becoming frozen! */
-#define FL_EP2V_UNKNOWN1 (1 << 31) /**< Unknown */
-// END entity flag #defines
-
-/**
- * Get an entity's flags.
- *
- * @note The game's actual flags are internally translated by SM
- * to match the entity flags defined above as the actual values
- * can differ per engine.
- *
- * @param entity Entity index.
- * @return Entity's flags, see entity flag defines above.
- * @error Invalid entity index, or lack of mod compliance.
- */
-native int GetEntityFlags(int entity);
-
-/**
- * Sets an entity's flags.
- *
- * @note The entity flags as defined above are internally translated by SM
- * to match the current game's expected value for the flags as
- * the actual values can differ per engine.
- *
- * @param entity Entity index.
- * @param flags Entity flags, see entity flag defines above.
- * @error Invalid entity index, or lack of mod compliance.
- */
-native void SetEntityFlags(int entity, int flags);
-
-
-/**
- * Gets an entity's movetype.
- *
- * @param entity Entity index.
- * @return Movetype, see enum above.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock MoveType GetEntityMoveType(int entity)
-{
- static bool gotconfig = false;
- static char datamap[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_MoveType", datamap, sizeof(datamap));
- delete gc;
-
- if (!exists)
- {
- strcopy(datamap, sizeof(datamap), "m_MoveType");
- }
-
- gotconfig = true;
- }
-
- return view_as(GetEntProp(entity, Prop_Data, datamap));
-}
-
-/**
- * Sets an entity's movetype.
- *
- * @param entity Entity index.
- * @param mt Movetype, see enum above.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityMoveType(int entity, MoveType mt)
-{
- static bool gotconfig = false;
- static char datamap[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_MoveType", datamap, sizeof(datamap));
- delete gc;
-
- if (!exists)
- {
- strcopy(datamap, sizeof(datamap), "m_MoveType");
- }
-
- gotconfig = true;
- }
-
- SetEntProp(entity, Prop_Data, datamap, mt);
-}
-
-/**
- * Gets an entity's render mode.
- *
- * @param entity Entity index.
- * @return RenderMode value.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock RenderMode GetEntityRenderMode(int entity)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_nRenderMode", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_nRenderMode");
- }
-
- gotconfig = true;
- }
-
- return view_as(GetEntProp(entity, Prop_Send, prop, 1));
-}
-
-/**
- * Sets an entity's render mode.
- *
- * @param entity Entity index.
- * @param mode RenderMode value.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityRenderMode(int entity, RenderMode mode)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_nRenderMode", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_nRenderMode");
- }
-
- gotconfig = true;
- }
-
- SetEntProp(entity, Prop_Send, prop, mode, 1);
-}
-
-/**
- * Gets an entity's render Fx.
- *
- * @param entity Entity index.
- * @return RenderFx value.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock RenderFx GetEntityRenderFx(int entity)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_nRenderFX", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_nRenderFX");
- }
-
- gotconfig = true;
- }
-
- return view_as(GetEntProp(entity, Prop_Send, prop, 1));
-}
-
-/**
- * Sets an entity's render Fx.
- *
- * @param entity Entity index.
- * @param fx RenderFx value.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityRenderFx(int entity, RenderFx fx)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_nRenderFX", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_nRenderFX");
- }
-
- gotconfig = true;
- }
-
- SetEntProp(entity, Prop_Send, prop, fx, 1);
-}
-
-/**
- * Gets an entity's color.
- *
- * @param entity Entity index.
- * @param r Amount of red (0-255)
- * @param g Amount of green (0-255)
- * @param b Amount of blue (0-255)
- * @param a Amount of alpha (0-255)
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void GetEntityRenderColor(int entity, int &r, int &g, int &b, int &a)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_clrRender", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_clrRender");
- }
-
- gotconfig = true;
- }
-
- int offset = GetEntSendPropOffs(entity, prop);
-
- if (offset <= 0)
- {
- ThrowError("GetEntityRenderColor not supported by this mod");
- }
-
- r = GetEntData(entity, offset, 1);
- g = GetEntData(entity, offset + 1, 1);
- b = GetEntData(entity, offset + 2, 1);
- a = GetEntData(entity, offset + 3, 1);
-}
-
-/**
- * Sets an entity's color.
- *
- * @param entity Entity index
- * @param r Amount of red (0-255)
- * @param g Amount of green (0-255)
- * @param b Amount of blue (0-255)
- * @param a Amount of alpha (0-255)
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityRenderColor(int entity, int r=255, int g=255, int b=255, int a=255)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_clrRender", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_clrRender");
- }
-
- gotconfig = true;
- }
-
- int offset = GetEntSendPropOffs(entity, prop);
-
- if (offset <= 0)
- {
- ThrowError("SetEntityRenderColor not supported by this mod");
- }
-
- SetEntData(entity, offset, r, 1, true);
- SetEntData(entity, offset + 1, g, 1, true);
- SetEntData(entity, offset + 2, b, 1, true);
- SetEntData(entity, offset + 3, a, 1, true);
-}
-
-/**
- * Gets an entity's gravity.
- *
- * @param entity Entity index.
- * @return Entity's m_flGravity value.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock float GetEntityGravity(int entity)
-{
- static bool gotconfig = false;
- static char datamap[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_flGravity", datamap, sizeof(datamap));
- delete gc;
-
- if (!exists)
- {
- strcopy(datamap, sizeof(datamap), "m_flGravity");
- }
-
- gotconfig = true;
- }
-
- return GetEntPropFloat(entity, Prop_Data, datamap);
-}
-
-/**
- * Sets an entity's gravity.
- *
- * @param entity Entity index.
- * @param amount Gravity to set (default = 1.0, half = 0.5, double = 2.0).
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityGravity(int entity, float amount)
-{
- static bool gotconfig = false;
- static char datamap[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_flGravity", datamap, sizeof(datamap));
- delete gc;
-
- if (!exists)
- {
- strcopy(datamap, sizeof(datamap), "m_flGravity");
- }
-
- gotconfig = true;
- }
-
- SetEntPropFloat(entity, Prop_Data, datamap, amount);
-}
-
-/**
- * Sets an entity's health
- *
- * @param entity Entity index.
- * @param amount Health amount.
- * @error Invalid entity index, or lack of mod compliance.
- */
-stock void SetEntityHealth(int entity, int amount)
-{
- static bool gotconfig = false;
- static char prop[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_iHealth", prop, sizeof(prop));
- delete gc;
-
- if (!exists)
- {
- strcopy(prop, sizeof(prop), "m_iHealth");
- }
-
- gotconfig = true;
- }
-
- char cls[64];
- PropFieldType type;
- int offset;
-
- if (!GetEntityNetClass(entity, cls, sizeof(cls)))
- {
- ThrowError("SetEntityHealth not supported by this mod: Could not get serverclass name");
- return;
- }
-
- offset = FindSendPropInfo(cls, prop, type);
-
- if (offset <= 0)
- {
- ThrowError("SetEntityHealth not supported by this mod");
- return;
- }
-
- /* Dark Messiah uses a float for the health instead an integer */
- if (type == PropField_Float)
- {
- SetEntDataFloat(entity, offset, float(amount));
- }
- else
- {
- SetEntProp(entity, Prop_Send, prop, amount);
- }
-}
-
-/**
- * Get's a users current pressed buttons
- *
- * @param client Client index
- * @return Bitsum of buttons
- * @error Invalid client index, client not in game,
- * or lack of mod compliance.
- */
-stock int GetClientButtons(int client)
-{
- static bool gotconfig = false;
- static char datamap[32];
-
- if (!gotconfig)
- {
- GameData gc = new GameData("core.games");
- bool exists = gc.GetKeyValue("m_nButtons", datamap, sizeof(datamap));
- delete gc;
-
- if (!exists)
- {
- strcopy(datamap, sizeof(datamap), "m_nButtons");
- }
-
- gotconfig = true;
- }
-
- return GetEntProp(client, Prop_Data, datamap);
-}
diff --git a/addons/sourcemod/scripting/include/events.inc b/addons/sourcemod/scripting/include/events.inc
deleted file mode 100644
index 6bba6669e..000000000
--- a/addons/sourcemod/scripting/include/events.inc
+++ /dev/null
@@ -1,343 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _events_included
- #endinput
-#endif
-#define _events_included
-
-/**
- * Event hook modes determining how hooking should be handled
- */
-enum EventHookMode
-{
- EventHookMode_Pre, //< Hook callback fired before event is fired */
- EventHookMode_Post, //< Hook callback fired after event is fired */
- EventHookMode_PostNoCopy //< Hook callback fired after event is fired, but event data won't be copied */
-};
-
-/**
- * Hook function types for events.
- */
-typeset EventHook
-{
- // Called when a game event is fired.
- //
- // @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
- // this event has set the hook mode EventHookMode_PostNoCopy.
- // @param name String containing the name of the event.
- // @param dontBroadcast True if event was not broadcast to clients, false otherwise.
- // May not correspond to the real value. Use the property BroadcastDisabled.
- // @return Ignored for post hooks. Plugin_Handled will block event if hooked as pre.
- ///
- function Action (Event event, const char[] name, bool dontBroadcast);
-
- //
- // Called when a game event is fired.
- //
- // @param event Handle to event. This could be INVALID_HANDLE if every plugin hooking
- // this event has set the hook mode EventHookMode_PostNoCopy.
- // @param name String containing the name of the event.
- // @param dontBroadcast True if event was not broadcast to clients, false otherwise.
- ///
- function void (Event event, const char[] name, bool dontBroadcast);
-};
-
-methodmap Event < Handle
-{
- // Fires a game event.
- //
- // This function closes the event Handle after completing.
- //
- // @param dontBroadcast Optional boolean that determines if event should be broadcast to clients.
- public native void Fire(bool dontBroadcast=false);
-
- // Fires a game event to only the specified client.
- //
- // Unlike Fire, this function DOES NOT close the event Handle.
- //
- // @param client Index of client to receive the event..
- public native void FireToClient(int client);
-
- // Cancels a previously created game event that has not been fired. This
- // is necessary to avoid leaking memory when an event isn't fired.
- public native void Cancel();
-
- // Returns the boolean value of a game event's key.
- //
- // @param key Name of event key.
- // @param defValue Optional default value to use if the key is not found.
- // @return The boolean value of the specified event key.
- public native bool GetBool(const char[] key, bool defValue=false);
-
- // Sets the boolean value of a game event's key.
- //
- // @param key Name of event key.
- // @param value New boolean value.
- public native void SetBool(const char[] key, bool value);
-
- // Returns the integer value of a game event's key.
- //
- // @param key Name of event key.
- // @param defValue Optional default value to use if the key is not found.
- // @return The integer value of the specified event key.
- public native int GetInt(const char[] key, int defValue=0);
-
- // Sets the integer value of a game event's key.
- //
- // Integer value refers to anything that can be reduced to an integer.
- // The various size specifiers, such as "byte" and "short" are still
- // integers, and only refer to how much data will actually be sent
- // over the network (if applicable).
- //
- // @param key Name of event key.
- // @param value New integer value.
- public native void SetInt(const char[] key, int value);
-
- // Returns the floating point value of a game event's key.
- //
- // @param key Name of event key.
- // @param defValue Optional default value to use if the key is not found.
- // @return The floating point value of the specified event key.
- public native float GetFloat(const char[] key, float defValue=0.0);
-
- // Sets the floating point value of a game event's key.
- //
- // @param key Name of event key.
- // @param value New floating point value.
- public native void SetFloat(const char[] key, float value);
-
- // Retrieves the string value of a game event's key.
- //
- // @param key Name of event key.
- // @param value Buffer to store the value of the specified event key.
- // @param maxlength Maximum length of string buffer.
- // @param defValue Optional default value to use if the key is not found.
- public native void GetString(const char[] key, char[] value, int maxlength, const char[] defvalue="");
-
- // Sets the string value of a game event's key.
- //
- // @param key Name of event key.
- // @param value New string value.
- public native void SetString(const char[] key, const char[] value);
-
- // Retrieves the name of a game event.
- //
- // @param name Buffer to store the name of the event.
- // @param maxlength Maximum length of string buffer.
- public native void GetName(char[] name, int maxlength);
-
- // Sets whether an event's broadcasting will be disabled or not.
- //
- // This has no effect on events Handles that are not from HookEvent
- // or HookEventEx callbacks.
- property bool BroadcastDisabled {
- public native set(bool dontBroadcast);
- public native get();
- }
-}
-
-/**
- * Creates a hook for when a game event is fired.
- *
- * @param name Name of event.
- * @param callback An EventHook function pointer.
- * @param mode Optional EventHookMode determining the type of hook.
- * @error Invalid event name or invalid callback function.
- */
-native void HookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
-
-/**
- * Creates a hook for when a game event is fired.
- *
- * @param name Name of event.
- * @param callback An EventHook function pointer.
- * @param mode Optional EventHookMode determining the type of hook.
- * @return True if event exists and was hooked successfully, false otherwise.
- * @error Invalid callback function.
- */
-native bool HookEventEx(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
-
-/**
- * Removes a hook for when a game event is fired.
- *
- * @param name Name of event.
- * @param callback An EventHook function pointer.
- * @param mode Optional EventHookMode determining the type of hook.
- * @error Invalid callback function or no active hook for specified event.
- */
-native void UnhookEvent(const char[] name, EventHook callback, EventHookMode mode=EventHookMode_Post);
-
-/**
- * Creates a game event to be fired later.
- *
- * The Handle should not be closed via CloseHandle(). It must be closed via
- * event.Fire() or event.Cancel().
- *
- * @param name Name of event.
- * @param force If set to true, this forces the event to be created even if it's not being hooked.
- * Note that this will not force it if the event doesn't exist at all.
- * @return Handle to event. INVALID_HANDLE is returned if the event doesn't exist or isn't
- * being hooked (unless force is true).
- */
-native Event CreateEvent(const char[] name, bool force=false);
-
-/**
- * Fires a game event.
- *
- * This function closes the event Handle after completing.
- *
- * @param event Handle to the event.
- * @param dontBroadcast Optional boolean that determines if event should be broadcast to clients.
- * @error Invalid or corrupt Handle.
- */
-native void FireEvent(Handle event, bool dontBroadcast=false);
-
-/**
- * Cancels a previously created game event that has not been fired.
- *
- * @param event Handled to the event.
- * @error Invalid or corrupt Handle.
- */
-native void CancelCreatedEvent(Handle event);
-
-/**
- * Returns the boolean value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param defValue Optional default value to use if the key is not found.
- * @return The boolean value of the specified event key.
- * @error Invalid or corrupt Handle.
- */
-native bool GetEventBool(Handle event, const char[] key, bool defValue=false);
-
-/**
- * Sets the boolean value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param value New boolean value.
- * @error Invalid or corrupt Handle.
- */
-native void SetEventBool(Handle event, const char[] key, bool value);
-
-/**
- * Returns the integer value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param defValue Optional default value to use if the key is not found.
- * @return The integer value of the specified event key.
- * @error Invalid or corrupt Handle.
- */
-native int GetEventInt(Handle event, const char[] key, int defValue=0);
-
-/**
- * Sets the integer value of a game event's key.
- *
- * Integer value refers to anything that can be reduced to an integer.
- * The various size specifiers, such as "byte" and "short" are still
- * integers, and only refer to how much data will actually be sent
- * over the network (if applicable).
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param value New integer value.
- * @error Invalid or corrupt Handle.
- */
-native void SetEventInt(Handle event, const char[] key, int value);
-
-/**
- * Returns the floating point value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param defValue Optional default value to use if the key is not found.
- * @return The floating point value of the specified event key.
- * @error Invalid or corrupt Handle.
- */
-native float GetEventFloat(Handle event, const char[] key, float defValue=0.0);
-
-/**
- * Sets the floating point value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param value New floating point value.
- * @error Invalid or corrupt Handle.
- */
-native void SetEventFloat(Handle event, const char[] key, float value);
-
-/**
- * Retrieves the string value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param value Buffer to store the value of the specified event key.
- * @param maxlength Maximum length of string buffer.
- * @param defValue Optional default value to use if the key is not found.
- * @error Invalid or corrupt Handle.
- */
-native void GetEventString(Handle event, const char[] key, char[] value, int maxlength, const char[] defvalue="");
-
-/**
- * Sets the string value of a game event's key.
- *
- * @param event Handle to the event.
- * @param key Name of event key.
- * @param value New string value.
- * @error Invalid or corrupt Handle.
- */
-native void SetEventString(Handle event, const char[] key, const char[] value);
-
-/**
- * Retrieves the name of a game event.
- *
- * @param event Handle to the event.
- * @param name Buffer to store the name of the event.
- * @param maxlength Maximum length of string buffer.
- * @error Invalid or corrupt Handle.
- */
-native void GetEventName(Handle event, char[] name, int maxlength);
-
-/**
- * Sets whether an event's broadcasting will be disabled or not.
- *
- * This has no effect on events Handles that are not from HookEvent
- * or HookEventEx callbacks.
- *
- * @param event Handle to an event from an event hook.
- * @param dontBroadcast True to disable broadcasting, false otherwise.
- * @error Invalid Handle.
- */
-native void SetEventBroadcast(Handle event, bool dontBroadcast);
diff --git a/addons/sourcemod/scripting/include/files.inc b/addons/sourcemod/scripting/include/files.inc
deleted file mode 100644
index e265e9e1b..000000000
--- a/addons/sourcemod/scripting/include/files.inc
+++ /dev/null
@@ -1,628 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _files_included
- #endinput
-#endif
-#define _files_included
-
-/**
- * @global All paths in SourceMod natives are relative to the mod folder
- * unless otherwise noted.
- *
- * Most functions in SourceMod (at least, ones that deal with direct
- * file manipulation) will support an alternate path specification.
- *
- * If the path starts with the string "file://" and the PathType is
- * not relative, then the "file://" portion is stripped off, and the
- * rest of the path is used without any modification (except for
- * correcting slashes). This can be used to override the path
- * builder to supply alternate absolute paths. Examples:
- *
- * file://C:/Temp/file.txt
- * file:///tmp/file.txt
- */
-
-/**
- * File inode types.
- */
-enum FileType
-{
- FileType_Unknown = 0, /* Unknown file type (device/socket) */
- FileType_Directory = 1, /* File is a directory */
- FileType_File = 2 /* File is a file */
-};
-
-/**
- * File time modes.
- */
-enum FileTimeMode
-{
- FileTime_LastAccess = 0, /* Last access (does not work on FAT) */
- FileTime_Created = 1, /* Creation (does not work on FAT) */
- FileTime_LastChange = 2 /* Last modification */
-};
-
-#define PLATFORM_MAX_PATH 256 /**< Maximum path length. */
-
-#define SEEK_SET 0 /**< Seek from start. */
-#define SEEK_CUR 1 /**< Seek from current position. */
-#define SEEK_END 2 /**< Seek from end position. */
-
-/**
- * Path types.
- */
-enum PathType
-{
- Path_SM, /**< SourceMod root folder */
-};
-
-// A DirectoryListing iterates over the contents of a directory. To obtain a
-// DirectoryListing handle, call OpenDirectory().
-methodmap DirectoryListing < Handle
-{
- // Reads the current directory entry as a local filename, then moves to the
- // next file.
- //
- // Note: Both the '.' and '..' automatic directory entries will be retrieved.
- //
- // @param buffer String buffer to hold directory name.
- // @param maxlength Maximum size of string buffer.
- // @param type Optional variable to store the file type.
- // @return True on success, false if there are no more files to read.
- public native bool GetNext(char[] buffer, int maxlength, FileType &type=FileType_Unknown);
-};
-
-// A File object can be obtained by calling OpenFile(). File objects should be
-// closed with delete or Close(). Note that, "delete file" does not
-// actually delete the file, it just closes the handle.
-methodmap File < Handle
-{
- // Close the file handle. This is the same as using CloseHandle() or delete.
- public void Close() {
- CloseHandle(this);
- }
-
- // Reads a line of text from a file.
- //
- // @param buffer String buffer to hold the line.
- // @param maxlength Maximum size of string buffer.
- // @return True on success, false otherwise.
- public native bool ReadLine(char[] buffer, int maxlength);
-
- // Reads binary data from a file.
- //
- // @param items Array to store each item read.
- // @param num_items Number of items to read into the array.
- // @param size Size of each element, in bytes, to be read.
- // Valid sizes are 1, 2, or 4.
- // @return Number of elements read, or -1 on error.
- public native int Read(any[] items, int num_items, int size);
-
- // Reads a UTF8 or ANSI string from a file.
- //
- // @param buffer Buffer to store the string.
- // @param max_size Maximum size of the string buffer.
- // @param read_count If -1, reads until a null terminator is encountered in
- // the file. Otherwise, read_count bytes are read
- // into the buffer provided. In this case the buffer
- // is not explicitly null terminated, and the buffer
- // will contain any null terminators read from the file.
- // @return Number of characters written to the buffer, or -1
- // if an error was encountered.
- // @error read_count > max_size.
- public native int ReadString(char[] buffer, int max_size, int read_count=-1);
-
- // Writes binary data to a file.
- //
- // @param items Array of items to write. The data is read directly.
- // That is, in 1 or 2-byte mode, the lower byte(s) in
- // each cell are used directly, rather than performing
- // any casts from a 4-byte number to a smaller number.
- // @param num_items Number of items in the array.
- // @param size Size of each item in the array in bytes.
- // Valid sizes are 1, 2, or 4.
- // @return True on success, false on error.
- public native bool Write(const any[] items, int num_items, int size);
-
- // Writes a binary string to a file.
- //
- // @param buffer String to write.
- // @param term True to append NUL terminator, false otherwise.
- // @return True on success, false on error.
- public native bool WriteString(const char[] buffer, bool term);
-
- // Writes a line of text to a text file. A newline is automatically appended.
- //
- // @param hndl Handle to the file.
- // @param format Formatting rules.
- // @param ... Variable number of format parameters.
- // @return True on success, false otherwise.
- public native bool WriteLine(const char[] format, any ...);
-
- // Reads a single int8 (byte) from a file. The returned value is sign-
- // extended to an int32.
- //
- // @param data Variable to store the data read.
- // @return True on success, false on failure.
- public native bool ReadInt8(int &data);
-
- // Reads a single uint8 (unsigned byte) from a file. The returned value is
- // zero-extended to an int32.
- //
- // @param data Variable to store the data read.
- // @return True on success, false on failure.
- public native bool ReadUint8(int &data);
-
- // Reads a single int16 (short) from a file. The value is sign-extended to
- // an int32.
- //
- // @param data Variable to store the data read.
- // @return True on success, false on failure.
- public native bool ReadInt16(int &data);
-
- // Reads a single unt16 (unsigned short) from a file. The value is zero-
- // extended to an int32.
- //
- // @param data Variable to store the data read.
- // @return True on success, false on failure.
- public native bool ReadUint16(int &data);
-
- // Reads a single int32 (int/cell) from a file.
- //
- // @param data Variable to store the data read.
- // @return True on success, false on failure.
- public native bool ReadInt32(int &data);
-
- // Writes a single int8 (byte) to a file.
- //
- // @param data Data to write (truncated to an int8).
- // @return True on success, false on failure.
- public native bool WriteInt8(int data);
-
- // Writes a single int16 (short) to a file.
- //
- // @param data Data to write (truncated to an int16).
- // @return True on success, false on failure.
- public native bool WriteInt16(int data);
-
- // Writes a single int32 (int/cell) to a file.
- //
- // @param data Data to write.
- // @return True on success, false on failure.
- public native bool WriteInt32(int data);
-
- // Tests if the end of file has been reached.
- //
- // @return True if end of file has been reached, false otherwise.
- public native bool EndOfFile();
-
- // Sets the file position indicator.
- //
- // @param position Position relative to what is specified in whence.
- // @param where SEEK_ constant value of where to see from.
- // @return True on success, false otherwise.
- public native bool Seek(int position, int where);
-
- // Flushes a file's buffered output; any buffered output
- // is immediately written to the file.
- //
- // @return True on success or use_valve_fs specified with OpenFile,
- // otherwise false on failure.
- public native bool Flush();
-
- // Get the current position in the file; returns -1 on failure.
- property int Position {
- public native get();
- }
-}
-
-/**
- * Builds a path relative to the SourceMod folder. This should be used instead of
- * directly referencing addons/sourcemod, in case users change the name of their
- * folder layout.
- *
- * @param type Type of path to build as the base.
- * @param buffer Buffer to store the path.
- * @param maxlength Maximum length of buffer.
- * @param fmt Format string.
- * @param ... Format arguments.
- * @return Number of bytes written to buffer (not including null terminator).
- */
-native int BuildPath(PathType type, char[] buffer, int maxlength, const char[] fmt, any ...);
-
-/**
- * Opens a directory/folder for contents enumeration.
- *
- * @note Directories are closed with CloseHandle() or delete.
- * @note Directories Handles can be cloned.
- * @note OpenDirectory() supports the "file://" notation.
- *
- * @param path Path to open.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to find files existing in any of
- * the Valve search paths, rather than solely files
- * existing directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return A Handle to the directory, null on error.
- */
-native DirectoryListing OpenDirectory(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
-
-/**
- * Reads the current directory entry as a local filename, then moves to the next file.
- *
- * @note Contents of buffers are undefined when returning false.
- * @note Both the '.' and '..' automatic directory entries will be retrieved for Windows and Linux.
- *
- * @param dir Handle to a directory.
- * @param buffer String buffer to hold directory name.
- * @param maxlength Maximum size of string buffer.
- * @param type Optional variable to store the file type.
- * @return True on success, false if there are no more files to read.
- * @error Invalid or corrupt Handle.
- */
-native bool ReadDirEntry(Handle dir, char[] buffer, int maxlength, FileType &type=FileType_Unknown);
-
-/**
- * Opens or creates a file, returning a File handle on success. File handles
- * should be closed with delete or CloseHandle().
- *
- * The open mode may be one of the following strings:
- * "r": Open an existing file for reading.
- * "w": Create a file for writing, or truncate (delete the contents of) an
- * existing file and then open it for writing.
- * "a": Create a file for writing, or open an existing file such that writes
- * will be appended to the end.
- * "r+": Open an existing file for both reading and writing.
- * "w+": Create a file for reading and writing, or truncate an existing file
- * and then open it for reading and writing.
- * "a+": Create a file for both reading and writing, or open an existing file
- * such that writes will be appended to the end.
- *
- * The open mode may also contain an additional character after "r", "w", or "a",
- * but before any "+" sign. This character may be "b" (indicating binary mode) or
- * "t" (indicating text mode). By default, "text" mode is implied. On Linux and
- * Mac, this has no distinction from binary mode. On Windows, it causes the '\n'
- * character (0xA) to be written as "\r\n" (0xD, 0xA).
- *
- * Example: "rb" opens a binary file for reading; "at" opens a text file for
- * appending.
- *
- * @param file File to open.
- * @param mode Open mode.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to find files existing in valve
- * search paths, rather than solely files existing directly
- * in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return A File handle, or null if the file could not be opened.
- */
-native File OpenFile(const char[] file, const char[] mode, bool use_valve_fs=false, const char[] valve_path_id="GAME");
-
-/**
- * Deletes a file.
- *
- * @param path Path of the file to delete.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to delete files existing in the Valve
- * search path, rather than solely files existing directly
- * in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return True on success, false on failure or if file not immediately removed.
- */
-native bool DeleteFile(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
-
-/**
- * Reads a line from a text file.
- *
- * @param hndl Handle to the file.
- * @param buffer String buffer to hold the line.
- * @param maxlength Maximum size of string buffer.
- * @return True on success, false otherwise.
- */
-native bool ReadFileLine(Handle hndl, char[] buffer, int maxlength);
-
-/**
- * Reads binary data from a file.
- *
- * @param hndl Handle to the file.
- * @param items Array to store each item read.
- * @param num_items Number of items to read into the array.
- * @param size Size of each element, in bytes, to be read.
- * Valid sizes are 1, 2, or 4.
- * @return Number of elements read, or -1 on error.
- */
-native int ReadFile(Handle hndl, any[] items, int num_items, int size);
-
-/**
- * Reads a UTF8 or ANSI string from a file.
- *
- * @param hndl Handle to the file.
- * @param buffer Buffer to store the string.
- * @param max_size Maximum size of the string buffer.
- * @param read_count If -1, reads until a null terminator is encountered in
- * the file. Otherwise, read_count bytes are read
- * into the buffer provided. In this case the buffer
- * is not explicitly null terminated, and the buffer
- * will contain any null terminators read from the file.
- * @return Number of characters written to the buffer, or -1
- * if an error was encountered.
- * @error Invalid Handle, or read_count > max_size.
- */
-native int ReadFileString(Handle hndl, char[] buffer, int max_size, int read_count=-1);
-
-/**
- * Writes binary data to a file.
- *
- * @param hndl Handle to the file.
- * @param items Array of items to write. The data is read directly.
- * That is, in 1 or 2-byte mode, the lower byte(s) in
- * each cell are used directly, rather than performing
- * any casts from a 4-byte number to a smaller number.
- * @param num_items Number of items in the array.
- * @param size Size of each item in the array in bytes.
- * Valid sizes are 1, 2, or 4.
- * @return True on success, false on error.
- * @error Invalid Handle.
- */
-native bool WriteFile(Handle hndl, const any[] items, int num_items, int size);
-
-/**
- * Writes a binary string to a file.
- *
- * @param hndl Handle to the file.
- * @param buffer String to write.
- * @param term True to append NUL terminator, false otherwise.
- * @return True on success, false on error.
- * @error Invalid Handle.
- */
-native bool WriteFileString(Handle hndl, const char[] buffer, bool term);
-
-/**
- * Writes a line of text to a text file. A newline is automatically appended.
- *
- * @param hndl Handle to the file.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool WriteFileLine(Handle hndl, const char[] format, any ...);
-
-/**
- * Reads a single binary cell from a file.
- *
- * @param hndl Handle to the file.
- * @param data Variable to store the data read.
- * @param size Size of the data to read in bytes. Valid
- * sizes are 1, 2, or 4 bytes.
- * @return Number of elements read (max 1), or -1 on error.
- * @error Invalid Handle.
- */
-stock int ReadFileCell(Handle hndl, int &data, int size)
-{
- int ret;
- int array[1];
-
- if ((ret = ReadFile(hndl, array, 1, size)) == 1)
- {
- data = array[0];
- }
-
- return ret;
-}
-
-/**
- * Writes a single binary cell to a file.
- *
- * @param hndl Handle to the file.
- * @param data Cell to write to the file.
- * @param size Size of the data to read in bytes. Valid
- * sizes are 1, 2, or 4 bytes. If the size
- * is less than 4 bytes, the data is truncated
- * rather than casted. That is, only the lower
- * bits will be read.
- * @return True on success, false on error.
- * @error Invalid Handle.
- */
-stock bool WriteFileCell(Handle hndl, int data, int size)
-{
- int array[1];
- array[0] = data;
-
- return WriteFile(hndl, array, 1, size);
-}
-
-/**
- * Tests if the end of file has been reached.
- *
- * @param file Handle to the file.
- * @return True if end of file has been reached, false otherwise.
- * @error Invalid Handle.
- */
-native bool IsEndOfFile(Handle file);
-
-/**
- * Sets the file position indicator.
- *
- * @param file Handle to the file.
- * @param position Position relative to what is specified in whence.
- * @param where SEEK_ constant value of where to see from.
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool FileSeek(Handle file, int position, int where);
-
-/**
- * Get current position in the file.
- *
- * @param file Handle to the file.
- * @return Value for the file position indicator.
- * @error Invalid Handle.
- */
-native int FilePosition(Handle file);
-
-/**
- * Checks if a file exists.
- *
- * @param path Path to the file.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to find files existing in any of
- * the Valve search paths, rather than solely files
- * existing directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return True if the file exists, false otherwise.
- */
-native bool FileExists(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
-
-/**
- * Renames a file.
- *
- * @param newpath New path to the file.
- * @param oldpath Path to the existing file.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to rename files in the game's
- * Valve search paths, rather than directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return True on success or use_valve_fs specified, false otherwise.
- */
-native bool RenameFile(const char[] newpath, const char[] oldpath, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
-
-/**
- * Checks if a directory exists.
- *
- * @param path Path to the directory.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to find files existing in any of
- * the Valve search paths, rather than solely files
- * existing directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return True if the directory exists, false otherwise.
- */
-native bool DirExists(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
-
-/**
- * Get the file size in bytes.
- *
- * @param path Path to the file.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to find files existing in any of
- * the Valve search paths, rather than solely files
- * existing directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for all search paths.
- * @return File size in bytes, -1 if file not found.
- */
-native int FileSize(const char[] path, bool use_valve_fs=false, const char[] valve_path_id="GAME");
-
-/**
- * Flushes a file's buffered output; any buffered output
- * is immediately written to the file.
- *
- * @param file Handle to the file.
- * @return True on success or use_valve_fs specified with OpenFile,
- * otherwise false on failure.
- */
-native bool FlushFile(Handle file);
-
-/**
- * Removes a directory.
- * @note On most Operating Systems you cannot remove a directory which has files inside it.
- *
- * @param path Path to the directory.
- * @return True on success, false otherwise.
- */
-native bool RemoveDir(const char[] path);
-
-#define FPERM_U_READ 0x0100 /* User can read. */
-#define FPERM_U_WRITE 0x0080 /* User can write. */
-#define FPERM_U_EXEC 0x0040 /* User can exec. */
-#define FPERM_G_READ 0x0020 /* Group can read. */
-#define FPERM_G_WRITE 0x0010 /* Group can write. */
-#define FPERM_G_EXEC 0x0008 /* Group can exec. */
-#define FPERM_O_READ 0x0004 /* Anyone can read. */
-#define FPERM_O_WRITE 0x0002 /* Anyone can write. */
-#define FPERM_O_EXEC 0x0001 /* Anyone can exec. */
-
-/**
- * Creates a directory.
- *
- * @param path Path to create.
- * @param mode Permissions (default is o=rx,g=rx,u=rwx). Note that folders must have
- * the execute bit set on Linux. On Windows, the mode is ignored.
- * @param use_valve_fs If true, the Valve file system will be used instead.
- * This can be used to create folders in the game's
- * Valve search paths, rather than directly in the gamedir.
- * @param valve_path_id If use_valve_fs, a search path from gameinfo or NULL_STRING for default.
- * In this case, mode is ignored.
- * @return True on success, false otherwise.
- */
-native bool CreateDirectory(const char[] path, int mode, bool use_valve_fs=false, const char[] valve_path_id="DEFAULT_WRITE_PATH");
-
-/**
- * Changes a file or directories permissions.
- *
- * @param path Path to the file.
- * @param mode Permissions to set.
- * @return True on success, false otherwise.
- */
-native bool SetFilePermissions(const char[] path, int mode);
-
-/**
- * Returns a file timestamp as a unix timestamp.
- *
- * @param file File name.
- * @param tmode Time mode.
- * @return Time value, or -1 on failure.
- */
-native int GetFileTime(const char[] file, FileTimeMode tmode);
-
-/**
- * Same as LogToFile(), except uses an open file Handle. The file must
- * be opened in text appending mode.
- *
- * @param hndl Handle to the file.
- * @param message Message format.
- * @param ... Message format parameters.
- * @error Invalid Handle.
- */
-native void LogToOpenFile(Handle hndl, const char[] message, any ...);
-
-/**
- * Same as LogToFileEx(), except uses an open file Handle. The file must
- * be opened in text appending mode.
- *
- * @param hndl Handle to the file.
- * @param message Message format.
- * @param ... Message format parameters.
- * @error Invalid Handle.
- */
-native void LogToOpenFileEx(Handle hndl, const char[] message, any ...);
diff --git a/addons/sourcemod/scripting/include/float.inc b/addons/sourcemod/scripting/include/float.inc
deleted file mode 100644
index 010682798..000000000
--- a/addons/sourcemod/scripting/include/float.inc
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _float_included
- #endinput
-#endif
-#define _float_included
-
-#if !defined __sourcepawn2__
-/**
- * Converts an integer into a floating point value.
- *
- * @param value Integer to convert.
- * @return Floating point value.
- */
-native float float(int value);
-#endif
-
-/**
- * Multiplies two floats together.
- *
- * Note: This native is internal implementation. For multiplication use the '*' operator.
- *
- * @param oper1 First value.
- * @param oper2 Second value.
- * @return oper1*oper2.
- * @deprecated This native is internal implementation. For multiplication use the '*' operator.
- */
-#pragma deprecated This native is internal implementation. For multiplication use the '*' operator.
-native float FloatMul(float oper1, float oper2);
-
-/**
- * Divides the dividend by the divisor.
- *
- * Note: This native is internal implementation. For division use the '/' operator.
- *
- * @param dividend First value.
- * @param divisor Second value.
- * @return dividend/divisor.
- * @deprecated This native is internal implementation. For division use the '/' operator.
- */
-#pragma deprecated This native is internal implementation. For division use the '/' operator.
-native float FloatDiv(float dividend, float divisor);
-
-/**
- * Adds two floats together.
- *
- * Note: This native is internal implementation. For addition use the '+' operator.
- *
- * @param oper1 First value.
- * @param oper2 Second value.
- * @return oper1+oper2.
- * @deprecated This native is internal implementation. For addition use the '+' operator.
- */
-#pragma deprecated This native is internal implementation. For addition use the '+' operator.
-native float FloatAdd(float oper1, float oper2);
-
-/**
- * Subtracts oper2 from oper1.
- *
- * Note: This native is internal implementation. For subtraction use the '-' operator.
- *
- * @param oper1 First value.
- * @param oper2 Second value.
- * @return oper1-oper2.
- * @deprecated This native is internal implementation. For subtraction use the '-' operator.
- */
-#pragma deprecated This native is internal implementation. For subtraction use the '-' operator.
-native float FloatSub(float oper1, float oper2);
-
-/**
- * Returns the decimal part of a float.
- *
- * @param value Input value.
- * @return Decimal part.
- */
-native float FloatFraction(float value);
-
-/**
- * Rounds a float to the closest integer to zero.
- *
- * @param value Input value to be rounded.
- * @return Rounded value.
- */
-native int RoundToZero(float value);
-
-/**
- * Rounds a float to the next highest integer value.
- *
- * @param value Input value to be rounded.
- * @return Rounded value.
- */
-native int RoundToCeil(float value);
-
-/**
- * Rounds a float to the next lowest integer value.
- *
- * @param value Input value to be rounded.
- * @return Rounded value.
- */
-native int RoundToFloor(float value);
-
-/**
- * Standard IEEE rounding.
- *
- * @param value Input value to be rounded.
- * @return Rounded value.
- */
-native int RoundToNearest(float value);
-
-/**
- * Compares two floats.
- *
- * @param fOne First value.
- * @param fTwo Second value.
- * @return Returns 1 if the first argument is greater than the second argument.
- * Returns -1 if the first argument is smaller than the second argument.
- * Returns 0 if both arguments are equal.
- */
-native int FloatCompare(float fOne, float fTwo);
-
-/**
- * Returns the square root of the input value, equivalent to floatpower(value, 0.5).
- *
- * @param value Input value.
- * @return Square root of the value.
- */
-native float SquareRoot(float value);
-
-/**
- * Returns the value raised to the power of the exponent.
- *
- * @param value Value to be raised.
- * @param exponent Value to raise the base.
- * @return value^exponent.
- */
-native float Pow(float value, float exponent);
-
-/**
- * Returns the value of raising the input by e.
- *
- * @param value Input value.
- * @return exp(value).
- */
-native float Exponential(float value);
-
-/**
- * Returns the logarithm of any base specified.
- *
- * @param value Input value.
- * @param base Logarithm base to use, default is 10.
- * @return log(value)/log(base).
- */
-native float Logarithm(float value, float base=10.0);
-
-/**
- * Returns the sine of the argument.
- *
- * @param value Input value in radians.
- * @return sin(value).
- */
-native float Sine(float value);
-
-/**
- * Returns the cosine of the argument.
- *
- * @param value Input value in radians.
- * @return cos(value).
- */
-native float Cosine(float value);
-
-/**
- * Returns the tangent of the argument.
- *
- * @param value Input value in radians.
- * @return tan(value).
- */
-native float Tangent(float value);
-
-/**
- * Returns an absolute value.
- *
- * @param value Input value.
- * @return Absolute value of the input.
- */
-native float FloatAbs(float value);
-
-/**
- * Returns the arctangent of the input value.
- *
- * @param angle Input value.
- * @return atan(value) in radians.
- */
-native float ArcTangent(float angle);
-
-/**
- * Returns the arccosine of the input value.
- *
- * @param angle Input value.
- * @return acos(value) in radians.
- */
-native float ArcCosine(float angle);
-
-/**
- * Returns the arcsine of the input value.
- *
- * @param angle Input value.
- * @return asin(value) in radians.
- */
-native float ArcSine(float angle);
-
-/**
- * Returns the arctangent2 of the input values.
- *
- * @param x Horizontal value.
- * @param y Vertical value.
- * @return atan2(value) in radians.
- */
-native float ArcTangent2(float x, float y);
-
-/**
- * Rounds a floating point number using the "round to nearest" algorithm.
- *
- * @param value Floating point value to round.
- * @return The value rounded to the nearest integer.
- */
-stock int RoundFloat(float value)
-{
- return RoundToNearest(value);
-}
-
-/**
- * User defined operators.
- */
-#if !defined __sourcepawn2__
-#pragma rational Float
-
-// Internal aliases for backwards compatibility.
-native float __FLOAT_MUL__(float a, float b) = FloatMul;
-native float __FLOAT_DIV__(float a, float b) = FloatDiv;
-native float __FLOAT_ADD__(float a, float b) = FloatAdd;
-native float __FLOAT_SUB__(float a, float b) = FloatSub;
-
-native bool __FLOAT_GT__(float a, float b);
-native bool __FLOAT_GE__(float a, float b);
-native bool __FLOAT_LT__(float a, float b);
-native bool __FLOAT_LE__(float a, float b);
-native bool __FLOAT_EQ__(float a, float b);
-native bool __FLOAT_NE__(float a, float b);
-native bool __FLOAT_NOT__(float a);
-
-native float operator*(float oper1, float oper2) = FloatMul;
-native float operator/(float oper1, float oper2) = FloatDiv;
-native float operator+(float oper1, float oper2) = FloatAdd;
-native float operator-(float oper1, float oper2) = FloatSub;
-native bool operator!(float oper1) = __FLOAT_NOT__;
-native bool operator>(float oper1, float oper2) = __FLOAT_GT__;
-native bool operator>=(float oper1, float oper2) = __FLOAT_GE__;
-native bool operator<(float oper1, float oper2) = __FLOAT_LT__;
-native bool operator<=(float oper1, float oper2) = __FLOAT_LE__;
-native bool operator!=(float oper1, float oper2) = __FLOAT_NE__;
-native bool operator==(float oper1, float oper2) = __FLOAT_EQ__;
-
-stock float operator++(float oper)
-{
- return oper+1.0;
-}
-
-stock float operator--(float oper)
-{
- return oper-1.0;
-}
-
-stock float operator-(float oper)
-{
- return oper^view_as(cellmin); /* IEEE values are sign/magnitude */
-}
-
-// The stocks below are int->float converting versions of the above natives.
-
-stock float operator*(float oper1, int oper2)
-{
- return __FLOAT_MUL__(oper1, float(oper2)); /* "*" is commutative */
-}
-
-stock float operator/(float oper1, int oper2)
-{
- return __FLOAT_DIV__(oper1, float(oper2));
-}
-
-stock float operator/(int oper1, float oper2)
-{
- return __FLOAT_DIV__(float(oper1), oper2);
-}
-
-stock float operator+(float oper1, int oper2)
-{
- return __FLOAT_ADD__(oper1, float(oper2)); /* "+" is commutative */
-}
-
-stock float operator-(float oper1, int oper2)
-{
- return __FLOAT_SUB__(oper1, float(oper2));
-}
-
-stock float operator-(int oper1, float oper2)
-{
- return __FLOAT_SUB__(float(oper1), oper2);
-}
-
-stock bool operator==(float oper1, int oper2)
-{
- return __FLOAT_EQ__(oper1, float(oper2));
-}
-
-stock bool operator!=(float oper1, int oper2)
-{
- return __FLOAT_NE__(oper1, float(oper2));
-}
-
-stock bool operator>(float oper1, int oper2)
-{
- return __FLOAT_GT__(oper1, float(oper2));
-}
-
-stock bool operator>(int oper1, float oper2)
-{
- return __FLOAT_GT__(float(oper1), oper2);
-}
-
-stock bool operator>=(float oper1, int oper2)
-{
- return __FLOAT_GE__(oper1, float(oper2));
-}
-
-stock bool operator>=(int oper1, float oper2)
-{
- return __FLOAT_GE__(float(oper1), oper2);
-}
-
-stock bool operator<(float oper1, int oper2)
-{
- return __FLOAT_LT__(oper1, float(oper2));
-}
-
-stock bool operator<(int oper1, float oper2)
-{
- return __FLOAT_LT__(float(oper1), oper2);
-}
-
-stock bool operator<=(float oper1, int oper2)
-{
- return __FLOAT_LE__(oper1, float(oper2));
-}
-
-stock bool operator<=(int oper1, float oper2)
-{
- return __FLOAT_LE__(float(oper1), oper2);
-}
-
-/**
- * Forbidden operators.
- */
-forward operator%(float oper1, float oper2);
-forward operator%(float oper1, int oper2);
-forward operator%(int oper1, float oper2);
-#endif // __sourcepawn2__
-
-#define FLOAT_PI 3.1415926535897932384626433832795
-
-/**
- * Converts degrees to radians.
- *
- * @param angle Degrees.
- * @return Radians.
- */
-stock float DegToRad(float angle)
-{
- return (angle*FLOAT_PI)/180;
-}
-
-/**
- * Converts radians to degrees.
- *
- * @param angle Radians.
- * @return Degrees.
- */
-stock float RadToDeg(float angle)
-{
- return (angle*180)/FLOAT_PI;
-}
-
-/**
- * Returns a random integer in the range [0, 2^31-1].
- *
- * Note: Uniform random number streams are seeded automatically per-plugin.
- *
- * @return Random integer.
- */
-native int GetURandomInt();
-
-/**
- * Returns a uniform random float in the range [0, 1).
- *
- * Note: Uniform random number streams are seeded automatically per-plugin.
- *
- * @return Uniform random floating-point number.
- */
-native float GetURandomFloat();
-
-/**
- * Seeds a plugin's uniform random number stream. This is done automatically,
- * so normally it is totally unnecessary to call this.
- *
- * @param seeds Array of numbers to use as seeding data.
- * @param numSeeds Number of seeds in the seeds array.
- */
-native void SetURandomSeed(const int[] seeds, int numSeeds);
-
-/**
- * Seeds a plugin's uniform random number stream. This is done automatically,
- * so normally it is totally unnecessary to call this.
- *
- * @param seed Single seed value.
- */
-stock void SetURandomSeedSimple(int seed)
-{
- int seeds[1];
- seeds[0] = seed;
- SetURandomSeed(seeds, 1);
-}
diff --git a/addons/sourcemod/scripting/include/functions.inc b/addons/sourcemod/scripting/include/functions.inc
deleted file mode 100644
index 05fd555b3..000000000
--- a/addons/sourcemod/scripting/include/functions.inc
+++ /dev/null
@@ -1,629 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _functions_included
- #endinput
-#endif
-#define _functions_included
-
-#define SP_PARAMFLAG_BYREF (1<<0) /**< Internal use only. */
-
-/**
- * Describes the various ways to pass parameters to functions or forwards.
- */
-enum ParamType
-{
- Param_Any = 0, /**< Any data type can be pushed */
- Param_Cell = (1<<1), /**< Only basic cells can be pushed */
- Param_Float = (2<<1), /**< Only floats can be pushed */
- Param_String = (3<<1)|SP_PARAMFLAG_BYREF, /**< Only strings can be pushed */
- Param_Array = (4<<1)|SP_PARAMFLAG_BYREF, /**< Only arrays can be pushed */
- Param_VarArgs = (5<<1), /**< Same as "..." in plugins, anything can be pushed, but it will always be byref */
- Param_CellByRef = (1<<1)|SP_PARAMFLAG_BYREF, /**< Only a cell by reference can be pushed */
- Param_FloatByRef = (2<<1)|SP_PARAMFLAG_BYREF /**< Only a float by reference can be pushed */
-};
-
-/**
- * Defines how a forward iterates through plugin functions.
- */
-enum ExecType
-{
- ET_Ignore = 0, /**< Ignore all return values, return 0 */
- ET_Single = 1, /**< Only return the last exec, ignore all others */
- ET_Event = 2, /**< Acts as an event with the Actions defined in core.inc, no mid-Stops allowed, returns highest */
- ET_Hook = 3 /**< Acts as a hook with the Actions defined in core.inc, mid-Stops allowed, returns highest */
-};
-
-/**
- * @section Flags that are used with Call_PushArrayEx() and Call_PushStringEx()
- */
-
-#define SM_PARAM_COPYBACK (1<<0) /**< Copy an array/reference back after call */
-
-#define SM_PARAM_STRING_UTF8 (1<<0) /**< String should be UTF-8 handled */
-#define SM_PARAM_STRING_COPY (1<<1) /**< String should be copied into the plugin */
-#define SM_PARAM_STRING_BINARY (1<<2) /**< Treat the string as a binary string */
-
-/**
- * @endsection
- */
-
-/**
- * @section Error codes
- */
-#define SP_ERROR_NONE 0 /**< No error occurred */
-#define SP_ERROR_FILE_FORMAT 1 /**< File format unrecognized */
-#define SP_ERROR_DECOMPRESSOR 2 /**< A decompressor was not found */
-#define SP_ERROR_HEAPLOW 3 /**< Not enough space left on the heap */
-#define SP_ERROR_PARAM 4 /**< Invalid parameter or parameter type */
-#define SP_ERROR_INVALID_ADDRESS 5 /**< A memory address was not valid */
-#define SP_ERROR_NOT_FOUND 6 /**< The object in question was not found */
-#define SP_ERROR_INDEX 7 /**< Invalid index parameter */
-#define SP_ERROR_STACKLOW 8 /**< Not enough space left on the stack */
-#define SP_ERROR_NOTDEBUGGING 9 /**< Debug mode was not on or debug section not found */
-#define SP_ERROR_INVALID_INSTRUCTION 10 /**< Invalid instruction was encountered */
-#define SP_ERROR_MEMACCESS 11 /**< Invalid memory access */
-#define SP_ERROR_STACKMIN 12 /**< Stack went beyond its minimum value */
-#define SP_ERROR_HEAPMIN 13 /**< Heap went beyond its minimum value */
-#define SP_ERROR_DIVIDE_BY_ZERO 14 /**< Division by zero */
-#define SP_ERROR_ARRAY_BOUNDS 15 /**< Array index is out of bounds */
-#define SP_ERROR_INSTRUCTION_PARAM 16 /**< Instruction had an invalid parameter */
-#define SP_ERROR_STACKLEAK 17 /**< A native leaked an item on the stack */
-#define SP_ERROR_HEAPLEAK 18 /**< A native leaked an item on the heap */
-#define SP_ERROR_ARRAY_TOO_BIG 19 /**< A dynamic array is too big */
-#define SP_ERROR_TRACKER_BOUNDS 20 /**< Tracker stack is out of bounds */
-#define SP_ERROR_INVALID_NATIVE 21 /**< Native was pending or invalid */
-#define SP_ERROR_PARAMS_MAX 22 /**< Maximum number of parameters reached */
-#define SP_ERROR_NATIVE 23 /**< Error originates from a native */
-#define SP_ERROR_NOT_RUNNABLE 24 /**< Function or plugin is not runnable */
-#define SP_ERROR_ABORTED 25 /**< Function call was aborted */
-
-/**
- * @endsection
- */
-
-methodmap GlobalForward < Handle {
- // Creates a global forward.
- //
- // @note The name used to create the forward is used as its public function in all target plugins.
- // @note This is ideal for global, static forwards that are never changed.
- // @note Global forwards cannot be cloned.
- // @note Use CloseHandle() to destroy these.
- //
- // @param name Name of public function to use in forward.
- // @param type Execution type to be used.
- // @param ... Variable number of parameter types (up to 32).
- // @return Handle to new global forward.
- // @error More than 32 parameter types passed.
- public native GlobalForward(const char[] name, ExecType type, ParamType ...);
-
- // Returns the number of functions in a global or private forward's call list.
- property int FunctionCount {
- public native get();
- }
-};
-
-methodmap PrivateForward < GlobalForward {
- // Creates a private forward.
- //
- // @note No functions are automatically added. Use AddToForward() to do this.
- // @note Private forwards can be cloned.
- // @note Use CloseHandle() to destroy these.
- //
- // @param type Execution type to be used.
- // @param ... Variable number of parameter types (up to 32).
- // @return Handle to new private forward.
- // @error More than 32 parameter types passed.
- public native PrivateForward(ExecType type, ParamType ...);
-
- // Adds a function to a private forward's call list.
- //
- // @note Cannot be used during an incomplete call.
- //
- // @param plugin Handle of the plugin that contains the function.
- // Pass INVALID_HANDLE to specify the calling plugin.
- // @param func Function to add to forward.
- // @return True on success, false otherwise.
- // @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
- public native bool AddFunction(Handle plugin, Function func);
-
- // Removes a function from a private forward's call list.
- //
- // @note Only removes one instance.
- // @note Functions will be removed automatically if their parent plugin is unloaded.
- //
- // @param plugin Handle of the plugin that contains the function.
- // Pass INVALID_HANDLE to specify the calling plugin.
- // @param func Function to remove from forward.
- // @return True on success, false otherwise.
- // @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
- public native bool RemoveFunction(Handle plugin, Function func);
-
- // Removes all instances of a plugin from a private forward's call list.
- //
- // @note Functions will be removed automatically if their parent plugin is unloaded.
- //
- // @param plugin Handle of the plugin to remove instances of.
- // Pass INVALID_HANDLE to specify the calling plugin.
- // @return Number of functions removed from forward.
- // @error Invalid or corrupt private forward handle or invalid or corrupt plugin handle.
- public native int RemoveAllFunctions(Handle plugin);
-};
-
-/**
- * Gets a function id from a function name.
- *
- * @param plugin Handle of the plugin that contains the function.
- * Pass INVALID_HANDLE to search in the calling plugin.
- * @param name Name of the function.
- * @return Function id or INVALID_FUNCTION if not found.
- * @error Invalid or corrupt plugin handle.
- */
-native Function GetFunctionByName(Handle plugin, const char[] name);
-
-/**
- * Creates a global forward.
- *
- * @note The name used to create the forward is used as its public function in all target plugins.
- * @note This is ideal for global, static forwards that are never changed.
- * @note Global forwards cannot be cloned.
- * @note Use CloseHandle() to destroy these.
- *
- * @param name Name of public function to use in forward.
- * @param type Execution type to be used.
- * @param ... Variable number of parameter types (up to 32).
- * @return Handle to new global forward.
- * @error More than 32 parameter types passed.
- */
-native GlobalForward CreateGlobalForward(const char[] name, ExecType type, ParamType ...);
-
-/**
- * Creates a private forward.
- *
- * @note No functions are automatically added. Use AddToForward() to do this.
- * @note Private forwards can be cloned.
- * @note Use CloseHandle() to destroy these.
- *
- * @param type Execution type to be used.
- * @param ... Variable number of parameter types (up to 32).
- * @return Handle to new private forward.
- * @error More than 32 parameter types passed.
- */
-native PrivateForward CreateForward(ExecType type, ParamType ...);
-
-/**
- * Returns the number of functions in a global or private forward's call list.
- *
- * @param fwd Handle to global or private forward.
- * @return Number of functions in forward.
- * @error Invalid or corrupt forward handle.
- */
-native int GetForwardFunctionCount(Handle fwd);
-
-/**
- * Adds a function to a private forward's call list.
- *
- * @note Cannot be used during an incomplete call.
- *
- * @param fwd Handle to private forward.
- * @param plugin Handle of the plugin that contains the function.
- * Pass INVALID_HANDLE to specify the calling plugin.
- * @param func Function to add to forward.
- * @return True on success, false otherwise.
- * @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
- */
-native bool AddToForward(Handle fwd, Handle plugin, Function func);
-
-/**
- * Removes a function from a private forward's call list.
- *
- * @note Only removes one instance.
- * @note Functions will be removed automatically if their parent plugin is unloaded.
- *
- * @param fwd Handle to private forward.
- * @param plugin Handle of the plugin that contains the function.
- * Pass INVALID_HANDLE to specify the calling plugin.
- * @param func Function to remove from forward.
- * @return True on success, false otherwise.
- * @error Invalid or corrupt private forward handle, invalid or corrupt plugin handle, or invalid function.
- */
-native bool RemoveFromForward(Handle fwd, Handle plugin, Function func);
-
-/**
- * Removes all instances of a plugin from a private forward's call list.
- *
- * @note Functions will be removed automatically if their parent plugin is unloaded.
- *
- * @param fwd Handle to private forward.
- * @param plugin Handle of the plugin to remove instances of.
- * Pass INVALID_HANDLE to specify the calling plugin.
- * @return Number of functions removed from forward.
- * @error Invalid or corrupt private forward handle or invalid or corrupt plugin handle.
- */
-native int RemoveAllFromForward(Handle fwd, Handle plugin);
-
-/**
- * Starts a call to functions in a forward's call list.
- *
- * @note Cannot be used during an incomplete call.
- *
- * @param fwd Handle to global or private forward.
- * @error Invalid or corrupt forward handle or called before another call has completed.
- */
-native void Call_StartForward(Handle fwd);
-
-/**
- * Starts a call to a function.
- *
- * @note Cannot be used during an incomplete call.
- *
- * @param plugin Handle of the plugin that contains the function.
- * Pass INVALID_HANDLE to specify the calling plugin.
- * @param func Function to call.
- * @error Invalid or corrupt plugin handle, invalid function, or called before another call has completed.
- */
-native void Call_StartFunction(Handle plugin, Function func);
-
-/**
- * Pushes a cell onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value Cell value to push.
- * @error Called before a call has been started.
- */
-native void Call_PushCell(any value);
-
-/**
- * Pushes a cell by reference onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value Cell reference to push.
- * @error Called before a call has been started.
- */
-native void Call_PushCellRef(any &value);
-
-/**
- * Pushes a float onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value Floating point value to push.
- * @error Called before a call has been started.
- */
-native void Call_PushFloat(float value);
-
-/**
- * Pushes a float by reference onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value Floating point reference to push.
- * @error Called before a call has been started.
- */
-native void Call_PushFloatRef(float &value);
-
-/**
- * Pushes an array onto the current call.
- *
- * @note Changes to array are not copied back to caller. Use PushArrayEx() to do this.
- * @note Cannot be used before a call has been started.
- *
- * @param value Array to push.
- * @param size Size of array.
- * @error Called before a call has been started.
- */
-native void Call_PushArray(const any[] value, int size);
-
-/**
- * Pushes an array onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value Array to push.
- * @param size Size of array.
- * @param cpflags Whether or not changes should be copied back to the input array.
- * See SM_PARAM_* constants for details.
- * @error Called before a call has been started.
- */
-native void Call_PushArrayEx(any[] value, int size, int cpflags);
-
-/**
- * Pushes the NULL_VECTOR onto the current call.
- * @see IsNullVector
- *
- * @note Cannot be used before a call has been started.
- *
- * @error Called before a call has been started.
- */
-native void Call_PushNullVector();
-
-/**
- * Pushes a string onto the current call.
- *
- * @note Changes to string are not copied back to caller. Use PushStringEx() to do this.
- * @note Cannot be used before a call has been started.
- *
- * @param value String to push.
- * @error Called before a call has been started.
- */
-native void Call_PushString(const char[] value);
-
-/**
- * Pushes a string onto the current call.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param value String to push.
- * @param length Length of string buffer.
- * @param szflags Flags determining how string should be handled.
- * See SM_PARAM_STRING_* constants for details.
- * The default (0) is to push ASCII.
- * @param cpflags Whether or not changes should be copied back to the input array.
- * See SM_PARAM_* constants for details.
- * @error Called before a call has been started.
- */
-native void Call_PushStringEx(char[] value, int length, int szflags, int cpflags);
-
-/**
- * Pushes the NULL_STRING onto the current call.
- * @see IsNullString
- *
- * @note Cannot be used before a call has been started.
- *
- * @error Called before a call has been started.
- */
-native void Call_PushNullString();
-
-/**
- * Completes a call to a function or forward's call list.
- *
- * @note Cannot be used before a call has been started.
- *
- * @param result Return value of function or forward's call list.
- * @return SP_ERROR_NONE on success, any other integer on failure.
- * @error Called before a call has been started.
- */
-native int Call_Finish(any &result=0);
-
-/**
- * Cancels a call to a function or forward's call list.
- *
- * @note Cannot be used before a call has been started.
- *
- * @error Called before a call has been started.
- */
-native void Call_Cancel();
-
-typeset NativeCall
-{
- /**
- * Defines a native function.
- *
- * It is not necessary to validate the parameter count
- *
- * @param plugin Handle of the calling plugin.
- * @param numParams Number of parameters passed to the native.
- * @return Value for the native call to return.
- */
- function int (Handle plugin, int numParams);
-
- /**
- * Defines a native function.
- *
- * It is not necessary to validate the parameter count
- *
- * @param plugin Handle of the calling plugin.
- * @param numParams Number of parameters passed to the native.
- * @return Value for the native call to return.
- */
- function any (Handle plugin, int numParams);
-}
-
-/**
- * Creates a dynamic native. This should only be called in AskPluginLoad(), or
- * else you risk not having your native shared with other plugins.
- *
- * @param name Name of the dynamic native; must be unique among
- * all other registered dynamic natives.
- * @param func Function to use as the dynamic native.
- */
-native void CreateNative(const char[] name, NativeCall func);
-
-/**
- * Throws an error in the calling plugin of a native, instead of your own plugin.
- *
- * @param error Error code to use.
- * @param fmt Error message format.
- * @param ... Format arguments.
- */
-native int ThrowNativeError(int error, const char[] fmt, any ...);
-
-/**
- * Retrieves the string length from a native parameter string. This is useful for
- * fetching the entire string using dynamic arrays.
- *
- * @note If this function succeeds, Get/SetNativeString will also succeed.
- *
- * @param param Parameter number, starting from 1.
- * @param length Stores the length of the string.
- * @return SP_ERROR_NONE on success, any other integer on failure.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native int GetNativeStringLength(int param, int &length);
-
-/**
- * Retrieves a string from a native parameter.
- *
- * @note Output conditions are undefined on failure.
- *
- * @param param Parameter number, starting from 1.
- * @param buffer Buffer to store the string in.
- * @param maxlength Maximum length of the buffer.
- * @param bytes Optionally store the number of bytes written.
- * @return SP_ERROR_NONE on success, any other integer on failure.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native int GetNativeString(int param, char[] buffer, int maxlength, int &bytes=0);
-
-/**
- * Sets a string in a native parameter.
- *
- * @note Output conditions are undefined on failure.
- *
- * @param param Parameter number, starting from 1.
- * @param source Source string to use.
- * @param maxlength Maximum number of bytes to write.
- * @param utf8 If false, string will not be written
- * with UTF8 safety.
- * @param bytes Optionally store the number of bytes written.
- * @return SP_ERROR_NONE on success, any other integer on failure.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native int SetNativeString(int param, const char[] source, int maxlength, bool utf8=true, int &bytes=0);
-
-/**
- * Gets a cell from a native parameter.
- *
- * @param param Parameter number, starting from 1.
- * @return Cell value at the parameter number.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native any GetNativeCell(int param);
-
-/**
- * Gets a function pointer from a native parameter.
- *
- * @param param Parameter number, starting from 1.
- * @return Function pointer at the given parameter number.
- * @error Invalid parameter number, or calling from a non-native function.
- */
-native Function GetNativeFunction(int param);
-
-/**
- * Gets a cell from a native parameter, by reference.
- *
- * @param param Parameter number, starting from 1.
- * @return Cell value at the parameter number.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native any GetNativeCellRef(int param);
-
-/**
- * Sets a cell from a native parameter, by reference.
- *
- * @param param Parameter number, starting from 1.
- * @param value Cell value at the parameter number to set by reference.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native void SetNativeCellRef(int param, any value);
-
-/**
- * Gets an array from a native parameter (always by reference).
- *
- * @param param Parameter number, starting from 1.
- * @param local Local array to copy into.
- * @param size Maximum size of local array.
- * @return SP_ERROR_NONE on success, anything else on failure.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native int GetNativeArray(int param, any[] local, int size);
-
-/**
- * Copies a local array into a native parameter array (always by reference).
- *
- * @param param Parameter number, starting from 1.
- * @param local Local array to copy from.
- * @param size Size of the local array to copy.
- * @return SP_ERROR_NONE on success, anything else on failure.
- * @error Invalid parameter number or calling from a non-native function.
- */
-native int SetNativeArray(int param, const any[] local, int size);
-
-/**
- * Check if the native parameter is the NULL_VECTOR.
- *
- * @param param Parameter number, starting from 1.
- * @return True if NULL_VECTOR, false otherwise.
- */
-native bool IsNativeParamNullVector(int param);
-
-/**
- * Check if the native parameter is the NULL_STRING.
- *
- * @param param Parameter number, starting from 1.
- * @return True if NULL_STRING, false otherwise.
- */
-native bool IsNativeParamNullString(int param);
-
-/**
- * Formats a string using parameters from a native.
- *
- * @note All parameter indexes start at 1.
- * @note If the input and output buffers overlap, the contents
- * of the output buffer at the end is undefined.
- *
- * @param out_param Output parameter number to write to. If 0, out_string is used.
- * @param fmt_param Format parameter number. If 0, fmt_string is used.
- * @param vararg_param First variable parameter number.
- * @param out_len Output string buffer maximum length (always required).
- * @param written Optionally stores the number of bytes written.
- * @param out_string Output string buffer to use if out_param is not used.
- * @param fmt_string Format string to use if fmt_param is not used.
- * @return SP_ERROR_NONE on success, anything else on failure.
- */
-native int FormatNativeString(int out_param,
- int fmt_param,
- int vararg_param,
- int out_len,
- int &written=0,
- char[] out_string="",
- const char[] fmt_string="");
-
-/**
- * Defines a RequestFrame Callback.
- *
- * @param data Data passed to the RequestFrame native.
- */
-typeset RequestFrameCallback {
- function void ();
- function void (any data);
-}
-
-/**
- * Creates a single use Next Frame hook.
- *
- * @param Function Function to call on the next frame.
- * @param data Value to be passed on the invocation of the Function.
- */
-native void RequestFrame(RequestFrameCallback Function, any data=0);
diff --git a/addons/sourcemod/scripting/include/geoip.inc b/addons/sourcemod/scripting/include/geoip.inc
deleted file mode 100644
index 0676f75c8..000000000
--- a/addons/sourcemod/scripting/include/geoip.inc
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _geoip_included
- #endinput
-#endif
-#define _geoip_included
-
-enum Continent
-{
- CONTINENT_UNKNOWN = 0,
- CONTINENT_AFRICA,
- CONTINENT_ANTARCTICA,
- CONTINENT_ASIA,
- CONTINENT_EUROPE,
- CONTINENT_NORTH_AMERICA,
- CONTINENT_OCEANIA,
- CONTINENT_SOUTH_AMERICA,
-};
-
-// The system of measurement for calculate the distance between geographical coordinates
-#define SYSTEM_METRIC 0 // kilometers
-#define SYSTEM_IMPERIAL 1 // statute miles
-
-#include
-
-/**
- * @section IP addresses can contain ports, the ports will be stripped out.
- */
-
-/**
- * Gets the two character country code from an IP address. (US, CA, etc)
- *
- * @param ip Ip to determine the country code.
- * @param ccode Destination string buffer to store the code.
- * @return True on success, false otherwise.
- */
-native bool GeoipCode2(const char[] ip, char ccode[3]);
-
-/**
- * Gets the three character country code from an IP address. (USA, CAN, etc)
- *
- * @param ip Ip to determine the country code.
- * @param ccode Destination string buffer to store the code.
- * @return True on success, false otherwise.
- */
-native bool GeoipCode3(const char[] ip, char ccode[4]);
-
-/**
- * Gets the region code with country code from an IP address. (US-IL, CH-CHE, etc)
- *
- * @param ip Ip to determine the region code.
- * @param ccode Destination string buffer to store the code.
- * @return True on success, false otherwise.
- */
-native bool GeoipRegionCode(const char[] ip, char ccode[12]);
-
-/**
- * Gets the two character continent code from an IP address. (EU, AS, etc)
- *
- * @param ip Ip to determine the continent code.
- * @param ccode Destination string buffer to store the code.
- * @return The continent id on success, 0 otherwise.
- */
-native Continent GeoipContinentCode(const char[] ip, char ccode[3]);
-
-/**
- * Gets the full country name.
- *
- * @param ip Ip to determine the country code.
- * @param name Destination string buffer to store the country name.
- * @param maxlength Maximum length of output string buffer.
- * @return True on success, false otherwise.
- */
-native bool GeoipCountry(const char[] ip, char[] name, int maxlength);
-
-/**
- * Gets the full country name.
- *
- * @param ip Ip to determine the country code.
- * @param name Destination string buffer to store the country name.
- * @param maxlength Maximum length of output string buffer.
- * @param client Client index in order to return the result in the player's language
- * -1: the default language, which is english.
- * 0: the server language. You can use LANG_SERVER define.
- * >=1: the player's language.
- * @return True on success, false otherwise.
- */
-native bool GeoipCountryEx(const char[] ip, char[] name, int maxlength, int client = -1);
-
-/**
- * Gets the full continent name.
- *
- * @param ip Ip to determine the continent code.
- * @param name Destination string buffer to store the continent name.
- * @param maxlength Maximum length of output string buffer.
- * @param client Client index in order to return the result in the player's language
- * -1: the default language, which is english.
- * 0: the server language. You can use LANG_SERVER define.
- * >=1: the player's language.
- * @return True on success, false otherwise.
- */
-native bool GeoipContinent(const char[] ip, char[] name, int maxlength, int client = -1);
-
-/**
- * Gets the full region name.
- *
- * @param ip Ip to determine the region code.
- * @param name Destination string buffer to store the region name.
- * @param maxlength Maximum length of output string buffer.
- * @param client Client index in order to return the result in the player's language
- * -1: the default language, which is english.
- * 0: the server language. You can use LANG_SERVER define.
- * >=1: the player's language.
- * @return True on success, false otherwise.
- */
-native bool GeoipRegion(const char[] ip, char[] name, int maxlength, int client = -1);
-
-/**
- * Gets the city name.
- *
- * @param ip Ip to determine the city code.
- * @param name Destination string buffer to store the city name.
- * @param maxlength Maximum length of output string buffer.
- * @param client Client index in order to return the result in the player's language
- * -1: the default language, which is english.
- * 0: the server language. You can use LANG_SERVER define.
- * >=1: the player's language.
- * @return True on success, false otherwise.
- */
-native bool GeoipCity(const char[] ip, char[] name, int maxlength, int client = -1);
-
-/**
- * Gets the timezone.
- *
- * @param ip Ip to determine the timezone.
- * @param name Destination string buffer to store the timezone.
- * @param maxlength Maximum length of output string buffer.
- * @return True on success, false otherwise.
- */
-native bool GeoipTimezone(const char[] ip, char[] name, int maxlength);
-
-/**
- * Gets the city's latitude
- *
- * @param ip Ip to determine the city latitude.
- * @return The result of the latitude, 0 if latitude is not found
- */
-native float GeoipLatitude(const char[] ip);
-
-/**
- * Gets the city's longitude
- *
- * @param ip Ip to determine the city longitude.
- * @return The result of the longitude, 0 if longitude is not found
- */
-native float GeoipLongitude(const char[] ip);
-
-/*
- * Calculate the distance between geographical coordinates, latitude and longitude.
- *
- * @param lat1 The first IP latitude.
- * @param lon1 The first IP longitude.
- * @param lat2 The second IP latitude.
- * @param lon2 The second IP longitude.
- * @param system The system of measurement, 0 = Metric(kilometers) or 1 = English(miles).
- *
- * @return The distance as result in specified system of measurement.
- */
-native float GeoipDistance(float lat1, float lon1, float lat2, float lon2, int system = SYSTEM_METRIC);
-
-/**
- * @endsection
- */
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_geoip =
-{
- name = "GeoIP",
- file = "geoip.ext",
-#if defined AUTOLOAD_EXTENSIONS
- autoload = 1,
-#else
- autoload = 0,
-#endif
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public void __ext_geoip_SetNTVOptional()
-{
- MarkNativeAsOptional("GeoipCode2");
- MarkNativeAsOptional("GeoipCode3");
- MarkNativeAsOptional("GeoipRegionCode");
- MarkNativeAsOptional("GeoipContinentCode");
- MarkNativeAsOptional("GeoipCountry");
- MarkNativeAsOptional("GeoipCountryEx");
- MarkNativeAsOptional("GeoipContinent");
- MarkNativeAsOptional("GeoipRegion");
- MarkNativeAsOptional("GeoipCity");
- MarkNativeAsOptional("GeoipTimezone");
- MarkNativeAsOptional("GeoipLatitude");
- MarkNativeAsOptional("GeoipLongitude");
- MarkNativeAsOptional("GeoipDistance");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/halflife.inc b/addons/sourcemod/scripting/include/halflife.inc
deleted file mode 100644
index 49f55e793..000000000
--- a/addons/sourcemod/scripting/include/halflife.inc
+++ /dev/null
@@ -1,711 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2016 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _halflife_included
- #endinput
-#endif
-#define _halflife_included
-
-#define SOURCE_SDK_UNKNOWN 0 /**< Could not determine the engine version */
-#define SOURCE_SDK_ORIGINAL 10 /**< Original Source engine (still used by "The Ship") */
-#define SOURCE_SDK_DARKMESSIAH 15 /**< Modified version of original engine used by Dark Messiah (no SDK) */
-#define SOURCE_SDK_EPISODE1 20 /**< SDK+Engine released after Episode 1 */
-#define SOURCE_SDK_EPISODE2 30 /**< SDK+Engine released after Episode 2/Orange Box */
-#define SOURCE_SDK_BLOODYGOODTIME 32 /**< Modified version of ep2 engine used by Bloody Good Time (no SDK) */
-#define SOURCE_SDK_EYE 33 /**< Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK) */
-#define SOURCE_SDK_CSS 34 /**< Sometime-older version of Source 2009 SDK+Engine, used for Counter-Strike: Source */
-#define SOURCE_SDK_EPISODE2VALVE 35 /**< SDK+Engine released after Episode 2/Orange Box, "Source 2009" or "Source MP" */
-#define SOURCE_SDK_LEFT4DEAD 40 /**< Engine released after Left 4 Dead (no SDK yet) */
-#define SOURCE_SDK_LEFT4DEAD2 50 /**< Engine released after Left 4 Dead 2 (no SDK yet) */
-#define SOURCE_SDK_ALIENSWARM 60 /**< SDK+Engine released after Alien Swarm */
-#define SOURCE_SDK_CSGO 80 /**< Engine released after CS:GO (no SDK yet) */
-#define SOURCE_SDK_DOTA 90 /**< Engine released after Dota 2 (no SDK) */
-
-#define MOTDPANEL_TYPE_TEXT 0 /**< Treat msg as plain text */
-#define MOTDPANEL_TYPE_INDEX 1 /**< Msg is auto determined by the engine */
-#define MOTDPANEL_TYPE_URL 2 /**< Treat msg as an URL link */
-#define MOTDPANEL_TYPE_FILE 3 /**< Treat msg as a filename to be opened */
-
-enum DialogType
-{
- DialogType_Msg = 0, /**< just an on screen message */
- DialogType_Menu, /**< an options menu */
- DialogType_Text, /**< a richtext dialog */
- DialogType_Entry, /**< an entry box */
- DialogType_AskConnect /**< ask the client to connect to a specified IP */
-};
-
-enum EngineVersion
-{
- Engine_Unknown, /**< Could not determine the engine version */
- Engine_Original, /**< Original Source Engine (used by The Ship) */
- Engine_SourceSDK2006, /**< Episode 1 Source Engine (second major SDK) */
- Engine_SourceSDK2007, /**< Orange Box Source Engine (third major SDK) */
- Engine_Left4Dead, /**< Left 4 Dead */
- Engine_DarkMessiah, /**< Dark Messiah Multiplayer (based on original engine) */
- Engine_Left4Dead2 = 7, /**< Left 4 Dead 2 */
- Engine_AlienSwarm, /**< Alien Swarm (and Alien Swarm SDK) */
- Engine_BloodyGoodTime, /**< Bloody Good Time */
- Engine_EYE, /**< E.Y.E Divine Cybermancy */
- Engine_Portal2, /**< Portal 2 */
- Engine_CSGO, /**< Counter-Strike: Global Offensive */
- Engine_CSS, /**< Counter-Strike: Source */
- Engine_DOTA, /**< Dota 2 */
- Engine_HL2DM, /**< Half-Life 2 Deathmatch */
- Engine_DODS, /**< Day of Defeat: Source */
- Engine_TF2, /**< Team Fortress 2 */
- Engine_NuclearDawn, /**< Nuclear Dawn */
- Engine_SDK2013, /**< Source SDK 2013 */
- Engine_Blade, /**< Blade Symphony */
- Engine_Insurgency, /**< Insurgency (2013 Retail version)*/
- Engine_Contagion, /**< Contagion */
- Engine_BlackMesa, /**< Black Mesa Multiplayer */
- Engine_DOI /**< Day of Infamy */
-};
-
-enum FindMapResult
-{
- // A direct match for this name was found
- FindMap_Found,
- // No match for this map name could be found.
- FindMap_NotFound,
- // A fuzzy match for this map name was found.
- // Ex: cp_dust -> cp_dustbowl, c1m1 -> c1m1_hotel
- // Only supported for maps that the engine knows about. (This excludes workshop maps on Orangebox).
- FindMap_FuzzyMatch,
- // A non-canonical match for this map name was found.
- // Ex: workshop/1234 -> workshop/cp_qualified_name.ugc1234
- // Only supported on "Orangebox" games with workshop support.
- FindMap_NonCanonical,
- // No currently available match for this map name could be found, but it may be possible to load
- // Only supported on "Orangebox" games with workshop support.
- FindMap_PossiblyAvailable
-};
-
-#define INVALID_ENT_REFERENCE 0xFFFFFFFF
-
-/**
- * Logs a generic message to the HL2 logs.
- *
- * @param format String format.
- * @param ... Format arguments.
- */
-native void LogToGame(const char[] format, any ...);
-
-/**
- * Sets the seed value for the global Half-Life 2 Random Stream.
- *
- * @param seed Seed value.
- */
-native void SetRandomSeed(int seed);
-
-/**
- * Returns a random floating point number from the Half-Life 2 Random Stream.
- *
- * @param fMin Minimum random bound.
- * @param fMax Maximum random bound.
- * @return A random number between (inclusive) fMin and fMax.
- */
-native float GetRandomFloat(float fMin=0.0, float fMax=1.0);
-
-/**
- * Returns a random number from the Half-Life 2 Random Stream.
- *
- * @param nmin Minimum random bound.
- * @param nmax Maximum random bound.
- * @return A random number between (inclusive) nmin and nmax.
- */
-native int GetRandomInt(int nmin, int nmax);
-
-/**
- * Returns whether a map is valid or not.
- *
- * @param map Map name, excluding .bsp extension.
- * @return True if valid, false otherwise.
- */
-native bool IsMapValid(const char[] map);
-
-/**
- * Returns whether a full or partial map name is found or can be resolved
- *
- * @param map Map name (usually same as map path relative to maps/ dir,
- * excluding .bsp extension).
- * @param foundmap Resolved map name. If the return is FindMap_FuzzyMatch
- * or FindMap_NonCanonical the buffer will be the full path.
- * @param maxlen Maximum length to write to map var.
- * @return Result of the find operation. Not all result types are supported on all games.
- */
-native FindMapResult FindMap(const char[] map, char[] foundmap, int maxlen);
-
-/**
- * Get the display name of a workshop map.
- *
- * Note: You do not need to call FindMap first. This native will call FindMap internally.
- *
- * @param map Map name (usually same as map path relative to maps/ dir,
- * excluding .bsp extension).
- * @param displayName Map's display name, i.e. cp_mymapname or de_mymapname.
- * If FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound,
- * the map cannot be resolved and this native will return false,
- * but displayName will be a copy of map.
- * @param maxlen Maximum length to write to displayName var.
- * @return true if FindMap returns FindMap_Found, FindMap_FuzzyMatch, or
- * FindMap_NonCanonical.
- * false if FindMap returns FindMap_PossiblyAvailable or FindMap_NotFound.
- */
-native bool GetMapDisplayName(const char[] map, char[] displayName, int maxlen);
-
-/**
- * Returns whether the server is dedicated.
- *
- * @return True if dedicated, false otherwise.
- */
-native bool IsDedicatedServer();
-
-/**
- * Returns a high-precision time value for profiling the engine.
- *
- * @return A floating point time value.
- */
-native float GetEngineTime();
-
-/**
- * Returns the game time based on the game tick.
- *
- * @return Game tick time.
- */
-native float GetGameTime();
-
-/**
- * Returns the game's internal tick count.
- *
- * @return Game tick count.
- */
-native int GetGameTickCount();
-
-/**
- * Returns the time the Game took processing the last frame.
- *
- * @return Game frame time.
- */
-native float GetGameFrameTime();
-
-/**
- * Returns the game description from the mod.
- *
- * @param buffer Buffer to store the description.
- * @param maxlength Maximum size of the buffer.
- * @param original If true, retrieves the original game description,
- * ignoring any potential hooks from plugins.
- * @return Number of bytes written to the buffer (UTF-8 safe).
- */
-native int GetGameDescription(char[] buffer, int maxlength, bool original=false);
-
-/**
- * Returns the name of the game's directory.
- *
- * @param buffer Buffer to store the directory name.
- * @param maxlength Maximum size of the buffer.
- * @return Number of bytes written to the buffer (UTF-8 safe).
- */
-native int GetGameFolderName(char[] buffer, int maxlength);
-
-/**
- * Returns the current map name.
- *
- * @param buffer Buffer to store map name.
- * @param maxlength Maximum length of buffer.
- * @return Number of bytes written (UTF-8 safe).
- */
-native int GetCurrentMap(char[] buffer, int maxlength);
-
-/**
- * Precaches a given model.
- *
- * @param model Name of the model to precache.
- * @param preload If preload is true the file will be precached before level startup.
- * @return Returns the model index, 0 for error.
- */
-native int PrecacheModel(const char[] model, bool preload=false);
-
-/**
- * Precaches a given sentence file.
- *
- * @param file Name of the sentence file to precache.
- * @param preload If preload is true the file will be precached before level startup.
- * @return Returns a sentence file index.
- */
-native int PrecacheSentenceFile(const char[] file, bool preload=false);
-
-/**
- * Precaches a given decal.
- *
- * @param decal Name of the decal to precache.
- * @param preload If preload is true the file will be precached before level startup.
- * @return Returns a decal index.
- */
-native int PrecacheDecal(const char[] decal, bool preload=false);
-
-/**
- * Precaches a given generic file.
- *
- * @param generic Name of the generic file to precache.
- * @param preload If preload is true the file will be precached before level startup.
- * @return Returns a generic file index.
- */
-native int PrecacheGeneric(const char[] generic, bool preload=false);
-
-/**
- * Returns if a given model is precached.
- *
- * @param model Name of the model to check.
- * @return True if precached, false otherwise.
- */
-native bool IsModelPrecached(const char[] model);
-
-/**
- * Returns if a given decal is precached.
- *
- * @param decal Name of the decal to check.
- * @return True if precached, false otherwise.
- */
-native bool IsDecalPrecached(const char[] decal);
-
-/**
- * Returns if a given generic file is precached.
- *
- * @param generic Name of the generic file to check.
- * @return True if precached, false otherwise.
- */
-native bool IsGenericPrecached(const char[] generic);
-
-/**
- * Precaches a given sound.
- *
- * @param sound Name of the sound to precache.
- * @param preload If preload is true the file will be precached before level startup.
- * @return True if successfully precached, false otherwise.
- */
-native bool PrecacheSound(const char[] sound, bool preload=false);
-
-/**
- * Returns if a given sound is precached.
- *
- * @param sound Name of the sound to check.
- * @return True if precached, false otherwise.
- * @deprecated Doesn't work correctly, always returns true.
- */
-#pragma deprecated Doesn't work correctly, always returns true.
-native bool IsSoundPrecached(const char[] sound);
-
-/**
- * Creates different types of ingame messages.
- *
- * @param client Index of the client.
- * @param kv KeyValues handle to set the menu keys and options. (Check iserverplugin.h for more information).
- * @param type Message type to display ingame.
- * @error Invalid client index, or client not in game.
- */
-native void CreateDialog(int client, Handle kv, DialogType type);
-
-/**
- * Guesses the SDK version a mod was compiled against. If nothing
- * specific is known about the game, the engine version is used instead.
- *
- * The return values are guaranteed to increase chronologically (that is,
- * a later release will have a higher value).
- *
- * @return SOURCE_SDK version code.
- * @deprecated See GetEngineVersion()
- */
-#pragma deprecated See GetEngineVersion()
-native int GuessSDKVersion();
-
-/**
- * Gets the engine version that the currently-loaded SM core was compiled against.
- *
- * The engine version values are not guaranteed to be in any particular order,
- * and should only be compared by (in)equality.
- *
- * @return An EngineVersion value.
- */
-native EngineVersion GetEngineVersion();
-
-/**
- * Prints a message to a specific client in the chat area.
- *
- * @param client Client index.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error Invalid client index, or client not in game.
- */
-native void PrintToChat(int client, const char[] format, any ...);
-
-/**
- * Prints a message to all clients in the chat area.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-stock void PrintToChatAll(const char[] format, any ...)
-{
- char buffer[254];
-
- for (int i = 1; i <= MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- SetGlobalTransTarget(i);
- VFormat(buffer, sizeof(buffer), format, 2);
- PrintToChat(i, "%s", buffer);
- }
- }
-}
-
-/**
- * Prints a message to a specific client in the center of the screen.
- *
- * @param client Client index.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error Invalid client index, or client not in game.
- */
-native void PrintCenterText(int client, const char[] format, any ...);
-
-/**
- * Prints a message to all clients in the center of the screen.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-stock void PrintCenterTextAll(const char[] format, any ...)
-{
- char buffer[254];
-
- for (int i = 1; i <= MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- SetGlobalTransTarget(i);
- VFormat(buffer, sizeof(buffer), format, 2);
- PrintCenterText(i, "%s", buffer);
- }
- }
-}
-
-/**
- * Prints a message to a specific client with a hint box.
- *
- * @param client Client index.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @error Invalid client index, or client not in game.
- */
-native void PrintHintText(int client, const char[] format, any ...);
-
-/**
- * Prints a message to all clients with a hint box.
- *
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- */
-stock void PrintHintTextToAll(const char[] format, any ...)
-{
- char buffer[254];
-
- for (int i = 1; i <= MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- SetGlobalTransTarget(i);
- VFormat(buffer, sizeof(buffer), format, 2);
- PrintHintText(i, "%s", buffer);
- }
- }
-}
-
-/**
- * Shows a VGUI panel to a specific client.
- *
- * @param client Client index.
- * @param name Panel type name (Check viewport_panel_names.h to see a list of
- * some panel names).
- * @param Kv KeyValues handle with all the data for the panel setup (Depends
- * on the panel type and may be unused).
- * @param show True to show the panel, or false to remove it from the client screen.
- * @error Invalid client index, or client not in game.
- */
-native void ShowVGUIPanel(int client, const char[] name, Handle Kv=INVALID_HANDLE, bool show=true);
-
-/**
- * Creates a HUD synchronization object. This object is used to automatically assign and
- * re-use channels for a set of messages.
- *
- * The HUD has a hardcoded number of channels (usually 6) for displaying
- * text. You can use any channel for any area of the screen. Text on
- * different channels can overlap, but text on the same channel will
- * erase the old text first. This overlapping and overwriting gets problematic.
- *
- * A HUD synchronization object automatically selects channels for you based on
- * the following heuristics:
- * - If channel X was last used by the object, and hasn't been modified again,
- * channel X gets re-used.
- * - Otherwise, a new channel is chosen based on the least-recently-used channel.
- *
- * This ensures that if you display text on a sync object, that the previous text
- * displayed on it will always be cleared first. This is because your new text
- * will either overwrite the old text on the same channel, or because another
- * channel has already erased your text.
- *
- * Note that messages can still overlap if they are on different synchronization
- * objects, or they are displayed to manual channels.
- *
- * These are particularly useful for displaying repeating or refreshing HUD text, in
- * addition to displaying multiple message sets in one area of the screen (for example,
- * center-say messages that may pop up randomly that you don't want to overlap each
- * other).
- *
- * @return New HUD synchronization object.
- * The Handle can be closed with CloseHandle().
- * If HUD text is not supported on this mod, then
- * INVALID_HANDLE is returned.
- */
-native Handle CreateHudSynchronizer();
-
-/**
- * Sets the HUD parameters for drawing text. These parameters are stored
- * globally, although nothing other than this function and SetHudTextParamsEx
- * modify them.
- *
- * You must call this function before drawing text. If you are drawing
- * text to multiple clients, you can set the parameters once, since
- * they won't be modified. However, as soon as you pass control back
- * to other plugins, you must reset the parameters next time you draw.
- *
- * @param x x coordinate, from 0 to 1. -1.0 is the center.
- * @param y y coordinate, from 0 to 1. -1.0 is the center.
- * @param holdTime Number of seconds to hold the text.
- * @param r Red color value.
- * @param g Green color value.
- * @param b Blue color value.
- * @param a Alpha transparency value.
- * @param effect 0/1 causes the text to fade in and fade out.
- * 2 causes the text to flash[?].
- * @param fxTime Duration of chosen effect (may not apply to all effects).
- * @param fadeIn Number of seconds to spend fading in.
- * @param fadeOut Number of seconds to spend fading out.
- */
-native void SetHudTextParams(float x, float y, float holdTime, int r, int g, int b, int a, int effect = 0,
- float fxTime=6.0, float fadeIn=0.1, float fadeOut=0.2);
-
-/**
- * Sets the HUD parameters for drawing text. These parameters are stored
- * globally, although nothing other than this function and SetHudTextParams
- * modify them.
- *
- * This is the same as SetHudTextParams(), except it lets you set the alternate
- * color for when effects require it.
- *
- * @param x x coordinate, from 0 to 1. -1.0 is the center.
- * @param y y coordinate, from 0 to 1. -1.0 is the center.
- * @param holdTime Number of seconds to hold the text.
- * @param color1 First color set, array values being [red, green, blue, alpha]
- * @param color2 Second color set, array values being [red, green, blue, alpha]
- * @param effect 0/1 causes the text to fade in and fade out.
- * 2 causes the text to flash[?].
- * @param fxTime Duration of chosen effect (may not apply to all effects).
- * @param fadeIn Number of seconds to spend fading in.
- * @param fadeOut Number of seconds to spend fading out.
- */
-native void SetHudTextParamsEx(float x, float y, float holdTime, int color1[4],
- int color2[4]={255,255,255,0}, int effect = 0, float fxTime=6.0,
- float fadeIn=0.1, float fadeOut=0.2);
-
-/**
- * Shows a synchronized HUD message to a client.
- *
- * As of this writing, only TF, HL2MP, and SourceForts support HUD Text.
- *
- * @param client Client index to send the message to.
- * @param sync Synchronization object.
- * @param message Message text or formatting rules.
- * @param ... Message formatting parameters.
- * @return -1 on failure, anything else on success.
- * This function fails if the mod does not support it.
- * @error Invalid client index, client not in game, or sync object not valid.
- */
-native int ShowSyncHudText(int client, Handle sync, const char[] message, any ...);
-
-/**
- * Clears the text on a synchronized HUD channel.
- *
- * This is not the same as sending "" because it guarantees that it won't
- * overwrite text on another channel. For example, consider the scenario:
- *
- * 1. Your synchronized message goes to channel 3.
- * 2. Someone else's non-synchronized message goes to channel 3.
- *
- * If you were to simply send "" on your synchronized message,
- * then someone else's text could be overwritten.
- *
- * @param client Client index to send the message to.
- * @param sync Synchronization object.
- * @error Invalid client index, client not in game, or sync object not valid.
- */
-native void ClearSyncHud(int client, Handle sync);
-
-/**
- * Shows a HUD message to a client on the given channel.
- *
- * As of this writing, only TF, HL2MP, and SourceForts support HUD Text.
- *
- * @param client Client index to send the message to.
- * @param channel A channel number.
- * If -1, then a channel will automatically be selected
- * based on the least-recently-used channel. If the
- * channel is any other number, it will be modulo'd with
- * the channel count to get a final channel number.
- * @param message Message text or formatting rules.
- * @param ... Message formatting parameters.
- * @return -1 on failure (lack of mod support).
- * Any other return value is the channel number that was
- * used to render the text.
- * @error Invalid client index, or client not in game.
- */
-native int ShowHudText(int client, int channel, const char[] message, any ...);
-
-/**
- * Shows a MOTD panel to a specific client.
- *
- * @param client Client index.
- * @param title Title of the panel (printed on the top border of the window).
- * @param msg Contents of the panel, it can be treated as an url, filename or plain text
- * depending on the type parameter (WARNING: msg has to be 192 bytes maximum!)
- * @param type Determines the way to treat the message body of the panel.
- * @error Invalid client index, or client not in game.
- */
-stock void ShowMOTDPanel(int client, const char[] title, const char[] msg, int type=MOTDPANEL_TYPE_INDEX)
-{
- char num[3];
- IntToString(type, num, sizeof(num));
-
- KeyValues kv = new KeyValues("data");
- kv.SetString("title", title);
- kv.SetString("type", num);
- kv.SetString("msg", msg);
- ShowVGUIPanel(client, "info", kv);
- delete kv;
-}
-
-/**
- * Displays a panel asking the client to connect to a specified IP.
- *
- * @param client Client index.
- * @param time Duration to hold the panel on the client's screen.
- * @param ip Destination IP.
- * @param password Password to connect to the destination IP. The client will be able to see this.
- * @error Invalid client index, or client not in game.
- */
-stock void DisplayAskConnectBox(int client, float time, const char[] ip, const char[] password = "")
-{
- char destination[288];
- FormatEx(destination, sizeof(destination), "%s/%s", ip, password);
-
- KeyValues kv = new KeyValues("data");
- kv.SetFloat("time", time);
- kv.SetString("title", destination);
- CreateDialog(client, kv, DialogType_AskConnect);
- delete kv;
-}
-
-/**
- * Converts an entity index into a serial encoded entity reference.
- *
- * @param entity Entity index.
- * @return Entity reference or -1 on invalid entity.
- * @error Entity index >= GetMaxEntities() or < 0
- */
-native int EntIndexToEntRef(int entity);
-
-/**
- * Retrieves the entity index from a reference.
- *
- * @param ref Entity reference.
- * @return Entity index or -1 on invalid reference.
- */
-native int EntRefToEntIndex(int ref);
-
-/**
- * Converts a reference into a backwards compatible version.
- *
- * @param ref Entity reference.
- * @return Bcompat reference.
- */
-native int MakeCompatEntRef(int ref);
-
-enum ClientRangeType
-{
- RangeType_Visibility = 0,
- RangeType_Audibility
-}
-
-/**
- * Find clients that are potentially in range of a position.
- *
- * @param origin Coordinates from which to test range.
- * @param rangeType Range type to use for filtering clients.
- * @param clients Array to which found client indexes will be written.
- * @param size Maximum size of clients array.
- * @return Number of client indexes written to clients array.
- */
-native int GetClientsInRange(const float origin[3], ClientRangeType rangeType, int[] clients, int size);
-
-/**
- * Retrieves the server's authentication string (SteamID).
- *
- * Note: If called before server is connected to Steam, auth id
- * will be invalid ([I:0:1], 1, etc.)
- *
- * @param authType Auth id type and format to use.
- * (Only AuthId_Steam3 and AuthId_SteamID64 are supported)
- * @param auth Buffer to store the server's auth id.
- * @param maxlen Maximum length of string buffer (includes NULL terminator).
- * @error Invalid AuthIdType given.
- */
-native void GetServerAuthId(AuthIdType authType, char[] auth, int maxlen);
-
-/**
- * Returns the server's Steam account ID.
- *
- * @return Steam account ID or 0 if not available.
- */
-native int GetServerSteamAccountId();
diff --git a/addons/sourcemod/scripting/include/handles.inc b/addons/sourcemod/scripting/include/handles.inc
deleted file mode 100644
index a6f7ebed6..000000000
--- a/addons/sourcemod/scripting/include/handles.inc
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _handles_included
- #endinput
-#endif
-#define _handles_included
-
-/**
- * Preset Handle values.
- */
-enum Handle // Tag disables introducing "Handle" as a symbol.
-{
- INVALID_HANDLE = 0
-};
-
-
-/**
- * Closes a Handle. If the handle has multiple copies open,
- * it is not destroyed unless all copies are closed.
- *
- * @note Closing a Handle has a different meaning for each Handle type. Make
- * sure you read the documentation on whatever provided the Handle.
- *
- * @param hndl Handle to close.
- * @error Invalid handles will cause a run time error.
- */
-native void CloseHandle(Handle hndl);
-
-/**
- * Clones a Handle. When passing handles in between plugins, caching handles
- * can result in accidental invalidation when one plugin releases the Handle, or is its owner
- * is unloaded from memory. To prevent this, the Handle may be "cloned" with a new owner.
- *
- * @note Usually, you will be cloning Handles for other plugins. This means that if you clone
- * the Handle without specifying the new owner, it will assume the identity of your original
- * calling plugin, which is not very useful. You should either specify that the receiving
- * plugin should clone the handle on its own, or you should explicitly clone the Handle
- * using the receiving plugin's identity Handle.
- *
- * @param hndl Handle to clone/duplicate.
- * @param plugin Optional Handle to another plugin to mark as the new owner.
- * If no owner is passed, the owner becomes the calling plugin.
- * @return Handle on success, INVALID_HANDLE if not cloneable.
- * @error Invalid handles will cause a run time error.
- */
-native Handle CloneHandle(Handle hndl, Handle plugin=INVALID_HANDLE);
-
-using __intrinsics__.Handle;
-
-/**
- * Do not use this function. Returns if a Handle and its contents
- * are readable, whereas INVALID_HANDLE only checks for the absence
- * of a Handle.
- *
- * This function is intended only for tests where the validity of a
- * Handle can absolutely not be known.
- *
- * Do not use this to check the return values of functions, or to
- * check if timers should be closed (except in very rare cases).
- * This function is for very specific usage and using it for general
- * purpose routines can and will hide very subtle bugs.
- *
- * @param hndl Handle to test for validity.
- * @return True if handle is valid, false otherwise.
- * @deprecated Do not use this function.
- */
-#pragma deprecated Do not use this function.
-native bool IsValidHandle(Handle hndl);
diff --git a/addons/sourcemod/scripting/include/helpers.inc b/addons/sourcemod/scripting/include/helpers.inc
deleted file mode 100644
index 47ade5b8e..000000000
--- a/addons/sourcemod/scripting/include/helpers.inc
+++ /dev/null
@@ -1,287 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _helpers_included
- #endinput
-#endif
-#define _helpers_included
-
-/**
- * This function is deprecated. Use the %L format specifier instead.
- *
- * Formats a user's info as log text.
- *
- * @param client Client index.
- * @param buffer Buffer for text.
- * @param maxlength Maximum length of text.
- * @deprecated Use the %L format specifier instead.
- */
-#pragma deprecated Use the %L format specifier instead.
-stock void FormatUserLogText(int client, char[] buffer, int maxlength)
-{
- FormatEx(buffer, maxlength, "\"%L\"", client);
-}
-
-/**
- * Returns plugin handle from plugin filename.
- *
- * @param filename Filename of the plugin to search for.
- * @return Handle to plugin if found, INVALID_HANDLE otherwise.
- */
-stock Handle FindPluginByFile(const char[] filename)
-{
- char buffer[256];
-
- Handle iter = GetPluginIterator();
- Handle pl;
-
- while (MorePlugins(iter))
- {
- pl = ReadPlugin(iter);
-
- GetPluginFilename(pl, buffer, sizeof(buffer));
- if (strcmp(buffer, filename, false) == 0)
- {
- CloseHandle(iter);
- return pl;
- }
- }
-
- CloseHandle(iter);
-
- return INVALID_HANDLE;
-}
-
-/**
- * @deprecated Use FindTarget() or ProcessTargetString().
- */
-#pragma deprecated Use FindTarget() or ProcessTargetString()
-stock int SearchForClients(const char[] pattern, int[] clients, int maxClients)
-{
- int total = 0;
-
- if (maxClients == 0)
- {
- return 0;
- }
-
- if (pattern[0] == '#')
- {
- int input = StringToInt(pattern[1]);
- if (!input) {
- char name[MAX_NAME_LENGTH];
- for (int i=1; i<=MaxClients; i++)
- {
- if (!IsClientInGame(i))
- {
- continue;
- }
- GetClientName(i, name, sizeof(name));
- if (strcmp(name, pattern, false) == 0)
- {
- clients[0] = i;
- return 1;
- }
- }
- }
- else
- {
- int client = GetClientOfUserId(input);
- if (client)
- {
- clients[0] = client;
- return 1;
- }
- }
- }
-
- char name[MAX_NAME_LENGTH];
- for (int i=1; i<=MaxClients; i++)
- {
- if (!IsClientInGame(i))
- {
- continue;
- }
-
- GetClientName(i, name, sizeof(name));
- if (StrContains(name, pattern, false) != -1)
- {
- clients[total++] = i;
- if (total >= maxClients)
- {
- break;
- }
- }
- }
-
- return total;
-}
-
-/**
- * Wraps ProcessTargetString() and handles producing error messages for
- * bad targets.
- *
- * Note that you should use LoadTranslations("common.phrases") in OnPluginStart().
- * "common.phrases" contains all of the translatable phrases that FindTarget() will
- * reply with in the event a target is not found (error).
- *
- * @param client Client who issued command
- * @param target Client's target argument
- * @param nobots Optional. Set to true if bots should NOT be targetted
- * @param immunity Optional. Set to false to ignore target immunity.
- * @return Index of target client, or -1 on error.
- */
-stock int FindTarget(int client, const char[] target, bool nobots = false, bool immunity = true)
-{
- char target_name[MAX_TARGET_LENGTH];
- int target_list[1], target_count;
- bool tn_is_ml;
-
- int flags = COMMAND_FILTER_NO_MULTI;
- if (nobots)
- {
- flags |= COMMAND_FILTER_NO_BOTS;
- }
-
- if (!immunity)
- {
- flags |= COMMAND_FILTER_NO_IMMUNITY;
- }
-
- if ((target_count = ProcessTargetString(
- target,
- client,
- target_list,
- 1,
- flags,
- target_name,
- sizeof(target_name),
- tn_is_ml)) > 0)
- {
- return target_list[0];
- }
-
- ReplyToTargetError(client, target_count);
- return -1;
-}
-
-/**
- * This function is no longer supported. It has been replaced with ReadMapList(),
- * which uses a more unified caching and configuration mechanism. This function also
- * has a bug where if the cvar contents changes, the fileTime change won't be recognized.
- *
- * Loads a specified array with maps. The maps will be either loaded from mapcyclefile, or if supplied
- * a cvar containing a file name. If the file in the cvar is bad, it will use mapcyclefile. The fileTime
- * parameter is used to store a timestamp of the file. If specified, the file will only be reloaded if it
- * has changed.
- *
- * @param array Valid array handle, should be created with CreateArray(33) or larger.
- * @param fileTime Variable containing the "last changed" time of the file. Used to avoid needless reloading.
- * @param fileCvar CVAR set to the file to be loaded. Optional.
- * @return Number of maps loaded or 0 if in error.
- * @deprecated Use ReadMapList() instead.
- */
-#pragma deprecated Use ReadMapList() instead.
-stock int LoadMaps(Handle array, int &fileTime = 0, Handle fileCvar = INVALID_HANDLE)
-{
- char mapPath[256], mapFile[64];
- bool fileFound = false;
-
- if (fileCvar != INVALID_HANDLE)
- {
- GetConVarString(fileCvar, mapFile, 64);
- BuildPath(Path_SM, mapPath, sizeof(mapPath), mapFile);
- fileFound = FileExists(mapPath);
- }
-
- if (!fileFound)
- {
- Handle mapCycleFile = FindConVar("mapcyclefile");
- GetConVarString(mapCycleFile, mapPath, sizeof(mapPath));
- fileFound = FileExists(mapPath);
- }
-
- if (!fileFound)
- {
- LogError("Failed to find a file to load maps from. No maps loaded.");
- ClearArray(array);
-
- return 0;
- }
-
- // If the file hasn't changed, there's no reason to reload
- // all of the maps.
- int newTime = GetFileTime(mapPath, FileTime_LastChange);
- if (fileTime == newTime)
- {
- return GetArraySize(array);
- }
-
- fileTime = newTime;
-
- ClearArray(array);
-
- File file = OpenFile(mapPath, "rt");
- if (!file) {
- LogError("Could not open file: %s", mapPath);
- return 0;
- }
-
- LogMessage("Loading maps from file: %s", mapPath);
-
- int len;
- char buffer[64];
- while (!file.EndOfFile() && file.ReadLine(buffer, sizeof(buffer)))
- {
- TrimString(buffer);
-
- if ((len = StrContains(buffer, ".bsp", false)) != -1)
- {
- buffer[len] = '\0';
- }
-
- if (buffer[0] == '\0' || !IsValidConVarChar(buffer[0]) || !IsMapValid(buffer))
- {
- continue;
- }
-
- if (FindStringInArray(array, buffer) != -1)
- {
- continue;
- }
-
- PushArrayString(array, buffer);
- }
-
- file.Close();
- return GetArraySize(array);
-}
diff --git a/addons/sourcemod/scripting/include/keyvalues.inc b/addons/sourcemod/scripting/include/keyvalues.inc
deleted file mode 100644
index 731850734..000000000
--- a/addons/sourcemod/scripting/include/keyvalues.inc
+++ /dev/null
@@ -1,707 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _keyvalues_included
- #endinput
-#endif
-#define _keyvalues_included
-
-/**
- * KeyValue data value types
- */
-enum KvDataTypes
-{
- KvData_None = 0, /**< Type could not be identified, or no type */
- KvData_String, /**< String value */
- KvData_Int, /**< Integer value */
- KvData_Float, /**< Floating point value */
- KvData_Ptr, /**< Pointer value (sometimes called "long") */
- KvData_WString, /**< Wide string value */
- KvData_Color, /**< Color value */
- KvData_UInt64, /**< Large integer value */
- /* --- */
- KvData_NUMTYPES
-};
-
-methodmap KeyValues < Handle
-{
- // Creates a new KeyValues structure. The Handle must be closed with
- // CloseHandle() or delete.
- //
- // @param name Name of the root section.
- // @param firstKey If non-empty, specifies the first key value.
- // @param firstValue If firstKey is non-empty, specifies the first key's value.
- public native KeyValues(const char[] name, const char[] firstKey="", const char[] firstValue="");
-
- // Exports a KeyValues tree to a file. The tree is dumped from the current position.
- //
- // @param file File to dump write to.
- // @return True on success, false otherwise.
- public native bool ExportToFile(const char[] file);
-
- // Exports a KeyValues tree to a string. The string is dumped from the current position.
- //
- // @param buffer Buffer to write to.
- // @param maxlength Max length of buffer.
- // @return Number of bytes that can be written to buffer.
- public native int ExportToString(char[] buffer, int maxlength);
-
- // Amount of bytes written by ExportToFile & ExportToString.
- property int ExportLength {
- public native get();
- }
-
- // Imports a file in KeyValues format. The file is read into the current
- // position of the tree.
- //
- // @param file File to read from.
- // @return True on success, false otherwise.
- public native bool ImportFromFile(const char[] file);
-
- // Converts a given string to a KeyValues tree. The string is read into
- // the current postion of the tree.
- //
- // @param buffer String buffer to load into the KeyValues.
- // @param resourceName The resource name of the KeyValues, used for error tracking purposes.
- // @return True on success, false otherwise.
- public native bool ImportFromString(const char[] buffer, const char[] resourceName="StringToKeyValues");
-
- // Imports subkeys in the given KeyValues, at the current position in that
- // KeyValues, into the current position in this KeyValues. Note that this
- // copies keys; it does not embed a reference to them.
- //
- // @param other Origin KeyValues Handle.
- public native void Import(KeyValues other);
-
- // Sets a string value of a KeyValues key.
- //
- // @param kv KeyValues Handle.
- // @param key Name of the key, or NULL_STRING.
- // @param value String value.
- public native void SetString(const char[] key, const char[] value);
-
- // Sets an integer value of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param value Value number.
- public native void SetNum(const char[] key, int value);
-
- // Sets a large integer value of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param value Large integer value (0=High bits, 1=Low bits)
- public native void SetUInt64(const char[] key, const int value[2]);
-
- // Sets a floating point value of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param value Floating point value.
- public native void SetFloat(const char[] key, float value);
-
- // Sets a set of color values of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param r Red value.
- // @param g Green value.
- // @param b Blue value.
- // @param a Alpha value.
- public native void SetColor(const char[] key, int r, int g, int b, int a=0);
-
- // Sets a set of color values of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param color Red, green, blue and alpha channels.
- public void SetColor4(const char[] key, const int color[4]) {
- this.SetColor(key, color[0], color[1], color[2], color[3]);
- }
-
- // Sets a vector value of a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param vec Vector value.
- public native void SetVector(const char[] key, const float vec[3]);
-
- // Retrieves a string value from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param value Buffer to store key value in.
- // @param maxlength Maximum length of the value buffer.
- // @param defvalue Optional default value to use if the key is not found.
- public native void GetString(const char[] key, char[] value, int maxlength, const char[] defvalue="");
-
- // Retrieves an integer value from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param defvalue Optional default value to use if the key is not found.
- // @return Integer value of the key.
- public native int GetNum(const char[] key, int defvalue=0);
-
- // Retrieves a floating point value from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param defvalue Optional default value to use if the key is not found.
- // @return Floating point value of the key.
- public native float GetFloat(const char[] key, float defvalue=0.0);
-
- // Retrieves a set of color values from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param r Red value, set by reference.
- // @param g Green value, set by reference.
- // @param b Blue value, set by reference.
- // @param a Alpha value, set by reference.
- public native void GetColor(const char[] key, int &r, int &g, int &b, int &a);
-
- // Retrieves a set of color values from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param color Red, green, blue, and alpha channels.
- public void GetColor4(const char[] key, int color[4]) {
- int r, g, b, a;
- this.GetColor(key, r, g, b, a);
- color[0] = r;
- color[1] = g;
- color[2] = b;
- color[3] = a;
- }
-
- // Retrieves a large integer value from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param value Array to represent the large integer.
- // @param defvalue Optional default value to use if the key is not found.
- public native void GetUInt64(const char[] key, int value[2], int defvalue[2]={0,0});
-
- // Retrieves a vector value from a KeyValues key.
- //
- // @param key Name of the key, or NULL_STRING.
- // @param vec Destination vector to store the value in.
- // @param defvalue Optional default value to use if the key is not found.
- public native void GetVector(const char[] key, float vec[3], const float defvalue[3]={0.0, 0.0, 0.0});
-
- // Sets the current position in the KeyValues tree to the given key.
- //
- // @param key Name of the key.
- // @param create If true, and the key does not exist, it will be created.
- // @return True if the key exists, false if it does not and was not created.
- public native bool JumpToKey(const char[] key, bool create=false);
-
- // Sets the current position in the KeyValues tree to the given key.
- //
- // @param id KeyValues id.
- // @return True if the key exists, false if it does not.
- public native bool JumpToKeySymbol(int id);
-
- // Sets the current position in the KeyValues tree to the first sub key.
- // This native adds to the internal traversal stack.
- //
- // @param keyOnly If false, non-keys will be traversed (values).
- // @return True on success, false if there was no first sub key.
- public native bool GotoFirstSubKey(bool keyOnly=true);
-
- // Sets the current position in the KeyValues tree to the next sub key.
- // This native does NOT add to the internal traversal stack, and thus
- // GoBack() is not needed for each successive call to this function.
- //
- // @param keyOnly If false, non-keys will be traversed (values).
- // @return True on success, false if there was no next sub key.
- public native bool GotoNextKey(bool keyOnly=true);
-
- // Saves the current position in the traversal stack onto the traversal
- // stack. This can be useful if you wish to use KvGotoNextKey() and
- // have the previous key saved for backwards traversal.
- //
- // @param kv KeyValues Handle.
- public native void SavePosition();
-
- // Jumps back to the previous position. Returns false if there are no
- // previous positions (i.e., at the root node). This should be called
- // once for each successful Jump call, in order to return to the top node.
- // This function pops one node off the internal traversal stack.
- //
- // @return True on success, false if there is no higher node.
- public native bool GoBack();
-
- // Removes the given key from the current position.
- //
- // @param key Name of the key.
- // @return True on success, false if key did not exist.
- public native bool DeleteKey(const char[] key);
-
- // Removes the current sub-key and attempts to set the position
- // to the sub-key after the removed one. If no such sub-key exists,
- // the position will be the parent key in the traversal stack.
- // Given the sub-key having position "N" in the traversal stack, the
- // removal will always take place from position "N-1."
- //
- // @param kv KeyValues Handle.
- // @return 1 if removal succeeded and there was another key.
- // 0 if the current node was not contained in the
- // previous node, or no previous node exists.
- // -1 if removal succeeded and there were no more keys,
- // thus the state is as if KvGoBack() was called.
- public native int DeleteThis();
-
- // Sets the position back to the top node, emptying the entire node
- // traversal history. This can be used instead of looping KvGoBack()
- // if recursive iteration is not important.
- //
- // @param kv KeyValues Handle.
- public native void Rewind();
-
- // Retrieves the current section name.
- //
- // @param section Buffer to store the section name.
- // @param maxlength Maximum length of the name buffer.
- // @return True on success, false on failure.
- public native bool GetSectionName(char[] section, int maxlength);
-
- // Sets the current section name.
- //
- // @param section Section name.
- public native void SetSectionName(const char[] section);
-
- // Returns the data type at a key.
- //
- // @param key Key name.
- // @return KvDataType value of the key.
- public native KvDataTypes GetDataType(const char[] key);
-
- // Sets whether or not the KeyValues parser will read escape sequences.
- // For example, \n would be read as a literal newline. This defaults
- // to false for new KeyValues structures.
- //
- // @param useEscapes Whether or not to read escape sequences.
- public native void SetEscapeSequences(bool useEscapes);
-
- // Returns the position in the jump stack; I.e. the number of calls
- // required for KvGoBack to return to the root node. If at the root node,
- // 0 is returned.
- //
- // @return Number of non-root nodes in the jump stack.
- public native int NodesInStack();
-
- // Finds a KeyValues name by id.
- //
- // @param id KeyValues id.
- // @param name Buffer to store the name.
- // @param maxlength Maximum length of the value buffer.
- // @return True on success, false if id not found.
- public native bool FindKeyById(int id, char[] name, int maxlength);
-
- // Finds a KeyValues id inside a KeyValues tree.
- //
- // @param key Key name.
- // @param id Id of the found KeyValue.
- // @return True on success, false if key not found.
- public native bool GetNameSymbol(const char[] key, int &id);
-
- // Retrieves the current section id.
- //
- // @param kv KeyValues Handle.
- // @param id Id of the current section.
- // @return True on success, false on failure.
- public native bool GetSectionSymbol(int &id);
-};
-
-/**
- * Creates a new KeyValues structure. The Handle must always be closed.
- *
- * @param name Name of the root section.
- * @param firstKey If non-empty, specifies the first key value.
- * @param firstValue If firstKey is non-empty, specifies the first key's value.
- * @return A Handle to a new KeyValues structure.
- */
-native KeyValues CreateKeyValues(const char[] name, const char[] firstKey="", const char[] firstValue="");
-
-/**
- * Sets a string value of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value String value.
- * @error Invalid Handle.
- */
-native void KvSetString(Handle kv, const char[] key, const char[] value);
-
-/**
- * Sets an integer value of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value Value number.
- * @error Invalid Handle.
- */
-native void KvSetNum(Handle kv, const char[] key, int value);
-
-/**
- * Sets a large integer value of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value Large integer value (0=High bits, 1=Low bits)
- * @error Invalid Handle.
- */
-native void KvSetUInt64(Handle kv, const char[] key, const int value[2]);
-
-/**
- * Sets a floating point value of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value Floating point value.
- * @error Invalid Handle.
- */
-native void KvSetFloat(Handle kv, const char[] key, float value);
-
-/**
- * Sets a set of color values of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param r Red value.
- * @param g Green value.
- * @param b Blue value.
- * @param a Alpha value.
- * @error Invalid Handle.
- */
-native void KvSetColor(Handle kv, const char[] key, int r, int g, int b, int a=0);
-
-/**
- * Sets a vector value of a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param vec Vector value.
- * @error Invalid Handle.
- */
-native void KvSetVector(Handle kv, const char[] key, const float vec[3]);
-
-/**
- * Retrieves a string value from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value Buffer to store key value in.
- * @param maxlength Maximum length of the value buffer.
- * @param defvalue Optional default value to use if the key is not found.
- * @error Invalid Handle.
- */
-native void KvGetString(Handle kv, const char[] key, char[] value, int maxlength, const char[] defvalue="");
-
-/**
- * Retrieves an integer value from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param defvalue Optional default value to use if the key is not found.
- * @return Integer value of the key.
- * @error Invalid Handle.
- */
-native int KvGetNum(Handle kv, const char[] key, int defvalue=0);
-
-/**
- * Retrieves a floating point value from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param defvalue Optional default value to use if the key is not found.
- * @return Floating point value of the key.
- * @error Invalid Handle.
- */
-native float KvGetFloat(Handle kv, const char[] key, float defvalue=0.0);
-
-/**
- * Retrieves a set of color values from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param r Red value, set by reference.
- * @param g Green value, set by reference.
- * @param b Blue value, set by reference.
- * @param a Alpha value, set by reference.
- * @error Invalid Handle.
- */
-native void KvGetColor(Handle kv, const char[] key, int &r, int &g, int &b, int &a);
-
-/**
- * Retrieves a large integer value from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param value Array to represent the large integer.
- * @param defvalue Optional default value to use if the key is not found.
- * @error Invalid Handle.
- */
-native void KvGetUInt64(Handle kv, const char[] key, int value[2], int defvalue[2]={0,0});
-
-/**
- * Retrieves a vector value from a KeyValues key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key, or NULL_STRING.
- * @param vec Destination vector to store the value in.
- * @param defvalue Optional default value to use if the key is not found.
- * @error Invalid Handle.
- */
-native void KvGetVector(Handle kv, const char[] key, float vec[3], const float defvalue[3]={0.0, 0.0, 0.0});
-
-/**
- * Sets the current position in the KeyValues tree to the given key.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key.
- * @param create If true, and the key does not exist, it will be created.
- * @return True if the key exists, false if it does not and was not created.
- */
-native bool KvJumpToKey(Handle kv, const char[] key, bool create=false);
-
-/**
- * Sets the current position in the KeyValues tree to the given key.
- *
- * @param kv KeyValues Handle.
- * @param id KeyValues id.
- * @return True if the key exists, false if it does not.
- */
-native bool KvJumpToKeySymbol(Handle kv, int id);
-
-/**
- * Sets the current position in the KeyValues tree to the first sub key.
- * This native adds to the internal traversal stack.
- *
- * @param kv KeyValues Handle.
- * @param keyOnly If false, non-keys will be traversed (values).
- * @return True on success, false if there was no first sub key.
- * @error Invalid Handle.
- */
-native bool KvGotoFirstSubKey(Handle kv, bool keyOnly=true);
-
-/**
- * Sets the current position in the KeyValues tree to the next sub key.
- * This native does NOT add to the internal traversal stack, and thus
- * KvGoBack() is not needed for each successive call to this function.
- *
- * @param kv KeyValues Handle.
- * @param keyOnly If false, non-keys will be traversed (values).
- * @return True on success, false if there was no next sub key.
- * @error Invalid Handle.
- */
-native bool KvGotoNextKey(Handle kv, bool keyOnly=true);
-
-/**
- * Saves the current position in the traversal stack onto the traversal
- * stack. This can be useful if you wish to use KvGotoNextKey() and
- * have the previous key saved for backwards traversal.
- *
- * @param kv KeyValues Handle.
- * @error Invalid Handle.
- */
-native void KvSavePosition(Handle kv);
-
-/**
- * Removes the given key from the current position.
- *
- * @param kv KeyValues Handle.
- * @param key Name of the key.
- * @return True on success, false if key did not exist.
- * @error Invalid Handle.
- */
-native bool KvDeleteKey(Handle kv, const char[] key);
-
-/**
- * Removes the current sub-key and attempts to set the position
- * to the sub-key after the removed one. If no such sub-key exists,
- * the position will be the parent key in the traversal stack.
- * Given the sub-key having position "N" in the traversal stack, the
- * removal will always take place from position "N-1."
- *
- * @param kv KeyValues Handle.
- * @return 1 if removal succeeded and there was another key.
- * 0 if the current node was not contained in the
- * previous node, or no previous node exists.
- * -1 if removal succeeded and there were no more keys,
- * thus the state is as if KvGoBack() was called.
- * @error Invalid Handle.
- */
-native int KvDeleteThis(Handle kv);
-
-/**
- * Jumps back to the previous position. Returns false if there are no
- * previous positions (i.e., at the root node). This should be called
- * once for each successful Jump call, in order to return to the top node.
- * This function pops one node off the internal traversal stack.
- *
- * @param kv KeyValues Handle.
- * @return True on success, false if there is no higher node.
- * @error Invalid Handle.
- */
-native bool KvGoBack(Handle kv);
-
-/**
- * Sets the position back to the top node, emptying the entire node
- * traversal history. This can be used instead of looping KvGoBack()
- * if recursive iteration is not important.
- *
- * @param kv KeyValues Handle.
- * @error Invalid Handle.
- */
-native void KvRewind(Handle kv);
-
-/**
- * Retrieves the current section name.
- *
- * @param kv KeyValues Handle.
- * @param section Buffer to store the section name.
- * @param maxlength Maximum length of the name buffer.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool KvGetSectionName(Handle kv, char[] section, int maxlength);
-
-/**
- * Sets the current section name.
- *
- * @param kv KeyValues Handle.
- * @param section Section name.
- * @error Invalid Handle.
- */
-native void KvSetSectionName(Handle kv, const char[] section);
-
-/**
- * Returns the data type at a key.
- *
- * @param kv KeyValues Handle.
- * @param key Key name.
- * @return KvDataType value of the key.
- * @error Invalid Handle.
- */
-native KvDataTypes KvGetDataType(Handle kv, const char[] key);
-
-/**
- * Converts a KeyValues tree to a file. The tree is dumped
- * from the current position.
- *
- * @param kv KeyValues Handle.
- * @param file File to dump write to.
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool KeyValuesToFile(Handle kv, const char[] file);
-
-/**
- * Converts a file to a KeyValues tree. The file is read into
- * the current position of the tree.
- *
- * @param kv KeyValues Handle.
- * @param file File to read from.
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool FileToKeyValues(Handle kv, const char[] file);
-
-/**
- * Converts a given string to a KeyValues tree. The string is read into
- * the current postion of the tree.
- *
- * @param kv KeyValues Handle.
- * @param buffer String buffer to load into the KeyValues.
- * @param resourceName The resource name of the KeyValues, used for error tracking purposes.
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool StringToKeyValues(Handle kv, const char[] buffer, const char[] resourceName="StringToKeyValues");
-
-/**
- * Sets whether or not the KeyValues parser will read escape sequences.
- * For example, \n would be read as a literal newline. This defaults
- * to false for new KeyValues structures.
- *
- * @param kv KeyValues Handle.
- * @param useEscapes Whether or not to read escape sequences.
- * @error Invalid Handle.
- */
-native void KvSetEscapeSequences(Handle kv, bool useEscapes);
-
-/**
- * Returns the position in the jump stack; I.e. the number of calls
- * required for KvGoBack to return to the root node. If at the root node,
- * 0 is returned.
- *
- * @param kv KeyValues Handle.
- * @return Number of non-root nodes in the jump stack.
- * @error Invalid Handle.
- */
-native int KvNodesInStack(Handle kv);
-
-/**
- * Makes a new copy of all subkeys in the origin KeyValues to
- * the destination KeyValues.
- * NOTE: All KeyValues are processed from the current location not the root one.
- *
- * @param origin Origin KeyValues Handle.
- * @param dest Destination KeyValues Handle.
- * @error Invalid Handle.
- */
-native void KvCopySubkeys(Handle origin, Handle dest);
-
-/**
- * Finds a KeyValues name by id.
- *
- * @param kv KeyValues Handle.
- * @param id KeyValues id.
- * @param name Buffer to store the name.
- * @param maxlength Maximum length of the value buffer.
- * @return True on success, false if id not found.
- * @error Invalid Handle.
- */
-native bool KvFindKeyById(Handle kv, int id, char[] name, int maxlength);
-
-/**
- * Finds a KeyValues id inside a KeyValues tree.
- *
- * @param kv KeyValues Handle.
- * @param key Key name.
- * @param id Id of the found KeyValue.
- * @return True on success, false if key not found.
- * @error Invalid Handle.
- */
-native bool KvGetNameSymbol(Handle kv, const char[] key, int &id);
-
-/**
- * Retrieves the current section id.
- *
- * @param kv KeyValues Handle.
- * @param id Id of the current section.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool KvGetSectionSymbol(Handle kv, int &id);
diff --git a/addons/sourcemod/scripting/include/lang.inc b/addons/sourcemod/scripting/include/lang.inc
deleted file mode 100644
index 440b79577..000000000
--- a/addons/sourcemod/scripting/include/lang.inc
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _lang_included
- #endinput
-#endif
-#define _lang_included
-
-#define LANG_SERVER 0 /**< Translate using the server's language */
-
-/**
- * Loads a translation file for the plugin calling this native.
- * If no extension is specified, .txt is assumed.
- *
- * @param file Translation file.
- */
-native void LoadTranslations(const char[] file);
-
-/**
- * Sets the global language target. This is useful for creating functions
- * that will be compatible with the %t format specifier. Note that invalid
- * indexes can be specified but the error will occur during translation,
- * not during this function call.
- *
- * @param client Client index or LANG_SERVER.
- */
-native void SetGlobalTransTarget(int client);
-
-/**
- * Retrieves the language number of a client.
- *
- * @param client Client index.
- * @return Language number client is using.
- * @error Invalid client index or client not connected.
- */
-native int GetClientLanguage(int client);
-
-/**
- * Retrieves the server's language.
- *
- * @return Language number server is using.
- */
-native int GetServerLanguage();
-
-/**
- * Returns the number of languages known in languages.cfg.
- *
- * @return Language count.
- */
-native int GetLanguageCount();
-
-/**
- * Retrieves info about a given language number.
- *
- * @param language Language number.
- * @param code Language code buffer (2-3 characters usually).
- * @param codeLen Maximum length of the language code buffer.
- * @param name Language name buffer.
- * @param nameLen Maximum length of the language name buffer.
- * @error Invalid language number.
- */
-native void GetLanguageInfo(int language, char[] code="", int codeLen=0, char[] name="", int nameLen=0);
-
-/**
- * Sets the language number of a client.
- *
- * @param client Client index.
- * @param language Language number.
- * @error Invalid client index or client not connected.
- */
-native void SetClientLanguage(int client, int language);
-
-/**
- * Retrieves the language number from a language code.
- *
- * @param code Language code (2-3 characters usually).
- * @return Language number. -1 if not found.
- */
-native int GetLanguageByCode(const char[] code);
-
-/**
- * Retrieves the language number from a language name.
- *
- * @param name Language name (case insensitive).
- * @return Language number. -1 if not found.
- */
-native int GetLanguageByName(const char[] name);
-
-/**
- * Determines if the specified phrase exists within the plugin's
- * translation cache.
- *
- * @param phrase Phrase to look for.
- * @return True if phrase exists.
- */
-native bool TranslationPhraseExists(const char[] phrase);
-
-/**
- * Determines if there is a translation for the specified language.
- *
- * @param phrase Phrase to check.
- * @param language Language number.
- * @return True if translation exists.
- */
-native bool IsTranslatedForLanguage(const char[] phrase, int language);
diff --git a/addons/sourcemod/scripting/include/logging.inc b/addons/sourcemod/scripting/include/logging.inc
deleted file mode 100644
index 2ab337cbf..000000000
--- a/addons/sourcemod/scripting/include/logging.inc
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sm_logging_included
- #endinput
-#endif
-#define _sm_logging_included
-
-/**
- * Logs a plugin message to the SourceMod logs. The log message will be
- * prefixed by the plugin's logtag (filename).
- *
- * @param format String format.
- * @param ... Format arguments.
- */
-native void LogMessage(const char[] format, any ...);
-
-/**
- * Logs a message to any file. The log message will be in the normal
- * SourceMod format, with the plugin logtag prepended.
- *
- * @param file File to write the log message in.
- * @param format String format.
- * @param ... Format arguments.
- * @error File could not be opened/written.
- */
-native void LogToFile(const char[] file, const char[] format, any ...);
-
-/**
- * Same as LogToFile(), except no plugin logtag is prepended.
- *
- * @param file File to write the log message in.
- * @param format String format.
- * @param ... Format arguments.
- * @error File could not be opened/written.
- */
-native void LogToFileEx(const char[] file, const char[] format, any ...);
-
-/**
- * Logs an action from a command or event whereby interception and routing may
- * be important. This is intended to be a logging version of ShowActivity().
- *
- * @param client Client performing the action, 0 for server, or -1 if not
- * applicable.
- * @param target Client being targetted, or -1 if not applicable.
- * @param message Message format.
- * @param ... Message formatting parameters.
- */
-native void LogAction(int client, int target, const char[] message, any ...);
-
-/**
- * Logs a plugin error message to the SourceMod logs.
- *
- * @param format String format.
- * @param ... Format arguments.
- */
-native void LogError(const char[] format, any ...);
-
-/**
- * Called when an action is going to be logged.
- *
- * @param source Handle to the object logging the action, or INVALID_HANDLE
- * if Core is logging the action.
- * @param ident Type of object logging the action (plugin, ext, or core).
- * @param client Client the action is from; 0 for server, -1 if not applicable.
- * @param target Client the action is targetting, or -1 if not applicable.
- * @param message Message that is being logged.
- * @return Plugin_Continue will perform the default logging behavior.
- * Plugin_Handled will stop Core from logging the message.
- * Plugin_Stop is the same as Handled, but prevents any other
- * plugins from handling the message.
- */
-forward Action OnLogAction(Handle source,
- Identity ident,
- int client,
- int target,
- const char[] message);
-
-/**
- * Called when a game log message is received.
- *
- * Any Log*() functions called within this callback will not recursively
- * pass through. That is, they will log directly, bypassing this callback.
- *
- * Note that this does not capture log messages from the engine. It only
- * captures log messages being sent from the game/mod itself.
- *
- * @param message Message contents.
- * @return Plugin_Handled or Plugin_Stop will prevent the message
- * from being written to the log file.
- */
-typedef GameLogHook = function Action (const char[] message);
-
-/**
- * Adds a game log hook.
- *
- * @param hook Hook function.
- */
-native void AddGameLogHook(GameLogHook hook);
-
-/**
- * Removes a game log hook.
- *
- * @param hook Hook function.
- */
-native void RemoveGameLogHook(GameLogHook hook);
diff --git a/addons/sourcemod/scripting/include/mapchooser.inc b/addons/sourcemod/scripting/include/mapchooser.inc
deleted file mode 100644
index f95e46491..000000000
--- a/addons/sourcemod/scripting/include/mapchooser.inc
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-#if defined _mapchooser_included_
- #endinput
-#endif
-#define _mapchooser_included_
-
-enum NominateResult
-{
- Nominate_Added, /** The map was added to the nominate list */
- Nominate_Replaced, /** A clients existing nomination was replaced */
- Nominate_AlreadyInVote, /** Specified map was already in the vote */
- Nominate_InvalidMap, /** Mapname specified wasn't a valid map */
- Nominate_VoteFull /** This will only occur if force was set to false */
-};
-
-enum MapChange
-{
- MapChange_Instant, /** Change map as soon as the voting results have come in */
- MapChange_RoundEnd, /** Change map at the end of the round */
- MapChange_MapEnd /** Change the sm_nextmap cvar */
-};
-
-/**
- * Attempt to add a map to the mapchooser map list.
- *
- * @param map Map to add.
- * @param force Should we force the map in even if it requires overwriting an existing nomination?
- * @param owner Client index of the nominator. If the client disconnects the nomination will be removed.
- * Use 0 for constant nominations
- * @return Nominate Result of the outcome
- */
-native NominateResult NominateMap(const char[] map, bool force, int owner);
-
-/**
- * Attempt to remove a map from the mapchooser map list.
- *
- * @param map Map to remove.
- * @return True if the nomination was found and removed, or false if the nomination was not found.
- */
-native bool RemoveNominationByMap(const char[] map);
-
-/**
- * Attempt to remove a map from the mapchooser map list.
- *
- * @param owner Client index of the nominator.
- * @return True if the nomination was found and removed, or false if the nomination was not found.
- */
-native bool RemoveNominationByOwner(int owner);
-
-/**
- * Gets the current list of excluded maps.
- *
- * @param array An ADT array handle to add the map strings to.
- */
-native void GetExcludeMapList(ArrayList array);
-
-/**
- * Gets the current list of nominated maps.
- *
- * @param maparray An ADT array handle to add the map strings to.
- * @param ownerarray An optional ADT array handle to add the nominator client indexes to.
- */
-native void GetNominatedMapList(ArrayList maparray, ArrayList ownerarray = null);
-
-/**
- * Checks if MapChooser will allow a vote
- *
- * @return True if a vote can be held, or false if mapchooser is already holding a vote.
- */
-native bool CanMapChooserStartVote();
-
-/**
- * Initiates a MapChooser map vote
- *
- * Note: If no input array is specified mapchooser will use its internal list. This includes
- * any nominations and excluded maps (as per mapchoosers convars).
- *
- * @param when MapChange consant of when the resulting mapchange should occur.
- * @param inputarray ADT array list of maps to add to the vote.
- */
-native void InitiateMapChooserVote(MapChange when, ArrayList inputarray=null);
-
-/**
- * Checks if MapChooser's end of map vote has completed.
- *
- * @return True if complete, false otherwise.
- */
-native bool HasEndOfMapVoteFinished();
-
-/**
- * Checks if MapChooser is set to run an end of map vote.
- *
- * @return True if enabled, false otherwise.
- */
-native bool EndOfMapVoteEnabled();
-
-/**
- * Called when mapchooser removes a nomination from its list.
- * Nominations cleared on map start will not trigger this forward
- */
-forward void OnNominationRemoved(const char[] map, int owner);
-
-/**
- * Called when mapchooser starts a Map Vote.
- */
-forward void OnMapVoteStarted();
-
-/* DO NOT EDIT BELOW THIS LINE */
-
-public SharedPlugin __pl_mapchooser =
-{
- name = "mapchooser",
- file = "mapchooser.smx",
-#if defined REQUIRE_PLUGIN
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_PLUGIN
-public void __pl_mapchooser_SetNTVOptional()
-{
- MarkNativeAsOptional("NominateMap");
- MarkNativeAsOptional("RemoveNominationByMap");
- MarkNativeAsOptional("RemoveNominationByOwner");
- MarkNativeAsOptional("GetExcludeMapList");
- MarkNativeAsOptional("GetNominatedMapList");
- MarkNativeAsOptional("CanMapChooserStartVote");
- MarkNativeAsOptional("InitiateMapChooserVote");
- MarkNativeAsOptional("HasEndOfMapVoteFinished");
- MarkNativeAsOptional("EndOfMapVoteEnabled");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/menus.inc b/addons/sourcemod/scripting/include/menus.inc
deleted file mode 100644
index a10893c0e..000000000
--- a/addons/sourcemod/scripting/include/menus.inc
+++ /dev/null
@@ -1,1154 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _menus_included
- #endinput
-#endif
-#define _menus_included
-
-/**
- * Low-level drawing style of the menu.
- */
-enum MenuStyle
-{
- MenuStyle_Default = 0, /**< The "default" menu style for the mod */
- MenuStyle_Valve = 1, /**< The Valve provided menu style (Used on HL2DM) */
- MenuStyle_Radio = 2 /**< The simpler menu style commonly used on CS:S */
-};
-
-/**
- * Different actions for the menu "pump" callback
- */
-enum MenuAction
-{
- MenuAction_Start = (1<<0), /**< A menu has been started (nothing passed) */
- MenuAction_Display = (1<<1), /**< A menu is about to be displayed (param1=client, param2=MenuPanel Handle) */
- MenuAction_Select = (1<<2), /**< An item was selected (param1=client, param2=item) */
- MenuAction_Cancel = (1<<3), /**< The menu was cancelled (param1=client, param2=reason) */
- MenuAction_End = (1<<4), /**< A menu display has fully ended.
- param1 is the MenuEnd reason, and if it's MenuEnd_Cancelled, then
- param2 is the MenuCancel reason from MenuAction_Cancel. */
- MenuAction_VoteEnd = (1<<5), /**< (VOTE ONLY): A vote sequence has succeeded (param1=chosen item)
- This is not called if SetVoteResultCallback has been used on the menu. */
- MenuAction_VoteStart = (1<<6), /**< (VOTE ONLY): A vote sequence has started (nothing passed) */
- MenuAction_VoteCancel = (1<<7), /**< (VOTE ONLY): A vote sequence has been cancelled (param1=reason) */
- MenuAction_DrawItem = (1<<8), /**< An item is being drawn; return the new style (param1=client, param2=item) */
- MenuAction_DisplayItem = (1<<9) /**< Item text is being drawn to the display (param1=client, param2=item)
- To change the text, use RedrawMenuItem().
- If you do so, return its return value. Otherwise, return 0. */
-};
-
-/** Default menu actions */
-#define MENU_ACTIONS_DEFAULT MenuAction_Select|MenuAction_Cancel|MenuAction_End
-/** All menu actions */
-#define MENU_ACTIONS_ALL view_as(0xFFFFFFFF)
-
-#define MENU_NO_PAGINATION 0 /**< Menu should not be paginated (10 items max) */
-#define MENU_TIME_FOREVER 0 /**< Menu should be displayed as long as possible */
-
-#define ITEMDRAW_DEFAULT (0) /**< Item should be drawn normally */
-#define ITEMDRAW_DISABLED (1<<0) /**< Item is drawn but not selectable */
-#define ITEMDRAW_RAWLINE (1<<1) /**< Item should be a raw line, without a slot */
-#define ITEMDRAW_NOTEXT (1<<2) /**< No text should be drawn */
-#define ITEMDRAW_SPACER (1<<3) /**< Item should be drawn as a spacer, if possible */
-#define ITEMDRAW_IGNORE ((1<<1)|(1<<2)) /**< Item should be completely ignored (rawline + notext) */
-#define ITEMDRAW_CONTROL (1<<4) /**< Item is control text (back/next/exit) */
-
-#define MENUFLAG_BUTTON_EXIT (1<<0) /**< Menu has an "exit" button (default if paginated) */
-#define MENUFLAG_BUTTON_EXITBACK (1<<1) /**< Menu has an "exit back" button */
-#define MENUFLAG_NO_SOUND (1<<2) /**< Menu will not have any select sounds */
-#define MENUFLAG_BUTTON_NOVOTE (1<<3) /**< Menu has a "No Vote" button at slot 1 */
-
-#define VOTEINFO_CLIENT_INDEX 0 /**< Client index */
-#define VOTEINFO_CLIENT_ITEM 1 /**< Item the client selected, or -1 for none */
-#define VOTEINFO_ITEM_INDEX 0 /**< Item index */
-#define VOTEINFO_ITEM_VOTES 1 /**< Number of votes for the item */
-
-#define VOTEFLAG_NO_REVOTES (1<<0) /**< Players cannot change their votes */
-
-/**
- * Reasons a menu can be cancelled (MenuAction_Cancel).
- */
-enum
-{
- MenuCancel_Disconnected = -1, /**< Client dropped from the server */
- MenuCancel_Interrupted = -2, /**< Client was interrupted with another menu */
- MenuCancel_Exit = -3, /**< Client exited via "exit" */
- MenuCancel_NoDisplay = -4, /**< Menu could not be displayed to the client */
- MenuCancel_Timeout = -5, /**< Menu timed out */
- MenuCancel_ExitBack = -6 /**< Client selected "exit back" on a paginated menu */
-};
-
-/**
- * Reasons a vote can be cancelled (MenuAction_VoteCancel).
- */
-enum
-{
- VoteCancel_Generic = -1, /**< Vote was generically cancelled. */
- VoteCancel_NoVotes = -2 /**< Vote did not receive any votes. */
-};
-
-/**
- * Reasons a menu ended (MenuAction_End).
- */
-enum
-{
- MenuEnd_Selected = 0, /**< Menu item was selected */
- MenuEnd_VotingDone = -1, /**< Voting finished */
- MenuEnd_VotingCancelled = -2, /**< Voting was cancelled */
- MenuEnd_Cancelled = -3, /**< Menu was cancelled (reason in param2) */
- MenuEnd_Exit = -4, /**< Menu was cleanly exited via "exit" */
- MenuEnd_ExitBack = -5 /**< Menu was cleanly exited via "back" */
-};
-
-/**
- * Describes a menu's source
- */
-enum MenuSource
-{
- MenuSource_None = 0, /**< No menu is being displayed */
- MenuSource_External = 1, /**< External menu */
- MenuSource_Normal = 2, /**< A basic menu is being displayed */
- MenuSource_RawPanel = 3 /**< A display is active, but it is not tied to a menu */
-};
-
-/**
- * Called when a menu action is completed.
- *
- * @param menu The menu being acted upon.
- * @param action The action of the menu.
- * @param param1 First action parameter (usually the client).
- * @param param2 Second action parameter (usually the item).
- */
-typedef MenuHandler = function int (Menu menu, MenuAction action, int param1, int param2);
-
-// Panels are used for drawing raw menus without any extra helper functions.
-// Handles must be closed via delete or CloseHandle().
-methodmap Panel < Handle
-{
- // Constructor for a new Panel.
- //
- // @param hStyle MenuStyle Handle, or null to use the default style.
- public native Panel(Handle hStyle = null);
-
- // Sets the panel's title.
- //
- // @param text Text to set as the title.
- // @param onlyIfEmpty If true, the title will only be set if no title is set.
- public native void SetTitle(const char[] text, bool onlyIfEmpty=false);
-
- // Draws an item on a panel. If the item takes up a slot, the position
- // is returned.
- //
- // @param text Display text to use. If not a raw line,
- // the style may automatically add color markup.
- // No numbering or newlines are needed.
- // @param style ITEMDRAW style flags.
- // @return A slot position, or 0 if item was a rawline or could not be drawn.
- public native int DrawItem(const char[] text, int style=ITEMDRAW_DEFAULT);
-
- // Draws a raw line of text on a panel, without any markup other than a
- // newline.
- //
- // @param text Display text to use.
- // @return True on success, false if raw lines are not supported.
- public native bool DrawText(const char[] text);
-
- // Returns whether or not the given drawing flags are supported by
- // the menu style.
- //
- // @param style ITEMDRAW style flags.
- // @return True if item is drawable, false otherwise.
- public native bool CanDrawFlags(int style);
-
- // Sets the selectable key map of a panel. This is not supported by
- // all styles (only by Radio, as of this writing).
- //
- // @param keys An integer where each bit N allows key
- // N+1 to be selected. If no keys are selectable,
- // then key 0 (bit 9) is automatically set.
- // @return True if supported, false otherwise.
- public native bool SetKeys(int keys);
-
- // Sends a panel to a client. Unlike full menus, the handler
- // function will only receive the following actions, both of
- // which will have null for a menu, and the client as param1.
- //
- // MenuAction_Select (param2 will be the key pressed)
- // MenuAction_Cancel (param2 will be the reason)
- //
- // Also, if the menu fails to display, no callbacks will be called.
- //
- // @param client A client to draw to.
- // @param handler The MenuHandler function to catch actions with.
- // @param time Time to hold the menu for.
- // @return True on success, false on failure.
- public native bool Send(int client, MenuHandler handler, int time);
-
- // Returns the amount of text the menu can still hold. If this is
- // limit is reached or overflowed, the text is silently truncated.
- //
- // Radio menus: Currently 511 characters (512 bytes).
- // Valve menus: Currently -1 (no meaning).
- property int TextRemaining {
- public native get();
- }
-
- // Returns or sets the current key position, starting at 1. This cannot be
- // used to traverse backwards.
- property int CurrentKey {
- public native get();
- public native set(int key);
- }
-
- // Returns the panel's style. Style handles are global and cannot be closed.
- property Handle Style {
- public native get();
- }
-};
-
-// A menu is a helper object for managing in-game menus.
-methodmap Menu < Handle
-{
- // Creates a new, empty menu using the default style.
- //
- // @param handler Function which will receive menu actions.
- // @param actions Optionally set which actions to receive. Select,
- // Cancel, and End will always be received regardless
- // of whether they are set or not. They are also
- // the only default actions.
- public native Menu(MenuHandler handler, MenuAction actions=MENU_ACTIONS_DEFAULT);
-
- // Displays a menu to a client.
- //
- // @param client Client index.
- // @param time Maximum time to leave menu on the screen.
- // @return True on success, false on failure.
- // @error Client not in game.
- public native bool Display(int client, int time);
-
- // Displays a menu to a client, starting from the given item.
- //
- // @param client Client index.
- // @param first_item First item to begin drawing from.
- // @param time Maximum time to leave menu on the screen.
- // @return True on success, false on failure.
- // @error Client not in game.
- ///
- public native bool DisplayAt(int client, int first_item, int time);
-
- // Appends a new item to the end of a menu.
- //
- // @param info Item information string.
- // @param display Default item display string.
- // @param style Drawing style flags. Anything other than DEFAULT or
- // DISABLED will be completely ignored when paginating.
- // @return True on success, false on failure.
- // @error Item limit reached.
- public native bool AddItem(const char[] info, const char[] display, int style=ITEMDRAW_DEFAULT);
-
- // Inserts an item into the menu before a certain position; the new item will
- // be at the given position and all next items pushed forward.
- //
- // @param position Position, starting from 0.
- // @param info Item information string.
- // @param display Default item display string.
- // @param style Drawing style flags. Anything other than DEFAULT or
- // DISABLED will be completely ignored when paginating.
- // @return True on success, false on failure.
- // @error Invalid menu position.
- public native bool InsertItem(int position, const char[] info,
- const char[] display, int style=ITEMDRAW_DEFAULT);
-
- // Removes an item from the menu.
- //
- // @param position Position, starting from 0.
- // @return True on success, false on failure.
- // @error Invalid menu position.
- public native bool RemoveItem(int position);
-
- // Removes all items from a menu.
- public native void RemoveAllItems();
-
- // Retrieves information about a menu item.
- //
- // @param position Position, starting from 0.
- // @param infoBuf Info buffer.
- // @param infoBufLen Maximum length of the info buffer.
- // @param style By-reference variable to store drawing flags.
- // @param dispBuf Display buffer.
- // @param dispBufLen Maximum length of the display buffer.
- // @param client Client index. Must be specified if menu is per-client random shuffled, -1 to ignore.
- // @return True on success, false if position is invalid.
- public native bool GetItem(int position, char[] infoBuf, int infoBufLen,
- int &style=0, char[] dispBuf="", int dispBufLen=0, int client=0);
-
- // Generates a per-client random mapping for the current vote options.
- //
- // @param start Menu item index to start randomizing from.
- // @param stop Menu item index to stop randomizing at. -1 = infinite
- public native void ShufflePerClient(int start=0, int stop=-1);
-
- // Fills the client vote option mapping with user supplied values.
- //
- // @param client Client index.
- // @param array Integer array with mapping.
- // @param length Length of array.
- public native void SetClientMapping(int client, int[] array, int length);
-
- // Sets the menu's default title/instruction message.
- //
- // @param fmt Message string format
- // @param ... Message string arguments.
- public native void SetTitle(const char[] fmt, any ...);
-
- // Returns the text of a menu's title.
- //
- // @param buffer Buffer to store title.
- // @param maxlength Maximum length of the buffer.
- // @return Number of bytes written.
- public native void GetTitle(char[] buffer, int maxlength);
-
- // Creates a raw MenuPanel based off the menu's style.
- // The Handle must be freed with CloseHandle().
- //
- // @return A new MenuPanel Handle.
- public native Panel ToPanel();
-
- // Cancels a menu from displaying on all clients. While the
- // cancellation is in progress, this menu cannot be re-displayed
- // to any clients.
- //
- // The menu may still exist on the client's screen after this command.
- // This simply verifies that the menu is not being used anywhere.
- //
- // If any vote is in progress on a menu, it will be cancelled.
- public native void Cancel();
-
- // Broadcasts a menu to a list of clients. The most selected item will be
- // returned through MenuAction_End. On a tie, a random item will be returned
- // from a list of the tied items.
- //
- // Note that MenuAction_VoteEnd and MenuAction_VoteStart are both
- // default callbacks and do not need to be enabled.
- //
- // @param clients Array of clients to broadcast to.
- // @param numClients Number of clients in the array.
- // @param time Maximum time to leave menu on the screen.
- // @param flags Optional voting flags.
- // @return True on success, false if this menu already has a
- // vote session in progress.
- // @error A vote is already in progress.
- public native bool DisplayVote(int[] clients, int numClients, int time, int flags=0);
-
- // Sends a vote menu to all clients. See VoteMenu() for more information.
- //
- // @param time Maximum time to leave menu on the screen.
- // @param flags Optional voting flags.
- // @return True on success, false if this menu already has a
- // vote session in progress.
- public bool DisplayVoteToAll(int time, int flags=0) {
- int total = 0;
- int[] players = new int[MaxClients];
- for (int i = 1; i <= MaxClients; i++) {
- if (!IsClientInGame(i) || IsFakeClient(i))
- {
- continue;
- }
- players[total++] = i;
- }
- return this.DisplayVote(players, total, time, flags);
- }
-
- // Get or set the menu's pagination.
- //
- // If pagination is MENU_NO_PAGINATION, and the exit button flag is set,
- // then the exit button flag is removed. It can be re-applied if desired.
- property int Pagination {
- public native get();
- public native set(int value);
- }
-
- // Get or set the menu's option flags.
- //
- // If a certain bit is not supported, it will be stripped before being set.
- property int OptionFlags {
- public native get();
- public native set(int value);
- }
-
- // Returns whether or not the menu has an exit button. By default, menus
- // have an exit button.
- property bool ExitButton {
- public native get();
- public native set(bool value);
- }
-
- // Controls whether or not the menu has an "exit back" button. By default,
- // menus do not have an exit back button.
- //
- // Exit Back buttons appear as "Back" on page 1 of paginated menus and have
- // functionality defined by the user in MenuEnd_ExitBack.
- property bool ExitBackButton {
- public native get();
- public native set(bool value);
- }
-
- // Sets whether or not the menu has a "no vote" button in slot 1.
- // By default, menus do not have a no vote button.
- property bool NoVoteButton {
- public native set(bool value);
- }
-
- // Sets an advanced vote handling callback. If this callback is set,
- // MenuAction_VoteEnd will not be called.
- property VoteHandler VoteResultCallback {
- public native set(VoteHandler handler);
- }
-
- // Returns the number of items in a menu.
- property int ItemCount {
- public native get();
- }
-
- // Returns the menu style. The Handle is global and cannot be closed.
- property Handle Style {
- public native get();
- }
-
- // Returns the first item on the page of a currently selected menu.
- //
- // This is only valid inside a MenuAction_Select callback.
- property int Selection {
- public native get();
- }
-}
-
-/**
- * Creates a new, empty menu using the default style.
- *
- * @param handler Function which will receive menu actions.
- * @param actions Optionally set which actions to receive. Select,
- * Cancel, and End will always be received regardless
- * of whether they are set or not. They are also
- * the only default actions.
- * @return A new menu Handle.
- */
-native Menu CreateMenu(MenuHandler handler, MenuAction actions=MENU_ACTIONS_DEFAULT);
-
-/**
- * Displays a menu to a client.
- *
- * @param menu Menu Handle.
- * @param client Client index.
- * @param time Maximum time to leave menu on the screen.
- * @return True on success, false on failure.
- * @error Invalid Handle or client not in game.
- */
-native bool DisplayMenu(Handle menu, int client, int time);
-
-/**
- * Displays a menu to a client, starting from the given item.
- *
- * @param menu Menu Handle.
- * @param client Client index.
- * @param first_item First item to begin drawing from.
- * @param time Maximum time to leave menu on the screen.
- * @return True on success, false on failure.
- * @error Invalid Handle or client not in game.
- */
-native bool DisplayMenuAtItem(Handle menu, int client, int first_item, int time);
-
-/**
- * Appends a new item to the end of a menu.
- *
- * @param menu Menu Handle.
- * @param info Item information string.
- * @param display Default item display string.
- * @param style Drawing style flags. Anything other than DEFAULT or
- * DISABLED will be completely ignored when paginating.
- * @return True on success, false on failure.
- * @error Invalid Handle or item limit reached.
- */
-native bool AddMenuItem(Handle menu,
- const char[] info,
- const char[] display,
- int style=ITEMDRAW_DEFAULT);
-
-/**
- * Inserts an item into the menu before a certain position; the new item will
- * be at the given position and all next items pushed forward.
- *
- * @param menu Menu Handle.
- * @param position Position, starting from 0.
- * @param info Item information string.
- * @param display Default item display string.
- * @param style Drawing style flags. Anything other than DEFAULT or
- * DISABLED will be completely ignored when paginating.
- * @return True on success, false on failure.
- * @error Invalid Handle or menu position.
- */
-native bool InsertMenuItem(Handle menu,
- int position,
- const char[] info,
- const char[] display,
- int style=ITEMDRAW_DEFAULT);
-
-/**
- * Removes an item from the menu.
- *
- * @param menu Menu Handle.
- * @param position Position, starting from 0.
- * @return True on success, false on failure.
- * @error Invalid Handle or menu position.
- */
-native bool RemoveMenuItem(Handle menu, int position);
-
-/**
- * Removes all items from a menu.
- *
- * @param menu Menu Handle.
- * @error Invalid Handle or menu position.
- */
-native void RemoveAllMenuItems(Handle menu);
-
-/**
- * Retrieves information about a menu item.
- *
- * @param menu Menu Handle.
- * @param position Position, starting from 0.
- * @param infoBuf Info buffer.
- * @param infoBufLen Maximum length of the info buffer.
- * @param style By-reference variable to store drawing flags.
- * @param dispBuf Display buffer.
- * @param dispBufLen Maximum length of the display buffer.
- * @param client Client index. Must be specified if menu is per-client random shuffled, -1 to ignore.
- * @return True on success, false if position is invalid.
- * @error Invalid Handle.
- */
-native bool GetMenuItem(Handle menu,
- int position,
- char[] infoBuf,
- int infoBufLen,
- int &style=0,
- char[] dispBuf="",
- int dispBufLen=0,
- int client=0);
-
-/**
- * Generates a per-client random mapping for the current vote options.
- *
- * @param menu Menu Handle.
- * @param start Menu item index to start randomizing from.
- * @param stop Menu item index to stop randomizing at. -1 = infinite
- */
-native void MenuShufflePerClient(Handle menu, int start=0, int stop=-1);
-
-/*
- * Fills the client vote option mapping with user supplied values.
- *
- * @param menu Menu Handle.
- * @param client Client index.
- * @param array Integer array with mapping.
- * @param length Length of array.
- */
-native void MenuSetClientMapping(Handle menu, int client, int[] array, int length);
-
-/**
- * Returns the first item on the page of a currently selected menu.
- *
- * This is only valid inside a MenuAction_Select callback.
- *
- * @return First item number on the page the client was viewing
- * before selecting the item in the callback. This can
- * be used to re-display the menu from the original
- * position.
- * @error Not called from inside a MenuAction_Select callback.
- */
-native int GetMenuSelectionPosition();
-
-/**
- * Returns the number of items in a menu.
- *
- * @param menu Menu Handle.
- * @return Number of items in the menu.
- * @error Invalid Handle.
- */
-native int GetMenuItemCount(Handle menu);
-
-/**
- * Sets whether the menu should be paginated or not.
- *
- * If itemsPerPage is MENU_NO_PAGINATION, and the exit button flag is set,
- * then the exit button flag is removed. It can be re-applied if desired.
- *
- * @param menu Handle to the menu.
- * @param itemsPerPage Number of items per page, or MENU_NO_PAGINATION.
- * @return True on success, false if pagination is too high or
- * low.
- * @error Invalid Handle.
- */
-native bool SetMenuPagination(Handle menu, int itemsPerPage);
-
-/**
- * Returns a menu's pagination setting.
- *
- * @param menu Handle to the menu.
- * @return Pagination setting.
- * @error Invalid Handle.
- */
-native int GetMenuPagination(Handle menu);
-
-/**
- * Returns a menu's MenuStyle Handle. The Handle
- * is global and cannot be freed.
- *
- * @param menu Handle to the menu.
- * @return Handle to the menu's draw style.
- * @error Invalid Handle.
- */
-native Handle GetMenuStyle(Handle menu);
-
-/**
- * Sets the menu's default title/instruction message.
- *
- * @param menu Menu Handle.
- * @param fmt Message string format
- * @param ... Message string arguments.
- * @error Invalid Handle.
- */
-native void SetMenuTitle(Handle menu, const char[] fmt, any ...);
-
-/**
- * Returns the text of a menu's title.
- *
- * @param menu Menu Handle.
- * @param buffer Buffer to store title.
- * @param maxlength Maximum length of the buffer.
- * @return Number of bytes written.
- * @error Invalid Handle/
- */
-native int GetMenuTitle(Handle menu, char[] buffer, int maxlength);
-
-/**
- * Creates a raw MenuPanel based off the menu's style.
- * The Handle must be freed with CloseHandle().
- *
- * @param menu Menu Handle.
- * @return A new MenuPanel Handle.
- * @error Invalid Handle.
- */
-native Panel CreatePanelFromMenu(Handle menu);
-
-/**
- * Returns whether or not the menu has an exit button.
- * By default, menus have an exit button.
- *
- * @param menu Menu Handle.
- * @return True if the menu has an exit button; false otherwise.
- * @error Invalid Handle.
- */
-native bool GetMenuExitButton(Handle menu);
-
-/**
- * Sets whether or not the menu has an exit button. By default, paginated menus
- * have an exit button.
- *
- * If a menu's pagination is changed to MENU_NO_PAGINATION, and the pagination
- * was previously a different value, then the Exit button status is changed to
- * false. It must be explicitly re-enabled afterwards.
- *
- * If a non-paginated menu has an exit button, then at most 9 items will be
- * displayed.
- *
- * @param menu Menu Handle.
- * @param button True to enable the button, false to remove it.
- * @return True if allowed; false on failure.
- * @error Invalid Handle.
- */
-native bool SetMenuExitButton(Handle menu, bool button);
-
-/**
- * Returns whether or not the menu has an "exit back" button. By default,
- * menus do not have an exit back button.
- *
- * Exit Back buttons appear as "Back" on page 1 of paginated menus and have
- * functionality defined by the user in MenuEnd_ExitBack.
- *
- * @param menu Menu Handle.
- * @return True if the menu has an exit back button; false otherwise.
- * @error Invalid Handle.
- */
-native bool GetMenuExitBackButton(Handle menu);
-
-/**
- * Sets whether or not the menu has an "exit back" button. By default, menus
- * do not have an exit back button.
- *
- * Exit Back buttons appear as "Back" on page 1 of paginated menus and have
- * functionality defined by the user in MenuEnd_ExitBack.
- *
- * @param menu Menu Handle.
- * @param button True to enable the button, false to remove it.
- * @error Invalid Handle.
- */
-native void SetMenuExitBackButton(Handle menu, bool button);
-
-/**
- * Sets whether or not the menu has a "no vote" button in slot 1.
- * By default, menus do not have a no vote button.
- *
- * @param menu Menu Handle.
- * @param button True to enable the button, false to remove it.
- * @return True if allowed; false on failure.
- * @error Invalid Handle.
- */
-native bool SetMenuNoVoteButton(Handle menu, bool button);
-
-/**
- * Cancels a menu from displaying on all clients. While the
- * cancellation is in progress, this menu cannot be re-displayed
- * to any clients.
- *
- * The menu may still exist on the client's screen after this command.
- * This simply verifies that the menu is not being used anywhere.
- *
- * If any vote is in progress on a menu, it will be cancelled.
- *
- * @param menu Menu Handle.
- * @error Invalid Handle.
- */
-native void CancelMenu(Handle menu);
-
-/**
- * Retrieves a menu's option flags.
- *
- * @param menu Menu Handle.
- * @return A bitstring of MENUFLAG bits.
- * @error Invalid Handle.
- */
-native int GetMenuOptionFlags(Handle menu);
-
-/**
- * Sets a menu's option flags.
- *
- * If a certain bit is not supported, it will be stripped before being set.
- * See SetMenuExitButton() for information on Exit buttons.
- * See SetMenuExitBackButton() for information on Exit Back buttons.
- *
- * @param menu Menu Handle.
- * @param flags A new bitstring of MENUFLAG bits.
- * @error Invalid Handle.
- */
-native void SetMenuOptionFlags(Handle menu, int flags);
-
-/**
- * Returns whether a vote is in progress.
- *
- * @param menu Deprecated; no longer used.
- * @return True if a vote is in progress, false otherwise.
- */
-native bool IsVoteInProgress(Handle menu=INVALID_HANDLE);
-
-/**
- * Cancels the vote in progress.
- *
- * @error If no vote is in progress.
- */
-native void CancelVote();
-
-/**
- * Broadcasts a menu to a list of clients. The most selected item will be
- * returned through MenuAction_End. On a tie, a random item will be returned
- * from a list of the tied items.
- *
- * Note that MenuAction_VoteEnd and MenuAction_VoteStart are both
- * default callbacks and do not need to be enabled.
- *
- * @param menu Menu Handle.
- * @param clients Array of clients to broadcast to.
- * @param numClients Number of clients in the array.
- * @param time Maximum time to leave menu on the screen.
- * @param flags Optional voting flags.
- * @return True on success, false if this menu already has a vote session
- * in progress.
- * @error Invalid Handle, or a vote is already in progress.
- */
-native bool VoteMenu(Handle menu, int[] clients, int numClients, int time, int flags=0);
-
-/**
- * Sends a vote menu to all clients. See VoteMenu() for more information.
- *
- * @param menu Menu Handle.
- * @param time Maximum time to leave menu on the screen.
- * @param flags Optional voting flags.
- * @return True on success, false if this menu already has a vote session
- * in progress.
- * @error Invalid Handle.
- */
-stock bool VoteMenuToAll(Handle menu, int time, int flags=0)
-{
- int total;
- int[] players = new int[MaxClients];
-
- for (int i=1; i<=MaxClients; i++)
- {
- if (!IsClientInGame(i) || IsFakeClient(i))
- {
- continue;
- }
- players[total++] = i;
- }
-
- return VoteMenu(menu, players, total, time, flags);
-}
-
-/**
- * Callback for when a vote has ended and results are available.
- *
- * @param menu The menu being voted on.
- * @param num_votes Number of votes tallied in total.
- * @param num_clients Number of clients who could vote.
- * @param client_info Array of clients. Use VOTEINFO_CLIENT_ defines.
- * @param num_items Number of unique items that were selected.
- * @param item_info Array of items, sorted by count. Use VOTEINFO_ITEM
- * defines.
- */
-typeset VoteHandler
-{
- // old style
- function void(
- Menu menu,
- int num_votes,
- int num_clients,
- const int client_info[][2],
- int num_items,
- const int item_info[][2]
- );
-
- // new style
- function void(
- Menu menu,
- int num_votes,
- int num_clients,
- const int[][] client_info,
- int num_items,
- const int[][] item_info
- );
-};
-
-/**
- * Sets an advanced vote handling callback. If this callback is set,
- * MenuAction_VoteEnd will not be called.
- *
- * @param menu Menu Handle.
- * @param callback Callback function.
- * @error Invalid Handle or callback.
- */
-native void SetVoteResultCallback(Handle menu, VoteHandler callback);
-
-/**
- * Returns the number of seconds you should "wait" before displaying
- * a publicly invocable menu. This number is the time remaining until
- * (last_vote + sm_vote_delay).
- *
- * @return Number of seconds to wait, or 0 for none.
- */
-native int CheckVoteDelay();
-
-/**
- * Returns whether a client is in the pool of clients allowed
- * to participate in the current vote. This is determined by
- * the client list passed to VoteMenu().
- *
- * @param client Client index.
- * @return True if client is allowed to vote, false otherwise.
- * @error If no vote is in progress or client index is invalid.
- */
-native bool IsClientInVotePool(int client);
-
-/**
- * Redraws the current vote menu to a client in the voting pool.
- *
- * @param client Client index.
- * @param revotes True to allow revotes, false otherwise.
- * @return True on success, false if the client is in the vote pool
- * but cannot vote again.
- * @error No vote in progress, int client is not in the voting pool,
- * or client index is invalid.
- */
-native bool RedrawClientVoteMenu(int client, bool revotes=true);
-
-/**
- * Returns a style's global Handle.
- *
- * @param style Menu Style.
- * @return A Handle, or INVALID_HANDLE if not found or unusable.
- */
-native Handle GetMenuStyleHandle(MenuStyle style);
-
-/**
- * Creates a MenuPanel from a MenuStyle. Panels are used for drawing raw
- * menus without any extra helper functions. The Handle must be closed
- * with CloseHandle().
- *
- * @param hStyle MenuStyle Handle, or INVALID_HANDLE to use the default style.
- * @return A new MenuPanel Handle.
- * @error Invalid Handle other than INVALID_HANDLE.
- */
-native Panel CreatePanel(Handle hStyle=INVALID_HANDLE);
-
-/**
- * Creates a Menu from a MenuStyle. The Handle must be closed with
- * CloseHandle().
- *
- * @param hStyle MenuStyle Handle, or INVALID_HANDLE to use the default style.
- * @param handler Function which will receive menu actions.
- * @param actions Optionally set which actions to receive. Select,
- * Cancel, and End will always be received regardless
- * of whether they are set or not. They are also
- * the only default actions.
- * @return A new menu Handle.
- * @error Invalid Handle other than INVALID_HANDLE.
- */
-native Menu CreateMenuEx(Handle hStyle=INVALID_HANDLE, MenuHandler handler, MenuAction actions=MENU_ACTIONS_DEFAULT);
-
-/**
- * Returns whether a client is viewing a menu.
- *
- * @param client Client index.
- * @param hStyle MenuStyle Handle, or INVALID_HANDLE to use the default style.
- * @return A MenuSource value.
- * @error Invalid Handle other than null.
- */
-native MenuSource GetClientMenu(int client, Handle hStyle=null);
-
-/**
- * Cancels a menu on a client. This will only affect non-external menus.
- *
- * @param client Client index.
- * @param autoIgnore If true, no menus can be re-drawn on the client during
- * the cancellation process.
- * @param hStyle MenuStyle Handle, or INVALID_HANDLE to use the default style.
- * @return True if a menu was cancelled, false otherwise.
- */
-native bool CancelClientMenu(int client, bool autoIgnore=false, Handle hStyle=INVALID_HANDLE);
-
-/**
- * Returns a style's maximum items per page.
- *
- * @param hStyle MenuStyle Handle, or INVALID_HANDLE to use the default style.
- * @return Maximum items per page.
- * @error Invalid Handle other than INVALID_HANDLE.
- */
-native int GetMaxPageItems(Handle hStyle=INVALID_HANDLE);
-
-/**
- * Returns a MenuPanel's parent style.
- *
- * @param panel A MenuPanel Handle.
- * @return The MenuStyle Handle that created the panel.
- * @error Invalid Handle.
- */
-native Handle GetPanelStyle(Handle panel);
-
-/**
- * Sets the panel's title.
- *
- * @param panel A MenuPanel Handle.
- * @param text Text to set as the title.
- * @param onlyIfEmpty If true, the title will only be set if no title is set.
- * @error Invalid Handle.
- */
-native void SetPanelTitle(Handle panel, const char[] text, bool onlyIfEmpty=false);
-
-/**
- * Draws an item on a panel. If the item takes up a slot, the position
- * is returned.
- *
- * @param panel A MenuPanel Handle.
- * @param text Display text to use. If not a raw line,
- * the style may automatically add color markup.
- * No numbering or newlines are needed.
- * @param style ITEMDRAW style flags.
- * @return A slot position, or 0 if item was a rawline or could not be drawn.
- * @error Invalid Handle.
- */
-native int DrawPanelItem(Handle panel, const char[] text, int style=ITEMDRAW_DEFAULT);
-
-/**
- * Draws a raw line of text on a panel, without any markup other than a newline.
- *
- * @param panel A MenuPanel Handle, or INVALID_HANDLE if inside a
- * MenuAction_DisplayItem callback.
- * @param text Display text to use.
- * @return True on success, false if raw lines are not supported.
- * @error Invalid Handle.
- */
-native bool DrawPanelText(Handle panel, const char[] text);
-
-/**
- * Returns whether or not the given drawing flags are supported by
- * the menu style.
- *
- * @param panel A MenuPanel Handle.
- * @param style ITEMDRAW style flags.
- * @return True if item is drawable, false otherwise.
- * @error Invalid Handle.
- */
-native bool CanPanelDrawFlags(Handle panel, int style);
-
-/**
- * Sets the selectable key map of a panel. This is not supported by
- * all styles (only by Radio, as of this writing).
- *
- * @param panel A MenuPanel Handle.
- * @param keys An integer where each bit N allows key
- * N+1 to be selected. If no keys are selectable,
- * then key 0 (bit 9) is automatically set.
- * @return True if supported, false otherwise.
- */
-native bool SetPanelKeys(Handle panel, int keys);
-
-/**
- * Sends a panel to a client. Unlike full menus, the handler
- * function will only receive the following actions, both of
- * which will have INVALID_HANDLE for a menu, and the client
- * as param1.
- *
- * MenuAction_Select (param2 will be the key pressed)
- * MenuAction_Cancel (param2 will be the reason)
- *
- * Also, if the menu fails to display, no callbacks will be called.
- *
- * @param panel A MenuPanel Handle.
- * @param client A client to draw to.
- * @param handler The MenuHandler function to catch actions with.
- * @param time Time to hold the menu for.
- * @return True on success, false on failure.
- * @error Invalid Handle.
- */
-native bool SendPanelToClient(Handle panel, int client, MenuHandler handler, int time);
-
-/**
- * @brief Returns the amount of text the menu can still hold. If this is
- * limit is reached or overflowed, the text is silently truncated.
- *
- * Radio menus: Currently 511 characters (512 bytes).
- * Valve menus: Currently -1 (no meaning).
- *
- * @param panel A MenuPanel Handle.
- * @return Number of characters that the menu can still hold,
- * or -1 if there is no known limit.
- * @error Invalid Handle.
- */
-native int GetPanelTextRemaining(Handle panel);
-
-/**
- * @brief Returns the current key position.
- *
- * @param panel A MenuPanel Handle.
- * @return Current key position starting at 1.
- * @error Invalid Handle.
- */
-native int GetPanelCurrentKey(Handle panel);
-
-/**
- * @brief Sets the next key position. This cannot be used
- * to traverse backwards.
- *
- * @param panel A MenuPanel Handle.
- * @param key Key that is greater or equal to
- * GetPanelCurrentKey().
- * @return True on success, false otherwise.
- * @error Invalid Handle.
- */
-native bool SetPanelCurrentKey(Handle panel, int key);
-
-/**
- * @brief Redraws menu text from inside a MenuAction_DisplayItem callback.
- *
- * @param text Menu text to draw.
- * @return Item position; must be returned via the callback.
- */
-native int RedrawMenuItem(const char[] text);
-
-/**
- * This function is provided for legacy code only. Some older plugins may use
- * network messages instead of the panel API. This function wraps the panel
- * API for eased portability into the SourceMod menu system.
- *
- * This function is only usable with the Radio Menu style. You do not need to
- * split up your menu into multiple packets; SourceMod will break the string
- * up internally.
- *
- * @param client Client index.
- * @param str Full menu string as would be passed over the network.
- * @param time Time to hold the menu for.
- * @param keys Selectable key bitstring.
- * @param handler Optional handler function, with the same rules as
- * SendPanelToClient().
- * @return True on success, false on failure.
- * @error Invalid client index, or radio menus not supported.
- */
-native bool InternalShowMenu(int client, const char[] str, int time, int keys=-1, MenuHandler handler=INVALID_FUNCTION);
-
-/**
- * Retrieves voting information from MenuAction_VoteEnd.
- *
- * @param param2 Second parameter of MenuAction_VoteEnd.
- * @param winningVotes Number of votes received by the winning option.
- * @param totalVotes Number of total votes received.
- */
-stock void GetMenuVoteInfo(int param2, int &winningVotes, int &totalVotes)
-{
- winningVotes = param2 & 0xFFFF;
- totalVotes = param2 >> 16;
-}
-
-/**
- * Quick stock to determine whether voting is allowed. This doesn't let you
- * fine-tune a reason for not voting, so it's not recommended for lazily
- * telling clients that voting isn't allowed.
- *
- * @return True if voting is allowed, false if voting is in progress
- * or the cooldown is active.
- */
-stock bool IsNewVoteAllowed()
-{
- if (IsVoteInProgress() || CheckVoteDelay() != 0)
- {
- return false;
- }
-
- return true;
-}
diff --git a/addons/sourcemod/scripting/include/nextmap.inc b/addons/sourcemod/scripting/include/nextmap.inc
deleted file mode 100644
index 1039e255a..000000000
--- a/addons/sourcemod/scripting/include/nextmap.inc
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _nextmap_included_
- #endinput
-#endif
-#define _nextmap_included_
-
-/**
- * Sets SourceMod's internal nextmap.
- * Equivalent to changing sm_nextmap but with an added validity check.
- *
- * @param map Next map to set.
- * @return True if the nextmap was set, false if map was invalid.
- */
-native bool SetNextMap(const char[] map);
-
-/**
- * Returns SourceMod's internal nextmap.
- *
- * @param map Buffer to store the nextmap name.
- * @param maxlen Maximum length of the map buffer.
- * @return True if a Map was found and copied, false if no nextmap is set (map will be unchanged).
- */
-native bool GetNextMap(char[] map, int maxlen);
-
-/**
- * Changes the current map and records the reason for the change with maphistory
- *
- * @param map Map to change to.
- * @param reason Reason for change.
- */
-native void ForceChangeLevel(const char[] map, const char[] reason);
-
-/**
- * Gets the current number of maps in the map history
- *
- * @return Number of maps.
- */
-native int GetMapHistorySize();
-
-/**
- * Retrieves a map from the map history list.
- *
- * @param item Item number. Must be 0 or greater and less than GetMapHistorySize().
- * @param map Buffer to store the map name.
- * @param mapLen Length of map buffer.
- * @param reason Buffer to store the change reason.
- * @param reasonLen Length of the reason buffer.
- * @param startTime Time the map started.
- * @error Invalid item number.
- */
-native void GetMapHistory(int item, char[] map, int mapLen, char[] reason, int reasonLen, int &startTime);
diff --git a/addons/sourcemod/scripting/include/profiler.inc b/addons/sourcemod/scripting/include/profiler.inc
deleted file mode 100644
index df5b956d9..000000000
--- a/addons/sourcemod/scripting/include/profiler.inc
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2018 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _profiler_included
- #endinput
-#endif
-#define _profiler_included
-
-/**
- * ONLY AVAILABLE ON WINDOWS RIGHT NOW K.
- */
-
-methodmap Profiler < Handle
-{
- // Creates a new profile object. The Handle must be freed
- // using delete or CloseHandle().
- //
- // @return A new Profiler Handle.
- public native Profiler();
-
- // Starts a cycle for profiling.
- public native void Start();
-
- // Stops a cycle for profiling.
- //
- // @error Profiler was never started.
- public native void Stop();
-
- // Returns the amount of high-precision time in seconds
- // that passed during the profiler's last start/stop
- // cycle.
- //
- // @return Time elapsed in seconds.
- property float Time {
- public native get();
- }
-};
-
-/**
- * Creates a new profile object. The Handle must be freed
- * using delete or CloseHandle().
- *
- * @return Handle to the profiler object.
- */
-native Profiler CreateProfiler();
-
-/**
- * Starts profiling.
- *
- * @param prof Profiling object.
- * @error Invalid Handle.
- */
-native void StartProfiling(Handle prof);
-
-/**
- * Stops profiling.
- *
- * @param prof Profiling object.
- * @error Invalid Handle or profiling was never started.
- */
-native void StopProfiling(Handle prof);
-
-/**
- * Returns the amount of high-precision time in seconds
- * that passed during the profiler's last start/stop
- * cycle.
- *
- * @param prof Profiling object.
- * @return Time elapsed in seconds.
- * @error Invalid Handle.
- */
-native float GetProfilerTime(Handle prof);
-
-/**
- * Mark the start of a profiling event.
- *
- * @param group Budget group. This can be "all" for a default, or a short
- * description like "Timers" or "Events".
- * @param name A name to attribute to this profiling event.
- */
-native void EnterProfilingEvent(const char[] group, const char[] name);
-
-/**
- * Mark the end of the last profiling event. This must be called in the same
- * stack frame as StartProfilingEvent(). Not doing so, or throwing errors,
- * will make the resulting profile very wrong.
- */
-native void LeaveProfilingEvent();
-
-/**
- * Returns true if the global profiler is enabled; false otherwise. It is
- * not necessary to call this before Enter/LeaveProfilingEvent.
- */
-native bool IsProfilingActive();
diff --git a/addons/sourcemod/scripting/include/protobuf.inc b/addons/sourcemod/scripting/include/protobuf.inc
deleted file mode 100644
index 80c433781..000000000
--- a/addons/sourcemod/scripting/include/protobuf.inc
+++ /dev/null
@@ -1,602 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2013 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _protobuf_included
- #endinput
-#endif
-#define _protobuf_included
-
-#define PB_FIELD_NOT_REPEATED -1
-
-methodmap Protobuf < Handle
-{
- // Reads an int32, uint32, sint32, fixed32, sfixed32, or enum value from a protobuf message.
- //
- // @param field Field name.
- // @param index Index into repeated field.
- // @return Integer value read.
- // @error Non-existent field, or incorrect field type.
- public native int ReadInt(const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
- // Reads an int64, uint64, sint64, fixed64, sfixed64 from a protobuf message.
- //
- // @param field Field name.
- // @param value Array to represent the large integer (0=High bits, 1=Low bits).
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadInt64(const char[] field, int value[2], int index = PB_FIELD_NOT_REPEATED);
-
- // Reads a float or downcasted double from a protobuf message.
- //
- // @param field Field name.
- // @param index Index into repeated field.
- // @return Float value read.
- // @error Non-existent field, or incorrect field type.
- public native float ReadFloat(const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
- // Reads a bool from a protobuf message.
- //
- // @param field Field name.
- // @param index Index into repeated field.
- // @return Boolean value read.
- // @error Non-existent field, or incorrect field type.
- public native bool ReadBool(const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
- // Reads a string from a protobuf message.
- //
- // @param field Field name.
- // @param buffer Destination string buffer.
- // @param maxlength Maximum length of output string buffer.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadString(const char[] field, char[] buffer, int maxlength, int index = PB_FIELD_NOT_REPEATED);
-
- // Reads an RGBA color value from a protobuf message.
- //
- // @param field Field name.
- // @param buffer Destination color buffer.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadColor(const char[] field, int buffer[4], int index = PB_FIELD_NOT_REPEATED);
-
- // Reads an XYZ angle value from a protobuf message.
- //
- // @param field Field name.
- // @param buffer Destination angle buffer.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadAngle(const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
-
- // Reads an XYZ vector value from a protobuf message.
- //
- // @param pb protobuf handle.
- // @param field Field name.
- // @param buffer Destination vector buffer.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadVector(const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
-
- // Reads an XY vector value from a protobuf message.
- //
- // @param field Field name.
- // @param buffer Destination vector buffer.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void ReadVector2D(const char[] field, float buffer[2], int index = PB_FIELD_NOT_REPEATED);
-
- // Gets the number of elements in a repeated field of a protobuf message.
- //
- // @param field Field name.
- // @return Number of elements in the field.
- // @error Non-existent field, or non-repeated field.
- public native int GetRepeatedFieldCount(const char[] field);
-
- // Returns whether or not the named, non-repeated field has a value set.
- //
- // @param field Field name.
- // @return True if value has been set, else false.
- // @error Non-existent field, or repeated field.
- public native bool HasField(const char[] field);
-
- // Sets an int32, uint32, sint32, fixed32, sfixed32, or enum value on a protobuf message.
- //
- // @param field Field name.
- // @param value Integer value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetInt(const char[] field, int value, int index = PB_FIELD_NOT_REPEATED);
-
- // Sets an int64, uint64, sint64, fixed64, sfixed64 on a protobuf message.
- //
- // @param field Field name.
- // @param value Large integer value to set (0=High bits, 1=Low bits).
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetInt64(const char[] field, int value[2], int index = PB_FIELD_NOT_REPEATED);
-
- // Sets a float or double on a protobuf message.
- //
- // @param field Field name.
- // @param value Float value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetFloat(const char[] field, float value, int index = PB_FIELD_NOT_REPEATED);
-
- // Sets a bool on a protobuf message.
- //
- // @param field Field name.
- // @param value Boolean value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetBool(const char[] field, bool value, int index = PB_FIELD_NOT_REPEATED);
-
- // Sets a string on a protobuf message.
- //
- // @param field Field name.
- // @param value String value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetString(const char[] field, const char[] value, int index = PB_FIELD_NOT_REPEATED);
-
- // Sets an RGBA color on a protobuf message.
- //
- // @param field Field name.
- // @param color Color value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetColor(const char[] field, const int color[4], int index = PB_FIELD_NOT_REPEATED);
-
- // Sets an XYZ angle on a protobuf message.
- //
- // @param field Field name.
- // @param angle Angle value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetAngle(const char[] field, const float angle[3], int index = PB_FIELD_NOT_REPEATED);
-
- // Sets an XYZ vector on a protobuf message.
- //
- // @param field Field name.
- // @param vec Vector value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetVector(const char[] field, const float vec[3], int index = PB_FIELD_NOT_REPEATED);
-
- // Sets an XY vector on a protobuf message.
- //
- // @param field Field name.
- // @param vec Vector value to set.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void SetVector2D(const char[] field, const float vec[2], int index = PB_FIELD_NOT_REPEATED);
-
- // Add an int32, uint32, sint32, fixed32, sfixed32, or enum value to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param value Integer value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddInt(const char[] field, int value);
-
- // Add an int64, uint64, sint64, fixed64, sfixed64 to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param value Large integer value to add (0=High bits, 1=Low bits).
- // @error Non-existent field, or incorrect field type.
- public native void AddInt64(const char[] field, int value[2]);
-
- // Add a float or double to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param value Float value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddFloat(const char[] field, float value);
-
- // Add a bool to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param value Boolean value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddBool(const char[] field, bool value);
-
- // Add a string to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param value String value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddString(const char[] field, const char[] value);
-
- // Add an RGBA color to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param color Color value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddColor(const char[] field, const int color[4]);
-
- // Add an XYZ angle to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param angle Angle value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddAngle(const char[] field, const float angle[3]);
-
- // Add an XYZ vector to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param vec Vector value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddVector(const char[] field, const float vec[3]);
-
- // Add an XY vector to a protobuf message repeated field.
- //
- // @param field Field name.
- // @param vec Vector value to add.
- // @error Non-existent field, or incorrect field type.
- public native void AddVector2D(const char[] field, const float vec[2]);
-
- // Removes a value by index from a protobuf message repeated field.
- //
- // @param field Field name.
- // @param index Index into repeated field.
- // @error Non-existent field, or incorrect field type.
- public native void RemoveRepeatedFieldValue(const char[] field, int index);
-
- // Retrieve a handle to an embedded protobuf message in a protobuf message.
- //
- // @param field Field name.
- // @return Protobuf handle to embedded message.
- // @error Non-existent field, or incorrect field type.
- public native Protobuf ReadMessage(const char[] field);
-
- // Retrieve a handle to an embedded protobuf message in a protobuf message
- // repeated field.
- //
- // @param field Field name.
- // @param index Index in the repeated field.
- // @return Protobuf handle to embedded message.
- // @error Non-existent field, or incorrect field type.
- public native Protobuf ReadRepeatedMessage(const char[] field, int index);
-
- // Adds an embedded protobuf message to a protobuf message repeated field.
- //
- // @param field Field name.
- // @return Protobuf handle to added, embedded message.
- // @error Non-existent field, or incorrect field type.
- public native Protobuf AddMessage(const char[] field);
-};
-
-/**
- * Reads an int32, uint32, sint32, fixed32, sfixed32, or enum value from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param index Index into repeated field.
- * @return Integer value read.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native int PbReadInt(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads a float or downcasted double from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param index Index into repeated field.
- * @return Float value read.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native float PbReadFloat(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads a bool from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param index Index into repeated field.
- * @return Boolean value read.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native bool PbReadBool(Handle pb, const char[] field, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads a string from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbReadString(Handle pb, const char[] field, char[] buffer, int maxlength, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads an RGBA color value from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param buffer Destination color buffer.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbReadColor(Handle pb, const char[] field, int buffer[4], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads an XYZ angle value from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param buffer Destination angle buffer.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbReadAngle(Handle pb, const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads an XYZ vector value from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param buffer Destination vector buffer.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbReadVector(Handle pb, const char[] field, float buffer[3], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Reads an XY vector value from a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param buffer Destination vector buffer.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbReadVector2D(Handle pb, const char[] field, float buffer[2], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Gets the number of elements in a repeated field of a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @return Number of elements in the field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native int PbGetRepeatedFieldCount(Handle pb, const char[] field);
-
-/**
- * Sets an int32, uint32, sint32, fixed32, sfixed32, or enum value on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Integer value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetInt(Handle pb, const char[] field, int value, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets a float or double on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Float value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetFloat(Handle pb, const char[] field, float value, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets a bool on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Boolean value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetBool(Handle pb, const char[] field, bool value, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets a string on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value String value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetString(Handle pb, const char[] field, const char[] value, int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets an RGBA color on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param color Color value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetColor(Handle pb, const char[] field, const int color[4], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets an XYZ angle on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param angle Angle value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetAngle(Handle pb, const char[] field, const float angle[3], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets an XYZ vector on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param vec Vector value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetVector(Handle pb, const char[] field, const float vec[3], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Sets an XY vector on a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param vec Vector value to set.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbSetVector2D(Handle pb, const char[] field, const float vec[2], int index = PB_FIELD_NOT_REPEATED);
-
-/**
- * Add an int32, uint32, sint32, fixed32, sfixed32, or enum value to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Integer value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddInt(Handle pb, const char[] field, int value);
-
-/**
- * Add a float or double to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Float value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddFloat(Handle pb, const char[] field, float value);
-
-/**
- * Add a bool to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value Boolean value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddBool(Handle pb, const char[] field, bool value);
-
-/**
- * Add a string to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param value String value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddString(Handle pb, const char[] field, const char[] value);
-
-/**
- * Add an RGBA color to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param color Color value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddColor(Handle pb, const char[] field, const int color[4]);
-
-/**
- * Add an XYZ angle to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param angle Angle value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddAngle(Handle pb, const char[] field, const float angle[3]);
-
-/**
- * Add an XYZ vector to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param vec Vector value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddVector(Handle pb, const char[] field, const float vec[3]);
-
-/**
- * Add an XY vector to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param vec Vector value to add.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbAddVector2D(Handle pb, const char[] field, const float vec[2]);
-
-/**
- * Removes a value by index from a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param index Index into repeated field.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native void PbRemoveRepeatedFieldValue(Handle pb, const char[] field, int index);
-
-/**
- * Retrieve a handle to an embedded protobuf message in a protobuf message.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @return protobuf handle to embedded message.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native Handle PbReadMessage(Handle pb, const char[] field);
-
-/**
- * Retrieve a handle to an embedded protobuf message in a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @param index Index in the repeated field.
- * @return protobuf handle to embedded message.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native Handle PbReadRepeatedMessage(Handle pb, const char[] field, int index);
-
-/**
- * Adds an embedded protobuf message to a protobuf message repeated field.
- *
- * @param pb protobuf handle.
- * @param field Field name.
- * @return protobuf handle to added, embedded message.
- * @error Invalid or incorrect Handle, non-existent field, or incorrect field type.
- */
-native Handle PbAddMessage(Handle pb, const char[] field);
diff --git a/addons/sourcemod/scripting/include/sdkhooks.inc b/addons/sourcemod/scripting/include/sdkhooks.inc
deleted file mode 100644
index 1c80cf3bf..000000000
--- a/addons/sourcemod/scripting/include/sdkhooks.inc
+++ /dev/null
@@ -1,457 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2009-2013 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- */
-
-#if defined _sdkhooks_included
- #endinput
-#endif
-#define _sdkhooks_included
-
-// this is obviously _not_ a robust check, but it will solve most conflict and is clean
-#if !defined DMG_GENERIC
-#define DMG_GENERIC 0 /**< generic damage was done */
-#define DMG_CRUSH (1 << 0) /**< crushed by falling or moving object.
- NOTE: It's assumed crush damage is occurring as a result of physics collision,
- so no extra physics force is generated by crush damage.
- DON'T use DMG_CRUSH when damaging entities unless it's the result of a physics
- collision. You probably want DMG_CLUB instead. */
-#define DMG_BULLET (1 << 1) /**< shot */
-#define DMG_SLASH (1 << 2) /**< cut, clawed, stabbed */
-#define DMG_BURN (1 << 3) /**< heat burned */
-#define DMG_VEHICLE (1 << 4) /**< hit by a vehicle */
-#define DMG_FALL (1 << 5) /**< fell too far */
-#define DMG_BLAST (1 << 6) /**< explosive blast damage */
-#define DMG_CLUB (1 << 7) /**< crowbar, punch, headbutt */
-#define DMG_SHOCK (1 << 8) /**< electric shock */
-#define DMG_SONIC (1 << 9) /**< sound pulse shockwave */
-#define DMG_ENERGYBEAM (1 << 10) /**< laser or other high energy beam */
-#define DMG_PREVENT_PHYSICS_FORCE (1 << 11) /**< Prevent a physics force */
-#define DMG_NEVERGIB (1 << 12) /**< with this bit OR'd in, no damage type will be able to gib victims upon death */
-#define DMG_ALWAYSGIB (1 << 13) /**< with this bit OR'd in, any damage type can be made to gib victims upon death. */
-#define DMG_DROWN (1 << 14) /**< Drowning */
-#define DMG_PARALYZE (1 << 15) /**< slows affected creature down */
-#define DMG_NERVEGAS (1 << 16) /**< nerve toxins, very bad */
-#define DMG_POISON (1 << 17) /**< blood poisoning - heals over time like drowning damage */
-#define DMG_RADIATION (1 << 18) /**< radiation exposure */
-#define DMG_DROWNRECOVER (1 << 19) /**< drowning recovery */
-#define DMG_ACID (1 << 20) /**< toxic chemicals or acid burns */
-#define DMG_SLOWBURN (1 << 21) /**< in an oven */
-#define DMG_REMOVENORAGDOLL (1 << 22) /**< with this bit OR'd in, no ragdoll will be created, and the target will be quietly removed.
- use this to kill an entity that you've already got a server-side ragdoll for */
-#define DMG_PHYSGUN (1 << 23) /**< Hit by manipulator. Usually doesn't do any damage. */
-#define DMG_PLASMA (1 << 24) /**< Shot by Cremator */
-#define DMG_AIRBOAT (1 << 25) /**< Hit by the airboat's gun */
-#define DMG_DISSOLVE (1 << 26) /**< Dissolving! */
-#define DMG_BLAST_SURFACE (1 << 27) /**< A blast on the surface of water that cannot harm things underwater */
-#define DMG_DIRECT (1 << 28)
-#define DMG_BUCKSHOT (1 << 29) /**< not quite a bullet. Little, rounder, different. */
-#endif
-
-#if !defined DMG_CRIT
- #define DMG_CRIT DMG_ACID /**< TF2 crits and minicrits */
-#endif
-
-#if !defined DMG_RADIUS_MAX
- #define DMG_RADIUS_MAX DMG_ENERGYBEAM /**< No damage falloff */
-#endif
-
-#if !defined DMG_NOCLOSEDISTANCEMOD
- #define DMG_NOCLOSEDISTANCEMOD DMG_POISON /**< Don't do damage falloff too close */
-#endif
-
-#if !defined DMG_HALF_FALLOFF
- #define DMG_HALF_FALLOFF DMG_RADIATION /**< 50% damage falloff */
-#endif
-
-#if !defined DMG_USEDISTANCEMOD
- #define DMG_USEDISTANCEMOD DMG_SLOWBURN /**< Do damage falloff */
-#endif
-
-#if !defined DMG_IGNITE
- #define DMG_IGNITE DMG_PLASMA /**< Ignite victim */
-#endif
-
-#if !defined DMG_USE_HITLOCATIONS
- #define DMG_USE_HITLOCATIONS DMG_AIRBOAT /**< Do hit location damage (Like the sniperrifle and ambassador) */
-#endif
-
-enum SDKHookType
-{
- SDKHook_EndTouch,
- SDKHook_FireBulletsPost,
- SDKHook_OnTakeDamage,
- SDKHook_OnTakeDamagePost,
- SDKHook_PreThink,
- SDKHook_PostThink,
- SDKHook_SetTransmit,
- SDKHook_Spawn,
- SDKHook_StartTouch,
- SDKHook_Think,
- SDKHook_Touch,
- SDKHook_TraceAttack,
- SDKHook_TraceAttackPost,
- SDKHook_WeaponCanSwitchTo,
- SDKHook_WeaponCanUse,
- SDKHook_WeaponDrop,
- SDKHook_WeaponEquip,
- SDKHook_WeaponSwitch,
- SDKHook_ShouldCollide,
- SDKHook_PreThinkPost,
- SDKHook_PostThinkPost,
- SDKHook_ThinkPost,
- SDKHook_EndTouchPost,
- SDKHook_GroundEntChangedPost,
- SDKHook_SpawnPost,
- SDKHook_StartTouchPost,
- SDKHook_TouchPost,
- SDKHook_VPhysicsUpdate,
- SDKHook_VPhysicsUpdatePost,
- SDKHook_WeaponCanSwitchToPost,
- SDKHook_WeaponCanUsePost,
- SDKHook_WeaponDropPost,
- SDKHook_WeaponEquipPost,
- SDKHook_WeaponSwitchPost,
- SDKHook_Use,
- SDKHook_UsePost,
- SDKHook_Reload,
- SDKHook_ReloadPost,
- SDKHook_GetMaxHealth, /**< ep2v and later */
- SDKHook_Blocked,
- SDKHook_BlockedPost,
- SDKHook_OnTakeDamageAlive,
- SDKHook_OnTakeDamageAlivePost,
- SDKHook_CanBeAutobalanced
-};
-
-/*
- Alphabetized for easy readability
-
- SDKHook_Blocked,
- SDKHook_BlockedPost,
-
- SDKHook_CanBeAutobalanced,
-
- SDKHook_EndTouch,
- SDKHook_EndTouchPost,
-
- SDKHook_FireBulletsPost,
-
- SDKHook_GetMaxHealth, (ep2v and later)
-
- SDKHook_GroundEntChangedPost,
-
- SDKHook_OnTakeDamage,
- SDKHook_OnTakeDamagePost,
-
- SDKHook_OnTakeDamageAlive,
- SDKHook_OnTakeDamageAlivePost,
-
- SDKHook_PreThink,
- SDKHook_PreThinkPost,
-
- SDKHook_PostThink,
- SDKHook_PostThinkPost,
-
- SDKHook_Reload,
- SDKHook_ReloadPost,
-
- SDKHook_SetTransmit,
-
- SDKHook_ShouldCollide,
-
- SDKHook_Spawn,
- SDKHook_SpawnPost,
-
- SDKHook_StartTouch,
- SDKHook_StartTouchPost,
-
- SDKHook_Think,
- SDKHook_ThinkPost,
-
- SDKHook_Touch,
- SDKHook_TouchPost,
-
- SDKHook_TraceAttack,
- SDKHook_TraceAttackPost,
-
- SDKHook_Use,
- SDKHook_UsePost,
-
- SDKHook_VPhysicsUpdate,
- SDKHook_VPhysicsUpdatePost,
-
- SDKHook_WeaponCanSwitchTo,
- SDKHook_WeaponCanSwitchToPost,
-
- SDKHook_WeaponCanUse,
- SDKHook_WeaponCanUsePost,
-
- SDKHook_WeaponDrop,
- SDKHook_WeaponDropPost,
-
- SDKHook_WeaponEquip,
- SDKHook_WeaponEquipPost,
-
- SDKHook_WeaponSwitch,
- SDKHook_WeaponSwitchPost
-*/
-
-enum UseType
-{
- Use_Off,
- Use_On,
- Use_Set,
- Use_Toggle
-};
-
-typeset SDKHookCB
-{
- // PreThink/Post
- // PostThink/Post
- function void (int client);
-
- // Spawn
- // Think
- function Action (int entity);
-
- // GroundEntChanged
- // SpawnPost
- // ThinkPost
- // VPhysicsUpdate/Post
- function void (int entity);
-
- // EndTouch
- // StartTouch
- // Touch
- // Blocked
- function Action (int entity, int other);
-
- // EndTouchPost
- // StartTouchPost
- // TouchPost
- function void (int entity, int other);
-
- // SetTransmit
- function Action (int entity, int client);
-
- // WeaponCanSwitchTo
- // WeaponCanUse
- // WeaponDrop
- // WeaponEquip
- // WeaponSwitch
- function Action (int client, int weapon);
-
- // WeaponCanSwitchToPost
- // WeaponCanUsePost
- // WeaponDropPost
- // WeaponEquipPost
- // WeaponSwitchPost
- function void (int client, int weapon);
-
- // GetMaxHealth (ep2v and later)
- function Action (int entity, int &maxhealth);
-
- // OnTakeDamage
- // OnTakeDamageAlive
- // SDKHooks 1.0+
- function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype);
-
- // OnTakeDamage
- // OnTakeDamageAlive
- // Note: The weapon parameter is not used by all games and damage sources.
- // Note: Force application is dependent on game and damage type(s)
- // SDKHooks 2.0+
- function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon, float damageForce[3], float damagePosition[3]);
-
- // OnTakeDamage
- // OnTakeDamageAlive
- // Note: The weapon parameter is not used by all games and damage sources.
- // Note: Force application is dependent on game and damage type(s)
- // SDKHooks 2.1+ (can check for support at runtime using GetFeatureStatus on SDKHook_DmgCustomInOTD capability.
- // DON'T attempt to access 'damagecustom' var if feature status != available
- function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon,
- float damageForce[3], float damagePosition[3], int damagecustom);
-
- // OnTakeDamagePost
- // OnTakeDamageAlivePost
- function void (int victim, int attacker, int inflictor, float damage, int damagetype);
-
- // OnTakeDamagePost
- // OnTakeDamageAlivePost
- function void (int victim, int attacker, int inflictor, float damage, int damagetype, int weapon, const float damageForce[3], const float damagePosition[3]);
-
- // OnTakeDamagePost
- // OnTakeDamageAlivePost
- function void (int victim, int attacker, int inflictor, float damage, int damagetype, int weapon,
- const float damageForce[3], const float damagePosition[3], int damagecustom);
-
- // FireBulletsPost
- function void (int client, int shots, const char[] weaponname);
-
- // TraceAttack
- function Action (int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &ammotype, int hitbox, int hitgroup);
-
- // TraceAttackPost
- function void (int victim, int attacker, int inflictor, float damage, int damagetype, int ammotype, int hitbox, int hitgroup);
-
- // ShouldCollide
- function bool (int entity, int collisiongroup, int contentsmask, bool originalResult);
-
- // Use
- function Action (int entity, int activator, int caller, UseType type, float value);
-
- // UsePost
- function void (int entity, int activator, int caller, UseType type, float value);
-
- // Reload
- function Action (int weapon);
-
- // Reload post
- function void (int weapon, bool bSuccessful);
-
- // CanBeAutobalanced
- function bool (int client, bool origRet);
-};
-
-
-/**
- * When an entity is created
- *
- * @param entity Entity index
- * @param classname Class name
- */
-forward void OnEntityCreated(int entity, const char[] classname);
-
-/**
- * When an entity is destroyed
- *
- * @param entity Entity index or edict reference.
- */
-forward void OnEntityDestroyed(int entity);
-
-/**
- * When the game description is retrieved
- *
- * @note Not supported on ep2v.
- *
- * @param gameDesc Game description
- * @return Plugin_Changed if gameDesc has been edited, else no change.
- */
-forward Action OnGetGameDescription(char gameDesc[64]);
-
-/**
- * When the level is initialized
- *
- * @param mapName Name of the map
- * @param mapEntities Unused, always empty
- * @return Unused, return value is ignored
- */
-#pragma deprecated Use OnMapInit() instead
-forward Action OnLevelInit(const char[] mapName, char mapEntities[2097152]);
-
-/**
- * Hooks an entity
- *
- * @param entity Entity index
- * @param type Type of function to hook
- * @param callback Function to call when hook is called
- */
-native void SDKHook(int entity, SDKHookType type, SDKHookCB callback);
-
-/**
- * Hooks an entity
- *
- * @param entity Entity index
- * @param type Type of function to hook
- * @param callback Function to call when hook is called
- * @return Hook Successful
- */
-native bool SDKHookEx(int entity, SDKHookType type, SDKHookCB callback);
-
-/**
- * Unhooks an entity
- *
- * @param entity Entity index
- * @param type Type of function to unhook
- * @param callback Callback function to unhook
- */
-native void SDKUnhook(int entity, SDKHookType type, SDKHookCB callback);
-
-/**
- * Applies damage to an entity
- *
- * @note Force application is dependent on game and damage type(s)
- *
- * @param entity Entity index taking damage
- * @param inflictor Inflictor entity index
- * @param attacker Attacker entity index
- * @param damage Amount of damage
- * @param damageType Bitfield of damage types
- * @param weapon Weapon index (orangebox and later) or -1 for unspecified
- * @param damageForce Velocity of damage force
- * @param damagePosition Origin of damage
- * @param bypassHooks If true, bypass SDK hooks on OnTakeDamage
- * @error Invalid entity, attacker, inflictor, or weapon entity.
- */
-native void SDKHooks_TakeDamage(int entity, int inflictor, int attacker,
- float damage, int damageType=DMG_GENERIC, int weapon=-1,
- const float damageForce[3]=NULL_VECTOR, const float damagePosition[3]=NULL_VECTOR,
- bool bypassHooks = true);
-
-/**
- * Forces a client to drop the specified weapon
- *
- * @param client Client index.
- * @param weapon Weapon entity index.
- * @param vecTarget Location to toss weapon to, or NULL_VECTOR for default.
- * @param vecVelocity Velocity at which to toss weapon, or NULL_VECTOR for default.
- * @param bypassHooks If true, bypass SDK hooks on Weapon Drop
- * @error Invalid client or weapon entity, weapon not owned by client.
- */
-native void SDKHooks_DropWeapon(int client, int weapon, const float vecTarget[3]=NULL_VECTOR,
- const float vecVelocity[3]=NULL_VECTOR, bool bypassHooks = true);
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_sdkhooks =
-{
- name = "SDKHooks",
- file = "sdkhooks.ext",
-#if defined AUTOLOAD_EXTENSIONS
- autoload = 1,
-#else
- autoload = 0,
-#endif
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
diff --git a/addons/sourcemod/scripting/include/sdktools.inc b/addons/sourcemod/scripting/include/sdktools.inc
deleted file mode 100644
index 50fcdd3a9..000000000
--- a/addons/sourcemod/scripting/include/sdktools.inc
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2017 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_included
- #endinput
-#endif
-#define _sdktools_included
-
-#include
-#include
-#include
-#if !defined SDKTOOLS_DISABLE_SOUNDAPI
-#include
-#endif
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-enum SDKCallType
-{
- SDKCall_Static, /**< Static call */
- SDKCall_Entity, /**< CBaseEntity call */
- SDKCall_Player, /**< CBasePlayer call */
- SDKCall_GameRules, /**< CGameRules call */
- SDKCall_EntityList, /**< CGlobalEntityList call */
- SDKCall_Raw, /**< |this| pointer with an arbitrary address */
- SDKCall_Server /**< CBaseServer call */
-};
-
-enum SDKLibrary
-{
- SDKLibrary_Server, /**< server.dll/server_i486.so */
- SDKLibrary_Engine /**< engine.dll/engine_*.so */
-};
-
-enum SDKFuncConfSource
-{
- SDKConf_Virtual = 0, /**< Read a virtual index from the Offsets section */
- SDKConf_Signature = 1, /**< Read a signature from the Signatures section */
- SDKConf_Address = 2 /**< Read an address from the Addresses section */
-};
-
-enum SDKType
-{
- SDKType_CBaseEntity, /**< CBaseEntity (always as pointer) */
- SDKType_CBasePlayer, /**< CBasePlayer (always as pointer) */
- SDKType_Vector, /**< Vector (pointer, byval, or byref) */
- SDKType_QAngle, /**< QAngles (pointer, byval, or byref) */
- SDKType_PlainOldData, /**< Integer/generic data <=32bit (any) */
- SDKType_Float, /**< Float (any) */
- SDKType_Edict, /**< edict_t (always as pointer) */
- SDKType_String, /**< NULL-terminated string (always as pointer) */
- SDKType_Bool /**< Boolean (any) */
-};
-
-enum SDKPassMethod
-{
- SDKPass_Pointer, /**< Pass as a pointer */
- SDKPass_Plain, /**< Pass as plain data */
- SDKPass_ByValue, /**< Pass an object by value */
- SDKPass_ByRef /**< Pass an object by reference */
-};
-
-#define VDECODE_FLAG_ALLOWNULL (1<<0) /**< Allow NULL for pointers */
-#define VDECODE_FLAG_ALLOWNOTINGAME (1<<1) /**< Allow players not in game */
-#define VDECODE_FLAG_ALLOWWORLD (1<<2) /**< Allow World entity */
-#define VDECODE_FLAG_BYREF (1<<3) /**< Floats/ints by reference */
-
-#define VENCODE_FLAG_COPYBACK (1<<0) /**< Copy back data once done */
-
-/**
- * Starts the preparation of an SDK call.
- *
- * @param type Type of function call this will be.
- */
-native void StartPrepSDKCall(SDKCallType type);
-
-/**
- * Sets the virtual index of the SDK call if it is virtual.
- *
- * @param vtblidx Virtual table index.
- */
-native void PrepSDKCall_SetVirtual(int vtblidx);
-
-/**
- * Finds an address in a library and sets it as the address to use for the SDK call.
- *
- * @param lib Library to use.
- * @param signature Binary data to search for in the library. If it starts with '@',
- * the bytes parameter is ignored and the signature is interpreted
- * as a symbol lookup in the library.
- * @param bytes Number of bytes in the binary search string.
- * @return True on success, false if nothing was found.
- */
-native bool PrepSDKCall_SetSignature(SDKLibrary lib, const char[] signature, int bytes);
-
-/**
- * Uses the given function address for the SDK call.
- *
- * @param addr Address of function to use.
- * @return True on success, false on failure.
- */
-native bool PrepSDKCall_SetAddress(Address addr);
-
-/**
- * Finds an address or virtual function index in a GameConfig file and sets it as
- * the calling information for the SDK call.
- *
- * @param gameconf GameConfig Handle, or INVALID_HANDLE to use sdktools.games.txt.
- * @param source Whether to look in Offsets or Signatures.
- * @param name Name of the property to find.
- * @return True on success, false if nothing was found.
- * @error Invalid game config Handle.
- */
-native bool PrepSDKCall_SetFromConf(Handle gameconf, SDKFuncConfSource source, const char[] name);
-
-/**
- * Sets the return information of an SDK call. Do not call this if there is no return data.
- * This must be called if there is a return value (i.e. it is not necessarily safe to ignore
- * the data).
- *
- * @param type Data type to convert to/from.
- * @param pass How the data is passed in C++.
- * @param decflags Flags on decoding from the plugin to C++.
- * @param encflags Flags on encoding from C++ to the plugin.
- */
-native void PrepSDKCall_SetReturnInfo(SDKType type, SDKPassMethod pass, int decflags=0, int encflags=0);
-
-/**
- * Adds a parameter to the calling convention. This should be called in normal ascending order.
- *
- * @param type Data type to convert to/from.
- * @param pass How the data is passed in C++.
- * @param decflags Flags on decoding from the plugin to C++.
- * @param encflags Flags on encoding from C++ to the plugin.
- * @error Parameter limit for SDK calls reached.
- */
-native void PrepSDKCall_AddParameter(SDKType type, SDKPassMethod pass, int decflags=0, int encflags=0);
-
-/**
- * Finalizes an SDK call preparation and returns the resultant Handle.
- *
- * @return A new SDKCall Handle on success, or INVALID_HANDLE on failure.
- */
-native Handle EndPrepSDKCall();
-
-/**
- * Calls an SDK function with the given parameters.
- *
- * If the call type is Entity or Player, the index MUST ALWAYS be the FIRST parameter passed.
- * If the call type is GameRules, then nothing special needs to be passed.
- * If the return value is a Vector or QAngles, the SECOND parameter must be a Float[3].
- * If the return value is a string, the THIRD parameter must be a String buffer, and the
- * FOURTH parameter must be the maximum length.
- * All parameters must be passed after the above is followed. Failure to follow these
- * rules will result in crashes or wildly unexpected behavior!
- *
- * If the return value is a float or integer, the return value will be this value.
- * If the return value is a CBaseEntity, CBasePlayer, or edict, the return value will
- * always be the entity index, or -1 for NULL.
- *
- * @param call SDKCall Handle.
- * @param ... Call Parameters.
- * @return Simple return value, if any.
- * @error Invalid Handle or internal decoding error.
- */
-native any SDKCall(Handle call, any ...);
-
-/**
- * Returns the entity index of the player resource/manager entity.
- *
- * @return Index of resource entity or -1 if not found.
- */
-native int GetPlayerResourceEntity();
-
-#include
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_sdktools =
-{
- name = "SDKTools",
- file = "sdktools.ext",
-#if defined AUTOLOAD_EXTENSIONS
- autoload = 1,
-#else
- autoload = 0,
-#endif
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
diff --git a/addons/sourcemod/scripting/include/sdktools_client.inc b/addons/sourcemod/scripting/include/sdktools_client.inc
deleted file mode 100644
index 885f563a8..000000000
--- a/addons/sourcemod/scripting/include/sdktools_client.inc
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_client_included
- #endinput
-#endif
-#define _sdktools_client_included
-
-/**
- * Sets the client to an inactive state waiting for a new map
- *
- * @param client The client index
- * @error Invalid client index.
- */
-native void InactivateClient(int client);
-
-/**
- * Reconnect a client without dropping the netchannel
- *
- * @param client The client index
- * @error Invalid client index.
- */
-native void ReconnectClient(int client);
diff --git a/addons/sourcemod/scripting/include/sdktools_engine.inc b/addons/sourcemod/scripting/include/sdktools_engine.inc
deleted file mode 100644
index 95da43a8c..000000000
--- a/addons/sourcemod/scripting/include/sdktools_engine.inc
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_engine_included
- #endinput
-#endif
-#define _sdktools_engine_included
-
-#define MAX_LIGHTSTYLES 64
-
-/**
- * Sets a client's "viewing entity."
- *
- * @param client Client index.
- * @param entity Entity index.
- * @error Invalid client or entity, lack of mod support, or client not in
- * game.
- */
-native void SetClientViewEntity(int client, int entity);
-
-/**
- * Sets a light style.
- *
- * @param style Light style (from 0 to MAX_LIGHTSTYLES-1)
- * @param value Light value string (see world.cpp/light.cpp in dlls)
- * @error Light style index is out of range.
- */
-native void SetLightStyle(int style, const char[] value);
-
-/**
- * Returns the client's eye position.
- *
- * @param client Player's index.
- * @param pos Destination vector to store the client's eye position.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void GetClientEyePosition(int client, float pos[3]);
diff --git a/addons/sourcemod/scripting/include/sdktools_entinput.inc b/addons/sourcemod/scripting/include/sdktools_entinput.inc
deleted file mode 100644
index 64454b3ea..000000000
--- a/addons/sourcemod/scripting/include/sdktools_entinput.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2017 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_entinput_included
- #endinput
-#endif
-#define _sdktools_entinput_included
-
-/**
- * Invokes a named input method on an entity.
- *
- * After completion (successful or not), the current global variant is re-initialized.
- *
- * @param dest Destination entity index.
- * @param input Input action.
- * @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
- * @param caller Entity index from which this event is sent (-1 for a NULL entity).
- * @param outputid Unknown.
- * @return True if successful otherwise false.
- * @error Invalid entity index or no mod support.
- */
-native bool AcceptEntityInput(int dest, const char[] input, int activator=-1, int caller=-1, int outputid=0);
diff --git a/addons/sourcemod/scripting/include/sdktools_entoutput.inc b/addons/sourcemod/scripting/include/sdktools_entoutput.inc
deleted file mode 100644
index eb5a915f0..000000000
--- a/addons/sourcemod/scripting/include/sdktools_entoutput.inc
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2017 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_entoutput_included
- #endinput
-#endif
-#define _sdktools_entoutput_included
-
-/**
- * Called when an entity output is fired.
- *
- * @param output Name of the output that fired.
- * @param caller Entity index of the caller.
- * @param activator Entity index of the activator.
- * @param delay Delay in seconds? before the event gets fired.
- * @return Anything other than Plugin_Continue will supress this event,
- * returning Plugin_Continue will allow it to propagate the results
- * of this output to any entity inputs.
- */
-typeset EntityOutput
-{
- function void (const char[] output, int caller, int activator, float delay);
- function Action (const char[] output, int caller, int activator, float delay);
-};
-
-/**
- * Add an entity output hook on a entity classname
- *
- * @param classname The classname to hook.
- * @param output The output name to hook.
- * @param callback An EntityOutput function pointer.
- * @error Entity Outputs disabled.
- */
-native void HookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
-
-/**
- * Remove an entity output hook.
- * @param classname The classname to hook.
- * @param output The output name to hook.
- * @param callback An EntityOutput function pointer.
- * @return True on success, false if no valid hook was found.
- * @error Entity Outputs disabled.
- */
-native bool UnhookEntityOutput(const char[] classname, const char[] output, EntityOutput callback);
-
-/**
- * Add an entity output hook on a single entity instance
- *
- * @param entity The entity on which to add a hook.
- * @param output The output name to hook.
- * @param callback An EntityOutput function pointer.
- * @param once Only fire this hook once and then remove itself.
- * @error Entity Outputs disabled or Invalid Entity index.
- */
-native void HookSingleEntityOutput(int entity, const char[] output, EntityOutput callback, bool once=false);
-
-/**
- * Remove a single entity output hook.
- *
- * @param entity The entity on which to remove the hook.
- * @param output The output name to hook.
- * @param callback An EntityOutput function pointer.
- * @return True on success, false if no valid hook was found.
- * @error Entity Outputs disabled or Invalid Entity index.
- */
-native bool UnhookSingleEntityOutput(int entity, const char[] output, EntityOutput callback);
-
-/**
- * Fire a named output on an entity.
- *
- * After completion (successful or not), the current global variant is re-initialized.
- *
- * @param caller Entity index from where the output is fired.
- * @param output Output name.
- * @param activator Entity index which initiated the sequence of actions (-1 for a NULL entity).
- * @param delay Delay before firing the output.
- * @error Invalid entity index or no mod support.
- */
-native void FireEntityOutput(int caller, const char[] output, int activator=-1, float delay=0.0);
diff --git a/addons/sourcemod/scripting/include/sdktools_functions.inc b/addons/sourcemod/scripting/include/sdktools_functions.inc
deleted file mode 100644
index 0a2de5af4..000000000
--- a/addons/sourcemod/scripting/include/sdktools_functions.inc
+++ /dev/null
@@ -1,379 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_functions_included
- #endinput
-#endif
-#define _sdktools_functions_included
-
-/**
- * Removes a player's item.
- *
- * @param client Client index.
- * @param item CBaseCombatWeapon entity index.
- * @return True on success, false otherwise.
- * @error Invalid client or entity, lack of mod support, or client not in
- * game.
- */
-native bool RemovePlayerItem(int client, int item);
-
-/**
- * Gives a named item to a player.
- *
- * @param client Client index.
- * @param item Item classname (such as weapon_ak47).
- * @param iSubType Unknown.
- * @return Entity index on success, or -1 on failure.
- * @error Invalid client or client not in game, or lack of mod support.
- */
-native int GivePlayerItem(int client, const char[] item, int iSubType=0);
-
-/**
- * Returns the weapon in a player's slot.
- *
- * @param client Client index.
- * @param slot Slot index (mod specific).
- * @return Entity index on success, -1 if no weapon existed.
- * @error Invalid client or client not in game, or lack of mod support.
- */
-native int GetPlayerWeaponSlot(int client, int slot);
-
-/**
- * Ignites an entity on fire.
- *
- * @param entity Entity index.
- * @param time Number of seconds to set on fire.
- * @param npc True to only affect NPCs.
- * @param size Unknown.
- * @param level Unknown.
- * @error Invalid entity or client not in game, or lack of mod support.
- */
-native void IgniteEntity(int entity, float time, bool npc=false, float size=0.0, bool level=false);
-
-/**
- * Extinguishes an entity that is on fire.
- *
- * @param entity Entity index.
- * @error Invalid entity or client not in game, or lack of mod support.
- */
-native void ExtinguishEntity(int entity);
-
-/**
- * Teleports an entity.
- *
- * @param entity Client index.
- * @param origin New origin, or NULL_VECTOR for no change.
- * @param angles New angles, or NULL_VECTOR for no change.
- * @param velocity New velocity, or NULL_VECTOR for no change.
- * @error Invalid entity or client not in game, or lack of mod support.
- */
-native void TeleportEntity(int entity, const float origin[3] = NULL_VECTOR, const float angles[3] = NULL_VECTOR, const float velocity[3] = NULL_VECTOR);
-
-/**
- * Forces a player to commit suicide.
- *
- * @param client Client index.
- * @error Invalid client or client not in game, or lack of mod support.
- */
-native void ForcePlayerSuicide(int client);
-
-/**
- * Slaps a player in a random direction.
- *
- * @param client Client index.
- * @param health Health to subtract.
- * @param sound False to disable the sound effects.
- * @error Invalid client or client not in game, or lack of mod support.
- */
-native void SlapPlayer(int client, int health=5, bool sound=true);
-
-/**
- * Searches for an entity by classname.
- *
- * @param startEnt A valid entity's index after which to begin searching from.
- * Use -1 to start from the first entity.
- * @param classname Classname of the entity to find.
- * @return Entity index >= 0 if found, -1 otherwise.
- * @error Invalid start entity or lack of mod support.
- */
-native int FindEntityByClassname(int startEnt, const char[] classname);
-
-/**
- * Returns the client's eye angles.
- *
- * @param client Player's index.
- * @param ang Destination vector to store the client's eye angles.
- * @return True on success, false on failure.
- * @error Invalid client index, client not in game, or lack of mod support.
- */
-native bool GetClientEyeAngles(int client, float ang[3]);
-
-/**
- * Creates an entity by string name, but does not spawn it (see DispatchSpawn).
- * If ForceEdictIndex is not -1, then it will use the edict by that index. If the index is
- * invalid or there is already an edict using that index, it will error out.
- *
- * @param classname Entity classname.
- * @param ForceEdictIndex Edict index used by the created entity (ignored on Orangebox and above).
- * @return Entity index on success, or -1 on failure.
- * @error Invalid edict index, no map is running, or lack of mod support.
- */
-native int CreateEntityByName(const char[] classname, int ForceEdictIndex=-1);
-
-/**
- * Spawns an entity into the game.
- *
- * @param entity Entity index of the created entity.
- * @return True on success, false otherwise.
- * @error Invalid entity index or lack of mod support.
- */
-native bool DispatchSpawn(int entity);
-
-/**
- * Dispatches a KeyValue into given entity using a string value.
- *
- * @param entity Destination entity index.
- * @param keyName Name of the key.
- * @param value String value.
- * @return True on success, false otherwise.
- * @error Invalid entity index or lack of mod support.
- */
-native bool DispatchKeyValue(int entity, const char[] keyName, const char[] value);
-
-/**
- * Dispatches a KeyValue into given entity using a floating point value.
- *
- * @param entity Destination entity index.
- * @param keyName Name of the key.
- * @param value Floating point value.
- * @return True on success, false otherwise.
- * @error Invalid entity index or lack of mod support.
- */
-native bool DispatchKeyValueFloat(int entity, const char[] keyName, float value);
-
-/**
- * Dispatches a KeyValue into given entity using a vector value.
- *
- * @param entity Destination entity index.
- * @param keyName Name of the key.
- * @param vec Vector value.
- * @return True on success, false otherwise.
- * @error Invalid entity index or lack of mod support.
- */
-native bool DispatchKeyValueVector(int entity, const char[] keyName, const float vec[3]);
-
-/**
- * Returns the entity a client is aiming at.
- *
- * @param client Client performing the aiming.
- * @param only_clients True to exclude all entities but clients.
- * @return Entity index being aimed at.
- * -1 if no entity is being aimed at.
- * -2 if the function is not supported.
- * @error Invalid client index or client not in game.
- */
-native int GetClientAimTarget(int client, bool only_clients=true);
-
-/**
- * Returns the total number of teams in a game.
- * Note: This native should not be called before OnMapStart.
- *
- * @return Total number of teams.
- */
-native int GetTeamCount();
-
-/**
- * Retrieves the team name based on a team index.
- * Note: This native should not be called before OnMapStart.
- *
- * @param index Team index.
- * @param name Buffer to store string in.
- * @param maxlength Maximum length of string buffer.
- * @error Invalid team index.
- */
-native void GetTeamName(int index, char[] name, int maxlength);
-
-/**
- * Returns the score of a team based on a team index.
- * Note: This native should not be called before OnMapStart.
- *
- * @param index Team index.
- * @return Score.
- * @error Invalid team index.
- */
-native int GetTeamScore(int index);
-
-/**
- * Sets the score of a team based on a team index.
- * Note: This native should not be called before OnMapStart.
- *
- * @param index Team index.
- * @param value New score value.
- * @error Invalid team index.
- */
-native void SetTeamScore(int index, int value);
-
-/**
- * Retrieves the number of players in a certain team.
- * Note: This native should not be called before OnMapStart.
- *
- * @param index Team index.
- * @return Number of players in the team.
- * @error Invalid team index.
- */
-native int GetTeamClientCount(int index);
-
-/**
- * Returns the entity index of a team.
- *
- * @param teamIndex Team index.
- * @return Entity index of team.
- * @error Invalid team index.
- */
-native int GetTeamEntity(int teamIndex);
-
-/**
- * Sets the model to a given entity.
- *
- * @param entity Entity index.
- * @param model Model name.
- * @error Invalid entity index or lack of mod support.
- */
-native void SetEntityModel(int entity, const char[] model);
-
-/**
- * Retrieves the decal file name associated with a given client.
- *
- * @param client Player's index.
- * @param hex Buffer to store the logo filename.
- * @param maxlength Maximum length of string buffer.
- * @return True on success, otherwise false.
- * @error Invalid client or client not in game.
- */
-native bool GetPlayerDecalFile(int client, char[] hex, int maxlength);
-
-/**
- * Retrieves the jingle file name associated with a given client.
- *
- * @param client Player's index.
- * @param hex Buffer to store the jingle filename.
- * @param maxlength Maximum length of string buffer.
- * @return True on success, otherwise false.
- * @error Invalid client or client not in game.
- */
-native bool GetPlayerJingleFile(int client, char[] hex, int maxlength);
-
-/**
- * Returns the average server network traffic in bytes/sec.
- *
- * @param in Buffer to store the input traffic velocity.
- * @param out Buffer to store the output traffic velocity.
- * @error Lack of mod support.
- */
-native void GetServerNetStats(float &inAmount, float &outAmout);
-
-/**
- * Equip's a player's weapon.
- *
- * @param client Client index.
- * @param weapon CBaseCombatWeapon entity index.
- * @error Invalid client or entity, lack of mod support, or client not in
- * game.
- */
-native void EquipPlayerWeapon(int client, int weapon);
-
-/**
- * Activates an entity (CBaseAnimating::Activate)
- *
- * @param entity Entity index.
- * @error Invalid entity or lack of mod support.
- */
-native void ActivateEntity(int entity);
-
-/**
- * Sets values to client info buffer keys and notifies the engine of the change.
- * The change does not get propagated to mods until the next frame.
- *
- * @param client Player's index.
- * @param key Key string.
- * @param value Value string.
- * @error Invalid client index, client not connected, or lack of mod support.
- */
-native void SetClientInfo(int client, const char[] key, const char[] value);
-
-/**
- * Changes a client's name.
- *
- * @param client Player's index.
- * @param name New name.
- * @error Invalid client index, client not connected, or lack of mod support.
- */
-native void SetClientName(int client, const char[] name);
-
-/**
- * Gives ammo of a certain type to a player.
- * This natives obeys the maximum amount of ammo a player can carry per ammo type.
- *
- * @param client The client index.
- * @param amount Amount of ammo to give. Is capped at ammotype's limit.
- * @param ammotype Type of ammo to give to player.
- * @param suppressSound If true, don't play the ammo pickup sound.
- * @return Amount of ammo actually given.
- * @error Lack of mod support.
- */
-native int GivePlayerAmmo(int client, int amount, int ammotype, bool suppressSound=false);
-
-/**
- * Changes an entity's collision group (CBaseEntity::SetCollisionGroup).
- *
- * @param entity The entity index.
- * @param collisionGroup Collision group to use.
- * @error Invalid entity or lack of mod support.
- */
-native void SetEntityCollisionGroup(int entity, int collisionGroup);
-
-/**
- * Recaculates entity collision rules (CBaseEntity::CollisionRulesChanged).
- *
- * @param entity The entity index.
- * @error Invalid entity or lack of mod support.
- */
-native void EntityCollisionRulesChanged(int entity);
-
-/**
- * Sets an entity's owner (CBaseEntity::SetEntityOwner).
- *
- * @param entity The entity index.
- * @param owner The owner entity index, can be invalid.
- * @error Invalid entity or lack of mod support.
- */
-native void SetEntityOwner(int entity, int owner=INVALID_ENT_REFERENCE);
diff --git a/addons/sourcemod/scripting/include/sdktools_gamerules.inc b/addons/sourcemod/scripting/include/sdktools_gamerules.inc
deleted file mode 100644
index 6d07166b3..000000000
--- a/addons/sourcemod/scripting/include/sdktools_gamerules.inc
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2011 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_gamerules_included
- #endinput
-#endif
-#define _sdktools_gamerules_included
-
-enum RoundState {
- // initialize the game, create teams
- RoundState_Init,
-
- //Before players have joined the game. Periodically checks to see if enough players are ready
- //to start a game. Also reverts to this when there are no active players
- RoundState_Pregame,
-
- //The game is about to start, wait a bit and spawn everyone
- RoundState_StartGame,
-
- //All players are respawned, frozen in place
- RoundState_Preround,
-
- //Round is on, playing normally
- RoundState_RoundRunning,
-
- //Someone has won the round
- RoundState_TeamWin,
-
- //Noone has won, manually restart the game, reset scores
- RoundState_Restart,
-
- //Noone has won, restart the game
- RoundState_Stalemate,
-
- //Game is over, showing the scoreboard etc
- RoundState_GameOver,
-
- //Game is over, doing bonus round stuff
- RoundState_Bonus,
-
- //Between rounds
- RoundState_BetweenRounds
-};
-
-/**
- * Retrieves an integer value from a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param size Number of bytes to read (valid values are 1, 2, or 4).
- * This value is auto-detected, and the size parameter is
- * only used as a fallback in case detection fails.
- * @param element Element # (starting from 0) if property is an array.
- * @return Value at the given property offset.
- * @error Prop type is not an integer, or lack of mod support.
- */
-native int GameRules_GetProp(const char[] prop, int size=4, int element=0);
-
-/**
- * Sets an integer value for a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param value Value to set.
- * @param size Number of bytes to write (valid values are 1, 2, or 4).
- * This value is auto-detected, and the size parameter is
- * only used as a fallback in case detection fails.
- * @param element Element # (starting from 0) if property is an array.
- * @param changeState This parameter is ignored.
- * @error Prop type is not an integer, or lack of mod support.
- */
-native void GameRules_SetProp(const char[] prop, any value, int size=4, int element=0, bool changeState=false);
-
-/**
- * Retrieves a float value from a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param element Element # (starting from 0) if property is an array.
- * @return Value at the given property offset.
- * @error Prop type is not a float, or lack of mod support.
- */
-native float GameRules_GetPropFloat(const char[] prop, int element=0);
-
-/**
- * Sets a float value for a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param value Value to set.
- * @param element Element # (starting from 0) if property is an array.
- * @param changeState This parameter is ignored.
- * @error Prop type is not a float, or lack of mod support.
- */
-native void GameRules_SetPropFloat(const char[] prop, float value, int element=0, bool changeState=false);
-
-/**
- * Retrieves a entity index from a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param element Element # (starting from 0) if property is an array.
- * @return Entity index at the given property.
- * If there is no entity, or the entity is not valid,
- * then -1 is returned.
- * @error Prop type is not an entity, or lack of mod support.
- */
-native int GameRules_GetPropEnt(const char[] prop, int element=0);
-
-/**
- * Sets an entity index for a property of the gamerules entity.
- *
- * @param prop Property name.
- * @param other Entity index to set, or -1 to unset.
- * @param element Element # (starting from 0) if property is an array.
- * @param changeState This parameter is ignored.
- * @error Prop type is not an entity, invalid entity, or lack of mod support.
- */
-native void GameRules_SetPropEnt(const char[] prop, int other, int element=0, bool changeState=false);
-
-/**
- * Retrieves a vector of floats from the gamerules entity, given a named network property.
- *
- * @param prop Property name.
- * @param vec Vector buffer to store data in.
- * @param element Element # (starting from 0) if property is an array.
- * @error Prop type is not a vector, or lack of mod support.
- */
-native void GameRules_GetPropVector(const char[] prop, float vec[3], int element=0);
-
-/**
- * Sets a vector of floats in the gamerules entity, given a named network property.
- *
- * @param prop Property name.
- * @param vec Vector to set.
- * @param element Element # (starting from 0) if property is an array.
- * @param changeState This parameter is ignored.
- * @error Prop type is not a vector, or lack of mod support.
- */
-native void GameRules_SetPropVector(const char[] prop, const float vec[3], int element=0, bool changeState=false);
-
-/**
- * Gets a gamerules property as a string.
- *
- * @param prop Property to use.
- * @param buffer Destination string buffer.
- * @param maxlen Maximum length of output string buffer.
- * @param element Element # (starting from 0) if property is an array.
- * @return Number of non-null bytes written.
- * @error Prop type is not a string, or lack of mod support.
- */
-native int GameRules_GetPropString(const char[] prop, char[] buffer, int maxlen, int element=0);
-
-/**
- * Sets a gamerules property as a string.
- *
- * @param prop Property to use.
- * @param buffer String to set.
- * @param changeState This parameter is ignored.
- * @param element Element # (starting from 0) if property is an array.
- * @return Number of non-null bytes written.
- * @error Prop type is not a string, or lack of mod support.
- */
-native int GameRules_SetPropString(const char[] prop, const char[] buffer, bool changeState=false, int element=0);
-
-/**
- * Gets the current round state.
- *
- * @return Round state.
- * @error Game doesn't support round state.
- */
-stock RoundState GameRules_GetRoundState()
-{
- return view_as(GameRules_GetProp("m_iRoundState"));
-}
diff --git a/addons/sourcemod/scripting/include/sdktools_hooks.inc b/addons/sourcemod/scripting/include/sdktools_hooks.inc
deleted file mode 100644
index aa20e3bcf..000000000
--- a/addons/sourcemod/scripting/include/sdktools_hooks.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2009 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_hooks_included
- #endinput
-#endif
-#define _sdktools_hooks_included
-
-#define FEATURECAP_PLAYERRUNCMD_11PARAMS "SDKTools PlayerRunCmd 11Params"
-
-/**
- * Called when a clients movement buttons are being processed
- *
- * @param client Index of the client.
- * @param buttons Copyback buffer containing the current commands (as bitflags - see entity_prop_stocks.inc).
- * @param impulse Copyback buffer containing the current impulse command.
- * @param vel Players desired velocity.
- * @param angles Players desired view angles.
- * @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
- * @param subtype Weapon subtype when selected from a menu.
- * @param cmdnum Command number. Increments from the first command sent.
- * @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
- * @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
- * @param mouse Mouse direction (x, y).
- * @return Plugin_Handled to block the commands from being processed, Plugin_Continue otherwise.
- *
- * @note To see if all 11 params are available, use FeatureType_Capability and FEATURECAP_PLAYERRUNCMD_11PARAMS.
- */
-forward Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon, int &subtype, int &cmdnum, int &tickcount, int &seed, int mouse[2]);
-
-/**
- * Called after a clients movement buttons were processed.
- *
- * @param client Index of the client.
- * @param buttons The current commands (as bitflags - see entity_prop_stocks.inc).
- * @param impulse The current impulse command.
- * @param vel Players desired velocity.
- * @param angles Players desired view angles.
- * @param weapon Entity index of the new weapon if player switches weapon, 0 otherwise.
- * @param subtype Weapon subtype when selected from a menu.
- * @param cmdnum Command number. Increments from the first command sent.
- * @param tickcount Tick count. A client's prediction based on the server's GetGameTickCount value.
- * @param seed Random seed. Used to determine weapon recoil, spread, and other predicted elements.
- * @param mouse Mouse direction (x, y).
- */
-forward void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float vel[3], const float angles[3], int weapon, int subtype, int cmdnum, int tickcount, int seed, const int mouse[2]);
-
-/**
- * Called when a client requests a file from the server.
- *
- * @param client Client index.
- * @param sFile Requested file path.
- *
- * @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
- */
-forward Action OnFileSend(int client, const char[] sFile);
-
-/**
- * Called when a client sends a file to the server.
- *
- * @param client Client index.
- * @param sFile Requested file path.
- *
- * @return Plugin_Handled to block the transfer, Plugin_Continue to let it proceed.
- */
-forward Action OnFileReceive(int client, const char[] sFile);
diff --git a/addons/sourcemod/scripting/include/sdktools_sound.inc b/addons/sourcemod/scripting/include/sdktools_sound.inc
deleted file mode 100644
index 170b79ccb..000000000
--- a/addons/sourcemod/scripting/include/sdktools_sound.inc
+++ /dev/null
@@ -1,719 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_sound_included
- #endinput
-#endif
-#define _sdktools_sound_included
-
-/**
- * Sound should be from the target client.
- */
-#define SOUND_FROM_PLAYER -2
-
-/**
- * Sound should be from the listen server player.
- */
-#define SOUND_FROM_LOCAL_PLAYER -1
-
-/**
- * Sound is from the world.
- */
-#define SOUND_FROM_WORLD 0
-
-/**
- * Sound channels.
- */
-enum
-{
- SNDCHAN_REPLACE = -1, /**< Unknown */
- SNDCHAN_AUTO = 0, /**< Auto */
- SNDCHAN_WEAPON = 1, /**< Weapons */
- SNDCHAN_VOICE = 2, /**< Voices */
- SNDCHAN_ITEM = 3, /**< Items */
- SNDCHAN_BODY = 4, /**< Player? */
- SNDCHAN_STREAM = 5, /**< "Stream channel from the static or dynamic area" */
- SNDCHAN_STATIC = 6, /**< "Stream channel from the static area" */
- SNDCHAN_VOICE_BASE = 7, /**< "Channel for network voice data" */
- SNDCHAN_USER_BASE = 135 /**< Anything >= this is allocated to game code */
-};
-
-/**
- * Sound flags for the sound emitter system.
- */
-enum
-{
- SND_NOFLAGS= 0, /**< Nothing */
- SND_CHANGEVOL = 1, /**< Change sound volume */
- SND_CHANGEPITCH = 2, /**< Change sound pitch */
- SND_STOP = 3, /**< Stop the sound */
- SND_SPAWNING = 4, /**< Used in some cases for ambients */
- SND_DELAY = 5, /**< Sound has an initial delay */
- SND_STOPLOOPING = 6, /**< Stop looping all sounds on the entity */
- SND_SPEAKER = 7, /**< Being played by a mic through a speaker */
- SND_SHOULDPAUSE = 8 /**< Pause if game is paused */
-};
-
-/**
- * Various predefined sound levels in dB.
- */
-enum
-{
- SNDLEVEL_NONE = 0, /**< None */
- SNDLEVEL_RUSTLE = 20, /**< Rustling leaves */
- SNDLEVEL_WHISPER = 25, /**< Whispering */
- SNDLEVEL_LIBRARY = 30, /**< In a library */
- SNDLEVEL_FRIDGE = 45, /**< Refrigerator */
- SNDLEVEL_HOME = 50, /**< Average home (3.9 attn) */
- SNDLEVEL_CONVO = 60, /**< Normal conversation (2.0 attn) */
- SNDLEVEL_DRYER = 60, /**< Clothes dryer */
- SNDLEVEL_DISHWASHER = 65, /**< Dishwasher/washing machine (1.5 attn) */
- SNDLEVEL_CAR = 70, /**< Car or vacuum cleaner (1.0 attn) */
- SNDLEVEL_NORMAL = 75, /**< Normal sound level */
- SNDLEVEL_TRAFFIC = 75, /**< Busy traffic (0.8 attn) */
- SNDLEVEL_MINIBIKE = 80, /**< Mini-bike, alarm clock (0.7 attn) */
- SNDLEVEL_SCREAMING = 90, /**< Screaming child (0.5 attn) */
- SNDLEVEL_TRAIN = 100, /**< Subway train, pneumatic drill (0.4 attn) */
- SNDLEVEL_HELICOPTER = 105, /**< Helicopter */
- SNDLEVEL_SNOWMOBILE = 110, /**< Snow mobile */
- SNDLEVEL_AIRCRAFT = 120, /**< Auto horn, aircraft */
- SNDLEVEL_RAIDSIREN = 130, /**< Air raid siren */
- SNDLEVEL_GUNFIRE = 140, /**< Gunshot, jet engine (0.27 attn) */
- SNDLEVEL_ROCKET = 180 /**< Rocket launching (0.2 attn) */
-};
-
-#define SNDVOL_NORMAL 1.0 /**< Normal volume */
-#define SNDPITCH_NORMAL 100 /**< Normal pitch */
-#define SNDPITCH_LOW 95 /**< A low pitch */
-#define SNDPITCH_HIGH 120 /**< A high pitch */
-#define SNDATTN_NONE 0.0 /**< No attenuation */
-#define SNDATTN_NORMAL 0.8 /**< Normal attenuation */
-#define SNDATTN_STATIC 1.25 /**< Static attenuation? */
-#define SNDATTN_RICOCHET 1.5 /**< Ricochet effect */
-#define SNDATTN_IDLE 2.0 /**< Idle attenuation? */
-
-/**
- * Prefetches a sound.
- *
- * @param name Sound file name relative to the "sound" folder.
- */
-native void PrefetchSound(const char[] name);
-
-/**
- * This function is not known to work, and may crash. You should
- * not use it. It is provided for backwards compatibility only.
- *
- * @param name Sound file name relative to the "sound" folder.
- * @return Duration in seconds.
- * @deprecated Does not work, may crash.
- */
-#pragma deprecated Does not work, may crash.
-native float GetSoundDuration(const char[] name);
-
-/**
- * Emits an ambient sound.
- *
- * @param name Sound file name relative to the "sound" folder.
- * @param pos Origin of sound.
- * @param entity Entity index to associate sound with.
- * @param level Sound level (from 0 to 255).
- * @param flags Sound flags.
- * @param vol Volume (from 0.0 to 1.0).
- * @param pitch Pitch (from 0 to 255).
- * @param delay Play delay.
- */
-native void EmitAmbientSound(const char[] name,
- const float pos[3],
- int entity = SOUND_FROM_WORLD,
- int level = SNDLEVEL_NORMAL,
- int flags = SND_NOFLAGS,
- float vol = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- float delay = 0.0);
-
-/**
- * Fades a client's volume level toward silence or a given percentage.
- *
- * @param client Client index.
- * @param percent Fade percentage.
- * @param outtime Fade out time, in seconds.
- * @param holdtime Hold time, in seconds.
- * @param intime Fade in time, in seconds.
- * @error Invalid client index or client not in game.
- */
-native void FadeClientVolume(int client, float percent, float outtime, float holdtime, float intime);
-
-/**
- * Stops a sound.
- *
- * @param entity Entity index.
- * @param channel Channel number.
- * @param name Sound file name relative to the "sound" folder.
- */
-native void StopSound(int entity, int channel, const char[] name);
-
-/**
- * Emits a sound to a list of clients.
- *
- * @param clients Array of client indexes.
- * @param numClients Number of clients in the array.
- * @param sample Sound file name relative to the "sound" folder.
- * @param entity Entity to emit from.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param flags Sound flags.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @param ... Optional list of Float[3] arrays to specify additional origins.
- * @error Invalid client index or client not in game.
- */
-native void EmitSound(const int[] clients,
- int numClients,
- const char[] sample,
- int entity = SOUND_FROM_PLAYER,
- int channel = SNDCHAN_AUTO,
- int level = SNDLEVEL_NORMAL,
- int flags = SND_NOFLAGS,
- float volume = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0,
- any ...);
-
-/**
- * Emits a sound or game sound to a list of clients using the latest version of the engine sound interface.
- * This native is only available in engines that are greater than or equal to Portal 2.
- *
- * @param clients Array of client indexes.
- * @param numClients Number of clients in the array.
- * @param soundEntry Sound entry name.
- * @param sample Sound file name relative to the "sound" folder.
- * @param entity Entity to emit from.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param seed Sound seed.
- * @param flags Sound flags.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @param ... Optional list of Float[3] arrays to specify additional origins.
- * @error Invalid client index, client not in game, or lack of mod support.
- */
-native void EmitSoundEntry(const int[] clients,
- int numClients,
- const char[] soundEntry,
- const char[] sample,
- int entity = SOUND_FROM_PLAYER,
- int channel = SNDCHAN_AUTO,
- int level = SNDLEVEL_NORMAL,
- int seed = 0,
- int flags = SND_NOFLAGS,
- float volume = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0,
- any ...);
-
-/**
- * Emits a sentence to a list of clients.
- *
- * @param clients Array of client indexes.
- * @param numClients Number of clients in the array.
- * @param sentence Sentence index (from PrecacheSentenceFile).
- * @param entity Entity to emit from.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param flags Sound flags.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @param ... Optional list of Float[3] arrays to specify additional origins.
- * @error Invalid client index or client not in game.
- */
-native void EmitSentence(const int[] clients,
- int numClients,
- int sentence,
- int entity,
- int channel = SNDCHAN_AUTO,
- int level = SNDLEVEL_NORMAL,
- int flags = SND_NOFLAGS,
- float volume = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0,
- any ...);
-
-/**
- * Calculates gain of sound on given distance with given sound level in decibel
- *
- * @param soundlevel decibel of sound, like SNDLEVEL_NORMAL or integer value
- * @param distance distance of sound to calculate, not meter or feet, but Source Engine`s normal Coordinate unit
- * @return gain of sound. you can multiply this with original sound`s volume to calculate volume on given distance
- */
-native float GetDistGainFromSoundLevel(int soundlevel, float distance);
-
-/**
- * Called when an ambient sound is about to be emitted to one or more clients.
- *
- * NOTICE: all parameters can be overwritten to modify the default behavior.
- *
- * @param sample Sound file name relative to the "sound" folder.
- * @param entity Entity index associated to the sound.
- * @param volume Volume (from 0.0 to 1.0).
- * @param level Sound level (from 0 to 255).
- * @param pitch Pitch (from 0 to 255).
- * @param pos Origin of sound.
- * @param flags Sound flags.
- * @param delay Play delay.
- * @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it,
- * Plugin_Changed when any parameter has been modified.
- */
-typedef AmbientSHook = function Action (
- char sample[PLATFORM_MAX_PATH],
- int &entity,
- float &volume,
- int &level,
- int &pitch,
- float pos[3],
- int &flags,
- float &delay
-);
-
-typeset NormalSHook
-{
- // Called when a sound is going to be emitted to one or more clients.
- // NOTICE: all params can be overwritten to modify the default behavior.
- //
- // @param clients Array of client indexes.
- // @param numClients Number of clients in the array (modify this value if you add/remove elements from the client array).
- // @param sample Sound file name relative to the "sound" folder.
- // @param entity Entity emitting the sound.
- // @param channel Channel emitting the sound.
- // @param volume Sound volume.
- // @param level Sound level.
- // @param pitch Sound pitch.
- // @param flags Sound flags.
- // @param soundEntry Game sound entry name. (Used in engines newer than Portal 2)
- // @param seed Sound seed. (Used in engines newer than Portal 2)
- // @return Plugin_Continue to allow the sound to be played, Plugin_Stop to block it,
- // Plugin_Changed when any parameter has been modified.
- function Action (int clients[MAXPLAYERS], int &numClients, char sample[PLATFORM_MAX_PATH],
- int &entity, int &channel, float &volume, int &level, int &pitch, int &flags,
- char soundEntry[PLATFORM_MAX_PATH], int &seed);
-
- // Deprecated. Use other prototype.
- function Action (int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH],
- int &entity, int &channel, float &volume, int &level, int &pitch, int &flags,
- char soundEntry[PLATFORM_MAX_PATH], int &seed);
-
- // Deprecated. Use other prototype.
- function Action (int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH],
- int &entity, int &channel, float &volume, int &level, int &pitch, int &flags);
-};
-
-/**
- * Hooks all played ambient sounds.
- *
- * @param hook Function to use as a hook.
- * @error Invalid function hook.
- */
-native void AddAmbientSoundHook(AmbientSHook hook);
-
-/**
- * Hooks all played normal sounds.
- *
- * @param hook Function to use as a hook.
- * @error Invalid function hook.
- */
-native void AddNormalSoundHook(NormalSHook hook);
-
-/**
- * Unhooks all played ambient sounds.
- *
- * @param hook Function used for the hook.
- * @error Invalid function hook.
- */
-native void RemoveAmbientSoundHook(AmbientSHook hook);
-
-/**
- * Unhooks all played normal sounds.
- *
- * @param hook Function used for the hook.
- * @error Invalid function hook.
- */
-native void RemoveNormalSoundHook(NormalSHook hook);
-
-/**
- * Wrapper to emit sound to one client.
- *
- * @param client Client index.
- * @param sample Sound file name relative to the "sound" folder.
- * @param entity Entity to emit from.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param flags Sound flags.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @error Invalid client index or client not in game.
- */
-stock void EmitSoundToClient(int client,
- const char[] sample,
- int entity = SOUND_FROM_PLAYER,
- int channel = SNDCHAN_AUTO,
- int level = SNDLEVEL_NORMAL,
- int flags = SND_NOFLAGS,
- float volume = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0)
-{
- int clients[1];
- clients[0] = client;
- /* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
- entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
- EmitSound(clients, 1, sample, entity, channel,
- level, flags, volume, pitch, speakerentity,
- origin, dir, updatePos, soundtime);
-}
-
-/**
- * Wrapper to emit sound to all clients.
- *
- * @param sample Sound file name relative to the "sound" folder.
- * @param entity Entity to emit from.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param flags Sound flags.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @error Invalid client index.
- */
-stock void EmitSoundToAll(const char[] sample,
- int entity = SOUND_FROM_PLAYER,
- int channel = SNDCHAN_AUTO,
- int level = SNDLEVEL_NORMAL,
- int flags = SND_NOFLAGS,
- float volume = SNDVOL_NORMAL,
- int pitch = SNDPITCH_NORMAL,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0)
-{
- int[] clients = new int[MaxClients];
- int total = 0;
-
- for (int i=1; i<=MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- clients[total++] = i;
- }
- }
-
- if (total)
- {
- EmitSound(clients, total, sample, entity, channel,
- level, flags, volume, pitch, speakerentity,
- origin, dir, updatePos, soundtime);
- }
-}
-
-/**
- * Converts an attenuation value to a sound level.
- * This function is from the HL2SDK.
- *
- * @param attn Attenuation value.
- * @return Integer sound level.
- */
-stock int ATTN_TO_SNDLEVEL(float attn)
-{
- if (attn > 0.0)
- {
- return RoundFloat(50.0 + (20.0 / attn));
- }
- return 0;
-}
-
-/**
- * Retrieves the parameters for a game sound.
- *
- * Game sounds are found in a game's scripts/game_sound.txt or other files
- * referenced from it
- *
- * Note that if a game sound has a rndwave section, one of them will be returned
- * at random.
- *
- * @param gameSound Name of game sound.
- * @param channel Channel to emit with.
- * @param level Sound level.
- * @param volume Sound volume.
- * @param pitch Sound pitch.
- * @param sample Sound file name relative to the "sound" folder.
- * @param maxlength Maximum length of sample string buffer.
- * @param entity Entity the sound is being emitted from.
- * @return True if the sound was successfully retrieved, false if it
- * was not found
- */
-native bool GetGameSoundParams(const char[] gameSound,
- int &channel,
- int &soundLevel,
- float &volume,
- int &pitch,
- char[] sample,
- int maxlength,
- int entity=SOUND_FROM_PLAYER);
-
-/**
- * Emits a game sound to a list of clients.
- *
- * Game sounds are found in a game's scripts/game_sound.txt or other files
- * referenced from it
- *
- * Note that if a game sound has a rndwave section, one of them will be returned
- * at random.
- *
- * @param clients Array of client indexes.
- * @param numClients Number of clients in the array.
- * @param gameSound Name of game sound.
- * @param entity Entity to emit from.
- * @param flags Sound flags.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @return True if the sound was played successfully, false if it failed
- * @error Invalid client index or client not in game.
- */
-stock bool EmitGameSound(const int[] clients,
- int numClients,
- const char[] gameSound,
- int entity = SOUND_FROM_PLAYER,
- int flags = SND_NOFLAGS,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0)
-{
- int channel;
- int level;
- float volume;
- int pitch;
- char sample[PLATFORM_MAX_PATH];
-
- if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
- {
- EmitSound(clients, numClients, sample, entity, channel, level, flags, volume, pitch, speakerentity, origin, dir, updatePos, soundtime);
- return true;
- }
-
- return false;
-}
-
-/**
- * Emits an ambient game sound.
- *
- * Game sounds are found in a game's scripts/game_sound.txt or other files
- * referenced from it
- *
- * Note that if a game sound has a rndwave section, one of them will be returned
- * at random.
- *
- * @param gameSound Name of game sound.
- * @param pos Origin of sound.
- * @param entity Entity index to associate sound with.
- * @param flags Sound flags.
- * @param delay Play delay.
- */
-stock bool EmitAmbientGameSound(const char[] gameSound,
- const float pos[3],
- int entity = SOUND_FROM_WORLD,
- int flags = SND_NOFLAGS,
- float delay = 0.0)
-{
- int channel; // This is never actually used for Ambients, but it's a mandatory field to GetGameSoundParams
- int level;
- float volume;
- int pitch;
- char sample[PLATFORM_MAX_PATH];
-
- if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
- {
- EmitAmbientSound(sample, pos, entity, level, flags, volume, pitch, delay);
- return true;
- }
-
- return false;
-}
-
-/**
- * Wrapper to emit a game sound to one client.
- *
- * Game sounds are found in a game's scripts/game_sound.txt or other files
- * referenced from it
- *
- * Note that if a game sound has a rndwave section, one of them will be returned
- * at random.
- *
- * @param client Client index.
- * @param gameSound Name of game sound.
- * @param entity Entity to emit from.
- * @param flags Sound flags.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @error Invalid client index or client not in game.
- */
-stock bool EmitGameSoundToClient(int client,
- const char[] gameSound,
- int entity = SOUND_FROM_PLAYER,
- int flags = SND_NOFLAGS,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0)
-{
- int clients[1];
- clients[0] = client;
- /* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
- entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
- return EmitGameSound(clients, 1, gameSound, entity, flags,
- speakerentity, origin, dir, updatePos, soundtime);
-}
-
-/**
- * Wrapper to emit game sound to all clients.
- *
- * Game sounds are found in a game's scripts/game_sound.txt or other files
- * referenced from it
- *
- * Note that if a game sound has a rndwave section, one of them will be returned
- * at random.
- *
- * @param gameSound Name of game sound.
- * @param entity Entity to emit from.
- * @param flags Sound flags.
- * @param speakerentity Unknown.
- * @param origin Sound origin.
- * @param dir Sound direction.
- * @param updatePos Unknown (updates positions?)
- * @param soundtime Alternate time to play sound for.
- * @error Invalid client index.
- */
-stock bool EmitGameSoundToAll(const char[] gameSound,
- int entity = SOUND_FROM_PLAYER,
- int flags = SND_NOFLAGS,
- int speakerentity = -1,
- const float origin[3] = NULL_VECTOR,
- const float dir[3] = NULL_VECTOR,
- bool updatePos = true,
- float soundtime = 0.0)
-{
- int[] clients = new int[MaxClients];
- int total = 0;
-
- for (int i=1; i<=MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- clients[total++] = i;
- }
- }
-
- if (!total)
- {
- return false;
- }
-
- return EmitGameSound(clients, total, gameSound, entity, flags,
- speakerentity, origin, dir, updatePos, soundtime);
-}
-
-/**
- * Precache a game sound.
- *
- * Most games will precache all game sounds on map start, but this is not guaranteed...
- * Team Fortress 2 is known to not pre-cache MvM game mode sounds on non-MvM maps.
- *
- * Due to the above, this native should be called before any calls to GetGameSoundParams,
- * EmitGameSound*, or EmitAmbientGameSound.
- *
- * It should be safe to pass already precached game sounds to this function.
- *
- * Note: It precaches all files for a game sound.
- *
- * @param soundname Game sound to precache
- * @return True if the game sound was found, false if sound did not exist
- * or had no files
- */
-native bool PrecacheScriptSound(const char[] soundname);
diff --git a/addons/sourcemod/scripting/include/sdktools_stocks.inc b/addons/sourcemod/scripting/include/sdktools_stocks.inc
deleted file mode 100644
index 94179389a..000000000
--- a/addons/sourcemod/scripting/include/sdktools_stocks.inc
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_stocks_included
- #endinput
-#endif
-#define _sdktools_stocks_included
-
-/**
- * Given a partial team name, attempts to find a matching team.
- *
- * The search is performed case insensitively and only against the
- * first N characters of the team names, where N is the number of
- * characters in the search pattern.
- *
- * @param name Partial or full team name.
- * @return A valid team index on success.
- * -1 if no team matched.
- * -2 if more than one team matched.
- */
-stock int FindTeamByName(const char[] name)
-{
- int name_len = strlen(name);
- int num_teams = GetTeamCount();
- char team_name[32];
- int found_team = -1;
-
- for (int i = 0; i < num_teams; i++)
- {
- GetTeamName(i, team_name, sizeof(team_name));
-
- if (strncmp(team_name, name, name_len, false) == 0)
- {
- if (found_team >= 0)
- {
- return -2;
- }
- else
- {
- found_team = i;
- }
- }
- }
-
- return found_team;
-}
diff --git a/addons/sourcemod/scripting/include/sdktools_stringtables.inc b/addons/sourcemod/scripting/include/sdktools_stringtables.inc
deleted file mode 100644
index 346fb333e..000000000
--- a/addons/sourcemod/scripting/include/sdktools_stringtables.inc
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_stringtables_included
- #endinput
-#endif
-#define _sdktools_stringtables_included
-
-#define INVALID_STRING_TABLE -1 /**< An invalid string table index */
-#define INVALID_STRING_INDEX -1 /**< An invalid string index in a table */
-
-/**
- * Searches for a string table.
- *
- * @param name Name of string table to find.
- * @return A string table index number if found, INVALID_STRING_TABLE otherwise.
- */
-native int FindStringTable(const char[] name);
-
-/**
- * Returns the number of string tables that currently exist.
- *
- * @return Number of string tables that currently exist.
- */
-native int GetNumStringTables();
-
-/**
- * Returns the number of strings that currently exist in a given string table.
- *
- * @param tableidx A string table index.
- * @return Number of strings that currently exist.
- * @error Invalid string table index.
- */
-native int GetStringTableNumStrings(int tableidx);
-
-/**
- * Returns the maximum number of strings that are allowed in a given string table.
- *
- * @param tableidx A string table index.
- * @return Maximum number of strings allowed.
- * @error Invalid string table index.
- */
-native int GetStringTableMaxStrings(int tableidx);
-
-/**
- * Retrieves the name of a string table.
- *
- * @param tableidx A string table index.
- * @param name Buffer to store the name of the string table.
- * @param maxlength Maximum length of string buffer.
- * @return Number of bytes written to the buffer (UTF-8 safe).
- * @error Invalid string table index.
- */
-native int GetStringTableName(int tableidx, char[] name, int maxlength);
-
-/**
- * Searches for the index of a given string in a string table.
- *
- * @param tableidx A string table index.
- * @param str String to find.
- * @return String index if found, INVALID_STRING_INDEX otherwise.
- * @error Invalid string table index.
- */
-native int FindStringIndex(int tableidx, const char[] str);
-
-/**
- * Retrieves the string at a given index of a string table.
- *
- * @param tableidx A string table index.
- * @param stringidx A string index.
- * @param str Buffer to store the string value.
- * @param maxlength Maximum length of string buffer.
- * @return Number of bytes written to the buffer (UTF-8 safe).
- * @error Invalid string table index or string index.
- */
-native int ReadStringTable(int tableidx, int stringidx, char[] str, int maxlength);
-
-/**
- * Returns the length of the user data associated with a given string index.
- *
- * @param tableidx A string table index.
- * @param stringidx A string index.
- * @return Length of user data. This will be 0 if there is no user data.
- * @error Invalid string table index or string index.
- */
-native int GetStringTableDataLength(int tableidx, int stringidx);
-
-/**
- * Retrieves the user data associated with a given string index.
- *
- * @param tableidx A string table index.
- * @param stringidx A string index.
- * @param userdata Buffer to store the user data. This will be set to "" if there is no user data
- * @param maxlength Maximum length of string buffer.
- * @return Number of bytes written to the buffer (binary safe, includes the null terminator).
- * @error Invalid string table index or string index.
- */
-native int GetStringTableData(int tableidx, int stringidx, char[] userdata, int maxlength);
-
-/**
- * Sets the user data associated with a given string index.
- *
- * @param tableidx A string table index.
- * @param stringidx A string index.
- * @param userdata User data string that will be set.
- * @param length Length of user data string. This should include the null terminator.
- * @error Invalid string table index or string index.
- */
-native void SetStringTableData(int tableidx, int stringidx, const char[] userdata, int length);
-
-/**
- * Adds a string to a given string table.
- *
- * @param tableidx A string table index.
- * @param str String to add.
- * @param userdata An optional user data string.
- * @param length Length of user data string. This should include the null terminator.
- * If set to -1, then user data will be not be altered if the specified string
- * already exists in the string table.
- * @error Invalid string table index.
- */
-native void AddToStringTable(int tableidx, const char[] str, const char[] userdata="", int length=-1);
-
-/**
- * Locks or unlocks the network string tables.
- *
- * @param lock Determines whether network string tables should be locked.
- * True means the tables should be locked for writing; false means unlocked.
- * @return Previous lock state.
- */
-native bool LockStringTables(bool lock);
-
-/**
- * Adds a file to the downloadables network string table.
- * This forces a client to download the file if they do not already have it.
- *
- * @param filename File that will be added to downloadables table.
- */
-stock void AddFileToDownloadsTable(const char[] filename)
-{
- static int table = INVALID_STRING_TABLE;
-
- if (table == INVALID_STRING_TABLE)
- {
- table = FindStringTable("downloadables");
- }
-
- bool save = LockStringTables(false);
- AddToStringTable(table, filename);
- LockStringTables(save);
-}
diff --git a/addons/sourcemod/scripting/include/sdktools_tempents.inc b/addons/sourcemod/scripting/include/sdktools_tempents.inc
deleted file mode 100644
index 4da84e23a..000000000
--- a/addons/sourcemod/scripting/include/sdktools_tempents.inc
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_tempents_included
- #endinput
-#endif
-#define _sdktools_tempents_included
-
-/**
- * Called when a temp entity is going to be sent.
- *
- * @param te_name TE name.
- * @param Players Array containing target player indexes.
- * @param numClients Number of players in the array.
- * @param delay Delay in seconds to send the TE.
- * @return Plugin_Continue to allow the transmission of the TE, Plugin_Stop to block it.
- */
-typedef TEHook = function Action (const char[] te_name, const int[] Players, int numClients, float delay);
-
-/**
- * Hooks a temp entity.
- *
- * @param te_name TE name to hook.
- * @param hook Function to use as a hook.
- * @error Temp Entity name not available or invalid function hook.
- */
-native void AddTempEntHook(const char[] te_name, TEHook hook);
-
-/**
- * Removes a temp entity hook.
- *
- * @param te_name TE name to unhook.
- * @param hook Function used for the hook.
- * @error Temp Entity name not available or invalid function hook.
- */
-native void RemoveTempEntHook(const char[] te_name, TEHook hook);
-
-/**
- * Starts a temp entity transmission.
- *
- * @param te_name TE name.
- * @error Temp Entity name not available.
- */
-native void TE_Start(const char[] te_name);
-
-/**
- * Checks if a certain TE property exists.
- *
- * @param prop Property to use.
- * @return True if the property exists, otherwise false.
- */
-native bool TE_IsValidProp(const char[] prop);
-
-/**
- * Sets an integer value in the current temp entity.
- *
- * @param prop Property to use.
- * @param value Integer value to set.
- * @error Property not found.
- */
-native void TE_WriteNum(const char[] prop, int value);
-
-/**
- * Reads an integer value in the current temp entity.
- *
- * @param prop Property to use.
- * @return Property value.
- * @error Property not found.
- */
-native int TE_ReadNum(const char[] prop);
-
-/**
- * Sets a floating point number in the current temp entity.
- *
- * @param prop Property to use.
- * @param value Floating point number to set.
- * @error Property not found.
- */
-native void TE_WriteFloat(const char[] prop, float value);
-
-/**
- * Reads a floating point number in the current temp entity.
- *
- * @param prop Property to use.
- * @return Property value.
- * @error Property not found.
- */
-native float TE_ReadFloat(const char[] prop);
-
-/**
- * Sets a vector in the current temp entity.
- *
- * @param prop Property to use.
- * @param vector Vector to set.
- * @error Property not found.
- */
-native void TE_WriteVector(const char[] prop, const float vector[3]);
-
-/**
- * Reads a vector in the current temp entity.
- *
- * @param prop Property to use.
- * @param vector Vector to read.
- * @error Property not found.
- */
-native void TE_ReadVector(const char[] prop, float vector[3]);
-
-/**
- * Sets a QAngle in the current temp entity.
- *
- * @param prop Property to use.
- * @param angles Angles to set.
- * @error Property not found.
- */
-native void TE_WriteAngles(const char[] prop, const float angles[3]);
-
-/**
- * Sets an array of floats in the current temp entity.
- *
- * @param prop Property to use.
- * @param array Array of values to copy.
- * @param arraySize Number of values to copy.
- * @error Property not found.
- */
-native void TE_WriteFloatArray(const char[] prop, const float[] array, int arraySize);
-
-/**
- * Sends the current temp entity to one or more clients.
- *
- * @param clients Array containing player indexes to broadcast to.
- * @param numClients Number of players in the array.
- * @param delay Delay in seconds to send the TE.
- * @error Invalid client index or client not in game.
- */
-native void TE_Send(const int[] clients, int numClients, float delay=0.0);
-
-/**
- * Sets an encoded entity index in the current temp entity.
- * (This is usually used for m_nStartEntity and m_nEndEntity).
- *
- * @param prop Property to use.
- * @param value Value to set.
- * @error Property not found.
- */
-stock void TE_WriteEncodedEnt(const char[] prop, int value)
-{
- int encvalue = (value & 0x0FFF) | ((1 & 0xF)<<12);
- TE_WriteNum(prop, encvalue);
-}
-
-/**
- * Broadcasts the current temp entity to all clients.
- * @note See TE_Start().
- *
- * @param delay Delay in seconds to send the TE.
- */
-stock void TE_SendToAll(float delay=0.0)
-{
- int total = 0;
- int[] clients = new int[MaxClients];
- for (int i=1; i<=MaxClients; i++)
- {
- if (IsClientInGame(i))
- {
- clients[total++] = i;
- }
- }
- TE_Send(clients, total, delay);
-}
-
-/**
- * Sends the current TE to only a client.
- * @note See TE_Start().
- *
- * @param client Client to send to.
- * @param delay Delay in seconds to send the TE.
- * @error Invalid client index or client not in game.
- */
-stock void TE_SendToClient(int client, float delay=0.0)
-{
- int players[1];
-
- players[0] = client;
-
- TE_Send(players, 1, delay);
-}
-
-/**
- * Sends the current TE to all clients that are in
- * visible or audible range of the origin.
- * @note See TE_Start().
- * @note See GetClientsInRange()
- *
- * @param origin Coordinates from which to test range.
- * @param rangeType Range type to use for filtering clients.
- * @param delay Delay in seconds to send the TE.
- */
-stock void TE_SendToAllInRange(const float origin[3], ClientRangeType rangeType, float delay=0.0)
-{
- int[] clients = new int[MaxClients];
- int total = GetClientsInRange(origin, rangeType, clients, MaxClients);
- TE_Send(clients, total, delay);
-}
diff --git a/addons/sourcemod/scripting/include/sdktools_tempents_stocks.inc b/addons/sourcemod/scripting/include/sdktools_tempents_stocks.inc
deleted file mode 100644
index 75dfc5e5f..000000000
--- a/addons/sourcemod/scripting/include/sdktools_tempents_stocks.inc
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _te_stocks_included
- #endinput
-#endif
-#define _te_stocks_included
-
-/**
- * @section TE Explosion flags.
- */
-#define TE_EXPLFLAG_NONE 0x0 /**< all flags clear makes default Half-Life explosion */
-#define TE_EXPLFLAG_NOADDITIVE 0x1 /**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
-#define TE_EXPLFLAG_NODLIGHTS 0x2 /**< do not render dynamic lights */
-#define TE_EXPLFLAG_NOSOUND 0x4 /**< do not play client explosion sound */
-#define TE_EXPLFLAG_NOPARTICLES 0x8 /**< do not draw particles */
-#define TE_EXPLFLAG_DRAWALPHA 0x10 /**< sprite will be drawn alpha */
-#define TE_EXPLFLAG_ROTATE 0x20 /**< rotate the sprite randomly */
-#define TE_EXPLFLAG_NOFIREBALL 0x40 /**< do not draw a fireball */
-#define TE_EXPLFLAG_NOFIREBALLSMOKE 0x80 /**< do not draw smoke with the fireball */
-
-/**
- * @endsection
- */
-
-/**
- * @section TE Beam flags.
- */
-#define FBEAM_STARTENTITY 0x00000001
-#define FBEAM_ENDENTITY 0x00000002
-#define FBEAM_FADEIN 0x00000004
-#define FBEAM_FADEOUT 0x00000008
-#define FBEAM_SINENOISE 0x00000010
-#define FBEAM_SOLID 0x00000020
-#define FBEAM_SHADEIN 0x00000040
-#define FBEAM_SHADEOUT 0x00000080
-#define FBEAM_ONLYNOISEONCE 0x00000100 /**< Only calculate our noise once */
-#define FBEAM_NOTILE 0x00000200
-#define FBEAM_USE_HITBOXES 0x00000400 /**< Attachment indices represent hitbox indices instead when this is set. */
-#define FBEAM_STARTVISIBLE 0x00000800 /**< Has this client actually seen this beam's start entity yet? */
-#define FBEAM_ENDVISIBLE 0x00001000 /**< Has this client actually seen this beam's end entity yet? */
-#define FBEAM_ISACTIVE 0x00002000
-#define FBEAM_FOREVER 0x00004000
-#define FBEAM_HALOBEAM 0x00008000 /**< When drawing a beam with a halo, don't ignore the segments and endwidth */
-
-/**
- * @endsection
- */
-
-/**
- * Sets up a sparks effect.
- *
- * @param pos Position of the sparks.
- * @param dir Direction of the sparks.
- * @param Magnitude Sparks size.
- * @param TrailLength Trail lenght of the sparks.
- */
-stock void TE_SetupSparks(const float pos[3], const float dir[3], int Magnitude, int TrailLength)
-{
- TE_Start("Sparks");
- TE_WriteVector("m_vecOrigin[0]", pos);
- TE_WriteVector("m_vecDir", dir);
- TE_WriteNum("m_nMagnitude", Magnitude);
- TE_WriteNum("m_nTrailLength", TrailLength);
-}
-
-/**
- * Sets up a smoke effect.
- *
- * @param pos Position of the smoke.
- * @param Model Precached model index.
- * @param Scale Scale of the smoke.
- * @param FrameRate Frame rate of the smoke.
- */
-stock void TE_SetupSmoke(const float pos[3], int Model, float Scale, int FrameRate)
-{
- TE_Start("Smoke");
- TE_WriteVector("m_vecOrigin", pos);
- TE_WriteNum("m_nModelIndex", Model);
- TE_WriteFloat("m_fScale", Scale);
- TE_WriteNum("m_nFrameRate", FrameRate);
-}
-
-/**
- * Sets up a dust cloud effect.
- *
- * @param pos Position of the dust.
- * @param dir Direction of the dust.
- * @param Size Dust cloud size.
- * @param Speed Dust cloud speed.
- */
-stock void TE_SetupDust(const float pos[3], const float dir[3], float Size, float Speed)
-{
- TE_Start("Dust");
- TE_WriteVector("m_vecOrigin[0]", pos);
- TE_WriteVector("m_vecDirection", dir);
- TE_WriteFloat("m_flSize", Size);
- TE_WriteFloat("m_flSpeed", Speed);
-}
-
-/**
- * Sets up a muzzle flash effect.
- *
- * @param pos Position of the muzzle flash.
- * @param angles Rotation angles of the muzzle flash.
- * @param Scale Scale of the muzzle flash.
- * @param Type Muzzle flash type to render (Mod specific).
- */
-stock void TE_SetupMuzzleFlash(const float pos[3], const float angles[3], float Scale, int Type)
-{
- TE_Start("MuzzleFlash");
- TE_WriteVector("m_vecOrigin", pos);
- TE_WriteVector("m_vecAngles", angles);
- TE_WriteFloat("m_flScale", Scale);
- TE_WriteNum("m_nType", Type);
-}
-
-/**
- * Sets up a metal sparks effect.
- *
- * @param pos Position of the metal sparks.
- * @param dir Direction of the metal sparks.
- */
-stock void TE_SetupMetalSparks(const float pos[3], const float dir[3])
-{
- TE_Start("Metal Sparks");
- TE_WriteVector("m_vecPos", pos);
- TE_WriteVector("m_vecDir", dir);
-}
-
-/**
- * Sets up an energy splash effect.
- *
- * @param pos Position of the energy splash.
- * @param dir Direction of the energy splash.
- * @param Explosive Makes the effect explosive.
- */
-stock void TE_SetupEnergySplash(const float pos[3], const float dir[3], bool Explosive)
-{
- TE_Start("Energy Splash");
- TE_WriteVector("m_vecPos", pos);
- TE_WriteVector("m_vecDir", dir);
- TE_WriteNum("m_bExplosive", Explosive);
-}
-
-/**
- * Sets up an armor ricochet effect.
- *
- * @param pos Position of the armor ricochet.
- * @param dir Direction of the armor ricochet.
- */
-stock void TE_SetupArmorRicochet(const float pos[3], const float dir[3])
-{
- TE_Start("Armor Ricochet");
- TE_WriteVector("m_vecPos", pos);
- TE_WriteVector("m_vecDir", dir);
-}
-
-/**
- * Sets up a glowing sprite effect.
- *
- * @param pos Position of the sprite.
- * @param Model Precached model index.
- * @param Life Time duration of the sprite.
- * @param Size Sprite size.
- * @param Brightness Sprite brightness.
- */
-stock void TE_SetupGlowSprite(const float pos[3], int Model, float Life, float Size, int Brightness)
-{
- TE_Start("GlowSprite");
- TE_WriteVector("m_vecOrigin", pos);
- TE_WriteNum("m_nModelIndex", Model);
- TE_WriteFloat("m_fScale", Size);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteNum("m_nBrightness", Brightness);
-}
-
-/**
- * Sets up a explosion effect.
- *
- * @param pos Explosion position.
- * @param Model Precached model index.
- * @param Scale Explosion scale.
- * @param Framerate Explosion frame rate.
- * @param Flags Explosion flags.
- * @param Radius Explosion radius.
- * @param Magnitude Explosion size.
- * @param normal Normal vector to the explosion.
- * @param MaterialType Exploded material type.
- */
-stock void TE_SetupExplosion(const float pos[3], int Model, float Scale, int Framerate, int Flags, int Radius, int Magnitude, const float normal[3]={0.0, 0.0, 1.0}, int MaterialType='C')
-{
- TE_Start("Explosion");
- TE_WriteVector("m_vecOrigin[0]", pos);
- TE_WriteVector("m_vecNormal", normal);
- TE_WriteNum("m_nModelIndex", Model);
- TE_WriteFloat("m_fScale", Scale);
- TE_WriteNum("m_nFrameRate", Framerate);
- TE_WriteNum("m_nFlags", Flags);
- TE_WriteNum("m_nRadius", Radius);
- TE_WriteNum("m_nMagnitude", Magnitude);
- TE_WriteNum("m_chMaterialType", MaterialType);
-}
-
-/**
- * Sets up a blood sprite effect.
- *
- * @param pos Position of the sprite.
- * @param dir Sprite direction.
- * @param color Color array (r, g, b, a).
- * @param Size Sprite size.
- * @param SprayModel Precached model index.
- * @param BloodDropModel Precached model index.
- */
-stock void TE_SetupBloodSprite(const float pos[3], const float dir[3], const int color[4], int Size, int SprayModel, int BloodDropModel)
-{
- TE_Start("Blood Sprite");
- TE_WriteVector("m_vecOrigin", pos);
- TE_WriteVector("m_vecDirection", dir);
- TE_WriteNum("r", color[0]);
- TE_WriteNum("g", color[1]);
- TE_WriteNum("b", color[2]);
- TE_WriteNum("a", color[3]);
- TE_WriteNum("m_nSize", Size);
- TE_WriteNum("m_nSprayModel", SprayModel);
- TE_WriteNum("m_nDropModel", BloodDropModel);
-}
-
-/**
- * Sets up a beam ring point effect.
- *
- * @param center Center position of the ring.
- * @param Start_Radius Initial ring radius.
- * @param End_Radius Final ring radius.
- * @param ModelIndex Precached model index.
- * @param HaloIndex Precached model index.
- * @param StartFrame Initial frame to render.
- * @param FrameRate Ring frame rate.
- * @param Life Time duration of the ring.
- * @param Width Beam width.
- * @param Amplitude Beam amplitude.
- * @param Color Color array (r, g, b, a).
- * @param Speed Speed of the beam.
- * @param Flags Beam flags.
- */
-stock void TE_SetupBeamRingPoint(const float center[3], float Start_Radius, float End_Radius, int ModelIndex, int HaloIndex, int StartFrame,
- int FrameRate, float Life, float Width, float Amplitude, const int Color[4], int Speed, int Flags)
-{
- TE_Start("BeamRingPoint");
- TE_WriteVector("m_vecCenter", center);
- TE_WriteFloat("m_flStartRadius", Start_Radius);
- TE_WriteFloat("m_flEndRadius", End_Radius);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", StartFrame);
- TE_WriteNum("m_nFrameRate", FrameRate);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", Width);
- TE_WriteFloat("m_fAmplitude", Amplitude);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
- TE_WriteNum("m_nSpeed", Speed);
- TE_WriteNum("m_nFlags", Flags);
- TE_WriteNum("m_nFadeLength", 0);
-}
-
-/**
- * Sets up a point to point beam effect.
- *
- * @param start Start position of the beam.
- * @param end End position of the beam.
- * @param ModelIndex Precached model index.
- * @param HaloIndex Precached model index.
- * @param StartFrame Initial frame to render.
- * @param FrameRate Beam frame rate.
- * @param Life Time duration of the beam.
- * @param Width Initial beam width.
- * @param EndWidth Final beam width.
- * @param FadeLength Beam fade time duration.
- * @param Amplitude Beam amplitude.
- * @param Color Color array (r, g, b, a).
- * @param Speed Speed of the beam.
- */
-stock void TE_SetupBeamPoints(const float start[3], const float end[3], int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life,
- float Width, float EndWidth, int FadeLength, float Amplitude, const int Color[4], int Speed)
-{
- TE_Start("BeamPoints");
- TE_WriteVector("m_vecStartPoint", start);
- TE_WriteVector("m_vecEndPoint", end);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", StartFrame);
- TE_WriteNum("m_nFrameRate", FrameRate);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", EndWidth);
- TE_WriteFloat("m_fAmplitude", Amplitude);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
- TE_WriteNum("m_nSpeed", Speed);
- TE_WriteNum("m_nFadeLength", FadeLength);
-}
-
-/**
- * Sets up an entity to entity laser effect.
- *
- * @param StartEntity Entity index from where the beam starts.
- * @param EndEntity Entity index from where the beam ends.
- * @param ModelIndex Precached model index.
- * @param HaloIndex Precached model index.
- * @param StartFrame Initial frame to render.
- * @param FrameRate Beam frame rate.
- * @param Life Time duration of the beam.
- * @param Width Initial beam width.
- * @param EndWidth Final beam width.
- * @param FadeLength Beam fade time duration.
- * @param Amplitude Beam amplitude.
- * @param Color Color array (r, g, b, a).
- * @param Speed Speed of the beam.
- */
-stock void TE_SetupBeamLaser(int StartEntity, int EndEntity, int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life,
- float Width, float EndWidth, int FadeLength, float Amplitude, const int Color[4], int Speed)
-{
- TE_Start("BeamLaser");
- TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
- TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", StartFrame);
- TE_WriteNum("m_nFrameRate", FrameRate);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", EndWidth);
- TE_WriteFloat("m_fAmplitude", Amplitude);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
- TE_WriteNum("m_nSpeed", Speed);
- TE_WriteNum("m_nFadeLength", FadeLength);
-}
-
-/**
- * Sets up a beam ring effect.
- *
- * @param StartEntity Entity index from where the ring starts.
- * @param EndEntity Entity index from where the ring ends.
- * @param ModelIndex Precached model index.
- * @param HaloIndex Precached model index.
- * @param StartFrame Initial frame to render.
- * @param FrameRate Ring frame rate.
- * @param Life Time duration of the ring.
- * @param Width Beam width.
- * @param Amplitude Beam amplitude.
- * @param Color Color array (r, g, b, a).
- * @param Speed Speed of the beam.
- * @param Flags Beam flags.
- */
-stock void TE_SetupBeamRing(int StartEntity, int EndEntity, int ModelIndex, int HaloIndex, int StartFrame, int FrameRate, float Life, float Width, float Amplitude, const int Color[4], int Speed, int Flags)
-{
- TE_Start("BeamRing");
- TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
- TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", StartFrame);
- TE_WriteNum("m_nFrameRate", FrameRate);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", Width);
- TE_WriteFloat("m_fAmplitude", Amplitude);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
- TE_WriteNum("m_nSpeed", Speed);
- TE_WriteNum("m_nFadeLength", 0);
- TE_WriteNum("m_nFlags", Flags);
-}
-
-/**
- * Sets up a follow beam effect.
- *
- * @param EntIndex Entity index from where the beam starts.
- * @param ModelIndex Precached model index.
- * @param HaloIndex Precached model index.
- * @param Life Time duration of the beam.
- * @param Width Initial beam width.
- * @param EndWidth Final beam width.
- * @param FadeLength Beam fade time duration.
- * @param Color Color array (r, g, b, a).
- */
-stock void TE_SetupBeamFollow(int EntIndex, int ModelIndex, int HaloIndex, float Life, float Width, float EndWidth, int FadeLength, const int Color[4])
-{
- TE_Start("BeamFollow");
- TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
- TE_WriteNum("m_nModelIndex", ModelIndex);
- TE_WriteNum("m_nHaloIndex", HaloIndex);
- TE_WriteNum("m_nStartFrame", 0);
- TE_WriteNum("m_nFrameRate", 0);
- TE_WriteFloat("m_fLife", Life);
- TE_WriteFloat("m_fWidth", Width);
- TE_WriteFloat("m_fEndWidth", EndWidth);
- TE_WriteNum("m_nFadeLength", FadeLength);
- TE_WriteNum("r", Color[0]);
- TE_WriteNum("g", Color[1]);
- TE_WriteNum("b", Color[2]);
- TE_WriteNum("a", Color[3]);
-}
diff --git a/addons/sourcemod/scripting/include/sdktools_trace.inc b/addons/sourcemod/scripting/include/sdktools_trace.inc
deleted file mode 100644
index 3c4592d70..000000000
--- a/addons/sourcemod/scripting/include/sdktools_trace.inc
+++ /dev/null
@@ -1,716 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_trace_included
- #endinput
-#endif
-#define _sdktools_trace_included
-
-#define CONTENTS_EMPTY 0 /**< No contents. */
-#define CONTENTS_SOLID 0x1 /**< an eye is never valid in a solid . */
-#define CONTENTS_WINDOW 0x2 /**< translucent, but not watery (glass). */
-#define CONTENTS_AUX 0x4
-#define CONTENTS_GRATE 0x8 /**< alpha-tested "grate" textures. Bullets/sight pass through, but solids don't. */
-#define CONTENTS_SLIME 0x10
-#define CONTENTS_WATER 0x20
-#define CONTENTS_MIST 0x40
-#define CONTENTS_OPAQUE 0x80 /**< things that cannot be seen through (may be non-solid though). */
-#define LAST_VISIBLE_CONTENTS 0x80
-#define ALL_VISIBLE_CONTENTS (LAST_VISIBLE_CONTENTS | (LAST_VISIBLE_CONTENTS-1))
-#define CONTENTS_TESTFOGVOLUME 0x100
-#define CONTENTS_UNUSED5 0x200
-#define CONTENTS_UNUSED6 0x4000
-#define CONTENTS_TEAM1 0x800 /**< per team contents used to differentiate collisions. */
-#define CONTENTS_TEAM2 0x1000 /**< between players and objects on different teams. */
-#define CONTENTS_IGNORE_NODRAW_OPAQUE 0x2000 /**< ignore CONTENTS_OPAQUE on surfaces that have SURF_NODRAW. */
-#define CONTENTS_MOVEABLE 0x4000 /**< hits entities which are MOVETYPE_PUSH (doors, plats, etc) */
-#define CONTENTS_AREAPORTAL 0x8000 /**< remaining contents are non-visible, and don't eat brushes. */
-#define CONTENTS_PLAYERCLIP 0x10000
-#define CONTENTS_MONSTERCLIP 0x20000
-
-/**
- * @section currents can be added to any other contents, and may be mixed
- */
-#define CONTENTS_CURRENT_0 0x40000
-#define CONTENTS_CURRENT_90 0x80000
-#define CONTENTS_CURRENT_180 0x100000
-#define CONTENTS_CURRENT_270 0x200000
-#define CONTENTS_CURRENT_UP 0x400000
-#define CONTENTS_CURRENT_DOWN 0x800000
-
-/**
- * @endsection
- */
-
-#define CONTENTS_ORIGIN 0x1000000 /**< removed before bsp-ing an entity. */
-#define CONTENTS_MONSTER 0x2000000 /**< should never be on a brush, only in game. */
-#define CONTENTS_DEBRIS 0x4000000
-#define CONTENTS_DETAIL 0x8000000 /**< brushes to be added after vis leafs. */
-#define CONTENTS_TRANSLUCENT 0x10000000 /**< auto set if any surface has trans. */
-#define CONTENTS_LADDER 0x20000000
-#define CONTENTS_HITBOX 0x40000000 /**< use accurate hitboxes on trace. */
-
-/**
- * @section Trace masks.
- */
-#define MASK_ALL (0xFFFFFFFF)
-#define MASK_SOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< everything that is normally solid */
-#define MASK_PLAYERSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_PLAYERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< everything that blocks player movement */
-#define MASK_NPCSOLID (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTERCLIP|CONTENTS_WINDOW|CONTENTS_MONSTER|CONTENTS_GRATE) /**< blocks npc movement */
-#define MASK_WATER (CONTENTS_WATER|CONTENTS_MOVEABLE|CONTENTS_SLIME) /**< water physics in these contents */
-#define MASK_OPAQUE (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_OPAQUE) /**< everything that blocks line of sight for AI, lighting, etc */
-#define MASK_OPAQUE_AND_NPCS (MASK_OPAQUE|CONTENTS_MONSTER) /**< everything that blocks line of sight for AI, lighting, etc, but with monsters added. */
-#define MASK_VISIBLE (MASK_OPAQUE|CONTENTS_IGNORE_NODRAW_OPAQUE) /**< everything that blocks line of sight for players */
-#define MASK_VISIBLE_AND_NPCS (MASK_OPAQUE_AND_NPCS|CONTENTS_IGNORE_NODRAW_OPAQUE) /**< everything that blocks line of sight for players, but with monsters added. */
-#define MASK_SHOT (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_HITBOX) /**< bullets see these as solid */
-#define MASK_SHOT_HULL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_MONSTER|CONTENTS_WINDOW|CONTENTS_DEBRIS|CONTENTS_GRATE) /**< non-raycasted weapons see this as solid (includes grates) */
-#define MASK_SHOT_PORTAL (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW) /**< hits solids (not grates) and passes through everything else */
-#define MASK_SOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_GRATE) /**< everything normally solid, except monsters (world+brush only) */
-#define MASK_PLAYERSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_PLAYERCLIP|CONTENTS_GRATE) /**< everything normally solid for player movement, except monsters (world+brush only) */
-#define MASK_NPCSOLID_BRUSHONLY (CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE) /**< everything normally solid for npc movement, except monsters (world+brush only) */
-#define MASK_NPCWORLDSTATIC (CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_MONSTERCLIP|CONTENTS_GRATE) /**< just the world, used for route rebuilding */
-#define MASK_SPLITAREAPORTAL (CONTENTS_WATER|CONTENTS_SLIME) /**< These are things that can split areaportals */
-
-/**
- * @endsection
- */
-
-/**
- * @section Surface flags.
- */
-
-#define SURF_LIGHT 0x0001 /**< value will hold the light strength */
-#define SURF_SKY2D 0x0002 /**< don't draw, indicates we should skylight + draw 2d sky but not draw the 3D skybox */
-#define SURF_SKY 0x0004 /**< don't draw, but add to skybox */
-#define SURF_WARP 0x0008 /**< turbulent water warp */
-#define SURF_TRANS 0x0010
-#define SURF_NOPORTAL 0x0020 /**< the surface can not have a portal placed on it */
-#define SURF_TRIGGER 0x0040 /**< This is an xbox hack to work around elimination of trigger surfaces, which breaks occluders */
-#define SURF_NODRAW 0x0080 /**< don't bother referencing the texture */
-
-#define SURF_HINT 0x0100 /**< make a primary bsp splitter */
-
-#define SURF_SKIP 0x0200 /**< completely ignore, allowing non-closed brushes */
-#define SURF_NOLIGHT 0x0400 /**< Don't calculate light */
-#define SURF_BUMPLIGHT 0x0800 /**< calculate three lightmaps for the surface for bumpmapping */
-#define SURF_NOSHADOWS 0x1000 /**< Don't receive shadows */
-#define SURF_NODECALS 0x2000 /**< Don't receive decals */
-#define SURF_NOCHOP 0x4000 /**< Don't subdivide patches on this surface */
-#define SURF_HITBOX 0x8000 /**< surface is part of a hitbox */
-
-/**
- * @endsection
- */
-
-/**
- * @section Partition masks.
- */
-
-#define PARTITION_SOLID_EDICTS (1 << 1) /**< every edict_t that isn't SOLID_TRIGGER or SOLID_NOT (and static props) */
-#define PARTITION_TRIGGER_EDICTS (1 << 2) /**< every edict_t that IS SOLID_TRIGGER */
-#define PARTITION_NON_STATIC_EDICTS (1 << 5) /**< everything in solid & trigger except the static props, includes SOLID_NOTs */
-#define PARTITION_STATIC_PROPS (1 << 7)
-
-/**
- * @endsection
- */
-
-/**
- * @section Displacement flags.
- */
-
-#define DISPSURF_FLAG_SURFACE (1<<0)
-#define DISPSURF_FLAG_WALKABLE (1<<1)
-#define DISPSURF_FLAG_BUILDABLE (1<<2)
-#define DISPSURF_FLAG_SURFPROP1 (1<<3)
-#define DISPSURF_FLAG_SURFPROP2 (1<<4)
-
-/**
- * @endsection
- */
-
-enum RayType
-{
- RayType_EndPoint, /**< The trace ray will go from the start position to the end position. */
- RayType_Infinite /**< The trace ray will go from the start position to infinity using a direction vector. */
-};
-
-typeset TraceEntityFilter
-{
- /**
- * Called on entity filtering.
- *
- * @param entity Entity index.
- * @param contentsMask Contents Mask.
- * @return True to allow the current entity to be hit, otherwise false.
- */
- function bool (int entity, int contentsMask);
-
- /**
- * Called on entity filtering.
- *
- * @param entity Entity index.
- * @param contentsMask Contents Mask.
- * @param data Data value, if used.
- * @return True to allow the current entity to be hit, otherwise false.
- */
- function bool (int entity, int contentsMask, any data);
-};
-
-typeset TraceEntityEnumerator
-{
- /**
- * Called for each entity enumerated with EnumerateEntities*.
- *
- * @param entity Entity index.
- * @return True to continue enumerating, otherwise false.
- */
- function bool (int entity);
-
- /**
- * Called for each entity enumerated with EnumerateEntities*.
- *
- * @param entity Entity index.
- * @param data Data value, if used.
- * @return True to continue enumerating, otherwise false. */
- function bool (int entity, any data);
-}
-
-/**
- * Get the contents mask and the entity index at the given position.
- *
- * @param pos World position to test.
- * @param entindex Entity index found at the given position (by reference).
- * @return Contents mask.
- */
-native int TR_GetPointContents(const float pos[3], int &entindex=-1);
-
-/**
- * Get the point contents testing only the given entity index.
- *
- * @param entindex Entity index to test.
- * @param pos World position.
- * @return Contents mask.
- * @error Invalid entity.
- */
-native int TR_GetPointContentsEnt(int entindex, const float pos[3]);
-
-/**
- * Starts up a new trace ray using a global trace result.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the
- * ending point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- */
-native void TR_TraceRay(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype);
-
-/**
- * Starts up a new trace hull using a global trace result.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- */
-native void TR_TraceHull(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags);
-
-/**
- * Enumerates over entities along a ray. This may find entities that are
- * close to the ray but do not actually intersect it. Use TR_Clip*RayToEntity
- * with TR_DidHit to check if the ray actually intersects the entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param mask Mask to use for the trace. See PARTITION_* flags.
- * @param rtype Method to calculate the ray direction.
- * @param enumerator Function to use as enumerator. For each entity found
- * along the ray, this function is called.
- * @param data Arbitrary data value to pass through to the enumerator.
- */
-native void TR_EnumerateEntities(const float pos[3],
- const float vec[3],
- int mask,
- RayType rtype,
- TraceEntityEnumerator enumerator,
- any data=0);
-
-/**
- * Enumerates over entities along a ray hull. This may find entities that are
- * close to the ray but do not actually intersect it. Use TR_Clip*RayToEntity
- * with TR_DidHit to check if the ray actually intersects the entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param mask Mask to use for the trace. See PARTITION_* flags.
- * @param enumerator Function to use as enumerator. For each entity found
- * along the ray, this function is called.
- * @param data Arbitrary data value to pass through to the enumerator.
- */
-native void TR_EnumerateEntitiesHull(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int mask,
- TraceEntityEnumerator enumerator,
- any data=0);
-
-/**
- * Enumerates over entities in a sphere.
- *
- * @param pos Starting position of the ray.
- * @param radius Radius of the ray.
- * @param mask Mask to use for the trace. See PARTITION_* flags.
- * @param enumerator Function to use as enumerator. For each entity found
- * along the ray, this function is called.
- * @param data Arbitrary data value to pass through to the enumerator.
- */
-native void TR_EnumerateEntitiesSphere(const float pos[3],
- float radius,
- int mask,
- TraceEntityEnumerator enumerator,
- any data=0);
-
-/**
- * Enumerates over entities in a box.
- *
- * @param mins Box minimum size.
- * @param maxs Box maximum size.
- * @param mask Mask to use for the trace. See PARTITION_* flags.
- * @param enumerator Function to use as enumerator. For each entity found
- * along the box, this function is called.
- * @param data Arbitrary data value to pass through to the enumerator.
- */
-native void TR_EnumerateEntitiesBox(const float mins[3],
- const float maxs[3],
- int mask,
- TraceEntityEnumerator enumerator,
- any data=0);
-
-/**
- * Enumerates over entities at point.
- *
- * @param pos Position of the point.
- * @param mask Mask to use for the trace. See PARTITION_* flags.
- * @param enumerator Function to use as enumerator. For each entity found
- * along the point, this function is called.
- * @param data Arbitrary data value to pass through to the enumerator.
- */
-native void TR_EnumerateEntitiesPoint(const float pos[3],
- int mask,
- TraceEntityEnumerator enumerator,
- any data=0);
-
-/**
- * Starts up a new trace ray using a global trace result and a customized
- * trace ray filter.
- *
- * Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
- * function is currently not allowed and may not work.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- * @param filter Function to use as a filter.
- * @param data Arbitrary data value to pass through to the filter
- * function.
- */
-native void TR_TraceRayFilter(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype,
- TraceEntityFilter filter,
- any data=0);
-
-/**
- * Starts up a new trace hull using a global trace result and a customized
- * trace ray filter.
- *
- * Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
- * function is currently not allowed and may not work.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- * @param filter Function to use as a filter.
- * @param data Arbitrary data value to pass through to the filter
- * function.
- */
-native void TR_TraceHullFilter(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags,
- TraceEntityFilter filter,
- any data=0);
-
-/**
- * Clips a ray to a particular entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- * @param entity Entity to clip to.
- * @error Invalid entity.
- */
-native void TR_ClipRayToEntity(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype,
- int entity);
-
-/**
- * Clips a ray hull to a particular entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- * @param entity Entity to clip to.
- * @error Invalid entity.
- */
-native void TR_ClipRayHullToEntity(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags,
- int entity);
-
-/**
- * Clips the current global ray (or hull) to a particular entity.
- *
- * @param flags Trace flags.
- * @param entity Entity to clip to.
- * @error Invalid entity.
- */
-native void TR_ClipCurrentRayToEntity(int flags, int entity);
-
-/**
- * Starts up a new trace ray using a new trace result.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- * @return Ray trace handle, which must be closed via CloseHandle().
- */
-native Handle TR_TraceRayEx(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype);
-
-/**
- * Starts up a new trace hull using a new trace result.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- * @return Ray trace handle, which must be closed via CloseHandle().
- */
-native Handle TR_TraceHullEx(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags);
-
-/**
- * Starts up a new trace ray using a new trace result and a customized
- * trace ray filter.
- *
- * Calling TR_Trace*Filter or TR_TraceRay*Ex from inside a filter
- * function is currently not allowed and may not work.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- * @param filter Function to use as a filter.
- * @param data Arbitrary data value to pass through to the filter function.
- * @return Ray trace handle, which must be closed via CloseHandle().
- */
-native Handle TR_TraceRayFilterEx(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype,
- TraceEntityFilter filter,
- any data=0);
-
-/**
- * Starts up a new trace hull using a new trace result and a customized
- * trace ray filter.
- *
- * Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter
- * function is currently not allowed and may not work.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- * @param filter Function to use as a filter.
- * @param data Arbitrary data value to pass through to the filter function.
- * @return Ray trace handle, which must be closed via CloseHandle().
- */
-native Handle TR_TraceHullFilterEx(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags,
- TraceEntityFilter filter,
- any data=0);
-
-/**
- * Clips a ray to a particular entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Depending on RayType, it will be used as the ending
- * point, or the direction angle.
- * @param flags Trace flags.
- * @param rtype Method to calculate the ray direction.
- * @param entity Entity to clip to.
- * @return Ray trace handle, which must be closed via CloseHandle().
- * @error Invalid entity.
- */
-native Handle TR_ClipRayToEntityEx(const float pos[3],
- const float vec[3],
- int flags,
- RayType rtype,
- int entity);
-
-/**
- * Clips a ray hull to a particular entity.
- *
- * @param pos Starting position of the ray.
- * @param vec Ending position of the ray.
- * @param mins Hull minimum size.
- * @param maxs Hull maximum size.
- * @param flags Trace flags.
- * @param entity Entity to clip to.
- * @return Ray trace handle, which must be closed via CloseHandle().
- * @error Invalid entity.
- */
-native Handle TR_ClipRayHullToEntityEx(const float pos[3],
- const float vec[3],
- const float mins[3],
- const float maxs[3],
- int flags,
- int entity);
-
-/**
- * Clips the current global ray (or hull) to a particular entity.
- *
- * @param flags Trace flags.
- * @param entity Entity to clip to.
- * @return Ray trace handle, which must be closed via CloseHandle().
- * @error Invalid entity.
- */
-native Handle TR_ClipCurrentRayToEntityEx(int flags, int entity);
-
-/**
- * Returns the time fraction from a trace result (1.0 means no collision).
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Time fraction value of the trace.
- * @error Invalid Handle.
- */
-native float TR_GetFraction(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the time fraction from a trace result when it left a solid.
- * Only valid if trace started in solid
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Time fraction left solid value of the trace.
- * @error Invalid Handle.
- */
-native float TR_GetFractionLeftSolid(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the starting position of a trace.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @param pos Vector buffer to store data in.
- * @error Invalid Handle.
- */
-native void TR_GetStartPosition(Handle hndl, float pos[3]);
-
-/**
- * Returns the collision position of a trace result.
- *
- * @param pos Vector buffer to store data in.
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @error Invalid Handle.
- */
-native void TR_GetEndPosition(float pos[3], Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the entity index that collided with the trace.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Entity index or -1 for no collision.
- * @error Invalid Handle.
- */
-native int TR_GetEntityIndex(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the displacement flags for the surface that was hit. See DISPSURF_FLAG_*.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Displacement flags.
- * @error Invalid Handle.
- */
-native int TR_GetDisplacementFlags(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the name of the surface that was hit.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @param buffer Buffer to store surface name in
- * @param maxlen Maximum length of output buffer
- * @error Invalid Handle.
- */
-native void TR_GetSurfaceName(Handle hndl, char[] buffer, int maxlen);
-
-/**
- * Returns the surface properties index of the surface that was hit.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Surface props.
- * @error Invalid Handle.
- */
-native int TR_GetSurfaceProps(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the surface flags. See SURF_*.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Surface flags.
- * @error Invalid Handle.
- */
-native int TR_GetSurfaceFlags(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns the index of the physics bone that was hit.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Physics bone index.
- * @error Invalid Handle.
- */
-native int TR_GetPhysicsBone(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns whether the entire trace was in a solid area.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return True if entire trace was in a solid area, otherwise false.
- * @error Invalid Handle.
- */
-native bool TR_AllSolid(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns whether the initial point was in a solid area.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return True if initial point was in a solid area, otherwise false.
- * @error Invalid Handle.
- */
-native bool TR_StartSolid(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns if there was any kind of collision along the trace ray.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return True if any collision found, otherwise false.
- * @error Invalid Handle.
- */
-native bool TR_DidHit(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns in which body hit group the trace collided if any.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Body hit group.
- * @error Invalid Handle.
- */
-native int TR_GetHitGroup(Handle hndl=INVALID_HANDLE);
-
-/**
- * Returns in which hitbox the trace collided if any.
- *
- * Note: if the entity that collided with the trace is the world entity,
- * then this function doesn't return an hitbox index but a static prop index.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @return Hitbox index (Or static prop index).
- * @error Invalid Handle.
- */
-native int TR_GetHitBoxIndex(Handle hndl=INVALID_HANDLE);
-
-/**
- * Find the normal vector to the collision plane of a trace.
- *
- * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
- * @param normal Vector buffer to store the vector normal to the collision plane
- * @error Invalid Handle
- */
-native void TR_GetPlaneNormal(Handle hndl, float normal[3]);
-
-/**
- * Tests a point to see if it's outside any playable area
- *
- * @param pos Vector buffer to store data in.
- * @return True if outside world, otherwise false.
- */
-native bool TR_PointOutsideWorld(float pos[3]);
diff --git a/addons/sourcemod/scripting/include/sdktools_variant_t.inc b/addons/sourcemod/scripting/include/sdktools_variant_t.inc
deleted file mode 100644
index 71bfcedf0..000000000
--- a/addons/sourcemod/scripting/include/sdktools_variant_t.inc
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2017 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_variant_t_included
- #endinput
-#endif
-#define _sdktools_variant_t_included
-
-/**
- * Sets a bool value in the global variant object.
- *
- * @param val Input value.
- */
-native void SetVariantBool(bool val);
-
-/**
- * Sets a string in the global variant object.
- *
- * @param str Input string.
- */
-native void SetVariantString(const char[] str);
-
-/**
- * Sets an integer value in the global variant object.
- *
- * @param val Input value.
- */
-native void SetVariantInt(int val);
-
-/**
- * Sets a floating point value in the global variant object.
- *
- * @param val Input value.
- */
-native void SetVariantFloat(float val);
-
-/**
- * Sets a 3D vector in the global variant object.
- *
- * @param vec Input vector.
- */
-native void SetVariantVector3D(const float vec[3]);
-
-/**
- * Sets a 3D position vector in the global variant object.
- *
- * @param vec Input position vector.
- */
-native void SetVariantPosVector3D(const float vec[3]);
-
-/**
- * Sets a color in the global variant object.
- *
- * @param color Input color.
- */
-native void SetVariantColor(const int color[4]);
-
-/**
- * Sets an entity in the global variant object.
- *
- * @param entity Entity index.
- * @error Invalid entity index.
- */
-native void SetVariantEntity(int entity);
diff --git a/addons/sourcemod/scripting/include/sdktools_voice.inc b/addons/sourcemod/scripting/include/sdktools_voice.inc
deleted file mode 100644
index 6bcaf3d4f..000000000
--- a/addons/sourcemod/scripting/include/sdktools_voice.inc
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sdktools_voice_included
- #endinput
-#endif
-#define _sdktools_voice_included
-
-/**
- * @section voice flags.
- */
-#define VOICE_NORMAL 0 /**< Allow the client to listen and speak normally. */
-#define VOICE_MUTED 1 /**< Mutes the client from speaking to everyone. */
-#define VOICE_SPEAKALL 2 /**< Allow the client to speak to everyone. */
-#define VOICE_LISTENALL 4 /**< Allow the client to listen to everyone. */
-#define VOICE_TEAM 8 /**< Allow the client to always speak to team, even when dead. */
-#define VOICE_LISTENTEAM 16 /**< Allow the client to always hear teammates, including dead ones. */
-
-/**
- * @endsection
- */
-
-enum ListenOverride
-{
- Listen_Default = 0, /**< Leave it up to the game */
- Listen_No, /**< Can't hear */
- Listen_Yes /**< Can hear */
-};
-
-/**
- * Called when a client is speaking.
- *
- * @param client The client index
- */
-forward void OnClientSpeaking(int client);
-
-/**
- * Called once a client speaking end.
- *
- * @param client The client index
- */
-forward void OnClientSpeakingEnd(int client);
-
-/**
- * Set the client listening flags.
- *
- * @param client The client index
- * @param flags The voice flags
- * @error Invalid client index or client not connected.
- */
-native void SetClientListeningFlags(int client, int flags);
-
-/**
- * Retrieve the client current listening flags.
- *
- * @param client The client index
- * @return The current voice flags
- * @error Invalid client index or client not connected.
- */
-native int GetClientListeningFlags(int client);
-
-/**
- * Set the receiver ability to listen to the sender.
- *
- * @param iReceiver The listener index.
- * @param iSender The sender index.
- * @param bListen True if the receiver can listen to the sender, false otherwise.
- * @return True if successful otherwise false.
- * @deprecated Use SetListenOverride() instead.
- */
-#pragma deprecated Use SetListenOverride() instead
-native bool SetClientListening(int iReceiver, int iSender, bool bListen);
-
-/**
- * Retrieves if the receiver can listen to the sender.
- *
- * @param iReceiver The listener index.
- * @param iSender The sender index.
- * @return True if successful otherwise false.
- * @deprecated GetListenOverride() instead.
- */
-#pragma deprecated GetListenOverride() instead
-native bool GetClientListening(int iReceiver, int iSender);
-
-/**
- * Override the receiver's ability to listen to the sender.
- *
- * @param iReceiver The listener index.
- * @param iSender The sender index.
- * @param override The override of the receiver's ability to listen to the sender.
- * @return True if successful otherwise false.
- * @error Listener or sender client index is invalid or not connected.
- */
-native bool SetListenOverride(int iReceiver, int iSender, ListenOverride override);
-
-/**
- * Retrieves the override of the receiver's ability to listen to the sender.
- *
- * @param iReceiver The listener index.
- * @param iSender The sender index.
- * @return The override value.
- * @error Listener or sender client index is invalid or not connected.
- */
-native ListenOverride GetListenOverride(int iReceiver, int iSender);
-
-/**
- * Retrieves if the muter has muted the mutee.
- *
- * @param iMuter The muter index.
- * @param iMutee The mutee index.
- * @return True if muter has muted mutee, false otherwise.
- * @error Muter or mutee client index is invalid or not connected.
- */
-native bool IsClientMuted(int iMuter, int iMutee);
diff --git a/addons/sourcemod/scripting/include/smac.inc b/addons/sourcemod/scripting/include/smac.inc
deleted file mode 100644
index 8c2243227..000000000
--- a/addons/sourcemod/scripting/include/smac.inc
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- SourceMod Anti-Cheat
- Copyright (C) 2011-2016 SMAC Development Team
- Copyright (C) 2007-2011 CodingDirect LLC
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-*/
-
-#if defined _smac_included
- #endinput
-#endif
-#define _smac_included
-
-#include
-
-/* Globals */
-#define SMAC_VERSION "0.8.7.3"
-#define SMAC_URL "https://github.com/Silenci0/SMAC"
-#define SMAC_AUTHOR "SMAC Development Team"
-#define SMAC_MOD_ERROR "This module will not work for this mod and should be removed."
-
-enum GameType
-{
- Game_Unknown = 0,
- Game_CSS,
- Game_TF2,
- Game_DODS,
- Game_INS,
- Game_L4D,
- Game_L4D2,
- Game_HL2DM,
- Game_FOF,
- Game_HL2CTF,
- Game_HIDDEN,
- Game_ND,
- Game_CSGO,
- Game_ZPS,
- Game_ZMR,
- Game_BM
-};
-
-enum DetectionType
-{
- Detection_Unknown = 0,
-
- // smac_aimbot
- Detection_Aimbot = 100,
-
- // smac_autotrigger
- Detection_AutoTrigger = 200,
-
- // smac_client
- Detection_NameChangeSpam = 300,
-
- // smac_commands
- Detection_CommandSpamming = 400,
- Detection_BannedCommand,
-
- // smac_cvars
- Detection_CvarViolation = 500,
-
- // smac_eyetest
- Detection_UserCmdReuse = 600,
- Detection_UserCmdTamperingTickcount,
- Detection_UserCmdTamperingButtons,
- Detection_Eyeangles,
-
- // smac_speedhack
- Detection_Speedhack = 700,
-
- // smac_spinhack
- Detection_Spinhack = 800,
-
- // smac_eac_banlist
- Detection_GlobalBanned_EAC = 900,
-
- // smac_esea_banlist
- Detection_GlobalBanned_ESEA = 1000,
-
- // smac_hl2dm_fixes
- Detection_GravityGunExploit = 1100,
-};
-
-/* Natives */
-native GameType SMAC_GetGameType();
-native void SMAC_Log(const char[] format, any ...);
-native void SMAC_LogAction(int client, const char[] format, any ...);
-native void SMAC_Ban(int client, const char[] reason, any ...);
-native void SMAC_PrintAdminNotice(const char[] format, any ...);
-native ConVar SMAC_CreateConVar(const char[] name, const char[] defaultValue, const char[] description="",int flags = 0, bool hasMin = false, float min = 0.0, bool hasMax = false, float max = 0.0);
-native Action SMAC_CheatDetected(int client, DetectionType type = Detection_Unknown, Handle info = INVALID_HANDLE);
-
-/* Forwards */
-forward Action SMAC_OnCheatDetected(int client, const char[] module, DetectionType type, Handle info);
-
-public SharedPlugin __pl_smac =
-{
- name = "smac",
- file = "smac.smx",
-#if defined REQUIRE_PLUGIN
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_PLUGIN
-public void __pl_smac_SetNTVOptional()
-{
- MarkNativeAsOptional("SMAC_GetGameType");
- MarkNativeAsOptional("SMAC_Log");
- MarkNativeAsOptional("SMAC_LogAction");
- MarkNativeAsOptional("SMAC_Ban");
- MarkNativeAsOptional("SMAC_PrintAdminNotice");
- MarkNativeAsOptional("SMAC_CreateConVar");
- MarkNativeAsOptional("SMAC_CheatDetected");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/smac_stocks.inc b/addons/sourcemod/scripting/include/smac_stocks.inc
deleted file mode 100644
index 9ead95e26..000000000
--- a/addons/sourcemod/scripting/include/smac_stocks.inc
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- SourceMod Anti-Cheat
- Copyright (C) 2011-2016 SMAC Development Team
- Copyright (C) 2007-2011 CodingDirect LLC
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-*/
-
-#if defined _smac_stocks_included
- #endinput
-#endif
-#define _smac_stocks_included
-
-/**
- * Preprocessor directives
- */
-#define MAX_EDICTS 2048
-#define MAX_ENTITIES 4096
-
-#define MAX_MAPNAME_LENGTH 32
-#define MAX_AUTHID_LENGTH 64
-
-// Hud Element hiding flags
-#define HIDEHUD_WEAPONSELECTION (1 << 0) // Hide ammo count & weapon selection
-#define HIDEHUD_FLASHLIGHT (1 << 1)
-#define HIDEHUD_ALL (1 << 2)
-#define HIDEHUD_HEALTH (1 << 3) // Hide health & armor / suit battery
-#define HIDEHUD_PLAYERDEAD (1 << 4) // Hide when local player's dead
-#define HIDEHUD_NEEDSUIT (1 << 5) // Hide when the local player doesn't have the HEV suit
-#define HIDEHUD_MISCSTATUS (1 << 6) // Hide miscellaneous status elements (trains, pickup history, death notices, etc)
-#define HIDEHUD_CHAT (1 << 7) // Hide all communication elements (saytext, voice icon, etc)
-#define HIDEHUD_CROSSHAIR (1 << 8) // Hide crosshairs
-#define HIDEHUD_VEHICLE_CROSSHAIR (1 << 9) // Hide vehicle crosshair
-#define HIDEHUD_INVEHICLE (1 << 10)
-#define HIDEHUD_BONUS_PROGRESS (1 << 11) // Hide bonus progress display (for bonus map challenges)
-#define HIDEHUD_BITCOUNT 12
-
-// Fade UserMessage bits
-#define FFADE_IN 0x0001 // Just here so we don't pass 0 into the function
-#define FFADE_OUT 0x0002 // Fade out (not in)
-#define FFADE_MODULATE 0x0004 // Modulate (don't blend)
-#define FFADE_STAYOUT 0x0008 // ignores the duration, stays faded out until new ScreenFade message received
-#define FFADE_PURGE 0x0010 // Purges all other fades, replacing them with this one
-
-// Macros
-#define IS_CLIENT(%1) (1 <= %1 <= MaxClients)
-#define TIME_TO_TICK(%1) (RoundToNearest((%1) / GetTickInterval()))
-#define TICK_TO_TIME(%1) ((%1) * GetTickInterval())
-
-// Spectator movement modes
-enum {
- OBS_MODE_NONE = 0, // not in spectator mode
- OBS_MODE_DEATHCAM, // special mode for death cam animation
- OBS_MODE_FREEZECAM, // zooms to a target, and freeze-frames on them
- OBS_MODE_FIXED, // view from a fixed camera position
- OBS_MODE_IN_EYE, // follow a player in first person view
- OBS_MODE_CHASE, // follow a player in third person view
- OBS_MODE_ROAMING, // free roaming
-};
-
-/**
- * General
- */
-stock void GetPluginBasename(Handle plugin, char[] buffer,int maxlength)
-{
- GetPluginFilename(plugin, buffer, maxlength);
-
- int check = -1;
- if ((check = FindCharInString(buffer, '/', true)) != -1 ||
- (check = FindCharInString(buffer, '\\', true)) != -1)
- {
- Format(buffer, maxlength, "%s", buffer[check+1]);
- }
-}
-
-stock bool IsConVarDefault(ConVar convar)
-{
- char sDefaultVal[16], sCurrentVal[16];
- GetConVarDefault(convar, sDefaultVal, sizeof(sDefaultVal));
- GetConVarString(convar, sCurrentVal, sizeof(sCurrentVal));
-
- return StrEqual(sDefaultVal, sCurrentVal);
-}
-
-stock void StringToLower(char[] input)
-{
- int length = strlen(input);
-
- for (int i = 0; i < length; i++)
- {
- input[i] = CharToLower(input[i]);
- }
-}
-
-/**
- * Clients
- */
-stock bool IsClientNew(int client)
-{
- // Client must be ingame.
- return IsFakeClient(client) || GetGameTime() > GetClientTime(client);
-}
-
-stock bool GetClientAbsVelocity(int client, float velocity[3])
-{
- static int offset = -1;
-
- if (offset == -1 && (offset = FindDataMapInfo(client, "m_vecAbsVelocity")) == -1) // FindDataMapOffs(client, "m_vecAbsVelocity")) == -1)
- {
- ZeroVector(velocity);
- return false;
- }
-
- GetEntDataVector(client, offset, velocity);
- return true;
-}
-
-stock int GetClientHudFlags(int client)
-{
- return GetEntProp(client, Prop_Send, "m_iHideHUD");
-}
-
-stock int GetClientObserverMode(int client)
-{
- static int offset = -1;
-
- if (offset == -1 && (offset = FindSendPropInfo("CBasePlayer", "m_iObserverMode")) == -1) //FindSendPropOffs("CBasePlayer", "m_iObserverMode")) == -1)
- {
- return OBS_MODE_NONE;
- }
-
- return GetEntData(client, offset);
-}
-
-stock int GetClientObserverTarget(int client)
-{
- static int offset = -1;
-
- if (offset == -1 && (offset = FindSendPropInfo("CBasePlayer", "m_hObserverTarget")) == -1)
- {
- return -1;
- }
-
- return GetEntDataEnt2(client, offset);
-}
-
-/**
- * Game Specific
- */
-stock bool DODS_IsPlayerProne(int client)
-{
- return view_as(GetEntProp(client, Prop_Send, "m_bProne") ||
- GetEntPropFloat(client, Prop_Send, "m_flGoProneTime") > 0.0 ||
- GetEntPropFloat(client, Prop_Send, "m_flUnProneTime") > 0.0);
-}
-
-stock bool L4D_IsPlayerGhost(int client)
-{
- return view_as(GetEntProp(client, Prop_Send, "m_isGhost", 1));
-}
-
-// "Busy" implies that the client is not in their typical first-person state.
-stock bool L4D_IsSurvivorBusy(int client)
-{
- return GetEntityFlags(client) & FL_FROZEN ||
- GetClientHudFlags(client) & ~HIDEHUD_BONUS_PROGRESS ||
- GetEntProp(client, Prop_Send, "m_isIncapacitated") > 0 ||
- GetEntProp(client, Prop_Send, "m_knockdownReason") > 0 ||
- GetEntPropFloat(client, Prop_Send, "m_staggerDist") > 0.0 ||
- GetEntPropEnt(client, Prop_Send, "m_pounceAttacker") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_tongueOwner") > 0;
-}
-
-stock bool L4D_IsInfectedBusy(int client)
-{
- return GetEntPropFloat(client, Prop_Send, "m_vomitFadeStart") > GetGameTime() ||
- GetEntPropEnt(client, Prop_Send, "m_pounceVictim") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_tongueVictim") > 0;
-}
-
-stock bool L4D2_IsSurvivorBusy(int client)
-{
- return GetEntityFlags(client) & FL_FROZEN ||
- GetClientHudFlags(client) & ~HIDEHUD_BONUS_PROGRESS ||
- GetEntProp(client, Prop_Send, "m_isIncapacitated") > 0 ||
- GetEntProp(client, Prop_Send, "m_knockdownReason") > 0 ||
- GetEntPropFloat(client, Prop_Send, "m_staggerDist") > 0.0 ||
- GetEntPropEnt(client, Prop_Send, "m_pummelAttacker") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_carryAttacker") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_pounceAttacker") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_jockeyAttacker") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_tongueOwner") > 0;
-}
-
-stock bool L4D2_IsInfectedBusy(int client)
-{
- return GetEntProp(client, Prop_Send, "m_iGlowType") == 3 ||
- GetEntPropFloat(client, Prop_Send, "m_vomitFadeStart") > GetGameTime() ||
- GetEntPropEnt(client, Prop_Send, "m_pummelVictim") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_carryVictim") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_pounceVictim") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_jockeyVictim") > 0 ||
- GetEntPropEnt(client, Prop_Send, "m_tongueVictim") > 0;
-}
-
-stock bool ND_IsPlayerCommander(int client)
-{
- return GameRules_GetPropEnt("m_hCommanders", 0) == client || GameRules_GetPropEnt("m_hCommanders", 1) == client;
-}
-
-/**
- * Math
- */
-stock void ZeroVector(float vec[3])
-{
- vec[0] = vec[1] = vec[2] = 0.0;
-}
-
-stock bool IsVectorZero(const float vec[3])
-{
- return vec[0] == 0.0 && vec[1] == 0.0 && vec[2] == 0.0;
-}
-
-stock bool IsVectorAlmostZero(const float vec[3], const float tolerance=0.1)
-{
- return view_as(FloatAbs(vec[0]) <= tolerance &&
- FloatAbs(vec[1]) <= tolerance &&
- FloatAbs(vec[2]) <= tolerance);
-}
-
-stock bool AreVectorsEqual(const float vec1[3], const float vec2[3])
-{
- return vec1[0] == vec2[0] && vec1[1] == vec2[1] && vec1[2] == vec2[2];
-}
-
-stock bool AreVectorsAlmostEqual(const float vec1[3], const float vec2[3], const float tolerance=0.1)
-{
- return view_as(FloatAbs(vec1[0] - vec2[0]) <= tolerance &&
- FloatAbs(vec1[1] - vec2[1]) <= tolerance &&
- FloatAbs(vec1[2] - vec2[2]) <= tolerance);
-}
-
-stock int AbsValue(int value)
-{
- return (value >= 0) ? value : -value;
-}
-
-stock any MinValue(any value, any min)
-{
- return (value < min) ? min : value;
-}
-
-stock any MaxValue(any value, any max)
-{
- return (value > max) ? max : value;
-}
-
-stock any ClampValue(any value, any min, any max)
-{
- value = MinValue(value, min);
- value = MaxValue(value, max);
-
- return value;
-}
-
-stock int IPToLong(const char[] ip)
-{
- char pieces[4][4];
-
- if (ExplodeString(ip, ".", pieces, sizeof(pieces), sizeof(pieces[])) != 4)
- {
- return 0;
- }
-
- return StringToInt(pieces[0]) << 24 |
- StringToInt(pieces[1]) << 16 |
- StringToInt(pieces[2]) << 8 |
- StringToInt(pieces[3]);
-}
-
-stock void LongToIP(int ip, char[] buffer,int size)
-{
- FormatEx(buffer, size, "%d.%d.%d.%d", (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
-}
-
-stock int MT_GetRandomInt(int min,int max)
-{
- return RoundToNearest(GetURandomFloat() * float(max - min) + float(min));
-}
-
-stock float MT_GetRandomFloat(float min, float max)
-{
- return GetURandomFloat() * (max - min) + min;
-}
-
-stock void BfWriteSBitLong(Handle bf,int data,int numBits)
-{
- for (int i = 0; i < numBits; i++)
- {
- BfWriteBool(bf, !!(data & (1 << i)));
- }
-}
-
-stock int BfReadSBitLong(Handle bf,int numBits)
-{
- int[] bits = new int[numBits];
- int ret, i;
-
- for (i = 0; i < numBits; i++)
- {
- bits[i] = BfReadBool(bf);
- }
-
- ret = bits[numBits-1] ? -1 : 0;
-
- for (i = numBits-1; i >= 0; i--)
- {
- ret <<= 1;
- ret |= bits[i];
- }
-
- return ret;
-}
diff --git a/addons/sourcemod/scripting/include/sorting.inc b/addons/sourcemod/scripting/include/sorting.inc
deleted file mode 100644
index 5b0c2498b..000000000
--- a/addons/sourcemod/scripting/include/sorting.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-
-#if defined _sorting_included
- #endinput
-#endif
-#define _sorting_included
-
-/**
- * Contains sorting orders.
- */
-enum SortOrder
-{
- Sort_Ascending = 0, /**< Ascending order */
- Sort_Descending = 1, /**< Descending order */
- Sort_Random = 2 /**< Random order */
-};
-
-/**
- * Data types for ADT Array Sorts
- */
-enum SortType
-{
- Sort_Integer = 0,
- Sort_Float,
- Sort_String
-};
-
-/**
- * Sorts an array of integers.
- *
- * @param array Array of integers to sort in-place.
- * @param array_size Size of the array.
- * @param order Sorting order to use.
- */
-native void SortIntegers(int[] array, int array_size, SortOrder order = Sort_Ascending);
-
-/**
- * Sorts an array of float point numbers.
- *
- * @param array Array of floating point numbers to sort in-place.
- * @param array_size Size of the array.
- * @param order Sorting order to use.
- */
-native void SortFloats(float[] array, int array_size, SortOrder order = Sort_Ascending);
-
-/**
- * Sorts an array of strings.
- *
- * @param array Array of strings to sort in-place.
- * @param array_size Size of the array.
- * @param order Sorting order to use.
- */
-native void SortStrings(char[][] array, int array_size, SortOrder order = Sort_Ascending);
-
-/**
- * Sort comparison function for 1D array elements.
- * @note You may need to use explicit tags in order to use data properly.
- *
- * @param elem1 First element to compare.
- * @param elem2 Second element to compare.
- * @param array Array that is being sorted (order is undefined).
- * @param hndl Handle optionally passed in while sorting.
- * @return -1 if first should go before second
- * 0 if first is equal to second
- * 1 if first should go after second
- */
-typedef SortFunc1D = function int (int elem1, int elem2, const int[] array, Handle hndl);
-
-/**
- * Sorts a custom 1D array. You must pass in a comparison function.
- *
- * @param array Array to sort.
- * @param array_size Size of the array to sort.
- * @param sortfunc Sort function.
- * @param hndl Optional Handle to pass through the comparison calls.
- */
-native void SortCustom1D(int[] array, int array_size, SortFunc1D sortfunc, Handle hndl=INVALID_HANDLE);
-
-/**
- * Sort comparison function for 2D array elements (sub-arrays).
- * @note You may need to use explicit tags in order to use data properly.
- *
- * @param elem1 First array to compare.
- * @param elem2 Second array to compare.
- * @param array Array that is being sorted (order is undefined).
- * @param hndl Handle optionally passed in while sorting.
- * @return -1 if first should go before second
- * 0 if first is equal to second
- * 1 if first should go after second
- */
-typeset SortFunc2D
-{
- function int (int[] elem1, int[] elem2, const int[][] array, Handle hndl);
- function int (char[] elem1, char[] elem2, const char[][] array, Handle hndl);
-};
-
-/**
- * Sorts a custom 2D array. You must pass in a comparison function.
- *
- * @param array Array to sort.
- * @param array_size Size of the major array to sort (first index, outermost).
- * @param sortfunc Sort comparison function to use.
- * @param hndl Optional Handle to pass through the comparison calls.
- */
-native void SortCustom2D(any[][] array, int array_size, SortFunc2D sortfunc, Handle hndl=INVALID_HANDLE);
-
-/**
- * Sort an ADT Array. Specify the type as Integer, Float, or String.
- *
- * @param array Array Handle to sort
- * @param order Sort order to use, same as other sorts.
- * @param type Data type stored in the ADT Array
- */
-native void SortADTArray(Handle array, SortOrder order, SortType type);
-
-/**
- * Sort comparison function for ADT Array elements. Function provides you with
- * indexes currently being sorted, use ADT Array functions to retrieve the
- * index values and compare.
- *
- * @param index1 First index to compare.
- * @param index2 Second index to compare.
- * @param array Array that is being sorted (order is undefined).
- * @param hndl Handle optionally passed in while sorting.
- * @return -1 if first should go before second
- * 0 if first is equal to second
- * 1 if first should go after second
- */
-typedef SortFuncADTArray = function int (int index1, int index2, Handle array, Handle hndl);
-
-/**
- * Custom sorts an ADT Array. You must pass in a comparison function.
- *
- * @param array Array Handle to sort
- * @param sortfunc Sort comparison function to use
- * @param hndl Optional Handle to pass through the comparison calls.
- */
-native void SortADTArrayCustom(Handle array, SortFuncADTArray sortfunc, Handle hndl=INVALID_HANDLE);
diff --git a/addons/sourcemod/scripting/include/sourcemod.inc b/addons/sourcemod/scripting/include/sourcemod.inc
deleted file mode 100644
index b889653ed..000000000
--- a/addons/sourcemod/scripting/include/sourcemod.inc
+++ /dev/null
@@ -1,748 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _sourcemod_included
- #endinput
-#endif
-#define _sourcemod_included
-
-/**
- * Plugin public information.
- */
-struct Plugin
-{
- public const char[] name; /**< Plugin Name */
- public const char[] description; /**< Plugin Description */
- public const char[] author; /**< Plugin Author */
- public const char[] version; /**< Plugin Version */
- public const char[] url; /**< Plugin URL */
-};
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-enum APLRes
-{
- APLRes_Success = 0, /**< Plugin should load */
- APLRes_Failure, /**< Plugin shouldn't load and should display an error */
- APLRes_SilentFailure /**< Plugin shouldn't load but do so silently */
-};
-
-methodmap GameData < Handle
-{
- // Loads a game config file.
- //
- // @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
- // and the extension should be omitted.
- // @return A handle to the game config file or null on failure.
- public native GameData(const char[] file);
-
- // Returns an offset value.
- //
- // @param key Key to retrieve from the offset section.
- // @return An offset, or -1 on failure.
- public native int GetOffset(const char[] key);
-
- // Gets the value of a key from the "Keys" section.
- //
- // @param key Key to retrieve from the Keys section.
- // @param buffer Destination string buffer.
- // @param maxlen Maximum length of output string buffer.
- // @return True if key existed, false otherwise.
- public native bool GetKeyValue(const char[] key, char[] buffer, int maxlen);
-
- // Finds an address calculation in a GameConfig file,
- // performs LoadFromAddress on it as appropriate, then returns the final address.
- //
- // @param name Name of the property to find.
- // @return An address calculated on success, or 0 on failure.
- public native Address GetAddress(const char[] name);
-
- // Returns a function address calculated from a signature.
- //
- // @param name Name of the property to find.
- // @return An address calculated on success, or 0 on failure.
- public native Address GetMemSig(const char[] name);
-};
-
-/**
- * Called when the plugin is fully initialized and all known external references
- * are resolved. This is only called once in the lifetime of the plugin, and is
- * paired with OnPluginEnd().
- *
- * If any run-time error is thrown during this callback, the plugin will be marked
- * as failed.
- */
-forward void OnPluginStart();
-
-/**
- * @deprecated Use AskPluginLoad2() instead.
- * If a plugin contains both AskPluginLoad() and AskPluginLoad2(), the former will
- * not be called, but old plugins with only AskPluginLoad() will work.
- */
-#pragma deprecated Use AskPluginLoad2() instead
-forward bool AskPluginLoad(Handle myself, bool late, char[] error, int err_max);
-
-/**
- * Called before OnPluginStart, in case the plugin wants to check for load failure.
- * This is called even if the plugin type is "private." Any natives from modules are
- * not available at this point. Thus, this forward should only be used for explicit
- * pre-emptive things, such as adding dynamic natives, setting certain types of load
- * filters (such as not loading the plugin for certain games).
- *
- * @note It is not safe to call externally resolved natives until OnPluginStart().
- * @note Any sort of RTE in this function will cause the plugin to fail loading.
- * @note If you do not return anything, it is treated like returning success.
- * @note If a plugin has an AskPluginLoad2(), AskPluginLoad() will not be called.
- *
- * @param myself Handle to the plugin.
- * @param late Whether or not the plugin was loaded "late" (after map load).
- * @param error Error message buffer in case load failed.
- * @param err_max Maximum number of characters for error message buffer.
- * @return APLRes_Success for load success, APLRes_Failure or APLRes_SilentFailure otherwise
- */
-forward APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max);
-
-/**
- * Called when the plugin is about to be unloaded.
- *
- * It is not necessary to close any handles or remove hooks in this function.
- * SourceMod guarantees that plugin shutdown automatically and correctly releases
- * all resources.
- */
-forward void OnPluginEnd();
-
-/**
- * Called when the plugin's pause status is changing.
- *
- * @param pause True if the plugin is being paused, false otherwise.
- */
-forward void OnPluginPauseChange(bool pause);
-
-/**
- * Called before every server frame. Note that you should avoid
- * doing expensive computations or declaring large local arrays.
- */
-forward void OnGameFrame();
-
-/**
- * Called when the map starts loading.
- *
- * @param mapName Name of the map
- */
-forward void OnMapInit(const char[] mapName);
-
-/**
- * Called when the map is loaded.
- */
-forward void OnMapStart();
-
-/**
- * Called right before a map ends.
- */
-forward void OnMapEnd();
-
-/**
- * Called when the map has loaded, servercfgfile (server.cfg) has been
- * executed, and all plugin configs are done executing. This is the best
- * place to initialize plugin functions which are based on cvar data.
- *
- * @note This will always be called once and only once per map. It will be
- * called after OnMapStart().
- */
-forward void OnConfigsExecuted();
-
-/**
- * This is called once, right after OnMapStart() but any time before
- * OnConfigsExecuted(). It is called after the "exec sourcemod.cfg"
- * command and all AutoExecConfig() exec commands have been added to
- * the ServerCommand() buffer.
- *
- * If you need to load per-map settings that override default values,
- * adding commands to the ServerCommand() buffer here will guarantee
- * that they're set before OnConfigsExecuted().
- *
- * Unlike OnMapStart() and OnConfigsExecuted(), this is not called on
- * late loads that occur after OnMapStart().
- */
-forward void OnAutoConfigsBuffered();
-
-/**
- * @deprecated Use OnConfigsExecuted() instead.
- */
-#pragma deprecated Use OnConfigsExecuted() instead
-forward void OnServerCfg();
-
-/**
- * Called after all plugins have been loaded. This is called once for
- * every plugin. If a plugin late loads, it will be called immediately
- * after OnPluginStart().
- */
-forward void OnAllPluginsLoaded();
-
-/**
- * Returns the calling plugin's Handle.
- *
- * @return Handle of the calling plugin.
- */
-native Handle GetMyHandle();
-
-/**
- * Returns an iterator that can be used to search through plugins.
- *
- * @return Handle to iterate with. Must be closed via
- * CloseHandle().
- * @error Invalid Handle.
- */
-native Handle GetPluginIterator();
-
-/**
- * Returns whether there are more plugins available in the iterator.
- *
- * @param iter Handle to the plugin iterator.
- * @return True on more plugins, false otherwise.
- * @error Invalid Handle.
- */
-native bool MorePlugins(Handle iter);
-
-/**
- * Returns the current plugin in the iterator and advances the iterator.
- *
- * @param iter Handle to the plugin iterator.
- * @return Current plugin the iterator is at, before
- * the iterator is advanced.
- * @error Invalid Handle.
- */
-native Handle ReadPlugin(Handle iter);
-
-/**
- * Returns a plugin's status.
- *
- * @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
- * @return Status code for the plugin.
- * @error Invalid Handle.
- */
-native PluginStatus GetPluginStatus(Handle plugin);
-
-/**
- * Retrieves a plugin's file name relative to the plugins folder.
- *
- * @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
- * @param buffer Buffer to the store the file name.
- * @param maxlength Maximum length of the name buffer.
- * @error Invalid Handle.
- */
-native void GetPluginFilename(Handle plugin, char[] buffer, int maxlength);
-
-/**
- * Retrieves whether or not a plugin is being debugged.
- *
- * @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
- * @return True if being debugged, false otherwise.
- * @error Invalid Handle.
- */
-native bool IsPluginDebugging(Handle plugin);
-
-/**
- * Retrieves a plugin's public info.
- *
- * @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
- * @param info Plugin info property to retrieve.
- * @param buffer Buffer to store info in.
- * @param maxlength Maximum length of buffer.
- * @return True on success, false if property is not available.
- * @error Invalid Handle.
- */
-native bool GetPluginInfo(Handle plugin, PluginInfo info, char[] buffer, int maxlength);
-
-/**
- * Finds a plugin by its order in the list from the "plugins list" server
- * "sm" command. You should not use this function to loop through all plugins,
- * use the iterator instead. Looping through all plugins using this native
- * is O(n^2), whereas using the iterator is O(n).
- *
- * @param order_num Number of the plugin as it appears in "sm plugins list".
- * @return Plugin Handle on success, INVALID_HANDLE if no plugin
- * matches the given number.
- */
-native Handle FindPluginByNumber(int order_num);
-
-/**
- * Causes the plugin to enter a failed state. An error will be thrown and
- * the plugin will be paused until it is unloaded or reloaded.
- *
- * For backwards compatibility, if no extra arguments are passed, no
- * formatting is applied. If one or more additional arguments is passed,
- * the string is formatted using Format(). If any errors are encountered
- * during formatting, both the format specifier string and an additional
- * error message are written.
- *
- * This function does not return, and no further code in the plugin is
- * executed.
- *
- * @param string Format specifier string.
- * @param ... Formatting arguments.
- * @error Always throws SP_ERROR_ABORT.
- */
-native void SetFailState(const char[] string, any ...);
-
-/**
- * Aborts the current callback and throws an error. This function
- * does not return in that no code is executed following it.
- *
- * @param fmt String format.
- * @param ... Format arguments.
- * @error Always!
- */
-native void ThrowError(const char[] fmt, any ...);
-
-/**
- * Logs a stack trace from the current function call. Code
- * execution continues after the call
- *
- * @param fmt Format string to send with the stack trace.
- * @param ... Format arguments.
- * @error Always logs a stack trace.
- */
-native void LogStackTrace(const char[] fmt, any ...);
-
-/**
- * Gets the system time as a unix timestamp.
- *
- * @param bigStamp Optional array to store the 64bit timestamp in.
- * @return 32bit timestamp (number of seconds since unix epoch).
- */
-native int GetTime(int bigStamp[2]={0,0});
-
-/**
- * Produces a date and/or time string value for a timestamp.
- *
- * See this URL for valid parameters:
- * http://cplusplus.com/reference/clibrary/ctime/strftime.html
- *
- * Note that available parameters depends on support from your operating system.
- * In particular, ones highlighted in yellow on that page are not currently
- * available on Windows and should be avoided for portable plugins.
- *
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param format Formatting rules (passing NULL_STRING will use the rules defined in sm_datetime_format).
- * @param stamp Optional time stamp.
- * @error Buffer too small or invalid time format.
- */
-native void FormatTime(char[] buffer, int maxlength, const char[] format, int stamp=-1);
-
-/**
- * Loads a game config file.
- *
- * @param file File to load. The path must be relative to the 'gamedata' folder under the config folder
- * and the extension should be omitted.
- * @return A handle to the game config file or INVALID_HANDLE on failure.
- */
-native GameData LoadGameConfigFile(const char[] file);
-
-/**
- * Returns an offset value.
- *
- * @param gc Game config handle.
- * @param key Key to retrieve from the offset section.
- * @return An offset, or -1 on failure.
- */
-native int GameConfGetOffset(Handle gc, const char[] key);
-
-/**
- * Gets the value of a key from the "Keys" section.
- *
- * @param gc Game config handle.
- * @param key Key to retrieve from the Keys section.
- * @param buffer Destination string buffer.
- * @param maxlen Maximum length of output string buffer.
- * @return True if key existed, false otherwise.
- */
-native bool GameConfGetKeyValue(Handle gc, const char[] key, char[] buffer, int maxlen);
-
-/**
- * Finds an address calculation in a GameConfig file,
- * performs LoadFromAddress on it as appropriate, then returns the final address.
- *
- * @param gameconf Game config handle.
- * @param name Name of the property to find.
- * @return An address calculated on success, or 0 on failure.
- */
-native Address GameConfGetAddress(Handle gameconf, const char[] name);
-
-/**
- * Returns the operating system's "tick count," which is a number of
- * milliseconds since the operating system loaded. This can be used
- * for basic benchmarks.
- *
- * @return Tick count in milliseconds.
- */
-native int GetSysTickCount();
-
-/**
- * Specifies that the given config file should be executed after plugin load.
- * OnConfigsExecuted() will not be called until the config file has executed,
- * but it will be called if the execution fails.
- *
- * @param autoCreate If true, and the config file does not exist, such a config
- * file will be automatically created and populated with
- * information from the plugin's registered cvars.
- * @param name Name of the config file, excluding the .cfg extension.
- * If empty, is assumed.
- * @param folder Folder under cfg/ to use. By default this is "sourcemod."
- */
-native void AutoExecConfig(bool autoCreate=true, const char[] name="", const char[] folder="sourcemod");
-
-/**
- * Registers a library name for identifying as a dependency to
- * other plugins.
- *
- * @param name Library name.
- */
-native void RegPluginLibrary(const char[] name);
-
-/**
- * Returns whether a library exists. This function should be considered
- * expensive; it should only be called on plugin to determine availability
- * of resources. Use OnLibraryAdded()/OnLibraryRemoved() to detect changes
- * in libraries.
- *
- * @param name Library name of a plugin or extension.
- * @return True if exists, false otherwise.
- */
-native bool LibraryExists(const char[] name);
-
-/**
- * Returns the status of an extension, by filename.
- *
- * @param name Extension name (like "sdktools.ext").
- * @param error Optional error message buffer.
- * @param maxlength Length of optional error message buffer.
- * @return -2 if the extension was not found.
- * -1 if the extension was found but failed to load.
- * 0 if the extension loaded but reported an error.
- * 1 if the extension is running without error.
- */
-native int GetExtensionFileStatus(const char[] name, char[] error="", int maxlength=0);
-
-/**
- * Called after a library is added.
- * A library is either a plugin name or extension name, as
- * exposed via its include file.
- *
- * @param name Library name.
- */
-forward void OnLibraryAdded(const char[] name);
-
-/**
- * Called right before a library is removed.
- * A library is either a plugin name or extension name, as
- * exposed via its include file.
- *
- * @param name Library name.
- */
-forward void OnLibraryRemoved(const char[] name);
-
-/**
- * Called when a plugin unloaded.
- *
- * @param plugin Plugin Handle who unloaded.
- */
-forward void OnNotifyPluginUnloaded(Handle plugin);
-
-#define MAPLIST_FLAG_MAPSFOLDER (1<<0) /**< On failure, use all maps in the maps folder. */
-#define MAPLIST_FLAG_CLEARARRAY (1<<1) /**< If an input array is specified, clear it before adding. */
-#define MAPLIST_FLAG_NO_DEFAULT (1<<2) /**< Do not read "default" or "mapcyclefile" on failure. */
-
-/**
- * Loads a map list to an ADT Array.
- *
- * A map list is a list of maps from a file. SourceMod allows easy configuration of
- * maplists through addons/sourcemod/configs/maplists.cfg. Each entry is given a
- * name and a file (for example, "rtv" => "rtv.cfg"), or a name and a redirection
- * (for example, "rtv" => "default"). This native will read a map list entry,
- * cache the file, and return the list of maps it holds.
- *
- * Serial change numbers are used to identify if a map list has changed. Thus, if
- * you pass a serial change number and it's equal to what SourceMod currently knows
- * about the map list, then SourceMod won't re-parse the file.
- *
- * If the maps end up being read from the maps folder (MAPLIST_FLAG_MAPSFOLDER), they
- * are automatically sorted in alphabetical, ascending order.
- *
- * Arrays created by this function are temporary and must be freed via CloseHandle().
- * Modifying arrays created by this function will not affect future return values or
- * or the contents of arrays returned to other plugins.
- *
- * @param array Array to store the map list. If INVALID_HANDLE, a new blank
- * array will be created. The blocksize should be at least 16;
- * otherwise results may be truncated. Items are added to the array
- * as strings. The array is never checked for duplicates, and it is
- * not read beforehand. Only the serial number is used to detect
- * changes.
- * @param serial Serial number to identify last known map list change. If -1, the
- * the value will not be checked. If the map list has since changed,
- * the serial is updated (even if -1 was passed). If there is an error
- * finding a valid maplist, then the serial is set to -1.
- * @param str Config name, or "default" for the default map list. Config names
- * should be somewhat descriptive. For example, the admin menu uses
- * a config name of "admin menu". The list names can be configured
- * by users in addons/sourcemod/configs/maplists.cfg.
- * @param flags MAPLIST_FLAG flags.
- * @return On failure:
- * INVALID_HANDLE is returned, the serial is set to -1, and the input
- * array (if any) is left unchanged.
- * On no change:
- * INVALID_HANDLE is returned, the serial is unchanged, and the input
- * array (if any) is left unchanged.
- * On success:
- * A valid array Handle is returned, containing at least one map string.
- * If an array was passed, the return value is equal to the passed Array
- * Handle. If the passed array was not cleared, it will have grown by at
- * least one item. The serial number is updated to a positive number.
- * @error Invalid array Handle that is not INVALID_HANDLE.
- */
-native Handle ReadMapList(Handle array=INVALID_HANDLE,
- int &serial=-1,
- const char[] str="default",
- int flags=MAPLIST_FLAG_CLEARARRAY);
-
-/**
- * Makes a compatibility binding for map lists. For example, if a function previously used
- * "clam.cfg" for map lists, this function will insert a "fake" binding to "clam.cfg" that
- * will be overridden if it's in the maplists.cfg file.
- *
- * @param name Configuration name that would be used with ReadMapList().
- * @param file Default file to use.
- */
-native void SetMapListCompatBind(const char[] name, const char[] file);
-
-/**
- * Called when a client has sent chat text. This must return either true or
- * false to indicate that a client is or is not spamming the server.
- *
- * The return value is a hint only. Core or another plugin may decide
- * otherwise.
- *
- * @param client Client index. The server (0) will never be passed.
- * @return True if client is spamming the server, false otherwise.
- */
-forward bool OnClientFloodCheck(int client);
-
-/**
- * Called after a client's flood check has been computed. This can be used
- * by antiflood algorithms to decay/increase flooding weights.
- *
- * Since the result from "OnClientFloodCheck" isn't guaranteed to be the
- * final result, it is generally a good idea to use this to play with other
- * algorithms nicely.
- *
- * @param client Client index. The server (0) will never be passed.
- * @param blocked True if client flooded last "say", false otherwise.
- */
-forward void OnClientFloodResult(int client, bool blocked);
-
-/**
- * Feature types.
- */
-enum FeatureType
-{
- /**
- * A native function call.
- */
- FeatureType_Native,
-
- /**
- * A named capability. This is distinctly different from checking for a
- * native, because the underlying functionality could be enabled on-demand
- * to improve loading time. Thus a native may appear to exist, but it might
- * be part of a set of features that are not compatible with the current game
- * or version of SourceMod.
- */
- FeatureType_Capability
-};
-
-/**
- * Feature statuses.
- */
-enum FeatureStatus
-{
- /**
- * Feature is available for use.
- */
- FeatureStatus_Available,
-
- /**
- * Feature is not available.
- */
- FeatureStatus_Unavailable,
-
- /**
- * Feature is not known at all.
- */
- FeatureStatus_Unknown
-};
-
-/**
- * Returns whether "GetFeatureStatus" will work. Using this native
- * or this function will not cause SourceMod to fail loading on older versions,
- * however, GetFeatureStatus will only work if this function returns true.
- *
- * @return True if GetFeatureStatus will work, false otherwise.
- */
-stock bool CanTestFeatures()
-{
- return LibraryExists("__CanTestFeatures__");
-}
-
-/**
- * Returns whether a feature exists, and if so, whether it is usable.
- *
- * @param type Feature type.
- * @param name Feature name.
- * @return Feature status.
- */
-native FeatureStatus GetFeatureStatus(FeatureType type, const char[] name);
-
-/**
- * Requires that a given feature is available. If it is not, SetFailState()
- * is called with the given message.
- *
- * @param type Feature type.
- * @param name Feature name.
- * @param fmt Message format string, or empty to use default.
- * @param ... Message format parameters, if any.
- */
-native void RequireFeature(FeatureType type, const char[] name,
- const char[] fmt="", any ...);
-
-/**
- * Represents how many bytes we can read from an address with one load
- */
-enum NumberType
-{
- NumberType_Int8,
- NumberType_Int16,
- NumberType_Int32
-};
-
-enum Address
-{
- Address_Null = 0 // a typical invalid result when an address lookup fails
-};
-
-/**
- * Load up to 4 bytes from a memory address.
- *
- * @param addr Address to a memory location.
- * @param size How many bytes should be read.
- * If loading a floating-point value, use NumberType_Int32.
- * @return The value that is stored at that address.
- * @error Address is null or pointing to reserved memory.
- */
-native any LoadFromAddress(Address addr, NumberType size);
-
-/**
- * Store up to 4 bytes to a memory address.
- *
- * @param addr Address to a memory location.
- * @param data Value to store at the address.
- * @param size How many bytes should be written.
- * If storing a floating-point value, use NumberType_Int32.
- * @param updateMemAccess If true, SourceMod will set read / write / exec permissions
- * on the memory page being written to.
- * @error Address is null or pointing to reserved memory.
- */
-native void StoreToAddress(Address addr, any data, NumberType size, bool updateMemAccess = true);
-
-methodmap FrameIterator < Handle {
- // Creates a stack frame iterator to build your own stack traces.
- // @return New handle to a FrameIterator.
- public native FrameIterator();
-
- // Advances the iterator to the next stack frame.
- // @return True if another frame was fetched and data can be successfully read.
- // @error No next element exception.
- public native bool Next();
-
- // Resets the iterator back to it's starting position.
- public native void Reset();
-
- // Returns the line number of the current function call.
- property int LineNumber {
- public native get();
- }
-
- // Gets the name of the current function in the call stack.
- //
- // @param buffer Buffer to copy to.
- // @param maxlen Max size of the buffer.
- public native void GetFunctionName(char[] buffer, int maxlen);
-
- // Gets the file path to the current call in the call stack.
- //
- // @param buffer Buffer to copy to.
- // @param maxlen Max size of the buffer.
- public native void GetFilePath(char[] buffer, int maxlen);
-}
-
-#include
-#include
-#include
diff --git a/addons/sourcemod/scripting/include/string.inc b/addons/sourcemod/scripting/include/string.inc
deleted file mode 100644
index 08d894af9..000000000
--- a/addons/sourcemod/scripting/include/string.inc
+++ /dev/null
@@ -1,585 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _string_included
- #endinput
-#endif
-#define _string_included
-
-/**
- * @global Unless otherwise noted, all string functions which take in a
- * writable buffer and maximum length should have the null terminator INCLUDED
- * in the length. This means that this is valid:
- * strcopy(string, sizeof(string), ...)
- */
-
-/**
- * Calculates the length of a string.
- *
- * @param str String to check.
- * @return Number of valid character bytes in the string.
- */
-native int strlen(const char[] str);
-
-/**
- * Tests whether a string is found inside another string.
- *
- * @param str String to search in.
- * @param substr Substring to find inside the original string.
- * @param caseSensitive If true (default), search is case sensitive.
- * If false, search is case insensitive.
- * @return -1 on failure (no match found). Any other value
- * indicates a position in the string where the match starts.
- */
-native int StrContains(const char[] str, const char[] substr, bool caseSensitive=true);
-
-/**
- * Compares two strings lexographically.
- *
- * @param str1 First string (left).
- * @param str2 Second string (right).
- * @param caseSensitive If true (default), comparison is case sensitive.
- * If false, comparison is case insensitive.
- * @return -1 if str1 < str2
- * 0 if str1 == str2
- * 1 if str1 > str2
- */
-native int strcmp(const char[] str1, const char[] str2, bool caseSensitive=true);
-
-/**
- * Compares two strings parts lexographically.
- *
- * @param str1 First string (left).
- * @param str2 Second string (right).
- * @param num Number of characters to compare.
- * @param caseSensitive If true (default), comparison is case sensitive.
- * If false, comparison is case insensitive.
- * @return -1 if str1 < str2
- * 0 if str1 == str2
- * 1 if str1 > str2
- */
-native int strncmp(const char[] str1, const char[] str2, int num, bool caseSensitive=true);
-
-/**
- * Backwards compatible stock - StrCompare is now strcmp
- * @deprecated Renamed to strcmp
- */
-#pragma deprecated Use strcmp() instead
-stock int StrCompare(const char[] str1, const char[] str2, bool caseSensitive=true)
-{
- return strcmp(str1, str2, caseSensitive);
-}
-
-/**
- * Returns whether two strings are equal.
- *
- * @param str1 First string (left).
- * @param str2 Second string (right).
- * @param caseSensitive If true (default), comparison is case sensitive.
- * If false, comparison is case insensitive.
- * @return True if equal, false otherwise.
- */
-stock bool StrEqual(const char[] str1, const char[] str2, bool caseSensitive=true)
-{
- return (strcmp(str1, str2, caseSensitive) == 0);
-}
-
-/**
- * Copies one string to another string.
- * @note If the destination buffer is too small to hold the source string, the
- * destination will be truncated.
- *
- * @param dest Destination string buffer to copy to.
- * @param destLen Destination buffer length (includes null terminator).
- * @param source Source string buffer to copy from.
- * @return Number of cells written.
- */
-native int strcopy(char[] dest, int destLen, const char[] source);
-
-/**
- * Backwards compatibility stock - use strcopy
- * @deprecated Renamed to strcopy
- */
-#pragma deprecated Use strcopy() instead
-stock int StrCopy(char[] dest, int destLen, const char[] source)
-{
- return strcopy(dest, destLen, source);
-}
-
-/**
- * Formats a string according to the SourceMod format rules (see documentation).
- *
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @return Number of cells written.
- */
-native int Format(char[] buffer, int maxlength, const char[] format, any ...);
-
-/**
- * Formats a string according to the SourceMod format rules (see documentation).
- * @note This is the same as Format(), except none of the input buffers can
- * overlap the same memory as the output buffer. Since this security
- * check is removed, it is slightly faster.
- *
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param format Formatting rules.
- * @param ... Variable number of format parameters.
- * @return Number of cells written.
- */
-native int FormatEx(char[] buffer, int maxlength, const char[] format, any ...);
-
-/**
- * Formats a string according to the SourceMod format rules (see documentation).
- * @note This is the same as Format(), except it grabs parameters from a
- * parent parameter stack, rather than a local. This is useful for
- * implementing your own variable argument functions.
- *
- * @param buffer Destination string buffer.
- * @param maxlength Maximum length of output string buffer.
- * @param format Formatting rules.
- * @param varpos Argument number which contains the '...' symbol.
- * Note: Arguments start at 1.
- * @return Number of bytes written.
- * @error Invalid argument index.
- */
-native int VFormat(char[] buffer, int maxlength, const char[] format, int varpos);
-
-/**
- * Converts a string to an integer.
- *
- * @param str String to convert.
- * @param nBase Numerical base to use. 10 is default.
- * @return Integer conversion of string, or 0 on failure.
- */
-native int StringToInt(const char[] str, int nBase=10);
-
-/**
- * Converts a string to an integer with some more options.
- *
- * @param str String to convert.
- * @param result Variable to store the result in.
- * @param nBase Numerical base to use. 10 is default.
- * @return Number of characters consumed.
- */
-native int StringToIntEx(const char[] str, int &result, int nBase=10);
-
-/**
- * Converts a string to a 64-bit integer.
- *
- * @param str String to convert.
- * @param result Array to store the upper and lower
- * 32-bits of the 64-bit integer.
- * @param nBase Numerical base to use. 10 is default.
- * @return Number of characters consumed.
- */
-native int StringToInt64(const char[] str, int result[2], int nBase=10);
-
-/**
- * Converts an integer to a string.
- *
- * @param num Integer to convert.
- * @param str Buffer to store string in.
- * @param maxlength Maximum length of string buffer.
- * @return Number of cells written to buffer.
- */
-native int IntToString(int num, char[] str, int maxlength);
-
-/**
- * Converts a 64-bit integer to a string.
- *
- * @param num Array containing the upper and lower
- * 32-bits of a 64-bit integer.
- * @param str Buffer to store string in.
- * @param maxlength Maximum length of string buffer.
- * @return Number of characters written to the buffer,
- * not including the null terminator.
- */
-native int Int64ToString(const int num[2], char[] str, int maxlength);
-
-/**
- * Converts a string to a floating point number.
- *
- * @param str String to convert to a float.
- * @return Floating point result, or 0.0 on error.
- */
-native float StringToFloat(const char[] str);
-
-/**
- * Converts a string to a floating point number with some more options.
- *
- * @param str String to convert to a float.
- * @param result Variable to store result in.
- * @return Number of characters consumed.
- */
-native int StringToFloatEx(const char[] str, float &result);
-
-/**
- * Converts a floating point number to a string.
- *
- * @param num Floating point number to convert.
- * @param str Buffer to store string in.
- * @param maxlength Maximum length of string buffer.
- * @return Number of cells written to buffer.
- */
-native int FloatToString(float num, char[] str, int maxlength);
-
-/**
- * Finds the first "argument" in a string; either a set of space
- * terminated characters, or a fully quoted string. After the
- * argument is found, whitespace is read until the next portion
- * of the string is reached. If nothing remains, -1 is returned.
- * Otherwise, the index to the first character is returned.
- *
- * @param source Source input string.
- * @param arg Stores argument read from string.
- * @param argLen Maximum length of argument buffer.
- * @return Index to next piece of string, or -1 if none.
- */
-native int BreakString(const char[] source, char[] arg, int argLen);
-
-/**
- * Backwards compatibility stock - use BreakString
- * @deprecated Renamed to BreakString.
- */
-#pragma deprecated Use BreakString() instead
-stock int StrBreak(const char[] source, char[] arg, int argLen)
-{
- return BreakString(source, arg, argLen);
-}
-
-/**
- * Removes whitespace characters from the beginning and end of a string.
- *
- * @param str The string to trim.
- * @return Number of bytes written (UTF-8 safe).
- */
-native int TrimString(char[] str);
-
-/**
- * Returns text in a string up until a certain character sequence is reached.
- *
- * @param source Source input string.
- * @param split A string which specifies a search point to break at.
- * @param part Buffer to store string part.
- * @param partLen Maximum length of the string part buffer.
- * @return -1 if no match was found; otherwise, an index into source
- * marking the first index after the searched text. The
- * index is always relative to the start of the input string.
- */
-native int SplitString(const char[] source, const char[] split, char[] part, int partLen);
-
-/**
- * Given a string, replaces all occurrences of a search string with a
- * replacement string.
- *
- * @param text String to perform search and replacements on.
- * @param maxlength Maximum length of the string buffer.
- * @param search String to search for.
- * @param replace String to replace the search string with.
- * @param caseSensitive If true (default), search is case sensitive.
- * @return Number of replacements that were performed.
- * @error 'search' parameter is empty.
- */
-native int ReplaceString(char[] text, int maxlength, const char[] search, const char[] replace, bool caseSensitive=true);
-
-/**
- * Given a string, replaces the first occurrence of a search string with a
- * replacement string.
- *
- * @param text String to perform search and replacements on.
- * @param maxlength Maximum length of the string buffer.
- * @param search String to search for.
- * @param replace String to replace the search string with.
- * @param searchLen If higher than -1, its value will be used instead of
- * a strlen() call on the search parameter.
- * @param replaceLen If higher than -1, its value will be used instead of
- * a strlen() call on the replace parameter.
- * @param caseSensitive If true (default), search is case sensitive.
- * @return Index into the buffer (relative to the start) from where
- * the last replacement ended, or -1 if no replacements were
- * made.
- * @error 'search' parameter is empty.
- */
-native int ReplaceStringEx(char[] text, int maxlength, const char[] search, const char[] replace, int searchLen=-1, int replaceLen=-1, bool caseSensitive=true);
-
-/**
- * Returns the number of bytes a character is using. This is
- * for multi-byte characters (UTF-8). For normal ASCII characters,
- * this will return 1.
- *
- * @param source Source input string.
- * @return Number of bytes the current character uses.
- */
-native int GetCharBytes(const char[] source);
-
-/**
- * Returns whether a character is an ASCII alphabet character.
- *
- * @note Multi-byte characters will always return false.
- *
- * @param chr Character to test.
- * @return True if character is alphabetical, otherwise false.
- */
-native bool IsCharAlpha(int chr);
-
-/**
- * Returns whether a character is numeric.
- *
- * @note Multi-byte characters will always return false.
- *
- * @param chr Character to test.
- * @return True if character is numeric, otherwise false.
- */
-native bool IsCharNumeric(int chr);
-
-/**
- * Returns whether a character is whitespace.
- *
- * @note Multi-byte characters will always return false.
- *
- * @param chr Character to test.
- * @return True if character is whitespace, otherwise false.
- */
-native bool IsCharSpace(int chr);
-
-/**
- * Returns if a character is multi-byte or not.
- *
- * @param chr Character to test.
- * @return 0 for a normal 7-bit ASCII character,
- * otherwise number of bytes in multi-byte character.
- */
-native int IsCharMB(int chr);
-
-/**
- * Returns whether an alphabetic character is uppercase.
- *
- * @note Multi-byte characters will always return false.
- *
- * @param chr Character to test.
- * @return True if character is uppercase, otherwise false.
- */
-native bool IsCharUpper(int chr);
-
-/**
- * Returns whether an alphabetic character is lowercase.
- *
- * @note Multi-byte characters will always return false.
- *
- * @param chr Character to test.
- * @return True if character is lowercase, otherwise false.
- */
-native bool IsCharLower(int chr);
-
-/**
- * Strips a quote pair off a string if it exists. That is, the following
- * replace rule is applied once: ^"(.*)"$ -> ^\1$
- *
- * Note that the leading and trailing quotes will only be removed if both
- * exist. Otherwise, the string is left unmodified. This function should
- * be considered O(k) (all characters get shifted down).
- *
- * @param text String to modify (in place).
- * @return True if string was modified, false if there was no
- * set of quotes.
- */
-native bool StripQuotes(char[] text);
-
-/**
- * Converts a lowercase character to its uppercase counterpart.
- *
- * @param chr Character to convert.
- * @return Uppercase character on success,
- * no change on failure.
- */
-stock int CharToUpper(int chr)
-{
- if (IsCharLower(chr))
- {
- return (chr & ~(1<<5));
- }
-
- return chr;
-}
-
-/**
- * Converts an uppercase character to its lowercase counterpart.
- *
- * @param chr Character to convert.
- * @return Lowercase character on success,
- * no change on failure.
- */
-stock int CharToLower(int chr)
-{
- if (IsCharUpper(chr))
- {
- return (chr | (1<<5));
- }
-
- return chr;
-}
-
-/**
- * Finds the first occurrence of a character in a string.
- *
- * @param str String.
- * @param c Character to search for.
- * @param reverse False (default) to search forward, true to search
- * backward.
- * @return The index of the first occurrence of the character
- * in the string, or -1 if the character was not found.
- */
-stock int FindCharInString(const char[] str, char c, bool reverse = false)
-{
- int len = strlen(str);
-
- if (!reverse)
- {
- for (int i = 0; i < len; i++)
- {
- if (str[i] == c)
- {
- return i;
- }
- }
- }
- else
- {
- for (int i = len - 1; i >= 0; i--)
- {
- if (str[i] == c)
- {
- return i;
- }
- }
- }
-
- return -1;
-}
-
-/**
- * Concatenates one string onto another.
- *
- * @param buffer String to append to.
- * @param maxlength Maximum length of entire buffer.
- * @param source Source string to concatenate.
- * @return Number of bytes written.
- */
-stock int StrCat(char[] buffer, int maxlength, const char[] source)
-{
- int len = strlen(buffer);
- if (len >= maxlength)
- {
- return 0;
- }
-
- return Format(buffer[len], maxlength-len, "%s", source);
-}
-
-/**
- * Breaks a string into pieces and stores each piece into an array of buffers.
- *
- * @param text The string to split.
- * @param split The string to use as a split delimiter.
- * @param buffers An array of string buffers (2D array).
- * @param maxStrings Number of string buffers (first dimension size).
- * @param maxStringLength Maximum length of each string buffer.
- * @param copyRemainder False (default) discard excess pieces, true to ignore
- * delimiters after last piece.
- * @return Number of strings retrieved.
- */
-stock int ExplodeString(const char[] text, const char[] split, char[][] buffers, int maxStrings,
- int maxStringLength, bool copyRemainder = false)
-{
- int reloc_idx, idx, total;
-
- if (maxStrings < 1 || !split[0])
- {
- return 0;
- }
-
- while ((idx = SplitString(text[reloc_idx], split, buffers[total], maxStringLength)) != -1)
- {
- reloc_idx += idx;
- if (++total == maxStrings)
- {
- if (copyRemainder)
- {
- strcopy(buffers[total-1], maxStringLength, text[reloc_idx-idx]);
- }
- return total;
- }
- }
-
- strcopy(buffers[total++], maxStringLength, text[reloc_idx]);
-
- return total;
-}
-
-/**
- * Joins an array of strings into one string, with a "join" string inserted in
- * between each given string. This function complements ExplodeString.
- *
- * @param strings An array of strings.
- * @param numStrings Number of strings in the array.
- * @param join The join string to insert between each string.
- * @param buffer Output buffer to write the joined string to.
- * @param maxLength Maximum length of the output buffer.
- * @return Number of bytes written to the output buffer.
- */
-stock int ImplodeStrings(const char[][] strings, int numStrings, const char[] join, char[] buffer, int maxLength)
-{
- int total, length, part_length;
- int join_length = strlen(join);
- for (int i=0; i(LoadFromAddress(s_addr_TheEscapeRoute, NumberType_Int32));
-}
-
-/*methodmap NavConnectVector
-{
- public TerrorNavArea Element(int i) {
- return LoadFromAddress(this.m_pData + view_as(8 * i + 4), NumberType_Int32);
- }
- public int Count() {
- return LoadFromAddress(this.m_pData, NumberType_Int32);
- }
- property Address m_pData {
- public get() { return LoadFromAddress(view_as(this), NumberType_Int32); }
- }
-}*/
-
-methodmap TerrorNavArea
-{
- public TerrorNavArea(float vPos[3]) {
- return view_as(L4D2Direct_GetTerrorNavArea(vPos, 120.0));
- }
- public TerrorNavArea GetNextEscapeStep(int &traverse_type = 0) {
- return SDKCall(s_hSDKCall_GetNextEscapeStep, this, traverse_type);
- }
- public bool IsValidForWanderingPopulation() {
- return SDKCall(s_hSDKCall_IsValidForWanderingPopulation, this);
- }
- public void GetCenter(float vec[3]) {
- vec[0] = LoadFromAddress(view_as(this) + view_as(s_iOffs_m_vecCenter), NumberType_Int32);
- vec[1] = LoadFromAddress(view_as(this) + view_as(s_iOffs_m_vecCenter + 4), NumberType_Int32);
- vec[2] = LoadFromAddress(view_as(this) + view_as(s_iOffs_m_vecCenter + 8), NumberType_Int32);
- }
- property bool m_isUnderwater {
- public get() { return !!LoadFromAddress(view_as(this) + view_as(s_iOffs_m_bIsUnderwater), NumberType_Int8); }
- }
- property int m_activeSurvivors {
- public get() { return LoadFromAddress(view_as(this) + view_as(s_iOffs_m_activeSurvivors), NumberType_Int8); }
- }
- /*public NavConnectVector GetConnectVector(int dir) {
- if (g_bLeft4Dead2) {
- return LoadFromAddress(view_as(this) + view_as(s_iOffs_m_connect + 4 * dir), NumberType_Int32);
- }
- }*/
-}
-#define NULL_NAV_AREA view_as(0)
-
-methodmap CZombieManager
-{
- public bool IsSpaceForZombieHere(const float vPos[3]) {
- return SDKCall(s_hSDKCall_IsSpaceForZombieHere, L4D_GetPointer(POINTER_ZOMBIEMANAGER), vPos);
- }
-}
-
-void LoadSDK()
-{
- Handle conf = LoadGameConfigFile(GAMEDATA_FILE);
- if (!conf)
- SetFailState("Missing gamedata \""...GAMEDATA_FILE..."\"");
-
- StartPrepSDKCall(SDKCall_Raw);
- if (!PrepSDKCall_SetFromConf(conf, SDKConf_Signature, KEY_GETPOSITIONONPATH))
- SetFailState("Missing signature "...KEY_GETPOSITIONONPATH..."");
- PrepSDKCall_AddParameter(SDKType_Float, SDKPass_Plain);
- PrepSDKCall_AddParameter(SDKType_Vector, SDKPass_ByRef, _, VENCODE_FLAG_COPYBACK);
- s_hSDKCall_GetPositionOnPath = EndPrepSDKCall();
- if (s_hSDKCall_GetPositionOnPath == null)
- SetFailState("Failed to prepare SDKCall for \""...KEY_GETPOSITIONONPATH..."\"");
-
- StartPrepSDKCall(SDKCall_Raw);
- if (!PrepSDKCall_SetFromConf(conf, SDKConf_Signature, KEY_ISVALIDFORWANDERINGPOPULATION))
- SetFailState("Missing signature "...KEY_ISVALIDFORWANDERINGPOPULATION..."");
- PrepSDKCall_SetReturnInfo(SDKType_Bool, SDKPass_Plain);
- s_hSDKCall_IsValidForWanderingPopulation = EndPrepSDKCall();
- if (s_hSDKCall_IsValidForWanderingPopulation == null)
- SetFailState("Failed to prepare SDKCall for \""...KEY_ISVALIDFORWANDERINGPOPULATION..."\"");
-
- StartPrepSDKCall(SDKCall_Raw);
- if (!PrepSDKCall_SetFromConf(conf, SDKConf_Signature, KEY_ISSPACEFORZOMBIEHERE))
- SetFailState("Missing signature "...KEY_ISSPACEFORZOMBIEHERE..."");
- PrepSDKCall_AddParameter(SDKType_Vector, SDKPass_ByRef);
- PrepSDKCall_SetReturnInfo(SDKType_Bool, SDKPass_Plain);
- s_hSDKCall_IsSpaceForZombieHere = EndPrepSDKCall();
- if (s_hSDKCall_IsSpaceForZombieHere == null)
- SetFailState("Failed to prepare SDKCall for \""...KEY_ISSPACEFORZOMBIEHERE..."\"");
-
- StartPrepSDKCall(SDKCall_Raw);
- if (!PrepSDKCall_SetFromConf(conf, SDKConf_Signature, KEY_GETNEXTESCAPESTEP))
- SetFailState("Missing signature "...KEY_GETNEXTESCAPESTEP..."");
- PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Pointer, VDECODE_FLAG_ALLOWNULL);
- PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain);
- s_hSDKCall_GetNextEscapeStep = EndPrepSDKCall();
- if (s_hSDKCall_GetNextEscapeStep == null)
- SetFailState("Failed to prepare SDKCall for \""...KEY_GETNEXTESCAPESTEP..."\"");
-
- s_addr_TheEscapeRoute = GameConfGetAddress(conf, KEY_THEESCAPEROUTE);
- if (s_addr_TheEscapeRoute == Address_Null)
- SetFailState("Missing address \""...KEY_THEESCAPEROUTE..."\"");
-
- s_iOffs_m_vecCenter = GameConfGetOffset(conf, KEY_m_vecCenter);
- if (s_iOffs_m_vecCenter == -1)
- SetFailState("Missing offset \""...KEY_m_vecCenter..."\"");
-
- s_iOffs_m_bIsUnderwater = GameConfGetOffset(conf, KEY_m_bIsUnderwater);
- if (s_iOffs_m_bIsUnderwater == -1)
- SetFailState("Missing offset \""...KEY_m_bIsUnderwater..."\"");
-
- s_iOffs_m_activeSurvivors = GameConfGetOffset(conf, KEY_m_activeSurvivors);
- if (s_iOffs_m_activeSurvivors == -1)
- SetFailState("Missing offset \""...KEY_m_activeSurvivors..."\"");
-
- /*if (g_bLeft4Dead2)
- {
- s_iOffs_m_connect = GameConfGetOffset(conf, KEY_m_connect);
- if (s_iOffs_m_connect == -1)
- SetFailState("Missing offset \""...KEY_m_connect..."\"");
- }*/
-
- delete conf;
-}
\ No newline at end of file
diff --git a/addons/sourcemod/scripting/include/testing.inc b/addons/sourcemod/scripting/include/testing.inc
deleted file mode 100644
index d9db40d10..000000000
--- a/addons/sourcemod/scripting/include/testing.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-static int TestNumber = 0;
-static char TestContext[255];
-
-stock void SetTestContext(const char[] context)
-{
- strcopy(TestContext, sizeof(TestContext), context);
-}
-
-stock void AssertEq(const char[] text, int cell1, int cell2)
-{
- TestNumber++;
- if (cell1 == cell2)
- {
- PrintToServer("[%d] %s: %s == %d OK", TestNumber, TestContext, text, cell2);
- }
- else
- {
- PrintToServer("[%d] %s FAIL: %s should be %d, got %d", TestNumber, TestContext, text, cell2, cell1);
- ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
- }
-}
-
-stock void AssertFalse(const char[] text, bool value)
-{
- TestNumber++;
- if (!value)
- {
- PrintToServer("[%d] %s: %s == false OK", TestNumber, TestContext, text, value);
- }
- else
- {
- PrintToServer("[%d] %s FAIL: %s should be false, got true", TestNumber, TestContext, text);
- ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
- }
-}
-
-stock void AssertTrue(const char[] text, bool value)
-{
- TestNumber++;
- if (value)
- {
- PrintToServer("[%d] %s: %s == true OK", TestNumber, TestContext, text, value);
- }
- else
- {
- PrintToServer("[%d] %s FAIL: %s should be true, got false", TestNumber, TestContext, text);
- ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
- }
-}
-
-stock void AssertStrEq(const char[] text, const char[] value, const char[] expected)
-{
- TestNumber++;
- if (StrEqual(value, expected))
- {
- PrintToServer("[%d] %s: '%s' == '%s' OK", TestNumber, TestContext, text, expected);
- }
- else
- {
- PrintToServer("[%d] %s FAIL: %s should be '%s', got '%s'", TestNumber, TestContext, text, expected, value);
- ThrowError("test %d (%s in %s) failed", TestNumber, text, TestContext);
- }
-}
diff --git a/addons/sourcemod/scripting/include/textparse.inc b/addons/sourcemod/scripting/include/textparse.inc
deleted file mode 100644
index 34e99e40c..000000000
--- a/addons/sourcemod/scripting/include/textparse.inc
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet :
- * =============================================================================
- * SourceMod (C)2004-2014 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _textparse_included
- #endinput
-#endif
-#define _textparse_included
-
-
-/********************************
- * Everything below describes the SMC Parse, or "SourceMod Configuration" format.
- * This parser is entirely event based. You must hook events to receive data.
- * The file format itself is nearly identical to Valve's KeyValues format.
- ********************************/
-
-/**
- * Parse result directive.
- */
-enum SMCResult
-{
- SMCParse_Continue, /**< Continue parsing */
- SMCParse_Halt, /**< Stop parsing here */
- SMCParse_HaltFail /**< Stop parsing and return failure */
-};
-
-/**
- * Parse error codes.
- */
-enum SMCError
-{
- SMCError_Okay = 0, /**< No error */
- SMCError_StreamOpen, /**< Stream failed to open */
- SMCError_StreamError, /**< The stream died... somehow */
- SMCError_Custom, /**< A custom handler threw an error */
- SMCError_InvalidSection1, /**< A section was declared without quotes, and had extra tokens */
- SMCError_InvalidSection2, /**< A section was declared without any header */
- SMCError_InvalidSection3, /**< A section ending was declared with too many unknown tokens */
- SMCError_InvalidSection4, /**< A section ending has no matching beginning */
- SMCError_InvalidSection5, /**< A section beginning has no matching ending */
- SMCError_InvalidTokens, /**< There were too many unidentifiable strings on one line */
- SMCError_TokenOverflow, /**< The token buffer overflowed */
- SMCError_InvalidProperty1 /**< A property was declared outside of any section */
-};
-
-/**
- * Called when parsing is started.
- *
- * @param smc The SMC Parse Handle.
- */
-typedef SMC_ParseStart = function void (SMCParser smc);
-
-/**
- * Called when the parser is entering a new section or sub-section.
- *
- * Note: Enclosing quotes are always stripped.
- *
- * @param smc The SMC Parser.
- * @param name String containing section name.
- * @param opt_quotes True if the section name was quote-enclosed in the file.
- * @return An SMCResult action to take.
- */
-typedef SMC_NewSection = function SMCResult (SMCParser smc, const char[] name, bool opt_quotes);
-
-/**
- * Called when the parser finds a new key/value pair.
- *
- * Note: Enclosing quotes are always stripped.
- *
- * @param smc The SMCParser.
- * @param key String containing key name.
- * @param value String containing value name.
- * @param key_quotes Whether or not the key was enclosed in quotes.
- * @param value_quotes Whether or not the value was enclosed in quotes.
- * @return An SMCResult action to take.
- */
-typedef SMC_KeyValue = function SMCResult (SMCParser smc, const char[] key, const char[] value, bool key_quotes, bool value_quotes);
-
-/** Called when the parser finds the end of the current section.
- *
- * @param smc The SMCParser.
- * @return An SMCResult action to take.
- */
-typedef SMC_EndSection = function SMCResult (SMCParser smc);
-
-/**
- * Called when parsing is halted.
- *
- * @param smc The SMCParser.
- * @param halted True if abnormally halted, false otherwise.
- * @param failed True if parsing failed, false otherwise.
- */
-typedef SMC_ParseEnd = function void (SMCParser smc, bool halted, bool failed);
-
-/**
- * Callback for whenever a new line of text is about to be parsed.
- *
- * @param smc The SMCParser.
- * @param line A string containing the raw line from the file.
- * @param lineno The line number it occurs on.
- * @return An SMCResult action to take.
- */
-typedef SMC_RawLine = function SMCResult (SMCParser smc, const char[] line, int lineno);
-
-// An SMCParser is a callback-driven parser for SourceMod configuration files.
-// SMC files are similar to Valve KeyValues format, with two key differences:
-// (1) SMC cannot handle single-item entries (that is, a key with no value).
-// (2) SMC files can have multi-line comment blocks, whereas KeyValues cannot.
-methodmap SMCParser < Handle
-{
- // Create a new SMC file format parser.
- public native SMCParser();
-
- // Parses an SMC file.
- //
- // @param file A string containing the file path.
- // @param line An optional variable to store the last line number read.
- // @param col An optional variable to store the last column number read.
- // @return An SMCParseError result.
- public native SMCError ParseFile(const char[] file, int &line = 0, int &col = 0);
-
- // Sets the callback for receiving SMC_ParseStart events.
- property SMC_ParseStart OnStart {
- public native set(SMC_ParseStart func);
- }
-
- // Sets the callback for receiving SMC_ParseEnd events.
- property SMC_ParseEnd OnEnd {
- public native set(SMC_ParseEnd func);
- }
-
- // Sets the callback for receiving SMC_NewSection events.
- property SMC_NewSection OnEnterSection {
- public native set(SMC_NewSection func);
- }
-
- // Sets the callback for receiving SMC_EndSection events.
- property SMC_EndSection OnLeaveSection {
- public native set(SMC_EndSection func);
- }
-
- // Sets the callback for receiving SMC_KeyValue events.
- property SMC_KeyValue OnKeyValue {
- public native set(SMC_KeyValue func);
- }
-
- // Sets the callback for receiving SMC_RawLine events.
- property SMC_RawLine OnRawLine {
- public native set(SMC_RawLine func);
- }
-
- // Gets an error string for an SMCError code.
- //
- // @param error The SMCParseError code.
- // @param buffer A string buffer for the error (contents undefined on failure).
- // @param buf_max The maximum size of the buffer.
- // @return The number of characters written to buffer.
- public native void GetErrorString(SMCError error, char[] buffer, int buf_max);
-};
-
-/**
- * Creates a new SMC file format parser. This is used to set parse hooks.
- *
- * @return A new Handle to an SMC Parse structure.
- */
-native SMCParser SMC_CreateParser();
-
-/**
- * Parses an SMC file.
- *
- * @param smc A Handle to an SMC Parse structure.
- * @param file A string containing the file path.
- * @param line An optional by reference cell to store the last line number read.
- * @param col An optional by reference cell to store the last column number read.
- * @return An SMCParseError result.
- * @error Invalid or corrupt Handle.
- */
-native SMCError SMC_ParseFile(Handle smc, const char[] file, int &line=0, int &col=0);
-
-/**
- * Gets an error string for an SMCError code.
- *
- * @note SMCError_Okay returns false.
- * @note SMCError_Custom (which is thrown on SMCParse_HaltFail) returns false.
- *
- * @param error The SMCParseError code.
- * @param buffer A string buffer for the error (contents undefined on failure).
- * @param buf_max The maximum size of the buffer.
- * @return True on success, false otherwise.
- */
-native bool SMC_GetErrorString(SMCError error, char[] buffer, int buf_max);
-
-/**
- * Sets the SMC_ParseStart function of a parse Handle.
- *
- * @param smc Handle to an SMC Parse.
- * @param func SMC_ParseStart function.
- * @error Invalid or corrupt Handle.
- */
-native void SMC_SetParseStart(Handle smc, SMC_ParseStart func);
-
-/**
- * Sets the SMC_ParseEnd of a parse handle.
- *
- * @param smc Handle to an SMC Parse.
- * @param func SMC_ParseEnd function.
- * @error Invalid or corrupt Handle.
- */
-native void SMC_SetParseEnd(Handle smc, SMC_ParseEnd func);
-
-/**
- * Sets the three main reader functions.
- *
- * @param smc An SMC parse Handle.
- * @param ns An SMC_NewSection function pointer.
- * @param kv An SMC_KeyValue function pointer.
- * @param es An SMC_EndSection function pointer.
- */
-native void SMC_SetReaders(Handle smc, SMC_NewSection ns, SMC_KeyValue kv, SMC_EndSection es);
-
-/**
- * Sets a raw line reader on an SMC parser Handle.
- *
- * @param smc Handle to an SMC Parse.
- * @param func SMC_RawLine function.
- */
-native void SMC_SetRawLine(Handle smc, SMC_RawLine func);
diff --git a/addons/sourcemod/scripting/include/tf2.inc b/addons/sourcemod/scripting/include/tf2.inc
deleted file mode 100644
index fd20ce102..000000000
--- a/addons/sourcemod/scripting/include/tf2.inc
+++ /dev/null
@@ -1,500 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _tf2_included
- #endinput
-#endif
-#define _tf2_included
-
-#define TF_STUNFLAG_SLOWDOWN (1 << 0) /**< activates slowdown modifier */
-#define TF_STUNFLAG_BONKSTUCK (1 << 1) /**< bonk sound, stuck */
-#define TF_STUNFLAG_LIMITMOVEMENT (1 << 2) /**< disable forward/backward movement */
-#define TF_STUNFLAG_CHEERSOUND (1 << 3) /**< cheering sound */
-#define TF_STUNFLAG_NOSOUNDOREFFECT (1 << 5) /**< no sound or particle */
-#define TF_STUNFLAG_THIRDPERSON (1 << 6) /**< panic animation */
-#define TF_STUNFLAG_GHOSTEFFECT (1 << 7) /**< ghost particles */
-#define TF_STUNFLAG_SOUND (1 << 8) /**< sound */
-
-#define TF_STUNFLAGS_LOSERSTATE TF_STUNFLAG_SLOWDOWN|TF_STUNFLAG_NOSOUNDOREFFECT|TF_STUNFLAG_THIRDPERSON
-#define TF_STUNFLAGS_GHOSTSCARE TF_STUNFLAG_GHOSTEFFECT|TF_STUNFLAG_THIRDPERSON
-#define TF_STUNFLAGS_SMALLBONK TF_STUNFLAG_THIRDPERSON|TF_STUNFLAG_SLOWDOWN
-#define TF_STUNFLAGS_NORMALBONK TF_STUNFLAG_BONKSTUCK
-#define TF_STUNFLAGS_BIGBONK TF_STUNFLAG_CHEERSOUND|TF_STUNFLAG_BONKSTUCK
-
-enum TFClassType
-{
- TFClass_Unknown = 0,
- TFClass_Scout,
- TFClass_Sniper,
- TFClass_Soldier,
- TFClass_DemoMan,
- TFClass_Medic,
- TFClass_Heavy,
- TFClass_Pyro,
- TFClass_Spy,
- TFClass_Engineer
-};
-
-enum TFTeam
-{
- TFTeam_Unassigned = 0,
- TFTeam_Spectator = 1,
- TFTeam_Red = 2,
- TFTeam_Blue = 3
-};
-
-enum TFCond
-{
- TFCond_Slowed = 0, //0: Revving Minigun, Sniper Rifle. Gives zoomed/revved pose
- TFCond_Zoomed, //1: Sniper Rifle zooming
- TFCond_Disguising, //2: Disguise smoke
- TFCond_Disguised, //3: Disguise
- TFCond_Cloaked, //4: Cloak effect
- TFCond_Ubercharged, //5: Invulnerability, removed when being healed or by another Uber effect
- TFCond_TeleportedGlow, //6: Teleport trail effect
- TFCond_Taunting, //7: Used for taunting, can remove to stop taunting
- TFCond_UberchargeFading, //8: Invulnerability expiration effect
- TFCond_Unknown1, //9
- TFCond_CloakFlicker = 9, //9: Cloak flickering effect
- TFCond_Teleporting, //10: Used for teleporting, does nothing applying
- TFCond_Kritzkrieged, //11: Crit boost, removed when being healed or another Uber effect
- TFCond_Unknown2, //12
- TFCond_TmpDamageBonus = 12, //12: Temporary damage buff, something along with attribute 19
- TFCond_DeadRingered, //13: Dead Ringer damage resistance, gives TFCond_Cloaked
- TFCond_Bonked, //14: Bonk! Atomic Punch effect
- TFCond_Dazed, //15: Slow effect, can remove to remove stun effects
- TFCond_Buffed, //16: Buff Banner mini-crits, icon, and glow
- TFCond_Charging, //17: Forced forward, charge effect
- TFCond_DemoBuff, //18: Eyelander eye glow
- TFCond_CritCola, //19: Mini-crit effect
- TFCond_InHealRadius, //20: Ring effect, rings disappear after a taunt ends
- TFCond_Healing, //21: Used for healing, does nothing applying
- TFCond_OnFire, //22: Ignite sound and vocals, can remove to remove afterburn
- TFCond_Overhealed, //23: Used for overheal, does nothing applying
- TFCond_Jarated, //24: Jarate effect
- TFCond_Bleeding, //25: Bleed effect
- TFCond_DefenseBuffed, //26: Battalion's Backup's defense, icon, and glow
- TFCond_Milked, //27: Mad Milk effect
- TFCond_MegaHeal, //28: Quick-Fix Ubercharge's knockback/stun immunity and visual effect
- TFCond_RegenBuffed, //29: Concheror's speed boost, heal on hit, icon, and glow
- TFCond_MarkedForDeath, //30: Fan o' War marked-for-death effect
- TFCond_NoHealingDamageBuff, //31: Mini-crits, blocks healing, glow, no weapon mini-crit effects
- TFCond_SpeedBuffAlly, //32: Disciplinary Action speed boost
- TFCond_HalloweenCritCandy, //33: Halloween pumpkin crit-boost
- TFCond_CritCanteen, //34: Crit-boost and doubles Sentry Gun fire-rate
- TFCond_CritDemoCharge, //35: Crit glow, adds TFCond_Charging when charge meter is below 75%
- TFCond_CritHype, //36: Soda Popper multi-jump effect
- TFCond_CritOnFirstBlood, //37: Arena first blood crit-boost
- TFCond_CritOnWin, //38: End-of-round crit-boost (May not remove correctly?)
- TFCond_CritOnFlagCapture, //39: Intelligence capture crit-boost
- TFCond_CritOnKill, //40: Crit-boost from crit-on-kill weapons
- TFCond_RestrictToMelee, //41: Prevents switching once melee is out
- TFCond_DefenseBuffNoCritBlock, //42: MvM Bomb Carrier defense buff (TFCond_DefenseBuffed without crit resistance)
- TFCond_Reprogrammed, //43: No longer functions
- TFCond_CritMmmph, //44: Phlogistinator crit-boost
- TFCond_DefenseBuffMmmph, //45: Old Phlogistinator defense buff
- TFCond_FocusBuff, //46: Hitman's Heatmaker no-unscope and faster Sniper charge
- TFCond_DisguiseRemoved, //47: Enforcer damage bonus removed
- TFCond_MarkedForDeathSilent, //48: Marked-for-death without sound effect
- TFCond_DisguisedAsDispenser, //49: Dispenser disguise when crouching, max movement speed, sentries ignore player
- TFCond_Sapped, //50: Sapper sparkle effect in MvM
- TFCond_UberchargedHidden, //51: Out-of-bounds robot invulnerability effect
- TFCond_UberchargedCanteen, //52: Invulnerability effect and Sentry Gun damage resistance
- TFCond_HalloweenBombHead, //53: Bomb head effect (does not explode)
- TFCond_HalloweenThriller, //54: Forced Thriller taunting
- TFCond_RadiusHealOnDamage, //55: Radius healing, adds TFCond_InHealRadius, TFCond_Healing. Removed when a taunt ends, but this condition stays but does nothing
- TFCond_CritOnDamage, //56: Miscellaneous crit-boost
- TFCond_UberchargedOnTakeDamage, //57: Miscellaneous invulnerability
- TFCond_UberBulletResist, //58: Vaccinator Uber bullet resistance
- TFCond_UberBlastResist, //59: Vaccinator Uber blast resistance
- TFCond_UberFireResist, //60: Vaccinator Uber fire resistance
- TFCond_SmallBulletResist, //61: Vaccinator healing bullet resistance
- TFCond_SmallBlastResist, //62: Vaccinator healing blast resistance
- TFCond_SmallFireResist, //63: Vaccinator healing fire resistance
- TFCond_Stealthed, //64: Cloaked until next attack
- TFCond_MedigunDebuff, //65: Unknown
- TFCond_StealthedUserBuffFade, //66: Cloaked, will appear for a few seconds on attack and cloak again
- TFCond_BulletImmune, //67: Full bullet immunity
- TFCond_BlastImmune, //68: Full blast immunity
- TFCond_FireImmune, //69: Full fire immunity
- TFCond_PreventDeath, //70: Survive to 1 health, then the condition is removed
- TFCond_MVMBotRadiowave, //71: Stuns bots and applies radio effect
- TFCond_HalloweenSpeedBoost, //72: Speed boost, non-melee fire rate and reload, infinite air jumps
- TFCond_HalloweenQuickHeal, //73: Healing effect, adds TFCond_Healing along with TFCond_MegaHeal temporarily
- TFCond_HalloweenGiant, //74: Double size, x10 max health increase, ammo regeneration, and forced thirdperson
- TFCond_HalloweenTiny, //75: Half size and increased head size
- TFCond_HalloweenInHell, //76: Applies TFCond_HalloweenGhostMode when the player dies
- TFCond_HalloweenGhostMode, //77: Becomes a ghost unable to attack but can fly
- TFCond_MiniCritOnKill, //78: Mini-crits effect
- TFCond_DodgeChance, //79
- TFCond_ObscuredSmoke = 79, //79: 75% chance to dodge an attack
- TFCond_Parachute, //80: Parachute effect, removed when touching the ground
- TFCond_BlastJumping, //81: Player is blast jumping
- TFCond_HalloweenKart, //82: Player forced into a Halloween kart
- TFCond_HalloweenKartDash, //83: Forced forward if in TFCond_HalloweenKart, zoom in effect, and dash animations
- TFCond_BalloonHead, //84: Big head and lowered gravity
- TFCond_MeleeOnly, //85: Forced melee, along with TFCond_SpeedBuffAlly and TFCond_HalloweenTiny
- TFCond_SwimmingCurse, //86: Swim in the air with Jarate overlay
- TFCond_HalloweenKartNoTurn, //87
- TFCond_FreezeInput = 87, //87: Prevents player from using controls
- TFCond_HalloweenKartCage, //88: Puts a cage around the player if in TFCond_HalloweenKart, otherwise crashes
- TFCond_HasRune, //89: Has a powerup
- TFCond_RuneStrength, //90: Double damage and no damage falloff
- TFCond_RuneHaste, //91: Double fire rate, reload speed, clip and ammo size, and 30% faster movement speed
- TFCond_RuneRegen, //92: Regen ammo, health, and metal
- TFCond_RuneResist, //93: Takes 1/2 damage and critical immunity
- TFCond_RuneVampire, //94: Takes 3/4 damage, gain health on damage, and 40% increase in max health
- TFCond_RuneWarlock, //95: Attacker takes damage and knockback on hitting the player and 50% increase in max health
- TFCond_RunePrecision, //96: Less bullet spread, no damage falloff, 250% faster projectiles, and double damage, faster charge, and faster re-zoom for Sniper Rifles
- TFCond_RuneAgility, //97: Increased movement speed, grappling hook speed, jump height, and instant weapon switch
- TFCond_GrapplingHook, //98: Used when a player fires their grappling hook, no effect applying or removing
- TFCond_GrapplingHookSafeFall, //99: Used when a player is pulled by their grappling hook, no effect applying or removing
- TFCond_GrapplingHookLatched, //100: Used when a player latches onto a wall, no effect applying or removing
- TFCond_GrapplingHookBleeding, //101: Used when a player is hit by attacker's grappling hook
- TFCond_AfterburnImmune, //102: Deadringer afterburn immunity
- TFCond_RuneKnockout, //103: Melee and grappling hook only, increased max health, knockback immunity, x4 more damage against buildings, and knockbacks a powerup off a victim on hit
- TFCond_RuneImbalance, //104: Prevents gaining a crit-boost or Uber powerups
- TFCond_CritRuneTemp, //105: Crit-boost effect
- TFCond_PasstimeInterception, //106: Used when a player intercepts the Jack/Ball
- TFCond_SwimmingNoEffects, //107: Swimming in the air without animations or overlay
- TFCond_EyeaductUnderworld, //108: Refills max health, short Uber, escaped the underworld message on removal
- TFCond_KingRune, //109: Increased max health and applies TFCond_KingAura
- TFCond_PlagueRune, //110: Radius health kit stealing, increased max health, TFCond_Plague on touching a victim
- TFCond_SupernovaRune, //111: Charge meter passively increasing, when charged activiated causes radius Bonk stun
- TFCond_Plague, //112: Plague sound effect and message, blocks King powerup health regen
- TFCond_KingAura, //113: Increased fire rate, reload speed, and health regen to players in a radius
- TFCond_SpawnOutline, //114: Outline and health meter of teammates (and disguised spies)
- TFCond_KnockedIntoAir, //115: Used when a player is airblasted
- TFCond_CompetitiveWinner, //116: Unknown
- TFCond_CompetitiveLoser, //117: Unknown
- TFCond_NoTaunting_DEPRECATED, //118
- TFCond_HealingDebuff = 118, //118: Healing debuff from Medics and dispensers
- TFCond_PasstimePenaltyDebuff, //119: Marked-for-death effect
- TFCond_GrappledToPlayer, //120: Prevents taunting and some Grappling Hook actions
- TFCond_GrappledByPlayer, //121: Unknown
- TFCond_ParachuteDeployed, //122: Parachute deployed, prevents reopening it
- TFCond_Gas, //123: Gas Passer effect
- TFCond_BurningPyro, //124: Dragon's Fury afterburn on Pyros
- TFCond_RocketPack, //125: Thermal Thruster launched effects, prevents reusing
- TFCond_LostFooting, //126: Less ground friction
- TFCond_AirCurrent, //127: Reduced air control and friction
- TFCond_HalloweenHellHeal, // 128: Used when a player gets teleported to hell
- TFCond_PowerupModeDominant // 129: Reduces effects of certain powerups
-};
-
-const float TFCondDuration_Infinite = -1.0;
-
-enum TFHoliday
-{
- TFHoliday_Invalid = -1
-};
-
-public const TFHoliday TFHoliday_Birthday;
-public const TFHoliday TFHoliday_Halloween;
-public const TFHoliday TFHoliday_Christmas;
-public const TFHoliday TFHoliday_EndOfTheLine;
-public const TFHoliday TFHoliday_CommunityUpdate;
-public const TFHoliday TFHoliday_ValentinesDay;
-public const TFHoliday TFHoliday_MeetThePyro;
-public const TFHoliday TFHoliday_FullMoon;
-public const TFHoliday TFHoliday_HalloweenOrFullMoon;
-public const TFHoliday TFHoliday_HalloweenOrFullMoonOrValentines;
-public const TFHoliday TFHoliday_AprilFools;
-public const TFHoliday TFHoliday_Soldier;
-
-enum TFObjectType
-{
- TFObject_CartDispenser = 0,
- TFObject_Dispenser = 0,
- TFObject_Teleporter = 1,
- TFObject_Sentry = 2,
- TFObject_Sapper = 3
-};
-
-enum TFObjectMode
-{
- TFObjectMode_None = 0,
- TFObjectMode_Entrance = 0,
- TFObjectMode_Exit = 1
-};
-
-/**
- * Sets a client on fire.
- *
- * @note Fire duration is capped to 10 seconds.
- *
- * @param client Player's index.
- * @param attacker Attacker's index.
- * @param duration Duration of fire (in seconds).
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_IgnitePlayer(int client, int attacker, float duration=10.0);
-
-/**
- * Respawns a client
- *
- * @param client Player's index.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_RespawnPlayer(int client);
-
-/**
- * Regenerates a client's health and ammunition
- *
- * @param client Player's index.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_RegeneratePlayer(int client);
-
-/**
- * Adds a condition to a player
- *
- * @param client Player's index.
- * @param condition Integer identifier of condition to apply.
- * @param duration Duration of condition (does not apply to all conditions).
- * Pass TFCondDuration_Infinite to apply until manually removed.
- * @param inflictor Condition inflictor's index (0 for no inflictor).
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_AddCondition(int client, TFCond condition, float duration=TFCondDuration_Infinite, int inflictor=0);
-
-/**
- * Removes a condition from a player
- *
- * @param client Player's index.
- * @param condition Integer identifier of condition to remove.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_RemoveCondition(int client, TFCond condition);
-
-/**
- * Enables/disables PowerPlay mode on a player.
- *
- * @param client Player's index.
- * @param enabled Whether to enable or disable PowerPlay on player.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_SetPlayerPowerPlay(int client, bool enabled);
-
-/**
- * Disguises a client to the given model and team. Only has an effect on spies.
- *
- * Note: This only starts the disguise process and a delay occurs before the spy is fully disguised
- *
- * @param client Player's index.
- * @param team Team to disguise the player as (only TFTeam_Red and TFTeam_Blue have an effect)
- * @param classType TFClassType class to disguise the player as
- * @param target Specific target player to disguise as (0 for any)
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_DisguisePlayer(int client, TFTeam team, TFClassType classType, int target=0);
-
-/**
- * Removes the current disguise from a client. Only has an effect on spies.
- *
- * @param client Player's index.
- * @error Invalid client index, client not in game, or no mod support.
- */
-native void TF2_RemovePlayerDisguise(int client);
-
-/**
- * Stuns a client
- *
- * @param client Player's index.
- * @param duration Duration of stun.
- * @param slowdown Slowdown percent (as decimal, 0.00-1.00)
- * Ignored if TF_STUNFLAG_SLOWDOWN is not set.
- * @param stunflags Stun flags.
- * @param attacker Attacker's index (0 is allowed for world).
- */
-native void TF2_StunPlayer(int client, float duration, float slowdown=0.0, int stunflags, int attacker=0);
-
-/**
- * Induces the bleed effect on a client
- *
- * @param client Player's index.
- * @param attacker Attacker's index.
- * @param duration Duration of bleeding (in seconds).
- */
-native void TF2_MakeBleed(int client, int attacker, float duration);
-
-/**
- * Retrieves the entity index of the CPlayerResource entity
- *
- * @return The current resource entity index.
- * @deprecated Use GetPlayerResourceEntity instead
- */
-#pragma deprecated Use GetPlayerResourceEntity instead
-native int TF2_GetResourceEntity();
-
-/**
- * Finds the TFClassType for a given class name.
- *
- * @param classname A classname string such as "sniper" or "demoman"
- * @return A TFClassType constant.
- */
-native TFClassType TF2_GetClass(const char[] classname);
-
-/**
- * Called on weapon fire to decide if the current shot should be critical.
- * Return Plugin_Continue to let the original calculation or return a higher
- * action to override the decision with the value of 'result'
- *
- * @note Since critical shots are also calculated client side any changes made with
- * this will not show for the shooter. Projectile weapons such as the rocketlauncher
- * and demoman weapons will show a critical bullet but no critical sound effect.
- * Bullet hits should appear as expected.
- *
- * @param client Client Index.
- * @param weapon Weapon entity Index.
- * @param weaponname Classname of the weapon.
- * @param result Buffer param for the result of the decision.
- */
-forward Action TF2_CalcIsAttackCritical(int client, int weapon, char[] weaponname, bool &result);
-
-/**
- * @deprecated No longer called. Use TF2_OnIsHolidayActive.
- */
-#pragma deprecated No longer called. Use TF2_OnIsHolidayActive.
-forward Action TF2_OnGetHoliday(TFHoliday &holiday);
-
-/**
- * Called at various times when the game checks to see if the given holiday is active.
- * Return Plugin_Continue to let the original calculation or return a higher
- * action to override the decision with the value of 'result'
- *
- * @param holiday Holiday being checked.
- * @param result Buffer param for the result of the decision.
- * @return Plugin_Continue for original calculation, higher value to use 'result'.
- */
-forward Action TF2_OnIsHolidayActive(TFHoliday holiday, bool &result);
-
-/**
- * Returns whether or not a holiday is active
- *
- * @param holiday Holiday being checked.
- * @return Boolean of whether or not the holiday is active.
- */
-native bool TF2_IsHolidayActive(TFHoliday holiday);
-
-/**
- * Returns whether or not a client (Player) is in a duel.
- *
- * @param client Client Index.
- * @return Boolean of whether or not the client/player is dueling.
- */
-native bool TF2_IsPlayerInDuel(int client);
-
-/**
- * Removes an econ wearable (hat, misc, etc) from a player.
- * This also deletes the wearable entity.
- *
- * @param client Client index.
- * @param wearable Index of the wearable entity.
- * @error Invalid client index, client not in game, invalid wearable entity, or no mod support.
-*/
-native void TF2_RemoveWearable(int client, int wearable);
-
-/**
- * Called after a condition is added to a player
- *
- * @param client Index of the client to which the condition is being added.
- * @param condition Condition that is being added.
- */
-forward void TF2_OnConditionAdded(int client, TFCond condition);
-
-/**
- * Called after a condition is removed from a player
- *
- * @param client Index of the client to which the condition is being removed.
- * @param condition Condition that is being removed.
- */
-forward void TF2_OnConditionRemoved(int client, TFCond condition);
-
-/**
- * Called when the server enters the Waiting for Players round state
- */
-forward void TF2_OnWaitingForPlayersStart();
-
-/**
- * Called when the server exits the Waiting for Players round state
- */
-forward void TF2_OnWaitingForPlayersEnd();
-
-/**
- * Called when a player attempts to use a teleporter to decide if the player should be allowed to teleport.
- * Return Plugin_Continue to let the original calculation or return a higher
- * action to override the decision with the value of 'result'
- *
- * @param client Client index.
- * @param teleporter Teleporter entity index.
- * @param result Buffer param for the result of the decision.
- * This is prepopulated with the game's original decision to let a player teleport.
- * @return Plugin_Continue for original calculation, higher value to use 'result'.
- */
-forward Action TF2_OnPlayerTeleport(int client, int teleporter, bool &result);
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_tf2 =
-{
- name = "TF2 Tools",
- file = "game.tf2.ext",
- autoload = 0,
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public void __ext_tf2_SetNTVOptional()
-{
- MarkNativeAsOptional("TF2_IgnitePlayer");
- MarkNativeAsOptional("TF2_RespawnPlayer");
- MarkNativeAsOptional("TF2_RegeneratePlayer");
- MarkNativeAsOptional("TF2_AddCondition");
- MarkNativeAsOptional("TF2_RemoveCondition");
- MarkNativeAsOptional("TF2_SetPlayerPowerPlay");
- MarkNativeAsOptional("TF2_DisguisePlayer");
- MarkNativeAsOptional("TF2_RemovePlayerDisguise");
- MarkNativeAsOptional("TF2_StunPlayer");
- MarkNativeAsOptional("TF2_MakeBleed");
- MarkNativeAsOptional("TF2_GetResourceEntity");
- MarkNativeAsOptional("TF2_GetClass");
- MarkNativeAsOptional("TF2_IsPlayerInDuel");
- MarkNativeAsOptional("TF2_IsHolidayActive");
- MarkNativeAsOptional("TF2_RemoveWearable");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/tf2_stocks.inc b/addons/sourcemod/scripting/include/tf2_stocks.inc
deleted file mode 100644
index 71303325a..000000000
--- a/addons/sourcemod/scripting/include/tf2_stocks.inc
+++ /dev/null
@@ -1,643 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _tf2_stocks_included
- #endinput
-#endif
-#define _tf2_stocks_included
-
-#include
-#include
-
-#define TF_CONDFLAG_NONE 0
-#define TF_CONDFLAG_SLOWED (1 << 0)
-#define TF_CONDFLAG_ZOOMED (1 << 1)
-#define TF_CONDFLAG_DISGUISING (1 << 2)
-#define TF_CONDFLAG_DISGUISED (1 << 3)
-#define TF_CONDFLAG_CLOAKED (1 << 4)
-#define TF_CONDFLAG_UBERCHARGED (1 << 5)
-#define TF_CONDFLAG_TELEPORTGLOW (1 << 6)
-#define TF_CONDFLAG_TAUNTING (1 << 7)
-#define TF_CONDFLAG_UBERCHARGEFADE (1 << 8)
-#define TF_CONDFLAG_CLOAKFLICKER (1 << 9)
-#define TF_CONDFLAG_TELEPORTING (1 << 10)
-#define TF_CONDFLAG_KRITZKRIEGED (1 << 11)
-#define TF_CONDFLAG_DEADRINGERED (1 << 13)
-#define TF_CONDFLAG_BONKED (1 << 14)
-#define TF_CONDFLAG_DAZED (1 << 15)
-#define TF_CONDFLAG_BUFFED (1 << 16)
-#define TF_CONDFLAG_CHARGING (1 << 17)
-#define TF_CONDFLAG_DEMOBUFF (1 << 18)
-#define TF_CONDFLAG_CRITCOLA (1 << 19)
-#define TF_CONDFLAG_INHEALRADIUS (1 << 20)
-#define TF_CONDFLAG_HEALING (1 << 21)
-#define TF_CONDFLAG_ONFIRE (1 << 22)
-#define TF_CONDFLAG_OVERHEALED (1 << 23)
-#define TF_CONDFLAG_JARATED (1 << 24)
-#define TF_CONDFLAG_BLEEDING (1 << 25)
-#define TF_CONDFLAG_DEFENSEBUFFED (1 << 26)
-#define TF_CONDFLAG_MILKED (1 << 27)
-#define TF_CONDFLAG_MEGAHEAL (1 << 28)
-#define TF_CONDFLAG_REGENBUFFED (1 << 29)
-#define TF_CONDFLAG_MARKEDFORDEATH (1 << 30)
-
-#define TF_DEATHFLAG_KILLERDOMINATION (1 << 0)
-#define TF_DEATHFLAG_ASSISTERDOMINATION (1 << 1)
-#define TF_DEATHFLAG_KILLERREVENGE (1 << 2)
-#define TF_DEATHFLAG_ASSISTERREVENGE (1 << 3)
-#define TF_DEATHFLAG_FIRSTBLOOD (1 << 4)
-#define TF_DEATHFLAG_DEADRINGER (1 << 5)
-#define TF_DEATHFLAG_INTERRUPTED (1 << 6)
-#define TF_DEATHFLAG_GIBBED (1 << 7)
-#define TF_DEATHFLAG_PURGATORY (1 << 8)
-#define TF_DEATHFLAG_MINIBOSS (1 << 9)
-#define TF_DEATHFLAG_AUSTRALIUM (1 << 10)
-
-// Custom kill identifiers for the customkill property on the player_death event
-enum {
- TF_CUSTOM_HEADSHOT = 1,
- TF_CUSTOM_BACKSTAB,
- TF_CUSTOM_BURNING,
- TF_CUSTOM_WRENCH_FIX,
- TF_CUSTOM_MINIGUN,
- TF_CUSTOM_SUICIDE,
- TF_CUSTOM_TAUNT_HADOUKEN,
- TF_CUSTOM_BURNING_FLARE,
- TF_CUSTOM_TAUNT_HIGH_NOON,
- TF_CUSTOM_TAUNT_GRAND_SLAM,
- TF_CUSTOM_PENETRATE_MY_TEAM,
- TF_CUSTOM_PENETRATE_ALL_PLAYERS,
- TF_CUSTOM_TAUNT_FENCING,
- TF_CUSTOM_PENETRATE_HEADSHOT,
- TF_CUSTOM_TAUNT_ARROW_STAB,
- TF_CUSTOM_TELEFRAG,
- TF_CUSTOM_BURNING_ARROW,
- TF_CUSTOM_FLYINGBURN,
- TF_CUSTOM_PUMPKIN_BOMB,
- TF_CUSTOM_DECAPITATION,
- TF_CUSTOM_TAUNT_GRENADE,
- TF_CUSTOM_BASEBALL,
- TF_CUSTOM_CHARGE_IMPACT,
- TF_CUSTOM_TAUNT_BARBARIAN_SWING,
- TF_CUSTOM_AIR_STICKY_BURST,
- TF_CUSTOM_DEFENSIVE_STICKY,
- TF_CUSTOM_PICKAXE,
- TF_CUSTOM_ROCKET_DIRECTHIT,
- TF_CUSTOM_TAUNT_UBERSLICE,
- TF_CUSTOM_PLAYER_SENTRY,
- TF_CUSTOM_STANDARD_STICKY,
- TF_CUSTOM_SHOTGUN_REVENGE_CRIT,
- TF_CUSTOM_TAUNT_ENGINEER_SMASH,
- TF_CUSTOM_BLEEDING,
- TF_CUSTOM_GOLD_WRENCH,
- TF_CUSTOM_CARRIED_BUILDING,
- TF_CUSTOM_COMBO_PUNCH,
- TF_CUSTOM_TAUNT_ENGINEER_ARM,
- TF_CUSTOM_FISH_KILL,
- TF_CUSTOM_TRIGGER_HURT,
- TF_CUSTOM_DECAPITATION_BOSS,
- TF_CUSTOM_STICKBOMB_EXPLOSION,
- TF_CUSTOM_AEGIS_ROUND,
- TF_CUSTOM_FLARE_EXPLOSION,
- TF_CUSTOM_BOOTS_STOMP,
- TF_CUSTOM_PLASMA,
- TF_CUSTOM_PLASMA_CHARGED,
- TF_CUSTOM_PLASMA_GIB,
- TF_CUSTOM_PRACTICE_STICKY,
- TF_CUSTOM_EYEBALL_ROCKET,
- TF_CUSTOM_HEADSHOT_DECAPITATION,
- TF_CUSTOM_TAUNT_ARMAGEDDON,
- TF_CUSTOM_FLARE_PELLET,
- TF_CUSTOM_CLEAVER,
- TF_CUSTOM_CLEAVER_CRIT,
- TF_CUSTOM_SAPPER_RECORDER_DEATH,
- TF_CUSTOM_MERASMUS_PLAYER_BOMB,
- TF_CUSTOM_MERASMUS_GRENADE,
- TF_CUSTOM_MERASMUS_ZAP,
- TF_CUSTOM_MERASMUS_DECAPITATION,
- TF_CUSTOM_CANNONBALL_PUSH,
- TF_CUSTOM_TAUNT_ALLCLASS_GUITAR_RIFF,
- TF_CUSTOM_THROWABLE,
- TF_CUSTOM_THROWABLE_KILL,
- TF_CUSTOM_SPELL_TELEPORT,
- TF_CUSTOM_SPELL_SKELETON,
- TF_CUSTOM_SPELL_MIRV,
- TF_CUSTOM_SPELL_METEOR,
- TF_CUSTOM_SPELL_LIGHTNING,
- TF_CUSTOM_SPELL_FIREBALL,
- TF_CUSTOM_SPELL_MONOCULUS,
- TF_CUSTOM_SPELL_BLASTJUMP,
- TF_CUSTOM_SPELL_BATS,
- TF_CUSTOM_SPELL_TINY,
- TF_CUSTOM_KART,
- TF_CUSTOM_GIANT_HAMMER,
- TF_CUSTOM_RUNE_REFLECT,
- TF_CUSTOM_DRAGONS_FURY_IGNITE,
- TF_CUSTOM_DRAGONS_FURY_BONUS_BURNING,
- TF_CUSTOM_SLAP_KILL,
- TF_CUSTOM_CROC,
- TF_CUSTOM_TAUNTATK_GASBLAST,
- TF_CUSTOM_AXTINGUISHER_BOOSTED
-};
-
-// Weapon codes as used in some events, such as player_death
-// (not to be confused with Item Definition Indexes)
-enum {
- TF_WEAPON_NONE = 0,
- TF_WEAPON_BAT,
- TF_WEAPON_BAT_WOOD,
- TF_WEAPON_BOTTLE,
- TF_WEAPON_FIREAXE,
- TF_WEAPON_CLUB,
- TF_WEAPON_CROWBAR,
- TF_WEAPON_KNIFE,
- TF_WEAPON_FISTS,
- TF_WEAPON_SHOVEL,
- TF_WEAPON_WRENCH,
- TF_WEAPON_BONESAW,
- TF_WEAPON_SHOTGUN_PRIMARY,
- TF_WEAPON_SHOTGUN_SOLDIER,
- TF_WEAPON_SHOTGUN_HWG,
- TF_WEAPON_SHOTGUN_PYRO,
- TF_WEAPON_SCATTERGUN,
- TF_WEAPON_SNIPERRIFLE,
- TF_WEAPON_MINIGUN,
- TF_WEAPON_SMG,
- TF_WEAPON_SYRINGEGUN_MEDIC,
- TF_WEAPON_TRANQ,
- TF_WEAPON_ROCKETLAUNCHER,
- TF_WEAPON_GRENADELAUNCHER,
- TF_WEAPON_PIPEBOMBLAUNCHER,
- TF_WEAPON_FLAMETHROWER,
- TF_WEAPON_GRENADE_NORMAL,
- TF_WEAPON_GRENADE_CONCUSSION,
- TF_WEAPON_GRENADE_NAIL,
- TF_WEAPON_GRENADE_MIRV,
- TF_WEAPON_GRENADE_MIRV_DEMOMAN,
- TF_WEAPON_GRENADE_NAPALM,
- TF_WEAPON_GRENADE_GAS,
- TF_WEAPON_GRENADE_EMP,
- TF_WEAPON_GRENADE_CALTROP,
- TF_WEAPON_GRENADE_PIPEBOMB,
- TF_WEAPON_GRENADE_SMOKE_BOMB,
- TF_WEAPON_GRENADE_HEAL,
- TF_WEAPON_GRENADE_STUNBALL,
- TF_WEAPON_GRENADE_JAR,
- TF_WEAPON_GRENADE_JAR_MILK,
- TF_WEAPON_PISTOL,
- TF_WEAPON_PISTOL_SCOUT,
- TF_WEAPON_REVOLVER,
- TF_WEAPON_NAILGUN,
- TF_WEAPON_PDA,
- TF_WEAPON_PDA_ENGINEER_BUILD,
- TF_WEAPON_PDA_ENGINEER_DESTROY,
- TF_WEAPON_PDA_SPY,
- TF_WEAPON_BUILDER,
- TF_WEAPON_MEDIGUN,
- TF_WEAPON_GRENADE_MIRVBOMB,
- TF_WEAPON_FLAMETHROWER_ROCKET,
- TF_WEAPON_GRENADE_DEMOMAN,
- TF_WEAPON_SENTRY_BULLET,
- TF_WEAPON_SENTRY_ROCKET,
- TF_WEAPON_DISPENSER,
- TF_WEAPON_INVIS,
- TF_WEAPON_FLAREGUN,
- TF_WEAPON_LUNCHBOX,
- TF_WEAPON_JAR,
- TF_WEAPON_COMPOUND_BOW,
- TF_WEAPON_BUFF_ITEM,
- TF_WEAPON_PUMPKIN_BOMB,
- TF_WEAPON_SWORD,
- TF_WEAPON_DIRECTHIT,
- TF_WEAPON_LIFELINE,
- TF_WEAPON_LASER_POINTER,
- TF_WEAPON_DISPENSER_GUN,
- TF_WEAPON_SENTRY_REVENGE,
- TF_WEAPON_JAR_MILK,
- TF_WEAPON_HANDGUN_SCOUT_PRIMARY,
- TF_WEAPON_BAT_FISH,
- TF_WEAPON_CROSSBOW,
- TF_WEAPON_STICKBOMB,
- TF_WEAPON_HANDGUN_SCOUT_SEC,
- TF_WEAPON_SODA_POPPER,
- TF_WEAPON_SNIPERRIFLE_DECAP,
- TF_WEAPON_RAYGUN,
- TF_WEAPON_PARTICLE_CANNON,
- TF_WEAPON_MECHANICAL_ARM,
- TF_WEAPON_DRG_POMSON,
- TF_WEAPON_BAT_GIFTWRAP,
- TF_WEAPON_GRENADE_ORNAMENT,
- TF_WEAPON_RAYGUN_REVENGE,
- TF_WEAPON_PEP_BRAWLER_BLASTER,
- TF_WEAPON_CLEAVER,
- TF_WEAPON_GRENADE_CLEAVER,
- TF_WEAPON_STICKY_BALL_LAUNCHER,
- TF_WEAPON_GRENADE_STICKY_BALL,
- TF_WEAPON_SHOTGUN_BUILDING_RESCUE,
- TF_WEAPON_CANNON,
- TF_WEAPON_THROWABLE,
- TF_WEAPON_GRENADE_THROWABLE,
- TF_WEAPON_PDA_SPY_BUILD,
- TF_WEAPON_GRENADE_WATERBALLOON,
- TF_WEAPON_HARVESTER_SAW,
- TF_WEAPON_SPELLBOOK,
- TF_WEAPON_SPELLBOOK_PROJECTILE,
- TF_WEAPON_SNIPERRIFLE_CLASSIC,
- TF_WEAPON_PARACHUTE,
- TF_WEAPON_GRAPPLINGHOOK,
- TF_WEAPON_PASSTIME_GUN,
- TF_WEAPON_CHARGED_SMG,
- TF_WEAPON_BREAKABLE_SIGN,
- TF_WEAPON_ROCKETPACK,
- TF_WEAPON_SLAP,
- TF_WEAPON_JAR_GAS,
- TF_WEAPON_GRENADE_JAR_GAS,
- TF_WEAPON_FLAME_BALL
-};
-
-// TF2 Weapon Loadout Slots
-enum
-{
- TFWeaponSlot_Primary,
- TFWeaponSlot_Secondary,
- TFWeaponSlot_Melee,
- TFWeaponSlot_Grenade,
- TFWeaponSlot_Building,
- TFWeaponSlot_PDA,
- TFWeaponSlot_Item1,
- TFWeaponSlot_Item2
-};
-
-// Identifiers for the eventtype property on the teamplay_flag_event event
-enum {
- TF_FLAGEVENT_PICKEDUP = 1,
- TF_FLAGEVENT_CAPTURED,
- TF_FLAGEVENT_DEFENDED,
- TF_FLAGEVENT_DROPPED,
- TF_FLAGEVENT_RETURNED
-};
-
-enum TFResourceType
-{
- TFResource_Ping,
- TFResource_Score,
- TFResource_Deaths,
- TFResource_TotalScore,
- TFResource_Captures,
- TFResource_Defenses,
- TFResource_Dominations,
- TFResource_Revenge,
- TFResource_BuildingsDestroyed,
- TFResource_Headshots,
- TFResource_Backstabs,
- TFResource_HealPoints,
- TFResource_Invulns,
- TFResource_Teleports,
- TFResource_ResupplyPoints,
- TFResource_KillAssists,
- TFResource_MaxHealth,
- TFResource_PlayerClass
-};
-
-static const char TFResourceNames[][] =
-{
- "m_iPing",
- "m_iScore",
- "m_iDeaths",
- "m_iTotalScore",
- "m_iCaptures",
- "m_iDefenses",
- "m_iDominations",
- "m_iRevenge",
- "m_iBuildingsDestroyed",
- "m_iHeadshots",
- "m_iBackstabs",
- "m_iHealPoints",
- "m_iInvulns",
- "m_iTeleports",
- "m_iResupplyPoints",
- "m_iKillAssists",
- "m_iMaxHealth",
- "m_iPlayerClass"
-};
-
-/**
- * Gets a client's current team.
- *
- * @param client Client index.
- * @return Current TFTeam of client.
- * @error Invalid client index.
- */
-stock TFTeam TF2_GetClientTeam(int client)
-{
- return view_as(GetClientTeam(client));
-}
-
-/**
- * Changes a client's current team.
- *
- * @param client Client index.
- * @param team TFTeam team symbol.
- * @error Invalid client index.
- */
-stock void TF2_ChangeClientTeam(int client, TFTeam team)
-{
- ChangeClientTeam(client, view_as(team));
-}
-
-/**
- * Gets a client's current class.
- *
- * @param client Player's index.
- * @return Current TFClassType of player.
- * @error Invalid client index.
- */
-stock TFClassType TF2_GetPlayerClass(int client)
-{
- return view_as(GetEntProp(client, Prop_Send, "m_iClass"));
-}
-
-/**
- * Sets a client's class.
- *
- * Note: If setting player class in a player spawn hook weapons should be set to false.
- *
- * @param client Player's index.
- * @param classType TFClassType class symbol.
- * @param weapons This parameter is ignored.
- * @param persistent If true, changes the player's desired class so the change stays after death.
- * @error Invalid client index.
- */
-stock void TF2_SetPlayerClass(int client, TFClassType classType, bool weapons=true, bool persistent=true)
-{
- SetEntProp(client, Prop_Send, "m_iClass", view_as(classType));
-
- if (persistent)
- {
- SetEntProp(client, Prop_Send, "m_iDesiredPlayerClass", view_as(classType));
- }
-}
-
-/**
- * Retrieves client data from the resource entity
- *
- * @param client Player's index.
- * @param type ResourceType constant
- * @return Value or -1 on failure.
- * @error Invalid client index, client not in game or failed to find resource entity.
- * @deprecated Use GetPlayerResourceEntity and GetEntProp instead.
- */
-#pragma deprecated Use GetPlayerResourceEntity and GetEntProp instead
-stock int TF2_GetPlayerResourceData(int client, TFResourceType type)
-{
- if (!IsClientConnected(client))
- {
- return -1;
- }
-
- int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
-
- if (offset < 1)
- {
- return -1;
- }
-
- int entity = GetPlayerResourceEntity();
-
- if (entity == -1)
- {
- return -1;
- }
-
- return GetEntData(entity, offset + (client*4));
-}
-
-/**
- * Sets client data in the resource entity
- *
- * Note: The game overwrites these values every frame, so changing them will have very little effect.
- *
- * @param client Player's index.
- * @param type ResourceType constant
- * @param value Value to set.
- * @return Value or -1 on failure.
- * @error Invalid client index, client not in game or failed to find resource entity.
- * @deprecated Use GetPlayerResourceEntity and SetEntProp instead.
- */
-#pragma deprecated Use GetPlayerResourceEntity and SetEntProp instead
-stock bool TF2_SetPlayerResourceData(int client, TFResourceType type, any value)
-{
- if (!IsClientConnected(client))
- {
- return false;
- }
-
- int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
-
- if (offset < 1)
- {
- return false;
- }
-
- int entity = GetPlayerResourceEntity();
-
- if (entity == -1)
- {
- return false;
- }
-
- SetEntData(entity, offset + (client*4), value);
-
- return true;
-}
-
-/**
- * Removes all weapons from a client's weapon slot
- *
- * @param client Player's index.
- * @param slot Slot index (0-5)
- * @error Invalid client, invalid slot or lack of mod support
- */
-stock void TF2_RemoveWeaponSlot(int client, int slot)
-{
- int weaponIndex;
- while ((weaponIndex = GetPlayerWeaponSlot(client, slot)) != -1)
- {
- // bug #6206
- // papering over a valve bug where a weapon's extra wearables aren't properly removed from the weapon's owner
- int extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearable");
- if (extraWearable != -1)
- {
- TF2_RemoveWearable(client, extraWearable);
- }
-
- extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearableViewModel");
- if (extraWearable != -1)
- {
- TF2_RemoveWearable(client, extraWearable);
- }
-
- RemovePlayerItem(client, weaponIndex);
- AcceptEntityInput(weaponIndex, "Kill");
- }
-}
-
-/**
- * Removes all weapons from a client
- *
- * @param client Player's index.
- */
-stock void TF2_RemoveAllWeapons(int client)
-{
- for (int i = 0; i <= 5; i++)
- {
- TF2_RemoveWeaponSlot(client, i);
- }
-}
-
-/**
- * Gets a player's condition bits
- *
- * @param client Player's index.
- * @return Player's condition bits
- * @deprecated Use TF2_IsPlayerInCondition instead.
- */
-#pragma deprecated Use TF2_IsPlayerInCondition instead.
-stock int TF2_GetPlayerConditionFlags(int client)
-{
- return GetEntProp(client, Prop_Send, "m_nPlayerCond")|GetEntProp(client, Prop_Send, "_condition_bits");
-}
-
-/**
- * Check whether or not a condition is set on a player
- *
- * @param client Player's index.
- * @param cond TFCond constant
- * @return True if set, false otherwise
- */
-stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
-{
- // Conditions are stored across multiple netprops now, one for each 32-bit segment.
- int iCond = view_as(cond);
- switch (iCond / 32)
- {
- case 0:
- {
- int bit = 1 << iCond;
- if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit)
- {
- return true;
- }
-
- if ((GetEntProp(client, Prop_Send, "_condition_bits") & bit) == bit)
- {
- return true;
- }
- }
- case 1:
- {
- int bit = (1 << (iCond - 32));
- if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit)
- {
- return true;
- }
- }
- case 2:
- {
- int bit = (1 << (iCond - 64));
- if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit)
- {
- return true;
- }
- }
- case 3:
- {
- int bit = (1 << (iCond - 96));
- if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit)
- {
- return true;
- }
- }
- case 4:
- {
- int bit = (1 << (iCond - 128));
- if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx4") & bit) == bit)
- {
- return true;
- }
- }
- default:
- {
- ThrowError("Invalid TFCond value %d", iCond);
- }
- }
-
- return false;
-}
-
-/**
- * Gets an entity's object type.
- *
- * @param entity Entity index.
- * @return Current TFObjectType of entity.
- * @error Invalid entity index.
- */
-stock TFObjectType TF2_GetObjectType(int entity)
-{
- int offset = GetEntSendPropOffs(entity, "m_iObjectType");
-
- if (offset <= 0)
- {
- ThrowError("Entity index %d is not an object", entity);
- }
-
- return view_as(GetEntData(entity, offset));
-}
-
-/**
- * Gets an entity's object mode.
- *
- * @param entity Entity index.
- * @return Current TFObjectMode of entity.
- * @error Invalid entity index.
- */
-stock TFObjectMode TF2_GetObjectMode(int entity)
-{
- int offset = GetEntSendPropOffs(entity, "m_iObjectMode");
-
- if (offset <= 0)
- {
- ThrowError("Entity index %d is not an object", entity);
- }
-
- return view_as(GetEntData(entity, offset));
-}
diff --git a/addons/sourcemod/scripting/include/timers.inc b/addons/sourcemod/scripting/include/timers.inc
deleted file mode 100644
index 089042894..000000000
--- a/addons/sourcemod/scripting/include/timers.inc
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _timers_included
- #endinput
-#endif
-#define _timers_included
-
-#include
-
-#define TIMER_REPEAT (1<<0) /**< Timer will repeat until it returns Plugin_Stop */
-#define TIMER_FLAG_NO_MAPCHANGE (1<<1) /**< Timer will not carry over mapchanges */
-#define TIMER_HNDL_CLOSE (1<<9) /**< Deprecated define, replaced by below */
-#define TIMER_DATA_HNDL_CLOSE (1<<9) /**< Timer will automatically call CloseHandle() on its data when finished */
-
-/**
- * Any of the following prototypes will work for a timed function.
- */
-typeset Timer
-{
- /**
- * Called when the timer interval has elapsed.
- *
- * @param timer Handle to the timer object.
- * @param hndl Handle passed to CreateTimer() when timer was created.
- * @return Plugin_Stop to stop a repeating timer, any other value for
- * default behavior.
- */
- function Action(Handle timer, Handle hndl);
-
- /**
- * Called when the timer interval has elapsed.
- *
- * @param timer Handle to the timer object.
- * @param data Data passed to CreateTimer() when timer was created.
- * @return Plugin_Stop to stop a repeating timer, any other value for
- * default behavior.
- */
- function Action(Handle timer, any data);
-
- /**
- * Called when the timer interval has elapsed.
- *
- * @param timer Handle to the timer object.
- * @return Plugin_Stop to stop a repeating timer, any other value for
- * default behavior.
- */
- function Action(Handle timer);
-};
-
-/**
- * Creates a basic timer. Calling CloseHandle() on a timer will end the timer.
- *
- * @param interval Interval from the current game time to execute the given function.
- * @param func Function to execute once the given interval has elapsed.
- * @param data Handle or value to pass through to the timer callback function.
- * @param flags Flags to set (such as repeatability or auto-Handle closing).
- * @return Handle to the timer object. You do not need to call CloseHandle().
- * If the timer could not be created, INVALID_HANDLE will be returned.
- */
-native Handle CreateTimer(float interval, Timer func, any data=INVALID_HANDLE, int flags=0);
-
-/**
- * Kills a timer. Use this instead of CloseHandle() if you need more options.
- *
- * @param timer Timer Handle to kill.
- * @param autoClose If autoClose is true, the data that was passed to CreateTimer() will
- * be closed as a handle if TIMER_DATA_HNDL_CLOSE was not specified.
- * @error Invalid timer handle.
- */
-native void KillTimer(Handle timer, bool autoClose=false);
-
-/**
- * Manually triggers a timer so its function will be called.
- *
- * @param timer Timer Handle to trigger.
- * @param reset If reset is true, the elapsed time counter is reset
- * so the full interval must pass again.
- * @error Invalid timer handle.
- */
-native void TriggerTimer(Handle timer, bool reset=false);
-
-/**
- * Returns the simulated game time.
- *
- * This time is internally maintained by SourceMod and is based on the game
- * tick count and tick rate. Unlike GetGameTime(), it will increment past
- * map changes and while no players are connected. Unlike GetEngineTime(),
- * it will not increment based on the system clock (i.e. it is still bound
- * to the ticking process).
- *
- * @return Time based on the game tick count.
- */
-native float GetTickedTime();
-
-/**
- * Returns an estimate of the time left before the map ends. If the server
- * has not processed any frames yet (i.e. no players have joined the map yet),
- * then the time left returned will always be infinite.
- *
- * @param timeleft Variable to store the time, in seconds. If the
- * value is less than 0, the time limit is infinite.
- * @return True if the operation is supported, false otherwise.
- */
-native bool GetMapTimeLeft(int &timeleft);
-
-/**
- * Retrieves the current map time limit. If the server has not processed any
- * frames yet (i.e. no players have joined the map yet), then the time limit
- * returned will always be 0.
- *
- * @param time Set to the number of total seconds in the map time
- * limit, or 0 if there is no time limit set.
- * @return True on success, false if operation is not supported.
- */
-native bool GetMapTimeLimit(int &time);
-
-/**
- * Extends the map time limit in a way that will notify all plugins.
- *
- * @param time Number of seconds to extend map time limit by.
- * The number can be negative to decrease the time limit.
- * If 0, the map will be set to have no time limit.
- * @return True on success, false if operation is not supported.
- */
-native bool ExtendMapTimeLimit(int time);
-
-/**
- * Returns the number of seconds in between game server ticks.
- *
- * Note: A tick, in this context, is a frame.
- *
- * @return Number of seconds in between ticks.
- */
-native float GetTickInterval();
-
-/**
- * Notification that the map's time left has changed via a change in the time
- * limit or a change in the game rules (such as mp_restartgame). This is useful
- * for plugins trying to create timers based on the time left in the map.
- *
- * Calling ExtendMapTimeLimit() from here, without proper precaution, will
- * cause infinite recursion.
- *
- * If the operation is not supported, this will never be called.
-
- * If the server has not yet processed any frames (i.e. no players have joined
- * the map yet), then this will be called once the server begins ticking, even
- * if there is no time limit set.
- */
-forward void OnMapTimeLeftChanged();
-
-/**
- * Returns whether or not the server is processing frames or not.
- *
- * The server does not process frames until at least one client joins the game.
- * If server hibernation is disabled, once the first player has joined, even if that player
- * leaves, the server's timers and entities will continue to work.
- *
- * @return True if the server is ticking, false otherwise.
- */
-native bool IsServerProcessing();
-
-/**
- * Creates a timer associated with a new datapack, and returns the datapack.
- * @note The datapack is automatically freed when the timer ends.
- * @note The position of the datapack is not reset or changed for the timer function.
- *
- * @param interval Interval from the current game time to execute the given function.
- * @param func Function to execute once the given interval has elapsed.
- * @param datapack The newly created datapack is passed though this by-reference
- * parameter to the timer callback function.
- * @param flags Timer flags.
- * @return Handle to the timer object. You do not need to call CloseHandle().
- */
-stock Handle CreateDataTimer(float interval, Timer func, Handle &datapack, int flags=0)
-{
- datapack = new DataPack();
- flags |= TIMER_DATA_HNDL_CLOSE;
- return CreateTimer(interval, func, datapack, flags);
-}
diff --git a/addons/sourcemod/scripting/include/topmenus.inc b/addons/sourcemod/scripting/include/topmenus.inc
deleted file mode 100644
index 800610ceb..000000000
--- a/addons/sourcemod/scripting/include/topmenus.inc
+++ /dev/null
@@ -1,446 +0,0 @@
-/**
- * vim: set ts=4 sw=4 tw=99 noet:
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _topmenus_included
- #endinput
-#endif
-#define _topmenus_included
-
-#include
-
-/**
- * Actions a top menu will take on an topobj.
- */
-enum TopMenuAction
-{
- /**
- * An option is being drawn for a menu (or for sorting purposes).
- *
- * INPUT : TopMenu Handle, topobj ID, client index.
- * OUTPUT: Buffer for rendering, maxlength of buffer.
- */
- TopMenuAction_DisplayOption = 0,
-
- /**
- * The title of a menu is being drawn for a given topobj.
- *
- * Note: The Object ID will be INVALID_TOPMENUOBJECT if drawing the
- * root title. Otherwise, the Object ID is a category.
- *
- * INPUT : TopMenu Handle, topobj ID, client index.
- * OUTPUT: Buffer for rendering, maxlength of buffer.
- */
- TopMenuAction_DisplayTitle = 1,
-
- /**
- * A menu option has been selected.
- *
- * The Object ID will always be an item (not a category).
- *
- * INPUT : TopMenu Handle, topobj ID, client index.
- */
- TopMenuAction_SelectOption = 2,
-
- /**
- * A menu option is being drawn and its flags can be overridden.
- *
- * INPUT : TopMenu Handle, topobj ID, client index.
- * OUTPUT: The first byte of the 'buffer' string should be set
- * to the desired flags. By default, it will contain
- * ITEMDRAW_DEFAULT.
- */
- TopMenuAction_DrawOption = 3,
-
- /**
- * Called when an topobj is being removed from the menu.
- * This can be used to clean up data stored in the info string.
- *
- * INPUT : TopMenu Handle, topobj ID.
- */
- TopMenuAction_RemoveObject = 4
-};
-
-/**
- * Top menu topobj types.
- */
-enum TopMenuObjectType
-{
- TopMenuObject_Category = 0, /**< Category (sub-menu branching from root) */
- TopMenuObject_Item = 1 /**< Item on a sub-menu */
-};
-
-/**
- * Top menu starting positions for display.
- */
-enum TopMenuPosition
-{
- TopMenuPosition_Start = 0, /**< Start/root of the menu */
- TopMenuPosition_LastRoot = 1, /**< Last position in the root menu */
- TopMenuPosition_LastCategory = 3 /**< Last position in their last category */
-};
-
-/**
- * Top menu topobj tag for type checking.
- */
-enum TopMenuObject
-{
- INVALID_TOPMENUOBJECT = 0
-};
-
-/**
- * TopMenu callback prototype.
- *
- * @param topmenu Handle to the TopMenu.
- * @param action TopMenuAction being performed.
- * @param topobj_id The topobj ID (if used).
- * @param param Extra parameter (if used).
- * @param buffer Output buffer (if used).
- * @param maxlength Output buffer (if used).
- */
-typedef TopMenuHandler = function void (
- TopMenu topmenu,
- TopMenuAction action,
- TopMenuObject topobj_id,
- int param,
- char[] buffer,
- int maxlength
-);
-
-// TopMenu objects are used for constructing multi-layer menus. Currently, they
-// support at most two levels. The first level of items are called "categories".
-methodmap TopMenu < Handle
-{
- // Creates a new TopMenu.
- //
- // @param handler Handler to use for drawing the root title.
- // @return A new TopMenu.
- public native TopMenu(TopMenuHandler handler);
-
- // Returns a TopMenu handle from a generic handle. If the given handle is
- // a TopMenu, the handle is simply casted back. Otherwise, an error is
- // raised.
- public static native TopMenu FromHandle(Handle handle);
-
- // Re-sorts the items in a TopMenu via a configuration file.
- //
- // The format of the configuration file should be a Valve Key-Values
- // formatted file that SourceMod can parse. There should be one root
- // section, and one sub-section for each category. Each sub-section's
- // name should match the category name.
- //
- // Each sub-section may only contain key/value pairs in the form of:
- // key: "item"
- // value: Name of the item as passed to AddToTopMenu().
- //
- // The TopMenu will draw items in the order declared in the configuration
- // file. If items do not appear in the configuration file, they are sorted
- // per-player based on how the handler function renders for that player.
- // These items appear after the configuration sorted items.
- //
- // @param topmenu TopMenu Handle.
- // @param file File path.
- // @param error Error buffer.
- // @param maxlength Maximum size of the error buffer. Error buffer
- // will be filled with a zero-terminated string if
- // false is returned.
- // @return True on success, false on failure.
- public native bool LoadConfig(const char[] file, char[] error, int maxlength);
-
- // Adds a category to a TopMenu.
- //
- // @param name Object name (MUST be unique).
- // @param handler Handler for topobj.
- // @param cmdname Command name (for access overrides).
- // @param flags Default access flags.
- // @param info_string Arbitrary storage (max 255 bytes).
- // @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
- public native TopMenuObject AddCategory(const char[] name, TopMenuHandler handler,
- const char[] cmdname = "", int flags = 0,
- const char[] info_string = "");
-
- // Adds an item to a TopMenu category.
- //
- // @param name Object name (MUST be unique).
- // @param handler Handler for topobj.
- // @param category The object of the parent category for the item.
- // @param cmdname Command name (for access overrides).
- // @param flags Default access flags.
- // @param info_string Arbitrary storage (max 255 bytes).
- // @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on failure.
- public native TopMenuObject AddItem(const char[] name, TopMenuHandler handler,
- TopMenuObject parent, const char[] cmdname = "",
- int flags = 0, const char[] info_string = "");
-
- // Retrieves the info string of a top menu item.
- //
- // @param parent TopMenuObject ID.
- // @param buffer Buffer to store info string.
- // @param maxlength Maximum size of info string.
- // @return Number of bytes written, not including the null terminator.
- public native int GetInfoString(TopMenuObject parent, char[] buffer, int maxlength);
-
- // Retrieves the name string of a top menu item.
- //
- // @param topobj TopMenuObject ID.
- // @param buffer Buffer to store info string.
- // @param maxlength Maximum size of info string.
- // @return Number of bytes written, not including the null terminator.
- public native int GetObjName(TopMenuObject topobj, char[] buffer, int maxlength);
-
- // Removes an topobj from a TopMenu.
- //
- // Plugins' topobjs are automatically removed all TopMenus when the given
- // plugin unloads or pauses. In the case of unpausing, all items are restored.
- //
- // @param topobj TopMenuObject ID.
- public native void Remove(TopMenuObject topobj);
-
- // Displays a TopMenu to a client.
- //
- // @param client Client index.
- // @param position Position to display from.
- // @return True on success, false on failure.
- public native bool Display(int client, TopMenuPosition position);
-
- // Displays a TopMenu category to a client.
- //
- // @param category Category topobj id.
- // @param client Client index.
- // @return True on success, false on failure.
- public native bool DisplayCategory(TopMenuObject category, int client);
-
- // Finds a category's topobj ID in a TopMenu.
- //
- // @param name Object's unique name.
- // @return TopMenuObject ID on success, or
- // INVALID_TOPMENUOBJECT on failure.
- public native TopMenuObject FindCategory(const char[] name);
-
- // Set the menu title caching behavior of the TopMenu. By default titles
- // are cached to reduce overhead. If you need dynamic menu titles which
- // change each time the menu is displayed to a user, set this to false.
- property bool CacheTitles {
- public native set(bool value);
- }
-};
-
-/**
- * Creates a TopMenu.
- *
- * @param handler Handler to use for drawing the root title.
- * @return A new TopMenu Handle, or INVALID_HANDLE on failure.
- */
-native TopMenu CreateTopMenu(TopMenuHandler handler);
-
-/**
- * Re-sorts the items in a TopMenu via a configuration file.
- *
- * The format of the configuration file should be a Valve Key-Values
- * formatted file that SourceMod can parse. There should be one root
- * section, and one sub-section for each category. Each sub-section's
- * name should match the category name.
- *
- * Each sub-section may only contain key/value pairs in the form of:
- * key: "item"
- * value: Name of the item as passed to AddToTopMenu().
- *
- * The TopMenu will draw items in the order declared in the configuration
- * file. If items do not appear in the configuration file, they are sorted
- * per-player based on how the handler function renders for that player.
- * These items appear after the configuration sorted items.
- *
- * @param topmenu TopMenu Handle.
- * @param file File path.
- * @param error Error buffer.
- * @param maxlength Maximum size of the error buffer.
- * Error buffer will be filled with a
- * zero-terminated string if false is
- * returned.
- * @return True on success, false on failure.
- * @error Invalid TopMenu Handle.
- */
-native bool LoadTopMenuConfig(Handle topmenu, const char[] file, char[] error, int maxlength);
-
-/**
- * Adds an topobj to a TopMenu.
- *
- * @param topmenu TopMenu Handle.
- * @param name Object name (MUST be unique).
- * @param type Object type.
- * @param handler Handler for topobj.
- * @param parent Parent topobj ID, or INVALID_TOPMENUOBJECT for none.
- * Items must have a category parent.
- * Categories must not have a parent.
- * @param cmdname Command name (for access overrides).
- * @param flags Default access flags.
- * @param info_string Arbitrary storage (max 255 bytes).
- * @return A new TopMenuObject ID, or INVALID_TOPMENUOBJECT on
- * failure.
- * @error Invalid TopMenu Handle.
- */
-native TopMenuObject AddToTopMenu(Handle topmenu,
- const char[] name,
- TopMenuObjectType type,
- TopMenuHandler handler,
- TopMenuObject parent,
- const char[] cmdname="",
- int flags=0,
- const char[] info_string="");
-
-/**
- * Retrieves the info string of a top menu item.
- *
- * @param topmenu TopMenu Handle.
- * @param parent TopMenuObject ID.
- * @param buffer Buffer to store info string.
- * @param maxlength Maximum size of info string.
- * @return Number of bytes written, not including the
- * null terminator.
- * @error Invalid TopMenu Handle or TopMenuObject ID.
- */
-native int GetTopMenuInfoString(Handle topmenu, TopMenuObject parent, char[] buffer, int maxlength);
-
-/**
- * Retrieves the name string of a top menu item.
- *
- * @param topmenu TopMenu Handle.
- * @param topobj TopMenuObject ID.
- * @param buffer Buffer to store info string.
- * @param maxlength Maximum size of info string.
- * @return Number of bytes written, not including the
- * null terminator.
- * @error Invalid TopMenu Handle or TopMenuObject ID.
- */
-native int GetTopMenuObjName(Handle topmenu, TopMenuObject topobj, char[] buffer, int maxlength);
-
-/**
- * Removes an topobj from a TopMenu.
- *
- * Plugins' topobjs are automatically removed all TopMenus when the given
- * plugin unloads or pauses. In the case of unpausing, all items are restored.
- *
- * @param topmenu TopMenu Handle.
- * @param topobj TopMenuObject ID.
- * @error Invalid TopMenu Handle.
- */
-native void RemoveFromTopMenu(Handle topmenu, TopMenuObject topobj);
-
-/**
- * Displays a TopMenu to a client.
- *
- * @param topmenu TopMenu Handle.
- * @param client Client index.
- * @param position Position to display from.
- * @return True on success, false on failure.
- * @error Invalid TopMenu Handle, invalid client index, or client not in game.
- */
-native bool DisplayTopMenu(Handle topmenu, int client, TopMenuPosition position);
-
-/**
- * Displays a TopMenu category to a client.
- *
- * @param topmenu TopMenu Handle.
- * @param category Category topobj id.
- * @param client Client index.
- * @return True on success, false on failure.
- * @error Invalid TopMenu Handle, invalid client index, or client not in game.
- */
-native bool DisplayTopMenuCategory(Handle topmenu, TopMenuObject category, int client);
-
-/**
- * Finds a category's topobj ID in a TopMenu.
- *
- * @param topmenu TopMenu Handle.
- * @param name Object's unique name.
- * @return TopMenuObject ID on success, or
- * INVALID_TOPMENUOBJECT on failure.
- * @error Invalid TopMenu Handle.
- */
-native TopMenuObject FindTopMenuCategory(Handle topmenu, const char[] name);
-
-/**
- * Change the menu title caching behavior of the TopMenu. By default the
- * titles are cached to reduce overhead. If you need dynamic menu titles, which
- * can change everytime the menu is displayed to a user, set this to false.
- *
- * @param topmenu TopMenu Handle.
- * @param cache_titles Cache the menu titles and don't call the handler with
- * TopMenuAction_DisplayTitle everytime the menu is drawn?
- * @error Invalid TopMenu Handle
- */
-native void SetTopMenuTitleCaching(Handle topmenu, bool cache_titles);
-
-
-/**
- * Do not edit below this line!
- */
-public Extension __ext_topmenus =
-{
- name = "TopMenus",
- file = "topmenus.ext",
-#if defined AUTOLOAD_EXTENSIONS
- autoload = 1,
-#else
- autoload = 0,
-#endif
-#if defined REQUIRE_EXTENSIONS
- required = 1,
-#else
- required = 0,
-#endif
-};
-
-#if !defined REQUIRE_EXTENSIONS
-public void __ext_topmenus_SetNTVOptional()
-{
- MarkNativeAsOptional("CreateTopMenu");
- MarkNativeAsOptional("LoadTopMenuConfig");
- MarkNativeAsOptional("AddToTopMenu");
- MarkNativeAsOptional("RemoveFromTopMenu");
- MarkNativeAsOptional("DisplayTopMenu");
- MarkNativeAsOptional("DisplayTopMenuCategory");
- MarkNativeAsOptional("FindTopMenuCategory");
- MarkNativeAsOptional("SetTopMenuTitleCaching");
- MarkNativeAsOptional("TopMenu.TopMenu");
- MarkNativeAsOptional("TopMenu.FromHandle");
- MarkNativeAsOptional("TopMenu.LoadConfig");
- MarkNativeAsOptional("TopMenu.AddCategory");
- MarkNativeAsOptional("TopMenu.AddItem");
- MarkNativeAsOptional("TopMenu.GetInfoString");
- MarkNativeAsOptional("TopMenu.GetObjName");
- MarkNativeAsOptional("TopMenu.Remove");
- MarkNativeAsOptional("TopMenu.Display");
- MarkNativeAsOptional("TopMenu.DisplayCategory");
- MarkNativeAsOptional("TopMenu.FindCategory");
- MarkNativeAsOptional("TopMenu.CacheTitles.set");
-}
-#endif
diff --git a/addons/sourcemod/scripting/include/usermessages.inc b/addons/sourcemod/scripting/include/usermessages.inc
deleted file mode 100644
index 0a43f3fa8..000000000
--- a/addons/sourcemod/scripting/include/usermessages.inc
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _eventsmsgs_included
- #endinput
-#endif
-#define _eventsmsgs_included
-
-/**
- * UserMsg helper values.
- */
-enum UserMsg
-{
- INVALID_MESSAGE_ID = -1
-};
-
-/**
- * UserMsg message serialization formats
- */
-enum UserMessageType
-{
- UM_BitBuf = 0,
- UM_Protobuf
-};
-
-/**
- * @section Message Flags.
- */
-#define USERMSG_RELIABLE (1<<2) /**< Message will be set on the reliable stream */
-#define USERMSG_INITMSG (1<<3) /**< Message will be considered to be an initmsg */
-#define USERMSG_BLOCKHOOKS (1<<7) /**< Prevents the message from triggering SourceMod and Metamod hooks */
-
-/**
- * @endsection
- */
-
-/**
- * Returns usermessage serialization type used for the current engine
- *
- * @return The supported usermessage type.
- */
-native UserMessageType GetUserMessageType();
-
-stock Protobuf UserMessageToProtobuf(Handle msg)
-{
- if (GetUserMessageType() != UM_Protobuf)
- {
- return null;
- }
-
- return view_as(msg);
-}
-
-// Make sure to only call this on writable buffers (eg from StartMessage).
-stock BfWrite UserMessageToBfWrite(Handle msg)
-{
- if (GetUserMessageType() == UM_Protobuf)
- {
- return null;
- }
-
- return view_as(msg);
-}
-
-// Make sure to only call this on readable buffers (eg from a message hook).
-stock BfRead UserMessageToBfRead(Handle msg)
-{
- if (GetUserMessageType() == UM_Protobuf)
- {
- return null;
- }
-
- return view_as(msg);
-}
-
-/**
- * Returns the ID of a given message, or -1 on failure.
- *
- * @param msg String containing message name (case sensitive).
- * @return A message index, or INVALID_MESSAGE_ID on failure.
- */
-native UserMsg GetUserMessageId(const char[] msg);
-
-/**
- * Retrieves the name of a message by ID.
- *
- * @param msg_id Message index.
- * @param msg Buffer to store the name of the message.
- * @param maxlength Maximum length of string buffer.
- * @return True if message index is valid, false otherwise.
- */
-native bool GetUserMessageName(UserMsg msg_id, char[] msg, int maxlength);
-
-/**
- * Starts a usermessage (network message).
- *
- * @note Only one message can be active at a time.
- * @note It is illegal to send any message while a non-intercept hook is in progress.
- *
- * @param msgname Message name to start.
- * @param clients Array containing player indexes to broadcast to.
- * @param numClients Number of players in the array.
- * @param flags Optional flags to set.
- * @return A handle to a bf_write bit packing structure, or
- * INVALID_HANDLE on failure.
- * @error Invalid message name, unable to start a message, invalid client,
- * or client not connected.
- */
-native Handle StartMessage(const char[] msgname, const int[] clients, int numClients, int flags=0);
-
-/**
- * Starts a usermessage (network message).
- *
- * @note Only one message can be active at a time.
- * @note It is illegal to send any message while a non-intercept hook is in progress.
- *
- * @param msg Message index to start.
- * @param clients Array containing player indexes to broadcast to.
- * @param numClients Number of players in the array.
- * @param flags Optional flags to set.
- * @return A handle to a bf_write bit packing structure, or
- * INVALID_HANDLE on failure.
- * @error Invalid message name, unable to start a message, invalid client,
- * or client not connected.
- */
-native Handle StartMessageEx(UserMsg msg, const int[] clients, int numClients, int flags=0);
-
-/**
- * Ends a previously started user message (network message).
- */
-native void EndMessage();
-
-/**
- * Hook function types for user messages.
-*/
-typeset MsgHook
-{
- /**
- * Called when a bit buffer based usermessage is hooked
- *
- * @param msg_id Message index.
- * @param msg Handle to the input bit buffer.
- * @param players Array containing player indexes.
- * @param playersNum Number of players in the array.
- * @param reliable True if message is reliable, false otherwise.
- * @param init True if message is an initmsg, false otherwise.
- * @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
- * blocks the message from being sent, and Plugin_Continue
- * resumes normal functionality.
- */
- function Action (UserMsg msg_id, BfRead msg, const int[] players, int playersNum, bool reliable, bool init);
- /**
- * Called when a protobuf based usermessage is hooked
- *
- * @param msg_id Message index.
- * @param msg Handle to the input protobuf.
- * @param players Array containing player indexes.
- * @param playersNum Number of players in the array.
- * @param reliable True if message is reliable, false otherwise.
- * @param init True if message is an initmsg, false otherwise.
- * @return Ignored for normal hooks. For intercept hooks, Plugin_Handled
- * blocks the message from being sent, and Plugin_Continue
- * resumes normal functionality.
- */
- function Action (UserMsg msg_id, Protobuf msg, const int[] players, int playersNum, bool reliable, bool init);
-};
-
-/**
- * Called when a message hook has completed.
- *
- * @param msg_id Message index.
- * @param sent True if message was sent, false if blocked.
- */
-typedef MsgPostHook = function void (UserMsg msg_id, bool sent);
-
-/**
- * Hooks a user message.
- *
- * @param msg_id Message index.
- * @param hook Function to use as a hook.
- * @param intercept If intercept is true, message will be fully intercepted,
- * allowing the user to block the message. Otherwise,
- * the hook is normal and ignores the return value.
- * @param post Notification function.
- * @error Invalid message index.
- */
-native void HookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false, MsgPostHook post=INVALID_FUNCTION);
-
-/**
- * Removes one usermessage hook.
- *
- * @param msg_id Message index.
- * @param hook Function used for the hook.
- * @param intercept Specifies whether the hook was an intercept hook or not.
- * @error Invalid message index.
- */
-native void UnhookUserMessage(UserMsg msg_id, MsgHook hook, bool intercept=false);
-
-/**
- * Starts a usermessage (network message) that broadcasts to all clients.
- *
- * @note See StartMessage or StartMessageEx().
- *
- * @param msgname Message name to start.
- * @param flags Optional flags to set.
- * @return A handle to a bf_write bit packing structure, or
- * INVALID_HANDLE on failure.
- */
-stock Handle StartMessageAll(const char[] msgname, int flags=0)
-{
- int total = 0;
- int[] clients = new int[MaxClients];
- for (int i = 1; i <= MaxClients; i++)
- {
- if (IsClientConnected(i))
- {
- clients[total++] = i;
- }
- }
-
- return StartMessage(msgname, clients, total, flags);
-}
-
-/**
- * Starts a simpler usermessage (network message) for one client.
- *
- * @note See StartMessage or StartMessageEx().
- *
- * @param msgname Message name to start.
- * @param client Client to send to.
- * @param flags Optional flags to set.
- * @return A handle to a bf_write bit packing structure, or
- * INVALID_HANDLE on failure.
- */
-stock Handle StartMessageOne(const char[] msgname, int client, int flags=0)
-{
- int players[1];
- players[0] = client;
-
- return StartMessage(msgname, players, 1, flags);
-}
diff --git a/addons/sourcemod/scripting/include/vector.inc b/addons/sourcemod/scripting/include/vector.inc
deleted file mode 100644
index 3cfe21ccc..000000000
--- a/addons/sourcemod/scripting/include/vector.inc
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _vector_included
- #endinput
-#endif
-#define _vector_included
-
-/**
- * Calculates a vector's length.
- *
- * @param vec Vector.
- * @param squared If true, the result will be squared (for optimization).
- * @return Vector length (magnitude).
- */
-native float GetVectorLength(const float vec[3], bool squared=false);
-
-/**
- * Calculates the distance between two vectors.
- *
- * @param vec1 First vector.
- * @param vec2 Second vector.
- * @param squared If true, the result will be squared (for optimization).
- * @return Vector distance.
- */
-native float GetVectorDistance(const float vec1[3], const float vec2[3], bool squared=false);
-
-/**
- * Calculates the dot product of two vectors.
- *
- * @param vec1 First vector.
- * @param vec2 Second vector.
- * @return Dot product of the two vectors.
- */
-native float GetVectorDotProduct(const float vec1[3], const float vec2[3]);
-
-/**
- * Computes the cross product of two vectors. Any input array can be the same
- * as the output array.
- *
- * @param vec1 First vector.
- * @param vec2 Second vector.
- * @param result Resultant vector.
- */
-native void GetVectorCrossProduct(const float vec1[3], const float vec2[3], float result[3]);
-
-/**
- * Normalizes a vector. The input array can be the same as the output array.
- *
- * @param vec Vector.
- * @param result Resultant vector.
- * @return Vector length.
- */
-native float NormalizeVector(const float vec[3], float result[3]);
-
-/**
- * Returns vectors in the direction of an angle.
- *
- * @param angle Angle.
- * @param fwd Forward vector buffer or NULL_VECTOR.
- * @param right Right vector buffer or NULL_VECTOR.
- * @param up Up vector buffer or NULL_VECTOR.
- */
-native void GetAngleVectors(const float angle[3], float fwd[3], float right[3], float up[3]);
-
-/**
- * Returns angles from a vector.
- *
- * @param vec Vector.
- * @param angle Angle buffer.
- */
-native void GetVectorAngles(const float vec[3], float angle[3]);
-
-/**
- * Returns direction vectors from a vector.
- *
- * @param vec Vector.
- * @param right Right vector buffer or NULL_VECTOR.
- * @param up Up vector buffer or NULL_VECTOR.
- */
-native void GetVectorVectors(const float vec[3], float right[3], float up[3]);
-
-/**
- * Adds two vectors. It is safe to use either input buffer as an output
- * buffer.
- *
- * @param vec1 First vector.
- * @param vec2 Second vector.
- * @param result Result buffer.
- */
-stock void AddVectors(const float vec1[3], const float vec2[3], float result[3])
-{
- result[0] = vec1[0] + vec2[0];
- result[1] = vec1[1] + vec2[1];
- result[2] = vec1[2] + vec2[2];
-}
-
-/**
- * Subtracts a vector from another vector. It is safe to use either input
- * buffer as an output buffer.
- *
- * @param vec1 First vector.
- * @param vec2 Second vector to subtract from first.
- * @param result Result buffer.
- */
-stock void SubtractVectors(const float vec1[3], const float vec2[3], float result[3])
-{
- result[0] = vec1[0] - vec2[0];
- result[1] = vec1[1] - vec2[1];
- result[2] = vec1[2] - vec2[2];
-}
-
-/**
- * Scales a vector.
- *
- * @param vec Vector.
- * @param scale Scale value.
- */
-stock void ScaleVector(float vec[3], float scale)
-{
- vec[0] *= scale;
- vec[1] *= scale;
- vec[2] *= scale;
-}
-
-/**
- * Negatives a vector.
- *
- * @param vec Vector.
- */
-stock void NegateVector(float vec[3])
-{
- vec[0] = -vec[0];
- vec[1] = -vec[1];
- vec[2] = -vec[2];
-}
-
-/**
- * Builds a vector from two points by subtracting the points.
- *
- * @param pt1 First point (to be subtracted from the second).
- * @param pt2 Second point.
- * @param output Output vector buffer.
- */
-stock void MakeVectorFromPoints(const float pt1[3], const float pt2[3], float output[3])
-{
- output[0] = pt2[0] - pt1[0];
- output[1] = pt2[1] - pt1[1];
- output[2] = pt2[2] - pt1[2];
-}
diff --git a/addons/sourcemod/scripting/include/version.inc b/addons/sourcemod/scripting/include/version.inc
deleted file mode 100644
index d7b632c9c..000000000
--- a/addons/sourcemod/scripting/include/version.inc
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod (C)2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This file is part of the SourceMod/SourcePawn SDK.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#if defined _version_included
- #endinput
-#endif
-#define _version_included
-
-#tryinclude
-
-#if !defined _auto_version_included
- #define SOURCEMOD_V_TAG "manual"
- #define SOURCEMOD_V_REV 0
- #define SOURCEMOD_V_CSET "0"
- #define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */
- #define SOURCEMOD_V_MINOR 11 /**< SourceMod Minor version */
- #define SOURCEMOD_V_RELEASE 0 /**< SourceMod Release version */
-
- #define SOURCEMOD_VERSION "1.11.0-manual" /**< SourceMod version string (major.minor.release-tag) */
-#endif
diff --git a/addons/sourcemod/scripting/include/version_auto.inc b/addons/sourcemod/scripting/include/version_auto.inc
deleted file mode 100644
index 1ae86e3c3..000000000
--- a/addons/sourcemod/scripting/include/version_auto.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-
-#if defined _auto_version_included
- #endinput
-#endif
-#define _auto_version_included
-
-#define SOURCEMOD_V_TAG ""
-#define SOURCEMOD_V_CSET "4e3df76"
-#define SOURCEMOD_V_MAJOR 1
-#define SOURCEMOD_V_MINOR 11
-#define SOURCEMOD_V_RELEASE 0
-#define SOURCEMOD_V_REV 6825
-
-#define SOURCEMOD_VERSION "1.11.0.6825"
-
\ No newline at end of file
diff --git a/addons/sourcemod/scripting/l4d2_jockey_skeet.sp b/addons/sourcemod/scripting/l4d2_jockey_skeet.sp
index 082d01e36..4e569801f 100644
--- a/addons/sourcemod/scripting/l4d2_jockey_skeet.sp
+++ b/addons/sourcemod/scripting/l4d2_jockey_skeet.sp
@@ -70,7 +70,7 @@ public void OnClientDisconnect(int client)
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
-public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon,
+Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &weapon,
float damageForce[3], float damagePosition[3], int damagecustom)
{
if (!IsJockey(victim) || !IsSurvivor(attacker) || IsFakeClient(attacker) || !IsValidEdict(weapon)) {
@@ -127,7 +127,7 @@ bool IsJockey(int client)
&& IsClientInGame(client)
&& GetClientTeam(client) == TEAM_INFECTED
&& GetEntProp(client, Prop_Send, "m_zombieClass") == Z_JOCKEY
- && !GetEntProp(client, Prop_Send, "m_isGhost"));
+ && !GetEntProp(client, Prop_Send, "m_isGhost", 1));
}
bool HasJockeyTarget(int infected)
@@ -150,4 +150,4 @@ bool IsShotgun(int weapon)
GetEdictClassname(weapon, classname, sizeof(classname));
return (StrEqual(classname, "weapon_pumpshotgun") || StrEqual(classname, "weapon_shotgun_chrome")
/*|| StrEqual(classname, "weapon_autoshotgun") || StrEqual(classname, "weapon_shotgun_spas")*/); //visor code need?
-}
\ No newline at end of file
+}
diff --git a/addons/sourcemod/scripting/l4d2_skill_detect/tracking.sp b/addons/sourcemod/scripting/l4d2_skill_detect/tracking.sp
index 6d3fa7f69..01617aa4f 100644
--- a/addons/sourcemod/scripting/l4d2_skill_detect/tracking.sp
+++ b/addons/sourcemod/scripting/l4d2_skill_detect/tracking.sp
@@ -1159,7 +1159,7 @@ Action Event_PlayerBoomed(Handle event, const char[] name, bool dontBroadcast)
}
// check how many booms landed
-public Action Timer_BoomVomitCheck(Handle timer, any client)
+Action Timer_BoomVomitCheck(Handle timer, any client)
{
HandleVomitLanded(client, g_iBoomerVomitHits[client]);
g_iBoomerVomitHits[client] = 0;
diff --git a/addons/sourcemod/scripting/l4d_boss_percent.sp b/addons/sourcemod/scripting/l4d_boss_percent.sp
index 60732ffa1..8048fa016 100644
--- a/addons/sourcemod/scripting/l4d_boss_percent.sp
+++ b/addons/sourcemod/scripting/l4d_boss_percent.sp
@@ -177,7 +177,7 @@ int Native_GetStoredWitchPercent(Handle plugin, int numParams)
}
// Used for other plugins to get the stored tank percent
-public int Native_GetStoredTankPercent(Handle plugin, int numParams)
+int Native_GetStoredTankPercent(Handle plugin, int numParams)
{
return g_fTankPercent;
}
diff --git a/addons/sourcemod/scripting/l4d_rock_lagcomp.sp b/addons/sourcemod/scripting/l4d_rock_lagcomp.sp
index 53f83ae6a..ef67eafec 100644
--- a/addons/sourcemod/scripting/l4d_rock_lagcomp.sp
+++ b/addons/sourcemod/scripting/l4d_rock_lagcomp.sp
@@ -302,7 +302,7 @@ void Array_RemoveRock(ArrayList array, int rockEntity)
* @param entity entity index to search for
* @return array index if found, -1 if not found.
*/
-public int Array_SearchRock(ArrayList array, rockEntity)
+int Array_SearchRock(ArrayList array, rockEntity)
{
for (int i = 0; i < array.Length; ++i) {
new cRockEntity = array.Get(i, BLOCK_ENT_REF);