/*
	kn_word.h
*/
#ifndef	_KN_WORD_H_
#define _KN_WORD_H_

/* ================================================= */
/* struct */
/* Word move */
typedef struct {
	ushort 	kind;
	ushort	stat;
	ushort	number;
	ushort	disp;
	int		x, y;
	float	vx, vy;
	int		count0, count1, count2, count3;
	int		flag;
} sGWord;

/* cube x position */
typedef struct {
	int		lx, rx, lx2, rx2;
} sCubeXPos;

/* ================================================= */
/* define */

/* バッファ数 */
//#define MAX_NUM_GWORD		5

/* 種類 */
#define GWORD_KIND_NOUSE		0
#define GWORD_KIND_FINISH		1
#define GWORD_KIND_GOAL			2
#define GWORD_KIND_CUBE			3
#define GWORD_KIND_RETIRE		4

#define GWORD_KIND_RESULT_T1	5

/* フラグ */
#define GWORD_FLAG_ALLCLR	0
#define GWORD_FLAG_NORMAL	1

/* ================================================= */
/* ================================================= */
/* 関数プロトタイプ */
extern void moveGWord( void );
extern Gfx 	*makeGWordGlist( Gfx *gp );
extern void initGWord( ushort kind, ushort flag );


/* ================================================= */
/* 種類別 */
/* ------------------------------------------------- */
/* NO USE */
/* 状態 */
#define GWORD_NOUSE_STAT_INIT	0

/* ------------------------------------------------- */
/* FINISH */

/* 状態 */
#define GWORD_FINISH_STAT_ZOOM	0
#define GWORD_FINISH_STAT_STOP	1

/* 初期位置 */
#define GWORD_FINISH_INIT_X		80
#define GWORD_FINISH_INIT_Y		93

/* 拡大時間 */
#define GWORD_FINISH_ZOOM_COUNT	5

/* ------------------------------------------------- */
/* GOAL */

/* 状態 */
#define GWORD_GOAL_STAT_ZOOM	0
#define GWORD_GOAL_STAT_STOP	1

/* 初期位置 */
#define GWORD_GOAL_INIT_X		120
#define GWORD_GOAL_INIT_Y		(GWORD_FINISH_INIT_Y)

#define GWORD_GOAL_INIT_X_REC	(DISPLAY_X1+50)

/* 拡大時間 */
#define GWORD_GOAL_ZOOM_COUNT	5
/* ------------------------------------------------- */
/* CUBE */
/* フラグ */
#define GWORD_CUBE_FLAG_TITLE_L		0
#define GWORD_CUBE_FLAG_TITLE_R		1
#define GWORD_CUBE_FLAG_PAUSE1_L	2
#define GWORD_CUBE_FLAG_PAUSE1_R	3
#define GWORD_CUBE_FLAG_PAUSE2_1L	4
#define GWORD_CUBE_FLAG_PAUSE2_1R	5
#define GWORD_CUBE_FLAG_PAUSE2_2L	6
#define GWORD_CUBE_FLAG_PAUSE2_2R	7

/* 状態 */
#define GWORD_CUBE_STAT_ROT		0
#define GWORD_CUBE_STAT_ROT_P	1

/* タイトル時の初期位置 */
#define GWORD_CUBE_INIT_X_L		 82
#define GWORD_CUBE_INIT_X_R		239
#define GWORD_CUBE_INIT_Y		
/* ポーズ時の初期位置 */
#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)

#define GWORD_CUBE_INIT_X_L_P1	98
#define GWORD_CUBE_INIT_X_R_P1	222

#elif (SW_KN_LANGUAGE == KN_US)

#define GWORD_CUBE_INIT_X_L_P1	80
#define GWORD_CUBE_INIT_X_R_P1	240

#elif (SW_KN_LANGUAGE == KN_EU)

#define GWORD_CUBE_INIT_X_L_P1	80
#define GWORD_CUBE_INIT_X_R_P1	240

#endif

#define GWORD_CUBE_INIT_Y_P1	101

/* ------------------------------------------------- */
/* RETIRE */
/* 状態 */
#define GWORD_RETIRE_STAT_FALL	0
#define GWORD_RETIRE_STAT_BOUND	1
#define GWORD_RETIRE_STAT_STOP	2

/* 初期位置 */
#define GWORD_RETIRE_INIT_X		 80
#define GWORD_RETIRE_INIT_Y		-40

/* 落下データ */
#define GWORD_RETIRE_G			3.0f
#define GWORD_RETIRE_G_BOUND	1.5f
#define GWORD_RETIRE_BOUND_K	0.7f
#define GWORD_RETIRE_BOUND_VY	16.0f
#define GWORD_RETIRE_BOUND_Y	63
/* ------------------------------------------------- */
/* ------------------------------------------------- */
/* ------------------------------------------------- */
/* ------------------------------------------------- */


#endif

