/********************
	kn_message.h
 ********************/
#ifndef _KN_MESSAGE_H_
#define _KN_MESSAGE_H_

/*******************************************************
	DEFINE
*******************************************************/
/* --- 種類 --- */
#define GMESG_KIND_8	0
#define GMESG_KIND_12	1
#define GMESG_KIND_18	2
#define GMESG_KIND_16	3
#define GMESG_KIND_10	4

/* --- 文章番号(8) --- */
/* セーブとロード画面 */
#define GMESG_CASSETTE8		0
#define GMESG_CPACK8		1

#if (SW_KN_LANGUAGE == KN_EU)
#define GMESG_NORMALA8		2
#endif
#define GMESG_NORMAL8		3
#define GMESG_GHOST8		4
#define GMESG_INAI8			5
#define GMESG_LIGHT8		6
#define GMESG_HEAVY8		7
//#define GMESG_GEAR8		8
#define GMESG_LOW8		9
#define GMESG_HIGH8		10
#define GMESG_GRIP8		11
#define GMESG_SLIP8		12

#define GMESG_BEST_LAP8		13
#define GMESG_BEST_TIME8	14

//#define GMESG_BEST8		15
//#define GMESG_LAP8		16

#define GMESG_HARD8		17
#define GMESG_EXPERT8		18
//#define GMESG_ATTACK8		19
//#define GMESG_VS8		20

#define GMESG_TOTAL8		21

#define GMESG_COURSE8		22
#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_RECORD8		23
#endif

#define GMESG_POINT8		24

#define GMESG_YOURTIME8		25
#define GMESG_YOURSCORE8	26
#define GMESG_RETIRE8		27

//#define GMESG_ATTACKMODE8	28
//#define GMESG_SCOREATT8		29

#define GMESG_BESTSCORE8	30
#define GMESG_END8		31

#define GMESG_CSEL_HANDI8	32

#define GMESG_ORIGINAL8		33
#define GMESG_SPACE8		34
#define GMESG_TURN8		35

#define GMESG_REV8		36

#if (SW_KN_LANGUAGE == KN_US || SW_KN_LANGUAGE == KN_EU)
#define GMESG_MACHINE_SET8	37
#define GMESG_CUSTOM8		38
#endif

/* --- 文章番号(10) --- */
#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_NORMAL10		0
#define GMESG_HARD10		1
#define GMESG_EXPERT10		2
#elif (SW_KN_LANGUAGE == KN_EU)
#define GMESG_ENGLISH10		0
#define GMESG_GERMAN10		1
//#define GMESG_ONA10		2
//#define GMESG_OFFA10		3
#endif
//#define GMESG_VS10		4

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_FOR1P10		5
#define GMESG_FOR2P10		6
#define GMESG_MACHINE_SET10	7
#define GMESG_CUSTOM10		8
#endif

#define GMESG_HANDLING10	9
#define GMESG_GRIP10		10
#define GMESG_GEAR10		11

#define GMESG_A10		12
#define GMESG_B10		13

/* --- 文章番号(12) --- */
#define GMESG_COPY12		0
#define GMESG_ERASE12		1
#define GMESG_MACHINE12		2
#define GMESG_TIME12		3
#define GMESG_OK12			4
#define GMESG_CANCEL12		5

#define GMESG_CLR_RIDEP12	6
#define GMESG_RIDEP12		7

#define GMESG_CRS_D_P12		8
#define GMESG_CRS_S_BEACH12	9
#define GMESG_CRS_S_BAY12	10
#define GMESG_CRS_O_F12		11
#define GMESG_CRS_M_L12		12
#define GMESG_CRS_P_P12		13
#define GMESG_CRS_K_C12		14
#define GMESG_CRS_S_I12		15
#define GMESG_CRS_C_W12		16

#define GMESG_LEVEL12		17

#define GMESG_TOUR_MODE12	18
#define GMESG_ATTACK_MODE12	19
#define GMESG_VS_MODE12		20
#define GMESG_OPTION12		21

#define GMESG_NORMAL12		22
#define GMESG_HARD12		23
#define GMESG_EXPERT12		24

#define GMESG_RENAME12		25
#define GMESG_RECORD12		26
#define GMESG_CONDITION12	27
#define GMESG_SOUND12		28
#define GMESG_ERASE_REC12	29
#define GMESG_SAVE_LOAD12	30

#define GMESG_RANK12		31
#define GMESG_NAME12		32

#define GMESG_WAVE12		33
#define GMESG_ORIGINAL12	34
#define GMESG_CALM12		35
#define GMESG_ROUGH12		36
#define GMESG_RANDOM12		37
#define GMESG_NOU12		38
//#define GMESG_FOR2P12		39
#define GMESG_KIROKU12		40
#define GMESG_MISS12		41
#define GMESG_LAP12			42
#define GMESG_GHOST12		43

#define GMESG_RETRY12		44
#define GMESG_MACHINE_SEL12	45
#define GMESG_CRS_SEL12		46
#define GMESG_EXIT12		47

#define GMESG_CONTINUE12	48
#define GMESG_RETIRE12		49
#define GMESG_RESTART12		50

#define GMESG_SOUND_SEL12	51
#define GMESG_STEREO12		52
#define GMESG_MONO12		53
#define GMESG_BGM12			54
#define GMESG_ON12			55
#define GMESG_OFF12			56
#define GMESG_LISTEN_BGM12	57

#define GMESG_POINT12		58

#define GMESG_SCOREATT12	59

#define GMESG_RING12		60
#define GMESG_ACTION12		61

#define GMESG_SCORE12		62

#define GMESG_END12		63
#define GMESG_TIMESCORE12	64

#define GMESG_BECAREFUL12	65
#if (SW_KN_LANGUAGE == KN_EU)
#define GMESG_CLR_RIDEPA12	66
#else
//#define GMESG_TIME_12		66
#endif
#define GMESG_SUBETE12		67
#define GMESG_NOTRECORD12	68

#define GMESG_START_RACE12	69
#define GMESG_W_UP12		70

#define GMESG_ROUND1_12		71
#define GMESG_ROUND2_12		72
#define GMESG_ROUND3_12		73
#define GMESG_ROUND4_12		74
#define GMESG_ROUND5_12		75
#define GMESG_ROUND6_12		76
#define GMESG_ROUND7_12		77
#define GMESG_ROUND8_12		78

#define GMESG_RR_CLR12		79
#define GMESG_RR_1ST12		80
#define GMESG_RR_2ND12		81
#define GMESG_RR_3RD12		82
#define GMESG_RR_4TH12		83
#define GMESG_RR_NO12		84

#define GMESG_SSEL_HP12		85
#define GMESG_SEL_START1_12	86

#define GMESG_FINALROUND12	87

#define GMESG_NINTENDO12	88

#define GMESG_REVERSE12		89

#if (SW_KN_LANGUAGE == KN_EU)
#define GMESG_ONA12		90
#define GMESG_OFFA12		91
#endif

#define GMESG_JK_DEF12		92

#define GMESG_END_WIN12		93
#define GMESG_END_2ND12		94
#define GMESG_END_3RD12		95
#define GMESG_END_4TH12		96

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_END_RE12		97
#elif (SW_KN_LANGUAGE == KN_US)
#define GMESG_END_RE12		GMESG_RETIRE12
#elif (SW_KN_LANGUAGE == KN_EU)
#define GMESG_END_RE12		GMESG_RETIRE12
#endif

#define GMESG_END_NEW12		98
#define GMESG_END_TRYNEXT12	99
#define GMESG_END_GOAGAIN12	100

#define GMESG_SINA12		101
#define GMESG_SINB12		102
#define GMESG_GHOSTSAVE12	103


/* --- 文章番号(18) --- */
#define GMESG_SAVELOAD18	0
//#define GMESG_COPY18		1
//#define GMESG_ERASE18		2

#define GMESG_MACHINESEL18	3

#define GMESG_CRSSEL18		4

#define GMESG_OPTION18		5

#define GMESG_RENAME18		6

#define GMESG_RECORD18		7

#define GMESG_CRS_D_P18		8
#define GMESG_CRS_S_BEACH18	9
#define GMESG_CRS_S_BAY18	10
#define GMESG_CRS_O_F18		11
#define GMESG_CRS_M_L18		12
#define GMESG_CRS_P_P18		13
#define GMESG_CRS_K_C18		14
#define GMESG_CRS_S_I18		15

#define GMESG_CONDITION18	16

#define GMESG_ERASE_REC18	17

#define GMESG_VS_RESULT18	18

#define GMESG_SOUND18		19

#define GMESG_RACE_RESULT18	20
#define GMESG_POINT_RANK18	21

#define GMESG_CRS_C_W18		22

#define GMESG_CANNOT18		23
#define GMESG_SAVETYU18		24
#define GMESG_DEKINAI18		25
//#define GMESG_SET_CPACK18	26
//#define GMESG_NEWRANK18	27

#define GMESG_TOTAL18		28
#define GMESG_NAME18		29

#define GMESG_OP_NORM18		30
#define GMESG_OP_HARD18		31
#define GMESG_OP_EXP18		32
#define GMESG_OP_REV18		33
#define GMESG_OP_CHP18		34

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_OP_R6_18		35
#define GMESG_OP_R7_18		36
#define GMESG_OP_R8_18		37
#endif

#define GMESG_END_FINAL18	38
/* --- 文章番6) --- */
#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_WARMINGUP16	0
#define GMESG_DOLPHIN16		1
#define GMESG_RACESTART16	2
#define GMESG_STARTBUTTON16	3
#endif

#define GMESG_SCORERANK16	4
#define GMESG_TIMERANK16	5

//#define GMESG_CPACK16		6
#define GMESG_NOT_COPY16	7
//#define GMESG_NOTE16		8
#define GMESG_NOT_ERASE16	9

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_SET_CPACK1_16	10
#define GMESG_SET_CPACK2_16	11
#define GMESG_NEWRANK1_16	12
#define GMESG_NEWRANK2_16	13
#define GMESG_NOT_READ16	14
#endif

#define GMESG_COPY16		15
#define GMESG_ERASE16		16

#if (SW_KN_LANGUAGE == KN_JP || SW_KN_LANGAGE == ZH)
#define GMESG_BALANCE16		17	
#define GMESG_JUMPCTRL16	18
#define GMESG_SHORTTURN16	19
#define GMESG_U_D_AIRTURN16	20
#define GMESG_MES_JPST16	21
#define GMESG_MES_LR16		22
#define GMESG_MES_RL16		23
#define GMESG_MES_QUICK16	24
#define GMESG_MES_RXLA16	25
#define GMESG_MES_RXLB16	26
#define GMESG_MES_UP16		27
#define GMESG_MES_DOWN16	28
#define GMESG_MES_DU16		29
#endif

#define GMESG_DEMO_NOCON1_16	30
#define GMESG_DEMO_NOCON2_16	31

#define GMESG_LK_RV16		32

#if (SW_KN_LANGUAGE == KN_US || SW_KN_LANGUAGE == KN_EU)
#define GMESG_MES00_16		33
#define GMESG_MES01_16		34
#define GMESG_MES02_16		35
#define GMESG_MES03_16		36
#define GMESG_MES04_16		37
#define GMESG_MES05_16		38
#define GMESG_MES06_16		39
#define GMESG_MES07_16		40
#define GMESG_MES08_16		41
#define GMESG_MES09_16		42
#define GMESG_MES10_16		43
#define GMESG_MES11_16		44
#define GMESG_MES12_16		45
#define GMESG_MES13_16		46
#define GMESG_MES14_16		47
#define GMESG_MES15_16		48
#define GMESG_MES16_16		49
#define GMESG_MES17_16		50
#define GMESG_MES18_16		51
#define GMESG_MES19_16		52
#define GMESG_MES20_16		53
#define GMESG_MES21_16		54
#endif
#if (SW_KN_LANGUAGE == KN_EU)
#define GMESG_MES22_16		55
#define GMESG_MES23_16		56
#define GMESG_MES24_16		57
#define GMESG_MES25_16		58
#define GMESG_MES26_16		59
#define GMESG_MES27_16		60
#define GMESG_MES28_16		61
#define GMESG_MES29_16		62
#define GMESG_MES30_16		63
#define GMESG_MES31_16		64
#define GMESG_MES32_16		65
#define GMESG_MES33_16		66
#endif

/*******************************************************************************
	STRUCT
*******************************************************************************/
typedef struct {
	unsigned char	*pTex;
	int		wd;
} sGameMessage;

/*******************************************************************************
	VARIABLE
*******************************************************************************/
extern sGameMessage mGameMessageTable_16[];
extern sGameMessage mGameMessageTable_16_Ge[];

/*******************************************************************************
	FUNCTION
*******************************************************************************/
extern Gfx 	*makeGameMessageGlist( Gfx *gp, int kind, int number, int x, int y, int flag, uint texOffset );

#endif
