/* * wf2bin takes a wireframe and outputs a binary file. * * usage: wf2bin outfile */ #include #include int main (int argc, char *argv[]) { FILE *F; int fromX, fromY, toX, toY, color; int i, j; char lines[256][5]; /* * get output file name and ensure it does not exist. */ if (argc != 2 || (F = fopen (argv[1], "r"))) { printf ("usage error: wf2bin outputfile\n"); printf ("error: file may already exist.\n"); exit (1); } F = fopen (argv[1], "wb"); /* * blank out lines */ for (i = 0; i < 256; i++) { lines[i][0] = (char)0; lines[i][1] = (char)0; lines[i][2] = (char)0; lines[i][3] = (char)0; lines[i][4] = (char)0; } /* * read in lines */ i = 0; while (!feof (stdin) && i < 256) { printf ("Enter fromX? "); scanf ("%d", &fromX); printf ("Enter fromY? "); scanf ("%d", &fromY); printf ("Enter toX? "); scanf ("%d", &toX); printf ("Enter toY? "); scanf ("%d", &toY); printf ("Enter color? "); scanf ("%d", &color); lines[i][0] = fromX; lines[i][1] = fromY; lines[i][2] = toX; lines[i][3] = toY; lines[i][4] = color; printf ("(%d,%d)->(%d,%d) of %d\n", lines[i][0], lines[i][1], lines[i][2], lines[i][3], lines[i][4]); i++; } /* * blank out first image buffer. */ for (i = 0; i < 120; i++) { for (j = 0; j < 128; j++) { fprintf (F, "%c", (char)0); } } /* * write lines into first memory buffer. */ for (i = 120; i < 128; i++) { for (j = 0; j < 16; j++) { fprintf (F, "%c", (char)lines[j+(i-120)*32][0]); fprintf (F, "%c", (char)lines[j+(i-120)*32][1]); fprintf (F, "%c", (char)lines[j+(i-120)*32][2]); fprintf (F, "%c", (char)lines[j+(i-120)*32][3]); fprintf (F, "%c", (char)lines[j+(i-120)*32][4]); fprintf (F, "%c", (char)0); fprintf (F, "%c", (char)0); fprintf (F, "%c", (char)0); } } /* * blank out second image buffer. */ for (i = 128; i < 248; i++) { for (j = 0; j < 128; j++) { fprintf (F, "%c", (char)0); } } /* * write lines into second memory buffer. */ for (i = 248; i < 256; i++) { for (j = 0; j < 16; j++) { fprintf (F, "%c", (char)lines[j+(i-248)*32+16][0]); fprintf (F, "%c", (char)lines[j+(i-248)*32+16][1]); fprintf (F, "%c", (char)lines[j+(i-248)*32+16][2]); fprintf (F, "%c", (char)lines[j+(i-248)*32+16][3]); fprintf (F, "%c", (char)lines[j+(i-248)*32+16][4]); fprintf (F, "%c", (char)0); fprintf (F, "%c", (char)0); fprintf (F, "%c", (char)0); } } fclose (F); return 0; }