/*
 ******************************************************************************
 *
 *	プレーヤーセレクト画面制御のヘッダー
 *	$Id: player_select.h,v 1.1 2003/06/06 00:15:13 tong Exp $
 *
 ******************************************************************************
 */

#ifndef __PLAYER_SELECT_H_
#define __PLAYER_SELECT_H_

#include "m_basic.h"
#include "m_types.h"
#include "m_private_id.h"

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif

#define PS_MITOUROKU_STR_LEN		(6)
#define PS_GAISHUTU_STR_LEN			(10)
#define PS_ZAITAKU_STR_LEN			(9)
#define DISP_PLAYER_NAME_STR_LEN		\
    				(PS_GAISHUTU_STR_LEN + PERSON_NAME_NUM)

#if	DEBUG
#define PS_PLAYER_MAX		(PLAYER_NUM + 1)
#define	PLAYER_NO_FOR_DEBUG	(PS_PLAYER_MAX - 1)
#else
#define PS_PLAYER_MAX		(PLAYER_NUM)
#endif
	

typedef struct game_player_select_class		GAME_PLAYER_SELECT;
/** 初期化基本関数型 */
typedef void	(* Player_Select_Init_Proc)( GAME_PLAYER_SELECT * );

/*
 *	派生クラスの定義
 */
struct game_player_select_class {
    GAME	g;					/* 基底クラス */
    View	view;					/** ビュワークラス */
    
    Player_Select_Init_Proc	init_proc[PS_PLAYER_MAX];/** 初期化関数 */
    int		player_no;				/** プレーヤー番号 */
    int		init_err;			/** データ初期化終了エラー */
    int		disp_mode;			/** 表示切り替え */
    unchar	player_name[PS_PLAYER_MAX][DISP_PLAYER_NAME_STR_LEN];
    unchar	player_regist[PS_PLAYER_MAX];	/** ゲーム初期化モード */
    unchar	land_name[COUNTRY_NAME_NUM];	/** 現在の国名 */
    unchar	land_regist;			/** 国登録状況 */
    
};

void player_select_init(GAME *this);
void player_select_cleanup(GAME *this);

#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C" */
#endif

#endif /* __PLAYER_SELECT_H_ */
