//**************************************************************
//
//						g_tmsc.h
//
//**************************************************************


//--------------------------------------------------------------
//		タイマー＆スコア関連
//--------------------------------------------------------------

// ucTimeUp シーケンス
enum
{
	TUP_INIT,		// ステージ開始時
	TUP_COUNT,		// 残り時間カウント時(j_switchを踏んだ時)
	TUP_MOTI_T_END,	// 持ち時間0:00になった時(0:00表示が上昇するきっかけ)
	TUP_DSP_CHANGE,	// 持ち時間0:00表示が消えて右隅のコイン表示と入れ替わるきっかけ
	TUP_COIN_T_END,	// 持ちコイン０（OBJデモの始まるきっかけ）
	TUP_WARIO_CHANGE,// 通常ワリオ止めて、消して、正面ワリオを出すきっかけ
	TUP_WARIO_CENTER,// タイムアップワリオ、真ん中に補正完了
	TUP_WARIO_KAKUDAI_START,// タイムアップワリオ、真ん中から前に押し出されるきっかけ
	TUP_ITEM_LOST,	// かけら没収デモ始まりのきっかけ
	TUP_ITEM_LOST2,	// カード没収デモ始まりのきっかけ
	TUP_END,
	TUP_KILL_BOSS,	// ボス戦にてボスを倒した時
};


///// externして使用して下さい /////

//	void TmScMain(void);		ゲーム中メインから毎フレーム呼ぶ（残りOAMクリア前）
//	void TmScInit(void);		各部屋の最初で一度呼ばれる
//

#define		YELLOW_TIME			30		// 黄色のタイム表示になる残り時間（単位は、秒）
#define		RED_TIME			10		// 赤色のタイム表示になる残り時間（単位は、秒）


//#define		BAINOMI_TIME		30		// 倍の実期間（単位は、秒）

#define		KOWARE_BLOCK4_COIN		OBJCOIN50	// 壊れブロックから出てくるコインの種類
#define		KOWARE_BLOCK_COIN		OBJCOIN10	// 壊れブロックから出てくるコインの種類

//#define 	WARIO_DAMAGE_TTW	-10	//-100	ワリオダメージ時のコイン落とす金額(マイナス表記)
#define 	WARIO_DAMAGE_BG_TT		-10	//-100	ワリオダメージ時のコイン落とす金額(マイナス表記)

//--------------------------------------------------------------
// 敵死亡時用（連続して同じ種類を殺しているかチェック）
//
//			引数(k=敵のkind, Ｙ座標, Ｘ座標, 点数)
//
//	void DieTekiCoinSet(u8 k, u16 y, u16 x, int sk)
//
//--------------------------------------------------------------
// 赤、青クリスタルなどのパネルからの得点ＯＢＪ用
//			 引数(Ｙ座標, Ｘ座標, 点数)
//
// 	void TScoreSet_BlueCrystal(u16 y, u16 x)
// 	void TScoreSet_RedCrystal(u16 y, u16 x)
//
//--------------------------------------------------------------
//		スコア以外のオプション用
//（ヒップの星、壊れブロックの破片など）
//
//			 引数(Ｙ座標, Ｘ座標, 種類)
//
//	void TOptObjSet(u16 y, u16 x, u8 k)
//
//			種類
enum
{
	KN_TSCORE10A,
	KN_TSCORE50A,
	KN_TSCORE100A,
	KN_TSCORE500A,

	KN_TSCORE1000A,
	KN_HIPSTAR,				// ヒップの星のKind Number 	(TOptObjSet用)
	KN_ATKSTAR,				// アタックのバシッ！		(TOptObjSet用)
	KN_MIZUBASHIRA,			// 水柱のKind Number 		(TOptObjSet用)

	KN_KWR_IWA_1A,			// 岩壊れ1A	左			 	(TOptObjSet用)
	KN_KWR_IWA_2A,			// 岩壊れ2A	右			 	(TOptObjSet用)
	KN_KWR_IWA_3A,			// 岩壊れ3A	上			 	(TOptObjSet用)
	KN_KWR_IWA_4A,			// 岩壊れ4A	下			 	(TOptObjSet用)

	KN_KWR_IWA_5A,			// 岩壊れ5A	左遠くへ	 	(TOptObjSet用)
	KN_KWR_IWA_6A,			// 岩壊れ6A	右遠くへ	 	(TOptObjSet用)
	KN_KWR_IWA_1B,			// 岩壊れ1B	左			 	(TOptObjSet用)
	KN_KWR_IWA_2B,			// 岩壊れ2B	右			 	(TOptObjSet用)

	KN_KWR_IWA_3B,			// 岩壊れ3B	上			 	(TOptObjSet用)
	KN_KWR_IWA_4B,			// 岩壊れ4B	下			 	(TOptObjSet用)
	KN_KWR_IWA_5B,			// 岩壊れ5B	左遠くへ	 	(TOptObjSet用)
	KN_KWR_IWA_6B,			// 岩壊れ6B	右遠くへ	 	(TOptObjSet用)

	KN_KWR_METAL_1A,		// 金属壊れ1A	左		 	(TOptObjSet用)
	KN_KWR_METAL_2A,		// 金属壊れ2A	右		 	(TOptObjSet用)
	KN_KWR_METAL_3A,		// 金属壊れ3A	上		 	(TOptObjSet用)
	KN_KWR_METAL_4A,		// 金属壊れ4A	下		 	(TOptObjSet用)

	KN_KWR_METAL_5A,		// 金属壊れ5A	左遠くへ	(TOptObjSet用)
	KN_KWR_METAL_6A,		// 金属壊れ6A	右遠くへ	(TOptObjSet用)
	KN_KWR_METAL_1B,		// 金属壊れ1B	左			(TOptObjSet用)
	KN_KWR_METAL_2B,		// 金属壊れ2B	右			(TOptObjSet用)

	KN_KWR_METAL_3B,		// 金属壊れ3B	上			(TOptObjSet用)
	KN_KWR_METAL_4B,		// 金属壊れ4B	下			(TOptObjSet用)
	KN_KWR_METAL_5B,		// 金属壊れ5B	左遠くへ	(TOptObjSet用)
	KN_KWR_METAL_6B,		// 金属壊れ6B	右遠くへ	(TOptObjSet用)

	KN_KWR_TREE_1A,			// 木材壊れ1A	左		 	(TOptObjSet用)
	KN_KWR_TREE_2A,			// 木材壊れ2A	右		 	(TOptObjSet用)
	KN_KWR_TREE_3A,			// 木材壊れ3A	上		 	(TOptObjSet用)
	KN_KWR_TREE_4A,			// 木材壊れ4A	下		 	(TOptObjSet用)

	KN_KWR_TREE_5A,			// 木材壊れ5A	左遠くへ	(TOptObjSet用)
	KN_KWR_TREE_6A,			// 木材壊れ6A	右遠くへ	(TOptObjSet用)
	KN_KWR_TREE_1B,			// 木材壊れ1B	左			(TOptObjSet用)
	KN_KWR_TREE_2B,			// 木材壊れ2B	右			(TOptObjSet用)

	KN_KWR_TREE_3B,			// 木材壊れ3B	上			(TOptObjSet用)
	KN_KWR_TREE_4B,			// 木材壊れ4B	下			(TOptObjSet用)
	KN_KWR_TREE_5B,			// 木材壊れ5B	左遠くへ	(TOptObjSet用)
	KN_KWR_TREE_6B,			// 木材壊れ6B	右遠くへ	(TOptObjSet用)

	KN_KWR_LEAF_A,			// 葉っぱ壊れ 共通		 	(TOptObjSet用)
	KN_KWR_LEAF_B,			// 葉っぱ壊れ 共通		 	(TOptObjSet用)
	KN_LOSTCOIN,			// 持ち時間０以降、ワリオから出るコイン(TOptObjSet用)
	KN_HIPSTAR2A,			// ヒップの星SE無しTimeUpスクロールOBJ消滅用(TOptObjSet用)

	KN_LOST_HEART,			// ワリオロストハート		(TOptObjSet用)
	KN_TUCHIKEMURI_L,		// 土煙Ｌ					(TOptObjSet用)
	KN_TUCHIKEMURI_R,		// 土煙Ｒ					(TOptObjSet用)
	KN_ITEM_BAKUHATU,		// 元店長専用アイテム爆発(KN_ATKSTARと同じ)	(TOptObjSet用)

	KN_ITEM_NOTE_0,			// 店長専用音符0			(TOptObjSet用)
	KN_ITEM_NOTE_1,			// 店長専用音符1			(TOptObjSet用)
	KN_ITEM_NOTE_2,			// 店長専用音符2			(TOptObjSet用)
	KN_ITEM_NOTE_3,			// 店長専用音符3			(TOptObjSet用)

	KN_ITEM_NOTE_4,			// 店長専用音符4			(TOptObjSet用)
	KN_ITEM_NOTE_5,			// 店長専用音符5			(TOptObjSet用)
	KN_ITEM_NOTE_6,			// 店長専用音符6			(TOptObjSet用)
	KN_ITEM_NOTE_7,			// 店長専用音符7			(TOptObjSet用)

	KN_ITEM_NOTE_8,			// 店長専用音符8			(TOptObjSet用)
	KN_ITEM_NOTE_9,			// 店長専用音符9			(TOptObjSet用)
	KN_GET_HEART,			// ハートゲットエフェクト	(TOptObjSet用)
	KN_GET_QHEART,			// 1/4ハートゲットエフェクト(TOptObjSet用)

	KN_ATKSTAR2,			// アタックのバシッ！の長い版(TOptObjSet用)
	KN_KAKERA_ICON_DSP,		// かけらアイコン表示		(TOptObjSet用)
	KN_CARD_ICON_DSP,		// カードアイコン表示		(TOptObjSet用)
	KN_MOUJA_HIKARI,		// モージャ専用、光			(TOptObjSet用)

	KN_KEMURI_M,			// ボス戦専用オプションけむりM(TOptObjSet用)
	KN_KEMURI_L,			// ボス戦専用オプションけむりM(TOptObjSet用)
	KN_OLDSTAR,				// 昔のアタックの星			(TOptObjSet用)
	KN_JEWELSTAR,			// 宝が上昇する時のきらきら星(TOptObjSet用)

	KN_HAKASE_AWA_L,		// 水中博士用泡Ｌ			(TOptObjSet用)
	KN_HAKASE_AWA_R,		// 水中博士用泡Ｒ			(TOptObjSet用)

//- - - - - - - - - - - - - ゲートでクリアしない＆後出し優先よりも優先↓(ここから下)

	KN_BAINOMIX2,			// 倍の実期間×２表示 		(TOptObjSet用)
	KN_KAGI,				// ワリオに引っ付く鍵		(TOptObjSet用)
	KN_TIMEUP_WARIO,		// タイムアップワリオ		(TOptObjSet用)
	KN_LIFEZERO_WARIO,		// ライフゼロワリオ			(TOptObjSet用)

//- - - - - - - - - - - - - 画面の固定位置に表示↓(ここから下)

	KN_TIME_DSP,			// カウントダウンデジタル表示(TOptObjSet用)
	KN_TOKEI_ICON_DSP,		// 時計アイコン表示			(TOptObjSet用)
	KN_HIPSTAR2B,			// ヒップの星SE無しTimeUp固定画面OBJ消滅用(TOptObjSet用)
	KN_SUGOROKU_ICON_DSP,	// すごろくアイコン表示(TOptObjSet用)

	KN_END_IWA_0,			// エンディング岩０			(TOptObjSet用)
	KN_END_IWA_1,			// エンディング岩１			(TOptObjSet用)
	KN_END_IWA_2,			// エンディング岩２			(TOptObjSet用)
	KN_END_IWA_3,			// エンディング岩３			(TOptObjSet用)
	KN_END_IWA_4,			// エンディング岩４			(TOptObjSet用)
	KN_END_IWA_00,			// エンディング岩０			(TOptObjSet用)
	KN_END_IWA_000,			// エンディング岩０			(TOptObjSet用)
	KN_END_IWA_0000,		// エンディング岩０			(TOptObjSet用)
};




//*******************************************************************************
// 壊れパネルの破片ＯＢＪ用
//（岩、葉っぱなど）
//
// void TKowareObjSet(u16 y, u16 x, u8 kind, u8 dir, u8 ab)
//
// kind: 下記の壊れパネルの破片ＯＢＪ専用種類番号参照
// dir: 1=左から、2=右から、3=下から、4=上から、5=左から強、6=右から強
// ab:  0=Ａ、 1=Ｂ
//*******************************************************************************
enum		//壊れパネルの破片ＯＢＪ専用種類番号
{
	KOWARE_IWA,
	KOWARE_METAL,
	KOWARE_TREE,
	KOWARE_LEAF,
};



//--------------------------------------------------------------
//--------------------------------------------------------------
// すごろくマス目の種類
enum
{
	SUGO_START,		// 0 = スタート
	SUGO_GOAL,		// 1 = ゴール
	SUGO_1000C,		// 2 = １０００コイン
	SUGO_ENEMY,		// 3 = 敵３匹
	SUGO_DAMAGE,	// 4 = ダメージ
	SUGO_MAPSW,		// 5 = マップスイッチオンオフ
	SUGO_10C,		// 6 = １０コイン×１０
	SUGO_REACT,		// 7 = リアクション
};


// すごろくシーケンス
enum
{
	SGSQ_INIT,		// 初期化
	SGSQ_MOV,		// サイコロに応じて移動
	SGSQ_SCR,		// スクロールまたはウェイト
	SGSQ_MOV2,		// サイコロに応じて移動（ゴールに到達して戻る時の処理）
	SGSQ_SCR2,		// ウェイト（ゴールに到達して戻る時の処理）
	SGSQ_END,		// ゴール
};


//
//--------------------------------------------------------------


///// 定義 /////

#define		SCOKAZU			8		// スコアOBJ同時処理個数



// ゲーム画面内のアイコンポジション（４倍座標ではない）

#define		KAKERA_ICON_Y	0x02
#define		KAKERA_ICON_X	0x0C	//0x10

#define		CARD_ICON_Y		0x02
#define		CARD_ICON_X		0x24	//0x28

#define		HEART_ICON_Y	0x06	// 0x02
#define		HEART_ICON_X	0x09

#define		TOKEI_ICON_Y	0x02
#define		TOKEI_ICON_X	0x50

#define		TIME_DSP_Y		0x02
#define		TIME_DSP_X		0x60

#define		COIN_ICON_Y		0x06	// 0x02
#define		COIN_ICON_X		0xB3

#define		TOTAL_COIN_Y	0x06	// 0x02
#define		TOTAL_COIN_X1	0xBC
#define		TOTAL_COIN_X2	0xCC

#define		SIY		0x84*4		// すごろくアイコン初期座標Y
#define		SIX		0x10*4		// すごろくアイコン初期座標X

#define		BOSS_HP_X		0xA1


//--------------------------------------------------------------------------------
//			ucStatus
//
#define		TS_EXEC_ON		0x01	// d0　処理ON/OFFフラグ
#define		TS_AFFINE_ON	0x02	// d1　回転拡縮フラグ	（off:0　on:1）
#define		TS_AFFINE_OFF	0xFD	//
#define		TS_YUUSEN_ON	0x04	// d2　優先フラグ		（off:0　on:1）
#define		TS_YUUSEN_OFF	0xFB	//
#define		TS_TENMETU_ON	0x08	// d3　点滅ON/OFFフラグ（表示:0　非表示:1）
#define		TS_TENMETU_OFF	0xF7	//


/*========================
  スコアOBJバッファ構造体
=========================*/

typedef struct
{
	u8	ucStatus;
	u8	ucAnmTimer;
	u8	ucKind;
	u8	ucSeq;
	u8	ucWork0;
	u8	ucWork1;

	u16	usAnmPat;
	u16	usPosY;
	u16	usPosX;
}Tk2Def;


/*=========================
  アイテムステイタス構造体
==========================*/
typedef struct
{
	u8 Kakera1:1;		// かけら1
	u8 Kakera2:1;		// かけら2
	u8 Kakera3:1;		// かけら3
	u8 Kakera4:1;		// かけら4

	u8 Card:1;			// カード
	u8 Kagi:1;			// 鍵
	u8 Aux1:1;			// （予備1）
	u8 Aux2:1;			// （予備2）

} W4ItSt;



//--------------------------------------------------------------
///// 変数 /////

GLOBAL W4ItSt	W4ItemStatus[WORLD_NUM_MAX][STAGE_NUM_MAX];	// ItemStatus 島数×大会数（要セーブ）

GLOBAL int		iGmStageHighScore[WORLD_NUM_MAX][4];	// 各ステージのハイスコア（要セーブ）

GLOBAL Tk2Def 	ScEbuf[SCOKAZU];		// スコアOBJＥａｃｈバッファ	（要セーブ）
GLOBAL Tk2Def	Scbuf;					// スコアOBJＴｅｍｐバッファ

GLOBAL int		iGmTimeFrame;			// １６進ステージタイムフレーム	（要セーブ）
GLOBAL s8		cGmTime[3];				// タイマーの各桁の数字			（要セーブ）

GLOBAL int		iGmTotalScore;			// １６進トータルスコア			（要セーブ）
//GLOBAL s8		cGmToScore[5];//最終的には無くす// トータルスコアの各桁の数字

GLOBAL int		iGmStageScore;			// １６進ステージスコア			（要セーブ）
GLOBAL s8		cGmStScore[5];			// ステージスコアの各桁の数字	（要セーブ）

GLOBAL u8		ucGmTime_Tflg;			// トータルタイムキャラ転送フラグ
GLOBAL u8		ucGmScore_Tflg;			// トータルスコアキャラ転送フラグ
GLOBAL u8		ucGmTimeCc_Tflg;		// コロン点滅用 キャラ転送フラグ

GLOBAL u8		ucScTkindBak;			// 一つ前に得点した敵の種類			（要セーブ）
GLOBAL u8		ucScRenzoku;			// 連続して同種の敵を倒している回数	（要セーブ）
GLOBAL u8		ucTekiKillCnt;			// 殺した敵の総数			（要セーブ）

GLOBAL u8		ucKakera1GetFlg;		// かけら１ゲットフラグ		（要セーブ）
GLOBAL u8		ucKakera2GetFlg;		// かけら２ゲットフラグ		（要セーブ）
GLOBAL u8		ucKakera3GetFlg;		// かけら３ゲットフラグ		（要セーブ）
GLOBAL u8		ucKakera4GetFlg;		// かけら４ゲットフラグ		（要セーブ）
GLOBAL u8		ucCardGetFlg;			// 手持ちのカードの枚数		（要セーブ）
GLOBAL u8		ucKagiGetFlg;			// カギゲットフラグ			（要セーブ）
GLOBAL u8		ucJSwitchOnFlg;			// スイッチオンフラグ		（要セーブ）
//GLOBAL u8		ucBainomiGetTrg;		// 倍の実ゲットトリガー		（要セーブ）
//GLOBAL u8		ucBainomiCnt;			// 倍の実期間カウンタ		（要セーブ）
//GLOBAL u8		ucKaichuTokeiGetCnt;	// 懐中時計ゲットカウンタ	（要セーブ）

GLOBAL u8		ucWarioOutStartFlg;		// どこでもドアーに触れて脱出状態になったことを
										// ワリオに引っ付いているカギのハシに知らせるフラグ
										// （要セーブ）

//---------------------------------------
GLOBAL u16		*pSCObjData;			// tmscOAMデータ作成時のOBJデータのヘッダ

GLOBAL u16	usAffnPA;					// OAMアフィンパラメータテンポラリ
GLOBAL u16	usAffnPB;					// OAMアフィンパラメータテンポラリ
GLOBAL u16	usAffnPC;					// OAMアフィンパラメータテンポラリ
GLOBAL u16	usAffnPD;					// OAMアフィンパラメータテンポラリ

GLOBAL u8		*pWarioHeartDataA;		// ワリオハートゲージ上段キャラデータのヘッダ
GLOBAL u8		*pWarioHeartDataB;		// ワリオハートゲージ下段キャラデータのヘッダ

										// どこでもドアーに触れて脱出状態になった時の
GLOBAL u8		ucDocodoorChrOfs;		// どこでもドアーのキャラオフセットと
GLOBAL u16		usDocodoorPosY;			// ワリオに引っ付いているカギのハシが遅れて
GLOBAL u16		usDocodoorPosX;			// どこでもドアーに入るための目標座標

GLOBAL u8 		ucBWorldNum;			// BossSaveした時点で書き変わるので最初の値を保持
GLOBAL u8 		ucBStageNum;			// BossSaveした時点で書き変わるので最初の値を保持

// モージャ専用拡張かけら（１２個の宝用）フラグ（セーブの必要なし）
GLOBAL u8		ucKakera5GetFlg;		// かけら５ゲットフラグ
GLOBAL u8		ucKakera6GetFlg;		// かけら６ゲットフラグ
GLOBAL u8		ucKakera7GetFlg;		// かけら７ゲットフラグ
GLOBAL u8		ucKakera8GetFlg;		// かけら８ゲットフラグ

GLOBAL u8		ucKakera9GetFlg;		// かけら９ゲットフラグ
GLOBAL u8		ucKakera10GetFlg;		// かけら１０ゲットフラグ
GLOBAL u8		ucKakera11GetFlg;		// かけら１１ゲットフラグ
GLOBAL u8		ucKakera12GetFlg;		// かけら１２ゲットフラグ

GLOBAL u8		ucTakaraCount;			// モージャ戦スタート時の１２宝の個数



//**************************************************************
//end
