#include maps\_utility;
#include common_scripts\utility;
#include maps\_anim;

#using_animtree( "generic_human" );
main()
{
	precacheModel( "com_cellphone_on" );
	precacheModel( "com_metal_briefcase" );
	
	civilian_walk_loops();
	favela_anims();
	civilian_stand_loops();
	fence_dog_anims();
	vehicle_anims();
	player_anims();
	model_anims();
	dialog();
}

civilian_walk_loops()
{
	three_twitch_weights = [];
	three_twitch_weights[0] = 2;
	three_twitch_weights[1] = 1;
	three_twitch_weights[2] = 1;
	three_twitch_weights[3] = 1;
	
	weights = [];
	weights[ 0 ] = 7;
	weights[ 1 ] = 3;
	one_twitch_weights = get_cumulative_weights( weights );
	
	level.scr_anim[ "civilian_cellphone_walk" ][ "run_noncombat" ][ 0 ]		= %civilian_cellphonewalk;
	level.scr_anim[ "civilian_cellphone_walk" ][ "run_noncombat" ][ 1 ]		= %civilian_cellphonewalk_twitch;
	level.scr_anim[ "civilian_cellphone_walk" ][ "run_weights" ]			= one_twitch_weights;
	level.scr_anim[ "civilian_cellphone_walk" ][ "dodge_left" ]				= %civilian_cellphonewalk_dodge_L;
	level.scr_anim[ "civilian_cellphone_walk" ][ "dodge_right" ]			= %civilian_cellphonewalk_dodge_R;
	level.scr_anim[ "civilian_cellphone_walk" ][ "turn_left_90" ]			= %civilian_cellphonewalk_turn_L;
	level.scr_anim[ "civilian_cellphone_walk" ][ "turn_right_90" ]			= %civilian_cellphonewalk_turn_R;
	
	level.scr_anim[ "civilian_hurried_walk" ][ "run_noncombat" ][ 0 ]		= %civilian_walk_hurried_1;
	level.scr_anim[ "civilian_hurried_walk" ][ "run_noncombat" ][ 1 ]		= %civilian_walk_hurried_2;
	
	level.scr_anim[ "civilian_cool_walk" ][ "run_noncombat" ][ 0 ]			= %civilian_walk_cool;
	
	level.scr_anim[ "civilian_briefcase_walk" ][ "run_noncombat" ][ 0 ]		= %civilian_briefcase_walk;
	level.scr_anim[ "civilian_briefcase_walk" ][ "dodge_left" ]				= %civilian_briefcase_walk_dodge_L;
	level.scr_anim[ "civilian_briefcase_walk" ][ "dodge_right" ]			= %civilian_briefcase_walk_dodge_R;
	level.scr_anim[ "civilian_briefcase_walk" ][ "turn_left_90" ]			= %civilian_briefcase_walk_turn_L;
	level.scr_anim[ "civilian_briefcase_walk" ][ "turn_right_90" ]			= %civilian_briefcase_walk_turn_R;
}

civilian_stand_loops()
{
	// STAND LOOPS
	level.scr_anim[ "generic" ][ "civilian_stand_idle" ][ 0 ]	 			= %civilian_stand_idle;
	level.scr_anim[ "generic" ][ "civilian_smoking_A" ][ 0 ]	 			= %civilian_smoking_A;
	level.scr_anim[ "generic" ][ "civilian_smoking_B" ][ 0 ]	 			= %civilian_smoking_B;
	level.scr_anim[ "generic" ][ "civilian_directions_1_A" ][ 0 ]	 		= %civilian_directions_1_A;
	level.scr_anim[ "generic" ][ "civilian_directions_1_B" ][ 0 ]	 		= %civilian_directions_1_B;
	level.scr_anim[ "generic" ][ "civilian_hackey_guy1" ][ 0 ]	 			= %civilian_hackey_guy1;
	level.scr_anim[ "generic" ][ "civilian_hackey_guy2" ][ 0 ]	 			= %civilian_hackey_guy2;
}

favela_anims()
{
	level.scr_anim[ "generic" ][ "bike_rider" ]								= %favela_bicycle_rider;
	
	level.scr_anim[ "makarov" ][ "opening_scene" ]							= %favela_van_shootout_guy1;
	level.scr_anim[ "makarov" ][ "opening_scene_shoot" ][ 0 ]				= %favela_van_shootout_guy1_aimidle;
	level.scr_anim[ "makarov" ][ "opening_scene_flee" ]						= %favela_van_shootout_guy1_runaway;
	level.scr_anim[ "makarov" ][ "stand_fire" ]								= %pistol_stand_fire_A;
	
	level.scr_anim[ "gunner1" ][ "opening_scene" ]							= %favela_van_shootout_guy2;
	level.scr_anim[ "gunner2" ][ "opening_scene" ]							= %favela_van_shootout_guy3;
	level.scr_anim[ "driver" ][ "opening_scene" ]							= %favela_van_shootout_guy4;
	
	level.scr_anim[ "generic" ][ "airport_civ_fear_drop_5" ] 				= %airport_civ_fear_drop_5;
	
	level.scr_anim[ "generic" ][ "airport_civ_dying_groupA_kneel" ] 		= %airport_civ_dying_groupA_kneel;
	level.scr_anim[ "generic" ][ "airport_civ_dying_groupA_lean" ] 			= %airport_civ_dying_groupA_lean;
	
	level.scr_anim[ "driver" ][ "idle" ][ 0 ]								= %coup_driver_idle;
	level.scr_anim[ "driver" ][ "center2right" ]							= %coup_driver_center2smallright;
	level.scr_anim[ "driver" ][ "right2center" ]							= %coup_driver_smallright2center;
	level.scr_anim[ "driver" ][ "react" ]									= %favela_opening_driver_death;
	addNotetrack_customFunction( "driver", "bullet hit", maps\favela::driver_shot_in_head );
	addNotetrack_customFunction( "driver", "steering hit", maps\favela::driver_falls_on_horn );
	
	level.scr_anim[ "curtain_pull" ][ "pulldown" ] 							= %favela_curtain_pull;
	level.scr_anim[ "generic" ][ "window_smash" ]							= %window_melee;
	
	level.scr_anim[ "generic" ][ "civilian_window_1" ]						= %unarmed_shout_window_v2;
	level.scr_sound[ "generic" ][ "civilian_window_1" ]						= "civilian_window_shout_1";
	
	level.scr_anim[ "desert_eagle_guy" ][ "run" ]						 	= %unarmed_run_russian;
	
	level.scr_anim[ "generic" ][ "run_death_roll" ]					 		= %run_death_roll;
	
	level.scr_anim[ "generic" ][ "alley_death_fall" ]				 		= %civilian_run_2_crawldeath;
	addNotetrack_animSound( "generic", "alley_death_fall", "bodyfall large", "scn_favela_death_crawl" );
	
	level.scr_anim[ "meat" ][ "favela_warning_jump" ]						= %favela_civ_warning_jump;
	level.scr_anim[ "meat" ][ "favela_warning_landing" ]					= %favela_civ_warning_landing;
	//level.scr_sound[ "meat" ][ "favela_warning_landing" ]					= "favela_met_notsafe";		// It's not safe to be here!! Get as far away as you can!!
	
	level.scr_anim[ "mactavish" ][ "run_and_wave" ]							= %favela_run_and_wave;
	level.scr_sound[ "mactavish" ][ "run_and_wave" ]						= "favela_cmt_gettingaway";	// He's getting away!! Roach let's go let's go!!!
	
	level.scr_anim[ "faust" ][ "ending_takedown" ]							= %favela_ending_runner;
	level.scr_anim[ "mactavish" ][ "ending_takedown" ]						= %favela_ending_soldier;
	addNotetrack_dialogue( "mactavish", "dialog", "ending_takedown", "favela_cmt_gotpackage" );
	addNotetrack_animSound( "mactavish", "ending_takedown", "break_glass", "scn_favela_npc_through_window" );
	addNotetrack_customFunction( "mactavish", "break_glass", maps\favela_code::dive_through_glass );
	
	level.scr_anim[ "torture_enemy" ][ "torture" ]							= %favela_torture_sequence_prisoner;
	level.scr_anim[ "torture_friend1" ][ "torture" ]						= %favela_torture_sequence_soldier1;
	level.scr_anim[ "torture_friend2" ][ "torture" ]						= %favela_torture_sequence_soldier2;
	level.scr_sound[ "torture_friend2" ][ "torture" ]						= "favela_cmt_hidinginfav";	// Roach, this is going to take some time. Go with Meat and Royce and check out the favela for any sign of Faust - that's where this guy was headed.
	addNotetrack_flag( "torture_friend2", "pull_start", "drop_door" );
	
	level.scr_anim[ "trailer" ][ "casual_stand_v2_twitch_talk" ][ 0 ]		= %casual_stand_v2_twitch_talk;
}

#using_animtree( "dog" );
fence_dog_anims()
{
	level.scr_anim[ "dog" ][ "fence_attack" ]								= %sniper_escape_dog_fence;
}

#using_animtree( "vehicles" );
vehicle_anims()
{
	level.scr_animtree[ "van" ] 										 	= #animtree;
	level.scr_anim[ "van" ][ "door_open" ]									= %favela_van_shootout_van;
	
	level.scr_animtree[ "car" ] 										 	= #animtree;
	level.scr_anim[ "car" ][ "driving" ]									= %coup_driver_idle_car;
	level.scr_anim[ "car" ][ "door_open" ]									= %favela_opening_cardoor_open;
	level.scr_anim[ "car" ][ "center2right" ]								= %coup_driver_center2smallright_car;
	level.scr_anim[ "car" ][ "right2center" ]								= %coup_driver_smallright2center_car;
	level.scr_anim[ "car" ][ "run_and_wave" ]								= %favela_run_and_wave_cardoor;
	
	level.scr_anim[ "car" ][ "ending_takedown" ]							= %favela_ending_car;
	addNotetrack_animSound( "car", "ending_takedown", "window_shatter", "scn_favela_npc_car_landing" );
	addNotetrack_customFunction( "car", "window_shatter", maps\favela_code::ending_car_fx );
}

#using_animtree( "player" );
player_anims()
{
	level.scr_anim[ "player_rig" ][ "die" ]									 = %favela_opening_playerview_death;
	level.scr_anim[ "player_rig" ][ "duck_down" ]							 = %favela_opening_playerview_down;
	level.scr_anim[ "player_rig" ][ "duck_down_idle" ][ 0 ]					 = %favela_opening_playerview_downidle;
	level.scr_anim[ "player_rig" ][ "duck_up" ]								 = %favela_opening_playerview_up;
	level.scr_animtree[ "player_rig" ] 										 = #animtree;
	level.scr_model[ "player_rig" ] 										 = "viewhands_player_tf141_favela";
}

#using_animtree( "script_model" );
model_anims()
{
	level.scr_animtree[ "bike" ] 										 	= #animtree;
	level.scr_anim[ "bike" ][ "pedal" ]										= %favela_bicycle;
	
	level.scr_animtree[ "curtain" ] 										 = #animtree;
	level.scr_model[ "curtain" ] 											 = "curtain_torn01_animated";
	level.scr_anim[ "curtain" ][ "pulldown" ]								 = %favela_curtain_model_pull;
	
	level.scr_animtree[ "torture_cables" ] 									 = #animtree;
	level.scr_model[ "torture_cables" ] 									 = "machinery_jumper_cable";
	level.scr_anim[ "torture_cables" ][ "torture" ]							 = %favela_jumper_cables;
	//addNotetrack_animSound( "torture_cables", "torture", "spark", "SOUNDALIAS" );
	addNotetrack_customFunction( "torture_cables", "spark", ::jumper_cable_fx );
	
	level.scr_animtree[ "hula_girl" ] 										 = #animtree;
	level.scr_model[ "hula_girl" ] 											 = "vehicle_hummer_hula_girl";
	level.scr_anim[ "hula_girl" ][ "bobble" ]								 = %hula_girl_bobble;
	level.scr_anim[ "hula_girl" ][ "bobble_stop" ]							 = %hula_girl_bobble_stop;
	
}

dialog()
{
	// Chad - not hooked up yet
	// Roach, that was a civilian! Last I checked you served with the SAS, not the SS. Check your bloody targets!
	//level.scr_sound[ "mactavish" ][ "favela_cmt_notthess" ]				= "favela_cmt_notthess";
	
	//------------
	// DRIVING IN CAR
	//------------
	
	// Ghost, the plates are a match.
	level.scr_radio[ "favela_cmt_ready2move" ] 								= "favela_cmt_ready2move";
	
	// Copy. Any sign of Faust's right hand man?
	level.scr_radio[ "favela_gst_good2go" ] 								= "favela_gst_good2go";
	
	// Negative. They've stopped twice already - no sign of him.
	level.scr_radio[ "favela_cmt_rogerthat" ] 								= "favela_cmt_rogerthat";
	
	// Wait, they've stopped again. Standby.
	level.scr_radio[ "favela_cmt_inposition" ] 								= "favela_cmt_inposition";
	
	// Got a positive ID! Whoever these guys are, they're not happy to see him…
	level.scr_radio[ "favela_cmt_insight" ] 								= "favela_cmt_insight";
	
	// Ghost we have a situation here!
	level.scr_radio[ "favela_cmt_needhimalive" ] 							= "favela_cmt_needhimalive";
	
	// Get down get down!!!
	level.scr_radio[ "favela_cmt_getdown" ]									= "favela_cmt_getdown";
	
	//------------
	// CHASE
	//------------
	
	// Ghost, our driver's dead! We're on foot! Meet us at the Hotel Rio and cut him off if you can!
	level.scr_sound[ "mactavish" ][ "favela_cmt_driversdead" ]				= "favela_cmt_driversdead";
	
	// Roger, I'm on my way!
	level.scr_radio[ "favela_gst_onmyway" ] 								= "favela_gst_onmyway";
	
	// He went into the alley - bloody hell he's fast!
	level.scr_radio[ "favela_gst_hesfast" ] 								= "favela_gst_hesfast";
	
	// Non-lethal takedowns only! We need him alive!
	level.scr_sound[ "mactavish" ][ "favela_cmt_nonlethal" ]				= "favela_cmt_nonlethal";
	
	// Roach - take the shot!! Go for his leg!!
	level.scr_sound[ "mactavish" ][ "favela_cmt_takeshot" ]					= "favela_cmt_takeshot";
	
	// He's down! Good job Roach.
	level.scr_sound[ "mactavish" ][ "favela_cmt_hesdown" ]					= "favela_cmt_hesdown";	
	
	//------------
	// ALLEY
	//------------
	
	// Let's go.
	level.scr_sound[ "royce" ][ "favela_ryc_letsgo" ]						= "favela_ryc_letsgo";
	
	// Remember - there are civilians in the favela. Take clean shots, watch your background.
	level.scr_sound[ "royce" ][ "favela_ryc_watchyourbg" ]					= "favela_ryc_watchyourbg";
	
	// Meat, give the civvies a fair warning.
	level.scr_sound[ "royce" ][ "favela_ryc_warning" ]						= "favela_ryc_warning";
	
	// Roger that.
	level.scr_sound[ "meat" ][ "favela_met_rogerthat" ]						= "favela_met_rogerthat";
	
	//------------
	// FAVELA
	//------------
	
	// Bravo Six, be advised - we've engaged enemy militia at the lower village!
	level.scr_radio[ "favela_cmt_fullbattalion" ]							= "favela_cmt_fullbattalion";	
	
	// Roach! I'm with you! Watch the rooftops! Go!
	level.scr_radio[ "favela_ryc_withyou" ]									= "favela_ryc_withyou";
	
	// Royce, gimme a sitrep, over!
	level.scr_radio[ "favela_cmt_doingok" ]									= "favela_cmt_doingok";
	
	// Lots of militia but no sign of Faust over here, over!
	level.scr_radio[ "favela_ryc_nosign" ]									= "favela_ryc_nosign";
	
	// Copy that! Keep searching! Let me know if you see him! Out!
	level.scr_radio[ "favela_cmt_keepsearching" ]							= "favela_cmt_keepsearching";
	
	// Roach! Move up! Let's go!
	level.scr_radio[ "favela_ryc_moveup" ]									= "favela_ryc_moveup";
	
	// Meat is down! I repeat, Meat is down!
	level.scr_radio[ "favela_ryc_meatisdown" ]								= "favela_ryc_meatisdown";
	
	// Roach! I'm down! Meat's dead! They're all over - (gunfire, angry shouting in Portuguese)
	level.scr_radio[ "favela_ryc_imhit" ]									= "favela_ryc_imdown";
	
	//------------
	// SOCCER
	//------------
	
	// Roach - we've got Faust's location! He's headed west along the upper levels of the favela.
	level.scr_radio[ "favela_cmt_cuthimoff" ]								= "favela_cmt_cuthimoff";
	
	// We'll keep him from doubling back on our side - keep going and cut him off up top!
	level.scr_radio[ "favela_cmt_keepgoing" ]								= "favela_cmt_keepgoing";
	
	// There's no time to wait for backup. You're gonna have to do this on your own. Good luck. Out.
	level.scr_radio[ "favela_cmt_notime" ]									= "favela_cmt_notime";
	
	// Roach, watch the rooftops! We've had a few close calls with RPGs and machine guns positioned up high!
	level.scr_radio[ "favela_cmt_watchrooftops" ]							= "favela_cmt_watchrooftops";
	
	// Roach - this is their territory and they know it well! Keep an eye open for ambush positions and check your corners!
	level.scr_radio[ "favela_cmt_theirterritory" ]							= "favela_cmt_theirterritory";
	
	//------------
	// LOWER HILL
	//------------
	
	// Roach, we're taking heavy fire from militia here but I'm still tracking Faust! He's gone into a building to get something! Ghost, you see him?
	level.scr_radio[ "favela_cmt_stilltracking" ]							= "favela_cmt_stilltracking";
	
	// Roger that, subject is now carrying a black duffel bag full of cash! Greedy bastard!
	level.scr_radio[ "favela_gst_duffelbag" ]								= "favela_gst_duffelbag";
	
	// Well that ought to slow him down! Roach, we're keeping him from doubling back! Keep moving to intercept! Go! Go!
	level.scr_radio[ "favela_cmt_intercept" ]								= "favela_cmt_intercept";
	
	// Keep going! Faust is still headed towards your side of the favela!
	level.scr_radio[ "favela_cmt_yourside" ] 								= "favela_cmt_yourside";
	
	// Roach! Don't let the militia pin you down for too long! Use your flashbangs on them!
	level.scr_radio[ "favela_gst_pinyoudown" ] 								= "favela_gst_pinyoudown";
	
	// I've lost sight of him again! Ghost, talk to me!
	level.scr_radio[ "favela_cmt_lostsightagain" ] 							= "favela_cmt_lostsightagain";
	
	// I'm onto him! He's trying to double back through the alleys below!
	level.scr_radio[ "favela_gst_alleysbelow" ] 							= "favela_gst_alleysbelow";
	
	// Roger that! Stay on him!
	level.scr_radio[ "favela_cmt_stayonhim" ] 								= "favela_cmt_stayonhim";
	
	// I've got a visual on Faust! He's cutting through the market!	
	level.scr_radio[ "favela_gst_cuttingthru" ] 							= "favela_gst_cuttingthru";
	
	// Roger that! I'll head for the rooftops and try to cut him off on the right! He's going to have no choice but to head west!
	level.scr_radio[ "favela_cmt_headforrooftops" ] 						= "favela_cmt_headforrooftops";
	
	// Bloody hell, I'm taking a lot of fire from the militia, I don't think I can track him through the market! I'm going to have to find another way around!
	level.scr_radio[ "favela_gst_wayaround" ] 								= "favela_gst_wayaround";
	
	// Be advised, I'm about half a klick east of the market, I can see Faust running across the rooftops on my right side!
	level.scr_radio[ "favela_gst_halfklick" ] 								= "favela_gst_halfklick";
	
	// Roger that! Roach! We're corraling him closer to your side of the hill! Keep an eye open for Faust! He's still moving across the rooftops!
	level.scr_radio[ "favela_cmt_eyeopen" ] 								= "favela_cmt_eyeopen";
		
	// Sir, I've got Faust in my sights! I can go for a clean leg shot! We can end it here!
	level.scr_radio[ "favela_gst_legshot" ] 								= "favela_gst_legshot";
	
	// Negative! We can't risk it! Do not engage Faust!
	level.scr_radio[ "favela_cmt_donotengage" ] 							= "favela_cmt_donotengage";
	
	// Bollocks! Roger that!
	level.scr_radio[ "favela_gst_rogerthat2" ] 								= "favela_gst_rogerthat2";
	
	// Roach! I've spotted Faust, he's making a run for it! He's headed your way!
	level.scr_radio[ "favela_cmt_spottedfaust" ] 							= "favela_cmt_spottedfaust";
	
	// And don't shoot him! We need him alive and unharmed! 
	level.scr_radio[ "favela_cmt_unharmed" ] 								= "favela_cmt_unharmed";
	
	// Roach, we're going to cut him off at the summit, keep pushing him that way! Go! Go!
	level.scr_radio[ "favela_cmt_cutoff" ] 									= "favela_cmt_cutoff";
	
	// Roach! Keep moving uphill! I've cut him off! He's got nowhere to go but west over the rooftops into your area!
	level.scr_radio[ "favela_cmt_nowheretogo" ] 							= "favela_cmt_nowheretogo";
	
	// Roach! He knows the area well but we can trap him up here! Don't stop! Go! Go!
	level.scr_radio[ "favela_cmt_traphimuphere" ] 							= "favela_cmt_traphimuphere";
	
	// He jumped the fence! I'm after him!!!
	level.scr_radio[ "favela_gst_jumpedfence" ] 							= "favela_gst_jumpedfence";
	
	// Roger that! I'm going around to the left!
	level.scr_radio[ "favela_cmt_goingleft" ] 								= "favela_cmt_goingleft";
	
	// Where is he where is he?
	level.scr_radio[ "favela_gst_whereishe" ] 								= "favela_gst_whereishe";
	
	// Got a visual! He's over there, sliding down the tin rooftops!
	level.scr_radio[ "favela_cmt_slidingrooftops" ] 						= "favela_cmt_slidingrooftops";
	
	// I've got another clear leg shot!
	level.scr_radio[ "favela_gst_anotherlegshot" ] 							= "favela_gst_anotherlegshot";
	
	// Negative! Not unless you want to carry him back out with all this militia breathing down your neck! I need him unharmed!
	level.scr_radio[ "favela_cmt_carryhimback" ] 							= "favela_cmt_carryhimback";
	
	// Roach! He's getting closer to your part of the favela!! Keep moving! Go! Go!
	level.scr_radio[ "favela_cmt_closertoyourpart" ] 						= "favela_cmt_closertoyourpart";
	
	//------------
	// UPPER HILL
	//------------
	
	// Ghost he's going for that motorcycle!
	level.scr_radio[ "favela_cmt_motorcycle" ] 								= "favela_cmt_motorcycle";
	
	// (gunshots, explosion) No he's not.
	level.scr_radio[ "favela_gst_nohesnot" ] 								= "favela_gst_nohesnot";
	
	// Nice! He's breaking to the right again! Roach, if you see him, don't shoot him! I need him unharmed!
	level.scr_radio[ "favela_cmt_dontshoothim" ] 							= "favela_cmt_dontshoothim";
	
	// Roach! He's on the move and headed your way! Go! Go!
	level.scr_radio[ "favela_cmt_onthemove" ] 								= "favela_cmt_onthemove";
	
	// Roach! He's jumped another fence and he's still headed towards your end of the favela! Keep moving up! Go! Go!
	level.scr_radio[ "favela_cmt_anotherfence" ] 							= "favela_cmt_anotherfence";
	
	// Keep corraling him up the hill! We'll cut him off at the top!
	level.scr_radio[ "favela_cmt_corraling" ] 								= "favela_cmt_corraling";
	
	// We've got eyes on Faust - wait! Shite! he's headed back towards you! 
	level.scr_radio[ "favela_cmt_backtowards" ] 							= "favela_cmt_backtowards";

	// Roach, keep pushing him up the hill! Don't let him double back!
	level.scr_radio[ "favela_cmt_doubleback" ] 								= "favela_cmt_doubleback";
	
	// Ghost, I'm going far right!
	level.scr_radio[ "favela_cmt_farright" ] 								= "favela_cmt_farright";
	
	// Roger that.
	level.scr_radio[ "favela_gst_rogerthat" ] 								= "favela_gst_rogerthat";
	
	//------------
	// ENDING
	//------------
	
	// He's gonna get away!!
	level.scr_radio[ "favela_gst_getaway" ] 								= "favela_gst_getaway";
	
	// No he's not.
	level.scr_radio[ "favela_cmt_nohesnot" ] 								= "favela_cmt_nohesnot";
	
	// Frontrunner, this is Bravo Six. We've got the package.
	level.scr_sound[ "mactavish" ][ "favela_cmt_gotpackage" ]				= "favela_cmt_gotpackage";
	
	
	level.scr_sound[ "ghost" ][ "favela_gst_sendchopper" ]					= "favela_gst_sendchopper";
	level.scr_sound[ "ghost" ][ "favela_gst_skiesareclear" ]				= "favela_gst_skiesareclear";
	level.scr_sound[ "ghost" ][ "favela_gst_onourown" ]						= "favela_gst_onourown";
	
	
	
	
	
	
	
	
	
	
	
	//------------
	// CIVILIAN WALLA
	//------------
	
	level.scr_sound[ "generic" ][ "walla1" ]								= "favela_civ1_outofhere";			// Get out of here!! Hurry!!
	level.scr_sound[ "generic" ][ "walla2" ]								= "favela_civ2_run";				// Run! Get to cover!!!
	level.scr_sound[ "generic" ][ "walla3" ]								= "favela_civ3_kidsoutofhere";		// Get the kids out of here!!! Go! Go!!!
	level.scr_sound[ "generic" ][ "walla4" ]								= "favela_civ4_carlarun";			// Carla, run!! Get out here!!!	
	level.scr_sound[ "generic" ][ "walla5" ]								= "favela_civ1_policecoming";		// The police are coming to the favela!!!
	level.scr_sound[ "generic" ][ "walla6" ]								= "favela_civ2_surepolice";			// Cesar, are you sure they're the police??
	level.scr_sound[ "generic" ][ "walla7" ]								= "favela_civ3_notstaying";			// I don't know, they're not from around here and I'm not staying to find out!!
	level.scr_sound[ "generic" ][ "walla8" ]								= "favela_civ4_policeraid";			// It's a police raid!!! Get out of here!!!
	level.scr_sound[ "generic" ][ "walla9" ]								= "favela_civ1_ineshouse";			// Felipe and his men will take care of the police, get to Ines' house, go!!!
	level.scr_sound[ "generic" ][ "walla10" ]								= "favela_civ2_crossfire";			// Stay low!!! Stay out of the crossfire!!!
	level.scr_sound[ "generic" ][ "walla11" ]								= "favela_civ3_shootout";			// There's going to be a shootout!!! Get out of here!!!
	level.scr_sound[ "generic" ][ "walla12" ]								= "favela_civ4_otherside";			// Head for the other side of the favela, hurry!!!
	
	level.fleeing_civilian_wallas[ 0 ] = "walla1";
	level.fleeing_civilian_wallas[ 1 ] = "walla2";
	level.fleeing_civilian_wallas[ 2 ] = "walla3";
	level.fleeing_civilian_wallas[ 3 ] = "walla4";
	level.fleeing_civilian_wallas[ 4 ] = "walla5";
	level.fleeing_civilian_wallas[ 5 ] = "walla6";
	level.fleeing_civilian_wallas[ 6 ] = "walla7";
	level.fleeing_civilian_wallas[ 7 ] = "walla8";
	level.fleeing_civilian_wallas[ 8 ] = "walla9";
	level.fleeing_civilian_wallas[ 9 ] = "walla10";
	level.fleeing_civilian_wallas[ 10 ] = "walla11";
	level.fleeing_civilian_wallas[ 11 ] = "walla12";
}

jumper_cable_fx( cables )
{
	playFXOnTag( getfx( "jumper_cables" ), cables, "j_jcable_clamp02_head_ri" );
}