#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include "defines.h"
#include "amacro.h"
#include "abuff.h"

#define	DEBUG	0

int load_ptrn(unchar *imgname,unchar *(*buff),int PMAX)
/* イメージファイルロード */
{
FILE *fp;
long size;
unchar fname0[MAXPATH],fname[MAXPATH];
	/* 拡張子がない時のみ補足 */
	fnget2(fname0,imgname,"I_G");
	/* 参照ディレクトリチェック＆フルパス名化 */
	fsearch_env_check(fname,EXTENV,DEFEXTENV,fname0,".");
	
	fp=fopen(fname,"rb");
	if (fp==NULL) {
		#if DEBUG
		printsn("\aイメージファイルが見つかりません：",fname);
		#endif
		return(2);
	}
	
	size=filelength(fileno(fp));
	if (PMAX>0 && size>(long)PMAX) {
		#if DEBUG
		printf("\aイメージファイルが大きすぎます：%ld\n",size);
		#endif
		return(3);
	}
	*buff=newmalloc(size);
	if (*buff==NULL) {
		#if DEBUG
		prints("\aパターンメモリーが確保できません\n");
		#endif
		return(4);
	}
	
	if (fread(*buff,(int)size,1,fp)==0) {
		#if DEBUG
		printsn("\aイメージファイル読み込みエラー：",fname);
		#endif
		free(*buff);
		return(5);
	}
	fclose(fp);
	
	/* .I_Gファイルの時はパターン反転 */
	if (*(*buff)==0xfd && *(*buff+1)==0x4b) ArtImgXor(*buff);
	return(0);
}
