1 typedef struct sp_fog_overlap { 2 struct sp_fog_overlap *nxtact; 3 struct sp_fog_overlap *nxtfree; 4 int32_t timrem, dectim, formphs, forminc; 5 uint32_t risphs; 6 int32_t risinc, decphs, decinc; 7 SPFLOAT curamp, expamp; 8 SPFLOAT pos, inc; 9 } sp_fog_overlap; 10 11 typedef struct { 12 SPFLOAT amp, dens, trans, spd, oct, band, ris, dur, dec; 13 SPFLOAT iolaps, iphs, itmode; 14 sp_fog_overlap basovrlap; 15 int32_t durtogo, fundphs, fofcount, prvsmps, spdphs; 16 SPFLOAT prvband, expamp, preamp, fogcvt; 17 int16_t formcod, fmtmod, speedcod; 18 sp_auxdata auxch; 19 sp_ftbl *ftp1, *ftp2; 20 } sp_fog; 21 22 int sp_fog_create(sp_fog **p); 23 int sp_fog_destroy(sp_fog **p); 24 int sp_fog_init(sp_data *sp, sp_fog *p, sp_ftbl *wav, sp_ftbl *win, int iolaps, SPFLOAT iphs); 25 int sp_fog_compute(sp_data *sp, sp_fog *p, SPFLOAT *in, SPFLOAT *out); 26