From: jwalz Date: Sat, 5 Jan 2002 21:06:02 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: MOVE2GIT~3565 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0c438b1ee2d9ab3067fd6071889b0835bb587f00;p=nethack *** empty log message *** --- diff --git a/win/share/thintile.c b/win/share/thintile.c new file mode 100644 index 000000000..b07ecbeeb --- /dev/null +++ b/win/share/thintile.c @@ -0,0 +1,129 @@ +/* SCCS Id: @(#)thintile.c 3.3 95/11/26 */ +/* Copyright (c) NetHack Development Team 1995 */ +/* NetHack may be freely redistributed. See license for details. */ + +/* Create a set of overview tiles by eliminating even pixels in original */ + +#include "config.h" +#include "tile.h" + +#ifdef __GO32__ +#include +#endif + +static char pixels[TILE_Y][TILE_X]; + +static char *tilefiles[] = { "../win/share/monsters.txt", + "../win/share/objects.txt", + "../win/share/other.txt"}; + +static char *thinfiles[] = { "../win/share/monthin.txt", + "../win/share/objthin.txt", + "../win/share/oththin.txt"}; +static FILE *infile, *outfile; +static int tilecount; +static int tilecount_per_file; +static int filenum; +static char comment[BUFSZ]; + +static void +copy_colormap() +{ + int r, g, b; + char c[2]; + + while (fscanf(infile, "%[A-Za-z0-9] = (%d, %d, %d) ", c, &r, &g, &b) + == 4) { + Fprintf(outfile, "%c = (%d, %d, %d)\n", c[0], r, g, b); + } +} + +static boolean +read_txttile() +{ + int i, j; + char buf[BUFSZ]; + char buf2[BUFSZ]; + + char c[2]; + + + if (fscanf(infile, "# %s %d (%[^)])", buf2, &i, buf) <= 0) + return FALSE; + + Sprintf(comment,"# tile %d (%s)", i, buf); + + /* look for non-whitespace at each stage */ + if (fscanf(infile, "%1s", c) < 0) { + Fprintf(stderr, "unexpected EOF\n"); + return FALSE; + } + if (c[0] != '{') { + Fprintf(stderr, "didn't find expected '{'\n"); + return FALSE; + } + for (j = 0; j < TILE_Y; j++) { + for (i = 0; i < TILE_X; i++) { + if (fscanf(infile, "%1s", c) < 0) { + Fprintf(stderr, "unexpected EOF\n"); + return FALSE; + } + pixels[j][i] = c[0]; + } + } + if (fscanf(infile, "%1s ", c) < 0) { + Fprintf(stderr, "unexpected EOF\n"); + return FALSE; + } + if (c[0] != '}') { + Fprintf(stderr, "didn't find expected '}'\n"); + return FALSE; + } + return TRUE; +} + +static void +write_thintile() +{ + int i, j; + + + Fprintf(outfile, "%s\n", comment); + Fprintf(outfile, "{\n"); + for (j = 0; j < TILE_Y; j++) { + Fprintf(outfile, " "); + for (i = 0; i < TILE_X; i += 2) { + (void) fputc(pixels[j][i], outfile); + } + Fprintf(outfile, "\n"); + } + Fprintf(outfile, "}\n"); +} +int +main(argc, argv) +int argc; +char *argv[]; +{ + while (filenum < 3) { + tilecount_per_file = 0; + infile = fopen(tilefiles[filenum], RDTMODE); + outfile = fopen(thinfiles[filenum], WRTMODE); + copy_colormap(); + while (read_txttile()) { + write_thintile(); + tilecount_per_file++; + tilecount++; + } + fclose(outfile); + fclose(infile); + printf("%d tiles processed from %s\n", + tilecount_per_file, tilefiles[filenum]); + ++filenum; + } + printf("Grand total of %d tiles processed.\n", tilecount); + exit(EXIT_SUCCESS); + /*NOTREACHED*/ + return 0; +} + +/*thintile.c*/