- sfx_system_t *src = sfx_q[sfx_q_len];
-
- // This is a 'new' sound if optr not set.
- if( !src->optr || src->flags & SFX_FLAG_ONESHOT )
- {
- src->optr = sfx_alloc();
- }
-
- // run replacement routine if one is waiting
- if( src->replacement )
- {
- if( src->source )
- {
- printf( "Deallocating previous source buffer\n" );
- }
-
- free( src->source );
-
- src->source = src->replacement;
- src->replacement = NULL;
- }
-
- src->optr->source = src->source;
-
- // Localize data to thread 1's memory pool
- // memcpy( src->optr, src, sizeof( sfx_system_t ) );
-
- src->optr->spd = src->spd;
- src->optr->ch = src->ch;
- src->optr->end = src->end;
- src->optr->cur = src->cur;
- src->optr->flags = src->flags;
- // src->optr->sng = src->snh;
- src->optr->fadeout = src->fadeout;
- // src->optr->optr = src->optr;
- // src->optr->cvol = src->cvol;
- src->optr->vol_src = src->vol_src;
- src->optr->name = src->name;
-
- // loopback pointer on system system
- src->optr->optr = src;