/*
 ******************************************************************************
 *
 *	ゲームスタートデータ初期化ファイルヘッダー
 *	$Id: m_start_data_init.h,v 1.1 2003/06/06 00:15:12 tong Exp $
 *
 ******************************************************************************
 */

#ifndef	M_START_DATA_INIT_H_INCLUDED
#define	M_START_DATA_INIT_H_INCLUDED

#if	defined(LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)

#ifdef	_LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif	/** _LANGUAGE_C_PLUS_PLUS */

#include "m_types.h"

/*
 *	スタートデータ初期化モード
 */
enum	start_data_init_mode {
    mSDI_DATA_INIT_MODE_START_e,
    
    mSDI_INIT_MD_NEW_e = mSDI_DATA_INIT_MODE_START_e,	/** 新しいデータ */
    mSDI_INIT_MD_NEW_PLAYER_e,		/** 新しいキャラ */
    mSDI_INIT_MD_FROM_e,		/** セーブデータ */
    mSDI_INIT_MD_PAK_e,			/** パックデータ */
    mSDI_INIT_MD_ERR_e,			/** エラー */
    
    mSDI_DATA_INIT_MODE_END_e
};

/*
 ****************************************************************
 *	共通初期化後処理
 *
 *	始めから・セーブデータで・などどの初期化を通っても最後に
 *	この初期化を通ります
 ****************************************************************
 */
extern void mSDI_StartInitAfter(
    GAME	*game_p,
    int		renew_reserve_mode,
    int		malloc_flag
    );

/*
 ****************************************************************
 *	ゲームスタート時データ前初期化
 *
 *	正常終了	TRUE
 *	処理中		FALSE
 *	異常終了	-1
 *---------------------------------------------------------------
 *	TRUE が返るまで呼んでください
 *	返り値が -1の場合は異常終了です
 ****************************************************************
 */
extern int mSDI_StartInitBefore(
    GAME	*game_p,
    int		player_no,
    int		init_mode,
    int		malloc_flag	/** 0 : malloc / 1 : zelda_malloc */
    );

/*
 ****************************************************************
 *	ゲームスタート時データ初期化関数
 *
 *	正常終了	TRUE
 *	処理中		FALSE
 *	異常終了	-1
 *---------------------------------------------------------------
 *	TRUE が返るまで呼んでください
 *	返り値が -1の場合は異常終了です
 *---------------------------------------------------------------
 *	備考	この関数は前処理, 後処理どちらも行います
 ****************************************************************
 */
extern int mSDI_StartDataInit(
    GAME	*game_p,
    int		player_no,
    int		init_mode
    );

#ifdef	_LANGUAGE_C_PLUS_PLUS
}
#endif	/** _LANGUAGE_C_PLUS_PLUS */

#endif	/** defined(LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
#endif	/** M_START_DATA_INIT_H_INCLUDED */
