// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool audio_main() { soundsettimescalefactor( "music", 0 ); soundsettimescalefactor( "effects2d1", 0 ); soundsettimescalefactor( "effects2d2", 0 ); soundsettimescalefactor( "ambient", 0 ); soundsettimescalefactor( "weapon", 0 ); soundsettimescalefactor( "bulletimpact", 0 ); soundsettimescalefactor( "bulletwhizbyin", 0 ); soundsettimescalefactor( "bulletwhizbyout", 0 ); soundsettimescalefactor( "element", 0 ); soundsettimescalefactor( "effects1", 0 ); soundsettimescalefactor( "local", 0.5 ); thread sfx_crate_trigger_setup(); thread sfx_mud_trigger_setup(); thread sfx_mudslide_trigger_setup(); thread sfx_create_conveyor_line_emitter(); thread start_conveyor_line_emitter(); thread sfx_create_jungle_line_emitter(); thread sfx_create_truckyard_line_emitter(); thread start_truckyard_line_emitter(); thread sfx_create_movingcover2_line_emitters(); thread start_movingcover2_sfx_loops(); if ( level.start_point == "intro" || level.start_point == "intro_train" || level.start_point == "default" || level.start_point == "factory_ingress" ) thread audio_sfx_truck_idle_loop_start(); level.rollingloop = "emt_movingcover2_rolling1_loop"; level.jump_to_amb_alias = undefined; thread audio_sfx_factory_distant_loop_start(); level.factoryrevealambience = spawn( "script_origin", ( 5300, 2500, 500 ) ); level.factoryrevealambienceemt = spawn( "script_origin", ( 6192, 2592, 500 ) ); level.factoryrevealambienceemt2 = spawn( "script_origin", ( 6357, 3113, 396 ) ); thread audio_setup_tank_room_trigger(); } sfx_rog_reveal_setup() { common_scripts\utility::flag_set( "trigger_hall" ); var_0 = getent( "trigger_audio_hall", "targetname" ); var_0 thread sfx_hall_trigger(); var_1 = getent( "trigger_audio_sat_room", "targetname" ); var_1 thread sfx_sat_trigger(); level.hallway_rog_mvmt = spawn( "script_origin", ( 7610, -152, 314 ) ); } sfx_hall_trigger() { for (;;) { self waittill( "trigger" ); if ( common_scripts\utility::flag( "trigger_sat_room" ) ) { if ( !common_scripts\utility::flag( "mix_tunnel_open" ) ) common_scripts\utility::flag_set( "mix_tunnel_open" ); common_scripts\utility::flag_clear( "trigger_sat_room" ); level.player setclienttriggeraudiozone( "factory_wh1_tunnel_open_2", 0 ); } if ( !common_scripts\utility::flag( "trigger_hall" ) ) common_scripts\utility::flag_set( "trigger_hall" ); while ( level.player istouching( self ) ) wait 0.1; } } sfx_sat_trigger() { for (;;) { self waittill( "trigger" ); if ( common_scripts\utility::flag( "trigger_hall" ) ) common_scripts\utility::flag_clear( "trigger_hall" ); if ( !common_scripts\utility::flag( "trigger_sat_room" ) ) { common_scripts\utility::flag_set( "trigger_sat_room" ); if ( common_scripts\utility::flag( "mix_tunnel_open" ) ) level.player clearclienttriggeraudiozone( 0.7 ); } while ( level.player istouching( self ) ) wait 0.1; } } sfx_sat_door_mix_open() { if ( common_scripts\utility::flag( "trigger_hall" ) ) { common_scripts\utility::flag_set( "mix_tunnel_open" ); level.player setclienttriggeraudiozone( "factory_wh1_tunnel_open", 1.2 ); } } sfx_sat_door_mix_close() { if ( common_scripts\utility::flag( "trigger_hall" ) ) { common_scripts\utility::flag_clear( "mix_tunnel_open" ); level.player clearclienttriggeraudiozone( 1.2 ); } } intro_ambience_changes() { level.player setclienttriggeraudiozone( "factory_fadein", 0 ); thread audio_thunder_play_and_fp_rain(); thread playthisthing(); level.player clearclienttriggeraudiozone( 5 ); } playthisthing() { wait 1; level.player playsound( "scn_factory_beg_thunder_lr" ); } audio_thunder_play_and_fp_rain() { level.rain_loop_2d = spawn( "script_origin", ( 0, 0, 0 ) ); level.rain_loop_2d playloopsound( "emt_rain_fp" ); } sfx_factory_intro_lightning_loop() { wait 0.2; self playsound( "scn_factory_intro_lightning" ); } audio_setup_tank_room_trigger() { common_scripts\utility::flag_init( "trigger_tank_room_volume" ); var_0 = getent( "intro_to_tankroom", "targetname" ); var_0 thread trigger_tank_room_flag(); } trigger_tank_room_flag() { self waittill( "trigger" ); common_scripts\utility::flag_set( "trigger_tank_room_volume" ); } audio_flag_inits() { common_scripts\utility::flag_init( "music_wait_forever" ); common_scripts\utility::flag_init( "music_chk_jungle" ); common_scripts\utility::flag_init( "music_chk_intro" ); common_scripts\utility::flag_init( "music_chk_ingress" ); common_scripts\utility::flag_init( "music_chk_powerstealth" ); common_scripts\utility::flag_init( "music_chk_ambush" ); common_scripts\utility::flag_init( "music_chk_ambush_escape" ); common_scripts\utility::flag_init( "music_chk_rooftop" ); common_scripts\utility::flag_init( "music_chk_parkinglot" ); common_scripts\utility::flag_init( "music_chk_chase" ); common_scripts\utility::flag_init( "music_chk_crash" ); common_scripts\utility::flag_init( "music_jungle_slide" ); common_scripts\utility::flag_init( "music_stealth_intro" ); common_scripts\utility::flag_init( "music_factory_reveal" ); common_scripts\utility::flag_init( "music_ambush_battle" ); common_scripts\utility::flag_init( "music_ambush_battle_ends" ); common_scripts\utility::flag_init( "music_chase_start" ); common_scripts\utility::flag_init( "music_chase_ending" ); common_scripts\utility::flag_init( "sfx_landed_crate" ); common_scripts\utility::flag_init( "audio_notrain" ); common_scripts\utility::flag_init( "sfx_slowmo_begins" ); common_scripts\utility::flag_init( "audio_end_thunder" ); common_scripts\utility::flag_init( "trigger_hall" ); common_scripts\utility::flag_init( "trigger_sat_room" ); common_scripts\utility::flag_init( "mix_tunnel_open" ); common_scripts\utility::flag_init( "sfx_dont_play_desk" ); common_scripts\utility::flag_init( "end_scene" ); common_scripts\utility::flag_init( "final_music_cue_explosion" ); } mission_music() { jump_to_music_flag_setup(); level.special_amb_is_playing = 0; if ( isdefined( level.jump_to_amb_alias ) ) wait 0.01; switch ( level.start_point ) { case "default": case "intro": common_scripts\utility::flag_wait( "music_stealth_intro" ); case "powerstealth": case "factory_ingress": case "intro_train": if ( getdvar( "music_enable" ) == "1" ) maps\_utility::music_play( "mus_factory_powerstealth" ); common_scripts\utility::flag_wait( "powerstealth_end" ); maps\_utility::music_stop( 30 ); thread audio_start_shuffle_emitter(); case "greenlight": case "weapon_security": case "chase": case "parking_lot": case "rooftop": case "ambush_escape": case "ambush": case "sat_room": common_scripts\utility::flag_wait( "music_chase_start" ); maps\_utility::music_play( "mus_factory_rooftop" ); common_scripts\utility::flag_wait( "end_scene" ); wait 0.75; maps\_utility::music_crossfade( "mus_factory_carchase_stinger", 1.5 ); common_scripts\utility::flag_wait( "final_music_cue_explosion" ); maps\_utility::music_play( "mus_factory_carchase", 0.1 ); case "face_off": common_scripts\utility::flag_wait( "music_wait_forever" ); } } jump_to_music_flag_setup() { level.jump_to_amb_alias = "factory_jungle_ext"; if ( level.start_point == "intro" ) return; level.jump_to_amb_alias = "factory_intro_ext"; common_scripts\utility::flag_set( "music_jungle_slide" ); if ( level.start_point == "intro_train" ) return; common_scripts\utility::flag_set( "music_stealth_intro" ); common_scripts\utility::flag_set( "music_chk_ingress" ); common_scripts\utility::flag_set( "audio_end_thunder" ); if ( level.start_point == "factory_ingress" ) return; thread audio_start_shuffle_emitter(); level.jump_to_amb_alias = "factory_powerstealth"; common_scripts\utility::flag_set( "music_factory_reveal" ); if ( level.start_point == "powerstealth" ) return; if ( level.start_point == "weapon_security" ) return; if ( level.start_point == "presat_room" ) return; level.jump_to_amb_alias = "factory_sat_room"; if ( level.start_point == "sat_room" ) return; common_scripts\utility::flag_set( "music_chk_ambush" ); if ( level.start_point == "ambush" ) { level.jump_to_amb_alias = "factory_wh1_greenlight"; return; } if ( level.start_point == "greenlight" ) { level.jump_to_amb_alias = "factory_before_tank_room"; return; } common_scripts\utility::flag_set( "music_ambush_battle" ); common_scripts\utility::flag_set( "music_chk_ambush_escape" ); level.jump_to_amb_alias = "factory_office_before_hallway"; thread sfx_ambush_alarm_sound(); if ( level.start_point == "ambush_escape" ) return; common_scripts\utility::flag_set( "music_chk_rooftop" ); level.jump_to_amb_alias = "factory_hallway_bf_rooftop"; if ( level.start_point == "rooftop" ) return; common_scripts\utility::flag_set( "music_chase_start" ); common_scripts\utility::flag_set( "music_chk_parkinglot" ); level.jump_to_amb_alias = "factory_rooftop_ext"; if ( level.start_point == "parking_lot" ) return; common_scripts\utility::flag_set( "music_chk_chase" ); if ( level.start_point == "chase" ) return; common_scripts\utility::flag_set( "music_chk_crash" ); if ( level.start_point == "face_off" ) return; } aud_binoculars_foley() { self playsound( "fly_binoc_foley" ); } aud_binoculars_vision_on() { self playsound( "fly_binoc_vision_on" ); } aud_binoculars_vision_off() { self playsound( "fly_binoc_vision_off" ); } aud_binoculars_bg_loop() { var_0 = spawn( "script_origin", self.origin ); var_0 playloopsound( "fly_binoc_bg_loop" ); self waittill( "stop_binocular_bg_loop_sound" ); var_0 stoploopsound(); var_0 delete(); } aud_binoculars_zoom_in() { self playsound( "fly_binoc_zoom_in" ); } aud_binoculars_zoom_out() { self playsound( "fly_binoc_zoom_out" ); } aud_binoculars_on_target() { wait 0.1; self playsound( "fly_binoc_scan_positive" ); } aud_binoculars_scan_loop() { var_0 = spawn( "script_origin", self.origin ); var_0 playloopsound( "fly_binoc_scan_loop" ); common_scripts\utility::waittill_any( "stop_binocular_scan_loop_sound", "stop_binocular_bg_loop_sound" ); var_0 stoploopsound(); var_0 delete(); } aud_binoculars_scan_positive() { self playsound( "fly_binoc_scan_positive" ); } aud_binoculars_scan_negative() { self playsound( "fly_binoc_scan_negative" ); } sfx_bak_mudslide() { wait 0.6; common_scripts\utility::play_sound_in_space( "scn_factory_mudslide_baker", ( 1325, 6387, 722 ) ); } sfx_mudslide_trigger_setup() { var_0 = getent( "trigger_mudslide_sfx", "targetname" ); var_0 thread sfx_plr_mudslide(); } sfx_plr_mudslide() { self waittill( "trigger" ); level.player playsound( "scn_factory_mudslide_plr" ); } sfx_crate_trigger_setup() { var_0 = getent( "trigger_crate_land", "targetname" ); var_0 thread sfx_crate_trigger(); } sfx_mud_trigger_setup() { var_0 = getent( "trigger_mud_land", "targetname" ); var_0 thread sfx_mud_trigger(); } sfx_crate_trigger() { self waittill( "trigger" ); level.player playsound( "scn_factory_intro_land_crate" ); common_scripts\utility::flag_set( "sfx_landed_crate" ); } sfx_mud_trigger() { self waittill( "trigger" ); if ( !common_scripts\utility::flag( "sfx_landed_crate" ) ) level.player playsound( "scn_factory_intro_land_ground" ); } sfx_land_crate() { } sfx_land_ground() { } sfx_train_sound() { wait 0.1; } sfx_create_conveyor_line_emitter() { level.conveyor_entarray = getentarray( "conveyor_line_emitter_sfx", "targetname" ); } sfx_create_jungle_line_emitter() { level.jungle_entarray = getentarray( "jungle_line_emitter_sfx", "targetname" ); } sfx_create_truckyard_line_emitter() { level.truckyard_entarray = getentarray( "truckyard_line_emitter_sfx", "targetname" ); } sfx_create_movingcover2_line_emitters() { level.movingcover2_entarray = getentarray( "movingcover2_line_emitter_sfx", "targetname" ); level.movingcover2b_entarray = getentarray( "movingcover2b_line_emitter_sfx", "targetname" ); } start_conveyor_line_emitter() { common_scripts\utility::flag_wait( "music_factory_reveal" ); thread play_linear_sfx_conveyor( level.conveyor_entarray, "emt_conveyor_belt_loop", "music_ambush_battle" ); } start_jungle_line_emitter() { common_scripts\utility::flag_wait( "music_jungle_slide" ); } start_truckyard_line_emitter() { if ( !common_scripts\utility::flag( "audio_notrain" ) ) common_scripts\utility::flag_wait( "trig_intro_vignette" ); wait 2; thread play_truckyard_pa(); } play_truckyard_pa() { var_0 = spawn( "script_origin", ( 3703, 3790, 346 ) ); while ( !common_scripts\utility::flag( "entered_factory_1" ) ) { var_0 playsound( "emt_factory_truckyard_pa" ); wait 2; if ( common_scripts\utility::flag( "entered_factory_1" ) ) break; wait( randomfloatrange( 4.0, 6.0 ) ); } wait 5; var_0 delete(); } play_linear_sfx_truckyard( var_0 ) { var_1 = spawn( "script_origin", ( 0, 0, 0 ) ); var_2 = 0; for (;;) { if ( common_scripts\utility::flag( "entered_factory_1" ) ) break; var_3 = pointonsegmentnearesttopoint( ( 3703.7, 3790.7, 346.1 ), ( 686.4, 4396.5, 367.1 ), level.player.origin ); var_1 moveto( var_3, 0.01 ); if ( var_2 == 0 ) { var_1 playloopsound( var_0 ); var_2 = 1; } wait 0.1; } } start_movingcover2_sfx_loops() { common_scripts\utility::flag_wait( "music_factory_reveal" ); } play_linear_sfx_conveyor( var_0, var_1, var_2 ) { if ( isdefined( var_2 ) ) self endon( var_2 ); var_3 = spawn( "script_origin", ( 0, 0, 0 ) ); var_4 = undefined; var_5 = undefined; var_6 = 0; for (;;) { var_7 = 0; var_8 = common_scripts\utility::get_array_of_closest( level.player.origin, var_0, undefined, 2 ); foreach ( var_10 in var_8 ) { if ( var_7 == 0 ) { var_7 = 1; var_4 = var_10; continue; } var_5 = var_10; } var_12 = pointonsegmentnearesttopoint( var_4.origin, var_5.origin, level.player.origin ); var_3 moveto( var_12, 0.01 ); if ( var_6 == 0 ) { var_3 playloopsound( var_1 ); var_6 = 1; } wait 0.1; } } audio_crane_movement_factory_reveal_01( var_0, var_1, var_2 ) { } audio_crane_movement_factory_reveal_02( var_0, var_1, var_2 ) { } audio_sfx_truck_idle_loop_start() { common_scripts\utility::flag_wait( "factory_exterior_reveal" ); var_0 = level.intro_truck_cab; level.truckidlesfx_intro = spawn( "script_origin", var_0.origin + ( 100, 0, 60 ) ); level.truckidlesfx_intro linkto( var_0 ); level.truckidlesfx = spawn( "script_origin", var_0.origin + ( 100, 0, 60 ) ); level.truckidlesfx linkto( var_0 ); common_scripts\utility::flag_wait( "music_stealth_intro" ); if ( !common_scripts\utility::flag( "music_chk_powerstealth" ) ) wait 3; waittillframeend; common_scripts\utility::flag_wait( "player_entered_awning" ); wait 1; } audio_sfx_truck_in_start() { common_scripts\utility::flag_wait( "factory_exterior_reveal" ); common_scripts\utility::flag_set( "audio_end_thunder" ); level.truckmovesfx = spawn( "script_origin", level.intro_truck_cab.origin + ( 100, 0, 60 ) ); level.truckmovesfx linkto( level.intro_truck_cab ); waittillframeend; level.truckmovesfx playsound( "scn_factory_truckinengine" ); } stop_2d_rain_layer() { if ( isdefined( level.rain_loop_2d ) ) { wait 0.6; level.rain_loop_2d stopsounds(); wait 0.1; level.rain_loop_2d delete(); } } audio_sfx_truck_chatter( var_0, var_1 ) { common_scripts\utility::flag_wait( "player_entered_awning" ); self endon( "intro_truck_driver_dead" ); var_0[0] endon( "death" ); var_0[1] endon( "death" ); var_0[2] endon( "death" ); level.truckchatter = spawn( "script_origin", level.intro_truck_cab.origin + ( 300, 0, 60 ) ); level.truckchatter linkto( level.intro_truck_cab ); waittillframeend; var_2 = maps\_utility::get_living_ai( "entrance_enemy_02", "script_noteworthy" ); var_3 = maps\_utility::get_living_ai( "intro_truck_driver", "script_noteworthy" ); var_4 = maps\_utility::get_living_ai( "entrance_enemy_03", "script_noteworthy" ); wait 1; if ( isdefined( var_2 ) ) var_2 playsound( "factory_vs1_holdon" ); wait 6; if ( isdefined( var_3 ) ) var_3 playsound( "factory_vs2_heavyload" ); wait 4; if ( isdefined( var_4 ) ) var_4 playsound( "factory_vs3_expectingyou" ); wait 7.5; if ( isdefined( var_3 ) ) var_3 playsound( "factory_vs2_seethat" ); wait 5.8; if ( isdefined( var_4 ) ) var_4 playsound( "factory_vs3_yeahsorry" ); wait 4; if ( isdefined( var_3 ) ) var_3 playsound( "factory_vs2_secretaccount" ); wait 5; if ( isdefined( var_4 ) ) var_4 playsound( "factory_vs3_doubleworkload" ); } audio_factory_search_body() { wait 0.1; level.squad["ALLY_CHARLIE"] playsound( "scn_factory_search_body" ); } audio_sfx_factory_distant_loop_start() { level.distfactorysfx = spawn( "script_origin", ( 5400, 1900, 0 ) ); level.constantfactorysfx = spawn( "script_origin", ( 4800, 1800, 0 ) ); level.distfactorysfx playloopsound( "emt_factory_ominous_lp" ); level.constantfactorysfx playloopsound( "emt_factory_dist_lp" ); } audio_sfx_truck_idle_loop_stop() { } audio_sfx_alternate_rolling_loop_alias() { if ( level.rollingloop == "emt_movingcover2_rolling1_loop" ) level.rollingloop = "emt_movingcover2_rolling2_loop"; else level.rollingloop = "emt_movingcover2_rolling1_loop"; } audio_sfx_car_chase_sequence() { } audio_car_explode() { common_scripts\utility::play_sound_in_space( "explo_metal_rand", self.origin ); } audio_factory_door_open() { var_0 = getent( "factory_entrance_door", "script_noteworthy" ); var_0 playsound( "scn_factory_garage_door_open" ); } audio_factory_unlock_sound() { } audio_setup_factory_reveal_ambience_triggers() { var_0 = getent( "swap_to_amb_ext", "targetname" ); var_0 thread audio_factory_ambient_switch_to_ext(); var_1 = getent( "swap_to_amb_int", "targetname" ); var_1 thread audio_factory_ambient_switch_to_int(); } audio_factory_ambient_switch_to_ext() { for (;;) { self waittill( "trigger" ); if ( common_scripts\utility::flag( "music_factory_reveal" ) ) { if ( level.special_amb_is_playing == 0 ) { level.factoryrevealambience playloopsound( "emt_factory_int_amb_from_ext" ); level.special_amb_is_playing = 1; wait 0.1; } } while ( level.player istouching( self ) ) wait 0.1; } } audio_factory_ambient_switch_to_int() { for (;;) { self waittill( "trigger" ); if ( common_scripts\utility::flag( "music_factory_reveal" ) ) { } while ( level.player istouching( self ) ) wait 0.1; } } audio_start_shuffle_emitter() { } audio_start_positional_fake_int_amb( var_0 ) { level.factoryrevealambience playloopsound( "emt_factory_int_amb_from_ext" ); level.special_amb_is_playing = 1; wait 0.1; if ( isdefined( var_0 ) ) { if ( var_0 == "TRUE" ) return; } } audio_fade_in_int_amb() { level notify( "positional_ambience_fading_in" ); level endon( "positional_ambience_fading_out" ); wait 4.6; } audio_fade_out_int_amb() { level notify( "positional_ambience_fading_out" ); level endon( "positional_ambience_fading_in" ); wait 4.6; if ( level.special_amb_is_playing == 1 ) { level.factoryrevealambience stoploopsound(); level.special_amb_is_playing = 0; } } audio_trainpass_chkpt() { common_scripts\utility::flag_set( "audio_notrain" ); } audio_train_constant_loop() { if ( !common_scripts\utility::flag( "audio_notrain" ) ) { level.constanttrainloop1 = spawn( "script_origin", ( 2500, 5200, 375 ) ); level.constanttrainloop1 playloopsound( "scn_factory_train_constant_01" ); level.constanttrainloop2 = spawn( "script_origin", ( 2100, 5200, 375 ) ); level.constanttrainloop2 playloopsound( "scn_factory_train_constant_02" ); level.constanttrainloop3 = spawn( "script_origin", ( 1200, 5200, 375 ) ); level.constanttrainloop3 playloopsound( "scn_factory_train_constant_03" ); common_scripts\utility::flag_wait( "player_near_train_kill" ); wait 2.3; thread audio_train_last_car_passby(); wait 1; level.player setclienttriggeraudiozone( "factory_intro_ext_trains_down", 3 ); wait 3; level.constanttrainloop1 stoploopsound(); level.constanttrainloop2 stoploopsound(); level.constanttrainloop3 stoploopsound(); level.constanttrainloop1 delete(); level.constanttrainloop2 delete(); level.constanttrainloop3 delete(); level.player clearclienttriggeraudiozone( 0.2 ); } } audio_train_last_car_passby() { wait 0.6; var_0 = spawn( "script_origin", ( 3200, 5200, 375 ) ); var_0 playsound( "scn_factory_train_clacks_final_by" ); var_0 movex( -1500, 6.3, 0, 0 ); } audio_start_train_click_clacks() { if ( !common_scripts\utility::flag( "audio_notrain" ) ) { thread audio_train_click_clacks_1(); thread audio_train_click_clacks_2(); } } audio_train_click_clacks_1() { for (;;) { if ( !common_scripts\utility::flag( "player_near_train_kill" ) ) { thread audio_train_individual_click_clack( "scn_factory_train_clacks_a" ); wait( randomfloatrange( 1.05, 1.4 ) ); continue; } break; } thread audio_train_individual_click_clack( "scn_factory_train_clacks_a" ); wait 1.4; thread audio_train_individual_click_clack( "scn_factory_train_clacks_a" ); wait 1.4; thread audio_train_individual_click_clack( "scn_factory_train_clacks_a" ); wait 1.4; thread audio_train_individual_click_clack( "scn_factory_train_clacks_a", -500 ); wait 1.4; thread audio_train_individual_click_clack( "scn_factory_train_clacks_a", -1500 ); wait 1.4; } audio_train_click_clacks_2() { thread audio_train_clacks_2_last(); for (;;) { if ( !common_scripts\utility::flag( "player_near_train_kill" ) ) { thread audio_train_individual_click_clack( "scn_factory_train_clacks_b", 600, 2.5, -1400 ); wait( randomfloatrange( 4.5, 6.5 ) ); continue; } break; } } audio_train_clacks_2_last() { common_scripts\utility::flag_wait( "player_near_train_kill" ); wait 2.5; thread audio_train_individual_click_clack( "scn_factory_train_clacks_b", 600, 2.5, -1400 ); wait 2; thread audio_train_individual_click_clack( "scn_factory_train_clacks_b", 300, 2.5, -1400 ); } audio_train_individual_click_clack( var_0, var_1, var_2, var_3 ) { var_4 = 2500; var_5 = 0.874; var_6 = -900; if ( isdefined( var_1 ) ) var_4 = var_4 + var_1; if ( isdefined( var_2 ) ) var_5 = var_2; if ( isdefined( var_3 ) ) var_6 = var_3; var_7 = spawn( "script_origin", ( var_4, 5200, 375 ) ); var_7 playsound( var_0, "donewiththissound" ); var_7 movex( var_6, var_5, 0, 0 ); var_7 waittill( "donewiththissound" ); wait 0.1; var_7 delete(); } audio_play_unlock_sound() { wait 0.3; thread sfx_play_security_beep(); wait 0.3; common_scripts\utility::play_sound_in_space( "scn_factory_door_security_unlock", ( 4923, 3366, 300 ) ); } sfx_play_security_beep() { common_scripts\utility::play_sound_in_space( "scn_factory_door_security_beep_success", ( 4729, 3357, 289 ) ); } audio_powerstealth_gate_unlock() { wait 1; common_scripts\utility::play_sound_in_space( "scn_factory_powerstealth_gate_unlock", ( 6524, 2859, 396 ) ); } audio_powerstealth_gate_open() { common_scripts\utility::play_sound_in_space( "scn_factory_powerstealth_gate_open", ( 6524, 2859, 396 ) ); } audio_crate_move( var_0 ) { thread maps\_utility::play_loop_sound_on_tag( "emt_factory_rollers", var_0 ); } audio_crate_move_above_door() { self playloopsound( "emt_factory_rollers_above_door" ); } audio_distant_train_horn() { wait 0.2; common_scripts\utility::play_sound_in_space( "scn_factory_dist_train_horn", ( 4923, 3366, 300 ) ); } audio_player_intro() { wait 0.01; level.player playsound( "scn_factory_intro_player_lr" ); } audio_baker_intro() { thread audio_ally_intro_knife_pullout(); wait 0.65; self playsound( "scn_factory_intro_baker" ); } audio_plr_intro_knife_pullout() { self playsound( "scn_factory_intro_plrknife" ); } audio_ally_intro_knife_pullout() { wait 14.854; self playsound( "scn_factory_intro_allyknife" ); } audio_player_intro_jump_kill() { level.player playsound( "scn_factory_intro_playerjumpkill" ); } audio_ally_intro_jump_kill() { wait 2.65; self playsound( "scn_factory_intro_allyjumpkill" ); common_scripts\utility::flag_set( "music_stealth_intro" ); stop_2d_rain_layer(); } audio_ally_intro_jump_kill_short() { wait 0.44; self playsound( "scn_factory_intro_allyjumpkill" ); common_scripts\utility::flag_set( "music_stealth_intro" ); stop_2d_rain_layer(); } audio_player_train_track_stealth_kill() { level.player playsound( "scn_factory_player_train_kill" ); thread sfx_hey_vo_line(); wait 0.316; level.player playsound( "factory_train_tacks_npc_death" ); } sfx_hey_vo_line() { var_0 = spawn( "script_origin", ( 0, 0, 0 ) ); wait 0.316; var_0 playsound( "factory_train_tacks_npc_vo" ); } audio_sfx_truck_pull_away_start() { if ( level.start_point != "factory_ingress" ) { level.truckenginesfx = spawn( "script_origin", level.intro_truck_cab.origin ); level.truckenginesfx linkto( level.intro_truck_cab ); level.truckenginesfx playsound( "scn_factory_truckawayengine" ); wait 9; level.truckenginesfx delete(); } } audio_factory_intro_mix() { level.player setvolmod( "vehicle_npc", 0.4, 1 ); wait 14; level.player setvolmod( "vehicle_npc", 1, 1 ); } audio_factory_reveal_mix( var_0 ) { if ( var_0 == "one" ) { wait 0.2; level.player setvolmod( "max", 0.45, 1 ); level.player setvolmod( "emitter", 0.45, 1 ); level.player setvolmod( "element", 0.45, 1 ); } else if ( var_0 == "two" ) { level.player setvolmod( "max", 0.7, 1 ); level.player setvolmod( "emitter", 0.7, 1 ); level.player setvolmod( "element", 0.7, 1 ); } else if ( var_0 == "three" ) { wait 2; level.player setvolmod( "max", 1, 1 ); level.player setvolmod( "emitter", 1, 1 ); level.player setvolmod( "element", 1, 1 ); } } audio_factory_wait_for_mix_change() { wait 1.5; audio_factory_reveal_mix( "two" ); } ambush_line_emitter_create() { var_0 = []; var_0[0] = spawn( "script_origin", ( 4876, -495, 325 ) ); var_0[1] = spawn( "script_origin", ( 4658, -1873, 352 ) ); ambush_line_emitter_logic( var_0, "scn_factory_assembly_back_lp", "ambush_escape_spawn_helis" ); } ambush_line_emitter_logic( var_0, var_1, var_2 ) { if ( isdefined( var_2 ) ) self endon( var_2 ); var_3 = spawn( "script_origin", ( 0, 0, 0 ) ); var_4 = undefined; var_5 = undefined; var_6 = 0; for (;;) { var_7 = 0; var_8 = common_scripts\utility::get_array_of_closest( level.player.origin, var_0, undefined, 2 ); foreach ( var_10 in var_8 ) { if ( var_7 == 0 ) { var_7 = 1; var_4 = var_10; continue; } var_5 = var_10; } var_12 = pointonsegmentnearesttopoint( var_4.origin, var_5.origin, level.player.origin ); var_3 moveto( var_12, 0.01 ); if ( var_6 == 0 ) { var_3 playloopsound( var_1 ); var_6 = 1; } wait 0.1; } } sfx_glass_door_open( var_0 ) { var_0 playsound( "scn_factory_glass_door_open" ); } sfx_glass_door_close( var_0 ) { var_0 playsound( "scn_factory_glass_door_close" ); } sfx_metal_door_unlock() { wait 0.7; common_scripts\utility::play_sound_in_space( "scn_factory_door_unlock", ( 8135, -160, 309 ) ); } sfx_metal_door_open( var_0 ) { var_0 playsound( "scn_factory_metal_door_open" ); } sfx_metal_door_close( var_0 ) { var_0 playsound( "scn_factory_metal_door_close" ); } sfx_revolving_door_unlock( var_0 ) { wait 0.5; var_0 playsound( "scn_factory_door_unlock" ); } sfx_revolving_door_open( var_0 ) { var_0 playsound( "scn_factory_revolving_door" ); } sfx_sat_room_lights( var_0 ) { self playsound( var_0 ); } sfx_sat_room_panel_railing() { self playsound( "scn_factory_sat_panel_railing" ); } sfx_sat_room_panel_pry_open() { self playsound( "scn_factory_sat_panel_pry" ); } sfx_sat_room_panel_pull_panel() { level endon( "sat_room_player_pulled" ); for (;;) { var_0 = common_scripts\utility::waittill_any_return( "sat_pull_anim_past_15", "sat_pull_anim_past_45", "sat_pull_anim_past_65" ); switch ( var_0 ) { case "sat_pull_anim_past_15": level.playing_sat_anim_sound = 1; iprintln( "Creak" ); wait( randomfloatrange( 1.1, 2.75 ) ); level.playing_sat_anim_sound = 0; break; case "sat_pull_anim_past_45": level.playing_sat_anim_sound = 1; iprintln( "Stretch" ); wait( randomfloatrange( 1.1, 2.75 ) ); level.playing_sat_anim_sound = 0; break; case "sat_pull_anim_past_65": level.playing_sat_anim_sound = 1; iprintln( "Pop" ); wait( randomfloatrange( 1.1, 2.75 ) ); level.playing_sat_anim_sound = 0; break; default: } wait 0.1; } } sfx_sat_room_panel_panel_flip() { self playsound( "scn_factory_sat_panel_flip" ); } sfx_sat_room_panel_hand_off_sfx() { wait 4.1; self playsound( "scn_factory_sat_panel_hand" ); } greenlight_amb_change() { level.tankroom_node = spawn( "script_origin", ( 5412, 134, 453 ) ); level.tankroom_node playloopsound( "scn_factory_greenlight_opening_lp" ); level.tankroom_node scalevolume( 0.0, 0.0 ); wait 0.8; level.tankroom_node scalevolume( 1.0, 1.0 ); wait 0.2; thread common_scripts\utility::play_sound_in_space( "scn_factory_greenlight_opening", ( 6038, 289, 428 ) ); common_scripts\utility::flag_wait( "trigger_tank_room_volume" ); level.tankroom_node scalevolume( 0.0, 2.0 ); wait 2.1; level.tankroom_node delete(); } garage_sfx_reveal() { wait 0.1; level.garage_node = spawn( "script_origin", ( 5200, 3000, 400 ) ); level.garage_node playsound( "scn_factory_garage_reveal" ); wait 9; wait 5; wait 15; level.garage_node delete(); } sfx_garage_reveal_crane() { wait 0.54; level.crane_beam = getent( "reveal_crane_org", "targetname" ); level.crane_beam playsound( "scn_factory_garage_reveal_crane" ); thread sfx_reveal_mix_down(); wait 0.1; level.reveal_filtered_node stoploopsound( "scn_factory_garage_reveal_filtered" ); level.reveal_filtered_node delete(); } sfx_garage_reveal_filtered() { wait 0.1; level.reveal_filtered_node = spawn( "script_origin", ( 4937, 3279, 300 ) ); level.reveal_filtered_node playloopsound( "scn_factory_garage_reveal_filtered" ); } sfx_reveal_mix_down() { } sfx_rods_move() { var_0 = getent( "satellite_ROG_05_org", "targetname" ); var_0 playsound( "scn_factory_rods_mvmt" ); level.rog_verb = spawn( "script_origin", ( 0, 0, 0 ) ); level.rog_verb linkto( level.player ); level.rog_verb playsound( "scn_factory_rods_verb_lr" ); thread sfx_rods_hallway_start(); } sfx_rods_hallway_start() { wait 0.1; level.hallway_rog_mvmt playsound( "scn_factory_rods_hall_mvmt_start" ); wait 0.6; level.hallway_rog_mvmt playloopsound( "scn_factory_rods_hall_mvmt" ); } sfx_rods_hallway_stop() { if ( isdefined( level.hallway_rog_mvmt ) ) { level.hallway_rog_stop = spawn( "script_origin", ( 7610, -150, 316 ) ); level.hallway_rog_stop playsound( "scn_factory_rods_hall_mvmt_end" ); level.hallway_rog_mvmt stoploopsound( "scn_factory_rods_hall_mvmt" ); wait 3; level.hallway_rog_mvmt delete(); level.hallway_rog_stop delete(); } } sfx_rods_load() { var_0 = getent( "satellite_room_rog_holder_org", "targetname" ); var_0 playsound( "scn_factory_rods_load" ); } sfx_bridge_lower( var_0 ) { var_0 playsound( "scn_factory_bridge_lower" ); if ( isdefined( level.moving_platform ) ) { level.moving_platform stopsounds(); wait 0.1; level.moving_platform delete(); } } ambush_start_intro_foley_sfx() { level.player playsound( "scn_factory_ambush_intro" ); level.factory_ambush_props["factory_ambush_keyboard02"] thread ambush_start_intro_ally_typing_sfx(); level.factory_ambush_props["factory_ambush_monitor01"] thread ambush_start_intro_computer_sfx(); level.player thread ambush_start_intro_power_down_sfx(); wait 0.1; if ( isdefined( level.keegan_search_desk_sfx ) ) { level.player setclienttriggeraudiozone( "factory_wh1_ambush_control_room_2", 0.01 ); wait 1; level.keegan_search_desk_sfx stopsounds(); level.keegan_search_desk_sfx delete(); wait 2; level.player clearclienttriggeraudiozone( 0.2 ); } else common_scripts\utility::flag_set( "sfx_dont_play_desk" ); } ambush_start_intro_computer_sfx() { wait 4.3; self playsound( "scn_factory_ambush_computer" ); } ambush_pre_start_ally1_typing_sfx() { wait 8; var_0 = spawn( "script_origin", ( 5708, -696, 300 ) ); var_0 playsound( "scn_factory_ambush_ally_typing", "type_1_done" ); var_0 waittill( "type_1_done" ); while ( !common_scripts\utility::flag( "player_used_computer" ) ) { var_0 playsound( "scn_factory_ambush_ally_typing", "type_1_done_2" ); var_0 waittill( "type_1_done_2" ); } var_0 stopsounds(); wait 0.5; var_0 delete(); } ambush_pre_start_ally2_typing_sfx() { wait 13.5; var_0 = spawn( "script_origin", ( 5820, -753, 300 ) ); var_0 playsound( "scn_factory_ambush_ally_typing", "type_2_done" ); var_0 waittill( "type_2_done" ); while ( !common_scripts\utility::flag( "player_used_computer" ) ) { var_0 playsound( "scn_factory_ambush_ally_typing", "type_2_done_2" ); var_0 waittill( "type_2_done_2" ); } var_0 stopsounds(); wait 0.5; var_0 delete(); } ambush_start_intro_ally_typing_sfx() { wait 1.257; self playsound( "scn_factory_ambush_ally_typing" ); } ambush_start_intro_power_down_sfx() { wait 15.467; self playsound( "scn_factory_ambush_power_down" ); } ambush_battle_start_ambience_change() { thread ambush_door_explo_sfx(); thread ambush_ally_fire_weapon_sfx(); level.player playsound( "scn_factory_ambush_door_breach_lr" ); level.player setclienttriggeraudiozone( "factory_wh1_ambush_slomo", 0.01 ); common_scripts\utility::flag_set( "sfx_slowmo_begins" ); wait 2.4; level.player clearclienttriggeraudiozone( 0.2 ); } ambush_door_explo_sfx() { thread common_scripts\utility::play_sound_in_space( "scn_factory_ambush_explo", ( 5553, -648, 318 ) ); wait 0.08; thread common_scripts\utility::play_sound_in_space( "scn_factory_ambush_explo_hit", ( 5553, -648, 318 ) ); wait 0.38; thread common_scripts\utility::play_sound_in_space( "scn_factory_ambush_explo_debris", ( 5553, -648, 318 ) ); } ambush_ally_fire_weapon_sfx() { wait 1.7; level.squad["ALLY_ALPHA"] playsound( "scn_factory_ambush_ally_fire" ); } ambush_start_fx_sounds() { common_scripts\utility::play_loopsound_in_space( "emt_ambush_fire_lp", ( 5198, -2361, 294 ) ); common_scripts\utility::play_loopsound_in_space( "emt_ambush_fire_lp", ( 4728, -2638, 398 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 5193, -2230, 297 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 4924, -2709, 507 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 4040, -2704, 495 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_05", ( 5263, -1547, 708 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_04", ( 3601, -2704, 428 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_04", ( 4058, -2704, 460 ) ); } sfx_ambush_alarm_sound() { wait 0.5; common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_01", ( 5559, -698, 394 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_01", ( 5994, -936, 402 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 5873, -466, 369 ) ); common_scripts\utility::play_loopsound_in_space( "emt_ambush_fire_lp", ( 5198, -2361, 294 ) ); common_scripts\utility::play_loopsound_in_space( "emt_ambush_fire_lp", ( 4728, -2638, 398 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 5193, -2230, 297 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 4924, -2709, 507 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 4040, -2704, 495 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_05", ( 5263, -1547, 708 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_05b", ( 3658, -2102, 507 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_04", ( 4058, -2704, 460 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_04", ( 4012, -1443, 428 ) ); common_scripts\utility::play_loopsound_in_space( "emt_factory_ambush_alarm_02", ( 3931, -1780, 426 ) ); } ambush_smoke_grenade_explo_sfx() { thread common_scripts\utility::play_sound_in_space( "scn_factory_ambush_smoke_explo01", ( 5658, -1255, 280 ) ); wait 0.4; thread common_scripts\utility::play_sound_in_space( "scn_factory_ambush_smoke_explo02", ( 5317, -733, 280 ) ); } sfx_pa_bursts() { } sfx_stop_truckchatter() { level.truckchatter stopsounds(); } sfx_rolling_gate_sounds( var_0 ) { } sfx_play_stacker_down() { common_scripts\utility::delaycall( 0.15, ::playsound, "emt_factory_stacker_down" ); } sfx_play_stacker_up() { common_scripts\utility::delaycall( 0.15, ::playsound, "emt_factory_stacker_up" ); } sfx_end_slomo_sound() { level.player playsound( "scn_factory_ambush_slomo_end" ); } sfx_play_crash_scene() { wait 0.2; self playsound( "scn_factory_chase_truck_intro" ); level.factory_car_chase_intro_broken_light_post thread sfx_chase_truck_intro_lamp_post(); thread sfx_chase_truck_intro_spawn_emitters(); level waittill( "semi_stopped" ); level.ally_vehicle_trailer playsound( "scn_factory_chase_truck_pullaway" ); wait 0.788; level.ally_vehicle_trailer playsound( "scn_factory_chase_truck_tires" ); common_scripts\utility::flag_wait( "player_mount_vehicle_start" ); level.player playsound( "scn_factory_chase_truck_mount" ); wait 1.0; level.player setclienttriggeraudiozone( "factory_car_chase_ext", 2.0 ); wait 2.5; level.player setclienttriggeraudiozone( "factory_car_chase_ext_truck_vol_down", 1.0 ); } sfx_chase_truck_intro_spawn_emitters() { wait 7.722; thread common_scripts\utility::play_loopsound_in_space( "emt_factory_chase_fire_lp", ( -775, -876, 44 ) ); thread common_scripts\utility::play_loopsound_in_space( "emt_factory_chase_fire_lp", ( -957, -890, 116 ) ); thread common_scripts\utility::play_loopsound_in_space( "emt_factory_chase_fire_lp", ( -1421, -863, 116 ) ); thread common_scripts\utility::play_loopsound_in_space( "emt_factory_firehydrant_spray_loop", ( -734, -891, 44 ) ); } sfx_play_heartbeat_sound() { level.heartbeat_sound = spawn( "script_origin", ( 4800, 1800, 1 ) ); level.heartbeat_sound playloopsound( "emt_factory_heartbeat_controlroom" ); common_scripts\utility::flag_wait( "sfx_slowmo_begins" ); wait 0.1; level.heartbeat_sound stopsounds(); level.heartbeat_sound delete(); } sfx_explo_after_flashbang() { common_scripts\utility::play_sound_in_space( "explo_after_flashbang", ( 5313, -2226, 326 ) ); } sfx_keegan_desk() { if ( !common_scripts\utility::flag( "sfx_dont_play_desk" ) ) { level.keegan_search_desk_sfx = spawn( "script_origin", self.origin ); level.keegan_search_desk_sfx linkto( self ); level.keegan_search_desk_sfx playsound( "scn_factory_keegan_search_desk" ); } } sfx_jeep_drive_up_01() { self vehicle_turnengineoff(); common_scripts\utility::play_sound_in_space( "scn_factory_chase_enemy_jeep_drive_up", ( -1069, -455, 44 ) ); } sfx_jeep_drive_up_02() { self vehicle_turnengineoff(); } sfx_chase_truck_intro_lamp_post() { wait 7.722; self playsound( "scn_factory_chase_truck_intro_lamp" ); } sfx_tank_drive_up() { wait 0.7; self vehicle_turnengineoff(); self playsound( "scn_factory_chase_enemy_tank_drive_up" ); } sfx_introkill_splash_player() { level.player playsound( "warl_towerstab_grab" ); level.player playsound( "scn_factory_intro_water_splash" ); level.player playsound( "warl_towerstab_slice" ); wait 0.15; level.player playsound( "scn_factory_intro_water_splash" ); wait 0.17; level.player playsound( "scn_factory_intro_water_splash" ); } sfx_introkill_splash_baker() { level.player playsound( "scn_factory_intro_water_splash" ); wait 0.15; level.player playsound( "scn_factory_intro_water_splash" ); wait 1.27; level.player playsound( "scn_factory_intro_water_splash" ); wait 0.1; level.player playsound( "warl_towerstab_slice" ); } sfx_intro_helicopter_and_splash( var_0 ) { var_0 playsound( "scn_factory_introhelicopter_pass" ); level.player playsound( "scn_factory_intro_water_splash" ); } moving_platform_warning_beeps_sfx( var_0 ) { level.moving_platform = spawn( "script_origin", var_0 - ( 300, 0, -200 ) ); level.moving_platform linkto( self ); wait 1.5; level.moving_platform playloopsound( "emt_factory_moving_platform_beeps" ); } moving_platform_movement_loop_sfx( var_0, var_1 ) { if ( !isdefined( var_1 ) ) var_1 = 30; var_2 = spawn( "script_origin", var_0 ); var_2 linkto( self ); var_3 = spawn( "script_origin", var_0 ); var_3 linkto( self ); var_4 = spawn( "script_origin", var_0 ); var_4 linkto( self ); var_2 playloopsound( "emt_moving_platform_movement_lp" ); var_3 playloopsound( "emt_moving_platform_movement_close_lp" ); var_2 scalevolume( 0.0, 0.01 ); var_3 scalevolume( 0.0, 0.01 ); wait 1.5; var_2 scalevolume( 1.0, 1 ); var_3 scalevolume( 1.0, 0.5 ); wait( var_1 ); var_5 = spawn( "script_origin", var_3.origin ); var_5 linkto( self ); var_5 playsound( "emt_factory_moving_platform_stop" ); wait 0.5; var_3 stoploopsound(); var_4 stoploopsound(); var_2 delete(); var_3 delete(); } stealth_kill_throat_stab_sfx() { level.player playsound( "scn_factory_player_stealth_kill" ); level.player playsound( "factory_sitting_desk_npc_vo" ); } stealth_kill_table_left_sfx() { if ( isdefined( self ) ) { wait 0.16; self playsound( "scn_factory_stealth_kill_table_left" ); } } stealth_kill_table_right_sfx() { if ( isdefined( self ) ) self playsound( "scn_factory_stealth_kill_table_right" ); } stealth_kill_table_alert_left_sfx() { if ( isdefined( self ) ) { wait 0.16; self playsound( "scn_factory_stealth_kill_table_alert_left" ); } } stealth_kill_table_alert_right_sfx() { if ( isdefined( self ) ) self playsound( "scn_factory_stealth_kill_table_alert_right" ); } stealth_kill_railing_sfx() { if ( isalive( self ) ) { self playsound( "scn_factory_stealth_kill_railing" ); self waittill( "damage" ); self stopsounds(); } } stealth_kill_console_sfx( var_0 ) { if ( !isdefined( self.knocked_over ) ) self playsound( "scn_factory_stealth_kill_console" ); } stealth_kill_console_chair_sfx() { self playsound( "scn_factory_stealth_kill_console_chair" ); } rooftop_heli_speaker_vo_sfx() { self endon( "rooftop_spotlight_off" ); var_0 = spawn( "script_origin", self.origin ); var_0 linkto( self ); level.sfx_heli_spkr_vo_playing = 1; level.heli_speaker_vo_array = []; sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_01", 2.772 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_02", 6.03 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_03", 2.579 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_04", 7.552 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_05", 3.84 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_06", 9.517 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_07", 2.684 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_08", 8.205 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_09", 4.57 ); sfx_factory_heli_spkr_vo_init( "emt_heli_speaker_vo_10", 8.737 ); thread rooftop_heli_speaker_vo_watcher( var_0 ); wait 1.0; while ( level.sfx_heli_spkr_vo_playing ) { for ( var_1 = 0; var_1 < level.heli_speaker_vo_array.size; var_1++ ) { if ( level.sfx_heli_spkr_vo_playing == 0 ) return; var_0 playsound( level.heli_speaker_vo_array[var_1].soundalias ); wait( level.heli_speaker_vo_array[var_1].waittime ); } wait 0.02; } } sfx_factory_heli_spkr_vo_init( var_0, var_1 ) { var_2 = spawnstruct(); var_2.soundalias = var_0; var_2.waittime = var_1; level.heli_speaker_vo_array[level.heli_speaker_vo_array.size] = var_2; } rooftop_heli_speaker_vo_watcher( var_0 ) { self waittill( "rooftop_spotlight_off" ); level.sfx_heli_spkr_vo_playing = 0; if ( isdefined( var_0 ) ) var_0 thread rooftop_heli_speaker_vo_cleanup( 0.1 ); } rooftop_heli_speaker_vo_cleanup( var_0 ) { if ( isdefined( self ) ) { self stoploopsound(); self delete(); } } rooftop_heli_speaker_destroy() { wait 0.25; self playsound( "emt_heli_speaker_vo_shootout" ); } rooftop_heli_engine_sfx() { var_0 = spawn( "script_origin", self.origin ); var_0 linkto( self ); self playsound( "scn_factory_rooftop_heli_reveal" ); thread rooftop_heli_lights_on(); thread rooftop_heli_engine_2nd_move_watcher(); level.player setclienttriggeraudiozonepartial( "factory_hallway_bf_rooftop_heli_fadein", "mix" ); thread delete_dist_helicopter(); wait 6.0; level.player setclienttriggeraudiozonepartial( "factory_hallway_bf_rooftop_heli_fadein", "mix" ); wait 1.0; var_0 playloopsound( "scn_factory_rooftop_heli_idle_lp" ); wait 2.6; level.player clearclienttriggeraudiozone( 6.0 ); common_scripts\utility::flag_wait( "rooftop_heli_depart" ); wait 3.0; wait 25; var_0 delete(); } delete_dist_helicopter() { wait 4.1; level.heli_engine_idle_distant_sfx delete(); } rooftop_heli_lights_on() { wait 1.9; self playsound( "emt_heli_lights_on" ); } rooftop_heli_engine_2nd_move_watcher() { common_scripts\utility::flag_wait( "player_near_rooftop_door" ); self playsound( "scn_factory_rooftop_heli_move" ); } rooftop_heli_distant_idle_sfx() { level.heli_engine_idle_distant_sfx = spawn( "script_origin", ( 3894, -871, 457 ) ); common_scripts\utility::waitframe(); level.heli_engine_idle_distant_sfx playloopsound( "scn_factory_rooftop_heli_distant_lp" ); } audio_play_ending_scene() { common_scripts\utility::flag_set( "end_scene" ); thread set_end_music_cue_flag(); level.player playsound( "scn_factory_end_sequence" ); level.player setclienttriggeraudiozone( "factory_car_chase_ext", 3 ); } set_end_music_cue_flag() { wait 4.8; common_scripts\utility::flag_set( "final_music_cue_explosion" ); } sfx_kicking_door_sound() { wait 1.6; var_0 = spawn( "script_origin", ( 3567, -935, 428 ) ); var_0 playsound( "scn_factory_door_kick_ss" ); var_1 = spawn( "script_origin", ( 3567, -935, 427 ) ); var_1 playsound( "scn_factory_door_kick2_ss" ); } sfx_01_exp( var_0 ) { level.player playsound( "scn_factory_end_exp01_lr" ); } sfx_02_exp( var_0 ) { var_1 = spawn( "script_origin", ( -1205, 108, 270 ) ); var_1 playsound( "scn_factory_end_exp02_lr" ); } sfx_03_exp( var_0 ) { var_1 = spawn( "script_origin", ( -4656, -1180, 76 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_04_exp( var_0 ) { var_1 = spawn( "script_origin", ( -7819, 302, 110 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_05_exp( var_0 ) { var_1 = spawn( "script_origin", ( -7806, 1164, 110 ) ); var_1 playsound( "grenade_explode_default_factory_close" ); } sfx_06_exp( var_0 ) { var_1 = spawn( "script_origin", ( -8320, 1961, 110 ) ); var_1 playsound( "scn_factory_end_exp06_lr" ); var_2 = spawn( "script_origin", ( -8320, 1961, 110 ) ); var_2 playsound( "scn_factory_end_exp06_debris" ); } sfx_07_exp( var_0 ) { var_1 = spawn( "script_origin", ( -9876, 1597, 420 ) ); var_1 playsound( "scn_factory_end_exp07_lr" ); } sfx_08_exp( var_0 ) { var_1 = spawn( "script_origin", ( -15780, 6858, 121 ) ); var_1 playsound( "scn_factory_end_exp08" ); } sfx_09_exp( var_0 ) { var_1 = spawn( "script_origin", ( -16438, 6621, 237 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_10_exp( var_0 ) { var_1 = spawn( "script_origin", ( -17599, 6075, 191 ) ); wait 0.5; var_1 playsound( "grenade_explode_default_factory_close" ); } sfx_11_exp( var_0 ) { var_1 = spawn( "script_origin", ( -19372, 5713, 142 ) ); var_1 playsound( "scn_factory_end_exp11_lr" ); wait 0.3; level.ally_vehicle_trailer playsound( "scn_factory_end_final_truck" ); level.player setclienttriggeraudiozone( "factory_final_truck", 0.1 ); } sfx_car_impact( var_0 ) { var_1 = spawn( "script_origin", ( -1652, -309, 90 ) ); var_1 playsound( "scn_factory_end_car_impact" ); } sfx_car_squeal( var_0 ) { var_0 playsound( "scn_factory_end_car_squeal" ); } sfx_plane01( var_0 ) { var_1 = spawn( "script_origin", ( -1066, 1413, 1528 ) ); var_1 playsound( "scn_factory_end_plane_01" ); var_1 moveto( ( -2832, -2288, 1656 ), 3 ); } sfx_plane02( var_0 ) { var_1 = spawn( "script_origin", ( -12614, 2954, 1739 ) ); var_1 playsound( "scn_factory_end_plane_02" ); var_1 moveto( ( -7725, 2438, 1739 ), 3 ); } sfx_plane03( var_0 ) { var_1 = spawn( "script_origin", ( -19471, 8723, 1549 ) ); var_1 playsound( "scn_factory_end_plane_02" ); var_1 moveto( ( -13828, 5489, 2419 ), 2 ); } sfx_tower_1( var_0 ) { var_1 = spawn( "script_origin", ( -4984, -814, 749 ) ); var_1 playsound( "scn_factory_end_stack1" ); var_1 moveto( ( -6488, -1384, 200 ), 4 ); } sfx_tower_1_imp( var_0 ) { var_1 = spawn( "script_origin", ( -6488, -1277, 200 ) ); var_1 playsound( "scn_factory_end_stack1_imp_lsrs" ); } sfx_big_tower_debris( var_0 ) { var_1 = spawn( "script_origin", ( -9978, 1866, 269 ) ); var_1 playsound( "scn_factory_end_stack2" ); var_1 moveto( ( -14122, 8865, 344 ), 8 ); } sfx_tower2_imp( var_0 ) { level.player playsound( "scn_factory_end_stack2_imp_debris_lr" ); } sfx_tower2( var_0 ) { level.player playsound( "scn_factory_end_stack2_imp_lr" ); } sfx_tower2_exp1( var_0 ) { var_1 = spawn( "script_origin", ( -13103, 7616, 214 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_tower2_exp2( var_0 ) { var_1 = spawn( "script_origin", ( -13103, 7616, 214 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_falling_exp( var_0 ) { var_1 = spawn( "script_origin", ( -14467, 8467, 175 ) ); var_1 playsound( "car_explode_factory_far" ); } sfx_final_explosions() { var_0 = spawn( "script_origin", ( -19372, 5713, 142 ) ); wait 0.5; var_0 playsound( "scn_factory_end_expfinal" ); }