Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
ParticleSystemInfo Class Reference

#include <ParticleSys.h>

Inherits Snapshot.

Inherited by ParticleSystem, and ParticleSystemTemplate [protected].

Classes

union  emissionVolumeUnion
 
struct  RandomKeyframe
 

Public Types

enum  ParticleShaderType {
  INVALID_SHADER =0 , ADDITIVE , ALPHA , ALPHA_TEST ,
  MULTIPLY
}
 
enum  ParticleType {
  INVALID_TYPE =0 , PARTICLE , DRAWABLE , STREAK ,
  VOLUME_PARTICLE , SMUDGE
}
 
enum  EmissionVelocityType {
  INVALID_VELOCITY =0 , ORTHO , SPHERICAL , HEMISPHERICAL ,
  CYLINDRICAL , OUTWARD
}
 
enum  EmissionVolumeType {
  INVALID_VOLUME =0 , POINT , LINE , BOX ,
  SPHERE , CYLINDER
}
 
enum  WindMotion { WIND_MOTION_INVALID = 0 , WIND_MOTION_NOT_USED , WIND_MOTION_PING_PONG , WIND_MOTION_CIRCULAR }
 
typedef Int Color
 

Public Member Functions

 ParticleSystemInfo ()
 to set defaults.
 
virtual void crc (Xfer *xfer)
 
virtual void xfer (Xfer *xfer)
 
virtual void loadPostProcess (void)
 
void tintAllColors (Color tintColor)
 
- Public Member Functions inherited from Snapshot
 Snapshot (void)
 
 ~Snapshot (void)
 

Public Attributes

Bool m_isOneShot
 if true, destroy system after one burst has occurred
 
enum ParticleSystemInfo::ParticleShaderType m_shaderType
 how this particle is rendered
 
enum ParticleSystemInfo::ParticleType m_particleType
 
AsciiString m_particleTypeName
 if PARTICLE, texture filename, if DRAWABLE, Drawable name
 
GameClientRandomVariable m_angleZ
 initial angle around Z axis
 
GameClientRandomVariable m_angularRateZ
 initial angle around Z axis
 
GameClientRandomVariable m_angularDamping
 angular velocity damping coefficient
 
GameClientRandomVariable m_velDamping
 velocity damping factor
 
GameClientRandomVariable m_lifetime
 lifetime of emitted particles
 
UnsignedInt m_systemLifetime
 lifetime of the particle system
 
GameClientRandomVariable m_startSize
 initial size of emitted particles
 
GameClientRandomVariable m_startSizeRate
 change in start size of emitted particles
 
GameClientRandomVariable m_sizeRate
 rate of change of size
 
GameClientRandomVariable m_sizeRateDamping
 damping of size change
 
UnsignedInt m_volumeParticleDepth
 how many layers deep to draw the particle, if >1
 
RandomKeyframe m_alphaKey [MAX_KEYFRAMES]
 
RGBColorKeyframe m_colorKey [MAX_KEYFRAMES]
 color of particle
 
GameClientRandomVariable m_colorScale
 color coefficient
 
GameClientRandomVariable m_burstDelay
 time between particle emissions
 
GameClientRandomVariable m_burstCount
 number of particles emitted per burst
 
GameClientRandomVariable m_initialDelay
 delay before particles begin emitting
 
Coord3D m_driftVelocity
 additional velocity added to all particles
 
Real m_gravity
 gravity acceleration (global Z) for particles in this system
 
AsciiString m_slaveSystemName
 if non-empty, create a system whose particles track this system's
 
Coord3D m_slavePosOffset
 positional offset of slave particles relative to master's
 
AsciiString m_attachedSystemName
 if non-empty, create a system attached to each particle of this system
 
enum ParticleSystemInfo::EmissionVelocityType m_emissionVelocityType
 
ParticlePriorityType m_priority
 
union { 
 
   struct { 
 
      GameClientRandomVariable   x 
 initial speed of particle along X axis More...
 
      GameClientRandomVariable   y 
 initial speed of particle along Y axis More...
 
      GameClientRandomVariable   z 
 initial speed of particle along Z axis More...
 
   }   ortho 
 
   struct { 
 
      GameClientRandomVariable   speed 
 initial speed of particle along random radial direction More...
 
   }   spherical 
 
   struct { 
 
      GameClientRandomVariable   speed 
 initial speed of particle along random radial direction More...
 
   }   hemispherical 
 
   struct { 
 
      GameClientRandomVariable   radial 
 initial speed of particle in the disk More...
 
      GameClientRandomVariable   normal 
 initial speed of particle perpendicular to disk More...
 
   }   cylindrical 
 
   struct { 
 
      GameClientRandomVariable   speed 
 speed outward from emission volume More...
 
      GameClientRandomVariable   otherSpeed 
 speed along "other" axis, such as cylinder length More...
 
   }   outward 
 
m_emissionVelocity 
 
enum ParticleSystemInfo::EmissionVolumeType m_emissionVolumeType
 the type of volume where particles are created
 
union ParticleSystemInfo::emissionVolumeUnion m_emissionVolume
 the dimensions of the emission volume
 
Bool m_isEmissionVolumeHollow
 if true, only create particles at boundary of volume
 
Bool m_isGroundAligned
 if true, align with the ground. if false, then do the normal billboarding.
 
Bool m_isEmitAboveGroundOnly
 if true, only emit particles when the system is above ground.
 
Bool m_isParticleUpTowardsEmitter
 if true, align the up direction to be towards the emitter.
 
WindMotion m_windMotion
 motion of the wind angle updating
 
Real m_windAngle
 angle of the "wind" associated with this system
 
Real m_windAngleChange
 current how fast the angle changes (higher=faster change)
 
Real m_windAngleChangeMin
 min for angle change
 
Real m_windAngleChangeMax
 max for angle change
 
Real m_windMotionStartAngle
 (for ping pong) angle 1 of the ping pong
 
Real m_windMotionStartAngleMin
 (for ping pong) min angle for angle 1
 
Real m_windMotionStartAngleMax
 (for ping pong) max angle for angle 1
 
Real m_windMotionEndAngle
 (for ping pong) angle 2 of the ping pong
 
Real m_windMotionEndAngleMin
 (for ping pong) min angle for angle 2
 
Real m_windMotionEndAngleMax
 (for ping pong) max angel for angle 2
 
Byte m_windMotionMovingToEndAngle
 (for ping pong) TRUE if we're moving "towards" the end angle
 

Detailed Description

All of the properties of a particle system, used by both ParticleSystemTemplates and ParticleSystem classes.

Definition at line 291 of file ParticleSys.h.

Member Typedef Documentation

◆ Color

Definition at line 346 of file ParticleSys.h.

Member Enumeration Documentation

◆ EmissionVelocityType

Enumerator
INVALID_VELOCITY 
ORTHO 
SPHERICAL 
HEMISPHERICAL 
CYLINDRICAL 
OUTWARD 

Definition at line 367 of file ParticleSys.h.

◆ EmissionVolumeType

Enumerator
INVALID_VOLUME 
POINT 
LINE 
BOX 
SPHERE 
CYLINDER 

Definition at line 410 of file ParticleSys.h.

◆ ParticleShaderType

Enumerator
INVALID_SHADER 
ADDITIVE 
ALPHA 
ALPHA_TEST 
MULTIPLY 

Definition at line 305 of file ParticleSys.h.

◆ ParticleType

Enumerator
INVALID_TYPE 
PARTICLE 
DRAWABLE 
STREAK 
VOLUME_PARTICLE 
SMUDGE 

is a particle a 2D-screen-facing particle, or a Drawable, or a Segment in a streak?

Definition at line 311 of file ParticleSys.h.

◆ WindMotion

Enumerator
WIND_MOTION_INVALID 
WIND_MOTION_NOT_USED 
WIND_MOTION_PING_PONG 
WIND_MOTION_CIRCULAR 

Definition at line 456 of file ParticleSys.h.

Constructor & Destructor Documentation

◆ ParticleSystemInfo()

ParticleSystemInfo::ParticleSystemInfo ( )

to set defaults.

Definition at line 728 of file ParticleSys.cpp.

Member Function Documentation

◆ crc()

void ParticleSystemInfo::crc ( Xfer * xfer)
virtual

CRC

Implements Snapshot.

Reimplemented in ParticleSystem.

Definition at line 782 of file ParticleSys.cpp.

◆ loadPostProcess()

void ParticleSystemInfo::loadPostProcess ( void )
virtual

Load post process

Implements Snapshot.

Reimplemented in ParticleSystem.

Definition at line 1023 of file ParticleSys.cpp.

◆ tintAllColors()

void ParticleSystemInfo::tintAllColors ( Color tintColor)

Definition at line 763 of file ParticleSys.cpp.

◆ xfer()

void ParticleSystemInfo::xfer ( Xfer * xfer)
virtual

Xfer method Version Info: 1: Initial version

Implements Snapshot.

Reimplemented in ParticleSystem.

Definition at line 792 of file ParticleSys.cpp.

Member Data Documentation

◆ [struct]

struct { ... } ParticleSystemInfo::cylindrical

◆ [struct]

struct { ... } ParticleSystemInfo::hemispherical

◆ m_alphaKey

RandomKeyframe ParticleSystemInfo::m_alphaKey[MAX_KEYFRAMES]

Definition at line 343 of file ParticleSys.h.

◆ m_angleZ

GameClientRandomVariable ParticleSystemInfo::m_angleZ

initial angle around Z axis

Definition at line 319 of file ParticleSys.h.

◆ m_angularDamping

GameClientRandomVariable ParticleSystemInfo::m_angularDamping

angular velocity damping coefficient

Definition at line 321 of file ParticleSys.h.

◆ m_angularRateZ

GameClientRandomVariable ParticleSystemInfo::m_angularRateZ

initial angle around Z axis

Definition at line 320 of file ParticleSys.h.

◆ m_attachedSystemName

AsciiString ParticleSystemInfo::m_attachedSystemName

if non-empty, create a system attached to each particle of this system

Definition at line 363 of file ParticleSys.h.

◆ m_burstCount

GameClientRandomVariable ParticleSystemInfo::m_burstCount

number of particles emitted per burst

Definition at line 353 of file ParticleSys.h.

◆ m_burstDelay

GameClientRandomVariable ParticleSystemInfo::m_burstDelay

time between particle emissions

Definition at line 352 of file ParticleSys.h.

◆ m_colorKey

RGBColorKeyframe ParticleSystemInfo::m_colorKey[MAX_KEYFRAMES]

color of particle

Definition at line 344 of file ParticleSys.h.

◆ m_colorScale

GameClientRandomVariable ParticleSystemInfo::m_colorScale

color coefficient

Definition at line 350 of file ParticleSys.h.

◆ m_driftVelocity

Coord3D ParticleSystemInfo::m_driftVelocity

additional velocity added to all particles

Definition at line 357 of file ParticleSys.h.

◆ [union]

union { ... } ParticleSystemInfo::m_emissionVelocity

◆ m_emissionVelocityType

enum ParticleSystemInfo::EmissionVelocityType ParticleSystemInfo::m_emissionVelocityType

◆ m_emissionVolume

union ParticleSystemInfo::emissionVolumeUnion ParticleSystemInfo::m_emissionVolume

the dimensions of the emission volume

◆ m_emissionVolumeType

enum ParticleSystemInfo::EmissionVolumeType ParticleSystemInfo::m_emissionVolumeType

the type of volume where particles are created

◆ m_gravity

Real ParticleSystemInfo::m_gravity

gravity acceleration (global Z) for particles in this system

Definition at line 358 of file ParticleSys.h.

◆ m_initialDelay

GameClientRandomVariable ParticleSystemInfo::m_initialDelay

delay before particles begin emitting

Definition at line 355 of file ParticleSys.h.

◆ m_isEmissionVolumeHollow

Bool ParticleSystemInfo::m_isEmissionVolumeHollow

if true, only create particles at boundary of volume

Definition at line 451 of file ParticleSys.h.

◆ m_isEmitAboveGroundOnly

Bool ParticleSystemInfo::m_isEmitAboveGroundOnly

if true, only emit particles when the system is above ground.

Definition at line 453 of file ParticleSys.h.

◆ m_isGroundAligned

Bool ParticleSystemInfo::m_isGroundAligned

if true, align with the ground. if false, then do the normal billboarding.

Definition at line 452 of file ParticleSys.h.

◆ m_isOneShot

Bool ParticleSystemInfo::m_isOneShot

if true, destroy system after one burst has occurred

Definition at line 303 of file ParticleSys.h.

◆ m_isParticleUpTowardsEmitter

Bool ParticleSystemInfo::m_isParticleUpTowardsEmitter

if true, align the up direction to be towards the emitter.

Definition at line 454 of file ParticleSys.h.

◆ m_lifetime

GameClientRandomVariable ParticleSystemInfo::m_lifetime

lifetime of emitted particles

Definition at line 325 of file ParticleSys.h.

◆ m_particleType

enum ParticleSystemInfo::ParticleType ParticleSystemInfo::m_particleType

◆ m_particleTypeName

AsciiString ParticleSystemInfo::m_particleTypeName

if PARTICLE, texture filename, if DRAWABLE, Drawable name

Definition at line 317 of file ParticleSys.h.

◆ m_priority

ParticlePriorityType ParticleSystemInfo::m_priority

Definition at line 373 of file ParticleSys.h.

◆ m_shaderType

enum ParticleSystemInfo::ParticleShaderType ParticleSystemInfo::m_shaderType

how this particle is rendered

◆ m_sizeRate

GameClientRandomVariable ParticleSystemInfo::m_sizeRate

rate of change of size

Definition at line 330 of file ParticleSys.h.

◆ m_sizeRateDamping

GameClientRandomVariable ParticleSystemInfo::m_sizeRateDamping

damping of size change

Definition at line 331 of file ParticleSys.h.

◆ m_slavePosOffset

Coord3D ParticleSystemInfo::m_slavePosOffset

positional offset of slave particles relative to master's

Definition at line 361 of file ParticleSys.h.

◆ m_slaveSystemName

AsciiString ParticleSystemInfo::m_slaveSystemName

if non-empty, create a system whose particles track this system's

Definition at line 360 of file ParticleSys.h.

◆ m_startSize

GameClientRandomVariable ParticleSystemInfo::m_startSize

initial size of emitted particles

Definition at line 328 of file ParticleSys.h.

◆ m_startSizeRate

GameClientRandomVariable ParticleSystemInfo::m_startSizeRate

change in start size of emitted particles

Definition at line 329 of file ParticleSys.h.

◆ m_systemLifetime

UnsignedInt ParticleSystemInfo::m_systemLifetime

lifetime of the particle system

Definition at line 326 of file ParticleSys.h.

◆ m_velDamping

GameClientRandomVariable ParticleSystemInfo::m_velDamping

velocity damping factor

Definition at line 323 of file ParticleSys.h.

◆ m_volumeParticleDepth

UnsignedInt ParticleSystemInfo::m_volumeParticleDepth

how many layers deep to draw the particle, if >1

Definition at line 334 of file ParticleSys.h.

◆ m_windAngle

Real ParticleSystemInfo::m_windAngle

angle of the "wind" associated with this system

Definition at line 464 of file ParticleSys.h.

◆ m_windAngleChange

Real ParticleSystemInfo::m_windAngleChange

current how fast the angle changes (higher=faster change)

Definition at line 465 of file ParticleSys.h.

◆ m_windAngleChangeMax

Real ParticleSystemInfo::m_windAngleChangeMax

max for angle change

Definition at line 467 of file ParticleSys.h.

◆ m_windAngleChangeMin

Real ParticleSystemInfo::m_windAngleChangeMin

min for angle change

Definition at line 466 of file ParticleSys.h.

◆ m_windMotion

WindMotion ParticleSystemInfo::m_windMotion

motion of the wind angle updating

Definition at line 463 of file ParticleSys.h.

◆ m_windMotionEndAngle

Real ParticleSystemInfo::m_windMotionEndAngle

(for ping pong) angle 2 of the ping pong

Definition at line 471 of file ParticleSys.h.

◆ m_windMotionEndAngleMax

Real ParticleSystemInfo::m_windMotionEndAngleMax

(for ping pong) max angel for angle 2

Definition at line 473 of file ParticleSys.h.

◆ m_windMotionEndAngleMin

Real ParticleSystemInfo::m_windMotionEndAngleMin

(for ping pong) min angle for angle 2

Definition at line 472 of file ParticleSys.h.

◆ m_windMotionMovingToEndAngle

Byte ParticleSystemInfo::m_windMotionMovingToEndAngle

(for ping pong) TRUE if we're moving "towards" the end angle

Definition at line 474 of file ParticleSys.h.

◆ m_windMotionStartAngle

Real ParticleSystemInfo::m_windMotionStartAngle

(for ping pong) angle 1 of the ping pong

Definition at line 468 of file ParticleSys.h.

◆ m_windMotionStartAngleMax

Real ParticleSystemInfo::m_windMotionStartAngleMax

(for ping pong) max angle for angle 1

Definition at line 470 of file ParticleSys.h.

◆ m_windMotionStartAngleMin

Real ParticleSystemInfo::m_windMotionStartAngleMin

(for ping pong) min angle for angle 1

Definition at line 469 of file ParticleSys.h.

◆ normal

GameClientRandomVariable ParticleSystemInfo::normal

initial speed of particle perpendicular to disk

Definition at line 394 of file ParticleSys.h.

◆ [struct]

struct { ... } ParticleSystemInfo::ortho

◆ otherSpeed

GameClientRandomVariable ParticleSystemInfo::otherSpeed

speed along "other" axis, such as cylinder length

Definition at line 401 of file ParticleSys.h.

◆ [struct]

struct { ... } ParticleSystemInfo::outward

◆ radial

GameClientRandomVariable ParticleSystemInfo::radial

initial speed of particle in the disk

Definition at line 393 of file ParticleSys.h.

◆ speed

GameClientRandomVariable ParticleSystemInfo::speed

initial speed of particle along random radial direction

speed outward from emission volume

Definition at line 387 of file ParticleSys.h.

◆ [struct]

struct { ... } ParticleSystemInfo::spherical

◆ x

GameClientRandomVariable ParticleSystemInfo::x

initial speed of particle along X axis

Definition at line 379 of file ParticleSys.h.

◆ y

GameClientRandomVariable ParticleSystemInfo::y

initial speed of particle along Y axis

Definition at line 380 of file ParticleSys.h.

◆ z

GameClientRandomVariable ParticleSystemInfo::z

initial speed of particle along Z axis

Definition at line 381 of file ParticleSys.h.


The documentation for this class was generated from the following files: