/*
	タイトル
*/
#ifndef _KN_TITLE_H_
#define _KN_TITLE_H_

/*******************************************************
	DEFINE
*******************************************************/
/* メニューの階層構造の深度 */
#define MAX_DEPTH_TITLE_MENU	3

/* オープニングデモ用コース */
#define COURSE_NUM_OPEN			NCOURSE_PARK

/* メニューの種類 */
#define TITLE_MENU_KIND_NULL	-1
#define TITLE_MENU_KIND_MAIN	0
#define TITLE_MENU_KIND_TOUR	1
#define TITLE_MENU_KIND_DOLPHIN	2
#define TITLE_MENU_KIND_REVERSE	3

/* メニューの項目数 */
#define	TITLE_MENU_MAIN_MAX		5
#define	TITLE_MENU_TOUR_MAX		3
#define	TITLE_MENU_DOLPHIN_MAX	2
#define	TITLE_MENU_ATTACK_MAX	3
#define	TITLE_MENU_VS_MAX		3
#define	TITLE_MENU_REVERSE_MAX	4

/* フラグ */
#define TITLE_MENU_FLAG_NOP			0
#define TITLE_MENU_FLAG_DOLPHIN		1		/* GO TO THE DOLPHIN PARK */
#define TITLE_MENU_FLAG_RACE_START	2		/* DEFAULT CURSOR IS POSITION RACE */
#define TITLE_MENU_FLAG_CHK_REVERSE	3		/* CHECK REVERSE MODE */
#define TITLE_MENU_FLAG_SET_REVERSE	4		/* SET REVERSE FLAG */


/* 表示位置 */
#define SX_TITLE_MENU_MAIN	(DISPLAY_X1+90)
#define SY_TITLE_MENU_MAIN	78
#define LL_TITLE_MENU_MAIN	20

#define SY_LANGUAGE_MENU	78
#define LL_LANGUAGE_MENU	20

/* タイトルシーケンス */
#define TITLE_SEQ_DISP_WR64	0
#define TITLE_SEQ_DISP_MENU	1
#define TITLE_SEQ_LANGUAGE	2
#define TITLE_SEQ_PFS		3

/* デモ番号 */
#define OPDM_DEMO1	0
#define OPDM_DEMO2	1
#define OPDM_DEMO3	2
#define MAX_NUM_OPDM	3

/* オープニングデモの人出現パターン数 */
#define MAX_NUM_OPDM_MAN_IDX	4

/* でかタイトルでのキー入力無視時間 */
#define TITLE_BIGTITLE_NOKEY_COUNT	20

/* でかタイトルでの待ち時間 */
#define TITLE_BIGTITLE_WAIT_COUNT	600
/* メニューでの待ち時間 */
#define TITLE_MENU_WAIT_COUNT	600

/* コントローラー未接続メッセージ */
#define MAX_NUM_NO_CON_MESG		2

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGUAGE == KN_ZH)
#define WD_NO_CON_MESG1		(272+8)
#define WD_NO_CON_MESG2		(360)
#elif (SW_KN_LANGUAGE == KN_US)
#define WD_NO_CON_MESG1		(384+8)
#define WD_NO_CON_MESG2		(424)
#elif (SW_KN_LANGUAGE == KN_EU)
#define WD_NO_CON_MESG1		(384+8)
#define WD_NO_CON_MESG2		(424)
#endif

#define WD_NO_CON_MESG		(WD_NO_CON_MESG1+WD_NO_CON_MESG2)
#define SX_NO_CON_MESG		(DISPLAY_X2)
#define SX_NO_CON_MESG_END	(DISPLAY_X1-WD_NO_CON_MESG-8)
#define SY_NO_CON_MESG		(DISPLAY_Y1 + 176)

/*******************************************************
	STRUCT
*******************************************************/
/* Title Menu（メンバー変更時はゲーム情報バッファのメンバーも変更すること） */
typedef struct {
	short	childMenu;		/* 子メニューがあるか？ */
	int		gameKind;		/* ゲームの種類 */
	int		gmesgNum;		/* メッセージ番号 */
	uint	dx;				/* 一番上に表示されているものからのdx */
    short	players;		/* 何人で遊ぶか？ */
    short	boatMax;		/* ボートの数 */
    short	dif;			/* 難易度 */
	short	flag;			/* フラグ */
} sTitleMenu;

typedef struct {
	sTitleMenu	*pTitleMenu;
	int			menuMax;
	int			curMax;
	int			dispX, dispY;
	int			selectFlag;
} sTitleMenuTable;

typedef struct {
	int		sx;
	int		wd;
	int		gmesgNum;
} sNoConMesg;
/*******************************************************************************
	VARIABLE
*******************************************************************************/
extern int	seqTitle, euLanguageMenuNum;
extern int	titleMenuNum, titleMenuKind;
extern int	titleMenuMainNumBak;
extern int	syTitleMenu;
extern int	openingDemoNumber, idxOpeningDemoMan;
extern int	euLanguageMenuOn;

/*******************************************************************************
	FUNCTION
*******************************************************************************/
extern Gfx		*makeMainGlistOpen( Gfx *gp );
extern void		initMainGlistOpen( void );
extern Gfx		*makeMainGlistTitle( Gfx *gp );
extern Gfx		*makeMainGlistTitle2Next( Gfx *gp );

#endif
