/*
	環境設定
*/

#INCLUDE
	motion.h

#PRELOAD
	sys_config
	sys_config_btn
	sys_config_btn2
	sys_config_gage
	sys_config_num
	sys_config_num_g


///////////////////////////
// オブジェクト定義
#DEFINE
	CPLANE	topmask			// ホワイトアウト用の真っ白なプレーン
	CIMAGE	basemask		// スクリプト間のつなぎ用白画像ベースイメージ用

	PLANE	pl				// 表示用プレーン

	IMAGE	img_bg			// 背景画像
	IMAGE	img_frame[4]	// 設定ジャンル分け用のウィンドウ画像

	BUTTON	btn_type_a[11]	// ボタン（しない／する・待つ／待たないボタン）
	BUTTON	btn_type_b[2]	// ボタン（フォント影ボタン（２種類））
	BUTTON	btn_type_c[5]	// ボタン（演出速度変更ボタン）

	BUTTON	btn_auto		// 『オートモードの詳細』チェックボックス
	IMAGE	img_auto_c		// 『オートモードの詳細』チェックマーク

	SLIDER	gage[8]			// スライダーゲージ各種

	IMAGE	img_num[18]		// 数値表示

	BUTTON	btn_auto_ind[4]	// 『オートモードの詳細』左右ボタン
	IMAGE	img_indnum_a[6]	// オートモード詳細用数値（変更可能時の色）
	IMAGE	img_indnum_b[6]	// オートモード詳細用数値（変更不可時の色）

	STRING	str[2]			// サンプル文字列（２種類）

	BUTTON	btn_def			// デフォルトに戻すボタン
	BUTTON	btn_ret			// 前の画面に戻るボタン

	// フォント選択ウィンドウ関連
	BUTTON	btn_font_p			// 『使用するフォント』ボタン
	STRING	str_font_now		// 現在のフォント
	IMAGE	ing_font_wnd		// フォント選択ウィンドウのベース画像
	STRING	str_font_list[21]	// フォントリスト
	BUTTON	btn_font_lb[21]		// 選択リストボタン
	SCROLL2	font_scrl			// 選択時用スクロールバー

	IMAGE	img_wnd_sample		// サンプル文字列下のウィンドウ

	IMAGE	img_help			// ヘルプ画像


///////////////////////////
// オブジェクト初期化

// ホワイトアウト用の真っ白なプレーン
#OBJECT	COLOR		SIZE		DISP	PRI
topmask	0xffffffff	1280,720	0		50000

// スクリプト間のつなぎ用白画像ベースイメージ用
#OBJECT		SIZE		COLOR		PRI		DISP
basemask	1280,720	0xffffffff	1		0

// 表示用プレーン
#OBJECT	SIZE		PRI		DISP	VRAM
pl		1280,720	10000	0		0,852

// 背景画像
#OBJECT	FILE		ID.0	DISP	PRI	PL
img_bg	sys_config	0		1		10	pl

// 設定ジャンル分け用のウィンドウ画像
#OBJECT		FILE		DISP	PRI	PL
img_frame	sys_config	1		20	pl

#OBJECT			ID.0	ID.1
img_frame[0]	10		11		// ID.1はオートモード速度がグレーになっている状態
img_frame[1]	12
img_frame[2]	13
img_frame[3]	14

// ボタン（しない／する・待つ／待たないボタン）
#OBJECT	FILE			DISP	PL	PRI	ENABLE
btn_type_a	sys_config_btn	1		pl	100	0

// ID.0〜3:しない・待たない  ID.5〜8 :する・待つ
#OBJECT			POS2			ID.0	ID.1	ID.2	ID.3	ID.5	ID.6	ID.7	ID.8
btn_type_a[0]	sys_config:100	80		81		82		83		70		71		72		73
btn_type_a[1]	sys_config:101	80		81		82		83		70		71		72		73
btn_type_a[2]	sys_config:102	80		81		82		83		70		71		72		73
btn_type_a[3]	sys_config:103	30		31		32		33		20		21		22		23
btn_type_a[4]	sys_config:104	80		81		82		83		70		71		72		73
btn_type_a[5]	sys_config:105	80		81		82		83		70		71		72		73
btn_type_a[6]	sys_config:106	80		81		82		83		70		71		72		73
btn_type_a[7]	sys_config:107	80		81		82		83		70		71		72		73
btn_type_a[8]	sys_config:108	80		81		82		83		70		71		72		73
btn_type_a[9]	sys_config:109	80		81		82		83		70		71		72		73
btn_type_a[10]	sys_config:110	80		81		82		83		70		71		72		73

// ボタン（フォント影ボタン（２種類））
#OBJECT		FILE			DISP	PL	PRI	ENABLE
btn_type_b	sys_config_btn	1		pl	200	0

#OBJECT			POS2			ID.0	ID.1	ID.2	ID.3
btn_type_b[0]	sys_config:200	40		41		42		43
btn_type_b[1]	sys_config:201	50		51		52		53

// ボタン（演出速度変更ボタン）
#OBJECT		FILE			DISP	PL	PRI	ENABLE
btn_type_c	sys_config_btn2	1		pl	300	0

#OBJECT			POS2			ID.0	ID.1	ID.2	ID.3
btn_type_c[0]	sys_config:300	0		1		2		3
btn_type_c[1]	sys_config:301	10		11		12		13
btn_type_c[2]	sys_config:302	20		21		22		23
btn_type_c[3]	sys_config:303	30		31		32		33
btn_type_c[4]	sys_config:304	40		41		42		43

// スライダーゲージ各種
#OBJECT		FILE			PRI		PL	DISP	ENABLE
gage		sys_config_gage	400		pl	1		0

#OBJECT	POS2
gage[0]	sys_config:400	// メッセージ速度
gage[1]	sys_config:401	// オート速度
gage[2]	sys_config:402	// ウィンドウ不透明度
gage[3]	sys_config:403	// マスターボリューム
gage[4]	sys_config:404	// BGMボリューム
gage[5]	sys_config:405	// 効果音ボリューム
gage[6]	sys_config:406	// 音声ボリューム
gage[7]	sys_config:407	// 音声再生時BGMボリューム

// 『オートモードの詳細』チェックボックス
#OBJECT		FILE		ID.0	ID.1	PRI	PL	DISP	ENABLE
btn_auto	sys_config	900		902		500	pl	1		0

// 『オートモードの詳細』チェックマーク
#OBJECT	FILE		ID.0	PRI	PL	DISP
img_auto_c	sys_config	910		501	pl	0

// 各種数値
#OBJECT	FILE			PRI	PL	DISP
img_num	sys_config_num	600	pl	0

#OBJECT		POS2
img_num[0]	sys_config:1000		// ウィンドウ不透明度
img_num[1]	sys_config:1001
img_num[2]	sys_config:1002
img_num[3]	sys_config:1010		// ボリューム − マスター
img_num[4]	sys_config:1011
img_num[5]	sys_config:1012
img_num[6]	sys_config:1020		// ボリューム − BGM
img_num[7]	sys_config:1021
img_num[8]	sys_config:1022
img_num[9]	sys_config:1030		// ボリューム − 効果音
img_num[10]	sys_config:1031
img_num[11]	sys_config:1032
img_num[12]	sys_config:1040		// ボリューム − 音声
img_num[13]	sys_config:1041
img_num[14]	sys_config:1042
img_num[15]	sys_config:1050		// ボリューム − 音声再生時BGM
img_num[16]	sys_config:1051
img_num[17]	sys_config:1052

// 『オートモードの詳細』左右ボタン
#OBJECT			FILE		PRI	PL	DISP	ENABLE
btn_auto_ind	sys_config	700	pl	0		0

#OBJECT			ID.0	ID.1	ID.2	ID.3
btn_auto_ind[0]	510		511		512		513		// 基本待ち時間 ＜
btn_auto_ind[1]	500		501		502		503		// 基本待ち時間 ＞
btn_auto_ind[2]	560		561		562		563		// １文字あたり時間 ＜
btn_auto_ind[3]	550		551		552		553		// １文字あたり時間 ＞

// オートモード詳細用数値
#OBJECT			FILE				PRI	PL	DISP
img_indnum_a	sys_config_num		750	pl	0		// 変更可能時
img_indnum_b	sys_config_num_g	760	pl	0		// 変更不可時

#OBJECT			POS2
img_indnum_a[0]	sys_config:1060		// オートの基本待ち時間
img_indnum_a[1]	sys_config:1061
img_indnum_a[2]	sys_config:1062
img_indnum_a[3]	sys_config:1070		// オートの１文字当たり待ち時間
img_indnum_a[4]	sys_config:1071
img_indnum_a[5]	sys_config:1072
img_indnum_b[0]	sys_config:1060		// オートの基本待ち時間
img_indnum_b[1]	sys_config:1061
img_indnum_b[2]	sys_config:1062
img_indnum_b[3]	sys_config:1070		// オートの１文字当たり待ち時間
img_indnum_b[4]	sys_config:1071
img_indnum_b[5]	sys_config:1072


// サンプル文字列下のウィンドウ
#OBJECT			FILE		ID.0	DISP	PRI	PL
img_wnd_sample	sys_config	30		1		50	pl

// サンプル文字列（２種類）
#OBJECT		VRAM		POS2			SIZE2			PRI
str[0]		512,3634	sys_config:20	sys_config:20	11000	// メッセージ速度用
str[1]		512,3684	sys_config:21	sys_config:21	11100	// オート速度用


// デフォルトに戻すボタン
#OBJECT	FILE		ID.0	ID.1	ID.2	ID.3	PL	PRI	ENABLE	DISP
btn_def	sys_config	800		801		802		803		pl	800	0		1

// 前の画面に戻る（環境設定終了）ボタン
#OBJECT	FILE		ID.0	ID.1	ID.2	ID.3	PL	PRI	ENABLE	DISP
btn_ret	sys_config	850		851		852		853		pl	850	0		1


// 『使用するフォント』ボタン
#OBJECT		FILE		ID.0	ID.1	ID.2	ID.3	PL	PRI		ENABLE	DISP
btn_font_p	sys_config	710		711		712		713		pl	1000	0		1

// 現在のフォント
#OBJECT			VRAM	POS2			SIZE2			PRI
str_font_now	0,3634	sys_config:701	sys_config:701	10200

// フォント選択ウィンドウのベース画像
#OBJECT			FILE		ID.0	PL	PRI		DISP
ing_font_wnd	sys_config	700		pl	1100	0

// フォントリスト
#OBJECT				VRAM	POS2			SIZE2			PRI
str_font_list[0]	0,3684	sys_config:730	sys_config:730	10300
str_font_list[1]	0,3704	sys_config:731	sys_config:731	10400
str_font_list[2]	0,3724	sys_config:732	sys_config:732	10500
str_font_list[3]	0,3744	sys_config:733	sys_config:733	10600
str_font_list[4]	0,3764	sys_config:734	sys_config:734	10700
str_font_list[5]	0,3784	sys_config:735	sys_config:735	10800
str_font_list[6]	0,3804	sys_config:736	sys_config:736	10900
str_font_list[7]	0,3824	sys_config:737	sys_config:737	11000
str_font_list[8]	0,3844	sys_config:738	sys_config:738	11100
str_font_list[9]	0,3864	sys_config:739	sys_config:739	11200
str_font_list[10]	0,3884	sys_config:740	sys_config:730	11300
str_font_list[11]	0,3904	sys_config:741	sys_config:731	11400
str_font_list[12]	0,3924	sys_config:742	sys_config:732	11500
str_font_list[13]	0,3944	sys_config:743	sys_config:733	11600
str_font_list[14]	0,3964	sys_config:744	sys_config:734	11700
str_font_list[15]	0,3984	sys_config:745	sys_config:735	11800
str_font_list[16]	0,4004	sys_config:746	sys_config:736	11900
str_font_list[17]	0,4024	sys_config:747	sys_config:737	12000
str_font_list[18]	0,4044	sys_config:748	sys_config:738	12100
str_font_list[19]	0,4064	sys_config:749	sys_config:739	12200
str_font_list[20]	0,4084	sys_config:750	sys_config:730	12300

// 選択リストボタン
#OBJECT		FILE		PL	DISP	ENABLE	PRI
btn_font_lb	sys_config	pl	0		0		1200

#OBJECT			ID.0
btn_font_lb[0]	730
btn_font_lb[1]	731
btn_font_lb[2]	732
btn_font_lb[3]	733
btn_font_lb[4]	734
btn_font_lb[5]	735
btn_font_lb[6]	736
btn_font_lb[7]	737
btn_font_lb[8]	738
btn_font_lb[9]	739
btn_font_lb[10]	740
btn_font_lb[11]	741
btn_font_lb[12]	742
btn_font_lb[13]	743
btn_font_lb[14]	744
btn_font_lb[15]	745
btn_font_lb[16]	746
btn_font_lb[17]	747
btn_font_lb[18]	748
btn_font_lb[19]	749
btn_font_lb[20]	750

// フォント選択時用スクロールバー
#OBJECT		FILE			PRI		POS2			DISP	ENABLE	PL
font_scrl	sys_config_scrl	1300	sys_config:721	0		0		pl

// ヘルプ画像
#OBJECT		FILE			POS2			PRI		DISP	PL
img_help	sys_config_help	sys_config:2000	2000	0		pl



///////////////////////////////////
// スクリプト開始
#START
	// キー入力による演出スキップをOFF
	keyskip off
	wait 1

	// スライダーゲージの移動量を設定
	gage[0] page 0 10		// メッセージ速度
	gage[1] page 0 10		// オート速度
	gage[2] page 0 100		// ウィンドウ不透明度
	gage[3] page 0 100		// マスターボリューム
	gage[4] page 0 100		// BGMボリューム
	gage[5] page 0 100		// 効果音ボリューム
	gage[6] page 0 100		// 音声ボリューム
	gage[7] page 0 100		// 音声再生時BGMボリューム

	// 現在の環境設定情報を取得
	call GETCONF

	// ボタンの設定
	call SETBUTTON

	// 各種数値を設定・表示
	call SETNUM_ALL

	// オート詳細の数値を設定・表示
	call SETINDNUM_ALL

	// オート詳細のチェックの有無でオートスピードゲージの色を変える
	if( \110 )
		gage[1] settbl 1 1	// チェック有り → グレー
	else
		gage[1] settbl 1 0	// チェック無し → ノーマル
	endif

	// 現在設定されているフォント名を表示する文字列を設定
	call FONTINIT

	// サンプル文字列を設定
	call STRLAYOUT

	// サンプル文字列に表示する文章
	str[0] str メッセージ速度のサンプルです。
	str[1] str オートモードの速度のサンプルです。

	// 表示
	// タイトルから実行されたか、ゲーム中から実行されたかで
	// 演出を変える
	if( $801 == 0 )	// タイトルからの場合
		// タイトル画面からの場合はベースイメージに白画像が設定されているので
		// 白プレーンを表示しつつベースイメージを消去（見た目は白画面のまま）
		topmask disp 1		// 白プレーンを表示して...
		baseimg				// ベースイメージを消去
		pl disp 1			// 表示用プレーンを表示
		topmask fade 16 255 0	// 白プレーンをフェードアウト
	else			// ゲーム中からの場合
		// ゲーム中からの場合は黒画面状態で呼ばれる（ベースイメージ無し）ので
		// 表示用プレーンをフェードインするだけ
		pl disp 1			// 表示用プレーンを表示して...
		pl fade 16 0 255	// フェードイン
	endif
	wait

	// 現在選択中のフォントを設定
	call SETNOWFONT

	// サンプル文字列を表示
	str disp 1	// 文章表示
	str draw -1	// 描画開始(-1だと最後まで表示)

	// オート速度の計算（再描画までの時間を計算）
	\201 = 8 * \101 * 60 / 100
	\201 += \100 * 60 / 10 + _FRAME_

	// 各種ボタンを有効化
	call ENABLE_ALL_BUTTON

	// 入力待ちループへ
	next WAIT


///////////////////////////////////
// 入力待ちメインループ
#WAIT
	// 右クリックされたら終了
	if( _CLICK_R_ != 0 )
		next EXIT
	endif

	// サンプル文字列更新処理（メッセージスピード）
	if( \90 > 0 )
		// メッセージスピードが0を超える場合(文字スクロールされる場合)
		// 0の時は表示しっぱなしなので、再描画の必要が無い

		// 描画（文字スクロール）が完了したか
		str[0] isdraw	// 結果が\0に返ってくる
		if( !\0 )
			// 描画が完了している場合
			str[0] clear								// 文章を一旦クリア
			str[0] str メッセージ速度のサンプルです。	// 再度文章を設定
			str[0] draw -1								// 描画
		endif
	endif

	// サンプル文字列更新処理（オートスピード）
	str[1] isdraw	// 描画（文字スクロール）が完了したか取得
	if( !\0 )
		// 描画が完了している場合
		if( \201 <= _FRAME_ )
			// 現在の時間が再描画までの時間を超えている場合
			// 再描画（やることはメッセージスピードの時と同じ）
			str[1] clear
			str[1] str オートモードの速度のサンプルです。
			str[1] draw -1
			// 次の更新時間を計算
			\201 = 8 * \101 * 60 / 100
			\201 += \100 * 60 / 10 + _FRAME_
		endif
	endif


///////////////////////////////////
// 終了処理
#EXIT
	// 全てのボタンを無効化
	call DISABLE_ALL_BUTTON

	// 現在の設定をシステムに設定
	call SETCONF

	// サンプル文字列を非表示
	str disp 0

	// 現在選択されているフォントも非表示
	str_font_now disp 0

	// 終了演出
	// タイトル画面からの場合はホワイトアウト＋ベースイメージを白画像に設定
	// ゲーム中からの場合は黒へフェードアウト
	if( $801 == 0 )	// タイトルからの場合
		topmask disp 1			// 白プレーンを表示して...
		topmask fade 16 0 255	// フェードイン
		wait
		baseimg basemask		// ベースイメージを白画像にする
	else			// ゲーム中からの場合
		pl fade 16 255 0		// 表示用プレーンをフェードアウト
	endif
	wait

	// 環境設定画面を終了
	exit 0
	next SLEEP


///////////////////////////////////
// スクリプト終了時の空ループ
#SLEEP



////////////////////////////////////////
// イベントハンドラ

// ボタン（しない／する・待つ／待たないボタン）
#btn_type_a.FOCUS
	// ボタンの色を変える
	// \50〜は『しない（待つ）・する（待たない）』の状態が0/1で入っている
	// しない(0)の場合はIDを 0*5+2=2、する(1)の場合は 1*5+2=7 に設定しています。
	@ setid \(50+@)*5+2

	// ヘルプを表示
	img_help settbl 0 @+0	// IDテーブル0番を書き換え
	img_help setid 0		// IDを0に再設定しなおして
	img_help disp 1			// 表示

#btn_type_a.UNFOCUS
	// ボタンの色を元に戻す
	@ setid \(50+@)*5

	// ヘルプを消す
	img_help disp 0

#btn_type_a.PUSH_L
	// 設定状態(0/1)を入れ替える (0⇔1)
	\(50+@) = 1 - \(50+@)

	// ボタンの色を変更(FOCUSでやってることと同じ)
	@ setid \(50+@)*5+2

	// 『フォントを太字』又は『可変幅で表示』の場合はサンプル文字列をリセット
	if( @ == 4 || @ == 6 )	call RESETSTR

	// 『プロポーショナルフォントを使用する』の場合はシステムに現在の設定を渡す
	// （フォントリストにプロポーショナルの有無が適用されるようにする為）
	if( @ == 5 )	call SETCONF


// ボタン（フォント影ボタン（２種類））
#btn_type_b.FOCUS
	// ボタンの色を変える
	@ setid \(70+@)*2+1

	// ヘルプを表示
	img_help settbl 0 @+100
	img_help setid 0
	img_help disp 1

#btn_type_b.UNFOCUS
	// ボタンの色を元に戻す
	@ setid \(70+@)*2+0

	// ヘルプを消す
	img_help disp 0

#btn_type_b.PUSH_L
	// 設定状態(0/1)を入れ替える (0⇔1)
	\(70+@) = 1 - \(70+@)

	// ボタンの色を変更
	@ setid \(70+@)*2+1

	// サンプル文字列をリセット（影ON/OFFが適用されるようにする）
	call RESETSTR


// ボタン（演出速度変更ボタン）
#btn_type_c.FOCUS
	// 現在選択中の速度で無いならボタンの色を変える
	if( \80 != @ )	@ setid 2

	// ヘルプを表示
	img_help settbl 0 200
	img_help setid 0
	img_help disp 1

#btn_type_c.UNFOCUS
	// 現在選択中の速度で無いならボタンの色を戻す
	if( \80 != @ )	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_type_c.PUSH_L
	// ボタンが押される前に選択されていたボタンの色を戻す
	btn_type_c[\80] setid 0

	// 現在の演出スピード倍率を保持
	\80 = @

	// ボタンの色を変える
	@ setid 3


// 『オートモードの詳細』チェックボックス
#btn_auto.FOCUS
	// ボタンの色を変える
	@ setid 1

	// ヘルプを表示
	img_help settbl 0 900
	img_help setid 0
	img_help disp 1

#btn_auto.UNFOCUS
	// ボタンの色を元に戻す
	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_auto.PUSH_L
	// 設定状態(0/1)を入れ替える (0⇔1)
	\110 = 1 - \110
	if( \110 )
		// 『オートモードの詳細』がチェックされた場合
		// [Message Setting]ウィンドウをオートモード速度がグレーのものに変更
		img_frame[0] setid 1
		// チェック画像を表示
		img_auto_c disp 1
		// オートモード速度のゲージをグレーに変更して...
		gage[1] settbl 1 1
		// 無効化（動かないようにする）
		gage[1] enable 0
		// 詳細設定用の左右ボタンを有効化・表示
		btn_auto_ind enable 1
		btn_auto_ind disp 1
	else
		// 『オートモードの詳細』のチェックが外された場合
		// [Message Setting]ウィンドウをオートモード速度の通常色のものに戻す
		img_frame[0] setid 0
		// チェック画像を消す
		img_auto_c disp 0
		// オートモード速度のゲージを通常色に戻して...
		gage[1] settbl 1 0
		// 有効化（動くようにする）
		gage[1] enable 1
		// 詳細設定用の左右ボタンを無効化・非表示
		btn_auto_ind enable 0
		btn_auto_ind disp 0

		// オート速度（プリセット値）を再設定する
		//プリセットの基本待ち時間・１文字当たり時間を取得する為
		setconf \91 autospd
		// 基本待ち時間・１文字当たり時間を取得
		getconf 850 autospd_b	// 基本待ち時間
		\100 = $850
		getconf 850 autospd_c	// １文字当たり時間
		\101 = $850
	endif

	// オートモード詳細の各時間を再表示
	call SETINDNUM_ALL


// スライダーゲージ各種
#gage.SCRL_P
	// 現在のスライダー位置を$850に取得（$850は一時作業用変数）
	@ getpos 850

	// どのゲージが動かされたか
	if( @ == 0 )	// メッセージ速度
		// ゲージは左(0)⇔(10)右だけど、右に行くほど早い（小さい）としたいので
		// 左(10)⇔(0)右 となるように入れ替える
		\90 = 10-$850

		// サンプル文章をリセット
		str[0] clear
		str[0] layout frame \90		// スクロール速度を再設定
		str[0] str メッセージ速度のサンプルです。
		str[0] draw -1
	endif
	if( @ == 1 )	// オート速度
		// ゲージは左(0)⇔(10)右だけど、右に行くほど早い（小さい）としたいので
		// 左(10)⇔(0)右 となるように入れ替える
		\91 = 10-$850

		// オート速度（プリセット値）を再設定
		setconf \91 autospd
		// 基本待ち時間・１文字当たり時間を取得
		getconf 850 autospd_b	// 基本待ち時間
		\100 = $850
		getconf 850 autospd_c	// １文字当たり時間
		\101 = $850

		// オートモード詳細の各時間を再表示
		call SETINDNUM_ALL

		// サンプル文章をリセット
		str[1] clear
		str[1] str オートモードの速度のサンプルです。
		str[1] draw -1

		// 次の更新時間を再計算
		\201 = 8 * \101 * 60 / 100
		\201 += \100 * 60 / 10 + _FRAME_
	endif
	if( @ >= 2 )	// ウィンドウ不透明度・ボリューム系
		// 移動後の値を変数へ
		\(90+@) = $850
		
		// ウィンドウ不透明度の場合
		if( @ == 2 )
			// サンプル文字列下のウィンドウの透明度を変える
			img_wnd_sample blend 255*$850/100
		endif

		// BGMボリュームの場合
		if( @ == 4 )
			// もし『BGMボリューム』＜『音声再生時BGMボリューム』となる場合
			if( \94 < \97 )
				// 『音声再生時BGMボリューム』が『BGMボリューム』を超えないように
				// 『音声再生時BGMボリューム』を『BGMボリューム』と同じにする
				\97 = \94
				// 『音声再生時BGMボリューム』ゲージの位置を設定
				gage[7] pos \97
				// 『音声再生時BGMボリューム』の現在値の数値を更新
				\0 = 7
				call SETNUM
			endif
		endif

		// 音声再生時BGMボリュームの場合
		if( @ == 7 )
			// もし『BGMボリューム』＜『音声再生時BGMボリューム』となる場合
			if( \94 < \97 )
				// 『音声再生時BGMボリューム』が『BGMボリューム』を超えないように
				// 『BGMボリューム』を『音声再生時BGMボリューム』と同じにする
				\94 = \97
				// 『BGMボリューム』ゲージの位置を設定
				gage[4] pos \94
				// 『BGMボリューム』の現在値の数値を更新
				\0 = 4
				call SETNUM
			endif
		endif
		// 動かされたゲージの現在の値を表示
		\0 = @
		call SETNUM
	endif

	// システムに設定を適用（各種ボリュームがすぐに反映されるようにするため）
	call SETCONF

#gage.FOCUS
	// ヘルプを表示
	img_help settbl 0 @+300
	img_help setid 0
	img_help disp 1

	// ちなみにスライダーオブジェクトはカーソルが乗った時などの画像の変更を自動で行うので
	// setid等で変更する必要はありません。

#gage.UNFOCUS
	// ヘルプを消す
	img_help disp 0


// 『オートモードの詳細』左右ボタン
#btn_auto_ind.FOCUS
	// 画像を変える
	@ setid 2

	// ヘルプを表示
	if( @ == 0 || @ == 1 )		// 『基本待ち時間』の時
		img_help settbl 0 401
	else						// 『１文字当たり時間』の時
		img_help settbl 0 400
	endif
	img_help setid 0
	img_help disp 1

#btn_auto_ind.UNFOCUS
	// 画像を元に戻す
	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_auto_ind.PUSH_L
	// 押下時の画像に変更
	@ setid 3

	// 以下、押されたボタンによって処理を変える

	// 基本待ち時間
	if( @ == 0 )	// ＜
		if( \100 > 0 ) \100--
	endif
	if( @ == 1 )	// ＞
		if( \100 < 999 ) \100++
	endif

	// １文字当たり時間
	if( @ == 2 )	// ＜
		if( \101 > 0 ) \101--
	endif
	if( @ == 3 )	// ＞
		if( \101 < 999 ) \101++
	endif

	// 数値を設定・表示
	// 0/1なら0（基本待ち時間） 2/3なら1（１文字当たり時間）
	\0 = @ / 2
	call SETINDNUM

	// サンプル文字列（オート）をリセット
	str[1] clear
	str[1] str オートモードの速度のサンプルです。
	str[1] draw -1

	// 次の更新時間を再計算
	\201 = 8 * \101 * 60 / 100
	\201 += \100 * 60 / 10 + _FRAME_

#btn_auto_ind.RELEASE_L
	// ボタンが離された時はカーソルが乗った時の画像に変更
	@ setid 2


// デフォルトに戻すボタン
#btn_def.FOCUS
	// 画像を変える
	@ setid 2

	// ヘルプを表示
	img_help settbl 0 700
	img_help setid 0
	img_help disp 1

#btn_def.UNFOCUS
	// 画像を元に戻す
	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_def.PUSH_L
	// 押された時の画像に変更
	@ setid 3

	// リセット処理へ移行
	next CONF_DEF


// 前の画面に戻るボタン
#btn_ret.FOCUS
	// 画像を変える
	@ setid 2

	// ヘルプを表示
	img_help settbl 0 800
	img_help setid 0
	img_help disp 1

#btn_ret.UNFOCUS
	// 画像を元に戻す
	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_ret.PUSH_L
	// 押された時の画像に変更
	@ setid 3

	// 終了処理へ移行
	next EXIT


// 『使用するフォント』ボタン
#btn_font_p.FOCUS
	// 画像を変える
	@ setid 2

	// ヘルプを表示
	img_help settbl 0 600
	img_help setid 0
	img_help disp 1

#btn_font_p.UNFOCUS
	// 画像を元に戻す
	@ setid 0

	// ヘルプを消す
	img_help disp 0

#btn_font_p.PUSH_L
	// 押された時の画像に変更
	@ setid 3

	// フォント選択処理へ移行
	next SELFONT


////////////////////////////////////////
// 各種ボタン・ゲージを現在の状態に設定
#SETBUTTON
	// ボタン系
	btn_type_a[0] setid \50*5	// 既読メッセージの瞬間表示
	btn_type_a[1] setid \51*5	// 選択肢後のオート継続
	btn_type_a[2] setid \52*5	// 選択肢後のスキップ継続
	btn_type_a[3] setid \53*5	// オート時音声終了待ち
	btn_type_a[4] setid \54*5	// フォント太字
	btn_type_a[5] setid \55*5	// プロポーショナル
	btn_type_a[6] setid \56*5	// 可変幅
	btn_type_a[7] setid \57*5	// 演出瞬間表示
	btn_type_a[8] setid \58*5	// マウス自動移動
	btn_type_a[9] setid \59*5	// マウス自動消去
	btn_type_a[10] setid \60*5	// ドラマティックモード

	btn_type_b[0] setid \70*2	// 縁
	btn_type_b[1] setid \71*2	// 影

	btn_type_c setid 0			// 演出速度（全て通常状態にリセット）
	btn_type_c[\80] setid 3		// 選択されているボタンの色を変更

	// ゲージ系
	gage[0] pos 10-\90	// メッセージ速度
	gage[1] pos 10-\91	// オートモード速度
	gage[2] pos \92		// ウィンドウ透過率
	gage[3] pos \93		// マスターボリューム
	gage[4] pos \94		// BGMボリューム
	gage[5] pos \95		// SEボリューム
	gage[6] pos \96		// VOICEボリューム
	gage[7] pos \97		// BGM2ボリューム

	// オートモード詳細
	if( \110 )	// 詳細にチェックが入っている時
		img_frame[0] setid 1	// オートモード速度がグレーになったものを使用
		img_auto_c disp 1		// チェックマークを表示
		btn_auto_ind disp 1		// 詳細の左右ボタンを表示
	else		// 詳細にチェックが入っていない時
		img_frame[0] setid 0	// オートモード速度が通常色のものを使用
		img_auto_c disp 0		// チェックマークを消す
		btn_auto_ind disp 0		// 詳細の左右ボタンを消す
	endif

	// サンプル文字列下のウィンドウの不透明度を設定
	img_wnd_sample blend 255*\92/100

	// リセットボタンの色を通常色にしておく
	btn_def setid 0


////////////////////////////////////////
// 数値をまとめてセット（オート詳細系は除く）
#SETNUM_ALL
	\0 = 2	// ウィンドウ不透明度
	call SETNUM
	\0 = 3	// ボリューム − マスター
	call SETNUM
	\0 = 4	// ボリューム − BGM
	call SETNUM
	\0 = 5	// ボリューム − 効果音
	call SETNUM
	\0 = 6	// ボリューム − 音声
	call SETNUM
	\0 = 7	// ボリューム − 音声再生時のBGM
	call SETNUM


////////////////////////////////////////
// 数値を個別にセット  \0 = 設定する項目
#SETNUM
	// \2 = 設定する値
	\2 = \(90+\0)

	// \3 = img_numのインデックス
	// img_numは
	//   0〜2:ウィンドウ透明度
	//   3〜5:マスターボリューム
	//   ...
	//   15〜17:音声再生時BGMボリューム
	// と３つを１セットとしている（0:一の位 1:十の位 2:百の位）
	// \0-2 となっているのは、\0=0>オート基本待ち時間 \0=1>１文字当たり待ち時間
	// を省く為
	\3 = (\0-2)*3

	// 一旦全て非表示
	img_num[\3+0] disp 0
	img_num[\3+1] disp 0
	img_num[\3+2] disp 0

	if( \2 == 100 )
		// 値が 100 の場合は 100 に設定
		img_num[\3+2] settbl 0 1
		img_num[\3+1] settbl 0 0
		img_num[\3+0] settbl 0 0
		// ３桁全てを表示
		img_num[\3+0] disp 1
		img_num[\3+1] disp 1
		img_num[\3+2] disp 1
	else
		// 値が100未満の場合
		if( \2 >= 10 )
			// 10以上の場合
			img_num[\3+1] settbl 0 \2/10	// 十の位
			img_num[\3+0] settbl 0 \2%10	// 一の位
			// ２桁を表示（百の位は非表示）
			img_num[\3+0] disp 1
			img_num[\3+1] disp 1
		else
			// 一桁の場合
			img_num[\3+0] settbl 0 \2	// 一の位
			// 一桁目だけ表示
			img_num[\3+0] disp 1
		endif
	endif
	// settbl での変更を適用
	img_num[\3+0] setid 0
	img_num[\3+1] setid 0
	img_num[\3+2] setid 0


////////////////////////////////////////
// オート詳細の数値を全てセット
#SETINDNUM_ALL
	\0 = 0	// 基本待ち時間
	call SETINDNUM
	\0 = 1	// １文字当たり待ち時間
	call SETINDNUM


////////////////////////////////////////
// オート詳細の数値をセット \0=0>基本待ち時間 \0=1>一文字当たり待ち時間
#SETINDNUM
	// \2 = 現在の値
	\2 = \(100+\0)

	// インデックスを算出
	// SETNUMでのimg_numインデックスと同様、３桁１セット
	\3 = \0*3

	// もし現在値が1000を超えていたら999にする
	if( \2 >= 1000 )	\2 = 999

	// オートモードの詳細がチェックされているかどうかで使用する画像を変える
	if( \110 )
		// チェックされている場合は通常色の方(img_indnum_a)を表示する
		img_indnum_a[\3+0] disp 1
		img_indnum_a[\3+1] disp 1
		img_indnum_a[\3+2] disp 1
		img_indnum_b[\3+0] disp 0
		img_indnum_b[\3+1] disp 0
		img_indnum_b[\3+2] disp 0
	else
		// チェックされていない場合はグレー色(img_indnum_b)を表示する
		img_indnum_a[\3+0] disp 0
		img_indnum_a[\3+1] disp 0
		img_indnum_a[\3+2] disp 0
		img_indnum_b[\3+0] disp 1
		img_indnum_b[\3+1] disp 1
		img_indnum_b[\3+2] disp 1
	endif

	// 表示する数値を設定
	// 百の位
	img_indnum_a[\3+2] settbl 0 \2/100
	img_indnum_b[\3+2] settbl 0 \2/100
	// 十の位
	\2 %= 100
	img_indnum_a[\3+1] settbl 0 \2/10
	img_indnum_b[\3+1] settbl 0 \2/10
	// 一の位
	\2 %= 10
	img_indnum_a[\3+0] settbl 0 \2
	img_indnum_b[\3+0] settbl 0 \2

	// settblで書き換えた設定をsetidでIDを再設定することで適用する
	img_indnum_a[\3+0] setid 0
	img_indnum_a[\3+1] setid 0
	img_indnum_a[\3+2] setid 0
	img_indnum_b[\3+0] setid 0
	img_indnum_b[\3+1] setid 0
	img_indnum_b[\3+2] setid 0


////////////////////////////////////////
// ボタン有効
#ENABLE_ALL_BUTTON
	btn_type_a enable 1		// しない／する・待つ／待たないボタン
	btn_type_b enable 1		// フォント影・縁ボタン
	btn_type_c enable 1		// 演出速度変更ボタン
	gage enable 1			// 各種ゲージ
	btn_auto enable 1		// 『オートモードの詳細』チェックボックス

	if( \110 )	// オート詳細がチェックされている時
		gage[1] enable 0		// オートモードスピードゲージを無効化して...
		btn_auto_ind enable 1	// 詳細の左右ボタンを有効化
	else		// チェックされていない時
		btn_auto_ind enable 0	// 詳細の左右ボタンを無効化
	endif

	btn_def enable 1		// リセットボタン
	btn_ret enable 1		// 戻るボタン

	btn_font_p enable 1		// 使用フォントボタン
	btn_font_lb enable 0	// フォントリスト用ボタンは無効化
	font_scrl enable 0		// フォントリスト用スクリールバーも無効化


////////////////////////////////////////
// ボタン無効
#DISABLE_ALL_BUTTON
	btn_type_a enable 0
	btn_type_b enable 0
	btn_type_c enable 0
	gage enable 0
	btn_auto enable 0
	btn_auto_ind enable 0
	btn_def enable 0
	btn_ret enable 0
	btn_font_p enable 0
	btn_font_lb enable 0
	font_scrl enable 0


////////////////////////////////////////
// 環境設定取得
#GETCONF
	// ボタン系 A タイプ
	getconf 850 stillread	// 既読メッセージの瞬間表示
	\50 = $850
	getconf 850 contauto	// 選択肢後のオート継続
	\51 = $850
	getconf 850 contskip	// 選択肢後の既読スキップ継続
	\52 = $850
	getconf 850 waitpcm		// オート時の音声終了待ち
	\53 = $850
	getconf 850 fontweight	// フォント太字
	\54 = $850
	getconf 850 fontprop	// プロポーショナルフォントを使用するか
	\55 = $850
	getconf 850 fontfix		// 固定幅で表示するか（⇔可変幅で表示するか）
	\56 = (!$850)		// 1の時は固定幅なので0/1を入れ替える
	getconf 850 effcut		// 演出無効
	\57 = $850
	getconf 850 autocur		// カーソル自動移動
	\58 = $850
	getconf 850 autodel		// カーソルの自動消去
	\59 = $850
	getconf 850 dorama		// ドラマティックモード
	\60 = $850

	// ボタン系 B タイプ
	getconf 850 fshadow 1	// フォント影
	\70 = $850
	getconf 850 fshadow 0	// フォント縁
	\71 = $850

	// ボタン系 C タイプ
	getconf 850 effspd		// 演出速度
	\80 = $850

	// スライダーゲージタイプ
	getconf 850 messpd		// メッセージ速度
	\90 = $850
	getconf 850 autospd		// オート速度（プリセット値）
	\91 = $850
	getconf 850 wndcolor	// ウィンドウ不透明度
	\92 = $850 >> 24	// 24〜31ビット目に透明度が入っているのでシフトする
	getconf 850 vol_master	// ボリューム − マスター
	\93 = $850
	getconf 850 vol_bgm		// ボリューム − BGM
	\94 = $850
	getconf 850 vol_se		// ボリューム − 効果音
	\95 = $850
	getconf 850 vol_voice	// ボリューム − 音声
	\96 = $850
	getconf 850 vol_play	// ボリューム − 音声再生時BGM
	\97 = $850

	// オート詳細
	getconf 850 autospd_b	// 基本待ち時間
	\100 = $850
	getconf 850 autospd_c	// １文字当たり待ち時間
	\101 = $850

	// オートモード詳細のチェックの有無
	getconf 850 autoind
	\110 = $850

	// 現在のフォント
	// 作業用変数$850と同じ850ですが、こちらは文字列変数850です。
	getconf 850 font

	// フォントリストに表示するフォント数
	fontcom init		// フォント列挙を初期化して...
	fontcom count 850	// フォント数を取得
	\300 = $850


////////////////////////////////////////
// 環境設定セット
#SETCONF
	// 設定内容はGETCONFのコメントをご参照下さい

	// ボタン系 A タイプ
	setconf \50 stillread
	setconf \51 contauto
	setconf \52 contskip
	setconf \53 waitpcm
	setconf \54 fontweight
	setconf \55 fontprop
	setconf (!\56) fontfix
	setconf \57 effcut
	setconf \58 autocur
	setconf \59 autodel
	setconf \60 dorama

	// ボタン系 B タイプ
	setconf \70 fshadow 1
	setconf \71 fshadow 0

	// ボタン系 C タイプ
	setconf \80 effspd

	// スライダーゲージタイプ
	setconf \90 messpd
	setconf \91 autospd
	\200 = \92 << 24
	setconf \200 wndcolor
	setconf \93 vol_master
	setconf \94 vol_bgm
	setconf \95 vol_se
	setconf \96 vol_voice
	setconf \97 vol_play

	// オートモード詳細のチェックの有無
	setconf \110 autoind
	if( \110 )
		// チェックされているなら、詳細値を設定
		setconf \100 autospd_b
		setconf \101 autospd_c
	else
		// されていないなら、詳細値を取得し直す
		getconf 850 autospd_b
		\100 = $850
		getconf 850 autospd_c
		\101 = $850
	endif

	// 現在のフォント
	// 作業用変数$850と同じ850ですが、こちらは文字列変数850です。
	setconf 850 font


////////////////////////////////////////
// 環境設定初期化
#RESETCONF
	\50 = 1		// 既読メッセージの瞬間表示
	\51 = 0		// 選択肢後のオート継続
	\52 = 0		// 選択肢後の既読スキップ継続
	\53 = 1		// オート時の音声終了待ち
	\54 = 0		// フォント太字
	\55 = 1		// プロポーショナルフォントを使用するか
	\56 = 0		// 可変幅で表示するか
	\57 = 0		// 演出無効
	\58 = 1		// カーソル自動移動
	\59 = 1		// カーソルの自動消去
	\60 = 0		// ドラマティックモード

	\70 = 1		// フォント影
	\71 = 1		// フォント縁
	
	\80 = 0		// 演出速度
	
	\90 = 4		// メッセージ速度
	\91 = 4		// オート速度（プリセット値）
	\92 = 80	// ウィンドウ不透明度
	\93 = 100	// ボリューム − マスター
	\94 = 80	// ボリューム − BGM
	\95 = 90	// ボリューム − 効果音
	\96 = 100	// ボリューム − 音声
	\97 = 60	// ボリューム − 音声再生時BGM

	\110 = 0	// オートモード詳細のチェックの有無

	// 現在のフォント
	fontcom default 850		// デフォルトのフォントを取得
	call SETNOWFONT			// 表示更新

	// 設定をシステムに適用
	call SETCONF


////////////////////////////////////////
// サンプル文字列の表示設定
#STRLAYOUT
	str reset					// とりあえずresetでデフォルト状態にする
	str layout vdraw 1			// VRAMに描画するか
	str layout size 16			// フォントサイズ
	str layout margin 0 2 0 0	// 左上右下マージン
	str[0] layout frame \90		// 文字スクロールスピード
	str[1] layout frame 9


////////////////////////////////////////
// サンプル文字列の表示をリセット
#RESETSTR
	// 環境設定値を取得
	call SETCONF

	// 表示設定をリセット
	call STRLAYOUT

	// 表示文章を設定
	str[0] str メッセージ速度のサンプルです。
	str[1] str オートモードの速度のサンプルです。

	// 表示
	str draw -1
	str disp 1

	// オート速度の次回更新時間を計算
	\201 = 8 * \101 * 60 / 100
	\201 += \100 * 60 / 10 + _FRAME_


////////////////////////////////////////
// 『使用するフォント』の設定
#FONTINIT
	str_font_now reset						// まずはデフォルト設定
	str_font_now layout vdraw 1				// VRAMにびょうがするか
	str_font_now layout size 13				// フォントサイズ
	str_font_now layout margin 0 0 0 0		// マージン
	str_font_now layout frame 0				// スクロール速度(0はスクロールなし)
	str_font_now layout shadow 0 1			// 縁有り
	str_font_now layout move 2 0			// 文字間隔(横方向を少し広げる)
	str_font_now layout weight 400			// 文字の太さ(標準)
	str_font_now layout color 255 255 255 0 0 0 255 255 255	// 文字色


////////////////////////////////////////
// フォントリストの設定  設定内容はFONTINITと同じ
#FONTLISTINIT
	str_font_list reset
	str_font_list layout vdraw 1
	str_font_list layout size 13
	str_font_list layout margin 0 0 0 0
	str_font_list layout frame 0
	str_font_list layout shadow 0 1
	str_font_list layout move 2 0
	str_font_list layout weight 400
	str_font_list layout color 255 255 255 0 0 0 255 255 255


////////////////////////////////////////
// 『使用するフォント』の文章（フォント名）を描画
#SETNOWFONT
	str_font_now clear					// 消す
	str_font_now layout font $str850	// 使用するフォントを設定
	str_font_now str $str850			// フォント名を文字列として設定
	str_font_now disp 1					// 表示
	str_font_now draw -1				// 描画



////////////////////////////////////////
// リセット確認フロー
#CONF_DEF
	// 全てのボタンを無効化
	call DISABLE_ALL_BUTTON

	// 念のため子タスク(kcs/fes)を終了
	endkcs
	endfes
	wait 1

	// 確認ダイアログ(conf)を実行
	$860 = 2
	execfes conf
	next CONFIRM_WAIT

// 確認ダイアログ終了待ち
#CONFIRM_WAIT
	if( _EXITCODE_ != -1 )
		// 終了コード(_EXITCODE_)が-1以外の時は終了
		\0 = _EXITCODE_		// 終了コードを保存
		next CONFIRM_END	// リセット処理へ移行
	endif

// リセット処理
#CONFIRM_END
	// 念のため子タスク(確認ダイアログ)を終了
	endfes
	wait

	// 『はい』が選ばれた場合はリセット処理を行う
	if( \0 )
		// 設定をリセット
		call RESETCONF

		// 各種ボタン表示を現在の状態に変更
		call SETBUTTON

		// 各種数値を現在の状態に変更
		call SETNUM_ALL		// ウィンドウ不透明度・ボリューム系
		call SETINDNUM_ALL	// オート速度詳細系

		// サンプル文字列の表示をリセット
		call STRLAYOUT
		str[0] str メッセージ速度のサンプルです。
		str[1] str オートモードの速度のサンプルです。
		str disp 1
		str draw -1

		// オート用サンプル文字列の次回更新時間を再計算
		\201 = 8 * \101 * 60 / 100
		\201 += \100 * 60 / 10 + _FRAME_
	endif

	// リセットボタンの押下状態を元に戻す
	btn_def setid 0

	// ボタン有効化
	call ENABLE_ALL_BUTTON

	// 入力待ちへ移行
	next WAIT



////////////////////////////////////////
// フォント選択フロー
#SELFONT
	// 全てのボタンを無効化
	call DISABLE_ALL_BUTTON
	wait 1

	// フォント名を表示するSTRINGオブジェクトの表示方法を設定
	call FONTLISTINIT

	// フォント列挙コマンドを初期化
	fontcom init

	// フォント数を取得
	fontcom count 850
	\300 = $850		// \300 はリストアップするフォント数

	// 現在選択されているフォントが何番目か取得
	fontcom search 850 $str850
	\10 = $850		// \10 はリストの何番目かが入る

	if( \10 < 0 )
		// \10 が負の値の時はリストにはない
		// プロポーショナルフォントが選択されている時にプロポーショナル無効にした場合など
		// が該当する
	
		// デフォルトフォントを取得
		fontcom default 850

		// もう一度リスト内の番号を取得
		fontcom search 850 $str850
		\10 = $850

		// リスト内に無い場合は、リストの先頭にあるフォントを現在選択中のフォントとする
		if( \10 < 0 )	\10 = 0
	endif

	// ここまでで \10 にはリストを開いた時に最初にカーソルが合っている番号が入っている
	// 次からの処理ではこれをリストの先頭になるように調整する

	// リストをスクロールさせた時、スクロールバーが一番下に移動した時の範囲内にある場合は
	// １ページ分(この場合は21)減算
	// これはスクロールバーが一番下に移動した時の先頭インデックス
	if( \10 >= \300-21 )	\10 = \300-21

	// \10がマイナス（リストが１ページでおまる）の場合はリストの先頭から表示するようにする
	if( \10 < 0 )	\10 = 0

	// スクロールバーの範囲設定
	// 全項目数 = \300  １ページあたり = 21項目
	font_scrl page 0 \300 21

	// 各種表示
	ing_font_wnd disp 1		// リストウィンドウ
	font_scrl disp 1		// スクロールバー

	// ボタン有効化
	font_scrl enable 1		// スクロールバー
	btn_font_lb enable 1	// リスト項目ボタン

	// 
//	wait 1

	// スクロールバーの位置を設定
	font_scrl pos \10

	// リストに表示するフォント名をクリア
	str_font_list clear

	// フォント名列挙ループへ
	\0 = 0	// ループカウント
	next SELFONTLIST


// フォント名列挙
#SELFONTLIST
	// 最大値を超えている場合は処理しない（最大値以下なら処理）
	// \10 = 表示されるフォント名の先頭インデックス
	// \0  = ループカウンタ
	if( \300 > \10+\0 )
		// フォント名を文字列変数851以降に取得
		fontcom get \10+\0 851+\0
		// 作業用文字列変数へセット
		// これは後の $str を使用できるようにする為（$str(851+\0)とは書けないので）
		strvar get 849 851+\0
		// フォントをセット
		str_font_list[\0] layout font $str849
		// フォント名をセット
		str_font_list[\0] apend $str849
		// 表示
		str_font_list[\0] disp 1
	else
		// 空欄にするために非表示にする
		str_font_list[\0] disp 0
	endif

	\0++
	if( \0 < 21 )	next SELFONTLIST
	// リストの項目数(今回の場合は21)分処理したらループを抜ける
	next SELFONTLIST2


// フォント名列挙終了
#SELFONTLIST2
	// フォント名を描画
	str_font_list draw -1
	wait 1
	// 入力待ち処理へ
	next SELFONT_WAIT


// フォント選択待ちループ
#SELFONT_WAIT
	// 右クリックされたら選択終了
	if( _CLICK_R_ != 0 )	next SELFONT_EXIT

	// ボタン以外(-1)が左クリックされたら終了
	if( _CLICK_L_ == -1 )	next SELFONT_EXIT

	// マウスホイール・PageUp/Down 処理

	// ホイール↑/PageUp
	if( _SCRL_U_!=0 || _PAGE_U_!=0 )
		if( \10 > 0 )	// 先頭で無ければ処理
			\10 -= 1			// １項目分戻す
			font_scrl pos \10	// スクロールバー位置を設定
			str_font_list clear	// リストのフォント名を全てクリア
			// フォント名を再度リストアップ
			\0 = 0
			next SELFONTLIST
		endif
	endif

	// ホイール↓/PageDown
	//   基本的にはホイール↑/PageUpの時と同じです
	if( _SCRL_D_!=0 || _PAGE_D_!=0 )
		if( \10 < \300-21 )	// 一番下で無ければ処理
			\10 += 1			// １項目分進む
			// 以下略
			font_scrl pos \10
			str_font_list clear
			\0 = 0
			next SELFONTLIST
		endif
	endif

	// サンプル文字列の更新処理
	// #WAITで行っている事と同じですので、コメントは省略します。
	if( \90 > 0 )
		str[0] isdraw
		if( !\0 )
			str[0] clear
			str[0] str メッセージ速度のサンプルです。
			str[0] draw -1
		endif
	endif
	str[1] isdraw
	if( !\0 )
		if( \201 <= _FRAME_ )
			str[1] clear
			str[1] str オートモードの速度のサンプルです。
			str[1] draw -1
			\201 = 8 * \101 * 60 / 100
			\201 += \100 * 60 / 10 + _FRAME_
		endif
	endif


// リストからフォントが選択された時の処理
#SELFONT_DECIDE
	// 『使用するフォント』を更新
	call SETNOWFONT
	// サンプル文字列をリセット
	call RESETSTR
	// サンプル文字列のフォントを変更
	str layout font $str850
	// 選択終了処理へ
	next SELFONT_EXIT


// フォント選択終了処理
#SELFONT_EXIT
	// フォント選択関連のパーツを非表示にする
	ing_font_wnd disp 0		// 選択ウィンドウ
	font_scrl disp 0		// スクロールバー
	str_font_list disp 0	// リスト項目
	wait 1
	// 『使用するフォント』ボタンの色を押下状態から通常へ戻す
	btn_font_p setid 0
	// 各種ボタンを有効化
	call ENABLE_ALL_BUTTON
	// メインループへ
	next WAIT


// フォントリストのスクロールバーが動いた時の処理
#font_scrl.SCRL_P
	// 現在位置を取得
	font_scrl getpos 850
	\10 = $850	// \10はリストの先頭インデックス

	// リスト項目（フォント名）をクリア
	str_font_list clear

	// リストアップループへ
	\0 = 0		// ループカウンタ
	next SELFONTLIST


// フォント選択リストの項目ボタン
#btn_font_lb.FOCUS
	if( \10+@ < \300 )	// 最大値以内（空でない場合）
		// 色をフォーカス用の色に変える
		str_font_list[@] layout color 255 74 74 0 0 0 255 255 255
	endif

#btn_font_lb.UNFOCUS
	if( \10+@ < \300 )	// 最大値以内（空でない場合）
		// 色を通常用の色に変える
		str_font_list[@] layout color 255 255 255 0 0 0 255 255 255
	endif

#btn_font_lb.PUSH_L
	if( \10+@ < \300 )	// 最大値以内（空でない場合）
		// 押された（選択された）フォント名を取得
		strvar get 850 851+@
		// スクロールバー・リスト項目ボタンを無効化
		font_scrl enable 0
		btn_font_lb enable 0
		// フォント選択処理へ
		next SELFONT_DECIDE
	endif


