#!/usr/local/jperl
# キャラクターシートから TAGファイルの生成
# CHAR2TAG.PL
#
#96/12/12 0.01
#　作成開始
#96/12/13 0.02
#　動作完了。
#　このスクリプトを使用することになると、名前の部分に空白を使用しては
#ならなくなる。
#
#96/12/18 0.03
#　シートでないファイルをサーチした場合にもタグが出てしまうのを抑制。
#　ハンドルに空白を含む場合も許すようにチェックを甘くした。

foreach (@ARGV) {
	$infile = $_;
	$code="";
	$type="";
	$name = "";
	$start = "NO";

	open(IN, "<$infile");
	#行単位で処理するものの調査
	while (<IN>) {
		if (/^□□+[^□]+□□+$/){
			$start="YES";
			$linenum = $.;
			if (/ひな型/){
				$code = "ひな型";
			} elsif (/付加能力/){
				$code = "付加能";
			} else {
				$code = "シート";
			};
		} elsif (/^□+$/){
			$start = "NO";
		} elsif (/^☆氏名:([^ 　\t]+)[ 　\t]+☆性別:.*$/){
			$name = $1;
			$start = "NO";
		} elsif (/^☆名前:([^ 　\t]+)[ 　\t]+☆種別:.*$/){
			$name = $1;
			$start = "NO";
		} elsif (/^☆([^:].+):([^ 　\t]+)[ 　\t]*[^ 　\t].*$/ ){
			$tmp1=$1; $tmp2 = $2;
			if ($start eq "YES"){
				$world = $tmp1;#世界設定については取得はしているが出力はしていない
				if ($tmp2 =~ /\n/ ){
					chop $tmp2;
				}
				$type = $tmp2;
				$start = "TYPE";
			}
		}
	}
	close(IN);
	if ($code ne ""){
		printf("%12s%5d:%s:%s:%s\n",$infile,$linenum,$code,$type,$name);
	}
}

__END__
