/*

	a00a_photo.h

		（写真撮影ミッション用）

	2002/03/13 S.Kaneyoshi

	$Id: a00a_photo.h,v 1.19 2002/10/02 09:04:15 usr04249 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_a03a p:load_alt_photo_a00a

	}



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

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

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

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



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

		command マップ設定 甲板 -set {

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

			@写真撮影ミッション用ローカル変数初期化

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

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

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

			@写真撮影待機所変更						// コマンダーの設定後にセットする

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

		}



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

		command マップ設定 甲板 -set {

			//@写真撮影ミッション用甲板アイテム設置

			@写真撮影プロック

			

			@スタート時は鏡面モデルを消す

		}

	}



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

// スタート時の処理

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

	proc スタート時は鏡面モデルを消す {

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

	}

	

	proc ゲーム開始直後処理 {

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

		mesg ルートデモ人形 幽霊 ルート変更 4

	}



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

// 変数初期化

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

	proc 写真撮影ミッション用ローカル変数初期化 {

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

		$$i:Ｘ画面位置 = 0;

		$$i:Ｙ画面位置 = 0;

		$$i:画面占有率 = 0;

		$$i:中心からの距離 = 0;

	}



	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	// 甲板との右水密ドア

		

		// 初期装備セット

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

		$w:アイテム数Ｒ[ d:アイテム:振動センサー ] = 1;

		$w:武器弾数Ｒ[ d:武器:Ｍ９ ] = 10;

		$w:アイテム = d:アイテム:振動センサー;

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

		

	}

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

// サウンド

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

	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 ＢＧＭマネージャー ＢＧＭマネ -s 0x00000001



		chara ＢＧＭ風音 風音



		//Track0x06 …雨、屋根当たり音[場所に貼る]

		chara ＢＧＭフェーダー 雨屋根当たり音 \

			-t 0x06 \

			-a -13500,4000,-12000 1500,1000,4000 w00a \	//左舷救命ボート

				13500,4000,-12000 1500,1000,4000 w00a \	//右舷救命ボート

				-4000,1000,16500 2000,1000,1500 w00a \	//左舷ウインチ

				4000,1000,16500 2000,1000,1500 w00a		//右舷ウインチ



		//Track0x07 …雨、鉄板系当たり音[場所に貼る]

		chara ＢＧＭフェーダー 雨鉄板系当たり音 \

			-t 0x07 \

			-a -9000,7000,-6000 2000,1000,2000 w00a \	//左舷アンテナ

				9000,7000,-6000 2000,1000,2000 w00a \	//右舷アンテナ

				-11500,1500,-4500 1500,2000,1000 w00a \	//左舷１Ｆ階段

				11500,1500,-4500 1500,2000,1000 w00a \	//右舷１Ｆ階段

				-7500,1000,6000 1000,2000,1000 w00a \	//左舷１Ｆ階段南

				7500,1000,6000 1000,2000,1000 w00a \	//右舷１Ｆ階段南

				-10000,3000,1500 2000,1000,2000 w00a \	//左舷クレーンそば

				10000,3000,1500 2000,1000,2000 w00a		//右舷クレーンそば





		//Track0x08 …雨、床当たり音[鳴らない場所を指定、ステータスに 0x0003 を指定]

		chara ＢＧＭフェーダー 雨床当たり音 \

			-t 0x08 \

			-a -16000,1000,-11500 4000,1000,6500 w00a \	//左舷下

				16000,1000,-11500 4000,1000,6500 w00a \	//右舷下

			-s 0x0003

	}





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

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

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

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

	#if d:DEBUG_PRINT

		print 'vr_window_set'

	#endif



	@ＶＲウィンドウ設定	[VRMSG_J:ALT_PHT_a00a_RAI] [VRMSG_E:ALT_PHT_a00a_RAI] \	// 日、英

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

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

						[VRMSG_K:ALT_PHT_a00a_RAI] \							// 韓

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





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

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





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

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



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

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

		-c 1 \

		/*

		// Xbox では処理落ちし過ぎなので

		-p 1,1583,21718 -t 1,2621,9656 \

		-r -56,2048,0 -f 12106 \

		-a 200 \

		*/

		-p 0,9287,11264 -t 0,7282,6250 \

		-r 248,2048,0 -f 5399 \

		-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 2,17930,20263 -t 2,9587,11500 \

		-r 496,2048,0 -f 12099 \

		-a 200 \

		*/

		-p 0,9287,11264 -t 0,7282,6250 \

		-r 248,2048,0 -f 5399 \

		-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 2048



		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

		

		chara delay クリアリスタート -time 120 -exec {

			restart;

		}

	}



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

// 敵兵の設定

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

#define ENE01_DEF_X		-8750

#define ENE01_DEF_Y		0

#define ENE01_DEF_Z		-4500



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

		#if d:DEBUG_PRINT

			print 'watcher_set-bomb_misson'

		#endif



		@A_警備兵 敵兵:01 \

			1 \		// ルート

			0 \		// ノード

			( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			甲板

		

		@A_警備兵 敵兵:02 \

			2 \		// ルート

			0 \		// ノード

			( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			甲板

		

		@A_警備兵 敵兵:03 \

			5 \		// ルート

			0 \		// ノード

			( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

			d:ENE01_DEF_X d:ENE01_DEF_Y d:ENE01_DEF_Z \

			甲板

	}



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

		#if d:DEBUG_PRINT

			print 'attacker_set-bomb_misson'

		#endif



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

		// 攻撃兵全員をトラップに引っかけるために

		// 名前を「攻撃兵」で統一する事



		@A_攻撃兵 攻撃兵:01 \

			0 \

			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 \

			-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 -18500,0,-17000 甲板 \

				18500,0,-17000 甲板 \

			-c -8750,0,-2000 甲板 \

				8750,0,-2000 甲板 \

				0,6000,6500 甲板 \

				0,0,8500 甲板 \

			-x [ghq_area_alert_voice:w00a] \

			-y [ghq_caution_voice:a00a] \

			-v [ene_tank_voice:06] \

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

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

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

			-h $i:標準警戒時間

	}



	proc 写真撮影待機所変更 {

		if($i:プレイヤー位置Ｘ > 0){

			mesg コマンダー 敵兵セット 待機所替え 0

		}else{

			mesg コマンダー 敵兵セット 待機所替え 1

		}



		//以下は，甲板には傷の手当てをするところがないので、スネークの位置によって待機所を見えないところに変更する処理。

		trap ca000 d:PLAYER \

			-mask ？ \

			-exec {

				if($3 == 入る){

					//mesg 警備兵 敵兵:03 ルート変更 6 -6500 6000 7000 甲板

					if($4 > 0){

						mesg コマンダー 敵兵セット 待機所替え 0

					}else{

						mesg コマンダー 敵兵セット 待機所替え 1

					}

				}else{

					//mesg 警備兵 敵兵:03 ルート変更 3 -6500 6000 7000 甲板

					mesg コマンダー 敵兵セット 待機所替え 2

				}

			}





		trap ca009 d:PLAYER \

			-mask ？ \

			-exec {

				if($3 == 入る){

					if($4 > 0){

						mesg コマンダー 敵兵セット 待機所替え 0

					}else{

						mesg コマンダー 敵兵セット 待機所替え 1

					}

				}else{

					mesg コマンダー 敵兵セット 待機所替え 3

				}

			}



		// 攻撃兵はプレイヤーから見えない位置に移動する

		trap ca003 d:PLAYER \

			-mask 入る \

			-exec {

				if( $4 > 0 ){

					mesg アタッカー 攻撃兵 ルート変更 8

				}else{

					mesg アタッカー 攻撃兵 ルート変更 5

				}

			}

	}



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

// アイテム関連

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



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

		#if d:DEBUG_PRINT

			print 'item_no_set'

		#endif





		#if d:DEBUG_PRINT

			print $:ボックス名

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

		#endif

	}



	proc 写真撮影ミッション用甲板アイテム設置 {

		#if d:DEBUG_PRINT

			print 'locker room item set'

		#endif



	}



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

// 写真判定用プロック

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



	proc 写真撮影プロック {

		// 幽霊セット

		chara ルートデモ人形 幽霊 \

				-route 3 0 \

				-kms gbs_def \ /*EVMを表示する場合はダミーKMSが必要*/

				-mar gbs_a00a_photo \

				-number 0 \

				//-number $i:移動モーション番号 \

				//-status $i:ステータス \

				//-proc $p:ポイントプロック $b:ポイント番号 ...2 \

				-item	aks 6 \

				-weapon	1

		

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

	

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



		command カメラチェックキャラ登録 \

			-name 幽霊 \

			-joint 2 \

			-far 1 \

			-proc 幽霊ボディ写真判定



		command カメラチェックキャラ登録 \

			-name 幽霊 \

			-joint 12 \

			-far 1 \

			-proc 幽霊フェイス写真判定

	}

	

	proc 幽霊ボディ写真判定 {

		print 'ボディ'

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

		#if d:DEBUG_PRINT

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

		#endif

		$$i:中心からの距離 = `@写真中心チェック`

		print '中心からの距離'$$i:中心からの距離

		

		if( $1 == 1 ) {

			if( $$i:中心からの距離 < 20 ) {

				@撮影成功フラグ入力 100

			} else if( $$i:中心からの距離 < 35 ) {

				@撮影成功フラグ入力 50

			} else if( $$i:中心からの距離 < 50 ) {

				@撮影成功フラグ入力 10

			}

		}

	}



	proc 幽霊フェイス写真判定 {

		print 'フェイス'

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

		#if d:DEBUG_PRINT

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

		#endif

		$$i:中心からの距離 = `@写真中心チェック`

		print '中心からの距離'$$i:中心からの距離

		

		if( $1 == 1 ) {

			if( $$i:中心からの距離 < 20 ) {

				@撮影成功フラグ入力 100

			} else if( $$i:中心からの距離 < 30 ) {

				@撮影成功フラグ入力 50

			} else if( $$i:中心からの距離 < 40 ) {

				@撮影成功フラグ入力 10

			}

		}

	}

	

	proc 撮影時プロック {

		print '********************************************************'

		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( $$b:撮影成功フラグ ) {

			command ＶＲポーズ中クリア

		} else {

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

		}

		

	}