1 /*
2  * See Licensing and Copyright notice in naev.h
3  */
4 
5 
6 
7 #ifndef SPFX_H
8 #  define SPFX_H
9 
10 
11 #include "physics.h"
12 #include "opengl.h"
13 
14 
15 #define SPFX_LAYER_FRONT   0 /**< Front spfx layer. */
16 #define SPFX_LAYER_BACK    1 /**< Back spfx layer. */
17 
18 #define SHAKE_DECAY        0.3 /**< Rumble decay parameter */
19 #define SHAKE_MAX          1.0 /**< Rumblemax parameter */
20 
21 /*
22  * stack manipulation
23  */
24 int spfx_get( char* name );
25 void spfx_add( const int effect,
26       const double px, const double py,
27       const double vx, const double vy,
28       const int layer );
29 
30 
31 /*
32  * stack mass manipulation functions
33  */
34 void spfx_update( const double dt );
35 void spfx_render( const int layer );
36 void spfx_clear (void);
37 
38 
39 /*
40  * get ready to rumble
41  */
42 void spfx_begin( const double dt, const double real_dt );
43 void spfx_end (void);
44 void spfx_shake( double mod );
45 void spfx_getShake( double *x, double *y );
46 
47 
48 /*
49  * other effects
50  */
51 void spfx_cinematic (void);
52 
53 
54 /*
55  * spfx effect loading and freeing
56  */
57 int spfx_load (void);
58 void spfx_free (void);
59 
60 
61 #endif /* SPFX_H */
62