/** * @brief Clears all the currently running effects. */ void spfx_clear (void) { int i; /* Clear front layer */ for (i=spfx_nstack_front-1; i>=0; i--) spfx_destroy( spfx_stack_front, &spfx_nstack_front, i ); /* Clear back layer */ for (i=spfx_nstack_back-1; i>=0; i--) spfx_destroy( spfx_stack_back, &spfx_nstack_back, i ); /* Clear rumble */ shake_rad = 0.; shake_pos.x = shake_pos.y = 0.; shake_vel.x = shake_vel.y = 0.; }
/** * @brief Clears all the currently running effects. */ void spfx_clear (void) { int i; /* Clear front layer */ for (i=spfx_nstack_front-1; i>=0; i--) spfx_destroy( spfx_stack_front, &spfx_nstack_front, i ); /* Clear back layer */ for (i=spfx_nstack_back-1; i>=0; i--) spfx_destroy( spfx_stack_back, &spfx_nstack_back, i ); /* Clear rumble */ shake_set = 0; shake_off = 1; shake_force_mod = 0.; vectnull( &shake_pos ); vectnull( &shake_vel ); }
/** * @brief Updates an individual spfx. * * @param layer Layer the spfx is on. * @param nlayer Pointer to the assosciated nlayer. * @param dt Current delta tick. */ static void spfx_update_layer( SPFX *layer, int *nlayer, const double dt ) { int i; for (i=0; i<*nlayer; i++) { layer[i].timer -= dt; /* less time to live */ /* time to die! */ if (layer[i].timer < 0.) { spfx_destroy( layer, nlayer, i ); i--; continue; } /* actually update it */ vect_cadd( &layer[i].pos, dt*VX(layer[i].vel), dt*VY(layer[i].vel) ); } }