/*
 ******************************************************************************
 *
 *	プレーヤーの個人情報ヘッダファイル
 *	$Id: m_private_id.h,v 1.1 2003/06/06 00:15:12 tong Exp $
 ******************************************************************************
 */


#ifndef	M_PRIVATE_ID_H_INCLUDED
#define	M_PRIVATE_ID_H_INCLUDED

#if	defined(LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)

#ifdef	_LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif

#include "m_land_h.h"
#include "lb_rtc.h"
#include <limits.h>		/* CHAR_BIT */
#include "m_field_make_h.h"

/* 同国人 */
#define	COMPATRIOT_PLAYER_NUM	(4)
/* 外国人 */
#define	FOREIGNER_PLAYER_NUM	(1)
/* プレイヤーの数 */
#define	PLAYER_NUM		(COMPATRIOT_PLAYER_NUM + FOREIGNER_PLAYER_NUM)
/* 人の名前の文字数 */
#define	PERSON_NAME_NUM		(6)
/* プレーヤー IDタイプ */
#define	PERSONAL_ID_TYPE	(0xf000)
/* プレーヤー IDナンバー取得マスク */
#define	GET_PERSONAL_ID_NO(id)	((id) & (0x00ff))
/* プレーヤー お店で注文 家具の最大数 */
#define	SHOP_FTR_ORDER_MAX	(5)
/* プレーヤー モバイルで注文( 購入 ) 家具の最大数 */
#define	MOBILE_FTR_ORDER_MAX	(10)
/** マップ所持情報最大数 */
#define	GET_MAP_MAX		(8)
    
/*
 *	プレーヤー ID型
 */
typedef	unshort		plyid_t;

/*
 *	個人識別情報クラス
 */
typedef struct {
    unchar	player_name[PERSON_NAME_NUM];	/* プレイヤー登録名前 */
    unchar	land_name[COUNTRY_NAME_NUM];	/* 出身国名[５文字] */
    plyid_t	playerid;			/* プレーヤー ID */
    lndid_t	landid;				/* 出身国 ID */
} PersonalID_c;

/*
 *	運命
 */
typedef struct	player_destiny_information	mPr_dst_c;
struct	player_destiny_information {
    lbRTC_time_c	date;		/** 日付け */
    unchar		status;		/** 状態 ( m_player.h参照 ) */
};

/*
 *	プレーヤーの誕生日
 */
typedef struct	player_birthday			mPr_bth_c;
struct	player_birthday {
    unshort	year;
    unchar	month;
    unchar	day;
};

#define	mPr_MOTHER_MAIL_NML_MAX		(56)
#define	mPr_MOTHER_MAIL_NML_SIZE	(mPr_MOTHER_MAIL_NML_MAX/CHAR_BIT)
#define	mPr_MOTHER_MAIL_M8_MAX		(8)
#define	mPr_MOTHER_MAIL_MTH_MAX		(22)
#define	mPr_MOTHER_MAIL_MTH_SIZE	(mPr_MOTHER_MAIL_MTH_MAX/CHAR_BIT)

/*
 *	手紙送信情報
 */
typedef struct	mother_mail_send_information {
    unchar	normal[mPr_MOTHER_MAIL_NML_SIZE];	/** いつでも */
    unchar	monthly[mPr_MOTHER_MAIL_MTH_SIZE];	/** 月毎 */
    unchar	month_8;				/**  8月 */
} mPr_msnd_c;

/*
 *	プレーヤー母からの手紙情報
 */
typedef struct	privtet_mother_mail_information {
    lbRTC_ymd_c		time;	/** 送った日時 */
    mPr_msnd_c		send;	/** 送ったかフラグ */
} mPr_pmm_c;

/*
 *	外国に置いてきた NPC情報
 */
typedef struct	private_remove_animal_memory {
    mAc_nfs_t		name;	/** 置いてきた動物のテーブルナンバー */
    unchar		land_name[COUNTRY_NAME_NUM];	/** 置いてきた国 */
} mPr_ranm_c;

/*
 *	マップ所持情報
 */
typedef struct {
    unchar	land_name[COUNTRY_NAME_NUM];
    lndid_t	land_id;
} mPr_map_c;

#ifdef	_LANGUAGE_C_PLUS_PLUS
}
#endif

#endif	/** defined(LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#endif	/** M_PRIVATE_ID_H_INCLUDED */
