/*

	a24a_photo.h

	    中央棟１F（写真撮影ミッション用）

	2002/05/21 S.Kaneyoshi

	$Id: a24a_photo.h,v 1.23 2002/09/04 08:14:34 usr03682 Exp $

*/



#define MISSION_PHOTO	1	// 写真撮影用プロック起動用





#include "dcam_alt.h"



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

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

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

	proc 写真撮影ミッション用マップ定義前設定 {

		command セットＶＲステータス d:VR_PHOTOGRAPH

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

		

		@種初期化

		

		@写真撮影ミッションＶＲウィンドウ設定

		command セットルートオフセット d:SCN:写真撮影

		@ＶＲクリア設定 p:load_alt_photo_a02b p:A_ＲＥＴＲＹプロック

	}



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

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

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

	proc 写真撮影ミッション用マップ定義後設定 {



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

		command マップ設定	シェル１中央棟１Ｆ \

							シェル１中央棟小部屋 \

		-set {

			@各ミッション用ゴール表示 0 0 -100000

			@写真撮影ミッション用サウンド設定

			@写真撮影ローカル変数初期化

			@写真撮影ミッション用変数設定

			//@写真撮影ミッション用コマンダー設定

			@写真撮影ミッション用ＢＧＭ設定			// プレイヤー→敵兵→BGMの順で呼ぶ

		}



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

		command マップ設定 シェル１中央棟１Ｆ -set {

			@写真撮影ミッションシェル１中央棟１Ｆアイテム設置

			//@写真撮影監視カメラ設置

			

			@写真撮影プロック

		}

	}



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

// サウンド関連

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



	proc 写真撮影ミッション用サウンド設定 {

		#if d:DEBUG_PRINT

			print 'sound_set-bomb_misson'

		#endif



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

		@サウンド効果音設定

	}



	proc 写真撮影ミッション用ＢＧＭ設定 {

		#if d:DEBUG_PRINT

			print 'bgm_set-bomb_misson'

		#endif

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

	}



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

// 写真撮影ローカル変数初期化

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

	proc 種初期化 {

		

		// 一括初期化後に変数を戻す

		$i:グローバル変数プレイタイム = $$i:ローカル変数プレイタイム;

		command varsave $i:グローバル変数プレイタイム

		

		$$i:種 = ( $i:グローバル変数プレイタイム % 3 );

		$$i:種 = $$i:種 + `command ミッションズリトライ回数取得`

		$$i:種 = $$i:種 + `command ミッションズコンティニュー回数取得`

		

	}



	proc 写真撮影ローカル変数初期化 {

		@写真撮影用ローカル変数初期化プロック

	}

	

	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] = d:DOOR_FLAG_CLOSE ;	// 左側のドア 壊れたドア

		$$b:ドアフラグ[1] = d:DOOR_FLAG_CLOSE ;	// 右側のドア

		$$b:ドアフラグ[2] = d:DOOR_FLAG_CLOSE ;	// 倉庫左側のドア

		$$b:ドアフラグ[3] = d:DOOR_FLAG_CLOSE ;	// 倉庫右側のドア

		$$b:ドアフラグ[4] = d:DOOR_FLAG_CLOSE ;	// エレベータ

		

		

		// 初期装備品

		$w:アイテム数Ｒ[d:アイテム:デジカメ] = 1 ;

		

		command シナリオ前装備変更 -number d:アイテム:デジカメ

		$w:武器 = d:武器:素手;

		$w:アイテム = d:アイテム:素手;

		

	}



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

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

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

proc 写真撮影ミッションＶＲウィンドウ設定 {

	#if d:DEBUG_PRINT

		print 'vr_window_set'

	#endif

	

	switch ( $$i:種 % 3 ) {

		case ( 0 ) {

			$$s:テクスチャ名 = odai_a24a_ldr00;

		}

		case ( 1 ) {

			$$s:テクスチャ名 = odai_a24a_ldr01;

		}

		case ( 2 ) {

			$$s:テクスチャ名 = odai_a24a_ldr02;

		}

	}

	

	@写真撮影用ＶＲウィンドウ設定	\

			[VRMSG_J:ALT_PHT_a24a_SNA] [VRMSG_E:ALT_PHT_a24a_SNA] \	// 日、英

			[VRMSG_G:ALT_PHT_a24a_SNA] [VRMSG_F:ALT_PHT_a24a_SNA] \	// 独、仏

			[VRMSG_I:ALT_PHT_a24a_SNA] [VRMSG_S:ALT_PHT_a24a_SNA] \	// 伊、西

			[VRMSG_K:ALT_PHT_a24a_SNA] \							// 韓

			p:写真撮影ミッションステージ開始時処理 \				// 終了プロック

			poster	$$s:テクスチャ名





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

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



/*

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

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



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

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

		-c 1 \	

		-p 43,8528,-1398 -t -43,5745,-5427 \

		-r 394,2062,0 -f 4897 \

		-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 -90,17878,2163 -t -90,12036,-1689 \

		-r 644,2048,0 -f 6997 \

		-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 'game clear'

	#endif

	@全ミッション共通クリアモーション発動 d:モーションリスト:non_mclr_1 0

/*

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

		-c 1 \

		-p -2209,-13877,-60193 -t -2480,-14860,-57681 \

		-r 242,4026,0 -f 2711 \

		-a 200 \

		-i 2 2 0 0 \

		-s 1

*/

}



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

// 敵兵の設定

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

#define ENE01_DEF_X		0

#define ENE01_DEF_Y		0

#define ENE01_DEF_Z		-12500



	proc 写真撮影ミッション用警備兵セット {

		#if d:DEBUG_PRINT

			print 'watcher_set-bomb_misson'

		#endif

		@A_警備兵 敵兵:01 \

			1 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			シェル１中央棟１Ｆ

			

/*

		@A_警備兵 敵兵:01 \

			1 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			シェル１中央棟１Ｆ

		@A_警備兵 敵兵:02 \

			2 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			シェル１中央棟１Ｆ

		@A_警備兵 敵兵:03 \

			3 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			シェル１中央棟１Ｆ

		@A_警備兵 敵兵:04 \

			5 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			シェル１中央棟１Ｆ

*/

	}



	proc 写真撮影ミッション用攻撃兵セット {

		#if d:DEBUG_PRINT

			print 'attacker_set-bomb_misson'

		#endif



		@A_攻撃兵 敵兵:61 \

			6 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHOTGUN



		@A_攻撃兵 敵兵:62 \

			7 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHOTGUN



		@A_攻撃兵 敵兵:63 \

			8 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHOTGUN



		@A_攻撃兵 敵兵:64 \

			9 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHOTGUN

	}



	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

		

		command セットルートオフセット d:SCN:写真撮影



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

			-w 写真撮影ミッション用警備兵コマンダー \

			//-a 写真撮影ミッション用攻撃兵コマンダー \

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

//			-r 25000,-1500,-61000 シェル１中央棟１Ｆ \		// この座標は壁のど真ん中で危険なためずらします 2002.09.04 吉池

			-r 25000,-1500,-60500 シェル１中央棟１Ｆ \

			-c 22000,-1500,-60000 シェル１中央棟１Ｆ \

			-x [ghq_area_alert_voice:w24a] \

			-y [ghq_caution_voice:w24a] \

			-v [ene_plant_voice:01] \

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

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

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

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

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

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

		

	}



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

// アイテム関連

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



	proc 写真撮影ミッション用アイテム取得時番号設定 $:ボックス名 {

		#if d:DEBUG_PRINT

			print 'item_no_set'

		#endif



/*

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

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

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

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

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

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

		}

*/

		#if d:DEBUG_PRINT

			print $:ボックス名

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

		#endif

	}



	proc 写真撮影ミッションシェル１中央棟１Ｆアイテム設置 {

	}



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

// 監視カメラ設置

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

/*

	proc 写真撮影監視カメラ設置 {

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

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

			eval ($b:w24a_カメラ破壊フラグ[0] = d:FALSE)

		}

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

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

			eval ($b:w24a_カメラ破壊フラグ[1] = d:FALSE)

		}

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

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

			eval ($b:w24a_カメラ破壊フラグ[2] = d:FALSE)

		}

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

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

			eval ($b:w24a_カメラ破壊フラグ[3] = d:FALSE)

		}

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

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

			eval ($b:w24a_カメラ破壊フラグ[4] = d:FALSE)

		}



		eval( $i:監視カメラ縦視野角 = 256 );

		eval( $i:監視カメラ横視野角 = 256 );

		eval( $w:監視カメラ通常視力 = 5000 );

		eval( $w:監視カメラ危険視力 = 5000 );

		eval( $w:監視カメラ警戒視力 = 5000 );

		eval( $w:監視カメラ回避視力 = 5000 );

		eval( $i:監視カメラ初期方向 = 0 );

		//eval( $i:監視カメラ首振り待ち時間 = 0);

		//eval( $i:監視カメラ緊急振り幅  = 0);



		@A_監視カメラ	監視カメラ:01 \

						16000 1500 -56500 \

						500 4096 \						// rot X Y

						3750 \							// カメラ振り中心角

						0 \								// 振り幅

						$b:w24a_カメラ破壊フラグ[1]		// フラグ

	}

*/

	proc 写真撮影ミッション用監視カメラ破壊時処理 $:名前 $:フラグ {

		if ( $:名前 == 監視カメラ:01 ) {

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

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

		}



	}

	

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

// 写真撮影ミッション用ロッカー設置

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



#define LOCKER_KMS_1		a24a_ldr00

#define LOCKER_KMS_2		a24a_ldr01

#define LOCKER_KMS_3		a24a_ldr02



	proc 写真撮影ミッション用ロッカー１設置 {

		chara ロッカー ロッカー:02 \

			-kms d:LOCKER_KMS_1 \

			-seno 4 \

			-sefloor 4 \

			-p -3500,0,-52700 \

			-r 0,1024,0 \

			-down_shift -200 0 0 \

			-g 	-250,700,0 -750,1700,0 \

				-300,1250,0 -600,1550,0 \

				-350,850,0 -550,1100,0 \

			-load_state $i:w24a_ロッカーロード回数[1] \

			-exec {

				@ロッカー状態保存 1 $3 $4

			}

	}

	

	proc 写真撮影ミッション用ロッカー２設置 {

		chara ロッカー ロッカー:06 \

			-kms d:LOCKER_KMS_2 \

			-seno 4 \

			-sefloor 4 \

			-p (-450+250),0,-46125 \

			-r 0,2048,0 \

			-g 	-250,700,0 -750,1700,0 \

				-300,1250,0 -600,1550,0 \

				-350,850,0 -550,1100,0 \

			-flag d:LOCKER_FLAG_DOWNOUTSIDE \

			-load_state $i:w24a_ロッカーロード回数[5] \

			-exec {

				@ロッカー状態保存 5 $3 $4

			}

	}

	

	proc 写真撮影ミッション用ロッカー３設置 {

		chara ロッカー ロッカー:08 \

			-kms d:LOCKER_KMS_3 \

			-seno 4 \

			-sefloor 4 \

			-p (1550+250),0,-46125 \

			-r 0,2048,0 \

			-s 0 \

			-load_state $i:w24a_ロッカーロード回数[7] \

			-exec {

				@ロッカー状態保存 7 $3 $4

			}

	}

	

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

// 写真撮影プロック

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

	

	proc 写真撮影プロック {

		command カメラ撮影時プロック -proc 撮影時プロック



		command カメラチェック面ワーク確保





		switch ( $$i:種 % 3 ) {

			case ( 0 ) {

				@ローカル版チェック面登録＿表 -3025 1510 -52600 p:ミスマガジン写真判定

			}

			case ( 1 ) {

				@ローカル版チェック面登録＿右 -100 1540 -46520 p:ミスマガジン写真判定

			}

			case ( 2 ) {

				@ローカル版チェック面登録＿右 1900 1500 -46550 p:ミスマガジン写真判定

			}

		}

	}

	

	proc ローカル版チェック面登録＿右 $:Ｘ $:Ｙ $:Ｚ $:p_判定プロック {

		command カメラチェック面登録 \

		-points $:Ｘ,($:Ｙ+100),($:Ｚ+100) \

				$:Ｘ,($:Ｙ+100),($:Ｚ-100) \

				$:Ｘ,($:Ｙ-100),($:Ｚ-100) \

				$:Ｘ,($:Ｙ-100),($:Ｚ+100) \

		-far 1 \

		-proc $:p_判定プロック

	}

	

	proc ローカル版チェック面登録＿表 $:Ｘ $:Ｙ $:Ｚ $:p_判定プロック {

		command カメラチェック面登録 \

		-points ($:Ｘ-100),($:Ｙ-100),$:Ｚ \

				($:Ｘ-100),($:Ｙ+100),$:Ｚ \

				($:Ｘ+100),($:Ｙ+100),$:Ｚ \

				($:Ｘ+100),($:Ｙ-100),$:Ｚ \

		-far 1 \

		-proc $:p_判定プロック

	}

	

	proc ミスマガジン写真判定 {

		print '写真撮影判定プロック呼び出し'

		command ゲットデジカメ被写体情報 $$i:Ｘ画面位置 $$i:Ｙ画面位置 $$i:画面占有率

		#if d:DEBUG_PRINT

			@写真判定プリント文 $1

			@２Ｄ用写真判定プリント文 $1

		#endif

		

		switch ( $$i:種 % 3 ) {

			case ( 0 ) {

				command ロッカー状態 -n ロッカー:02

			}

			case ( 1 ) {

				command ロッカー状態 -n ロッカー:06

			}

			case ( 2 ) {

				command ロッカー状態 -n ロッカー:08

			}

		} 

		

		if( ( $status & d:LOCKER_STATE_OPEN ) && !( $status & d:LOCKER_STATE_BROKEN ) ) {

			print 'ロッカー状態良好'

			if( $1 == 4 && $$i:画面占有率 > 100 ) {

				if( `@グラビアチェック範囲チェック 10 20 60` ) {

					$$b:撮影成功フラグ = 100;

				} else if( `@グラビアチェック範囲チェック 10 20 70` ) {

					$$b:撮影成功フラグ = 50;

				} else if( `@グラビアチェック範囲チェック 10 20 80` ) {

					$$b:撮影成功フラグ = 10;

				}

			}

		} else {

			print 'ロッカー状態最悪！'

		}

	}



	proc 撮影時プロック {

		print '撮影成功フラグ'$$b:撮影成功フラグ

		if( $$b:撮影成功フラグ >= 70 ) {

			command ＶＲクリア＿星の数の設定 3

			command ＶＲクリア＿スコアの設定 ( d:PHOTO_STAR_SCORE * 3 )

		} else if( $$b:撮影成功フラグ >= 30 ) {

			command ＶＲクリア＿星の数の設定 2

			command ＶＲクリア＿スコアの設定 ( d:PHOTO_STAR_SCORE * 2 )

		} else if( $$b:撮影成功フラグ >= 10 ) {

			command ＶＲクリア＿星の数の設定 1

			command ＶＲクリア＿スコアの設定 ( d:PHOTO_STAR_SCORE * 1 )

		}

		#if 0

			command ＶＲポーズ中クリア

		#else

			if( $$b:撮影成功フラグ ) {

				command ＶＲポーズ中クリア

			} else {

				@ミッション共通ゲームオーバー処理

			}

		#endif

	}





