/*
 ******************************************************************************
 *
 *      メッセージの処理変更の際に入れる値を加工する関数のヘッダー
 *      $Id: m_msg_request.h,v 1.1 2003/06/06 00:15:12 tong Exp $
 ******************************************************************************
 */
#ifndef M_MSG_REQUEST_H
#define M_MSG_REQUEST_H

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif


/****************** メイン処理変更要求の際に何を特別に初期化するか(一応32bitで) ******************/
#define M_MSG_INIT_ELEMENT_NONE_INSETUP  0
    
/* 通常 */
enum {
    M_MSG_INIT_NORMAL_FROM_WAIT = 1	/* "待機"から来た */
};

/* カーソル表示 */
enum {
    M_MSG_INIT_CURSOL_FROM_WAIT = 1	/* "待機"から来た */
};

/* 出現(待機から) */
enum {
    M_MSG_INIT_APPEAR_WAIT_CLEAR_CURSOL = 1		/* 画面クリヤーしろ */
};

/****************** メイン処理変更要求の際のデータ格納領域 ******************/
/* 出現 */
typedef struct {
    ACTOR	*client_actor_p;	/* メッセージのクライアント(話し手)へのポインタ */
    int		msg_num;	/* リクエストされたメッセージの番号 */
    int		display_name;		/* 会話の際に名前を表示するか */
    rgba_t	window_color;		/* 本体ウインドウの色 */
} M_MSG_REQUEST_MAIN_APPEAR_DATA;

/* 通常 */
typedef struct {
    s32		flag;		/* 変更要求の際に何を特別に初期化するか */
} M_MSG_REQUEST_MAIN_NORMAL_DATA;

/* カーソル表示 */
typedef struct {
    s32		flag;		/* 変更要求の際に何を特別に初期化するか */
} M_MSG_REQUEST_MAIN_CURSOL_DATA;

/* 出現(待機から) */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
    u32		flag;			/* 変更要求の際に何を特別に初期化するか */	
} M_MSG_REQUEST_MAIN_APPEAR_WAIT_DATA;

/* 待機 */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
} M_MSG_REQUEST_MAIN_WAIT_DATA;

/* 消滅(待機へ) */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
} M_MSG_REQUEST_MAIN_DISAPPEAR_WAIT_DATA;


/***** おおもと ******/
typedef union {
    u64 dummy;				/* アライメントのため */
    M_MSG_REQUEST_MAIN_APPEAR_DATA		appear;		/* 出現 */
    M_MSG_REQUEST_MAIN_NORMAL_DATA 		normal;		/* 通常 */
    M_MSG_REQUEST_MAIN_CURSOL_DATA 		cursol;		/* カーソル表示 */
    M_MSG_REQUEST_MAIN_APPEAR_WAIT_DATA 	appear_wait;	/* 出現(待機から) */
    M_MSG_REQUEST_MAIN_WAIT_DATA 		wait;		/* 待機 */
    M_MSG_REQUEST_MAIN_DISAPPEAR_WAIT_DATA 	disappear_wait;	/* 消滅(待機へ) */
} M_MSG_REQUEST_MAIN_DATA;


/****************** メイン処理変更の際のデータ格納領域 ******************/
/* 出現(待機から) */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
} M_MSG_MAIN_APPEAR_WAIT_DATA;

/* 待機 */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
} M_MSG_MAIN_WAIT_DATA;

/* 消滅(待機へ) */
typedef struct {
    int		back_main_index;	/* "待機"状態から何の状態へ戻るのか */
} M_MSG_MAIN_DISAPPEAR_WAIT_DATA;

/***** おおもと ******/
typedef union {
    u64 dummy;				/* アライメントのため */
    M_MSG_MAIN_APPEAR_WAIT_DATA 	appear_wait;	/* 出現(待機から) */
    M_MSG_MAIN_WAIT_DATA 		wait;		/* 待機 */
    M_MSG_MAIN_DISAPPEAR_WAIT_DATA 	disappear_wait;	/* 消滅(待機へ) */
} M_MSG_MAIN_DATA;
    

#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C" */
#endif

#endif /*** m_msg_request.h end ***/
