// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool

main()
{
    play_rail_sfx();
    play_wind_sfx();
    soundsettimescalefactor( "announcer", 0.1 );
    soundsettimescalefactor( "effects2d1", 0 );
    soundsettimescalefactor( "norestrict2d", 0 );
    soundsettimescalefactor( "effects2", 0 );
    soundsettimescalefactor( "effects1", 0 );
    soundsettimescalefactor( "mission", 0.1 );
    soundsettimescalefactor( "effects2d2", 0 );
    soundsettimescalefactor( "shellshock", 0 );
    soundsettimescalefactor( "local", 0.6 );
    soundsettimescalefactor( "local2", 0.3 );
    soundsettimescalefactor( "auto2d", 0.3 );
    soundsettimescalefactor( "local3", 0.6 );
    soundsettimescalefactor( "ambient", 0.2 );
    level.exfil_swim_intensity = 0;
    level.hrtbeat = 0;
    level.skyway_end_sequence = 0;
    common_scripts\utility::flag_init( "sfx_helo_flyin" );
    thread skyway_tunnel_ambience();
    thread sfx_setup_land_triggers();
}

skyway_tunnel_ambience()
{
    common_scripts\utility::flag_wait( "flag_helo_tunnel" );
    level.player setclienttriggeraudiozone( "skyway_tunnel_int", 8 );
}

skyway_train_ambience()
{
    level.ambient_int = "skyway_train_int";
    level.ambient_ext = "skyway_train_ext";
    var_0 = [];
    var_0[0] = "skyway_amb_01";
    var_0[1] = "skyway_amb_02";
    var_0[2] = "skyway_amb_05";
    var_0[3] = "skyway_amb_06";
    var_0[4] = "skyway_amb_07";
    var_0[5] = "skyway_amb_08";

    if ( isdefined( var_0 ) )
    {
        foreach ( var_2 in var_0 )
            maps\_utility::delaythread( 0.1, maps\skyway_util::trig_watcher, var_2, ::play_ambient_sfx_int, ::play_ambient_sfx_ext );
    }
}

level_start_amb()
{
    level.player setclienttriggeraudiozone( "skyway_intro" );
    wait 5;
    thread skyway_train_ambience();
}

sfx_setup_land_triggers()
{
    level.sfx_land_sweetener_array = [];
    sfx_skyway_land_sweetener_init( "audio_train_roof_1", "audio_train_roof_1_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_roof_2", "audio_train_roof_2_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_roof_3", "audio_train_roof_3_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_1_pt1", "audio_train_sat_1_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_1_pt2", "audio_train_sat_1_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_1_pt3", "audio_train_sat_1_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_1_pt4", "audio_train_sat_1_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_2_pt1", "audio_train_sat_2_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_sat_2_pt2", "audio_train_sat_2_reset" );
    sfx_skyway_land_sweetener_init( "audio_train_loco", "audio_train_loco_reset" );

    for ( var_0 = 0; var_0 < level.sfx_land_sweetener_array.size; var_0++ )
        thread sfx_land_triggers_spawn( level.sfx_land_sweetener_array[var_0].trigger_land, level.sfx_land_sweetener_array[var_0].trigger_reset );
}

sfx_skyway_land_sweetener_init( var_0, var_1 )
{
    var_2 = spawnstruct();
    var_2.trigger_land = var_0;
    var_2.trigger_reset = var_1;
    level.sfx_land_sweetener_array[level.sfx_land_sweetener_array.size] = var_2;
}

sfx_land_triggers_spawn( var_0, var_1 )
{
    var_2 = getent( var_0, "targetname" );
    var_3 = getent( var_1, "targetname" );
    thread sfx_land_triggers_watcher( var_2, var_3 );
}

sfx_land_triggers_watcher( var_0, var_1 )
{
    level endon( "notify_loco_standoff" );

    for (;;)
    {
        var_0 waittill( "trigger" );
        level.player playsound( "scn_skyway_train_vault_land" );
        var_1 waittill( "trigger" );
    }
}

play_rail_sfx()
{
    level.train_rail_sfx_ents = [];
    var_0 = getentarray( "train_rail_sfx", "targetname" );

    foreach ( var_2 in var_0 )
        var_2 playloopsound( "emt_skyway_train_rail" );
}

play_wind_sfx()
{
    level.train_wind01_sfx_ents = [];
    var_0 = getentarray( "sfx_wind_01", "targetname" );

    foreach ( var_2 in var_0 )
        var_2 playloopsound( "emt_skyway_wind_01" );

    level.train_wind02_sfx_ents = [];
    var_4 = getentarray( "sfx_wind_02", "targetname" );

    foreach ( var_6 in var_4 )
        var_6 playloopsound( "emt_skyway_wind_02" );
}

play_ambient_sfx_int()
{
    if ( level.skyway_end_sequence == 0 )
        level.player setclienttriggeraudiozone( level.ambient_int, 2 );
}

play_ambient_sfx_ext()
{
    if ( level.skyway_end_sequence == 0 )
        level.player setclienttriggeraudiozone( level.ambient_ext, 0.5 );
}

sfx_impact_train( var_0, var_1, var_2, var_3 )
{
    level notify( "notify_sfx_impact_train" );
    level endon( "notify_sfx_impact_train" );
    wait( var_0 );

    if ( isdefined( var_3 ) )
    {
        if ( level.player.car == "train_sat_1" || level.player.car == "train_sat_2" )
            level.player playsound( "scn_skyway_train_shake_lg" );
        else if ( level.player.car == "train_hangar" )
            level.player playsound( "scn_skyway_train_shake_hanger_lg" );
        else
            level.player playsound( "scn_skyway_train_shake_roof_lg" );
    }
    else if ( var_1 > 0.66 )
    {
        if ( level.player.car == "train_sat_1" || level.player.car == "train_sat_2" )
            level.player playsound( "scn_skyway_train_shake_lg" );
        else if ( level.player.car == "train_hangar" )
            level.player playsound( "scn_skyway_train_shake_hanger_lg" );
        else
            level.player playsound( "scn_skyway_train_shake_roof_lg" );
    }
    else if ( var_1 > 0.13 )
    {
        if ( level.player.car == "train_sat_1" || level.player.car == "train_sat_2" )
            level.player playsound( "scn_skyway_train_shake_med" );
        else if ( level.player.car == "train_hangar" )
            level.player playsound( "scn_skyway_train_shake_hanger_med" );
        else
            level.player playsound( "scn_skyway_train_shake_roof_med" );
    }
    else
    {

    }
}

sfx_rog_sat_impact( var_0 )
{
    wait 2.05;
    thread maps\_utility::play_sound_on_tag( "scn_skyway_rog_explo_hard", var_0 );
    wait 0.5;
    level.player playsound( "scn_skyway_rog_explo_local" );
    wait 1.4;
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_rolling", var_0 );
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_big", var_0 );
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_boom", var_0 );
    level.player thread maps\_utility::play_sound_on_entity( "sw_canyon_rog_quake" );
}

sfx_rog_canyon_impact( var_0 )
{
    wait 1.6;
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_init", var_0 );
    wait 0.2;
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_incoming", var_0 );
    wait 2.7;
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_rolling", var_0 );
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_big", var_0 );
    thread maps\_utility::play_sound_on_tag( "sw_canyon_rog_dist_boom", var_0 );
    level.player thread maps\_utility::play_sound_on_entity( "sw_canyon_rog_quake" );
    wait 0.1;
    level.player thread loop_sound_on_ent( 4, 0.8, "sw_train_shake" );
    wait 0.1;
    var_1 = 5;

    while ( var_1 > 0 )
    {
        level._train.cars[level.player.car].body thread maps\_utility::play_sound_on_tag( "sw_canyon_rocks", "tag_rocks_r" );
        level._train.cars[level.player.car].body thread maps\_utility::play_sound_on_tag( "sw_canyon_rocks", "tag_rocks_l" );
        var_1 = var_1 - 1;
        wait 0.7;
    }
}

loop_sound_on_ent( var_0, var_1, var_2 )
{
    while ( var_0 > 0 )
    {
        thread maps\_utility::play_sound_on_entity( "sw_train_shake" );
        var_0 = var_0 - 1;
        wait( var_1 );
    }
}

skyway_death_fall_sfx()
{
    level.player setclienttriggeraudiozone( "skyway_train_death_fall", 1.0 );
    self playsound( "scn_skyway_fall_death" );
}

spawn_tag_play_sound( var_0, var_1 )
{
    var_2 = common_scripts\utility::spawn_tag_origin();
    var_2.origin = self gettagorigin( var_1 );
    var_2 maps\_utility::play_sound_on_entity( var_0 );
    var_2 maps\skyway_util::teleport_ent_generic();
    var_2 delete();
}

sfx_rog_sat_impact_beach( var_0 )
{
    wait 1.6;
    thread maps\_utility::play_sound_on_tag( "scn_skyway_rog_explo_soft", var_0 );
}

skyway_intro_sfx()
{
    level.player playsound( "scn_skyway_intro_lr" );
    wait 1.1;
    level.player setclienttriggeraudiozone( "skyway_train_intro", 0.5 );
    wait 0.75;
    maps\_utility::music_play( "mus_skyway_intro" );
    wait 15;
    level.player setclienttriggeraudiozone( "skyway_train_ext", 2 );
}

sfx_noticket( var_0 )
{
    wait 0.5;
    var_1 = spawn( "script_origin", var_0.origin );
    var_1 linkto( var_0 );
    var_1 playsound( "generic_pain_bodyslam_1" );
    wait 0.2;
    var_0 playsound( "scn_skyway_noticket" );
    wait 1.3;
    var_1 playsound( "generic_death_falling_scream" );
}

sfx_bridge_down_npc()
{
    wait 0.711;
    level._allies[0] playsound( "scn_skyway_bridge_down_npc" );
}

sfx_bridge_down_plr()
{
    wait 0.711;
    self playsound( "scn_skyway_bridge_down_plr" );
}

sfx_water_amb()
{
    level.player setclienttriggeraudiozone( "skyway_flooding_cart", 1 );
}

sfx_player_surface()
{
    wait 0.3;
    level.player thread maps\_utility::play_sound_on_entity( "sw_surfacing_splash_2" );
    wait 0.4;
    level.player thread maps\_utility::play_sound_on_entity( "sw_surfacing_gasp" );
    wait 0.4;
    level.player thread maps\_utility::play_sound_on_entity( "sw_surfacing_splash_1" );
}

sfx_heli_crash( var_0 )
{
    wait 1;
    var_0 playsound( "scn_skyway_heli_crash" );
    level.player setclienttriggeraudiozone( "skyway_train_helo_crash2", 2 );
    maps\_utility::music_play( "mus_skyway_train_battle" );
}

sfx_heli_crash_impact( var_0 )
{
    var_0 playsound( "scn_skyway_heli_crash_impact" );
    var_1 = getent( "train_derail_sfx", "targetname" );
    level.player clearclienttriggeraudiozone( 2 );
    wait 1;
    var_1 playloopsound( "emt_skyway_derailed_train" );
}

sfx_heli_crash_explo( var_0 )
{
    var_0 playsound( "scn_skyway_heli_crash_impact_explo" );
}

sfx_train_derail()
{
    wait 0.3;
    level.player playsound( "scn_skyway_train_derail_lr" );
}

skyway_checkmate_music()
{
    wait 1.3;
    maps\_utility::music_play( "mus_skyway_meet_rorke" );
}

sfx_loco_breach()
{
    wait 7.68;
    level.breach_sfx = spawn( "script_origin", ( 0, 0, 0 ) );
    level.breach_sfx playsound( "scn_skyway_loco_breach_lr" );
    wait 2;
    level.player setclienttriggeraudiozone( "skyway_loco_breach", 2 );
}

sfx_loco_breach_out()
{
    level.player playsound( "scn_skyway_loco_breach_out_lr" );
    level.player setclienttriggeraudiozone( "skyway_train_int_end", 2 );
    wait 0.5;

    if ( isdefined( level.breach_sfx ) )
    {
        level.breach_sfx stopsounds();
        wait 0.1;
        level.breach_sfx delete();
    }
}

sfx_loco_breach_02()
{
    level waittill( "notify_rpg_impact_engine" );
    level.player playsound( "scn_sw_loco_standoff" );
    wait 5.6;
    level.player setclienttriggeraudiozone( "skyway_loco_breach_slomo2", 0.1 );
    wait 6.4;
    level.player setclienttriggeraudiozone( "skyway_train_int_end", 1.0 );
}

sfx_loco_exp_rambo()
{
    level.end_breach_rpg_guy playsound( "scn_skyway_loco_breach_explosion" );
}

sfx_rambo_rpg_kill()
{
    level.end_breach_rpg_guy playsound( "scn_skyway_loco_breach_rico" );
}

loco_standoff_slowmo_sfx()
{
    level endon( "notify_loco_standoff" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot1" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot2" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot3" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot4" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot1" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot2" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot3" );
    level.player waittill( "weapon_fired" );
    level.player playsound( "scn_skyway_slowmo_shot4" );
}

skyway_endshot_sfx()
{
    level.player playsound( "scn_skyway_end_shot" );
    level.player setclienttriggeraudiozone( "skyway_flooding_cart2", 0.1 );
}

sfx_skyway_helo( var_0 )
{
    common_scripts\utility::flag_wait( "sfx_helo_flyin" );

    if ( var_0 == 0 )
    {
        wait 2;
        self playsound( "scn_skyway_heli_intro_02" );
        wait 6;
        self playloopsound( "scn_skyway_heli_loop" );
    }
    else if ( var_0 == 1 )
    {
        wait 1.3;
        self playsound( "scn_skyway_heli_intro_01" );
        wait 1.5;
        self playloopsound( "scn_skyway_heli_loop" );
    }
}

skyway_swim_music()
{
    wait 1.0;
    maps\_utility::music_play( "mus_skyway_uw_swim" );
}

skyway_beach_music()
{
    maps\_utility::music_crossfade( "mus_skyway_beach_surface", 0.01 );
}

skyway_beach_music_transition()
{
    level.player setclienttriggeraudiozone( "skyway_beach_victory", 2.0 );
    maps\_utility::delaythread( 0.06, maps\_utility::music_crossfade, "mus_skyway_beach_end", 4 );
}

skyway_beach_elias_dialog_lower_amb()
{
    level.player setclienttriggeraudiozone( "skyway_beach_victory_mx_dx", 10.0 );
}

skyway_beach_fade_to_dev_logo_credits( var_0 )
{
    level.player setclienttriggeraudiozone( "skyway_credits_dev_logos", var_0 );
}

skyway_beach_pre_rorke()
{
    level.player setclienttriggeraudiozone( "skyway_beach_pre_rorke", 8.0 );
}

skyway_beach_rorke_again()
{
    level.player setclienttriggeraudiozone( "skyway_beach_rorke_again", 4.0 );
}

skyway_beach_fade_to_final_credits()
{
    wait 0.1;
    level.player setclienttriggeraudiozone( "skyway_credits", 0.05 );
}

sfx_train_derail_logic( var_0 )
{
    level.skyway_end_sequence = 1;
    wait 2.8;
    var_0 playsound( "scn_skyway_end_derail_rog" );
}

sfx_train_derail_sound()
{
    level.player playsound( "scn_skyway_end_derail_lr" );
    level.player setclienttriggeraudiozone( "skyway_train_int_derail", 2 );
    wait 20;
    level.player setclienttriggeraudiozone( "skyway_flooding_cart", 2 );
}

sfx_wreck_01()
{
    wait 7;
    level.wrecksfx01 = spawn( "script_origin", ( 0, 0, 0 ) );
    wait 0.01;
    level.wrecksfx01 playsound( "scn_sw_uw_fight01" );
    thread sw_wreck_dialogue01();
    wait 21.4;
    maps\_utility::music_play( "mus_skyway_uw_combat" );
}

sw_wreck_dialogue01()
{
    var_0 = level._ally;
    var_1 = level._boss;
    wait 9.5;
    var_1 playsound( "skyway_rke_strugglesoundeffort" );
    wait 4;
    var_0 playsound( "skyway_hsh_effortgruntswingingfire" );
    wait 1;
    var_1 stopsounds();
    wait 0.85;
    var_1 playsound( "skyway_rke_painstruckinhead" );
    wait 2.29;
    var_1 playsound( "skyway_rke_strugglesoundbeingheld" );
    wait 1.46;
    var_1 playsound( "skyway_rke_strugglesoundbeingheld_2" );
    wait 2.09;
    var_1 playsound( "skyway_rke_strugglesoundbeingheld_3" );
    wait 1.8;
    var_0 playsound( "skyway_hsh_strugglesoundholdingback_2" );
}

sfx_wreck_02()
{
    wait 0.01;
    level.player setclienttriggeraudiozone( "skyway_flooding_cart1", 0.5 );
    thread sw_wreck_dialogue02();
    wait 0.9;

    if ( isdefined( level.wrecksfx01 ) )
    {
        level.wrecksfx01 stopsounds();
        wait 0.01;
        level.wrecksfx01 delete();
    }

    wait 1.7;
}

sw_wreck_dialogue02()
{
    var_0 = level._ally;
    var_1 = level._boss;
    wait 1.29;
    var_0 stopsounds();
    var_1 playsound( "skyway_rke_painstruckinhead" );
    level waittill( "notify_end_slomo" );
    wait 0.85;
    var_1 playsound( "skyway_rke_strugglesoundbeingheld" );
    wait 1.57;
    var_1 playsound( "skyway_rke_painstruckinhead" );
}

sfx_wreck_03()
{
    maps\_utility::music_play( "mus_skyway_kill_rorke" );

    if ( isdefined( level.wrecksfx02 ) )
    {
        level.wrecksfx02 stopsounds();
        wait 0.01;
        level.wrecksfx02 delete();
    }

    level.wrecksfx03 = spawn( "script_origin", ( 0, 0, 0 ) );
    wait 0.1;
    level.wrecksfx03 playsound( "scn_sw_uw_shot_to_burst" );
}

sfx_beach_drags()
{
    level waittill( "sfx_drag" );
    level.player playsound( "scn_sw_beach_foley_02" );
    wait 1;
    level waittill( "sfx_drag" );
    level.player playsound( "scn_sw_beach_foley_03" );
    wait 0.8;
    level._ally playsound( "skyway_hsh_beach_drag" );
    wait 0.2;
    level waittill( "sfx_drag" );
    level.player playsound( "scn_sw_beach_foley_04" );
    wait 1;
    level waittill( "sfx_drag" );
    level.player playsound( "scn_sw_beach_foley_05" );
    wait 0.7;
    level._ally playsound( "skyway_hsh_beach_drag" );
    wait 0.3;
    level waittill( "sfx_drag" );
    level.player playsound( "scn_sw_beach_foley_06" );
}

sfx_swim_exfil_begin()
{
    wait 4;
    level.swim_creaks = spawn( "script_origin", ( 0, 0, 0 ) );
    level.player playsound( "scn_skyway_exfil_swim_intro_lr" );
    level.swim_creaks playloopsound( "scn_skyway_exfil_swim_creaks_lr" );
    level.player playsound( "scn_skyway_exfil_swim_drop_lr" );
}

sfx_swim_logic( var_0 )
{
    if ( isdefined( var_0 ) )
    {
        if ( level.exfil_swim_intensity != var_0 )
        {
            level.exfil_swim_intensity = var_0;

            switch ( level.exfil_swim_intensity )
            {
                case 1:
                    level.player setclienttriggeraudiozone( "skyway_underwater" );
                    break;
                case 2:
                    level.player setclienttriggeraudiozone( "skyway_underwater2", 1 );
                    thread start_noise();
                    break;
                case 3:
                    level.player setclienttriggeraudiozone( "skyway_underwater3", 4 );
                    thread sfx_fish();
                    thread stop_creaks();
                    break;
                case 4:
                    level.player setclienttriggeraudiozone( "skyway_underwater4", 4 );
                    thread stop_swimming();
                    thread sfx_accents();
                    break;
                case 5:
                    level.player setclienttriggeraudiozone( "skyway_underwater5", 4 );
                    break;
                default:
                    break;
            }
        }
    }
}

sfx_accents()
{
    level.player playsound( "scn_skyway_exfil_swim_accent01" );
}

sfx_swim_hrtbeat()
{
    self endon( "death" );
    level.plr_heart = spawn( "script_origin", ( 0, 0, 0 ) );
    level.hrtbeat = 1;

    while ( !common_scripts\utility::flag( "flag_end_swim_end" ) )
    {
        switch ( level.hrtbeat )
        {
            case 1:
                level.plr_heart playsound( "scn_skyway_exfil_swim_hrtbeat00", "heartbeat_done" );
                thread maps\skyway_end_swim::heartfx( 1.452 );
                break;
            case 2:
                level.plr_heart playsound( "scn_skyway_exfil_swim_hrtbeat01", "heartbeat_done" );
                thread maps\skyway_end_swim::heartfx( 1.178 );
                break;
            case 3:
                level.plr_heart playsound( "scn_skyway_exfil_swim_hrtbeat02", "heartbeat_done" );
                thread maps\skyway_end_swim::heartfx( 1 );
                break;
            case 4:
                level.plr_heart playsound( "scn_skyway_exfil_swim_hrtbeat03", "heartbeat_done" );
                thread maps\skyway_end_swim::heartfx( 0.86 );
                break;
            case 5:
                level.plr_heart playsound( "scn_skyway_exfil_swim_hrtbeat04", "heartbeat_done" );
                thread maps\skyway_end_swim::heartfx( 0.682 );
                break;
            default:
                break;
        }

        level.plr_heart waittill( "heartbeat_done" );
    }
}

sfx_exfil_swim_plr()
{
    level.plr_swimming = spawn( "script_origin", ( 0, 0, 0 ) );
    level.plr_swimming playloopsound( "scn_skyway_exfil_swim_plr_lp" );
}

sfx_fish()
{
    wait 2;
    level.player playsound( "scn_skyway_exfil_swim_fish" );
}

stop_creaks()
{
    wait 5;
    level.swim_creaks stoploopsound();
}

stop_swimming()
{
    level.plr_swimming stoploopsound();
}

start_noise()
{
    wait 1;
    level.noise = spawn( "script_origin", ( 0, 0, 0 ) );
    level.noise playloopsound( "scn_skyway_exfil_swim_noise_lp" );
}

sfx_stop_all_swim_sounds()
{
    level.player playsound( "scn_skyway_exfil_swim_noise_end" );
    level.player setclienttriggeraudiozone( "skyway_underwater6", 5 );
    wait 2;
    level.player playsound( "scn_skyway_exfil_swim_end" );
    wait 0.5;
    level.noise stoploopsound();
    level.plr_heart stopsounds();
    wait 0.05;
    level.plr_heart delete();
}

sfx_beach_transition()
{
    level.player setclienttriggeraudiozone( "skyway_beach1", 0.5 );
    wait 1;
    level.player setclienttriggeraudiozone( "skyway_beach", 3 );
}

sfx_beach_rorke_approach( var_0 )
{
    level endon( "notify_rorke_attack" );
    wait 5;
    level.rorke_approach_sfx = spawn( "script_origin", ( 16926, -33864, 74520 ) );
    level.rorke_approach_sfx playsound( "scn_skyway_beach_rorke_approach" );
    thread sfx_beach_rorke_approach_end();
}

sfx_beach_rorke_approach_end()
{
    level waittill( "notify_rorke_attack" );
    level.rorke_approach_sfx stopsounds();
    wait 1;
    level.rorke_approach_sfx delete();
}

perif_fleet_sfx()
{
    level.perif_fleet_sfx = spawn( "script_origin", ( 12734, -6001, 74636 ) );
    level.perif_fleet_sfx playloopsound( "sw_end_dist_battle" );
}

sw_beach_breathing_vo()
{
    wait 1;
    level._allies[0] playsound( "skyway_hsh_foleysoundsforbeach" );
}

rorke_end_grunt_sfx()
{
    wait 6.5;
    level._boss playsound( "skyway_rke_outro_end_efforts" );
}
