CEG:Operators
Source: https://spring.clan-sy.com/svn/spring/trunk/rts/Sim/Projectiles/ExplosionGenerator.cpp
Introduction
You are not limited to using fixed numbers in CEGs for positions, speeds, and so forth. Instead, you can use operators to change the CEG based on a variety of things.
Syntax
Operators are read left to right. The operand is always to the right of the operator. Spaces are ignored, except to separate numbers. A number with no operator defaults to addition.
Operators
These are listed in the format "Operator Name (operator)".
Index (i)
Multiplies the operand by the current count index. This index starts at 0 and increments every time the spawn is run, until the spawn has run a number times equal to its count.
Suggested use: Spawning things in a line.
Rand (r)
Multiplies the operand by a random float between 0 and 1.
Suggested use: Keeping explosions from looking too "perfect", making explosions look different every time.
Damage (d)
Multiplies the operand by damage.
Sawtooth (m)
Calculates the floating-point remainder of the operand.
Discrete (k)
Calculates the floor of the operand.
Sine (s)
Calculates the sine of the operand.
Yank (y)
Saves the running result into buffer[operand], and resets the result to zero.
Multiply (x)
Multiplies the running result by buffer[operand].
Add Buffer (a)
Adds buffer[operand] to the running result.
Power (p)
Raises the running result to the operandth power
Power Buffer (q)
Raises the running result to the buffer[operand]th power.
Add ( )
Adds the operand to the running result.