/*
	ʃXNvgTv
	MUSIC[h
*/

#INCLUDE
	motion.h


///////////////////////////////////////
// ǂ݃t@C` (C[Ŵ)
#PRELOAD
	sys_musicmode	// C摜


///////////////////////////////////////
// IuWFNg쐬
#DEFINE
	CPLANE		topmask			// zCgIN/OUTp̐^v[
	CIMAGE		bg_white		// ʂƂ̐؂ւ̍ۂɔʂŌq߂̔摜

	PLANE		pl				// \pv[

	IMAGE		img_bg			// wi摜

	BUTTON		btn_track[12]	// gbNXg{^

	BUTTON		btn_ctrl[4]		// Rg[pl{^
	BUTTON		btn_repeat		// s[g{^
	BUTTON		btn_all_repeat	// I[s[g{^
	BUTTON		btn_shuffle		// Vbt{^

	IMAGE		img_ctrl_track	// Rg[pl̍ĐgbN

	BUTTON		btn_sys[5]		// VXen{^
	IMAGE		img_help		// wv͉摜

	SNDTABLE	bgm				// TEhe[u

	SLIDER		vol				// {[XC_[



///////////////////////////////////////
// IuWFNg

// ^v[
#OBJECT		COLOR		PRI		SIZE	DISP
topmask		0xffffffff	20000	800,600	1

// ^摜
#OBJECT		COLOR		PRI		SIZE	DISP	PL
bg_white	0xffffffff	1000	800,600	0		pl

// \pv[
#OBJECT	SIZE	VRAM	PRI		DISP
pl		800,600	0,0		5000	0

// wi
#OBJECT		FILE			ID.0	PRI	DISP
img_bg		sys_musicmode	0		10	1

// gbNXg{^
#OBJECT		FILE			PRI	DISP	PL	ENABLE
btn_track	sys_musictrack	200	1		pl	0

#OBJECT			POS2				ID.0	ID.1	ID.2	ID.3
btn_track[0]	sys_musicmode:1000	0		100		200		300
btn_track[1]	sys_musicmode:1001	1		101		201		301
btn_track[2]	sys_musicmode:1002	2		102		202		302
btn_track[3]	sys_musicmode:1003	3		103		203		303
btn_track[4]	sys_musicmode:1004	4		104		204		304
btn_track[5]	sys_musicmode:1005	5		105		205		305
btn_track[6]	sys_musicmode:1006	6		106		206		306
btn_track[7]	sys_musicmode:1007	7		107		207		307
btn_track[8]	sys_musicmode:1008	8		108		208		308
btn_track[9]	sys_musicmode:1009	9		109		209		309
btn_track[10]	sys_musicmode:1010	10		110		210		310
btn_track[11]	sys_musicmode:1011	11		111		211		311

// Rg[pl{^
#OBJECT			FILE			PRI	PL	ENABLE	DISP
btn_ctrl		sys_musicmode	300	pl	0		1
btn_repeat		sys_musicmode	310	pl	0		1
btn_all_repeat	sys_musicmode	320	pl	0		1
btn_shuffle		sys_musicmode	330	pl	0		1

#OBJECT			ID.0	ID.1	ID.2	ID.3
btn_ctrl[0]		610		611		612		613		// O
btn_ctrl[1]		620		621		622		623		// ~
btn_ctrl[2]		630		631		632		633		// Đ
btn_ctrl[3]		640		641		642		643		// 
btn_repeat		650		651		652		653		// s[g
btn_all_repeat	660		661		662		663		// I[s[g
btn_shuffle		670		671		672		673		// Vbt

// Rg[pl̍ĐgbN
#OBJECT			FILE			POS2				PRI	DISP	PL
img_ctrl_track	sys_musictrack	sys_musicmode:600	400	0		pl


// VXen{^
#OBJECT	FILE			PRI	PL	ENABLE	DISP
btn_sys	sys_musicmode	50	pl	0		1

#OBJECT		ID.0	ID.1	ID.2	ID.3
btn_sys[0]	100		200		300		400
btn_sys[1]	101		201		301		401
btn_sys[2]	102		202		302		402
btn_sys[3]	103		203		303		403
btn_sys[4]	104		204		304		404

// wv͉摜
#OBJECT		FILE			ID.0	PRI	PL	DISP
img_help	sys_musicmode	510		100	pl	0


#OBJECT		GROUP	STYPE	SIZE	TYPE
bgm			bgm		0		12		1

#OBJECT		FILE			POS2				PRI
vol			sys_ex_slider	sys_musicmode:601	70



// L[{[hEWCpbh͐ݒ
#KEYBLOCK	5	//(w,h)	,,,E
0				4,1		-1,1,-1,2
1				1,3		0,3,-1,2
2				2,6		-1,3,0,-1
3				4,1		1,-1,-1,4
4				1,1		2,-1,3,-1

#OBJECT			KEYBLOCK	// (block,x,y)
btn_ctrl[0]		0,0,0		// Rg[pl{^
btn_ctrl[1]		0,1,0
btn_ctrl[2]		0,2,0
btn_ctrl[3]		0,3,0

btn_repeat		1,0,0		// s[g{^
btn_all_repeat	1,0,1		// I[s[g{^
btn_shuffle		1,0,2		// Vbt{^

btn_track[0]	2,0,0		// gbNXg{^
btn_track[1]	2,0,1
btn_track[2]	2,0,2
btn_track[3]	2,0,3
btn_track[4]	2,0,4
btn_track[5]	2,0,5

btn_track[6]	2,1,0
btn_track[7]	2,1,1
btn_track[8]	2,1,2
btn_track[9]	2,1,3
btn_track[10]	2,1,4
btn_track[11]	2,1,5

btn_sys[0]		3,0,0
btn_sys[1]		3,1,0
btn_sys[2]		3,2,0
btn_sys[3]		3,3,0

btn_sys[4]		4,0,0


////////////////////////////////
// XNvgX^[g
#START
	////////////////////////////////
	// eݒ
	////////////////////////////////

	// TEhe[uݒ
	bgm sndtbl 00 bgm01 1
	bgm sndtbl 01 bgm01 1
	bgm sndtbl 02 bgm01 1
	bgm sndtbl 03 bgm01 1
	bgm sndtbl 04 bgm01 1
	bgm sndtbl 05 bgm01 1
	bgm sndtbl 06 bgm01 1
	bgm sndtbl 07 bgm01 1
	bgm sndtbl 08 bgm01 1
	bgm sndtbl 09 bgm01 1
	bgm sndtbl 10 bgm01 1
	bgm sndtbl 11 bgm01 1

	// I𒆂̃gbNNo
	\200 = 0			// l0(Track_01)
	bgm setid \200		// ݂̃gbNNoe[uɐݒ

	// {[l擾
	config 850 vol_bgm
	\400 = $850			// \400 = {[l

	// {[XC_[ݒ
	vol page 0 100		// {[l0`100
	vol pos \400		// ݂̈ʒuݒ
	vol disp 1			// XC_[\

	// wMUSIC[hx{^̕\Ԃɂ
	btn_sys[2] setid 3

	// J[\{^ȊȌꏊɂɖL[ꂽꍇ
	// ړ{^̐ݒ
	btn_track[0] noact

	// L[͂ɂ鉉oXLbvOFF
	keyskip off
	wait

	// \
	next DISP


////////////////////////////////
// \
#DISP
	// ʂ\
	pl disp 1				// \pv[\
	topmask fade 30 255 0	// ɔ킹Ăv[tF[hAEg
	wait

	// ʂ̐؂ւɍʂɂȂȂ悤ɕ~Ăx[XC[W
	// Zbgij
	baseimg

	// IȒ̃gbNԂɐݒ
	btn_track[\200] setid 3


	// e{^L
	btn_track enable 1		// gbNXg{^
	btn_ctrl enable 1		// Rg[pl{^
	btn_repeat enable 1		// s[g{^
	btn_all_repeat enable 1	// I[s[g{^
	btn_shuffle enable 1	// Vbt{^
	btn_sys enable 1		// VXen{^
	btn_sys[2] enable 0		// MUSIC[h{^͖ɂ

	next SEL_WAIT	// ͑҂


////////////////////////////////
// ͑҂[v
#SEL_WAIT
	// ENbNꂽI
	if( _CLICK_R_ != 0 )		next EXIT


///////////////////////////
// SẴ{^𖳌
#DISABLE_BUTTON
	btn_track enable 0		// gbNXg{^
	btn_ctrl enable 0		// Rg[pl{^
	btn_repeat enable 0		// s[g{^
	btn_all_repeat enable 0	// I[s[g{^
	btn_shuffle enable 0	// Vbt{^
	btn_sys enable 0		// VXen{^


///////////////////////////
// MUSIC[hI
#EXIT
	// SẴ{^𖳌
	call DISABLE_BUTTON

	// zCgAEg
	topmask disp 1
	topmask fade 30 0 255
	wait
	
	// ʐ؂ւɉʂȂ̂h߁Ax[XC[Wݒ
	baseimg bg_white

	// Ii^Cgɖ߂j
	exit -2
	next SLEEP


///////////////////////////
// Q[IiI{^j
#QUIT
	// ImF_CAOs
	$860 = 0
	execfes conf
	next QUIT_WAIT


///////////////////////////
// Q[ImF҂
#QUIT_WAIT
	if( _EXITCODE_ == 1 )
		call DISABLE_BUTTON		// ׂẴ{^𖳌
		endfes		// _CAOXNvgI
		next QUIT2	// Q[I
	endif
	if( _EXITCODE_ == 0 )
		endfes			// _CAOXNvgI
		resetactive		// {^ăANeBu
		next SEL_WAIT	// ͑҂֖߂
	endif


///////////////////////////
// Q[I2
#QUIT2
	// tF[hAEgăQ[I
	pl fade 30 255 0
	wait

	// IR[h-3ŃQ[I
	exit -3
	next SLEEP


///////////////////////////
// XNvgI̋󃋁[v
#SLEEP


///////////////////////////
// wv\  \0=ID
#HELP
	img_help settbl 0 \0		// ID.0 āEEE
	img_help setid 0			// ID.0 ɕύX
	img_help disp 1				// wv\


///////////////////////////
// IȒ̃gbNRg[plɕ\
#TRACK
	img_ctrl_track settbl 0 \200	// e[u0(ID.0)
	img_ctrl_track setid 0			// \IDĐݒ
	img_ctrl_track disp 1			// ĕ\


///////////////////////////
// ݂̃gbNnCCg\
#SEL_TRACK
	// ÕgbNʏ̉摜ɕύX
	btn_track[\200] setid 0

	// ꂽ̉摜ɕύX
	btn_track[\0] setid 3

	// I𒆃gbNXV
	\200 = \0


////////////////////////////////////////////////////////////
// [hύXe

///////////////////////////
// CG[h
#GO_CG
	// SẴ{^𖳌
	call DISABLE_BUTTON
	wait

	// zCgAEg
	topmask fade 30 0 255
	wait

	// ʐ؂ւɉʂȂ̂h߁Ax[XC[Wݒ
	baseimg bg_white
	wait

	// IR[hwCG[hֈڍsxɐݒ肵ďI
	exit 10
	next SLEEP


///////////////////////////
// z[h
#GO_SCENE
	// SẴ{^𖳌
	call DISABLE_BUTTON
	wait

	// zCgAEg
	topmask fade 30 0 255
	wait

	// ʐ؂ւɉʂȂ̂h߁Ax[XC[Wݒ
	baseimg bg_white
	wait

	// IR[hwz[hֈڍsxɐݒ肵ďI
	exit 11
	next SLEEP


////////////////////////////////////////////////////////////
// Đ

///////////////////////////
// Đ
#PLAY
	bgm setid \200	// ĐgbNݒ
	bgm play 1		// Đ
	\300 = 1		// ĐtO𗧂Ă

	btn_ctrl[2] setid 3		// Đ{^ԂɕύX

	call TRACK		// wĐ̋ȖxɃgbN\


///////////////////////////
// ~
#STOP
	bgm stop		// Đ~
	\300 = 0		// ĐtOOFF

	btn_ctrl[2] setid 0		// Đ{^ʏԂɕύX

	img_ctrl_track disp 0	// wĐ̋Ȗx̃gbN


///////////////////////////
// PÕgbN
#PREV
	bgm rev			// Oɖ߂

	bgm getid 850	// gbNNo擾
	\0 = $850
	call SEL_TRACK	// gbNXgI

	// Đ̏ꍇ
	if( \300 )
		bgm play 1	// Đ
		call TRACK	// wĐ̋ȖxɃgbN\
	endif


///////////////////////////
// ̃gbN
#NEXT
	bgm next		// ɐi

	bgm getid 850	// gbNNo擾
	\0 = $850
	call SEL_TRACK	// gbNXgI

	// Đ̏ꍇ
	if( \300 )
		bgm play 1	// Đ
		call TRACK	// wĐ̋ȖxɃgbN\
	endif


///////////////////////////
// Pȃs[g
#REPEAT
	// s[gON  OFF ւ
	\301 = 1 - \301


///////////////////////////
// I[s[g
#ALL_REPEAT
	// I[s[gON  OFF ւ
	\302 = 1 - \302
	// s[gݒIuWFNgɐݒ
	bgm repeat \302


///////////////////////////
// Vbt
#SHUFFLE
	// VbtON  OFF ւ
	\303 = 1 - \303
	if( \303 )
		// VbtON̏ꍇ
		if( \300 )
			// Đ̏ꍇ݂͌̃gbN擪ɂȂ悤ɃVbt
			bgm shuffle 1 \200
		else
			// ~̏ꍇ͐擪gbNw肵Ȃ(-1)ŃVbt
			bgm shuffle 1 -1
			// ݂̃gbNNo擾
			bgm getid 850
			\200 = $850
			call TRACK	// gbNXgÎ݂̂ɕύX
		endif
	else
		// VbtOFF
		bgm shuffle 0
	endif


////////////////////////////////////////////////////////////
// {^܂̏

///////////////////////////
// VXen{^

// J[\̏
#btn_sys.FOCUS
	// tH[JXp摜ɐ؂ւ
	@ setid 2
	
	// wv\
	\0 = 500+@
	call HELP

// J[\ꂽ̏
#btn_sys.UNFOCUS
	// tH[JXp摜猳ɖ߂
	@ setid 0
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_sys.PUSH_L
	// ꂽ̉摜ɕύX
	@ setid 3
	if( @ == 0 )	next GO_CG		// [GRAPHIC]{^
	if( @ == 1 )	next GO_SCENE	// [SCENE]{^
	if( @ == 3 )	next EXIT	// ߂{^
	if( @ == 4 )	next QUIT	// I{^


///////////////////////////
// gbN{^

// J[\̏
#btn_track.FOCUS
	if( \200 != @ )
		// tH[JXp摜ɐ؂ւ
		@ setid 2
	endif
	
	// wv\
	\0 = 523
	call HELP

// J[\ꂽ̏
#btn_track.UNFOCUS
	if( \200 != @ )
		// tH[JXp摜猳ɖ߂
		@ setid 0
	endif
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_track.PUSH_L
	// wĐ̋ȖxɃgbN\
	\0 = @		// \0̓gbNNo
	call SEL_TRACK

	// Đ
	call PLAY


///////////////////////////
// Rg[pl{^

// J[\̏
#btn_ctrl.FOCUS
	// tH[JXp摜ɐ؂ւ
	if( @ == 2 && \300 )
		@ setid 3	// [PLAY]{^łĐ͉̎Ԃ̂܂܂ɂ
	else
		@ setid 2	// ȊO̓tH[JX摜ɂ
	endif

	// wv\
	\0 = 525+@
	call HELP

// J[\ꂽ̏
#btn_ctrl.UNFOCUS
	// tH[JXp摜猳ɖ߂
	if( @ == 2 && \300 )
		@ setid 3	// [PLAY]{^łĐ͉̎Ԃ̂܂܂ɂ
	else
		@ setid 0	// ȊO͖߂
	endif
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_ctrl.PUSH_L
	// ꂽ̉摜ɕύX
	@ setid 3

	// ꂽ{^ɂďς
	if( @ == 0 )	call PREV	// Oɖ߂
	if( @ == 1 )	call STOP	// ~
	if( @ == 2 )	call PLAY	// Đ
	if( @ == 3 )	call NEXT	// ɐi

// ꂽ̏
#btn_ctrl.RELEASE_L
	// {^摜猳ɖ߂
	if( @ == 2 && \300 )
		@ setid 3	// [PLAY]{^łĐ͉̎Ԃ̂܂܂ɂ
	else
		@ setid 2	// ȊO͖߂
	endif


///////////////////////////
// s[g{^

// J[\̏
#btn_repeat.FOCUS
	// tH[JXp摜ɐ؂ւ
	if( \301 == 0 )	@ setid 2

	// wv\
	\0 = 520
	call HELP

// J[\ꂽ̏
#btn_repeat.UNFOCUS
	// tH[JXp摜猳ɖ߂
	if( \301 == 0 )	@ setid 0
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_repeat.PUSH_L
	// ꂽ̉摜ɕύX
	@ setid 3
	call REPEAT	// s[gs

// ꂽ̏
#btn_repeat.RELEASE_L
	// ꂽ̉摜ɕύX
	if( \301 == 0 )	@ setid 2


///////////////////////////
// I[s[g{^

// J[\̏
#btn_all_repeat.FOCUS
	// tH[JXp摜ɐ؂ւ
	if( \302 == 0 )	@ setid 2

	// wv\
	\0 = 521
	call HELP

// J[\ꂽ̏
#btn_all_repeat.UNFOCUS
	// tH[JXp摜猳ɖ߂
	if( \302 == 0 )	@ setid 0
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_all_repeat.PUSH_L
	// ꂽ̉摜ɕύX
	@ setid 3
	call ALL_REPEAT		// I[s[gs

// ꂽ̏
#btn_all_repeat.RELEASE_L
	// ꂽ̉摜ɕύX
	if( \302 == 0 )	@ setid 2


///////////////////////////
// Vbt{^

// J[\̏
#btn_shuffle.FOCUS
	// tH[JXp摜ɐ؂ւ
	if( \303 == 0 )	@ setid 2

	// wv\
	\0 = 522
	call HELP

// J[\ꂽ̏
#btn_shuffle.UNFOCUS
	// tH[JXp摜猳ɖ߂
	if( \303 == 0 )	@ setid 0
	
	// wv
	img_help disp 0

// ꂽ̏
#btn_shuffle.PUSH_L
	// ꂽ̉摜ɕύX
	@ setid 3

	call SHUFFLE	// Vbts

// ꂽ̏
#btn_shuffle.RELEASE_L
	// ꂽ̉摜ɕύX
	if( \303 == 0 )	@ setid 2


///////////////////////////
// {[XC_[
#vol.SCRL_P
	vol getpos 850	// ݂̃XC_[̈ʒu擾
	\400 = $850

	bgm blend \400	// {[ύX


////////////////////////////////////////////////////////////
// TEhe[uIuWFNgĂ΂鏈

///////////////////////////
// ~iȂŌ܂ōĐꂽɌĂ΂j
#bgm.STOP
	if( \301 )
		// Pȃs[g̏ꍇ
		bgm play 1	// xĐ
	else
		// ȊȌꍇ
		bgm next		// ̋Ȃ
		bgm getid 850	// gbNNo擾
		if( $850 == \200 && \302 == 0 )
			// gbNŃI[s[gł͖ꍇ  Ō܂ōĐꂽ
			//  Đ~
			call STOP
		else
			// Ō܂ōĐĂȂA̓I[s[g̏ꍇ͍Đ
			\0 = $850
			call SEL_TRACK	// gbNXg̑IԂ̃gbNɕύX
			call PLAY		// Đ
		endif
	endif



