/* アシストアートの.I_GファイルデータをFNTGET形式データに直す */
/* 同時にイメージデータの白黒変転も行なう */
/* .I_G ヘッダー部分
00000000  FD 4B 20 20 20 20 20 20 30 31 32 32 30 32 32 34 .K      01220224
*/

#include "defines.h"

int ArtImgXor(unchar *art)
{
short x,y,xx;
unchar *art0,cc;
	/* ヘッダー判定 */
	if (art[0]!=0xfd || art[1]!=0x4b) return(1); /* これは.I_Gデータではない */
	/* データ幅読み取り */
	x=deci4(&art[8]);
	y=deci4(&art[12]);
	
	/* データ幅変換 */
	art0=art+16;
	*(unsint *)art=x;
	art+=sizeof(short);
	*(unsint *)art=y;
	art+=sizeof(short);
	
	/* データずらし＆反転 */
	cc=0;
	if (x%8) { /* １ライン分データの右端余りドットがある */
		/* あまりドット反転パターン */
		for (xx=0;xx<(x%8);xx++) {
			cc>>=1;
			cc|=BIT7;
		}
	}
	x/=8;
	for (;y>0;y--) {
		for (xx=0;xx<x;xx++) *art++=((*art0++)^0xff);
		if (cc) *art++=((*art0++)^cc);
	}
	return(0);
}

#if DEBUG
#include <stdio.h>
#include <io.h>
#include "aigtext.h"
unchar buff[5000];

main()
{
FILE *fp;
	fp=fopen("S1.I_G","rb");
	if (fp!=NULL) {
		fread(buff,filelength(fileno(fp)),1,fp);
		fclose(fp);
		ArtImgXor(buff);
		ImgPut(100,0,buff,1);
	}
}
#endif
