/***************************************************************/
//
//
//		DirectX	[title.cpp]
//
//											Author	kazuki tanaka
//											Date	2016 07/08
/*---------------------------------------------------------------
■Update : 2016/07/08

/*---------------------------------------------------------------
	インクルードファイル
---------------------------------------------------------------*/

#include "main.h"

#include "title_background.h"
#include "title_effect.h"
#include "select_menu.h"
#include "game_background.h"

#include "ranking.h"

#include "fade.h"

#include "input.h"
#include "mouse.h"

#include "sound.h"

/*---------------------------------------------------------------
	マクロ定義
---------------------------------------------------------------*/

#define TITLE_SOUND ( 0 )

#define ENTER_SOUND ( 0 )

/*---------------------------------------------------------------
	定数定義
---------------------------------------------------------------*/


// 初期化処理
void InitTitle( void )
{

	// 各関数の初期化処理
	InitTitleBackground( );
	InitGameBackground( );
	InitSelectMenu( );

	InitTitleEffect( );

	// タイトルミュージックの再生
	PlaySound( TITLE_SOUND, true );

}

// 終了処理
void UninitTitle(void)
{

	// 各関数の解放処理
	UninitTitleBackground( );
	UninitGameBackground( );
	UninitSelectMenu( );

	UninitTitleEffect( );

}

// 更新処理
void UpdateTitle( void )
{

	// 各関数の更新処理
	UpdateTitleBackground( );
	UpdateGameBackground( );
	UpdateSelectMenu( );

	UpdateTitleEffect( );


	// モードの変更
	if( GetMouseTrigger( MOUSE_BUTTON_LEFT ) ){

		if( !GetSelect( ) ){
	
			SetFade( FADE_OUT, SCENE_TUTORIAL );
			PlayOneShotSoundEffect( ENTER_SOUND );
	
		}
		else{
	
			SetFade( FADE_OUT, SCENE_RESULT );
			PlayOneShotSoundEffect( ENTER_SOUND );
			SetRankingType( RANKING_TYPE_SHOW_ONLY );

			// サウンドの停止
			StopSound( ENTER_SOUND );

		}
	
	}


	// 音量の調節
	ControlVolume( TITLE_SOUND );

}

// 描画処理
void DrawTitle ( void )
{

	static unsigned int frame;

	// 各関数の描画処理
	DrawTitleBackground( );
	DrawGameBackground( );
	DrawSelectMenu( );

	DrawTitleEffect( );

	// デバイスの受け取り処理
	LPDIRECT3DDEVICE9 pDevice = GetDevice( );

	//DrawTitleLogo( );

	if( (frame/5%2==0) ){

		//DrawTitleUserInterface( );
	
	}

	// 加算合成の設定
	pDevice->SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );			//半透明処理
	pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );		//元のα
	pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );			//先のα


	// 元の状態に戻す
	pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE,TRUE );				//半透明処理
	pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );		//元のα
	pDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA );		//先のα

	frame++;

}


