void readmat(void) { char tmp[256]; int a,b,c,d; char *p,*p0,*t; matnum=0; printf("Materials:\n"); while(!feof(in)) { p0=p=getline(); if(*p==';') continue; if(*p) { t=gettoken(&p); for(a=0;a='0' && a<='9') { mat[matnum].color=atoi(t); } break; } } switch(mat[matnum].colorlen) { case 32 : mat[matnum].flags|=F_SHADE32; break; case 16 : mat[matnum].flags|=F_SHADE16; break; case 8 : mat[matnum].flags|=F_SHADE8; break; case 1 : break; default : printf("ILLEGAL COLOR LENGTH>> "); break; } sscanf(p,"%s %i %i",mat[matnum].name,&mat[matnum].color,&mat[matnum].colorlen); printf("%s colors:%i..%i ",mat[matnum].name,mat[matnum].color, mat[matnum].color+mat[matnum].colorlen-1); if(mat[matnum].flags&F_GOURAUD) printf("Gouraud "); if(mat[matnum].flags&F_TEXTURE) printf("Texture "); printf("\n"); matnum++; } } }