X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=pixmaps%2Fconvert.c;h=f2c3afac38777dbb8b457d240c0034a474f26736;hb=ee7ad29e757ab4f99b8b776ce7e8ebee5081767a;hp=dcdcd4711ec4653b4732fcc6cebe4c8cb9ca14ab;hpb=86517e539f33650be656c482020a878fec0723c9;p=xboard.git diff --git a/pixmaps/convert.c b/pixmaps/convert.c index dcdcd47..f2c3afa 100644 --- a/pixmaps/convert.c +++ b/pixmaps/convert.c @@ -9,8 +9,8 @@ int sizeList[] = { 21, 25, 29, 33, 37, 40, 45, 49, 54, 58, 64, 72, 80, 87, 95, 108, 116, 129 }; -char *(pieceList[]) = {"p", "n", "b", "r", "q", "f", "e", "as", "c", "w", "m", - "o", "h", "a", "dk", "g", "d", "v", "l", "s", "u", "k", +char *(pieceList[]) = {"p", "n", "b", "r", "q", "f", "e", "as", "c", "w", "m", + "o", "h", "a", "dk", "g", "d", "v", "l", "s", "u", "k", "wp", "wl", "wn", "ws", "cv", NULL }; char kindList[] = "sow"; @@ -54,6 +54,19 @@ void Paint(char dest[130][130], char src[130][130], int size, char c) for(i=0; i 0) FloodFill(a, size, x-1, y); + if(y > 0) FloodFill(a, size, x, y-1); + if(x < size-1) FloodFill(a, size, x+1, y); + if(y < size-1) FloodFill(a, size, x, y+1); + } + +} + void Save(FILE *f, char *name, char data[130][130], int size, char *col, int depth) { // write out data in source format for d x d pixmap with specified square color int i, j; @@ -79,27 +92,32 @@ char data[130][130], oData[130][130], sData[130][130], wData[130][130]; main(int argc, char **argv) { - int i, j, k, d, cnt, p, s, t; char c, h, w, *name, buf[80]; + +#define BUFLEN 80 + + int i, j, k, d, cnt, p, s, t; char c, h, w, name[BUFLEN], buf[BUFLEN], transparent; FILE *f; + transparent = argc > 1 && !strcmp(argv[1], "-t"); + for(s=0; s<18; s++) for(p=0; pieceList[p] != NULL; p++) { // Load the 3 kinds of Windows monochrome bitmaps (outline, solid, white fill) - sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'o'); + snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'o'); printf("try %s\n", buf); f = fopen(buf, "rb"); if(f == NULL) continue; Load(f, oData, buf); - sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 's'); + snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 's'); f = fopen(buf, "rb"); if(f == NULL) continue; Load(f, sData, buf); - sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'w'); + snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", pieceList[p], sizeList[s], 'w'); if(pieceList[p][0]=='w') - sprintf(buf, "../winboard/bitmaps/%s%d%c.bmp", "w", sizeList[s], 'w'); + snprintf(buf, BUFLEN, "../winboard/bitmaps/%s%d%c.bmp", "w", sizeList[s], 'w'); f = fopen(buf, "rb"); if(f == NULL) continue; Load(f, wData, buf); @@ -107,19 +125,26 @@ main(int argc, char **argv) printf("%s loaded\n", buf); // construct pixmaps as character arrays d = sizeList[s]; - for(i=0; i