//**************************************************************
//
//						teki.h
//
//**************************************************************

//--------------------------------------------------------------
#ifndef	GAME_H_INCLUDED
#define	GAME_H_INCLUDED

#include	"tekimac.h"

extern void WarioVoiceSet(int);

/***************************************************************
						敵汎用 値定義
***************************************************************/

//--------------------------------------------------------------------------------
#define		TEKIGRPMAX		91		// TekiGrpDataTblを増やす毎にココの数字も増やす

#define		TGETA			64*4	// 左端＆上端のゼロに対する下駄。（64ドット分）

#define		TH_AREA			3			// 敵配置する際の表示画面外サーチのパネル範囲
#define		EXEOFFMG		((TH_AREA+6)*16*4)	// 処理オフする上下左右マージン
#define		TGETA2			((TH_AREA+7)*16*4)
//#define		EXEOFFMG		((TH_AREA+4)*16*4)	// 処理オフする上下左右マージン
//#define		TGETA2			((TH_AREA+5)*16*4)

#define		STP		0x7FFF
#define		XXX		0


#define		T_JISHIN_CHK_WPOW1		(WJISIN_POW1-7)
#define		T_JISHIN_CHK_WPOW2		(WJISIN_POW2-7)

//#define		TJISHIN_POW0			0x18
#define		TJISHIN_POW1			0x30


//★暫定
//#define		MAP_PNLH		0xA2-1	// マップの左端を０とした時の右端のパネルの番号
//#define		MAP_PNLV		(0x0E)-1		// マップの上端を０とした時の下端のパネルの番号

//--------------------------------------------------------------------------------
#define		FRAWANA_NIYAKE_TIME		60
#define		DORAMORI_NIYAKE_TIME	20	// ワリオがリアクションから戻った後目を戻すまでの時間




//--------------------------------------------------------------------------------
//			usStatus
//
#define		T_EXEC_ON		0x0001	// d0　処理ON/OFFフラグ
#define		T_EXEC_OFF		0x0000	//
#define		T_DISP_ON		0x0002	// d1　表示ON/OFFフラグ
#define		T_DISP_OFF		0xFFFD	//
#define		T_TENMETU_ON	0x0004	// d2　点滅ON/OFFフラグ（表示:0　非表示:1）
#define		T_TENMETU_OFF	0xFFFB	//
#define		T_BACK_ON		0x0008	// d3　ＢＧ的敵フラグ（敵OBJ内で優先下げる）
#define		T_BACK_OFF		0xFFF7	// d3

#define		T_CHILD_ON		0x0010	// d4　子供フラグ
#define		T_WEIGHT_ON		0x0020	// d5　体重フラグ		（軽い:0　重い:1）
#define		T_WEIGHT_OFF	0xFFDF	// d5
#define		T_H_FLIP_ON		0x0040	// d6　向きフラグ		（左:0　右:1）
#define		T_H_FLIP_OFF	0xFFBF	// d6
#define		T_AFFINE_ON		0x0080	// d7　回転拡縮フラグ	（off:0　on:1）
#define		T_AFFINE_OFF	0xFF7F	// d7

#define		T_NAGECHU_ON	0x0100	// d8　投げ中フラグ
#define		T_NAGECHU_OFF	0xFEFF	// d8
#define		T_ATARARE_ON	0x0200	// d9　もう当たられたよフラグ
#define		T_ATARARE_OFF	0xFDFF	// d9
#define		T_NO_TD_ATA_ON	0x0400	// d10 敵同士アタリ見ないフラグ
#define		T_NO_TD_ATA_OFF	0xFBFF	// d10
#define		T_WATER_IN		0x0800	// d11 陸上の敵、水に入ったよフラグ
#define		T_WATER_IN_OFF	0xF7FF	// d11

#define		T_WARIO_T_ON	0x1000	// d12 ワリオ上に乗り中フラグ(OBJ上乗る)
#define		T_WARIO_T_OFF	0xEFFF	// d12
#define		T_ALPHABLD_ON	0x2000	// d13 αブレンドフラグ（off:0　on:1）
#define		T_ALPHABLD_OFF	0xDFFF	// d13
#define		T_BAIKAKU_ON	0x4000	// d14 拡縮時倍角フラグ	（off:0　on:1）
#define		T_BAIKAKU_OFF	0xBFFF	// d14
#define		T_NO_SCROUT_ON	0x8000	// d15 スクロールアウトしないフラグ
#define		T_NO_SCROUT_OFF	0x7FFF	// d15

//--------------------------------------------------------------------------------
//			ucPrio
//
//	（usStatusが、足りなくなったので、ucPrioの上位4bitを拡張Statusとして使用）
//
#define		T_NONSTOP_ON	0x80	// d7 ワリオ動作止め中(usWarStopFlg!=0)でも動く敵の印
#define		T_NONSTOP_OFF	0x7F	// d7


//--------------------------------------------------------------------------------
//#define		HIDARI	0		// 敵の向き（左）
//#define		MIGI	1		// 敵の向き（右）
//--------------------------------------------------------------------------------
									// BG判定後の状態
#define		T_NOATARI	0x00
#define		T_ATARI		0x11
#define		T_NANAME30L	0x02		// 左登り３０度
#define		T_NANAME30R	0x03		// 右登り３０度
#define		T_NANAME45L	0x04		// 左登り４５度
#define		T_NANAME45R	0x05		// 右登り４５度
#define		T_UETHORU	0x10
//--------------------------------------------------------------------------------
// アタリチェック以外のTekiWarioSerch_Hでも使用
#define		W_UE_IRU		1		// 敵アタリ時、ワリオ上にいる
#define		W_SHITA_IRU		2		// 敵アタリ時、ワリオ下にいる
#define		W_HIDARI_IRU	4		// 敵アタリ時、ワリオ左にいる
#define		W_MIGI_IRU		8		// 敵アタリ時、ワリオ右にいる
//--------------------------------------------------------------------------------

#define		atariminai_time			0x0F
#define		atariminai_time2		0x1F
#define		atariminai_time3		0x06


#define		CJ_TIME		12			// ちょっとじっと時間
#define		HJ_TIME		80			// ひっくり返ってじたばた時間

#define		W2XSV_Lt	8			// 軽い敵の汎用横方向初速 (ucTwork2)
#define		W2XSV_Hv	6			// 重い敵の汎用横方向初速 (ucTwork2)

#define		W2XATK_Lt	8			// 軽い敵のアタック時横方向初速 (ucTwork2)
#define		W2XATK_Hv	4			// 重い敵のアタック時横方向初速 (ucTwork2)

#define		W2XTD_ATA_Lt	7		// 軽い敵の敵同士アタリ時横方向初速 (ucTwork2)
#define		W2XTD_ATA_Hv	3		// 重い敵の敵同士アタリ時横方向初速 (ucTwork2)

//#define		WTNAGEHOSEI_X	100		// ワリオが着地中に敵を投げる時の手を離す位置の補正値

//--------------------------------------------------------------------------------
#define		BOSS_FADEIN_WAIT	60

#define		BOSS_JEWEL_TAKARA_HASSEI_WAIT	80
#define		BOSS_JEWEL_TAKARA_JYOUSHO_WAIT	60


//--------------------------------------------------------------------------------
enum						// 敵VRAMブロック名 定義
{
	TVBK0,
	TVBK1,
	TVBK2,
	TVBK3,
	TVBK4,
	TVBK5,
	TVBK6,
	TVBK7,
	TVBKJ,			// キャラやカラーのロード無し設定＝常駐キャラ使用の敵
};


enum						// (TSeq) 各敵のシーケンス
{							// Q_INITIAL系は、番号移動禁止
	Q_INITIAL,				// TSeq=0 ＞＞ 出る前の配置データ 0x00 の時の初期化
	Q_INITIAL2,				// TSeq=1 ＞＞ 出る前の配置データ 0x10 の時の初期化
	Q_INITIAL3,				// TSeq=2 ＞＞ 出る前の配置データ 0x20 の時の初期化
	Q_INITIAL4,				// TSeq=3 ＞＞ 出る前の配置データ 0x30 の時の初期化
	Q_INITIAL5,				// TSeq=4 ＞＞ 出る前の配置データ 0x40 の時の初期化
	Q_INITIAL6,				// TSeq=5 ＞＞ 出る前の配置データ 0x50 の時の初期化
	Q_INITIAL7,				// TSeq=6 ＞＞ 出る前の配置データ 0x60 の時の初期化
	Q_INITIAL8,				// TSeq=7 ＞＞ 出る前の配置データ 0x70 の時の初期化
	Q_INITIAL9,				// TSeq=8 ＞＞ 出る前の配置データ 0x80 の時の初期化
	Q_INITIAL10,			// TSeq=9 ＞＞ 出る前の配置データ 0x90 の時の初期化
	Q_INITIAL11,			// TSeq=A ＞＞ 出る前の配置データ 0xA0 の時の初期化
	Q_INITIAL12,			// TSeq=B ＞＞ 出る前の配置データ 0xB0 の時の初期化
	Q_INITIAL13,			// TSeq=C ＞＞ 出る前の配置データ 0xC0 の時の初期化
	Q_INITIAL14,			// TSeq=D ＞＞ 出る前の配置データ 0xD0 の時の初期化
	Q_INITIAL15,			// TSeq=E ＞＞ 出る前の配置データ 0xE0 の時の初期化
	Q_K0_WALK,

	K0_WALK,				// 0x10
	Q_K0_TURN1,
	K0_TURN1,
	Q_K0_TURN2,
	K0_TURN2,
	Q_K0_TURN3,
	K0_TURN3,
	Q_JITTO,
	JITTO,
	Q_TOBIOKI,
	TOBIOKI,
	Q_N_RAKKA_V,
	N_RAKKA_V,
	Q_H_RAKKA_V,
	H_RAKKA_V,
	Q_K2_LEFT,

	K2_LEFT,				// 0x20
	Q_K2_RIGHT,
	K2_RIGHT,
	Q_K1_LEFT,
	K1_LEFT,
	Q_K1_RIGHT,
	K1_RIGHT,
	Q_K6_LEFT,
	K6_LEFT,
	Q_K6_RIGHT,
	K6_RIGHT,
	Q_HIKKURI_L,
	HIKKURI_L,
	Q_HIKKURI_R,
	HIKKURI_R,
	Q_H_JITABAT,

	H_JITABAT,				// 0x30
	Q_K5_HIP,
	K5_HIP,
	Q_K4_LEFT,
	K4_LEFT,
	Q_K4_RIGHT,
	K4_RIGHT,
	Q_BOUND1_L,
	BOUND1_L,
	Q_BOUND2_L,
	BOUND2_L,
	Q_BOUND3_L,
	BOUND3_L,
	Q_BOUND1_R,
	BOUND1_R,
	Q_BOUND2_R,

	BOUND2_R,				// 0x40
	Q_BOUND3_R,
	BOUND3_R,
	Q_NH_RAKKA_L,
	NH_RAKKA_L,
	Q_NH_RAKKA_R,
	NH_RAKKA_R,
	Q_H_RAKKA_L,
	H_RAKKA_L,
	Q_H_RAKKA_R,
	H_RAKKA_R,
	Q_JISHINTOBI1,
	JISHINTOBI1,
	JISHINTOBI2,
	JISHINTOBI3,
	Q_K2D_LEFT,

	Q_K2D_RIGHT,			// 0x50
	Q_K3_LEFT,
	K3_LEFT,
	Q_K3_RIGHT,
	K3_RIGHT,
	Q_LF_MOVE_R,
	LF_MOVE_R,
	Q_LF_MOVE_L,
	LF_MOVE_L,
	Q_NAGE_L,
	NAGE_L,
	Q_NAGE_R,
	NAGE_R,
	Q_TNAGE_L,
	TNAGE_L,
	Q_TNAGE_R,

	TNAGE_R,
	Q_UNAGE_L,
	UNAGE_L,
	Q_UNAGE_R,
	UNAGE_R,
	Q_UTNAGE_L,
	UTNAGE_L,
	Q_UTNAGE_R,
	UTNAGE_R,
	Q_TD_ATA_R,
	Q_TD_ATA_L,
	Q_SOKUSI,
	Q_K5_HIP2,
	K5_HIP2,
	Q_T_AUX_0,			// 予備０
	T_AUX_0,

	Q_T_AUX_1,			// 予備１
	T_AUX_1,
	Q_T_AUX_2,			// 予備２
	T_AUX_2,
	Q_T_AUX_3,			// 予備３
	T_AUX_3,
	Q_T_AUX_4,			// 予備４
	T_AUX_4,
	Q_T_AUX_5,			// 予備５
	T_AUX_5,
	Q_T_AUX_6,			// 予備６
	T_AUX_6,
};


enum						// (THantei) 敵の判定の種類
{
	NO_ATA_H,
	NO_TOGE,
	NO_TOGE2_H,
	MAE_TOGE,
	MAE_TOGE2_H,
	MOTSU,
	L_COIN,
	FLOWER_H,
	ALL_TOGE,
	ALL_TOGE2,
	ALL_TOGE3,
	ALL_TOGE4,
	ALL_TOGE5,
	ALL_TOGE_BOSS_H,
	ALL_MOERU,
	ALL_DEBU,
	ALL_ZONBI,
	ALL_ZONBI2,
	ALL_YUKI,
	ALL_BAT_H,
	ALL_ICE_H,
	OTAFUKU_H,
	TUMIKI_4_H,
	NORU_HAKO,
	NORU_HAKO2,
	NORU_HAKO_NH,
	NORU_HAKO2_NH,
	NORU_YUKA_1,
	NORU_YUKA_1ND,
	NORU_YUKA_1A,
	D_MOAI_H1,
	D_MOAI_H2,
	S_BIRD_H1,
	UE_TOGE,
	PROPERA_H,
	HARIMEN_H1,
	HARIMEN_H2,
	MAE_UE_TOGE,
	USHIRO_UE_TOGE,
	ALL_BALLOON,
	ALL_BALLOON_BOSS_H,
	BIG_MARUMEN_H,
	BIG_MARUMEN_H2,
	BIG_MARUMEN_H3,
	PUUTIN_H,
	PUUTIN2_H,
	SHITA_TOGE,
	SHITA_MAE_TOGE_H,
	J_SWITCH_H,
	HATI_H,
	HATI2_H,
	SHITA_BANE_H,
	SHITA_MAE_BANE_H,
	MENISI_H,
	ROULETTE_H,
	TOBAWANI_UE_TOGE_H,
	ALL_TOGE_MAGMA_H,
	MAE_ALL_TOGE_H,
	MAE_ALL_TOGE_N_H,
	UE_TOGE_MOTSU_TOGEDON_H,
	FURAWANA_HEAD_H,
	ALL_ZONBI_MODORI_H,
	TUNAMI_H,
	DORAMORI_H,
	DORAMORI2_H,
	DORAMORI_HEAD_H,
	KONTOGE_SHABERU_H,
	KONTOGE_SHABERU_H2,
	KONTOGE_SHABERU_H3,
	ALL_TOGE_ZERO_H,
	PIYO_BOMB_H,
	KONTOGE_OYA_H,
	MOUJA_OMEN_H,
	MOUJA_FACE_H,


	ALL_AWA,
	MAE_UE_TOGE_WH,
	SHITA_MIGI_TOGE_WH,
	UE_MIGI_TOGE_WH,
	SHELL_WH,
	TOBAWANI_WH,
	TOBAWANI_NOTOGE_WH,
	ALL_TOGE_WH,
	ALL_HAJIKU_WH,
	DORIZAME_WH,
	DORIZAME2_WH,
};




//-----------------------------------------------------------------------------------
enum			// (ucBWork0) ヨーキ攻撃モード
{
	YM_INIT,
	YM_STANDBY_OK,

	YM_CAT_ATCK,

	YM_CAT_ATCK_END,
	YM_RING_FULL,
	YM_CAT_YARARE_END,

	//----------------------------半透明
	YM_START,

	YM_OMENTAMA_ATACK,
	YM_HAMMER_ATACK,
	YM_KURAGE_ATACK,
	YM_EGG_ATACK,
	YM_BALL_ATACK,
	//----------------------------ココまで

	YM_BODY_ATACK,

	YM_END,
};
//-----------------------------------------------------------------------------------



#endif
//**************************************************************
//end
