#include	<AgbTypes.h>


//--------------------------------------------------------------
//		定義
//--------------------------------------------------------------
enum{BB_WAIT_1, BB_LOGO_ROTATE, BB_LOGO_WAIT, BB_START_WAIT, BB_START_WAIT_2, BB_PLAYBALL_WAIT, BB_PITCH1,
BB_PITCH2, BB_DAKYU, BB_WARERU, BB_WARERU_WAIT, BB_HOMERUN_DEMO, BB_STRIKE_DEMO, BB_OUT_DEMO, 
BB_GAMEOVER_ROTATE, BB_GAMEOVER_WAIT, BB_WAIT_2, BB_DANCE};

enum{BB_FOUL, BB_HOMERUN, BB_STRIKE, BB_OUT, BB_NOTHING, BB_WARE};

// ホームランデモ
enum{BB_HR_SCORE_UP, BB_HR_MEDAL_UP, BB_HR_WAIT};


// ボール関連
#define	BASEBALL_BALL_START_X	60
#define	BASEBALL_BALL_START_Y	88


//#define BASEBALL_BAT_SPEED		12		// バットの回転スピード
#define BASEBALL_BAT_R			25		// バットの半径

#define BASEBALL_BAT_POS_X		215		// バットの回転軸の位置
#define BASEBALL_BAT_POS_Y		96

// ピッチャー関連
#define BASEBALL_PITCHER_POS_X	72
#define BASEBALL_PITCHER_POS_Y	88
const int baseball_pitcher[6] = 
{
	(int)baseball_Anm_15, (int)baseball_Anm_15, (int)baseball_Anm_00,
	(int)baseball_Anm_01, (int)baseball_Anm_02, (int)baseball_Anm_16
};

// 表記関連
const int baseball_title_Anm[4] =
{
	(int)baseball_Anm_07, (int)baseball_Anm_0a, (int)baseball_Anm_09, (int)baseball_Anm_0b
};

// ロゴのズーム段階
#define	BB_LOGO_ZOOM_COUNT	40

//--------------------------------------------------------------
//		難易度関連の設定
//--------------------------------------------------------------
#define		BASEBALL_MEDAL_COUNT	3		// 何点ごとにメダルを増やすか
#define		BASEBALL_DIFFICULTY_MAX		10	// 難易度の段階
#define		BASEBALL_DIFFICULTY_COUNT	5	// 何点ごとに難易度があがるか
#define		BASEBALL_DANCE_COUNT	9		// 何点ごとにチアガールが入るか

//--------------------------------------------------------------
//		球種データ
//--------------------------------------------------------------
#define	BASEBALL_KYUSHU		7		// 何種類あるか

// ピッチャーの状態
enum{NOT_PITCH, NORMAL_PITCH, NO_PITCH, YES_PITCH, PITCHING_PITCH, FINISH_PITCH};


// 球種
enum{FAST_BALL,STRAIGHT_BALL, SLOW_BALL, CURVE_BALL, MAGIC_BALL, STOP_BALL, FASTER_BALL};

// 球種による音
const int BALL_SOUND[7] = {S_GAME_BB_T_STRAIGHT, S_GAME_BB_T_STRAIGHT, S_GAME_BB_T_SLOW, S_GAME_BB_T_CURVE,
							S_GAME_BB_T_ERASE, S_GAME_BB_T_STOP, S_GAME_BB_T_SPEEDUP};

// 球種の偏り
#define BASEBALL_KATAYORI	20
const u8	baseball_kyushu_Ritsu[BASEBALL_DIFFICULTY_MAX][BASEBALL_KATAYORI] =	
{
//	{ STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,
//	STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,STOP_BALL,},
	{ STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,		// １
	  STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,
	  SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		SLOW_BALL,
	  SLOW_BALL,		CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		FASTER_BALL		},
	{ FAST_BALL,		STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,		// ２
	  STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,
	  SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		CURVE_BALL,
	  CURVE_BALL,		MAGIC_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,		// ３
	  STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,
	  SLOW_BALL,		SLOW_BALL,		CURVE_BALL,		CURVE_BALL,		CURVE_BALL,
	  MAGIC_BALL,		MAGIC_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,		// ４
	  STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,
	  SLOW_BALL,		CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,
	  MAGIC_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,	STRAIGHT_BALL,		// ５
	  STRAIGHT_BALL,	STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,
	  SLOW_BALL,		CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,
	  MAGIC_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,	STRAIGHT_BALL,		// ６
	  STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,		SLOW_BALL,
	  CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,		MAGIC_BALL,
	  STOP_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,		// ７
	  STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,		SLOW_BALL,
	  CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,		MAGIC_BALL,
	  STOP_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,		// ８
	  STRAIGHT_BALL,	STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,		SLOW_BALL,
	  CURVE_BALL,		CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,		STOP_BALL,
	  STOP_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,		// ９
	  STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		CURVE_BALL,
	  CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,		MAGIC_BALL,		STOP_BALL,
	  STOP_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
	{ FAST_BALL,		FAST_BALL,		FAST_BALL,		FAST_BALL,		STRAIGHT_BALL,		// １０
	  STRAIGHT_BALL,	SLOW_BALL,		SLOW_BALL,		SLOW_BALL,		CURVE_BALL,
	  CURVE_BALL,		CURVE_BALL,		MAGIC_BALL,		STOP_BALL,		STOP_BALL,
	  STOP_BALL,		STOP_BALL,		STOP_BALL,		FASTER_BALL,	FASTER_BALL		},
};

// 球種によってピッチャーの素振りが変化する
const u8	baseball_pitcher_Status[BASEBALL_KYUSHU][5] =
{
	{ NORMAL_PITCH, YES_PITCH, YES_PITCH, NORMAL_PITCH, PITCHING_PITCH},	// ファースト
	{ YES_PITCH, YES_PITCH, NORMAL_PITCH, PITCHING_PITCH},	// ストレート
	{ NO_PITCH, NO_PITCH, YES_PITCH, PITCHING_PITCH},	// スロー
	{ NO_PITCH, YES_PITCH, PITCHING_PITCH},	// カーブ
	{ YES_PITCH, NO_PITCH, YES_PITCH, PITCHING_PITCH}, // 消える魔球
	{ YES_PITCH, YES_PITCH, PITCHING_PITCH},	// ストップボール
	{ NO_PITCH, NO_PITCH, YES_PITCH, NORMAL_PITCH, PITCHING_PITCH }	// 加速ボール
};

const u8	baseball_pitcher_Status_2[BASEBALL_KYUSHU][5] =
{
	{ NO_PITCH, YES_PITCH, YES_PITCH, NORMAL_PITCH, PITCHING_PITCH},	// ファースト
	{ NO_PITCH, YES_PITCH, YES_PITCH, NORMAL_PITCH, PITCHING_PITCH},	// ストレート
	{ NO_PITCH, NO_PITCH, YES_PITCH, PITCHING_PITCH},	// スロー
	{ YES_PITCH, YES_PITCH, YES_PITCH, PITCHING_PITCH},	// カーブ
	{ YES_PITCH, YES_PITCH, YES_PITCH, PITCHING_PITCH}, // 消える魔球
	{ NO_PITCH, YES_PITCH, YES_PITCH, PITCHING_PITCH},	// ストップボール
	{ NO_PITCH, NO_PITCH, YES_PITCH, PITCHING_PITCH}	// 加速ボール
};



// それぞれ何フレームで終わるか
//const u8	baseball_kyushu_Count[BASEBALL_KYUSHU] = {28,38,63,55,47,51, 41};
const u8	baseball_kyushu_Count[BASEBALL_KYUSHU] = {28,38,63,55,47,51, 41};

const s16	baseball_kyushu_X[BASEBALL_KYUSHU][63] = {
{	// 速球
	0,	7,	14,	21,	28,	35,	42,	49,	56,	63,	70,	77,	84,	91,	98,105,
	112,119,126,133,140,147,154,161,168,175,182,189		// 28フレーム
},

{	// ストレート
	0,	5,	10,	15,	20,	25,	30,	35,	40,	45,	50,	55,	60,	65,	70,	75,
	80,	85,	90,	95,100,105,110,115,120,125,130,135,140,145,150,155,
	160,165,170,175,180,185		// 38フレーム
},
{	// スローボール
	0,	3,	6,	9,	12,	15,	18,	21,	24,	27,	30,	33,	36,	39,	42,	45,
	48,	51,	54,	57,	60,	63,	66,	69,	72,	75,	78,	81,	84,	87,	90,	93,
	96,	99,	102,105,108,111,114,117,120,123,126,129,132,135,138,141,
	144,147,150,153,156,159,162,165,168,171,174,177,180,183,186,	// 63フレーム
},
{	// カーブ
	0,	4,	8,	12,	16,	20,	24,	28,	32,	36,	40,	44,	48,	52,	56,	60,
	64,	68,	72,	76,	80,	84,	88,	92,	96,100,104,108,112,116,120,124,
	128,132,136,140,143,146,149,152,154,156,158,160,162,164,166,168,
	170,172,174,176,180,182,184		// 55フレーム
},
{	// 消える魔球
	0,	4,	8,	12,	16,	20,	24,	28,	32,	36,	40,	44,	48,	52,	56,	60,
	64,	68,	72,	76,	80,	84,	88,	92,	96,100,104,108,112,116,120,124,
	128,132,136,140,144,148,152,156,160,164,168,172,176,180,184	// 47フレーム
},
//{	// 止まる魔球
//	0,	5,	10,	15,	20,	25,	30,	35,	40,	45,	50,	55,	60,	65,	70,	75,
//	80,	85,	90,	95,	100,101,102,103,104,105,105,106,106,106,106,106,
//	107,107,108,109,114,119,124,129,134,139,144,149,154,159,164,169,
//	174,179,184		// 51フレーム
//},
{	// 止まる魔球
	0,	5,	10,	15,	20,	25,	30,	35,	40,	45,	50,	55,	60,	65,	70,	75,
	80,	81,	82,	83,	84,	85,	86,	86,	86,	86,	86,	87,	87,	88,	88,	89,
	94,	99,104,109,114,119,124,129,134,139,144,149,154,159,164,169,
	174,179,184		// 51フレーム
},
{	// 加速する球
	0,	3,	6,	9,	12,	15,	18,	21,	24,	27,	30,	33,	36,	39,	42,	45,	
	48,	52,	56,	60,	64,	68,	73,	78,	83,	88,	94,100,	106,112,118,124,
	131,138,145,152,159,166,173,180,187		// 41フレーム
}
};

const s16	baseball_kyushu_Y[BASEBALL_KYUSHU][63] = {
{	// 速球
	0,	0,	0,	0,	-1,	-1,	-1,	-2,	-2,	-2,	-2,	-2,	-3,	-3,	-3,	-3,
	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,	-5,	-6,	-6,	-6
},
{	// ストレート
	0,	0,	0,	0,	0,	0,	-1,	-1,	-1,	-1,	-1,	-2,	-2,	-2,	-2,	-2,
	-2,	-3,	-3,	-3,	-3,	-3,	-3,	-4,	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,
	-5,	-5,	-5,	-6,	-6,	-6
},
{	// スローボール
	0,	0,	0,	0,	0,	0,	0,	0,	0,	0,	0,	-1,	-1,	-1,	-1,	-1,
	-1,	-1,	-1,	-1,	-1,	-1,	-2,	-2,	-2,	-2,	-2,	-2,	-2,	-2,	-2,	-2,
	-2,	-3,	-3,	-3,	-3,	-3,	-3,	-3,	-3,	-3,	-3,	-3,	-4,	-4,	-4,	-4,
	-4,	-4,	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,	-5,	-5,	-5,	-5,	-5
},
{	// カーブ
	0,	0,	0,	0,	0,	1,	1,	1,	1,	1,	1,	2,	2,	2,	2,	2,
	3,	3,	3,	3,	3,	2,	2,	2,	2,	2,	1,	1,	1,	0,	0,	-1,
	-2,	-3,	-4,	-5,	-6,	-7,	-8,	-9,-10,-11,-12,-13,-14,-15,	-16,-17,
	-18,-19,-20,-21,-22,-23,-24
},
{	// 消える魔球
	0,	0,	0,	0,	0,	0,	0,	0,	-1,	-1,	-1,	-1,	-1,	-1,	-1,100,
	100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
	100,100,-4,	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,	-5,	-5,	-5,	-5,
},
{	// 止まる魔球
	0,	0,	0,	0,	0,	0,	-1,	-1,	-1,	-1,	-1,	-2,	-2,	-2,	-2,	-2,
	-2,	-3,	-3,	-3,	-3,	-3,	-3,	-4,	-4,	-4,	-4,	-4,	-4,	-4,	-4,	-4,
	-4,	-4,	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,	-5,	-5,	-5,	-6,	-6,	-6,
	-6,	-6, -6
},
{	// 加速する球
	0,	0,	0,	0,	0,	0,	-1,	-1,	-1,	-1,	-1,	-2,	-2,	-2,	-2,	-2,
	-2,	-3,	-3,	-3,	-3,	-3,	-3,	-4,	-4,	-4,	-4,	-4,	-5,	-5,	-5,	-5,
	-5,	-6,	-6,	-6,	-6,	-6,	-6,	-6,	-6,
}
};

//#define	BASEBALL_HANEKAERI		70
//#define	BASEBALL_KAKUDAI		10


//const s8	baseball_hanekaeri[BASEBALL_KYUSHU] = {60, 60, 60, 60, 60, 60};		// 球種ごとに設定
//const s8	baseball_kakudai[BASEBALL_KYUSHU] = {15, 10, 10, 10, 10, 10};

const s8	baseball_hanekaeri[BASEBALL_KYUSHU] = {60, 65, 50, 70, 40, 80, 55};		// 球種ごとに設定
const s8	baseball_kakudai[BASEBALL_KYUSHU] = {12, 15, 10, 17, 10, 17, 12};


// バットの回転

#define BASEBALL_BAT_ROTATE_NUM		23

const u8	baseball_bat_rotate[BASEBALL_BAT_ROTATE_NUM] = 
	{0,248,236,224,212,200,188,176,164,152,140,128,116,104,	92,	80,
	68,	56,	44,	32,	20,	8,	0};


//--------------------------------------------------------------
//		チアガール
//--------------------------------------------------------------
// チアガールデモ
enum{ BB_D_CHEER_IN, BB_D_CHEER_PLAY, BB_D_CHEER_OUT };
enum{ BB_CHEER_NO, BB_CHEER_RIGHT_WALK, BB_CHEER_LEFT_WALK, BB_CHEER_SIDE_WALK,
	  BB_CHEER_TRI_WALK, BB_CHEER_TRI_JUMP_1, BB_CHEER_TRI_JUMP_2,
	  BB_CHEER_HIP, BB_CHEER_LEG, BB_CHEER_DELUX};

const int	baseball_cheer_Anm[10] =
{
	0, (int)baseball_Anm_19, (int)baseball_Anm_18, (int)baseball_Anm_17,
	(int)baseball_Anm_1a, (int)baseball_Anm_1b, (int)baseball_Anm_1c,
	(int)baseball_Anm_1d, (int)baseball_Anm_1e, (int)baseball_Anm_1f
};


#define		BASEBALL_CHEER_START_X		120
const int	BASEBALL_CHEER_START_Y[2] = { 220, -60 };
#define		BASEBALL_CHEER_SPEED_Y		1
