- sfx_system_t *sys = sfx_sys + i;
- sys->vol = sys->optr->vol;
- if( sys->vol_src ) { sys->vol *= sys->vol_src->cmp; };
- }
-
- MUTEX_UNLOCK( sfx_mux_t01 );
-}
-
-// Send out updates to sources
-void sfx_redist(void)
-{
- MUTEX_LOCK( sfx_mux_t01 );
-
- unsigned int idx = 0, wr = 0;
- while( idx != sfx_sys_len )
- {
- sfx_system_t *src = sfx_sys + idx;
-
- // Keep only if cursor is before end
- if( src->cur < src->end )
- {
- if( !(src->flags & SFX_FLAG_ONESHOT) )
- {
- // Correct source pointer
- src->optr->optr = sfx_sys + wr;
- }
-
- sfx_sys[ wr ++ ] = sfx_sys[ idx ];
- }
- else
- {
- if( !(src->flags & SFX_FLAG_ONESHOT) )
- {
- // Clear link on source
- src->optr->optr = NULL;
- }
- }