CEG:Operators: Difference between revisions
Evil4zerggin (talk | contribs) No edit summary |
Evil4zerggin (talk | contribs) No edit summary |
||
| Line 6: | Line 6: | ||
== Syntax == | == 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 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. | ||
== The Buffer == | |||
CEG provides you with a buffer in which you can store numbers using the yank (y) operator. This buffer can store 16 values, numbered 0 to 15. | |||
== Operators == | == Operators == | ||
| Line 33: | Line 36: | ||
=== Yank (y) === | === Yank (y) === | ||
Saves the running result into buffer[operand], and resets the result to zero. | Saves the running result into buffer[operand], and resets the running result to zero. | ||
=== Multiply (x) === | === Multiply (x) === | ||
Revision as of 00:29, 30 December 2008
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.
The Buffer
CEG provides you with a buffer in which you can store numbers using the yank (y) operator. This buffer can store 16 values, numbered 0 to 15.
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 of 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 running 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.