#! /bin/tcsh
####################################################################
#	動物の森アイテムデータの変換
#	$Id: convert.sh,v 1.1 1999-12-08 21:41:54+09 komatu Exp $
####################################################################


#############使用するファイル名文字列
set log_file="/tmp/$0.$USER.makelog"
set decl_file_name="convert.decl"
set mdl_only_label_1="tol_axe_1"
set mdl_only_label_2="tol_axe_2"
set mdl_only_label_3="tol_scoop_1"
set mdl_only_label_4="tol_scoop_2"
set skel_mdl_label_1="tol_net_1"
set skel_mdl_label_2="tol_net_2"
set skel_mdl_label_3="tol_sao_1"
set skel_mdl_label_4="tol_sao_2"
set data_file="data.c"

set enum_file="data_enum.h"
set extern_start_file="data_extern_start.h"
#######set extern_end_file="data_extern_end.h"
set array_start_file="data_array_start.c"
#######set array_end_file="data_array_end.c"

#####ログの初期化
echo "これはアイテムデータ変換のログファイルです" >$log_file


######モデルデータのコンバート
foreach decl_label (`\cat $decl_file_name`)
    switch($decl_label)
	case $mdl_only_label_1:
	    echo "start convert $decl_label" | tee -a $log_file
	    cnvmdl $decl_label".mdl" -O -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    breaksw
	case $mdl_only_label_2:
	    echo "start convert $decl_label" | tee -a $log_file
	    cnvmdl $decl_label".mdl" -O -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    breaksw
	case $mdl_only_label_3:
	    echo "start convert $decl_label" | tee -a $log_file
	    cnvmdl $decl_label".mdl" -O -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    breaksw
	case $mdl_only_label_4:
	    echo "start convert $decl_label" | tee -a $log_file
	    cnvmdl $decl_label".mdl" -O -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    breaksw
	case $skel_mdl_label_1:		######何故かcaseが並べられないので下と同じ
	    echo "start convert $decl_label" | tee -a $log_file
	    key2c2 $decl_label".mdl" $decl_label".key" $decl_label".txa" $decl_label -eon -son -r -non -jdon -clon | tee -a $log_file
	    cnvmdl $decl_label -H3 -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    \rm $decl_label".rot" | tee -a $log_file
#######	    \rm $decl_label".str" | tee -a $log_file
	    \rm $decl_label"_anm.c" | tee -a $log_file
	    breaksw
	case $skel_mdl_label_2:		######何故かcaseが並べられないので上と同じ
	    echo "start convert $decl_label" | tee -a $log_file
	    key2c2 $decl_label".mdl" $decl_label".key" $decl_label".txa" $decl_label -eon -son -r -non -jdon -clon | tee -a $log_file
	    cnvmdl $decl_label -H3 -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    \rm $decl_label".rot" | tee -a $log_file
#######	    \rm $decl_label".str" | tee -a $log_file
	    \rm $decl_label"_anm.c" | tee -a $log_file
	    breaksw
	case $skel_mdl_label_3:		######何故かcaseが並べられないので下と同じ
	    echo "start convert $decl_label" | tee -a $log_file
	    key2c2 $decl_label".mdl" $decl_label".key" $decl_label".txa" $decl_label -eon -son -r -non -jdon -clon | tee -a $log_file
	    cnvmdl $decl_label -H3 -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    \rm $decl_label".rot" | tee -a $log_file
#######	    \rm $decl_label".str" | tee -a $log_file
	    \rm $decl_label"_anm.c" | tee -a $log_file
	    breaksw
	case $skel_mdl_label_4:		######何故かcaseが並べられないので下と同じ
	    echo "start convert $decl_label" | tee -a $log_file
	    key2c2 $decl_label".mdl" $decl_label".key" $decl_label".txa" $decl_label -eon -son -r -non -jdon -clon | tee -a $log_file
	    cnvmdl $decl_label -H3 -I | tee -a $log_file
	    if($status != 0) then
		echo "error" | tee -a $log_file
		exit 1
	    endif
	    \rm $decl_label".rot" | tee -a $log_file
#######	    \rm $decl_label".str" | tee -a $log_file
	    \rm $decl_label"_anm.c" | tee -a $log_file
	    breaksw
	default:
	    echo "start convert $decl_label" | tee -a $log_file
	    key2c2 $decl_label".mdl" $decl_label".key" $decl_label".txa" $decl_label -eon -son -r -non -jdon -clon | tee -a $log_file
	    \rm $decl_label".rot" | tee -a $log_file
	    \rm $decl_label".str" | tee -a $log_file
	    \rm $decl_label"_mdl.c" | tee -a $log_file
	    \rm $decl_label"_mdl.h" | tee -a $log_file
	    breaksw
    endsw

end


#####エラーのチェック
grep -i 'Error' $log_file > /dev/null
if($status == 0) then
    echo "\033[31m"
    echo "ERROR"
    echo "\033[m"
    exit 1
endif


######モデルデータファイルの加工
foreach decl_label (`\cat $decl_file_name`)
    switch($decl_label)
	case $skel_mdl_label_1:		######何故かcaseが並べられないので下と同じ
	    set include_str1 = '#include"'"$decl_label"'_mdl.h"'
	    set include_str2 = '#include"shape\/'"$decl_label"'_mdl.h"'
	    set mdl_file_name = $decl_label"_mdl.c"
	    set tmp_mdl_file_name = $decl_label"_mdl.c_tmp"

	    sed "s/$include_str1/$include_str2/g" $mdl_file_name >$tmp_mdl_file_name
	    \mv $tmp_mdl_file_name $mdl_file_name
	    breaksw
	case $skel_mdl_label_2:		######何故かcaseが並べられないので上と同じ
	    set include_str1 = '#include"'"$decl_label"'_mdl.h"'
	    set include_str2 = '#include"shape\/'"$decl_label"'_mdl.h"'
	    set mdl_file_name = $decl_label"_mdl.c"
	    set tmp_mdl_file_name = $decl_label"_mdl.c_tmp"

	    sed "s/$include_str1/$include_str2/g" $mdl_file_name >$tmp_mdl_file_name
	    \mv $tmp_mdl_file_name $mdl_file_name
	    breaksw
	case $skel_mdl_label_3:		######何故かcaseが並べられないので上と同じ
	    set include_str1 = '#include"'"$decl_label"'_mdl.h"'
	    set include_str2 = '#include"shape\/'"$decl_label"'_mdl.h"'
	    set mdl_file_name = $decl_label"_mdl.c"
	    set tmp_mdl_file_name = $decl_label"_mdl.c_tmp"

	    sed "s/$include_str1/$include_str2/g" $mdl_file_name >$tmp_mdl_file_name
	    \mv $tmp_mdl_file_name $mdl_file_name
	    breaksw
	case $skel_mdl_label_4:		######何故かcaseが並べられないので上と同じ
	    set include_str1 = '#include"'"$decl_label"'_mdl.h"'
	    set include_str2 = '#include"shape\/'"$decl_label"'_mdl.h"'
	    set mdl_file_name = $decl_label"_mdl.c"
	    set tmp_mdl_file_name = $decl_label"_mdl.c_tmp"

	    sed "s/$include_str1/$include_str2/g" $mdl_file_name >$tmp_mdl_file_name
	    \mv $tmp_mdl_file_name $mdl_file_name
	    breaksw
    endsw

end


#####データファイルの作成
echo '#include "c_keyframe_type.h"' >$data_file
echo "" >>$data_file
echo '/* 一番上はaxe_1で固定 */' >>$data_file

###	ソースファイルのインクルード
foreach decl_label (`\cat $decl_file_name`)
    switch($decl_label)
	case $mdl_only_label_1:
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $mdl_only_label_2:
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $mdl_only_label_3:
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $mdl_only_label_4:
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $skel_mdl_label_1:		######何故かcaseが並べられないので下と同じ
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
	    echo '#include "shape/'$decl_label'_mdl.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $skel_mdl_label_2:		######何故かcaseが並べられないので上と同じ
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
	    echo '#include "shape/'$decl_label'_mdl.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $skel_mdl_label_3:		######何故かcaseが並べられないので下と同じ
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
	    echo '#include "shape/'$decl_label'_mdl.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	case $skel_mdl_label_4:		######何故かcaseが並べられないので下と同じ
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'.c"' >>$data_file
	    echo '#include "shape/'$decl_label'_mdl.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_mdl = 0;' >>$data_file
	    echo "" >>$data_file
	    breaksw
	default:
	    echo 'u64 dummy_forGetStartSegment_'$decl_label'_anm = 0;' >>$data_file
	    echo '#include "shape/'$decl_label'_anm.c"' >>$data_file
#######	    echo 'u64 dummy_forGetEndSegment_'$decl_label'_anm = 0;' >>$data_file
	    echo "" >>$data_file
    endsw
end

echo 'u64 dummy_forGetEndSegment_PlayerItemData = 0;' >>$data_file



#####enum extern array ファイルの作成
\rm -f $enum_file
\rm -f $extern_start_file
#######\rm -f $extern_end_file
\rm -f $array_start_file
#######\rm -f $array_end_file

foreach decl_label (`\cat $decl_file_name`)
    switch($decl_label)
	case $mdl_only_label_1:
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $mdl_only_label_2:
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $mdl_only_label_3:
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $mdl_only_label_4:
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $skel_mdl_label_1:		######何故かcaseが並べられないので下と同じ
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $skel_mdl_label_2:		######何故かcaseが並べられないので上と同じ
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $skel_mdl_label_3:		######何故かcaseが並べられないので上と同じ
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	case $skel_mdl_label_4:		######何故かcaseが並べられないので上と同じ
	    echo '	M_PLAYER_ITEM_MODEL_DATA_INDEX_'$decl_label'_mdl,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_mdl;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_mdl;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_mdl,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_mdl,' >>$array_end_file
	    breaksw
	default:
	    echo '	M_PLAYER_ITEM_ANIME_DATA_INDEX_'$decl_label'_anm,' >>$enum_file
	    echo 'extern u64 dummy_forGetStartSegment_'$decl_label'_anm;' >>$extern_start_file
#######	    echo 'extern u64 dummy_forGetEndSegment_'$decl_label'_anm;' >>$extern_end_file
	    echo '	&dummy_forGetStartSegment_'$decl_label'_anm,' >>$array_start_file
#######	    echo '	&dummy_forGetEndSegment_'$decl_label'_anm,' >>$array_end_file
    endsw
end

echo 'extern u64 dummy_forGetEndSegment_PlayerItemData;' >>$extern_start_file
echo '	&dummy_forGetEndSegment_PlayerItemData,' >>$array_start_file



################convert.sh end
