djcev.com

//

Git Repos / fte_dogmode / qc / misc / particles.qc

Last update to this file was on 2024-06-15 at 19:50.

Show particles.qc

//==============================================================================
// misc_particles AKA misc_splash
// selections from Rubicon 2 qc by john fitzgibbons
// renamed from misc_splash (Rubicon 2) -- dumptruck_ds
//==============================================================================

//======================================================================
// constants
//======================================================================

#ifdef SSQC
const float PARTICLES_START_OFF = 1;
#endif

//======================================================================
// forward declarations
//======================================================================

#ifdef SSQC
// misc_particles
void() misc_particles_think;
void() misc_particles_use;
void(entity e) misc_particles_init;
void() misc_particles;
#endif

#ifdef SSQC
// misc_splash
void() misc_splash;
#endif

//------------------------------------------------------------------------------

/*QUAKED misc_particles (0 .5 .8) (-8 -8 -8) (8 8 8) PARTICLES_START_OFF X X X X X X X NOT_ON_EASY NOT_ON_NORMAL NOT_ON_HARD_OR_NIGHTMARE NOT_IN_DEATHMATCH NOT_IN_COOP NOT_IN_SINGLEPLAYER X NOT_ON_HARD_ONLY NOT_ON_NIGHTMARE_ONLY

Produces a continuous particle splash for waterfalls and other effects

"color" color of particles. 0 through 15, corresponds to a row of the quake palette. (default 0)

"movedir" average movement vector of particles (default 0 0 4)

"wait" time between particle generation cycles. (default 0.1)

"volume" density of particles. (default 10)
*/
//----------------------------------------------------------------------
// class misc_particles: base_mapentity
// {
#ifdef SSQC
//--------------------------------------------------------------
// was splash_think -- CEV
//--------------------------------------------------------------
void() misc_particles_think =
{
local vector vec;
local float variance = vlen (self.movedir) / 2;
vec_x = self.movedir_x - variance + random() * variance * 2;
vec_y = self.movedir_y - variance + random() * variance * 2;
vec_z = self.movedir_z - variance + random() * variance * 2;
particle (self.origin, vec, self.color, self.volume);
self.think = misc_particles_think;
self.nextthink = time + self.wait;
};

//--------------------------------------------------------------
void() misc_particles_use =
{
if (self.spawnflags & PARTICLES_START_OFF)
{
self.spawnflags = self.spawnflags - PARTICLES_START_OFF;
self.think = __NULL__;
}
else
{
self.spawnflags = self.spawnflags + PARTICLES_START_OFF;
self.think = misc_particles_think;
self.nextthink = time + self.wait;
}
};

//--------------------------------------------------------------
void(entity e) misc_particles_init =
{
e.classname = "misc_particles";
e.classtype = CT_MISC_PARTICLES;
base_mapentity_init (e);

if (!e.wait)
e.wait = 0.1;

if (!e.movedir)
e.movedir = '0 0 4';

if (!e.volume)
e.volume = 10;

if (e.spawnflags & PARTICLES_START_OFF)
{
e.think = __NULL__;
}
else
{
e.think = misc_particles_think;
e.nextthink = time + e.wait;
}

e.color = e.color * 16;
e.use = misc_particles_use;
};

//--------------------------------------------------------------
void() misc_particles =
{
// new spawnflags for all entities -- iw
if (SUB_Inhibit())
return;

misc_particles_init (self);
};
#endif
// };

//----------------------------------------------------------------------
// class misc_splash: misc_particles
// {
#ifdef SSQC
//--------------------------------------------------------------
void() misc_splash =
{
// new spawnflags for all entities -- iw
if (SUB_Inhibit())
return;

misc_particles_init (self);
};
#endif
// };

Return to the top of this page or return to the overview of this repo.

Log particles.qc

Date Commit Message Author + -
2024-06-15 Major update, committing as-is, will have bugs cev +10  
2024-03-24 2nd pass refactor, rework QC class structure cev +78 -34
2024-01-31 Class based monster refactor & start projectiles cev +1 -1
2024-01-09 Continue OO / Class-based refactor cev +33 -31
2023-12-09 Start OO / class-based refactor, work on items cev +58 -51
2023-11-27 Code reorg, minor movement changes, misc cev +74  

Return to the top of this page or return to the overview of this repo.