plugins/include/sdkhooks.inc
author Nicholas Hastings <skamonkey@gmail.com>
Sun Mar 17 11:39:04 2013 -0400 (2013-03-17)
changeset 3833 7563b32966af
parent 3767 7223d0a452a8
child 3967 ceafb87d38a7
permissions -rw-r--r--
Moved PCRE_STATIC def in Regex ext to extension instead of modifying pcre header (bug 5593).
skamonkey@3767
     1
/**
skamonkey@3767
     2
 * vim: set ts=4 :
skamonkey@3767
     3
 * =============================================================================
skamonkey@3767
     4
 * SourceMod (C)2009-2013 AlliedModders LLC.  All rights reserved.
skamonkey@3767
     5
 * =============================================================================
skamonkey@3767
     6
 *
skamonkey@3767
     7
 * This file is part of the SourceMod/SourcePawn SDK.
skamonkey@3767
     8
 *
skamonkey@3767
     9
 * This program is free software; you can redistribute it and/or modify it under
skamonkey@3767
    10
 * the terms of the GNU General Public License, version 3.0, as published by the
skamonkey@3767
    11
 * Free Software Foundation.
skamonkey@3767
    12
 * 
skamonkey@3767
    13
 * This program is distributed in the hope that it will be useful, but WITHOUT
skamonkey@3767
    14
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
skamonkey@3767
    15
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
skamonkey@3767
    16
 * details.
skamonkey@3767
    17
 *
skamonkey@3767
    18
 * You should have received a copy of the GNU General Public License along with
skamonkey@3767
    19
 * this program.  If not, see <http://www.gnu.org/licenses/>.
skamonkey@3767
    20
 *
skamonkey@3767
    21
 * As a special exception, AlliedModders LLC gives you permission to link the
skamonkey@3767
    22
 * code of this program (as well as its derivative works) to "Half-Life 2," the
skamonkey@3767
    23
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
skamonkey@3767
    24
 * by the Valve Corporation.  You must obey the GNU General Public License in
skamonkey@3767
    25
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
skamonkey@3767
    26
 * this exception to all derivative works.  AlliedModders LLC defines further
skamonkey@3767
    27
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
skamonkey@3767
    28
 * or <http://www.sourcemod.net/license.php>.
skamonkey@3767
    29
 */
skamonkey@3767
    30
skamonkey@3767
    31
#if defined _sdkhooks_included
skamonkey@3767
    32
 #endinput
skamonkey@3767
    33
#endif
skamonkey@3767
    34
#define _sdkhooks_included
skamonkey@3767
    35
skamonkey@3767
    36
// this is obviously _not_ a robust check, but it will solve most conflict and is clean
skamonkey@3767
    37
#if !defined DMG_GENERIC
skamonkey@3767
    38
#define DMG_GENERIC								0					// generic damage was done
skamonkey@3767
    39
#define DMG_CRUSH									(1 << 0)	// crushed by falling or moving object. 
skamonkey@3767
    40
																						// NOTE: It's assumed crush damage is occurring as a result of physics collision, so no extra physics force is generated by crush damage.
skamonkey@3767
    41
																						// DON'T use DMG_CRUSH when damaging entities unless it's the result of a physics collision. You probably want DMG_CLUB instead.
skamonkey@3767
    42
#define DMG_BULLET								(1 << 1)	// shot
skamonkey@3767
    43
#define DMG_SLASH									(1 << 2)	// cut, clawed, stabbed
skamonkey@3767
    44
#define DMG_BURN									(1 << 3)	// heat burned
skamonkey@3767
    45
#define DMG_VEHICLE								(1 << 4)	// hit by a vehicle
skamonkey@3767
    46
#define DMG_FALL									(1 << 5)	// fell too far
skamonkey@3767
    47
#define DMG_BLAST									(1 << 6)	// explosive blast damage
skamonkey@3767
    48
#define DMG_CLUB									(1 << 7)	// crowbar, punch, headbutt
skamonkey@3767
    49
#define DMG_SHOCK									(1 << 8)	// electric shock
skamonkey@3767
    50
#define DMG_SONIC									(1 << 9)	// sound pulse shockwave
skamonkey@3767
    51
#define DMG_ENERGYBEAM						(1 << 10)	// laser or other high energy beam 
skamonkey@3767
    52
#define DMG_PREVENT_PHYSICS_FORCE	(1 << 11)	// Prevent a physics force 
skamonkey@3767
    53
#define DMG_NEVERGIB							(1 << 12)	// with this bit OR'd in, no damage type will be able to gib victims upon death
skamonkey@3767
    54
#define DMG_ALWAYSGIB							(1 << 13)	// with this bit OR'd in, any damage type can be made to gib victims upon death.
skamonkey@3767
    55
#define DMG_DROWN									(1 << 14)	// Drowning
skamonkey@3767
    56
#define DMG_PARALYZE							(1 << 15)	// slows affected creature down
skamonkey@3767
    57
#define DMG_NERVEGAS							(1 << 16)	// nerve toxins, very bad
skamonkey@3767
    58
#define DMG_POISON								(1 << 17)	// blood poisoning - heals over time like drowning damage
skamonkey@3767
    59
#define DMG_RADIATION							(1 << 18)	// radiation exposure
skamonkey@3767
    60
#define DMG_DROWNRECOVER					(1 << 19)	// drowning recovery
skamonkey@3767
    61
#define DMG_ACID									(1 << 20)	// toxic chemicals or acid burns
skamonkey@3767
    62
#define DMG_SLOWBURN							(1 << 21)	// in an oven
skamonkey@3767
    63
#define DMG_REMOVENORAGDOLL				(1 << 22)	// with this bit OR'd in, no ragdoll will be created, and the target will be quietly removed.
skamonkey@3767
    64
																						// use this to kill an entity that you've already got a server-side ragdoll for
skamonkey@3767
    65
#define DMG_PHYSGUN								(1 << 23)	// Hit by manipulator. Usually doesn't do any damage.
skamonkey@3767
    66
#define DMG_PLASMA								(1 << 24)	// Shot by Cremator
skamonkey@3767
    67
#define DMG_AIRBOAT								(1 << 25)	// Hit by the airboat's gun
skamonkey@3767
    68
#define DMG_DISSOLVE							(1 << 26)	// Dissolving!
skamonkey@3767
    69
#define DMG_BLAST_SURFACE					(1 << 27)	// A blast on the surface of water that cannot harm things underwater
skamonkey@3767
    70
#define DMG_DIRECT								(1 << 28)
skamonkey@3767
    71
#define DMG_BUCKSHOT							(1 << 29)	// not quite a bullet. Little, rounder, different.
skamonkey@3767
    72
#endif
skamonkey@3767
    73
skamonkey@3767
    74
#if !defined DMG_CRIT
skamonkey@3767
    75
	// TF2 crits and minicrits
skamonkey@3767
    76
	#define DMG_CRIT DMG_ACID
skamonkey@3767
    77
#endif
skamonkey@3767
    78
skamonkey@3767
    79
enum SDKHookType
skamonkey@3767
    80
{
skamonkey@3767
    81
	SDKHook_EndTouch,
skamonkey@3767
    82
	SDKHook_FireBulletsPost,
skamonkey@3767
    83
	SDKHook_OnTakeDamage,
skamonkey@3767
    84
	SDKHook_OnTakeDamagePost,
skamonkey@3767
    85
	SDKHook_PreThink,
skamonkey@3767
    86
	SDKHook_PostThink,
skamonkey@3767
    87
	SDKHook_SetTransmit,
skamonkey@3767
    88
	SDKHook_Spawn,
skamonkey@3767
    89
	SDKHook_StartTouch,
skamonkey@3767
    90
	SDKHook_Think,
skamonkey@3767
    91
	SDKHook_Touch,
skamonkey@3767
    92
	SDKHook_TraceAttack,
skamonkey@3767
    93
	SDKHook_TraceAttackPost,
skamonkey@3767
    94
	SDKHook_WeaponCanSwitchTo,
skamonkey@3767
    95
	SDKHook_WeaponCanUse,
skamonkey@3767
    96
	SDKHook_WeaponDrop,
skamonkey@3767
    97
	SDKHook_WeaponEquip,
skamonkey@3767
    98
	SDKHook_WeaponSwitch,
skamonkey@3767
    99
	SDKHook_ShouldCollide,
skamonkey@3767
   100
	SDKHook_PreThinkPost,
skamonkey@3767
   101
	SDKHook_PostThinkPost,
skamonkey@3767
   102
	SDKHook_ThinkPost,
skamonkey@3767
   103
	SDKHook_EndTouchPost,
skamonkey@3767
   104
	SDKHook_GroundEntChangedPost,
skamonkey@3767
   105
	SDKHook_SpawnPost,
skamonkey@3767
   106
	SDKHook_StartTouchPost,
skamonkey@3767
   107
	SDKHook_TouchPost,
skamonkey@3767
   108
	SDKHook_VPhysicsUpdate,
skamonkey@3767
   109
	SDKHook_VPhysicsUpdatePost,
skamonkey@3767
   110
	SDKHook_WeaponCanSwitchToPost,
skamonkey@3767
   111
	SDKHook_WeaponCanUsePost,
skamonkey@3767
   112
	SDKHook_WeaponDropPost,
skamonkey@3767
   113
	SDKHook_WeaponEquipPost,
skamonkey@3767
   114
	SDKHook_WeaponSwitchPost,
skamonkey@3767
   115
	SDKHook_Use,
skamonkey@3767
   116
	SDKHook_UsePost,
skamonkey@3767
   117
	SDKHook_Reload,
skamonkey@3767
   118
	SDKHook_ReloadPost,
skamonkey@3767
   119
	SDKHook_GetMaxHealth,  // ep2v and later
skamonkey@3767
   120
};
skamonkey@3767
   121
skamonkey@3767
   122
/*
skamonkey@3767
   123
	Alphabetized for easy readability
skamonkey@3767
   124
	
skamonkey@3767
   125
	SDKHook_EndTouch,
skamonkey@3767
   126
	SDKHook_EndTouchPost,
skamonkey@3767
   127
	
skamonkey@3767
   128
	SDKHook_FireBulletsPost,
skamonkey@3767
   129
	
skamonkey@3767
   130
	SDKHook_GetMaxHealth,  (ep2v and later)
skamonkey@3767
   131
	
skamonkey@3767
   132
	SDKHook_GroundEntChangedPost,
skamonkey@3767
   133
	
skamonkey@3767
   134
	SDKHook_OnTakeDamage,
skamonkey@3767
   135
	SDKHook_OnTakeDamagePost,
skamonkey@3767
   136
	
skamonkey@3767
   137
	SDKHook_PreThink,
skamonkey@3767
   138
	SDKHook_PreThinkPost,
skamonkey@3767
   139
	
skamonkey@3767
   140
	SDKHook_PostThink,
skamonkey@3767
   141
	SDKHook_PostThinkPost,
skamonkey@3767
   142
	
skamonkey@3767
   143
	SDKHook_Reload,
skamonkey@3767
   144
	SDKHook_ReloadPost,
skamonkey@3767
   145
	
skamonkey@3767
   146
	SDKHook_SetTransmit,
skamonkey@3767
   147
	
skamonkey@3767
   148
	SDKHook_ShouldCollide,
skamonkey@3767
   149
	
skamonkey@3767
   150
	SDKHook_Spawn,
skamonkey@3767
   151
	SDKHook_SpawnPost,
skamonkey@3767
   152
	
skamonkey@3767
   153
	SDKHook_StartTouch,
skamonkey@3767
   154
	SDKHook_StartTouchPost,
skamonkey@3767
   155
	
skamonkey@3767
   156
	SDKHook_Think,
skamonkey@3767
   157
	SDKHook_ThinkPost,
skamonkey@3767
   158
	
skamonkey@3767
   159
	SDKHook_Touch,
skamonkey@3767
   160
	SDKHook_TouchPost,
skamonkey@3767
   161
	
skamonkey@3767
   162
	SDKHook_TraceAttack,
skamonkey@3767
   163
	SDKHook_TraceAttackPost,
skamonkey@3767
   164
	
skamonkey@3767
   165
	SDKHook_Use,
skamonkey@3767
   166
	SDKHook_UsePost,
skamonkey@3767
   167
	
skamonkey@3767
   168
	SDKHook_VPhysicsUpdate,
skamonkey@3767
   169
	SDKHook_VPhysicsUpdatePost,
skamonkey@3767
   170
	
skamonkey@3767
   171
	SDKHook_WeaponCanSwitchTo,
skamonkey@3767
   172
	SDKHook_WeaponCanSwitchToPost,
skamonkey@3767
   173
	
skamonkey@3767
   174
	SDKHook_WeaponCanUse,
skamonkey@3767
   175
	SDKHook_WeaponCanUsePost,
skamonkey@3767
   176
	
skamonkey@3767
   177
	SDKHook_WeaponDrop,
skamonkey@3767
   178
	SDKHook_WeaponDropPost,
skamonkey@3767
   179
	
skamonkey@3767
   180
	SDKHook_WeaponEquip,
skamonkey@3767
   181
	SDKHook_WeaponEquipPost,
skamonkey@3767
   182
	
skamonkey@3767
   183
	SDKHook_WeaponSwitch,
skamonkey@3767
   184
	SDKHook_WeaponSwitchPost
skamonkey@3767
   185
*/
skamonkey@3767
   186
skamonkey@3767
   187
enum UseType
skamonkey@3767
   188
{
skamonkey@3767
   189
	Use_Off,
skamonkey@3767
   190
	Use_On,
skamonkey@3767
   191
	Use_Set,
skamonkey@3767
   192
	Use_Toggle
skamonkey@3767
   193
};
skamonkey@3767
   194
skamonkey@3767
   195
funcenum SDKHookCB
skamonkey@3767
   196
{
skamonkey@3767
   197
	// PreThink/Post
skamonkey@3767
   198
	// PostThink/Post
skamonkey@3767
   199
	public(client),
skamonkey@3767
   200
	
skamonkey@3767
   201
	// Spawn
skamonkey@3767
   202
	Action:public(entity),
skamonkey@3767
   203
	
skamonkey@3767
   204
	// GroundEntChanged
skamonkey@3767
   205
	// SpawnPost
skamonkey@3767
   206
	// Think/Post
skamonkey@3767
   207
	// VPhysicsUpdate/Post
skamonkey@3767
   208
	public(entity),
skamonkey@3767
   209
	
skamonkey@3767
   210
	// EndTouch
skamonkey@3767
   211
	// StartTouch
skamonkey@3767
   212
	// Touch
skamonkey@3767
   213
	Action:public(entity, other),
skamonkey@3767
   214
	
skamonkey@3767
   215
	// EndTouchPost
skamonkey@3767
   216
	// StartTouchPost
skamonkey@3767
   217
	// TouchPost
skamonkey@3767
   218
	public(entity, other),
skamonkey@3767
   219
	
skamonkey@3767
   220
	// SetTransmit
skamonkey@3767
   221
	Action:public(entity, client),
skamonkey@3767
   222
	
skamonkey@3767
   223
	// WeaponCanSwitchTo
skamonkey@3767
   224
	// WeaponCanUse
skamonkey@3767
   225
	// WeaponDrop
skamonkey@3767
   226
	// WeaponEquip
skamonkey@3767
   227
	// WeaponSwitch
skamonkey@3767
   228
	Action:public(client, weapon),
skamonkey@3767
   229
	
skamonkey@3767
   230
	// WeaponCanSwitchToPost
skamonkey@3767
   231
	// WeaponCanUsePost
skamonkey@3767
   232
	// WeaponDropPost
skamonkey@3767
   233
	// WeaponEquipPost
skamonkey@3767
   234
	// WeaponSwitchPost
skamonkey@3767
   235
	public(client, weapon),
skamonkey@3767
   236
	
skamonkey@3767
   237
	// GetMaxHealth (ep2v and later)
skamonkey@3767
   238
	Action:public(entity, &maxhealth),
skamonkey@3767
   239
	
skamonkey@3767
   240
	// OnTakeDamage
skamonkey@3767
   241
	// Note: The weapon parameter is not used by all games and damage sources.
skamonkey@3767
   242
	// Note: Force application is dependent on game and damage type(s)
skamonkey@3767
   243
	// SDKHooks 1.0+
skamonkey@3767
   244
	Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype),
skamonkey@3767
   245
	// SDKHooks 2.0+
skamonkey@3767
   246
	Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]),
skamonkey@3767
   247
	// SDKHooks 2.1+  (can check for support at runtime using GetFeatureStatus on SDKHook_DmgCustomInOTD capability.
skamonkey@3767
   248
	// DON'T attempt to access 'damagecustom' var if feature status != available
skamonkey@3767
   249
	Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon,
skamonkey@3767
   250
		Float:damageForce[3], Float:damagePosition[3], damagecustom),
skamonkey@3767
   251
	
skamonkey@3767
   252
	// OnTakeDamagePost
skamonkey@3767
   253
	public(victim, attacker, inflictor, Float:damage, damagetype),
skamonkey@3767
   254
	public(victim, attacker, inflictor, Float:damage, damagetype, weapon, const Float:damageForce[3], const Float:damagePosition[3]),
skamonkey@3767
   255
	
skamonkey@3767
   256
	// FireBulletsPost
skamonkey@3767
   257
	public(client, shots, const String:weaponname[]),
skamonkey@3767
   258
	
skamonkey@3767
   259
	// TraceAttack
skamonkey@3767
   260
	Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup),
skamonkey@3767
   261
	
skamonkey@3767
   262
	// TraceAttackPost
skamonkey@3767
   263
	public(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup),
skamonkey@3767
   264
	
skamonkey@3767
   265
	// ShouldCollide
skamonkey@3767
   266
	bool:public(entity, collisiongroup, contentsmask, bool:originalResult),
skamonkey@3767
   267
	
skamonkey@3767
   268
	// Use
skamonkey@3767
   269
	Action:public(entity, activator, caller, UseType:type, Float:value),
skamonkey@3767
   270
	
skamonkey@3767
   271
	// UsePost
skamonkey@3767
   272
	public(entity, activator, caller, UseType:type, Float:value),
skamonkey@3767
   273
	
skamonkey@3767
   274
	// Reload
skamonkey@3767
   275
	Action:public(weapon),
skamonkey@3767
   276
	
skamonkey@3767
   277
	// Reload post
skamonkey@3767
   278
	public(weapon, bool:bSuccessful)
skamonkey@3767
   279
};
skamonkey@3767
   280
skamonkey@3767
   281
skamonkey@3767
   282
/**
skamonkey@3767
   283
 * @brief When an entity is created
skamonkey@3767
   284
 *
skamonkey@3767
   285
 * @param		entity		Entity index
skamonkey@3767
   286
 * @param		classname	Class name
skamonkey@3767
   287
 * @noreturn
skamonkey@3767
   288
 */
skamonkey@3767
   289
forward OnEntityCreated(entity, const String:classname[]);
skamonkey@3767
   290
skamonkey@3767
   291
/**
skamonkey@3767
   292
 * @brief When an entity is destroyed
skamonkey@3767
   293
 *
skamonkey@3767
   294
 * @param		entity		Entity index
skamonkey@3767
   295
 * @noreturn
skamonkey@3767
   296
 */
skamonkey@3767
   297
forward OnEntityDestroyed(entity);
skamonkey@3767
   298
skamonkey@3767
   299
/**
skamonkey@3767
   300
 * @brief When the game description is retrieved
skamonkey@3767
   301
 *
skamonkey@3767
   302
 * @note  Not supported on ep2v.
skamonkey@3767
   303
 *
skamonkey@3767
   304
 * @param		gameDesc		Game description
skamonkey@3767
   305
 * @noreturn
skamonkey@3767
   306
 */
skamonkey@3767
   307
forward Action:OnGetGameDescription(String:gameDesc[64]);
skamonkey@3767
   308
skamonkey@3767
   309
/**
skamonkey@3767
   310
 * @brief When the level is initialized
skamonkey@3767
   311
 *
skamonkey@3767
   312
 * @param		mapName			Name of the map
skamonkey@3767
   313
 * @param		mapEntities	Entities of the map
skamonkey@3767
   314
 * @noreturn
skamonkey@3767
   315
 */
skamonkey@3767
   316
forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]);
skamonkey@3767
   317
skamonkey@3767
   318
/**
skamonkey@3767
   319
 * @brief Hooks an entity
skamonkey@3767
   320
 *
skamonkey@3767
   321
 * @param		entity		Entity index
skamonkey@3767
   322
 * @param		type			Type of function to hook
skamonkey@3767
   323
 * @param		callback	Function to call when hook is called
skamonkey@3767
   324
 * @noreturn
skamonkey@3767
   325
 */
skamonkey@3767
   326
native SDKHook(entity, SDKHookType:type, SDKHookCB:callback);
skamonkey@3767
   327
skamonkey@3767
   328
/**
skamonkey@3767
   329
 * @brief Hooks an entity
skamonkey@3767
   330
 *
skamonkey@3767
   331
 * @param		entity		Entity index
skamonkey@3767
   332
 * @param		type			Type of function to hook
skamonkey@3767
   333
 * @param		callback	Function to call when hook is called
skamonkey@3767
   334
 * @return		bool		Hook Successful
skamonkey@3767
   335
 */
skamonkey@3767
   336
native bool:SDKHookEx(entity, SDKHookType:type, SDKHookCB:callback);
skamonkey@3767
   337
skamonkey@3767
   338
/**
skamonkey@3767
   339
 * @brief Unhooks an entity
skamonkey@3767
   340
 *
skamonkey@3767
   341
 * @param    entity   Entity index
skamonkey@3767
   342
 * @param    type     Type of function to unhook
skamonkey@3767
   343
 * @param    callback Callback function to unhook
skamonkey@3767
   344
 * @noreturn
skamonkey@3767
   345
 */
skamonkey@3767
   346
native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback);
skamonkey@3767
   347
skamonkey@3767
   348
/**
skamonkey@3767
   349
 * @brief Applies damage to an entity
skamonkey@3767
   350
 *
skamonkey@3767
   351
 * @note Force application is dependent on game and damage type(s)
skamonkey@3767
   352
 *
skamonkey@3767
   353
 * @param    entity         Entity index taking damage
skamonkey@3767
   354
 * @param    inflictor      Inflictor entity index
skamonkey@3767
   355
 * @param    attacker       Attacker entity index
skamonkey@3767
   356
 * @param    damage         Amount of damage
skamonkey@3767
   357
 * @param    damageType     Bitfield of damage types
skamonkey@3767
   358
 * @param    weapon         Weapon index (orangebox and later) or -1 for unspecified
skamonkey@3767
   359
 * @param    damageForce    Velocity of damage force
skamonkey@3767
   360
 * @param    damagePosition Origin of damage
skamonkey@3767
   361
 * @noreturn
skamonkey@3767
   362
 */
skamonkey@3767
   363
native SDKHooks_TakeDamage(entity, inflictor, attacker, Float:damage, damageType=DMG_GENERIC, weapon=-1, const Float:damageForce[3]=NULL_VECTOR, const Float:damagePosition[3]=NULL_VECTOR);
skamonkey@3767
   364
skamonkey@3767
   365
/**
skamonkey@3767
   366
 * @brief				Forces a client to drop the specified weapon
skamonkey@3767
   367
 *
skamonkey@3767
   368
 * @param client		Client index.
skamonkey@3767
   369
 * @param weapon		Weapon entity index.
skamonkey@3767
   370
 * @param vecTarget		Location to toss weapon to, or NULL_VECTOR for default.
skamonkey@3767
   371
 * @param vecVelocity	Velocity at which to toss weapon, or NULL_VECTOR for default.
skamonkey@3767
   372
 * @noreturn
skamonkey@3767
   373
 * @error				Invalid client or weapon entity, weapon not owned by client.
skamonkey@3767
   374
 */
skamonkey@3767
   375
native SDKHooks_DropWeapon(client, weapon, const Float:vecTarget[3]=NULL_VECTOR, const Float:vecVelocity[3]=NULL_VECTOR);
skamonkey@3767
   376
skamonkey@3767
   377
/**
skamonkey@3767
   378
 * Do not edit below this line!
skamonkey@3767
   379
 */
skamonkey@3767
   380
public Extension:__ext_sdkhooks = 
skamonkey@3767
   381
{
skamonkey@3767
   382
	name = "SDKHooks",
skamonkey@3767
   383
	file = "sdkhooks.ext",
skamonkey@3767
   384
#if defined AUTOLOAD_EXTENSIONS
skamonkey@3767
   385
	autoload = 1,
skamonkey@3767
   386
#else
skamonkey@3767
   387
	autoload = 0,
skamonkey@3767
   388
#endif
skamonkey@3767
   389
#if defined REQUIRE_EXTENSIONS
skamonkey@3767
   390
	required = 1,
skamonkey@3767
   391
#else
skamonkey@3767
   392
	required = 0,
skamonkey@3767
   393
#endif
skamonkey@3767
   394
};