--- ray/src/rt/m_mist.c 2004/03/30 16:13:01 2.15 +++ ray/src/rt/m_mist.c 2023/11/15 18:02:53 2.21 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id"; +static const char RCSid[] = "$Id: m_mist.c,v 2.21 2023/11/15 18:02:53 greg Exp $"; #endif /* * Mist volumetric material. @@ -58,11 +58,11 @@ static void add2slist(RAY *r, int *sl); static int inslist( /* return index of source n if it's in list sl */ - register int *sl, - register int n + int *sl, + int n ) { - register int i; + int i; for (i = sl[0]; i > 0; i--) if (sl[i] == n) @@ -73,11 +73,11 @@ inslist( /* return index of source n if it's in list static int srcmatch( /* check for an id match on a light source */ - register SRCREC *sp, - register char *id + SRCREC *sp, + char *id ) { - register char *cp; + char *cp; /* check for relay sources */ while ((cp = strchr(id, RELAYDELIM)) != NULL) { if (!(sp->sflags & SVIRTUAL) || sp->so == NULL) @@ -95,12 +95,12 @@ srcmatch( /* check for an id match on a light source * static void add2slist( /* add source list to ray's */ - register RAY *r, - register int *sl + RAY *r, + int *sl ) { static int slspare[MAXSLIST+1]; /* in case of emergence */ - register int i; + int i; if (sl == NULL || sl[0] == 0) /* nothing to add */ return; @@ -116,10 +116,10 @@ add2slist( /* add source list to ray's */ } -extern int +int m_mist( /* process a ray entering or leaving some mist */ OBJREC *m, - register RAY *r + RAY *r ) { RAY p; @@ -127,7 +127,7 @@ m_mist( /* process a ray entering or leaving some mis int newslist[MAXSLIST+1]; COLOR mext; double re, ge, be; - register int i, j; + int i, j; /* check arguments */ if (m->oargs.nfargs > 7) objerror(m, USER, "bad arguments"); @@ -161,11 +161,11 @@ m_mist( /* process a ray entering or leaving some mis setcolor(mext, m->oargs.farg[0], m->oargs.farg[1], m->oargs.farg[2]); raytexture(r, m->omod); /* get modifiers */ - multcolor(mext, r->pcol); + multscolor(mext, r->pcol); } else setcolor(mext, 0., 0., 0.); /* start transmitted ray */ - if (rayorigin(&p, r, TRANS, 1.) < 0) + if (rayorigin(&p, TRANS, r, NULL) < 0) return(1); VCOPY(p.rdir, r->rdir); p.slights = newslist; @@ -217,8 +217,10 @@ m_mist( /* process a ray entering or leaving some mis p.gecc = seccg; } rayvalue(&p); /* calls rayparticipate() */ - copycolor(r->rcol, p.rcol); /* return value */ - r->rt = r->rot + p.rt; + copyscolor(r->rcol, p.rcol); /* return value */ + copyscolor(r->mcol, p.mcol); + r->rmt = r->rot + p.rmt; + r->rxt = r->rot + p.rxt; return(1); memerr: error(SYSTEM, "out of memory in m_mist");