/********************
	kn_machine.h
 ********************/
#ifndef _KN_MACHINE_H_
#define _KN_MACHINE_H_

/*******************************************************
	DEFINE
*******************************************************/
/* マシン番号 */
#define MACHINE_NUM_HAYAMI			0
#define MACHINE_NUM_MARINER			1
#define MACHINE_NUM_STEWART			2
#define MACHINE_NUM_JETER			3

/* 並び順 */
#define MACHINE_NUM_0				MACHINE_NUM_HAYAMI
#define MACHINE_NUM_1				MACHINE_NUM_STEWART
#define MACHINE_NUM_2				MACHINE_NUM_JETER
#define MACHINE_NUM_3				MACHINE_NUM_MARINER

/* カーソル初期位置（マシン番号ではない） */
#define INIT_MY_MACHINE_NUM			0
#define INIT_YOUR_MACHINE_NUM		3

/* 選択できるマシン数 */
#define MAX_NUM_MACHINE_SEL			4
/* 選択できるマシンセッティングタイプ数 */
#define MAX_NUM_MACHINE_SET_TYPE	2
/* 選択できるマシンデータの項目数 */
#define MAX_NUM_MACHINE_DATA		3
/* 性能メーターの段階数 */
#define MAX_NUM_MACHINE_PERF	12

/* マシンセレクト内でのシーケンスデータ（処理の順番で番号を決める事） */
#define MACHINE_SEQ_SEL_MACHINE	0
#define MACHINE_SEQ_SEL_SETTING	1
#define MACHINE_SEQ_HANDLING	2
#define MACHINE_SEQ_GEAR		3
#define MACHINE_SEQ_GRIP		4
#define MACHINE_SEQ_START		5
#define MACHINE_SEQ_END			6

/* マシンのセッティングタイプ */
#define MACHINE_SET_TYPE_NORMAL	0
#define MACHINE_SET_TYPE_CUSTOM	1

/* 人の名前のサイズ */
#define MAN_NAME_MAX_SIZE		10
/* マシンの名前のサイズ */
#define MACHINE_NAME_MAX_SIZE		16

/* カメラ初期角度 */
#define MACHINE_CAMERA_INIT_ANGLE	512		/* 0 - 4096 */

/* マシンメーターのカーソル移動 */
#define COUNT_MACHINE_METER_MOVE	4

/* マシンデータ */
typedef struct {
	char	manName[MAN_NAME_MAX_SIZE+1];		/* 文字＋エンドコード */
	char	perf[MAX_NUM_MACHINE_DATA];	/* 0:HANDLING 1:GEAR 2:GRIP */
} sMachine;

/* マシンカラー取得状況 */
#define MACHINE_COLOR_STAT_1P		0x0001
#define MACHINE_COLOR_STAT_2P		0x0002

#define MACHINE_COLOR_STAT_1P_OFF	0xfffe
#define MACHINE_COLOR_STAT_2P_OFF	0xfffd

/*******************************************************************************
	VARIABLE
*******************************************************************************/
/* どのマシンに乗っているか？ */
extern int		myMachineSetting;
extern int		rideMachineNum[];
extern sMachine mMachine[2][MAX_NUM_MACHINE_SEL], mMachineOrg[MAX_NUM_MACHINE_SEL];
extern char		*strMachineNameTable[];
extern int		machineSelNum[2];
extern int		machineSetType[2];

/*******************************************************************************
	FUNCTION
*******************************************************************************/
extern void 	moveMainMachine( void );
extern Gfx 		*makeMainGlistMachine( Gfx *gp );
extern void 	initMainGlistMachine( void );

#endif
