/*

	a01a_bomb.h

		居住区一階（爆弾解体ミッション用）

	2002/02/01 S.Kaneyoshi

	$Id: a01a_bomb.h,v 1.23 2002/10/02 09:04:15 usr04249 Exp $

*/



#define MISSION_BOMB	1	// 爆弾解体用プロック起動用



/**************************************************************************************/

// chara マップの前に呼ばれるproc

/**************************************************************************************/

	proc 爆弾解体ミッション用マップ定義前設定 {

		#if d:DEBUG_PRINT

			print 'proc_set1-bomb_misson'

		#endif



		if ( $f:爆弾解体ミッションＶＲウィンドウ表示フラグ == 0 ) {

			// 他のステージからロードしてきたときは前のステージのタイムを引き継ぐ

			$$i:ライデンタイム 				= $i:爆弾解体タイマー残り時間;

			$$i:スネークタイム 				= $i:爆弾解体タイマー残り時間;

			$$i:プリスキンタイム 			= $i:爆弾解体タイマー残り時間;

			$$i:タキシードスネークタイム 	= $i:爆弾解体タイマー残り時間;

			$$i:刀ライデンタイム 			= $i:爆弾解体タイマー残り時間;

			$$i:前作スネークタイム			= $i:爆弾解体タイマー残り時間;

		}



		// 共通システムの起動 (爆弾解体ミッションは共通で処理するようになったので引数は見なくなりました)

		@全ミッション共通システム設定 d:VR_GOAL_FREE



		// セレクトを押したときに出る説明

		@爆弾解体ミッションロード後用ＶＲウィンドウ設定



		// プレイヤーが動けるようになったらタイマーをスタートさせる処理

		@ロード時ＶＲタイマー処理



		$$i:ＶＲクリアフラグ = d:VRCLR_NO_RETRY;	// プログラムでＲＥＴＲＹをかけない



//	テイルズＥ以外では

#ifndef d:E_TALES

		@ＶＲクリア設定 p:load_alt_bomb_a14a p:load_alt_bomb_a01f

//	テイルズＥのときは

#else

		@テイルズＥ用ＶＲクリア設定雷電

#endif



		if ( $s:選択プレイヤー == 前作スネーク ) {

			// 前作スネークのときのみレーダーをオフにする

			// レーダーの設定

			command メニュー設定 -node_access off

		}



		command セットルートオフセット d:SCN:スネークテイルズ -c d:SCN:通常

	}



/**************************************************************************************/

// chara マップの後に呼ばれるproc

/**************************************************************************************/

/*

// マップ

１Ｆ廻廊部

ロッカー部屋

*/

	proc 爆弾解体ミッション用マップ定義後設定 {



		// 全マップ共通基本キャラ設定

		command マップ設定 １Ｆ廻廊部 ロッカー部屋 -set {

			@爆弾解体ミッション用サウンド設定

			@爆弾解体ミッション用変数設定

			@爆弾解体ミッション用コマンダー設定

			@爆弾解体ミッション用水溜まりセット		// 敵兵を追加した時はここも追加する事

			@爆弾解体ミッション用ＢＧＭ設定			// プレイヤー→敵兵→BGMの順で呼ぶ



			@爆弾解体ミッション用解体Ｃ４設置

		}



		// 各マップで使用するキャラの設定(アイテム等)

		command マップ設定 １Ｆ廻廊部 -set {

			//@爆弾解体ミッション用廻廊部アイテム設置

		}



		command マップ設定 ロッカー部屋 -set {

			//@爆弾解体ミッション用ロッカー部屋アイテム設置

		}

	}



	proc 爆弾解体ミッション用サウンド設定 {

		#if d:DEBUG_PRINT

			print 'sound_set-bomb_misson'

		#endif



		chara サウンドマネージャー ＳＤマネ -pak 0

		@サウンド効果音設定

	}



	proc 爆弾解体ミッション用ＢＧＭ設定 {

		#if d:DEBUG_PRINT

			print 'bgm_set-bomb_misson'

		#endif

		chara ＢＧＭマネージャー ＢＧＭマネ

	}



	proc 爆弾解体ミッション用変数設定 {

		#if d:DEBUG_PRINT

			print 'stage_var_set-bomb_misson'

		#endif

		//------------------------------------------------------------

		// ドアに関する設定

		//		DOOR_FLAG_CLOSE			0		// 絶対開かない

		//		DOOR_FLAG_OPEN			1		// 絶対開く

		//		DOOR_FLAG_ENEMY_ONLY	2		// 敵兵のみ開く

		//		DOOR_FLAG_CLOSE_LEVEL	3		// カードレベルが足りなくて開かない

		//		DOOR_FLAG_OPEN_LEVEL	4		// カード持っているので開く

		//------------------------------------------------------------

		$$b:ドアフラグ[0] = 1;	// リフレッシュとの左水密ドア

		$$b:ドアフラグ[1] = 1;	// リフレッシュとの右スライドドア

		$$b:ドアフラグ[2] = 1;	// 甲板との左水密ドア

		$$b:ドアフラグ[3] = 1;	// 甲板との右水密ドア

		$$b:ドアフラグ[4] = 1;	// ロッカールームとの左ドア

		$$b:ドアフラグ[5] = 1;	// ロッカールームとの右ドア

	}



/*************************************************************************************/

// クリア時に呼ばれるプロック

/*************************************************************************************/

proc 爆弾解体ミッション用クリア時処理 {

	#if d:DEBUG_PRINT

	print 'clear'

	#endif



	@各ミッション共通モーションなしクリア処理

}



/*************************************************************************************/

// 敵兵の設定

/*************************************************************************************/

// 左舷水密前

#define ET_1_DEF_X		-5750

#define ET_1_DEF_Y		0

#define ET_1_DEF_Z		-4000

// 右舷水密前

#define ET_2_DEF_X		5750

#define ET_2_DEF_Y		0

#define ET_2_DEF_Z		-4000



	proc 爆弾解体ミッション用警備兵セット {

		#if d:DEBUG_PRINT

			print 'watcher_set-bomb_misson'

		#endif

		/*************************************************/

		// 敵兵を増やした際は「水溜まりセット」を変更する事



		@A_警備兵 敵兵:01 \

			3 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ET_1_DEF_X d:ET_1_DEF_Y d:ET_1_DEF_Z \

			１Ｆ廻廊部



		@A_警備兵 敵兵:02 \

			4 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ET_2_DEF_X d:ET_2_DEF_Y d:ET_2_DEF_Z \

			１Ｆ廻廊部



	}



	proc 爆弾解体ミッション用攻撃兵セット {

		#if d:DEBUG_PRINT

			print 'attacker_set-bomb_misson'

		#endif

		/*********************************************************************/

		// 敵兵を増やした際は「水溜まりセット」と「鏡面モデル制御」を変更する事



		@A_攻撃兵 敵兵:61 \

			5 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_NORMAL



		@A_攻撃兵 敵兵:62 \

			5 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_NORMAL

	}



	proc 爆弾解体ミッション用警備兵コマンダー {

		#if d:DEBUG_PRINT

			print 'wccomm_set-bomb_misson'

		#endif



		chara 警備コマンダー wccomm \

			-e { 爆弾解体ミッション用警備兵セット }

	}



	proc 爆弾解体ミッション用攻撃兵コマンダー {

		#if d:DEBUG_PRINT

			print 'atcomm_set-bomb_misson'

		#endif



		chara 攻撃コマンダー atcomm \

			//-status 	d:AT_COM_WARP \

			//-wait		180 \

			//-avoidwait	300 \

			-e { 爆弾解体ミッション用攻撃兵セット }

	}



	proc 爆弾解体ミッション用コマンダー設定 {

		#if d:DEBUG_PRINT

			print 'commander_set-bomb_misson'

		#endif



		/*********************************************************************/

		// 敵兵を増やした際は「水溜まりセット」と「鏡面モデル制御」を変更する事



		chara コマンダー 敵兵セット \

			-w 爆弾解体ミッション用警備兵コマンダー \

			-a 爆弾解体ミッション用攻撃兵コマンダー \

			-s d:ENE_STAGE_VR_ANOTHER \

			-m $w:スタートアラートモード \

			-r 6000,0,-13000 １Ｆ廻廊部 \

			-c 6000,0,-13000 １Ｆ廻廊部 \

			-x [ghq_area_alert_voice:w01a] \

			-y [ghq_caution_voice:a01a] \

			-v [ene_tank_voice:06] \

			-z $i:敵標準麻酔持続 \

			-o $i:敵標準気絶持続 \

			-b $w:敵標準再発生数 \

			-h $i:標準警戒時間 \

			-p   0,-1,-1 クリアリング初期設定１ \

				-2,-2,-2 クリアリングカメラＯＦＦ

	}



/**************************************************************************************/

// 水溜まりセット

// 敵兵を増やした際はここも変更する事

/**************************************************************************************/

	proc 爆弾解体ミッション用水溜まりセット {

		print 'effect 水溜まりセット'



		chara 水溜り管理 水溜り管理人 \

			-n_obj	5 \

			-obj	d:PLAYER \

					敵兵:01 \

					敵兵:02 \

					敵兵:61 \

					敵兵:62



		if( $$b:ドアフラグ[2] ) {

			// 左舷水溜まりトラップ

			command トラップ切り替え -trap puddle:01 -switch 1

			command 追加ＨＺＸグループ登録 -hzx_id 0 -add_id 3

		}

		if( $$b:ドアフラグ[3] ) {

			// 右舷水溜まりトラップ

			command トラップ切り替え -trap puddle:02 -switch 1

			command 追加ＨＺＸグループ登録 -hzx_id 0 -add_id 4

		}



		trap puddle ？ \

			-mask ？ \

			-exec {

				if($3 == 入る){

					mesg 水溜り管理 水溜り管理人 入る $2

				}else{

					mesg 水溜り管理 水溜り管理人 出る $2

				}

			}

	}



/**************************************************************************************/

// 鏡面モデルセット

// 敵兵を増やした際はここも変更する事

/**************************************************************************************/

	proc 爆弾解体ミッション用鏡面モデル制御 {

		print 'effect 鏡面モデル制御'



		chara 鏡面モデル管理 床面映り込み \

			-pos 0,0,0 \

			-axis 1 // Y軸反転



		mesg 鏡面モデル管理 床面映り込み add d:PLAYER

		mesg 鏡面モデル管理 床面映り込み add 敵兵:01

		mesg 鏡面モデル管理 床面映り込み add 敵兵:02

		mesg 鏡面モデル管理 床面映り込み add 敵兵:61

		mesg 鏡面モデル管理 床面映り込み add 敵兵:62



	}



	proc 爆弾解体ミッション用鏡面モデル消す {

		mesg 鏡面モデル管理 床面映り込み del 敵兵:01

		mesg 鏡面モデル管理 床面映り込み del 敵兵:02

		mesg 鏡面モデル管理 床面映り込み del 敵兵:61

		mesg 鏡面モデル管理 床面映り込み del 敵兵:62

	}



	proc 爆弾解体ミッション用鏡面モデル出す {

		mesg 鏡面モデル管理 床面映り込み add 敵兵:01

		mesg 鏡面モデル管理 床面映り込み add 敵兵:02

		mesg 鏡面モデル管理 床面映り込み add 敵兵:61

		mesg 鏡面モデル管理 床面映り込み add 敵兵:62

	}



/*************************************************************************************/

// アイテム関連

/*************************************************************************************/



	proc 爆弾解体ミッション用アイテム取得時番号設定 $:ボックス名 {

		#if d:DEBUG_PRINT

			print 'item_no_set'

		#endif



		if($:ボックス名 == ＵＳＰ本体) {

			eval($b:w01a_取得ロード回数[0] = $w:グローバルロード回数);

		} else if ($:ボックス名 == ＵＳＰ弾) {

			eval($b:w01a_取得ロード回数[1] = $w:グローバルロード回数);

		} else if ($:ボックス名 == Ｍ９弾) {

			eval($b:w01a_取得ロード回数[2] = $w:グローバルロード回数);

		}



		#if d:DEBUG_PRINT

			print $:ボックス名

			print $w:グローバルロード回数

		#endif

	}



	proc 爆弾解体ミッション用廻廊部アイテム設置 {

	}



	proc 爆弾解体ミッション用ロッカー部屋アイテム設置 {

		#if d:DEBUG_PRINT

			print 'locker room item set'

		#endif



		@アイテム再セットチェック $b:w01a_取得ロード回数[1]

		if ($f:再セットフラグ) {

			@レーション_初期設置 レーション -4520 0 3550 0 			// ロッカールーム左下

		}



		@アイテム再セットチェック $b:w01a_取得ロード回数[2]

		if ($f:再セットフラグ) {

			@弾薬_Ｍ９_初期設置 Ｍ９弾 4500 0 3550 0 				// Ｍ９弾 ロッカールーム右下

		}

	}



/*************************************************************************************/

// 解体Ｃ４設置

/*************************************************************************************/

	proc 爆弾解体ミッション用解体Ｃ４設置 {



		switch ( $s:選択プレイヤー) {

			case ( ライデン ) {

				@ライデン用解体Ｃ４設置

			}

			case ( スネーク ) {

				//@スネーク用解体Ｃ４設置

			}

			case ( プリスキン ) {

				@プリスキン用解体Ｃ４設置

			}

			case ( タキシードスネーク ) {

				//@タキシードスネーク用解体Ｃ４設置

			}

			case ( 刀ライデン ) {

				//@刀ライデン用解体Ｃ４設置

			}

			case ( 前作スネーク ) {

				//@前作スネーク用解体Ｃ４設置

			}

		}

	}



	proc A_各ステージ別爆弾解体時処理 $:p_解体爆弾名 {

		#if d:DEBUG_PRINT

			print 'a14a_bomb_disposal $:p_解体爆弾名='$:p_解体爆弾名

		#endif



		switch ( $s:選択プレイヤー) {

			case ( ライデン ) {

				@ライデン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( スネーク ) {

				//@スネーク用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( プリスキン ) {

				@プリスキン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( タキシードスネーク ) {

				//@タキシードスネーク用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( 刀ライデン ) {

				//@刀ライデン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( 前作スネーク ) {

				//@前作スネーク用爆弾解体時プロック $:p_解体爆弾名

			}

		}



		// このエリアは全キャラ爆弾がひとつなので、解体したらマップの爆弾マークを取る

		command ＶＲ全体マップ表示３Ｄ＿爆弾解除 -b d:F_TANKER_01A

		$i:A_全体マップ爆弾設置ステージ = ( $i:A_全体マップ爆弾設置ステージ & ~(d:F_TANKER_01A) );



	}



/*************************************************************************************/

// ライデン用解体Ｃ４設置

/*************************************************************************************/



	proc ライデン用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:06 -4800,2050,3600 0 1024 0 \

			d:BOMB_A \			// タイプ

			6 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm006 \

			もやもや:06

	}



	proc ライデン用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:06 ) {

				$b:A_爆弾解体終了状態フラグ[6] = 1;

				mesg 爆弾検知領域 もやもや:06 消去 d:BOMB_RADAR_OFF_TIME

			}

		}

	}



/*************************************************************************************/

// プリスキン用解体Ｃ４設置

/*************************************************************************************/



	proc プリスキン用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:26 0,1800,2500 0 2048 2048 \

			d:BOMB_B \			// タイプ

			6 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm026 \

			もやもや:26



	}



	proc プリスキン用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:26 ) {

				$b:A_爆弾解体終了状態フラグ[6] = 1;

				command トラップ切り替え -trap bm026 -switch 0

				mesg 爆弾検知領域 もやもや:26 消去 d:BOMB_RADAR_OFF_TIME

			}

		}

	}







