/*************************************************************************** ** picv3-v2.c ** ** A small program to convert AGI version 3 pictures to AGI version 2 ** pictures so that they can be displayed using SHOWPIC. ** ** (c) Lance Ewing 1997 ***************************************************************************/ #include #define NORMAL 0 #define ALTERNATE 1 void main(int argc, char **argv) { FILE *v3File, *v2File; unsigned char data, oldData, outData; int mode = NORMAL; if (argc != 3) { printf("Usage: picv2-v2 v3file v2file"); exit(0); } if ((v3File = fopen(argv[1], "rb")) == NULL) { printf("Error opening picture file : %s\n", argv[1]); exit(0); } if ((v2File = fopen(argv[2], "wb")) == NULL) { printf("Error creating picture file : %s\n", argv[2]); exit(0); } while (!feof(v3File)) { data = fgetc(v3File); if (mode == ALTERNATE) outData = ((data & 0xF0) >> 4) + ((oldData & 0x0F) << 4); else outData = data; if ((outData == 0xF0) || (outData == 0xF2)) { fputc(outData, v2File); if (mode == NORMAL) { data = fgetc(v3File); fputc((data & 0xF0) >> 4, v2File); mode = ALTERNATE; } else { fputc((data & 0x0F), v2File); mode = NORMAL; } } else fputc(outData, v2File); oldData = data; } fclose(v3File); fclose(v2File); }