/* makefont.c */ #include #include "font.h" char F[25][10]; char check_char(char c); main(int argc,char *argv[]) { int i,j,k,n,m; char string[100],name[100]; int row,col,cap,capcent; FILE *fpfnt; int mask; float rowscale,colscale; char msng; printf("Give name of output file. (type will be 'FNT')\n\n"); scanf("%s",name); sprintf(string,"%s.fnt",name); fpfnt=fopen(string,"wt"); if(!fpfnt) { printf("Could not open '%s' to write.\n\n",string); exit(0); } printf("Give rows and columns of new font. (max columns = 64)\n"); scanf("%d%d",&row,&col); rowscale=(float)25/(float)row; colscale=(float)10/(float)col; cap=(float)19/rowscale; fprintf(fpfnt,"row= %d col= %d\n",row,col); for(i=0;i<128;i++) { if(check_char((char)i)!='i'&&check_char((char)i)!='w') fprintf(fpfnt,"Char %d 0x%x '%c'\n",i,i,i); else fprintf(fpfnt,"Char %d 0x%x\n",i,i); for(j=0;jcap) msng=','; else msng='.'; n=(float)j*rowscale; for(k=0;k>=m; if(mask&Font[i][n]) fprintf(fpfnt,"* "); else fprintf(fpfnt,"%c ",msng); } fprintf(fpfnt,"\n"); } } } /*********************************************************************** ** ** returns: ** ** l -- lower case letter ** L -- upper case letter ** n -- number ** p -- punctuation ** w -- white space ** i -- illegal ** ************************************************************************/ char check_char(char c) { if(c<0x9) return('i'); if(c<0xe) return('w'); if(c<0x1f) return('i'); if(c==0x20) return('w'); if(c<0x2f) return('p'); if(c<0x3a) return('n'); if(c<0x41) return('p'); if(c<0x5b) return('L'); if(c<0x61) return('p'); if(c<0x7b) return('l'); if(c<0x7e) return('p'); else return('i'); }