--- ray/src/rt/m_mist.c 2003/03/10 17:26:26 2.12 +++ ray/src/rt/m_mist.c 2004/03/30 16:13:01 2.15 @@ -7,9 +7,11 @@ static const char RCSid[] = "$Id"; #include "copyright.h" -#include "ray.h" +#include +#include "ray.h" #include "source.h" +#include "rtotypes.h" /* * A mist volume is used to specify a region in the scene where a certain @@ -49,11 +51,16 @@ static const char RCSid[] = "$Id"; #define RELAYDELIM '>' /* relay delimiter character */ +static int inslist(int *sl, int n); +static int srcmatch(SRCREC *sp, char *id); +static void add2slist(RAY *r, int *sl); + static int -inslist(sl, n) /* return index of source n if it's in list sl */ -register int *sl; -register int n; +inslist( /* return index of source n if it's in list sl */ + register int *sl, + register int n +) { register int i; @@ -65,13 +72,14 @@ register int n; static int -srcmatch(sp, id) /* check for an id match on a light source */ -register SRCREC *sp; -register char *id; +srcmatch( /* check for an id match on a light source */ + register SRCREC *sp, + register char *id +) { register char *cp; /* check for relay sources */ - while ((cp = index(id, RELAYDELIM)) != NULL) { + while ((cp = strchr(id, RELAYDELIM)) != NULL) { if (!(sp->sflags & SVIRTUAL) || sp->so == NULL) return(0); if (strncmp(id, sp->so->oname, cp-id) || sp->so->oname[cp-id]) @@ -86,9 +94,10 @@ register char *id; static void -add2slist(r, sl) /* add source list to ray's */ -register RAY *r; -register int *sl; +add2slist( /* add source list to ray's */ + register RAY *r, + register int *sl +) { static int slspare[MAXSLIST+1]; /* in case of emergence */ register int i; @@ -107,10 +116,11 @@ register int *sl; } -int -m_mist(m, r) /* process a ray entering or leaving some mist */ -OBJREC *m; -register RAY *r; +extern int +m_mist( /* process a ray entering or leaving some mist */ + OBJREC *m, + register RAY *r +) { RAY p; int *myslist = NULL; @@ -175,7 +185,7 @@ register RAY *r; } else { /* leaving ray */ if (myslist != NULL) { /* delete from list */ for (j = myslist[0]; j > 0; j--) - if (i = inslist(p.slights, myslist[j])) + if ( (i = inslist(p.slights, myslist[j])) ) p.slights[i] = -1; for (i = 0, j = 1; j <= p.slights[0]; j++) if (p.slights[j] != -1) @@ -212,4 +222,5 @@ register RAY *r; return(1); memerr: error(SYSTEM, "out of memory in m_mist"); + return 0; /* pro forma return */ }