/*

	a14a_bomb.h

		Ｂ脚変電室(アナザーミッション用モード別設定ファイル)



	2002/02/12 H.Yoshiike         

	$Id: a14a_bomb.h,v 1.22 2002/10/02 08:07:32 usr03682 Exp $                      

*/



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

// 各ミッション別で使用するdefine

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

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





// 爆弾の場所

#define		BOMB_POS_RAI	-52535 3650 -38250	1024,1024,0	// 変電盤の天井

#define		BOMB_POS_SNA	-47625 -875 -33625	0,1024,0	// 変電室の床下

#define		BOMB_POS_PRI	-49500 2200 -43125	1024,0,0	// ロッカーの上

#define		BOMB_POS_TUX	-58300 1750 -32000	0,2048,0	// 廊下のくぼみのところ

#define		BOMB_POS_NIN	-56500 -76 -36526	0,1024,0	// 廊下の側面

#define		BOMB_POS_PRE	-47750 250 -39500	0,3072,0	// ダンボール箱の間





// アイテムの場所

#define		ITEM_POS_01		-50500	 0		 -43180	// ロッカー左

#define		ITEM_POS_02		-49500	 0		 -43180	// ロッカー右

#define		ITEM_POS_03		-56500	 0		 -34125	// 廊下のくぼみ上

#define		ITEM_POS_04		-56500	 0		 -28125	// 廊下のくぼみ下

#define		ITEM_POS_05		-46500	 0		 -35000	// 変電室の奥

#define		ITEM_POS_06		-46500	 0		 -31500	// 変電室の鳴り床の間

#define		ITEM_POS_07		-46750	 -2000	 -36000	// 変電室北階段の横

#define		ITEM_POS_08		-48750	 -2000	 -24500	// 変電室ノードの横



#include	"a_item_info.h"



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

// mode.hで呼び出されるプロック

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

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:爆弾解体タイマー残り時間;

	} else {

		// ウィンドウが表示される場合はみねうちフラグとキルカウント、発見回数を初期化する

		command セットＶＲキルカウント 0

		command セットＶＲ発見回数 0

		@爆弾解体用キャラ別標準装備設定

	}



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

	@全ミッション共通システム設定 0



	// ウィンドウの表示（最初のロードのときのみ）

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

		@爆弾解体ミッション５面ＶＲウィンドウ設定

	} else {

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

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

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

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

	}



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

	@ＶＲクリア設定 p:A_ミッションエンド p:load_alt_bomb_a14a



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

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

		// レーダーの設定

		command メニュー設定 -node_access off

	}

}



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

	#if d:DEBUG_PRINT 

		print 'proc_set2-bomb_misson'

	#endif



	// プレイヤー起動後、ウインドウを表示するときはプレイヤーを消す

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

		command プレイヤー消去キャラ

		// フラグはすぐに寝かす

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

	}



	// 全マップ共通で使用する基本キャラの設定

	command マップ設定 廊下 変電室 -set {

		@爆弾解体ミッション用サウンド設定	// データは最初に呼ぶ

		@爆弾解体ミッション用変数設定		// ドアのスイッチなどの変数を設定

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

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

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

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

	}



	// 各マップで使用する基本キャラの設定

	command マップ設定 廊下 -set {

		if ( $s:選択プレイヤー != ライデン ) {

			@爆弾解体ミッション用監視カメラ設置

		}

	}

}











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

// ＶＲウィンドウの設定と表示

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

proc 爆弾解体ミッション５面ＶＲウィンドウ設定 {

	#if d:DEBUG_PRINT

		print 'vr_window_set-bomb LEVEL2'

	#endif



	@爆弾解体ミッションＶＲウィンドウ設定 p:爆弾解体ミッション５面ステージ開始時処理



	// ＶＲウィンドウを表示する

	mesg ＶＲウィンドウ ＶＲウィンドウ君 開く



	// スタート時とクリア時に使用するカットインカメラ

	chara カメラ カットインカメラ		-c 0 -l 0 -p  0



	// スタート時のカメラ(必要な場合)

	chara カメラ設定 カットインカメラ \

		-c 1 \

		-p -46673,3167,-15788 -t -45839,1000,-19639 \

		-r 327,1909,0 -f 4496 \

		-a 200 \

		-i 0 -1 0 0 \

		-s 1



}







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

// ステージ開始時処理

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

proc 爆弾解体ミッション５面ステージ開始時処理 {

	#if d:DEBUG_PRINT

		print 'game_start!!!!!'

	#endif



	// プレイヤーやパッドの制御等を行う a_stdproc.hで定義

	@全ミッション共通ステージ開始時処理



	// カメラワークスタート(必要な場合)

	// 全体図

	chara カメラ設定 カットインカメラ \

		-c 1 \

		-p -46673,3167,-15788 -t -45839,1000,-19639 \

		-r 327,1909,0 -f 4496 \

		-a 200 \

		-i 4 4 d:START_CAMERA_CHANGE_TIME d:START_CAMERA_CHANGE_TIME \

		-s 1



	chara delay ディレイ \

		-time d:START_CAMERA_CHANGE_TIME \

		-exec {

			chara カメラ設定 カットインカメラ -s -1

		}



}









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

// クリアしたときの処理

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

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

	#if d:DEBUG_PRINT 

		print 'clear'

	#endif



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

}







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

// サウンドに関する設定

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

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



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

	// ドアに関する設定(0-開かない 1-開く)

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

	$$b:ドアフラグ[0] = d:DOOR_FLAG_CLOSE;	// ＡＢ連絡橋へのドア

	$$b:ドアフラグ[1] = d:DOOR_FLAG_OPEN;	// ＢＣ連絡橋へのドア

	$$b:ドアフラグ[2] = d:DOOR_FLAG_OPEN;	// 部屋西側のドア

	$$b:ドアフラグ[3] = d:DOOR_FLAG_OPEN;	// 部屋北側のドア

}







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

// 敵兵に関する設定

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

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

	#if d:DEBUG_PRINT 

		print 'watcher_set-bomb_misson'

	#endif



	@A_警備兵 敵兵:01 3 0 d:ENE_STATUS_GUNLIGHT -55000 0 -41000 廊下

	@A_警備兵 敵兵:02 5 0 d:ENE_STATUS_GUNLIGHT -55000 0 -28250 廊下



}



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

	#if d:DEBUG_PRINT 

		print 'attacker_set-bomb_misson'

	#endif

	@A_攻撃兵 敵兵:21 1 d:ENE_STATUS_GUNLIGHT d:ENE_EQUIP_TYPE_NORMAL

	@A_攻撃兵 敵兵:22 1 d:ENE_STATUS_GUNLIGHT 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 -e 爆弾解体ミッション用攻撃兵セット

}







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

	#if d:DEBUG_PRINT

		print 'commander_set-bomb_misson'

	#endif

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

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

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

		-d 廊下 \

		-r -52125 0 -50250 廊下 \

		-c -52125 0 -50250 廊下 \

		-v [ene_plant_voice:06] \

		-x [ghq_area_alert_voice:w14a] \

		-y [ghq_caution_voice:w14a_2] \

		-p  0,-1,-1 クリアリングエリア０_初期設定 \

		    0,-2,-2 クリアリングエリア０_終了 \

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

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

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

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

		-s (d:ENE_STAGE_GPS | d:ENE_STAGE_VR_ANOTHER) \

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

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



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

	// クリアリング子画面

//	chara サブ画面 子画面



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

	// クリアリングエリア０ 子画面制御

	trap clearing_0 d:PLAYER \

		-mask 出る \

		-exec {

			if($f:クリアリングフラグ０ == 1) {

				@クリアリングカメラＯＦＦ

			}

		}

}







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

// 監視カメラに関する設定

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

proc 爆弾解体ミッション用監視カメラ破壊時処理 $:名前 $:フラグ {

	if ( $:名前 == 廊下北側カメラ ) {

		eval( $b:a14a_カメラ破壊ロード回数[0] = $w:グローバルロード回数);	

		eval( $b:a14a_カメラ破壊フラグ[0] = $:フラグ );

	}



	if ( $:名前 == 廊下南側カメラ ) {

		eval( $b:a14a_カメラ破壊ロード回数[1] = $w:グローバルロード回数);	

		eval( $b:a14a_カメラ破壊フラグ[1] = $:フラグ );

	}



}



proc 爆弾解体ミッション用監視カメラ設置 {

	#if d:DEBUG_PRINT

		print 'a20a0_svc_camera_set-bomb_mission'

	#endif



	// 北側のカメラ

	@カメラ再セットチェック $b:a14a_カメラ破壊ロード回数[0]

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

		eval( $b:a14a_カメラ破壊フラグ[0] = 0 );

	}

	// A_監視カメラ $:名前 $:場所Ｘ $:場所Ｙ $:場所Ｚ $:取付縦方向 $:取付横方向 $:カメラ振り中心角 $:振り幅 $:フラグ 

	@A_監視カメラ 廊下北側カメラ -56000 3000 -39000 340 0 290 275 $b:a14a_カメラ破壊フラグ[0]



	// 南側のカメラ

	@カメラ再セットチェック $b:a14a_カメラ破壊ロード回数[1]

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

		eval( $b:a14a_カメラ破壊フラグ[1] = 0 );

	}

	// A_監視カメラ $:名前 $:場所Ｘ $:場所Ｙ $:場所Ｚ $:取付縦方向 $:取付横方向 $:カメラ振り中心角 $:振り幅 $:フラグ 

	@A_監視カメラ 廊下南側カメラ -53500 3000 -33500 340 3072 -275 275 $b:a14a_カメラ破壊フラグ[1]

}







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

// アイテムに関する設定

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

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

	#if d:DEBUG_PRINT

		print 'item_no_set-bomb_misson'

	#endif



	switch ( $:ボックス名 ) {

		// ライデン用

		case ( 雑誌:01 ) {

			$b:w14a_取得ロード回数[0] = $w:グローバルロード回数;

		}

		case ( ＡＫ本体:01 ) {

			$b:w14a_取得ロード回数[1] = $w:グローバルロード回数;

		}

		case ( ダンボール:01 ) {

			$b:w14a_取得ロード回数[2] = $w:グローバルロード回数;

		}

		// スネーク用

		case ( チャフ:11 ) {

			$b:w14a_取得ロード回数[0] = $w:グローバルロード回数;

		}

		case ( 雑誌:11 ) {

			$b:w14a_取得ロード回数[1] = $w:グローバルロード回数;

		}

		case ( ＰＳＧ１本体:11 ) {

			$b:w14a_取得ロード回数[2] = $w:グローバルロード回数;

		}

		case ( ダンボール:11 ) {

			$b:w14a_取得ロード回数[3] = $w:グローバルロード回数;

		}

		// プリスキン用

		case ( チャフ:21 ) {

			$b:w14a_取得ロード回数[0] = $w:グローバルロード回数;

		}

		case ( 雑誌:21 ) {

			$b:w14a_取得ロード回数[1] = $w:グローバルロード回数;

		}

		case ( ダンボール:21 ) {

			$b:w14a_取得ロード回数[2] = $w:グローバルロード回数;

		}

		// タキシードスネーク用

		case ( チャフ:31 ) {

			$b:w14a_取得ロード回数[0] = $w:グローバルロード回数;

		}

		case ( スタン:31 ) {

			$b:w14a_取得ロード回数[1] = $w:グローバルロード回数;

		}

		case ( ダンボール:31 ) {

			$b:w14a_取得ロード回数[2] = $w:グローバルロード回数;

		}

		// 前作スネーク用

		case ( チャフ:51 ) {

			$b:w14a_取得ロード回数[0] = $w:グローバルロード回数;

		}

		case ( ダンボール:51 ) {

			$b:w14a_取得ロード回数[1] = $w:グローバルロード回数;

		}

	}



	#if d:DEBUG_PRINT

		print $:ボックス名

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

	#endif



}





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

	#if d:DEBUG_PRINT

		print 'a14a_item_set-bomb_misson'

	#endif



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

		case ( ライデン ) {

			// 雑誌

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

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

				@A_雑誌_初期設置 雑誌:01 d:ITEM_POS_02 0 1

			}

			// ＡＫ本体

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

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

				@A_ＡＫＳ_初期設置 ＡＫ本体:01 d:ITEM_POS_05 0 なし 151

			}

			// ダンボールＡ

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

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

				@A_ダンボール_初期設置 ダンボール:01 d:ITEM_POS_03 0 25

			}

		}

		case ( スネーク ) {

			// チャフ

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

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

				@A_チャフ_初期設置 チャフ:11 d:ITEM_POS_01 0 5

			}

			// 雑誌

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

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

				@A_雑誌_初期設置 雑誌:11 d:ITEM_POS_04 0 1

			}

			// ＰＳＧ１本体

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

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

				@A_ＰＳＧ１_初期設置 ＰＳＧ１本体:11 d:ITEM_POS_07 0 なし 21

			}

			// ダンボールＢ

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

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

				@ダンボールＢ_初期設置 ダンボール:11 d:ITEM_POS_08 0 25

			}

		}

		case ( プリスキン ) {

			// チャフ

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

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

				@A_チャフ_初期設置 チャフ:21 d:ITEM_POS_03 0 2

			}

			// 雑誌

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

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

				@A_雑誌_初期設置 雑誌:21 d:ITEM_POS_02 0 1

			}

			// ダンボールＣ

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

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

				@ダンボールＣ_初期設置 ダンボール:21 d:ITEM_POS_06 0 25

			}

		}

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

			// チャフ

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

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

				@A_チャフ_初期設置 チャフ:31 d:ITEM_POS_03 0 2

			}

			// スタン

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

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

				@A_スタン_初期設置 スタン:31 d:ITEM_POS_02 0 2

			}

			// ダンボールＤ

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

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

				@ダンボールＤ_初期設置 ダンボール:31 d:ITEM_POS_07 0 25

			}

		}

		case ( 刀ライデン ) {

		}

		default {

			// 前作スネーク

			// チャフ

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

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

				@A_チャフ_初期設置 チャフ:51 d:ITEM_POS_03 0 2

			}

			// ダンボールＥ

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

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

				@ダンボールＥ_初期設置 ダンボール:51 d:ITEM_POS_07 0 25

			}

		}

	}

}





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

// 解体Ｃ４に関する設定

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

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

	#if d:DEBUG_PRINT

		print 'a14a_bomb_set-bomb_misson'

	#endif



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

		case ( ライデン ) {

			@A_解体Ｃ４設置 解体Ｃ４:01 d:BOMB_POS_RAI d:BOMB_A d:BOMB_LV5_NO:A14A d:C4FLAG_LIKE_CEILING alt_a_bm003 もやもや:01

		}

		case ( スネーク ) {

			@A_解体Ｃ４設置 解体Ｃ４:11 d:BOMB_POS_SNA d:BOMB_A d:BOMB_LV5_NO:A14A 0 alt_a_bm004 もやもや:11

		}

		case ( プリスキン ) {

			@A_解体Ｃ４設置 解体Ｃ４:21 d:BOMB_POS_PRI d:BOMB_B d:BOMB_LV5_NO:A14A 0 alt_b_bm001 もやもや無し

		}

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

			@A_解体Ｃ４設置 解体Ｃ４:31 d:BOMB_POS_TUX d:BOMB_B d:BOMB_LV5_NO:A14A 0 alt_b_bm002 もやもや無し

		}

		case ( 刀ライデン ) {

			@A_解体Ｃ４設置 解体Ｃ４:41 d:BOMB_POS_NIN d:BOMB_A d:BOMB_LV5_NO:A14A 0 alt_a_bm001 もやもや:41

		}

		default {

			// 前作スネーク

			@A_解体Ｃ４設置 解体Ｃ４:51 d:BOMB_POS_PRE d:BOMB_A d:BOMB_LV5_NO:A14A 0 alt_a_bm002 もやもや:51

		}

	}

}



// 爆弾を解体したときに呼ばれるプロック

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

	#if d:DEBUG_PRINT

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

	#endif



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

		case ( 解体Ｃ４:01 ) {

			// ライデン

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

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

		}

		case ( 解体Ｃ４:11 ) {

			// スネーク

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

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

		}

		case ( 解体Ｃ４:21 ) {

			// プリスキン

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

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

		}

		case ( 解体Ｃ４:31 ) {

			// タキシードスネーク

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

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

		}

		case ( 解体Ｃ４:41 ) {

			// 刀ライデン

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

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

		}

		case ( 解体Ｃ４:51 ) {

			// 前作スネーク

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

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

		}

		default {

			command assert ( d:FALSE ) 'bomb disposal error (scenario err) A_爆弾解体時処理 想定外の名前の爆弾を解体しました。'

		}

	}

	

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

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

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

}

