/* $Id: z_player_macro.h,v 1.1.1.1 2003/03/10 22:42:47 tong Exp $ */	
/* $Log: z_player_macro.h,v $
 * Revision 1.1.1.1  2003/03/10 22:42:47  tong
 * new OBJ tree for ocarina from Nintendo
 *
 * Revision 2.2  1998-10-28 14:03:18+09  iwawaki
 * *** empty log message ***
 *
 * Revision 2.1  1998-10-22 20:51:48+09  zelda
 * ＲＯＭ出しバージョン(NTSC)
 *
 * Revision 1.87  1998/09/26 16:26:08  iwawaki
 * *** empty log message ***
 *
 * Revision 1.86  1998-09-22 00:40:03+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.85  1998-09-20 02:06:26+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.84  1998-09-18 00:47:04+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.83  1998-09-17 01:05:08+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.82  1998-09-16 00:59:38+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.81  1998-09-12 00:20:55+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.80  1998-08-28 00:36:14+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.79  1998-08-11 00:55:54+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.78  1998-08-04 13:55:04+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.77  1998-07-31 22:51:54+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.76  1998-07-22 23:03:03+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.75  1998-07-06 22:57:17+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.74  1998-06-15 22:57:14+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.73  1998-06-11 23:08:08+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.72  1998-06-10 22:59:00+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.71  1998-06-01 22:34:52+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.70  1998-05-26 22:53:42+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.69  1998-05-07 23:20:36+09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.68  1998/05/07 02:29:51  iwawaki
 * *** empty log message ***
 *
 * Revision 1.67  1998/05/06 14:30:31  iwawaki
 * *** empty log message ***
 *
 * Revision 1.66  1998/05/02 14:34:06  iwawaki
 * *** empty log message ***
 *
 * Revision 1.65  1998/04/28 14:21:39  iwawaki
 * *** empty log message ***
 *
 * Revision 1.64  1998/04/07 14:12:03  iwawaki
 * *** empty log message ***
 *
 * Revision 1.63  1998/03/25  11:48:00  yoshida
 * Ｃ＋＋からのインクルードに対応
 *
 * Revision 1.62  1998/03/23  14:01:16  iwawaki
 * *** empty log message ***
 *
 * Revision 1.61  1998/03/18  14:02:39  iwawaki
 * *** empty log message ***
 *
 * Revision 1.60  1998/03/13  13:51:08  iwawaki
 * *** empty log message ***
 *
 * Revision 1.59  1998/03/12  13:52:21  iwawaki
 * *** empty log message ***
 *
 * Revision 1.58  1998/03/10  11:24:59  iwawaki
 * *** empty log message ***
 *
 * Revision 1.57  1998/03/07  14:24:48  iwawaki
 * *** empty log message ***
 *
 * Revision 1.56  1998/03/05  14:17:49  iwawaki
 * *** empty log message ***
 *
 * Revision 1.55  1998/03/05  06:09:24  iwawaki
 * *** empty log message ***
 *
 * Revision 1.54  1998/03/03  14:04:24  iwawaki
 * *** empty log message ***
 *
 * Revision 1.53  1998/02/25  13:45:56  iwawaki
 * *** empty log message ***
 *
 * Revision 1.52  1998/02/23  14:08:52  iwawaki
 * *** empty log message ***
 *
 * Revision 1.51  1998/02/21  13:24:20  iwawaki
 * *** empty log message ***
 *
 * Revision 1.50  1998/02/18  05:36:18  iwawaki
 * *** empty log message ***
 *
 * Revision 1.49  1998/02/14  13:43:49  iwawaki
 * *** empty log message ***
 *
 * Revision 1.48  1998/02/05  13:47:30  iwawaki
 * *** empty log message ***
 *
 * Revision 1.47  1998/01/31  12:21:45  iwawaki
 * *** empty log message ***
 *
 * Revision 1.46  1998/01/26  09:24:56  iwawaki
 * *** empty log message ***
 *
 * Revision 1.45  1998/01/16  13:40:09  iwawaki
 * *** empty log message ***
 *
 * Revision 1.44  1997/12/17  14:19:07  iwawaki
 * /
 *
 * Revision 1.43  1997/12/11  09:50:00  iwawaki
 * *** empty log message ***
 *
 * Revision 1.42  1997/11/15  10:16:24  iwawaki
 * *** empty log message ***
 *
 * Revision 1.41  1997/11/10  12:08:15  iwawaki
 * *** empty log message ***
 *
 * Revision 1.40  1997/11/07  14:27:18  iwawaki
 * *** empty log message ***
 *
 * Revision 1.39  1997/11/04  14:20:06  iwawaki
 * *** empty log message ***
 *
 * Revision 1.38  1997/11/01  14:58:39  iwawaki
 * *** empty log message ***
 *
 * Revision 1.37  1997/10/22  14:45:46  iwawaki
 * *** empty log message ***
 *
 * Revision 1.36  1997/10/21  03:11:36  iwawaki
 * *** empty log message ***
 *
 * Revision 1.35  1997/10/17  09:07:14  iwawaki
 * *** empty log message ***
 *
 * Revision 1.34  1997/10/15  14:37:25  iwawaki
 * *** empty log message ***
 *
 * Revision 1.33  1997/10/13  14:38:08  iwawaki
 * *** empty log message ***
 *
 * Revision 1.32  1997/10/10  14:54:14  iwawaki
 * *** empty log message ***
 *
 * Revision 1.31  1997/10/08  14:27:05  iwawaki
 * *** empty log message ***
 *
 * Revision 1.30  1997/10/07  14:22:31  iwawaki
 * *** empty log message ***
 *
 * Revision 1.29  1997/10/01  14:43:29  iwawaki
 * *** empty log message ***
 *
 * Revision 1.28  1997/09/27  14:22:26  iwawaki
 * *** empty log message ***
 *
 * Revision 1.27  1997/09/25  05:49:40  iwawaki
 * *** empty log message ***
 *
 * Revision 1.26  1997/09/24  14:32:54  iwawaki
 * *** empty log message ***
 *
 * Revision 1.25  1997/09/19  14:41:42  iwawaki
 * *** empty log message ***
 *
 * Revision 1.24  1997/09/17  08:37:55  iwawaki
 * *** empty log message ***
 *
 * Revision 1.23  1997/09/14  14:16:57  iwawaki
 * *** empty log message ***
 *
 * Revision 1.22  1997/08/29  04:38:50  iwawaki
 * *** empty log message ***
 *
 * Revision 1.21  1997/08/21  08:32:12  iwawaki
 * *** empty log message ***
 *
 * Revision 1.20  1997/08/13  13:27:23  iwawaki
 * *** empty log message ***
 *
 * Revision 1.19  1997/08/06  03:23:01  iwawaki
 * *** empty log message ***
 *
 * Revision 1.18  1997/08/04  01:34:57  iwawaki
 * *** empty log message ***
 *
 * Revision 1.17  1997/07/31  07:47:11  iwawaki
 * *** empty log message ***
 *
 * Revision 1.16  1997/07/28  14:04:47  iwawaki
 * *** empty log message ***
 *
 * Revision 1.15  1997/07/28  01:24:55  iwawaki
 * *** empty log message ***
 *
 * Revision 1.14  1997/07/24  08:02:28  iwawaki
 * *** empty log message ***
 *
 * Revision 1.13  1997/07/23  06:17:21  iwawaki
 * *** empty log message ***
 *
 * Revision 1.12  1997/07/22  00:14:58  iwawaki
 * *** empty log message ***
 *
 * Revision 1.11  1997/07/16  10:36:17  iwawaki
 * *** empty log message ***
 *
 * Revision 1.10  1997/07/14  08:10:25  iwawaki
 * *** empty log message ***
 *
 * Revision 1.9  1997/07/11  07:52:11  iwawaki
 * *** empty log message ***
 *
 * Revision 1.8  1997/07/09  11:55:35  iwawaki
 * *** empty log message ***
 *
 * Revision 1.7  1997/07/09  04:39:47  iwawaki
 * *** empty log message ***
 *
 * Revision 1.6  1997/07/08  11:48:15  iwawaki
 * *** empty log message ***
 *
 * Revision 1.5  1997/07/05  12:39:45  iwawaki
 * *** empty log message ***
 *
 * Revision 1.4  1997/07/04  05:55:52  iwawaki
 * *** empty log message ***
 *
 * Revision 1.3  1997/07/02  00:33:58  iwawaki
 * *** empty log message ***
 *
 * Revision 1.2  1997/06/26  05:16:52  iwawaki
 * *** empty log message ***
 *
 * Revision 1.1  1997/06/19  05:21:53  iwawaki
 * Initial revision
 * */


#ifndef INCLUDE_Z_PLAYER_MACRO_H
#define INCLUDE_Z_PLAYER_MACRO_H

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif

/************************************************************************
 *
 *	プレイヤーマクロ
 *
 ************************************************************************/
/*
 * ＢＧチェック設定データ
 */
#define	P_WALL_BGCHECK_OFFSET_Y		(65.0f * SCALE_RATIO)
#define	P_WALL_BGCHECK_R		(40.0f * SCALE_RATIO)
#define	P_ROOF_BGCHECK_OFFSET_Y		(150.0f * SCALE_RATIO)

enum {
    P_WALL_HIGH_OUT,
    P_WALL_HIGH_51_100,
    P_WALL_HIGH_101_150,
    P_WALL_HIGH_151_249,
    P_WALL_HIGH_250
};

#define	P_WALL_HIGH_MAX			(999.9f * SCALE_RATIO)

#define	P_PUSH_OK_WALL_HIGH		((100.0f * SCALE_RATIO) - 1.0f)
#define	P_CLIMB_UP_WALL_HIGH		((200.0f * SCALE_RATIO) - 1.0f)

#define P_STEPUP_MAX_HIGH		((280.0f * SCALE_RATIO) - 1.0f)
#define P_STEPUP_MAX_HIGH_CHILD		((180.0f * SCALE_RATIO) - 1.0f)
#define P_STEPUP_SWIM_HIGH		(175.0f * SCALE_RATIO)
#define P_STEPUP_SWIM_HIGH_CHILD	(125.0f * SCALE_RATIO)
#define P_STEPUP_250_HIGH		((201.0f * SCALE_RATIO) - 1.0f)
#define P_STEPUP_250_HIGH_CHILD		((120.0f * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_150_HIGH		((150.0f * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_150_HIGH_CHILD		((100.0f * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_100_HIGH		((100.0f * SCALE_RATIO) - 1.0f + 2.0f)
#define	P_STEPUP_100_HIGH_CHILD		((70.0f  * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_50_HIGH		((50.0f  * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_50_HIGH_CHILD		((50.0f  * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_15_HIGH		((152.5f * SCALE_RATIO) - 1.0f)
#define	P_STEPUP_15_HIGH_CHILD		((152.5f * SCALE_RATIO) - 1.0f)

#define	P_WATER_OUT_SURFACE_Y		(90.0f * SCALE_RATIO)
#define	P_WATER_OUT_SURFACE_Y_CHILD	(55.0f * SCALE_RATIO)
#define	P_WATER_SURFACE_OFFSET_Y	(112.0f * SCALE_RATIO)
#define	P_WATER_SURFACE_OFFSET_Y_CHILD	(74.0f * SCALE_RATIO)
#define	P_WATER_DIVE_SURFACE_Y		(140.0f * SCALE_RATIO)
#define	P_WATER_DIVE_SURFACE_Y_CHILD	(80.0f * SCALE_RATIO)
#define	P_DEEP_END_WATER_SURFACE_Y	 (170.0f * SCALE_RATIO)
#define	P_DEEP_END_WATER_SURFACE_Y_CHILD (120.0f * SCALE_RATIO)
#define	P_WATER_SLIDE_OK_SURFACE_Y	(50.0f * SCALE_RATIO)
#define	P_SWIM_DEEP_TIME_MAX		300

#define	P_JUMP_CLIMB_OK_MAX_HIGH	(375.0f * SCALE_RATIO)			/* ジャンプぶら下がり壇上までの最大高さ */

#define	P_FALL_OK_TO_GROUND_HIGH	(175.0f * SCALE_RATIO)
#define	P_FALL_OK_TO_GROUND_HIGH_CHILD	(175.0f * SCALE_RATIO * P_CHILD_SCALE)

#define	P_STEPUP_ANIME_POS_SET_FRAME	4.0f
#define	P_STEPUP_CANCEL_OK_FRAME	4.0f	

/*
 * コントローラー情報
 */
#define	P_PAD			0
//#define	P_PAD			(this->actor.arg_data)

#define	ANCHOR_KEY		(Z_TRIG)
#define	DEFENSE_KEY		(R_TRIG)
#define	LOOK_KEY		(U_CBUTTONS)
#define	ARMS_1_KEY		(L_CBUTTONS)
#define	ARMS_2_KEY		(D_CBUTTONS)
#define	ARMS_3_KEY		(R_CBUTTONS)

#define	KIRU_KEY		(B_BUTTON)
#define	BOW_KEY			(B_BUTTON)
#define	BOMB_KEY		(B_BUTTON)
#define	BOOM_KEY		(B_BUTTON)
#define	OKARINA_KEY		(B_BUTTON)
    
#define	DOOR_OPEN_KEY		(A_BUTTON)
#define	CARRY_KEY		(A_BUTTON)
#define	TALK_KEY		(A_BUTTON)
#define	PUSH_KEY		(A_BUTTON)
#define	STEPUP_KEY		(A_BUTTON)
#define	CHECK_KEY		(A_BUTTON)
#define	RIDE_KEY		(A_BUTTON)
#define	JUMP_KEY		(A_BUTTON)
#define	OKARINA_CANCEL_KEY	(A_BUTTON)
#define	DIVE_KEY		(A_BUTTON)

#define	THROW_KEY		(A_BUTTON | B_BUTTON | KIRU_KEY | ARMS_1_KEY | ARMS_2_KEY | ARMS_3_KEY)

#define	NORMAL_FIGHTER_KEY	(D_CBUTTONS)

/*
 * アニメーション情報
 */
#define	P_GLOBAL_JOINT		(0+1)
#define P_HEAD_JOINT     	(10+1)
#define	P_NECK_JOINT		P_HEAD_JOINT
#define	P_BODY_JOINT		(9+1)
#define	P_L_HAND_JOINT		(15+1)
#define	P_SWORD_JOINT		(15+1)
#define	P_R_HAND_JOINT		(18+1)
#define	P_CARRY_JOINT		(19+1)
#define	P_WAIST_JOINT		(1+1)
#define P_L_FOOT_JOINT          (8+1)
#define P_R_FOOT_JOINT          (5+1)
#define P_L_LEG_A_JOINT		(6+1)
#define P_L_LEG_B_JOINT		(7+1)
#define P_R_LEG_A_JOINT         (3+1)
#define P_R_LEG_B_JOINT         (4+1)
#define P_HAT_JOINT     	(11+1)
#define P_CHEST_JOINT     	(20+1)
#define P_L_ARM_A_JOINT     	(13+1)
#define P_L_ARM_B_JOINT     	(14+1)
#define P_R_ARM_A_JOINT     	(16+1)
#define P_R_ARM_B_JOINT     	(17+1)

#define	P_SKELETON_OFFSET_X		-57.400002f	
#define	P_CHILD_SKELETON_OFFSET_X	0.000000f	
#define	P_SKELETON_OFFSET_Y		3377.100098f	
#define	P_CHILD_SKELETON_OFFSET_Y	2376.000000f	
#define	P_SKELETON_OFFSET_Z		0.000000f	
#define	P_CHILD_SKELETON_OFFSET_Z	0.000000f	

#define	P_LEG_A_LENGTH			1304.0f	
#define	P_LEG_A_LENGTH_CHILD		695.0f
#define	P_LEG_B_LENGTH			1265.0f
#define	P_LEG_B_LENGTH_CHILD		826.0f
#define	P_LEG_A_SCALE_LENGTH		(P_LEG_A_LENGTH * P_SCALE)
#define	P_LEG_A_SCALE_LENGTH_CHILD	(P_LEG_A_LENGTH_CHILD * P_SCALE)
#define	P_LEG_B_SCALE_LENGTH		(P_LEG_B_LENGTH * P_SCALE)
#define	P_LEG_B_SCALE_LENGTH_CHILD	(P_LEG_B_LENGTH_CHILD * P_SCALE)
    
#define P_ANIME_WAIT_STOP   	1.0f	/* 待ちアニメーション停止ポーズカウンター */
#define P_ANIME_FIGHT_SHAPE	6.0f	/* ノーマル，戦闘モード切り替えアニメーションシェイプ切り替えカウンター */

/*
 * 主観モードフラグ
 */
enum {
    P_LOOK_MODE_OFF,		/* 客観モード */
    P_LOOK_MODE_NORMAL,		/* 主観モード */
    P_LOOK_MODE_BOW,		/* 弓矢主観モード */
    P_LOOK_MODE_DEMO_PLAY,	/* デモ再生モード */
    P_LOOK_MODE_OKARINA		/* オカリナモード */
};

/*
 * シェイプタイプ
 */
enum {
    SHAPE_TYPE_A,
    SHAPE_TYPE_B,
    SHAPE_TYPE_C,
    SHAPE_TYPE_D,
    SHAPE_TYPE_H,
    SHAPE_TYPE_I,
    SHAPE_TYPE_K,
    SHAPE_TYPE_L,
    SHAPE_TYPE_M,
    SHAPE_TYPE_N,
    SHAPE_TYPE_O,
    SHAPE_TYPE_P,
    SHAPE_TYPE_S,
    SHAPE_TYPE_T,
    SHAPE_TYPE_U,
    SHAPE_TYPE_V,
    SHAPE_TYPE_MAX
};
/*
 * アニメーションタイプ
 */
enum {
    ANIME_TYPE_FREE,
    ANIME_TYPE_SHIELD,
    ANIME_TYPE_SHIELD_FREE,
    ANIME_TYPE_LONGSWORD,
    ANIME_TYPE_BOW,
    ANIME_TYPE_BOMB,
    ANIME_TYPE_MAX
};

/*
 * 斬るタイプ
 */
enum {
    NORMAL_KIRU,
    LNORMAL_KIRU,
    NORMAL_KIRU_FINSH,
    LNORMAL_KIRU_FINSH,

    LSIDE_KIRU,
    LLSIDE_KIRU,
    LSIDE_KIRU_FINSH,
    LLSIDE_KIRU_FINSH,

    RSIDE_KIRU,
    LRSIDE_KIRU,
    RSIDE_KIRU_FINSH,
    LRSIDE_KIRU_FINSH,

    PIERCE_KIRU,
    LPIERCE_KIRU,
    PIERCE_KIRU_FINSH,
    LPIERCE_KIRU_FINSH,

    JUMP_KIRU,
    LJUMP_KIRU,
    JUMP_KIRU_FINSH,
    LJUMP_KIRU_FINSH,

    TURN_KIRU_R,
    TURN_KIRU_L,
    
    HAMMER_HIT,
    HAMMER_SIDE_HIT,

    ROLLING_KIRU,
    LROLLING_KIRU,

    WROLLING_KIRU,
    LWROLLING_KIRU
};

/*
 * ダイナミックアニメーション設定フラグ
 */
#define	ANIME_ANGLE_STATUS_EYE_X	(1)
#define	ANIME_ANGLE_STATUS_EYE_Y	(1<<1)
#define	ANIME_ANGLE_STATUS_EYE_Z	(1<<2)
#define	ANIME_ANGLE_STATUS_NECK_X	(1<<3)
#define	ANIME_ANGLE_STATUS_NECK_Y	(1<<4)
#define	ANIME_ANGLE_STATUS_NECK_Z	(1<<5)
#define	ANIME_ANGLE_STATUS_BODY_X	(1<<6)
#define	ANIME_ANGLE_STATUS_BODY_Y	(1<<7)
#define	ANIME_ANGLE_STATUS_BODY_Z	(1<<8)

#define	P_STICK_TO_SPEEDF		0.14f
#define	P_RUN_SPEEDF_RATIO		0.018f
#ifndef PAL_VERSION	/* 日本 ＆ ＮＥＳ */
#define	P_MAX_SPEED_Y			-20.0f
#else			/* ＰＡＬ */
#define	P_MAX_SPEED_Y			-24.0f
#endif

#define	P_TO_BRAKE_ANGLE_RATIO		0x6000
#define	P_TO_BRAKE_OK_SPEEDF		6.0f
#define	P_TO_STOP_BRAKE_OK_SPEEDF	7.0f
#define	P_ANIME_MORF_BASIC_FRAME	-6.0f

#define	P_RUN_ACCEL_SPEEDF		(((float)REG(19))/100.0f)
#define	P_STOP_ACCEL_SPEEDF		1.5f
#define	P_ANCHOR_WAIT_WALK_ACCEL_SPEEDF	2.0f
#define	P_ANCHOR_WAIT_STOP_ACCEL_SPEEDF	1.5f
#define	P_ANCHOR_SIDE_WALK_ACCEL_SPEEDF	2.0f
#define	P_ANCHOR_SIDE_STOP_ACCEL_SPEEDF	3.0f

#define	P_ANCHOR_WAIT_STOP_ACCEL_FRAME	6		/* 注目停止中のフットワーク着地減速のフレーム数 */

#define	P_ANCHOR_LR_RATIO_STEP		0.3f

#define	P_CHASE_ANGLE_STEP		(REG(27))

#define	P_ANCHOR_SIDE_WALK_AIM_SPEEDF	4.0f
#define	P_PARALLEL_SIDE_WALK_AIM_SPEEDF	4.9f		/* 平行モード横走り開始スピード */

#define	P_ANCHOR_WAIT_SPEEDF_RATIO	0.3f
#define	P_SIDE_WALK_BASE_ANIME_SPEED	(((float)REG(30))/1000.0f)
#define	P_ANCHOR_SIDE_WALK_SPEEDF_RATIO	0.9f
#define	P_SIDE_WALK_ANIME_SPEED_RATIO	(((float)REG(32))/1000.0f)

#define	P_WALK_ANIME_MORF_RATIO		(((float)REG(34))/1000.0f)
#define	P_WALK_BASE_ANIME_SPEED		(((float)REG(35))/1000.0f)
#define	P_WALK_ANIME_SPEED_RATIO	(((float)REG(36))/1000.0f)
#define	P_RUN_ANIME_MORF_FRAME		1.0f
#define	P_RUN_ANIME_MORF_RATIO		(((float)REG(37))/1000.0f)
#define	P_RUN_BASE_ANIME_SPEED		1.2f
#define	P_RUN_ANIME_SPEED_RATIO		(((float)REG(38))/1000.0f)
#define	P_U_TURN_TO_RUN_ANIME_FRAME	15
#define	P_U_TURN_TO_RUN_SET_FRAME	23.0f
#define	P_TURN_RUN_TO_RUN_ANIME_FRAME	0.0f
#define	P_TURN_RUN_TO_RUN_SET_FRAME	3.0f
#define	P_TURN_TO_ACTION_OK_FRAME	4.0f

#define	P_BRAKE_ACCEL_SPEEDF		(((float)REG(43))/100.0f)
#define	P_LANDING_BRAKE_ACCEL_SPEEDF	1.0f
#define	P_RUN_MIN_SPEEDF		0.1f
#define	P_TURN_RUN_OK_SPEEDF		2.0f

#define	P_NO_ANIME_TURN_ANGLE		1000
#define	P_45_TURN_ANGLE			14000
#define	P_90_TURN_ANGLE			22000
#define	P_NO_ANIME_TURN_ANGLE_SPEED	600
#define	P_45_TURN_ANGLE_SPEED		1200
#define	P_90_TURN_ANGLE_SPEED		1400
#define	P_180_TURN_ANGLE_SPEED		1800
#define	P_TURN_CANCEL_ANGLE_Y		18000

#define	P_WALK_SPEEDF			(((float)REG(48))/100.0f)

#define	P_BACK_WALK_SPEEDF		8.0f
#define	P_BACK_WALK_BRAKE_FRAME		5.0f
#define	P_BACK_WALK_RETRY_FRAME		10.0f

#define	P_ANCHOR_WAIT_ANIME_SPEED_RATIO	0.3f

#define	P_COMBO_A_MAX				4	/* コンビネーション攻撃最大数 */
#define	P_RUN_ANIME_FRAME_MAX			29.0f
#define	P_HIT_OK_DAMAGE_FRAME			15.0f
#define	P_HIT_RETRY_START_FRAME			3.0f
#define	P_WAIT_KIRU_RETRY_FRAME			8.0f
#define	P_WAIT_KIRU_DEFENSE_FRAME		18.0f
#define	P_WAIT_KIRU_ATTACK_START_FRAME		1.0f
#define	P_WAIT_KIRU_ATTACK_END_FRAME		9.0f

#define	P_RUN_KIRU_OK_SPEEDF			(P_RUN_MAX_SPEEDF-1.0f)
#define	P_RUN_KIRU_RETRY_FRAME			10.0f
#define	P_RUN_KIRU_DEFENSE_FRAME		18.0f
#define	P_RUN_KIRU_ATTACK_START_FRAME		1.0f
#define	P_RUN_KIRU_ATTACK_END_FRAME		8.0f

#define	P_NORMAL_FIGHTER_DEFENSE_FRAME		18.0f

#define	P_UTURN_KIRU_ATTACK_START_FRAME		12.0f
#define	P_UTURN_KIRU_ATTACK_END_FRAME		20.0f

#define	P_TURN_KIRU_R_ATTACK_START_FRAME	4.0f
#define	P_TURN_KIRU_R_ATTACK_END_FRAME		12.0f
#define	P_TURN_KIRU_L_ATTACK_START_FRAME	5.0f
#define	P_TURN_KIRU_L_ATTACK_END_FRAME		13.0f
    
#define	P_TO_ANCHOR_SIDE_KIRU_STICK_RATIO	20.0f
#define	P_ANCHOR_KIRU_RETRY_FRAME		10.0f
#define	P_ANCHOR_KIRU_DEFENSE_FRAME		18.0f
#define	P_ANCHOR_KIRU_R_ATTACK_START_FRAME	1.0f
#define	P_ANCHOR_KIRU_L_ATTACK_START_FRAME	3.0f
#define	P_ANCHOR_KIRU_R_ATTACK_END_FRAME	8.0f
#define	P_ANCHOR_KIRU_L_ATTACK_END_FRAME	12.0f

#define	P_PIERCE_KIRU_ATTACK_START_FRAME	2.0f
#define	P_PIERCE_KIRU_ATTACK_END_FRAME		7.0f
#define	P_PIERCE_KIRU_RETRY_FRAME		8.0f

#define	P_TO_UPPER_PIERCE_KIRU_STICK_RATIO	20.0f
#define	P_UPPER_PIERCE_KIRU_ATTACK_START_FRAME	0.0f
#define	P_UPPER_PIERCE_KIRU_ATTACK_END_FRAME	12.0f

#define	P_JUMP_KIRU_ATTACK_START_FRAME		15.0f
#define	P_JUMP_KIRU_ATTACK_END_FRAME		20.0f

#define	P_LANDING_MORF_FRAME			8.0f
#define	P_JUMP_START_SPEEDY			(((float)REG(69))/100.0f)
#define	P_SKY_BRAKE_ACCEL_SPEEDF		1.0f
#define	P_SKY_SPEEDF_RATIO			1.0f
#define	P_SKY_ACCEL_SPEEDF			0.05f
#define	P_SKY_STOP_ACCEL_SPEEDF			0.1f
#define	P_SKY_ANGLE_SPEED			200
#define	P_RUN_JUMP_OK_SPEEDF			4.0f
#define	P_LANDING_CHECK_HIGH			((short)(200.0f * SCALE_RATIO))
#define	P_DAMAGE_LANDING_CHECK_HIGH		((short)(1000.0f * SCALE_RATIO))
#define	P_BIG_DAMAGE_LANDING_CHECK_HIGH		((short)(2000.0f * SCALE_RATIO))
#define	P_RUN_JUMP_TO_RUN_START_FRAME		9.0f

#define	P_CLIMB_MAX_ANGLE_X			((short)(65536.0f*60.0f/360.0f))
#define	P_CLIMB_START_ANGLE_X			((short)(65536.0f*20.0f/360.0f))

#define	P_FREEFALL_CAMERA_SET_OK_TO_GROUND_Y	100.0f		/* 落下カメラ用 */

#define	P_DOOR_OPEN_CAMERA_SET_OK_FRAME		40.0f
#define	P_DOOR_OPEN_START_DISTANCE_Z		22.0f
#define	P_DOOR_OPEN_A_END_DISTANCE_X		13.6588f
#define	P_DOOR_OPEN_A_END_DISTANCE_Z		27.9962f
#define	P_DOOR_OPEN_B_END_DISTANCE_X		19.9982f
#define	P_DOOR_OPEN_B_END_DISTANCE_Z		-25.1969f

#define	P_PARALLEL_SIDE_WALK_SPEEDF_RATIO	0.4f
#define	P_PARALLEL_SIDE_WALK_ACCEL_SPEEDF	1.5f
#define	P_PARALLEL_SIDE_WALK_STOP_ACCEL_SPEEDF	1.5f
#define	P_PARALLEL_BACK_RUN_WALK_SPEEDF_RATIO	1.5f
#define	P_PARALLEL_BACK_RUN_ACCEL_SPEEDF	1.5f
#define	P_PARALLEL_BACK_RUN_STOP_ACCEL_SPEEDF	2.0f

#define	P_POWER_KIRU_WALK_OK_SPEEDF		4.0f
#define	P_POWER_KIRU_WALK_ANIME_SPEED_RATIO	1.0f
#define	P_POWER_KIRU_WALK_BRAKE_ACCEL_SPEEDF	1.0f
#define	P_POWER_KIRU_WALK_SPEEDF_RATIO		0.2f
#define	P_POWER_KIRU_WALK_ACCEL_SPEEDF		1.0f
#define	P_POWER_KIRU_WALK_STOP_ACCEL_SPEEDF	0.5f

#define	P_POWER_KIRU_SIDE_ANIME_SPEED_RATIO	1.5f
#define	P_POWER_KIRU_SIDE_BRAKE_ACCEL_SPEEDF	1.0f
#define	P_POWER_KIRU_SIDE_SPEEDF_RATIO		0.2f
#define	P_POWER_KIRU_SIDE_ACCEL_SPEEDF		1.0f
#define	P_POWER_KIRU_SIDE_STOP_ACCEL_SPEEDF	0.5f

#define	P_TO_THROW_OK_SPEEDF			1.1f
#define	P_TO_THROW_FROM_PUT_OK_FRAME		4.0f
#define	P_THROW_CANCEL_OK_FRAME			8.0f

#define	P_NECK_JOINT_OFFSET_ANGLE_X		-24
#define	P_NECK_JOINT_OFFSET_ANGLE_Y		-431
#define	P_NECK_JOINT_OFFSET_ANGLE_Z		-29914
#define	P_BODY_JOINT_OFFSET_ANGLE_X		0
#define	P_BODY_JOINT_OFFSET_ANGLE_Y		0
#define	P_BODY_JOINT_OFFSET_ANGLE_Z		18678

#define	P_NECK_ANGLE_MAX			90.0f

#define	P_CULL_SHAPE_EYE_DISTANCE		15.0f

/*
 * 帽子アクション用
 */
#define	P_HAT_JOINT_0_R		(500.0f)
#define	P_HAT_JOINT_1_R		(500.0f)
#define	P_HAT_JOINT_2_R		(515.0f)

/*
 * 押し，引きアクション用
 */
#define	P_PUSH_POWER		2.0f
#define	P_PULL_POWER		-2.0f

/*
 * ブーメラン投げ用
 */
#define	P_BOOM_THROW_FRAME		6.0f
#define	P_BOOM_THROW_SET_OFFSET_Z	10.0f
#define	P_BOOM_THROW_SET_OFFSET_Y	30.0f

/*
 * デクの棒炎タイマー
 */
#define	P_STICK_FIRE_MIN_TIMER	20
#define	P_STICK_FIRE_BASE_TIMER	200
#define	P_STICK_FIRE_PLAS_TIMER	10
	
/*
 * 宝箱のＺオフセット
 */
#define	P_ITEM_BOX_OFFSET_Z	29.4343f

/*
 * サウンド用
 */
#define	P_SE_WALK_1_FRAME	10.0f
#define	P_SE_WALK_2_FRAME	24.0f


#ifdef _LANGUAGE_C_PLUS_PLUS
} /* extern "C" */
#endif

#endif

/*** z_player_macro.h end ***/
