-#ifndef PARTICLE_H
-#define PARTICLE_H
+#pragma once
+#include "skaterift.h"
typedef struct particle_system particle_system;
typedef struct particle particle;
u32 alive, max;
GLuint vao, vbo, ebo;
-}
-static particles_grind;
-static void particle_spawn( particle_system *sys,
- v3f co, v3f v, f32 lifetime, u32 colour );
-static void particle_init( particle_system *sys, u32 max );
+ /* render settings */
+ f32 scale, velocity_scale, width;
+}
+extern particles_grind, particles_env;
-#include "shaders/particle.h"
+void particle_alloc( particle_system *sys, u32 max );
+void particle_system_update( particle_system *sys, f32 dt );
+void particle_system_debug( particle_system *sys );
+void particle_system_prerender( particle_system *sys );
+void particle_system_render( particle_system *sys, vg_camera *cam );
-#endif /* PARTICLE_H */
+void particle_spawn( particle_system *sys,
+ v3f co, v3f v, f32 lifetime, u32 colour );
+void particle_spawn_cone( particle_system *sys,
+ v3f co, v3f dir, f32 angle, f32 speed,
+ f32 lifetime, u32 colour );