plugins/include/sdktools_tempents_stocks.inc
author Nicholas Hastings <skamonkey@gmail.com>
Wed Jul 06 22:34:21 2011 -0400 (2011-07-06)
changeset 3340 7eb2b72e42d8
parent 2289 44045ead61cd
child 3967 ceafb87d38a7
permissions -rw-r--r--
Added native interface for Basecomm plugin (bug 2594, r=fyren).
faluco@1039
     1
/**
faluco@1039
     2
 * vim: set ts=4 :
ds@1330
     3
 * =============================================================================
ds@1947
     4
 * SourceMod (C)2004-2008 AlliedModders LLC.  All rights reserved.
ds@1330
     5
 * =============================================================================
ds@1330
     6
 *
ds@1330
     7
 * This file is part of the SourceMod/SourcePawn SDK.
faluco@1039
     8
 *
ds@1330
     9
 * This program is free software; you can redistribute it and/or modify it under
ds@1330
    10
 * the terms of the GNU General Public License, version 3.0, as published by the
ds@1330
    11
 * Free Software Foundation.
ds@1330
    12
 * 
ds@1330
    13
 * This program is distributed in the hope that it will be useful, but WITHOUT
ds@1330
    14
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ds@1330
    15
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ds@1330
    16
 * details.
ds@1330
    17
 *
ds@1330
    18
 * You should have received a copy of the GNU General Public License along with
ds@1330
    19
 * this program.  If not, see <http://www.gnu.org/licenses/>.
ds@1330
    20
 *
ds@1330
    21
 * As a special exception, AlliedModders LLC gives you permission to link the
ds@1330
    22
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ds@1330
    23
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ds@1330
    24
 * by the Valve Corporation.  You must obey the GNU General Public License in
ds@1330
    25
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ds@1330
    26
 * this exception to all derivative works.  AlliedModders LLC defines further
ds@1330
    27
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ds@1330
    28
 * or <http://www.sourcemod.net/license.php>.
faluco@1039
    29
 *
faluco@1039
    30
 * Version: $Id$
faluco@1039
    31
 */
faluco@1039
    32
faluco@1039
    33
#if defined _te_stocks_included
faluco@1039
    34
 #endinput
faluco@1039
    35
#endif
faluco@1039
    36
#define _te_stocks_included
faluco@1039
    37
faluco@1039
    38
/**
faluco@1040
    39
 * @section TE Explosion flags.
faluco@1040
    40
 */
faluco@1040
    41
#define TE_EXPLFLAG_NONE		0x0	/**< all flags clear makes default Half-Life explosion */
faluco@1040
    42
#define TE_EXPLFLAG_NOADDITIVE		0x1	/**< sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite) */
faluco@1040
    43
#define TE_EXPLFLAG_NODLIGHTS		0x2	/**< do not render dynamic lights */
faluco@1040
    44
#define TE_EXPLFLAG_NOSOUND		0x4	/**< do not play client explosion sound */
faluco@1040
    45
#define TE_EXPLFLAG_NOPARTICLES		0x8	/**< do not draw particles */
faluco@1040
    46
#define TE_EXPLFLAG_DRAWALPHA		0x10	/**< sprite will be drawn alpha */
faluco@1040
    47
#define TE_EXPLFLAG_ROTATE		0x20	/**< rotate the sprite randomly */
faluco@1040
    48
#define TE_EXPLFLAG_NOFIREBALL		0x40	/**< do not draw a fireball */
faluco@1040
    49
#define TE_EXPLFLAG_NOFIREBALLSMOKE	0x80	/**< do not draw smoke with the fireball */
faluco@1040
    50
faluco@1040
    51
/**
faluco@1040
    52
 * @endsection
faluco@1040
    53
 */
faluco@1040
    54
faluco@1040
    55
/**
faluco@1040
    56
 * @section TE Beam flags.
faluco@1040
    57
 */
faluco@1040
    58
#define FBEAM_STARTENTITY 	0x00000001
faluco@1040
    59
#define	FBEAM_ENDENTITY		0x00000002
faluco@1040
    60
#define	FBEAM_FADEIN		0x00000004
faluco@1040
    61
#define	FBEAM_FADEOUT		0x00000008
faluco@1040
    62
#define	FBEAM_SINENOISE		0x00000010
faluco@1040
    63
#define	FBEAM_SOLID		0x00000020
faluco@1040
    64
#define	FBEAM_SHADEIN		0x00000040
faluco@1040
    65
#define	FBEAM_SHADEOUT		0x00000080
faluco@1040
    66
#define	FBEAM_ONLYNOISEONCE	0x00000100 	/**< Only calculate our noise once */
faluco@1040
    67
#define	FBEAM_NOTILE		0x00000200
faluco@1040
    68
#define	FBEAM_USE_HITBOXES	0x00000400	/**< Attachment indices represent hitbox indices instead when this is set. */
faluco@1040
    69
#define	FBEAM_STARTVISIBLE	0x00000800	/**< Has this client actually seen this beam's start entity yet? */
faluco@1040
    70
#define	FBEAM_ENDVISIBLE	0x00001000	/**< Has this client actually seen this beam's end entity yet? */
faluco@1040
    71
#define	FBEAM_ISACTIVE		0x00002000
faluco@1040
    72
#define	FBEAM_FOREVER		0x00004000
faluco@1040
    73
#define	FBEAM_HALOBEAM		0x00008000	/**< When drawing a beam with a halo, don't ignore the segments and endwidth */
faluco@1040
    74
faluco@1040
    75
/**
faluco@1040
    76
 * @endsection
faluco@1040
    77
 */
faluco@1040
    78
faluco@1040
    79
/**
faluco@1039
    80
 * Sets up a sparks effect.
faluco@1039
    81
 *
faluco@1039
    82
 * @param pos			Position of the sparks.
faluco@1039
    83
 * @param dir			Direction of the sparks.
faluco@1039
    84
 * @param Magnitude		Sparks size.
faluco@1039
    85
 * @param TrailLength		Trail lenght of the sparks.
faluco@1039
    86
 * @noreturn
faluco@1039
    87
 */
faluco@1039
    88
stock TE_SetupSparks(const Float:pos[3], const Float:dir[3], Magnitude, TrailLength)
faluco@1039
    89
{
faluco@1039
    90
	TE_Start("Sparks");
faluco@1039
    91
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
    92
	TE_WriteVector("m_vecDir", dir);
faluco@1039
    93
	TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039
    94
	TE_WriteNum("m_nTrailLength", TrailLength);
faluco@1039
    95
}
faluco@1039
    96
faluco@1039
    97
/**
faluco@1039
    98
 * Sets up a smoke effect.
faluco@1039
    99
 *
faluco@1039
   100
 * @param pos			Position of the smoke.
faluco@1039
   101
 * @param Model			Precached model index.
faluco@1039
   102
 * @param Scale			Scale of the smoke.
faluco@1039
   103
 * @param Framerate		Frame rate of the smoke.
faluco@1039
   104
 * @noreturn
faluco@1039
   105
 */
faluco@1039
   106
stock TE_SetupSmoke(const Float:pos[3], Model, Float:Scale, FrameRate)
faluco@1039
   107
{
faluco@1039
   108
	TE_Start("Smoke");
faluco@1039
   109
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   110
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
   111
	TE_WriteFloat("m_fScale", Scale);
faluco@1039
   112
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   113
}
faluco@1039
   114
faluco@1039
   115
/**
faluco@1039
   116
 * Sets up a dust cloud effect.
faluco@1039
   117
 *
faluco@1039
   118
 * @param pos			Position of the dust.
faluco@1039
   119
 * @param dir			Direction of the dust.
faluco@1039
   120
 * @param Size			Dust cloud size.
faluco@1039
   121
 * @param Speed			Dust cloud speed.
faluco@1039
   122
 * @noreturn
faluco@1039
   123
 */
faluco@1039
   124
stock TE_SetupDust(const Float:pos[3], const Float:dir[3], Float:Size, Float:Speed)
faluco@1039
   125
{
faluco@1039
   126
	TE_Start("Dust");
faluco@1039
   127
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
   128
	TE_WriteVector("m_vecDirection", dir);
faluco@1039
   129
	TE_WriteFloat("m_flSize", Size);
faluco@1039
   130
	TE_WriteFloat("m_flSpeed", Speed);
faluco@1039
   131
}
faluco@1039
   132
faluco@1039
   133
/**
faluco@1039
   134
 * Sets up a muzzle flash effect.
faluco@1039
   135
 *
faluco@1039
   136
 * @param pos			Position of the muzzle flash.
faluco@1039
   137
 * @param angles		Rotation angles of the muzzle flash.
faluco@1039
   138
 * @param Scale			Scale of the muzzle flash.
faluco@1039
   139
 * @param Type			Muzzle flash type to render (Mod specific).
faluco@1039
   140
 * @noreturn
faluco@1039
   141
 */
faluco@1039
   142
stock TE_SetupMuzzleFlash(const Float:pos[3], const Float:angles[3], Float:Scale, Type)
faluco@1039
   143
{
faluco@1039
   144
	TE_Start("MuzzleFlash");
faluco@1039
   145
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   146
	TE_WriteVector("m_vecAngles", angles);
faluco@1039
   147
	TE_WriteFloat("m_flScale", Scale);
faluco@1039
   148
	TE_WriteNum("m_nType", Type);
faluco@1039
   149
}
faluco@1039
   150
faluco@1039
   151
/**
faluco@1039
   152
 * Sets up a metal sparks effect.
faluco@1039
   153
 *
faluco@1039
   154
 * @param pos			Position of the metal sparks.
faluco@1039
   155
 * @param dir			Direction of the metal sparks.
faluco@1039
   156
 * @noreturn
faluco@1039
   157
 */
faluco@1039
   158
stock TE_SetupMetalSparks(const Float:pos[3], const Float:dir[3])
faluco@1039
   159
{
faluco@1039
   160
	TE_Start("Metal Sparks");
faluco@1039
   161
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   162
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   163
}
faluco@1039
   164
faluco@1039
   165
/**
faluco@1039
   166
 * Sets up an energy splash effect.
faluco@1039
   167
 *
faluco@1039
   168
 * @param pos			Position of the energy splash.
faluco@1039
   169
 * @param dir			Direction of the energy splash.
faluco@1039
   170
 * @param Explosive		Makes the effect explosive.
faluco@1039
   171
 * @noreturn
faluco@1039
   172
 */
faluco@1039
   173
stock TE_SetupEnergySplash(const Float:pos[3], const Float:dir[3], bool:Explosive)
faluco@1039
   174
{
faluco@1039
   175
	TE_Start("Energy Splash");
faluco@1039
   176
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   177
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   178
	TE_WriteNum("m_bExplosive", Explosive);
faluco@1039
   179
}
faluco@1039
   180
faluco@1039
   181
/**
faluco@1039
   182
 * Sets up an armor ricochet effect.
faluco@1039
   183
 *
faluco@1039
   184
 * @param pos			Position of the armor ricochet.
faluco@1039
   185
 * @param dir			Directon of the armor ricochet.
faluco@1039
   186
 * @noreturn
faluco@1039
   187
 */
faluco@1039
   188
stock TE_SetupArmorRicochet(const Float:pos[3], const Float:dir[3])
faluco@1039
   189
{
faluco@1039
   190
	TE_Start("Armor Ricochet");
faluco@1039
   191
	TE_WriteVector("m_vecPos", pos);
faluco@1039
   192
	TE_WriteVector("m_vecDir", dir);
faluco@1039
   193
}
faluco@1039
   194
faluco@1039
   195
/**
faluco@1039
   196
 * Sets up a glowing sprite effect.
faluco@1039
   197
 *
faluco@1039
   198
 * @param pos			Position of the sprite.
faluco@1039
   199
 * @param Model			Precached model index.
faluco@1039
   200
 * @param Life			Time duration of the sprite.
faluco@1039
   201
 * @param Size			Sprite size.
faluco@1039
   202
 * @param Brightness		Sprite brightness.
faluco@1039
   203
 * @noreturn
faluco@1039
   204
 */
faluco@1039
   205
stock TE_SetupGlowSprite(const Float:pos[3], Model, Float:Life, Float:Size, Brightness)
faluco@1039
   206
{
faluco@1039
   207
	TE_Start("GlowSprite");
faluco@1039
   208
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   209
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
   210
	TE_WriteFloat("m_fScale", Size);
faluco@1039
   211
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   212
	TE_WriteNum("m_nBrightness", Brightness);
faluco@1039
   213
}
faluco@1039
   214
faluco@1039
   215
/**
faluco@1039
   216
 * Sets up a explosion effect.
faluco@1039
   217
 *
faluco@1039
   218
 * @param pos			Explosion position.
faluco@1039
   219
 * @param Model			Precached model index.
faluco@1039
   220
 * @param Scale			Explosion scale.
faluco@1039
   221
 * @param Framerate		Explosion frame rate.
faluco@1039
   222
 * @param Flags			Explosion flags.
faluco@1039
   223
 * @param Radius		Explosion radius.
faluco@1039
   224
 * @param Magnitude		Explosion size.
faluco@1039
   225
 * @param normal		Normal vector to the explosion.
faluco@1039
   226
 * @param MaterialType		Exploded material type.
faluco@1039
   227
 * @noreturn
faluco@1039
   228
 */
faluco@1039
   229
stock TE_SetupExplosion(const Float:pos[3], Model, Float:Scale, Framerate, Flags, Radius, Magnitude, const Float:normal[3]={0.0, 0.0, 1.0}, MaterialType='C')
faluco@1039
   230
{
faluco@1039
   231
	TE_Start("Explosion");
faluco@1039
   232
	TE_WriteVector("m_vecOrigin[0]", pos);
faluco@1039
   233
	TE_WriteVector("m_vecNormal", normal);
faluco@1039
   234
	TE_WriteNum("m_nModelIndex", Model);
faluco@1039
   235
	TE_WriteFloat("m_fScale", Scale);
faluco@1039
   236
	TE_WriteNum("m_nFrameRate", Framerate);
faluco@1039
   237
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   238
	TE_WriteNum("m_nRadius", Radius);
faluco@1039
   239
	TE_WriteNum("m_nMagnitude", Magnitude);
faluco@1039
   240
	TE_WriteNum("m_chMaterialType", MaterialType);
faluco@1039
   241
}
faluco@1039
   242
faluco@1039
   243
/**
faluco@1039
   244
 * Sets up a blood sprite effect.
faluco@1039
   245
 *
faluco@1039
   246
 * @param pos			Position of the sprite.
faluco@1039
   247
 * @param dir			Sprite direction.
faluco@1039
   248
 * @param color			Color array (r, g, b, a).
faluco@1039
   249
 * @param Size			Sprite size.
faluco@1039
   250
 * @param SprayModel		Precached model index.
faluco@1039
   251
 * @param BloodDropModel	Precached model index.
faluco@1039
   252
 * @noreturn
faluco@1039
   253
 */
faluco@1039
   254
stock TE_SetupBloodSprite(const Float:pos[3], const Float:dir[3], const color[4], Size, SprayModel, BloodDropModel)
faluco@1039
   255
{
faluco@1039
   256
	TE_Start("Blood Sprite");
faluco@1039
   257
	TE_WriteVector("m_vecOrigin", pos);
faluco@1039
   258
	TE_WriteVector("m_vecDirection", dir);
faluco@1039
   259
	TE_WriteNum("r", color[0]);
faluco@1039
   260
	TE_WriteNum("g", color[1]);
faluco@1039
   261
	TE_WriteNum("b", color[2]);
faluco@1039
   262
	TE_WriteNum("a", color[3]);
faluco@1039
   263
	TE_WriteNum("m_nSize", Size);
faluco@1039
   264
	TE_WriteNum("m_nSprayModel", SprayModel);
faluco@1039
   265
	TE_WriteNum("m_nDropModel", BloodDropModel);
faluco@1039
   266
}
faluco@1039
   267
faluco@1039
   268
/**
faluco@1039
   269
 * Sets up a beam ring point effect.
faluco@1039
   270
 *
faluco@1039
   271
 * @param center		Center position of the ring.
faluco@1039
   272
 * @param Start_Radius		Initial ring radius.
faluco@1039
   273
 * @param End_Radius		Final ring radius.
faluco@1039
   274
 * @param ModelIndex		Precached model index.
faluco@1039
   275
 * @param HaloIndex		Precached model index.
faluco@1039
   276
 * @param StartFrame		Initital frame to render.
faluco@1039
   277
 * @param FrameRate		Ring frame rate.
faluco@1039
   278
 * @param Life			Time duration of the ring.
faluco@1039
   279
 * @param Width			Beam width.
faluco@1039
   280
 * @param Amplitude		Beam amplitude.
faluco@1039
   281
 * @param color			Color array (r, g, b, a).
faluco@1039
   282
 * @param Speed			Speed of the beam.
faluco@1039
   283
 * @param Flags			Beam flags.
faluco@1039
   284
 * @noreturn
faluco@1039
   285
 */
faluco@1039
   286
stock TE_SetupBeamRingPoint(const Float:center[3], Float:Start_Radius, Float:End_Radius, ModelIndex, HaloIndex, StartFrame, 
faluco@1039
   287
				FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039
   288
{
faluco@1039
   289
	TE_Start("BeamRingPoint");
faluco@1039
   290
	TE_WriteVector("m_vecCenter", center);
faluco@1039
   291
	TE_WriteFloat("m_flStartRadius", Start_Radius);
faluco@1039
   292
	TE_WriteFloat("m_flEndRadius", End_Radius);
faluco@1039
   293
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   294
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   295
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   296
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   297
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   298
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   299
	TE_WriteFloat("m_fEndWidth", Width);
faluco@1039
   300
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   301
	TE_WriteNum("r", Color[0]);
faluco@1039
   302
	TE_WriteNum("g", Color[1]);
faluco@1039
   303
	TE_WriteNum("b", Color[2]);
faluco@1039
   304
	TE_WriteNum("a", Color[3]);
faluco@1039
   305
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   306
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   307
	TE_WriteNum("m_nFadeLength", 0);
faluco@1039
   308
}
faluco@1039
   309
faluco@1039
   310
/**
faluco@1039
   311
 * Sets up a point to point beam effect.
faluco@1039
   312
 *
faluco@1039
   313
 * @param start			Start position of the beam.
faluco@1039
   314
 * @param end			End position of the beam.
faluco@1039
   315
 * @param ModelIndex		Precached model index.
faluco@1039
   316
 * @param HaloIndex		Precached model index.
faluco@1039
   317
 * @param StartFrame		Initital frame to render.
faluco@1039
   318
 * @param FrameRate		Beam frame rate.
faluco@1039
   319
 * @param Life			Time duration of the beam.
faluco@1039
   320
 * @param Width			Initial beam width.
faluco@1039
   321
 * @param EndWidth		Final beam width.
faluco@1039
   322
 * @param FadeLength		Beam fade time duration.
faluco@1039
   323
 * @param Amplitude		Beam amplitude.
faluco@1039
   324
 * @param color			Color array (r, g, b, a).
faluco@1039
   325
 * @param Speed			Speed of the beam.
faluco@1039
   326
 * @noreturn
faluco@1039
   327
 */
faluco@1039
   328
stock TE_SetupBeamPoints(const Float:start[3], const Float:end[3], ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
faluco@1039
   329
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039
   330
{
faluco@1039
   331
	TE_Start("BeamPoints");
faluco@1039
   332
	TE_WriteVector("m_vecStartPoint", start);
faluco@1039
   333
	TE_WriteVector("m_vecEndPoint", end);
faluco@1039
   334
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   335
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   336
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   337
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   338
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   339
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   340
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   341
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   342
	TE_WriteNum("r", Color[0]);
faluco@1039
   343
	TE_WriteNum("g", Color[1]);
faluco@1039
   344
	TE_WriteNum("b", Color[2]);
faluco@1039
   345
	TE_WriteNum("a", Color[3]);
faluco@1039
   346
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   347
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   348
}
faluco@1039
   349
faluco@1039
   350
/**
faluco@1039
   351
 * Sets up an entity to entity laser effect.
faluco@1039
   352
 *
faluco@1039
   353
 * @param StartEntity		Entity index from where the beam starts.
faluco@1039
   354
 * @param EndEntity		Entity index from where the beam ends.
faluco@1039
   355
 * @param ModelIndex		Precached model index.
faluco@1039
   356
 * @param HaloIndex		Precached model index.
faluco@1039
   357
 * @param StartFrame		Initital frame to render.
faluco@1039
   358
 * @param FrameRate		Beam frame rate.
faluco@1039
   359
 * @param Life			Time duration of the beam.
faluco@1039
   360
 * @param Width			Initial beam width.
faluco@1039
   361
 * @param EndWidth		Final beam width.
faluco@1039
   362
 * @param FadeLength		Beam fade time duration.
faluco@1039
   363
 * @param Amplitude		Beam amplitude.
faluco@1039
   364
 * @param color			Color array (r, g, b, a).
faluco@1039
   365
 * @param Speed			Speed of the beam.
faluco@1039
   366
 * @noreturn
faluco@1039
   367
 */
faluco@1039
   368
stock TE_SetupBeamLaser(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, 
faluco@1039
   369
				Float:Width, Float:EndWidth, FadeLength, Float:Amplitude, const Color[4], Speed)
faluco@1039
   370
{
faluco@1039
   371
	TE_Start("BeamLaser");
faluco@1039
   372
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039
   373
	TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039
   374
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   375
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   376
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   377
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   378
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   379
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   380
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   381
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   382
	TE_WriteNum("r", Color[0]);
faluco@1039
   383
	TE_WriteNum("g", Color[1]);
faluco@1039
   384
	TE_WriteNum("b", Color[2]);
faluco@1039
   385
	TE_WriteNum("a", Color[3]);
faluco@1039
   386
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   387
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   388
}
faluco@1039
   389
faluco@1039
   390
/**
faluco@1039
   391
 * Sets up a beam ring effect.
faluco@1039
   392
 *
faluco@1039
   393
 * @param StartEntity		Entity index from where the ring starts.
faluco@1039
   394
 * @param EndEntity		Entity index from where the ring ends.
faluco@1039
   395
 * @param ModelIndex		Precached model index.
faluco@1039
   396
 * @param HaloIndex		Precached model index.
faluco@1039
   397
 * @param StartFrame		Initital frame to render.
faluco@1039
   398
 * @param FrameRate		Ring frame rate.
faluco@1039
   399
 * @param Life			Time duration of the ring.
faluco@1039
   400
 * @param Width			Beam width.
faluco@1039
   401
 * @param Amplitude		Beam amplitude.
faluco@1039
   402
 * @param color			Color array (r, g, b, a).
faluco@1039
   403
 * @param Speed			Speed of the beam.
faluco@1039
   404
 * @param Flags			Beam flags.
faluco@1039
   405
 * @noreturn
faluco@1039
   406
 */
dvander@1058
   407
stock TE_SetupBeamRing(StartEntity, EndEntity, ModelIndex, HaloIndex, StartFrame, FrameRate, Float:Life, Float:Width, Float:Amplitude, const Color[4], Speed, Flags)
faluco@1039
   408
{
faluco@1039
   409
	TE_Start("BeamRing");
faluco@1039
   410
	TE_WriteEncodedEnt("m_nStartEntity", StartEntity);
faluco@1039
   411
	TE_WriteEncodedEnt("m_nEndEntity", EndEntity);
faluco@1039
   412
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   413
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   414
	TE_WriteNum("m_nStartFrame", StartFrame);
faluco@1039
   415
	TE_WriteNum("m_nFrameRate", FrameRate);
faluco@1039
   416
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   417
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   418
	TE_WriteFloat("m_fEndWidth", Width);
faluco@1039
   419
	TE_WriteFloat("m_fAmplitude", Amplitude);
faluco@1039
   420
	TE_WriteNum("r", Color[0]);
faluco@1039
   421
	TE_WriteNum("g", Color[1]);
faluco@1039
   422
	TE_WriteNum("b", Color[2]);
faluco@1039
   423
	TE_WriteNum("a", Color[3]);
faluco@1039
   424
	TE_WriteNum("m_nSpeed", Speed);
faluco@1039
   425
	TE_WriteNum("m_nFadeLength", 0);
faluco@1039
   426
	TE_WriteNum("m_nFlags", Flags);
faluco@1039
   427
}
faluco@1039
   428
faluco@1039
   429
/**
faluco@1039
   430
 * Sets up a follow beam effect.
faluco@1039
   431
 *
faluco@1039
   432
 * @param EntIndex		Entity index from where the beam starts.
faluco@1039
   433
 * @param ModelIndex		Precached model index.
faluco@1039
   434
 * @param HaloIndex		Precached model index.
faluco@1039
   435
 * @param Life			Time duration of the beam.
faluco@1039
   436
 * @param Width			Initial beam width.
faluco@1039
   437
 * @param EndWidth		Final beam width.
faluco@1039
   438
 * @param FadeLength		Beam fade time duration.
faluco@1039
   439
 * @param color			Color array (r, g, b, a).
faluco@1039
   440
 * @noreturn
faluco@1039
   441
 */
dvander@1058
   442
stock TE_SetupBeamFollow(EntIndex, ModelIndex, HaloIndex, Float:Life, Float:Width, Float:EndWidth, FadeLength, const Color[4])
faluco@1039
   443
{
faluco@1039
   444
	TE_Start("BeamFollow");
faluco@1039
   445
	TE_WriteEncodedEnt("m_iEntIndex", EntIndex);
faluco@1039
   446
	TE_WriteNum("m_nModelIndex", ModelIndex);
faluco@1039
   447
	TE_WriteNum("m_nHaloIndex", HaloIndex);
faluco@1039
   448
	TE_WriteNum("m_nStartFrame", 0);
faluco@1039
   449
	TE_WriteNum("m_nFrameRate", 0);
faluco@1039
   450
	TE_WriteFloat("m_fLife", Life);
faluco@1039
   451
	TE_WriteFloat("m_fWidth", Width);
faluco@1039
   452
	TE_WriteFloat("m_fEndWidth", EndWidth);
faluco@1039
   453
	TE_WriteNum("m_nFadeLength", FadeLength);
faluco@1039
   454
	TE_WriteNum("r", Color[0]);
faluco@1039
   455
	TE_WriteNum("g", Color[1]);
faluco@1039
   456
	TE_WriteNum("b", Color[2]);
faluco@1039
   457
	TE_WriteNum("a", Color[3]);
faluco@1039
   458
}