Particles.
typedef struct Particles { uint sig, sig2; byte wobj[1536]; } Particles;

Add particle.
API uint ParticlesAddParticle(Particles *particles, M4f pos, Color color, uint frame);
particles: Particles.
pos: Local position of particle.
color: Particle color.
frame: Particle frame.
returns: Zero-based index of particle.

Update particle.
API void ParticlesUpdateParticle(Particles *particles, uint n, M4f pos, Color color, uint frame, S3f *at);
particles: Particles.
n: Zero-based index of particle.
pos: Local particle position.
color: Particle color.
frame: Particle frame.
at: Set a position that the particle will continually face, or 0.

Remove particle.
API void ParticlesRemoveParticle(Particles *particles, uint n);
particles: Particles.
n: Zero-based index of particle.

Animate particles.
API void ParticlesAnimate(Particles *particles);
particles: Particles.

Set animation parameters.
API void ParticlesSetAnim(Particles *particles, B2i baseFrame, uint nCols, uint nFrames);
particles: Particles.
baseFrame: Rectangle of animation base frame in image.
nCols: Number of frame columns.
nFrames: Total frame count.

Delete all particles.
API void ParticlesClear(Particles *particles);
particles: Particles.

Initialize particles.
API void ParticlesInit(Particles *particles, wcstr matName, M4f pos, S3f dims, uint max, float rate, uint incr, void *ref);
particles: Particles.
matName: Name of material used with particles.
pos: Position.
dims: Dimensions.
max: Max number of particles.
rate: Particles move this rate per second.
incr: Increment amount.
ref: Caller-defined reference.