//****************************************************************************************************
// Pause menu
//
// Library:
// 		menuPauseHandler				- Main task flow.
//		menuItem						- Summon piece of the menu.
//		chinchin						- Handles the music note spawning from birdy.
//		birdyAnimation					- Handles the gentle rocking of the birdy.
//		musicnoteSprite					- Sprite for the music note.
//	
//****************************************************************************************************

#include "script/thdcs/functions/function_loaddata.txt"
#include "script/thdcs/functions/function_hud.txt"
#include "script/thdcs/functions/const_sound.txt"

@Initialize {
	SetAutoDeleteObject(true);
	bgBlur;
	menuPauseHandler;
}

@MainLoop { yield; }
@Finalize { } 

task menuPauseHandler {
	let PSE_CANCEL = 0;
	let PSE_QUIT = 1;
	let menuSelect = 0;

	let birdy = menuItem(86,320,0.8,255,0,704,160,1024);		// Birdy 
	let menPText = menuItem(88,140,1,255,0,448,128,512);		// Pause text static
	let menRGame = menuItem(184,284,1,255,256,640,512,704);		// Return to game
	let menRTitle = menuItem(184,324,1,255,256,704,512,768);	// Return to title
	
	let menItemsArr = [menRGame,menRTitle];

	ObjRender_SetColor(birdy,128,255,192);	
	let b = 255; let g = 255; let colourFrame = 0; 
	chinchin(birdy);
	birdyAnimation(birdy); 
	
	while(GetVirtualKeyState(VK_PAUSE) != KEY_FREE){ yield; }
	
	StopMusic(GetAreaCommonData("sound", "song", 0));
	PlaySFX(SFX_MIX01);
	PlayMusic(BGM_PAUSE);
	musicRestartEnable(BGM_PAUSE, 1);

	loop {
		ascent(i in 0..length(menItemsArr)) { 
			if(i == menuSelect) { 
				ObjRender_SetColor(menItemsArr[menuSelect], 255, g, b);
				b -= sin(colourFrame) * 8;
				g -= sin(colourFrame) * 8;
				colourFrame += 5;
			} else {
				ObjRender_SetColor(menItemsArr[i], 255, 255, 255);
			}
		}

		if(GetVirtualKeyState(VK_UP) == KEY_PUSH) { 
			PlaySFX(SFX_MENPICK);
			if(menuSelect > -1) { menuSelect--; } 
			if(menuSelect == -1) { menuSelect = 1; }
		}
		if(GetVirtualKeyState(VK_DOWN) == KEY_PUSH) { 
			PlaySFX(SFX_MENPICK);
			if(menuSelect < 2) { menuSelect++; } 
			if(menuSelect == 2) { menuSelect = 0; } 
		}

		if(GetVirtualKeyState(VK_OK) == KEY_PULL) {
			PlaySFX(SFX_OK00);
			menSelectAnim(menItemsArr[menuSelect]);

			alternative(menuSelect)
			case(PSE_CANCEL) {		
				let choiceMade = [RESULT_CANCEL,RESULT_END];
				SetScriptResult(choiceMade[menuSelect]);
				PlayMusic(GetAreaCommonData("sound", "song", 0));
				CloseScript(GetOwnScriptID);
				break;					
			}
			case(PSE_QUIT) {
				let choiceMade = [RESULT_CANCEL,RESULT_END];
				SetScriptResult(choiceMade[menuSelect]);
				CloseScript(GetOwnScriptID);
				break;	
			}										
		}
		if(GetVirtualKeyState(VK_CANCEL) == KEY_PULL || GetVirtualKeyState(VK_PAUSE) == KEY_PULL) {
			PlaySFX(SFX_MENCANCEL);	
			SetScriptResult(RESULT_CANCEL);
			musicRestartEnable(GetAreaCommonData("sound", "song", 0), 1);
			PlayMusic(GetAreaCommonData("sound", "song", 0));
			CloseScript(GetOwnScriptID);
			break;
		}

		yield;
	}
	StopMusic(BGM_PAUSE);
	ascent(i in 0..length(menItemsArr)) { Obj_Delete(menItemsArr[i]); }
}