/*
 ******************************************************************************
 *
 *	時間処理のヘッダー
 *	$Id: m_time.h,v 1.1 2003/06/06 00:15:12 tong Exp $
 ******************************************************************************
 */
#ifndef M_TIMEh
#define M_TIMEh

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif	/* _LANGUAGE_C_PLUS_PLUS */

#include "m_basic.h"
#include "lb_rtc.h"


/* 時間変数のクリアコード */
extern const OSRTCTime          mTM_rtcTime_clear_code;
extern const lbRTC_ymd_c	mTM_rtcTime_ymd_clear_code;
/* デフォルト時間 */
extern const OSRTCTime          mTM_rtcTime_default_code;

/** 季節インデックス最大数 */
#define	mTM_TERM_IDX_MAX			(18)

/*
 *	日付変更チェック権利	gen
 *
 *	現在最大で 8個までです
 */
enum	renew_time_check_permission {

    mTM_TM_PRM_WEATHER_e,	/** 天気 */
    mTM_TM_PRM_EVENT_e,		/** イベント */
    mTM_TM_PRM_HOUSE_e,		/** 家の大きさ変更 */

    /** ダミー */
    mTM_TM_PRM_DUMMY_3_e,
    mTM_TM_PRM_DUMMY_4_e,
    mTM_TM_PRM_DUMMY_5_e,
    mTM_TM_PRM_DUMMY_6_e,
    mTM_TM_PRM_DUMMY_7_e,

    mTM_TM_PRM_END_e
};

/*
 ****************************************************************
 *	日付変更フラグクリア
 ****************************************************************
 */
extern void mTM_clear_renew_is( void );

/*
 ****************************************************************
 *	日付変更チェック			gen
 *
 *	in	: チェック権利
 *			( renew_time_check_permissionに定義 )
 *
 *	out	: なし
 *
 *	返り値	: 日付が変わっている	TRUE
 *		  日付が変わっていない	FALSE
 *---------------------------------------------------------------
 *	備考	このチェック関数でビットチェックした後は
 *		必要であれば各自
 *		mTM_off_renew_time( permission );
 *		を使用してビットをおとしてください
 ****************************************************************
 */
extern int mTM_check_renew_time(
    unchar	permission	/** チェック権利 */
    );

/*
 ****************************************************************
 *	日付変更ビットオフ
 ****************************************************************
 */
extern void mTM_off_renew_time(
    unchar	permission	/** チェック権利 */
    );


/** 日付変更更新日のセット */
extern void	mTM_set_renew_time(
    lbRTC_ymd_c		*renew_p,
    lbRTC_time_c	*now_p
    );
/** 日付変更データ更新	gen */
extern void	mTM_renewal_renew_time( void );

/* 季節設定	gen 2000. 1. 31 */
extern void	mTM_set_season(void);

/* 時間処理 */
extern void	mTM_time(void);


#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C" */
#endif	/* _LANGUAGE_C_PLUS_PLUS */

#endif	/* M_TIMEh */
/*** m_time.h ***/
