/*
	画面スクリプトサンプル
	タイトル画面
*/

// 他スクリプトファイルを挿入
#INCLUDE
	motion.h	// モーションの定義


// 予めメモリにロードしておくイメージファイル
#PRELOAD
	sys_title


// オブジェクト作成
#DEFINE
	CPLANE	topmask		// 画面全体を覆う単色プレーン

	PLANE	pl_bg		// 背景用プレーン
	CIMAGE	img_white	// 白画像
	IMAGE	img_bg		// 背景画像

	PLANE	pl_logo		// ロゴ用プレーン
	IMAGE	img_logo	// CS2ロゴ

	PLANE	pl_btn		// ボタン用プレーン
	BUTTON	btn1[5]		// ボタン1（はじめから・つづきから・チュートリアル・おまけ。終了）
	BUTTON	btn2[3]		// ボタン2（シーンスクリプト・画面スクリプト・戻る）
	BUTTON	btn3[4]		// ボタン3（ＣＧモード・シーン回想・音楽モード・戻る）


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

// 単色プレーン
#OBJECT	COLOR		SIZE	DISP	PRI
topmask	0xffffffff	800,600	0		50000

// 背景
#OBJECT	SIZE	VRAM	PRI		DISP
pl_bg	800,600	0,0		5000	0

#OBJECT		SIZE	COLOR		PL		DISP	PRI
img_white	800,600	0xffffffff	pl_bg	1		10

#OBJECT	FILE		ID.0	PL		DISP	PRI
img_bg	sys_title	1		pl_bg	0		11


// ロゴ
#OBJECT	SIZE	VRAM	PRI		DISP
pl_logo	800,600	1024,0	6000	0

#OBJECT		FILE		ID.0	PL		DISP	PRI
img_logo	sys_title	10		pl_logo	1		20


// ボタン
#OBJECT	SIZE	VRAM	PRI		DISP
pl_btn	800,600	0,682	7000	0

#OBJECT	FILE		ID.0	ID.1	ID.2	ID.3	PRI		ENABLE	DISP
btn1[0]	sys_title	100		110		120		130		100		0		0
btn1[1]	sys_title	101		111		121		131		101		0		0
btn1[2]	sys_title	102		112		122		132		102		0		0
btn1[3]	sys_title	103		113		123		133		103		0		0
btn1[4]	sys_title	104		114		124		134		104		0		0

btn2[0]	sys_title	200		210		220		230		110		0		0
btn2[1]	sys_title	201		211		221		231		111		0		0
btn2[2]	sys_title	202		212		222		232		112		0		0

btn3[0]	sys_title	300		310		320		330		120		0		0
btn3[1]	sys_title	301		311		321		331		121		0		0
btn3[2]	sys_title	302		312		322		332		122		0		0
btn3[3]	sys_title	303		313		323		333		123		0		0



// キーボード・ジョイパッド入力設定
#KEYBLOCK	3	//(w,h)	上,下,左,右
0				1,5		-1,-1,-1,-1
1				1,4		-1,-1,-1,-1
2				1,3		-1,-1,-1,-1

#OBJECT		KEYBLOCK	// (block,x,y)
btn1[0]		0,0,0
btn1[1]		0,0,1
btn1[2]		0,0,2
btn1[3]		0,0,3
btn1[4]		0,0,4

btn2[0]		1,0,0
btn2[1]		1,0,1
btn2[2]		1,0,2

btn3[0]		2,0,0
btn3[1]		2,0,1
btn3[2]		2,0,2
btn3[3]		2,0,3



////////////////////////////////////
// ここから開始
#START
	// キー入力による演出スキップをOFF
	keyskip 0
	wait 1

	// 白をフェードイン
	pl_bg disp 1
	pl_bg fade 30 0 255
	wait

	// $540が0以外なら表示演出をスキップ
	// 主にロード画面などから戻ってきた時用
	if( $540 != 0 )	next IN2
	next IN


/////////////////////////////
// 演出あり
#IN
	// タイトルロゴ
	pl_logo disp 1			// 画像表示
	pl_logo pos @ @+120		// 初期位置を下に120pix下げておく(画面中央)
	pl_logo fade 30 0 255	// フェードイン
	wait

	// 背景をワイプで表示
	img_bg disp 1			// 背景画像表示
	img_white disp 0		// 白画像は消す
	pl_bg wipe 40 sys_title_wipe	// ワイプ実行
	wait

	// タイトルロゴを上に移動
	pl_logo arc 30 270 90 0 60
	wait

	// カーソル自動移動
	automove btn1[0]

	// ボタンの設定に進む
	next SETBTN00


/////////////////////////////
// 演出無し
#IN2
	// 白プレーンを表示して、その下の画像を覆い隠す
	topmask disp 1

	// 背景を表示
	img_bg disp 1		// 背景を表示して
	img_white disp 0	// 白画像は消す

	// ロゴ表示
	pl_logo disp 1

	wait

	// 覆っていた白プレーンをフェードアウト（隠されていた画像がフェードインする）
	topmask fade 30 255 0
	wait

	// ボタンの設定に進む
	if( $541 == 1 )	next SETBTN01	// チュートリアルを開く場合
	if( $541 == 2 )	next SETBTN02	// おまけを開く場合
	next SETBTN00


/////////////////////////////
// ボタンの設定（通常）
#SETBTN00
	// カーソルがボタン以外の場所にあった時に矢印キーが押された場合の
	// 移動先ボタンの設定
	btn1[0] noact 0		// 『はじめから』ボタンに移動

	// 通常セーブデータの最新を検索
	newsave 850 0 999

	// クイックセーブデータの最新を検索
	newsave 851 5000 5010

	if( $850 == -1 && $851 == -1 )
		// 最新のセーブデータが無い場合 ＝ セーブデータが無い
		btn1[1] setid 3		// 『つづきから』をグレー表示にする
	endif

	// ボタン表示用プレーンを表示
	pl_btn disp 1

	// ボタンを順番にフェードイン
	btn1[0] disp 1
	btn1[0] fade 8 0 255
	wait 4
	btn1[1] disp 1
	btn1[1] fade 8 0 255
	wait 4
	btn1[2] disp 1
	btn1[2] fade 8 0 255
	wait 4
	if( $760 )	// おまけが開放されている時だけ表示
		btn1[3] disp 1
		btn1[3] fade 8 0 255
		wait 4
	endif
	btn1[4] disp 1
	btn1[4] fade 8 0 255
	wait

	// とりあえず全てのボタンを有効化
	btn1 enable 1

	// 『つづきから』ボタンが無効の場合は、そのボタンだけ無効化
	if( $850 == -1 && $851 == -1 )	btn1[1] enable 0

	// おまけが開放されていない場合は、そのボタンを無効化
	if( $760 == 0 )	btn1[3] enable 0

	// カーソル自動移動
	automove btn1[0]	// 『はじめから』ボタンに移動

	// 現在のボタンモードを『通常』に設定
	$541 = 0

	// 他画面からの切り替え時に黒画面にならないように敷いていたベースイメージを
	// リセット（消す）
	baseimg

	// 入力待ちへ移動
	next WAIT


/////////////////////////////
// ボタンの設定（チュートリアル）
#SETBTN01
	btn2[0] noact 1		// キー入力時の初期ボタンを『シーンスクリプト』に設定

	// ボタン表示用プレーンを表示
	pl_btn disp 1

	// ボタンを順番にフェードイン
	btn2[0] disp 1
	btn2[0] fade 8 0 255
	wait 4
	btn2[1] disp 1
	btn2[1] fade 8 0 255
	wait 4
	btn2[2] disp 1
	btn2[2] fade 8 0 255
	wait 4

	// ボタンを有効化
	btn2 enable 1

	// 現在のボタンモードを『チュートリアル』に設定
	$541 = 1

	// 入力待ちへ移動
	next WAIT


/////////////////////////////
// ボタンの設定（おまけ）
#SETBTN02
	btn3[0] noact 1		// キー入力時の初期ボタンを『ＣＧモード』に設定

	// ボタン表示用プレーンを表示
	pl_btn disp 1

	// ボタンを順番にフェードイン
	btn3[0] disp 1
	btn3[0] fade 8 0 255
	wait 4
	btn3[1] disp 1
	btn3[1] fade 8 0 255
	wait 4
	btn3[2] disp 1
	btn3[2] fade 8 0 255
	wait 4
	btn3[3] disp 1
	btn3[3] fade 8 0 255
	wait 4

	// ボタンを有効化
	btn3 enable 1

	// 現在のボタンモードを『おまけ』に設定
	$541 = 2

	// 入力待ちへ移動
	next WAIT


/////////////////////////////
// ボタンを消す処理
#OUTBTN
	// 全てのボタンを無効化
	btn1 enable 0
	btn2 enable 0
	btn3 enable 0

	// ボタンを順番にフェードで消す
	if( $541 == 0 )
		// 通常の時
		btn1[0] fade 8 255 0
		wait 4
		btn1[1] fade 8 255 0
		wait 4
		btn1[2] fade 8 255 0
		wait 4
		btn1[3] fade 8 255 0
		wait 4
		btn1[4] fade 8 255 0
	endif
	if( $541 == 1 )
		// チュートリアルの時
		btn2[0] fade 8 255 0
		wait 4
		btn2[1] fade 8 255 0
		wait 4
		btn2[2] fade 8 255 0
	endif
	if( $541 == 2 )
		// おまけの時
		btn3[0] fade 8 255 0
		wait 4
		btn3[1] fade 8 255 0
		wait 4
		btn3[2] fade 8 255 0
		wait 4
		btn3[3] fade 8 255 0
	endif

	// 消し演出終了待ち
	wait

	// ボタン色をリセット
	btn1 setid 0
	btn2 setid 0
	btn3 setid 0


/////////////////////////////
// ユーザー入力待ち
#WAIT
	// 右クリックされた時の処理
	if( _CLICK_R_ != 0 )
		if( $541 == 1 || $541 == 2 )	// 『チュートリアル』又は『おまけ』の時だけ処理
			next RETURN		// 通常選択に戻る
		endif
	endif


/////////////////////////////
// ボタンを全て無効化
#DISABLE_BUTTON
	btn1 enable 0
	btn2 enable 0
	btn3 enable 0


/////////////////////////////
// タイトル画面終了時のフェードアウト
#FADEOUT
	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画像（プレーン）を全て非表示
	pl_bg disp 0
	pl_logo disp 0
	pl_btn disp 0
	wait

	// 白消し
	topmask fade 30 255 0
	wait



/////////////////////////////
// 『はじめから』が選択された時
#GO_STORY
	strvar 200 start	// 実行するシーンスクリプト名を設定

	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画像（プレーン）を全て非表示
	pl_bg disp 0
	pl_logo disp 0
	pl_btn disp 0
	wait

	// 白消し
	topmask fade 30 255 0
	wait

	// タイトル画面終了
	exit 0
	next SLEEP	// 終了後は空ループに移動


/////////////////////////////
// 『つづきから』が選択された時
#GO_LOAD
	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画面切り替え時に画面が黒くなるのを防ぐため、ベースイメージを設定
	baseimg img_white
	wait

	// タイトル画面終了
	exit 1
	next SLEEP	// 終了後は空ループに移動


/////////////////////////////
// 『チュートリアル』が選択された時
#TUTORIAL
	call OUTBTN		// ボタンを消す
	next SETBTN01	// チュートリアル選択ボタンを表示する処理へ移行


/////////////////////////////
// 『おまけ』が選択された時
#OMAKE
	call OUTBTN		// ボタンを消す
	next SETBTN02	// おまけ選択ボタンを表示する処理へ移行


/////////////////////////////
// 『終了』が選択された時
#CHECK_QUIT
	$860 = 0	// 確認ダイアログメッセージＩＤ

	execfes conf	// 終了確認ダイアログを表示
	next CHECK_QUIT_WAIT	// 確認待ちへ移行


/////////////////////////////
// 終了確認待ち
#CHECK_QUIT_WAIT
	if( _EXITCODE_ == 1 )
		// 『はい』が選択された時
		endfes	// とりあえず確認ダイアログスクリプトを終了
		wait

		// すべてのボタンを無効化
		call DISABLE_BUTTON

		// 白で覆う
		topmask disp 1
		topmask fade 30 0 255
		wait

		// 画像（プレーン）を全て非表示
		pl_bg disp 0
		pl_logo disp 0
		pl_btn disp 0
		wait

		// 白消し
		topmask fade 30 255 0
		wait

		// タイトル画面終了
		exit 100
		next SLEEP
	endif
	if( _EXITCODE_ == 0 )
		// 『いいえ』が選択された時
		endfes	// とりあえず確認ダイアログスクリプトを終了
		wait

		// ボタンの再アクティブ化
		// ダイアログが閉じた後、どれかのボタンの上にカーソルが乗っていたら
		// そのボタンにフォーカスがいくようにする
		resetactive

		next WAIT		// 「いいえ」の場合は通常処理に戻す
	endif


/////////////////////////////
// ＣＧモードが選択された時の処理
#GO_EX_CG
	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画面切り替え時に画面が黒くなるのを防ぐため、ベースイメージを設定
	baseimg img_white
	wait

	// タイトル画面終了
	exit 20
	next SLEEP


/////////////////////////////
// シーン回想モードが選択された時の処理
#GO_EX_SCN
	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画面切り替え時に画面が黒くなるのを防ぐため、ベースイメージを設定
	baseimg img_white
	wait

	// タイトル画面終了
	exit 21
	next SLEEP


/////////////////////////////
// 音楽モードが選択された時の処理
#GO_EX_MUS
	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画面切り替え時に画面が黒くなるのを防ぐため、ベースイメージを設定
	baseimg img_white
	wait

	// タイトル画面終了
	exit 22
	next SLEEP


/////////////////////////////
// 戻るが選択された時の処理
#RETURN
	call OUTBTN		// ボタンを消す
	next SETBTN00	// 通常選択に戻る



/////////////////////////////
// シーンスクリプトが選択された時の処理
#GO_TU_SCENE
	strvar 200 00_sample_select		// 実行するシーンスクリプト名をセット

	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画像（プレーン）を全て非表示
	pl_bg disp 0
	pl_logo disp 0
	pl_btn disp 0
	wait

	// 白消し
	topmask fade 30 255 0
	wait

	// タイトル画面終了
	exit 10
	next SLEEP


/////////////////////////////
// 画面スクリプトが選択された時の処理
#GO_TU_FES
	strvar 200 fes_start		// 実行するシーンスクリプト名をセット

	// すべてのボタンを無効化
	call DISABLE_BUTTON

	// 白で覆う
	topmask disp 1
	topmask fade 30 0 255
	wait

	// 画像（プレーン）を全て非表示
	pl_bg disp 0
	pl_logo disp 0
	pl_btn disp 0
	wait

	// 白消し
	topmask fade 30 255 0
	wait

	// タイトル画面終了
	exit 10
	next SLEEP


/////////////////////////////
// btn1（通常ボタン）イベントハンドラ
#btn1.FOCUS		// カーソルが乗った
	@ setid 1	// ボタン色をフォーカス状態にする

#btn1.UNFOCUS	// カーソルが離れた
	@ setid 0	// ボタン色を通常状態に戻す

#btn1.PUSH_L	// 決定された
	@ setid 2	// ボタン色を押下状態にする

	if( @ == 0 )	next GO_STORY	// はじめから
	if( @ == 1 )	next GO_LOAD	// つづきから
	if( @ == 2 )	next TUTORIAL	// チュートリアル
	if( @ == 3 )	next OMAKE		// おまけ
	if( @ == 4 )	next CHECK_QUIT	// 終了


/////////////////////////////
// btn2（チュートリアルボタン）イベントハンドラ
#btn2.FOCUS		// カーソルが乗った
	@ setid 1	// ボタン色をフォーカス状態にする

#btn2.UNFOCUS	// カーソルが離れた
	@ setid 0	// ボタン色を通常状態に戻す

#btn2.PUSH_L	// 決定された
	@ setid 2	// ボタン色を押下状態にする

	if( @ == 0 )	next GO_TU_SCENE	// シーンスクリプト
	if( @ == 1 )	next GO_TU_FES		// 画面スクリプト
	if( @ == 2 )	next RETURN			// 戻る


/////////////////////////////
// btn3（おまけボタン）イベントハンドラ
#btn3.FOCUS		// カーソルが乗った
	@ setid 1	// ボタン色をフォーカス状態にする

#btn3.UNFOCUS	// カーソルが離れた
	@ setid 0	// ボタン色を通常状態に戻す

#btn3.PUSH_L	// 決定された
	@ setid 2	// ボタン色を押下状態にする

	if( @ == 0 )	next GO_EX_CG	// ＣＧモード
	if( @ == 1 )	next GO_EX_SCN	// シーン回想
	if( @ == 2 )	next GO_EX_MUS	// 音楽モード
	if( @ == 3 )	next RETURN		// 戻る



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