/************************************************************************
*									*
*		敵の名前テーブル作成					*
*									*
************************************************************************/

#include <stdio.h>

#define unchar	unsigned char
#define unshort unsigned short

#define ON	1
#define OFF	0

FILE *fpr,*fpw;

void	en_name_cnv();
void	ex_name_cnv();

void main()
{

	/****** 変数宣言 ******/

	/****** 敵メインプログラムファイルＯＰＥＮ ******/
	if( !( fpr = fopen( "ys_enmy.asm","r" ) ) ){
		printf( "can't open (ys_enmy.asm) !!\n" );
		exit(1);
	}

	/****** 敵の名前テーブルファイルＯＰＥＮ ******/
	if( !(fpw = fopen( "ys_ename.h","w" )) ){
		printf( "can't open (ys_ename.h) !!\n" );
		exit(1);
	}

	/****** 敵の名前テーブル作成 ******/
	en_name_cnv();

	/****** ファイルＣＬＯＳＥ ******/
	fclose( fpr );

	/****** 効果メインプログラムファイルＯＰＥＮ ******/
	if( !( fpr = fopen( "ys_exst.asm","r" ) ) ){
		printf( "can't open (ys_exst.asm) !!\n" );
		exit(1);
	}

	/****** 効果の名前テーブル作成 ******/
	ex_name_cnv();

	/****** ファイルＣＬＯＳＥ ******/
	fclose( fpr );
	fclose( fpw );

}

/****************************************************************
*	敵の名前テーブル作成					*
****************************************************************/
void en_name_cnv()
{

	/****** 変数宣言 ******/
	char	read_buf[256];
	char	check_data[256];
	int	end_flag = 0;
	int	i,j;

	/****** 敵の名前の検索 ******/
	do {
		if( fgets( read_buf, 256, fpr ) == NULL ){
			printf( "敵の名前が見つかりません！！\n" );
			exit(1);
		}
		sscanf( read_buf, "%s", check_data );
	} while( strcmp( check_data, "ENMY_NAME" ) );

	fprintf(fpw, ";------------------------------< ememy >-------------------------------");
	j = 7;

	/****** 敵の名前テーブル作成 ******/
	do {
		if( fgets( read_buf, 256, fpr ) == NULL ){
			printf( "敵の名前のＥＮＤラベルが見つかりません！！\n" );
			exit(1);
		}
		sscanf( read_buf, "%s", check_data );
		if( !(strcmp( check_data, "ENAME_END" )) ){
			end_flag = 1;
		}
		else{
			if( strcmp( check_data, "MINI_ST" ) ){
				if( strcmp( check_data, "ENEND" ) ){
					if( strcmp( check_data, "SPMD_ST" ) ){

						if( check_data[0] != ';'
						 && check_data[0] != ':'
						 && check_data[0] != ' '
						 && check_data[0] != '\t') {
							if(j++==7){
								j = 0;
								fprintf(fpw,"\n\t\tEXT\t");
							}
							else{
								fprintf(fpw,",");
							}
							for( i=0; i<5; i++ ){
								if( fputc( check_data[i], fpw ) == EOF ){
									printf( "敵の名前テーブルファイル書き込みエラー！！\n" );
									exit(1);
								}
							}
						}
					}
					else{
						j = 7;
						fprintf(fpw,"\n;");
					}
				}
				else{
					j = 7;
					fprintf(fpw,"\n;");
				}
			}
			else{
				j = 7;
				fprintf(fpw,"\n;");
			}
		}
	} while( end_flag == 0 );

	fprintf(fpw,"\n");
}

/****************************************************************
*	効果の名前テーブル作成					*
****************************************************************/
void ex_name_cnv()
{

	/****** 変数宣言 ******/
	char	read_buf[256];
	char	check_data[256];
	int	end_flag = 0;
	int	i,j;

	/****** 効果の名前の検索 ******/
	do {
		if( fgets( read_buf, 256, fpr ) == NULL ){
			printf( "効果の名前が見つかりません！！\n" );
			exit(1);
		}
		sscanf( read_buf, "%s", check_data );
	} while( strcmp( check_data, "EXTR_NAME" ) );

	fprintf(fpw, ";\n;------------------------------< extra >-------------------------------");
	j = 7;

	/****** 効果の名前テーブル作成 ******/
	do {
		if( fgets( read_buf, 256, fpr ) == NULL ){
			printf( "効果の名前のＥＮＤラベルが見つかりません！！\n" );
			exit(1);
		}
		sscanf( read_buf, "%s", check_data );
		if( !(strcmp( check_data, "EXEND" )) ){
			end_flag = 1;
		}
		else{

			if( check_data[0] != ';'
			 && check_data[0] != ':'
			 && check_data[0] != ' '
			 && check_data[0] != '\t') {
				if(j++==7){
					j = 0;
					fprintf(fpw,"\n\t\tEXT\t");
				}
				else{
					fprintf(fpw,",");
				}
				for( i=0; i<5; i++ ){
					if( fputc( check_data[i], fpw ) == EOF ){
						printf( "効果の名前テーブルファイル書き込みエラー！！\n" );
						exit(1);
					}
				}
			}
		}
	} while( end_flag == 0 );

	fprintf(fpw,"\n");
}
