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

main()
{
    level._effect["c17_light_lens"] = loadfx( "vfx/moments/satfarm/c17_light_lens" );
    level._effect["cnd_explosion_horizontal"] = loadfx( "fx/temp/cornered/cnd_explosion_horizontal" );
    level._effect["cnd_building_fall"] = loadfx( "fx/temp/cornered/cnd_building_fall" );
    level._effect["vfx_fire_cnd_small_light"] = loadfx( "vfx/moments/cornered/vfx_fire_cnd_small_light" );
    level._effect["vfx_lens_flare_int_light"] = loadfx( "vfx/moments/cornered/vfx_lens_flare_int_light" );
    level._effect["vfx_building_thin_video"] = loadfx( "vfx/moments/cornered/vfx_building_thin_video" );
    level._effect["vfx_building_dot_graphic"] = loadfx( "vfx/moments/cornered/vfx_building_dot_graphic" );
    level._effect["embers_burst_runner_cheap"] = loadfx( "vfx/moments/mp_warhawk/embers_burst_runner_cheap" );
    level._effect["vfx_atrium_window_impact"] = loadfx( "vfx/moments/cornered/vfx_atrium_window_impact" );
    level._effect["cnd_atrium_floor_breakup"] = loadfx( "vfx/moments/cornered/cnd_atrium_floor_breakup" );
    level._effect["fireworks_all_sm"] = loadfx( "fx/explosions/fireworks_all_sm" );
    level._effect["fireworks_red_sm"] = loadfx( "fx/explosions/fireworks_red_sm" );
    level._effect["fireworks_white_sm"] = loadfx( "fx/explosions/fireworks_white_sm" );
    level._effect["fireworks_green_sm"] = loadfx( "fx/explosions/fireworks_green_sm" );
    level._effect["fireworks_blue_sm"] = loadfx( "fx/explosions/fireworks_blue_sm" );
    level._effect["vfx_spotlight_party_flare"] = loadfx( "vfx/moments/cornered/vfx_spotlight_party_flare" );
    level._effect["vfx_spotlight_party"] = loadfx( "vfx/moments/cornered/vfx_spotlight_party" );
    level._effect["vfx_building_side_video"] = loadfx( "vfx/moments/cornered/vfx_building_side_video" );
    level._effect["vfx_bulb_prismatic_xlg"] = loadfx( "vfx/ambient/lights/vfx_bulb_prismatic_xlg" );
    level._effect["vfx_building_box_graphic"] = loadfx( "vfx/moments/cornered/vfx_building_box_graphic" );
    level._effect["vfx_building_line_graphic"] = loadfx( "vfx/moments/cornered/vfx_building_line_graphic" );
    level._effect["vfx_building_tie_graphic"] = loadfx( "vfx/moments/cornered/vfx_building_tie_graphic" );
    level._effect["cnd_red_blding_top_light3"] = loadfx( "fx/temp/cornered/cnd_red_blding_top_light3" );
    level._effect["vfx_building_billboard_01"] = loadfx( "vfx/moments/cornered/vfx_building_billboard_01" );
    level._effect["vfx_building_side_graphic_2"] = loadfx( "vfx/moments/cornered/vfx_building_side_graphic_2" );
    level._effect["vfx_building_side_graphic"] = loadfx( "vfx/moments/cornered/vfx_building_side_graphic" );
    level._effect["cnd_secondry_explosion_large"] = loadfx( "vfx/moments/cornered/cnd_secondry_explosion_large" );
    level._effect["zipline_speed"] = loadfx( "vfx/moments/cornered/zipline_speed" );
    level._effect["gusty_wind"] = loadfx( "vfx/moments/cornered/gusty_wind" );
    level._effect["vfx_heat_haze"] = loadfx( "vfx/ambient/atmospheric/vfx_heat_haze" );
    level._effect["cornered_rooftop_spotlight"] = loadfx( "vfx/moments/cornered/cornered_rooftop_spotlight" );
    level._effect["raindrop_loop_window"] = loadfx( "vfx/ambient/water/raindrop_loop_window" );
    level._effect["vfx_lens_flare"] = loadfx( "vfx/moments/cornered/vfx_lens_flare" );
    level._effect["vfx_fireworks_lingeringsmoke_looping"] = loadfx( "vfx/moments/cornered/vfx_fireworks_lingeringsmoke_looping" );
    level._effect["falling_debris_card"] = loadfx( "vfx/moments/cornered/falling_debris_card" );
    level._effect["vfx_exfil_shockwave"] = loadfx( "vfx/moments/cornered/vfx_exfil_shockwave" );
    level._effect["vfx_atrium_pillar_impact"] = loadfx( "vfx/moments/cornered/vfx_atrium_pillar_impact" );
    level._effect["vfx_glass_window_smash"] = loadfx( "vfx/moments/cornered/vfx_glass_window_smash" );
    level._effect["vfx_smk_finger"] = loadfx( "vfx/ambient/smoke/vfx_smk_finger" );
    level._effect["vfx_debris_falling_exfil_2"] = loadfx( "vfx/moments/cornered/vfx_debris_falling_exfil_2" );
    level._effect["vfx_exp_atrium"] = loadfx( "vfx/moments/cornered/vfx_exp_atrium" );
    level._effect["vfx_exp_concrete_fracture"] = loadfx( "vfx/gameplay/explosions/vfx_exp_concrete_fracture" );
    level._effect["vfx_debris_falling_exfil_"] = loadfx( "vfx/moments/cornered/vfx_debris_falling_exfil_" );
    level._effect["fire_trash2"] = loadfx( "fx/fire/fire_trash2" );
    level._effect["spark_fall_runner_mp"] = loadfx( "fx/explosions/spark_fall_runner_mp" );
    level._effect["spark_fall_shortrun_mp"] = loadfx( "fx/explosions/spark_fall_shortrun_mp" );
    level._effect["amb_wind_blowing_slow"] = loadfx( "fx/dust/amb_wind_blowing_slow" );
    level._effect["paper_blowing_cards_heavy_windy"] = loadfx( "fx/misc/paper_blowing_cards_heavy_windy" );
    level._effect["paper_blowing_cards_windy"] = loadfx( "fx/misc/paper_blowing_cards_windy" );
    level._effect["building_debris_falling_cornered"] = loadfx( "fx/misc/building_debris_falling_cornered" );
    level._effect["cloud_ash_lite_cornered"] = loadfx( "vfx/moments/cornered/cloud_ash_lite_cornered" );
    level._effect["vfx_fire_xtralarge_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_xtralarge_nxglight" );
    level._effect["vfx_fire_small_nolight"] = loadfx( "vfx/ambient/fire/vfx_fire_small_nolight" );
    level._effect["vfx_fire_grounded_xtralarge_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_grounded_xtralarge_nxglight" );
    level._effect["vfx_steam_wispy_mist"] = loadfx( "vfx/ambient/steam/vfx_steam_wispy_mist" );
    level._effect["vfx_int_smk_ceiling"] = loadfx( "vfx/ambient/smoke/vfx_int_smk_ceiling" );
    level._effect["vfx_smk_black_01"] = loadfx( "vfx/ambient/smoke/vfx_smk_black_01" );
    level._effect["vfx_electrical_spark_drip_smalldlight"] = loadfx( "vfx/ambient/sparks/vfx_electrical_spark_drip_smalldlight" );
    level._effect["vfx_electrical_spark_drip"] = loadfx( "vfx/ambient/sparks/vfx_electrical_spark_drip" );
    level._effect["spark_flash_15"] = loadfx( "vfx/ambient/sparks/spark_flash_15" );
    level._effect["vfx_emergency_light_blinking_white"] = loadfx( "vfx/ambient/lights/vfx_emergency_light_blinking_white" );
    level._effect["vfx_lights_conc_spill"] = loadfx( "vfx/ambient/lights/vfx_lights_conc_spill" );
    level._effect["vfx_glow_white_stage_cnd"] = loadfx( "vfx/ambient/lights/vfx_glow_white_stage_cnd" );
    level._effect["vfx_lights_conc_1"] = loadfx( "vfx/ambient/lights/vfx_lights_conc_1" );
    level._effect["vfx_glow_yellow_spill_cnd"] = loadfx( "vfx/ambient/lights/vfx_glow_yellow_spill_cnd" );
    level._effect["vfx_glow_red_spill_cnd"] = loadfx( "vfx/ambient/lights/vfx_glow_red_spill_cnd" );
    level._effect["leaves_falling_impact"] = loadfx( "fx/temp/cornered/leaves_falling_impact" );
    level._effect["pipe_burst_cornered_a"] = loadfx( "fx/temp/cornered/pipe_burst_cornered_a" );
    level._effect["leaves_falling_lt"] = loadfx( "fx/temp/cornered/leaves_falling_lt" );
    level._effect["heavy_dust_haze"] = loadfx( "fx/temp/cornered/heavy_dust_haze" );
    level._effect["smoke_smolder_embers"] = loadfx( "fx/temp/cornered/smoke_smolder_embers" );
    level._effect["dust_motes_godray"] = loadfx( "fx/temp/cornered/dust_motes_godray" );
    level._effect["dust_fall_runner"] = loadfx( "fx/temp/cornered/dust_fall_runner" );
    level._effect["dust_fallsmall_runner"] = loadfx( "fx/temp/cornered/dust_fallsmall_runner" );
    level._effect["dust_layered_fog"] = loadfx( "fx/temp/cornered/dust_layered_fog" );
    level._effect["cnd_building_explosion"] = loadfx( "fx/temp/cornered/cnd_building_explosion" );
    level._effect["cnd_building_fire"] = loadfx( "fx/temp/cornered/cnd_building_fire" );
    level._effect["mp_bw_embers"] = loadfx( "fx/temp/cornered/mp_bw_embers" );
    level._effect["ceiling_impact_hallway"] = loadfx( "fx/temp/cornered/ceiling_impact_hallway" );
    level._effect["cnd_glass_shatter"] = loadfx( "fx/temp/cornered/cnd_glass_shatter" );
    level._effect["cnd_debris_slide"] = loadfx( "fx/temp/cornered/cnd_debris_slide" );
    level._effect["cnd_dust_linger"] = loadfx( "fx/temp/cornered/cnd_dust_linger" );
    level._effect["cnd_yel_light2"] = loadfx( "fx/temp/cornered/cnd_yel_light2" );
    level._effect["cnd_yel_light1"] = loadfx( "fx/temp/cornered/cnd_yel_light1" );
    level._effect["cnd_neon_light"] = loadfx( "fx/temp/cornered/cnd_neon_light" );
    level._effect["cnd_neon_light2"] = loadfx( "fx/temp/cornered/cnd_neon_light2" );
    level._effect["city_light_spill"] = loadfx( "fx/lights/city_light_spill" );
    level._effect["cornered_balcony_spotlight_nolight"] = loadfx( "fx/lights/cornered_balcony_spotlight_nolight" );
    level._effect["flicker_single_fxlight"] = loadfx( "fx/lights/flicker_single_fxlight" );
    level._effect["powerlines_c"] = loadfx( "fx/explosions/powerlines_c" );
    level._effect["water_pipe_spout"] = loadfx( "fx/water/water_pipe_spout" );
    level._effect["falling_water_spray"] = loadfx( "fx/water/falling_water_spray" );
    level._effect["vfx_bulb_prismatic"] = loadfx( "vfx/ambient/lights/vfx_bulb_prismatic" );
    level._effect["drips_faucet_slow"] = loadfx( "fx/water/drips_faucet_slow" );
    level._effect["pipe_drips"] = loadfx( "fx/temp/cornered/pipe_drips" );
    level._effect["amb_wind_blowing"] = loadfx( "fx/dust/amb_wind_blowing" );
    level._effect["amb_wind_blowing_motes"] = loadfx( "fx/dust/amb_wind_blowing_motes" );
    level._effect["light_dust_motes_fog"] = loadfx( "fx/temp/cornered/light_dust_motes_fog" );
    level._effect["rain_drizzle_intro"] = loadfx( "vfx/moments/cornered/rain_drizzle_intro" );
    level._effect["rain_splash_puddle_50x50_runner"] = loadfx( "vfx/moments/cornered/rain_splash_puddle_50x50_runner" );
    level._effect["heli_dust_infinite_cheap"] = loadfx( "fx/treadfx/heli_dust_infinite_cheap" );
    level._effect["heli_dust_default_light"] = loadfx( "fx/treadfx/heli_dust_default_light" );
    level._effect["zipline_anchor_impact"] = loadfx( "fx/impacts/zipline_anchor_impact" );
    level._effect["vfx_zipline_tracer"] = loadfx( "vfx/moments/cornered/vfx_zipline_tracer" );
    level._effect["zipline_shot"] = loadfx( "fx/muzzleflashes/zipline_shot" );
    level._effect["zipline_launcher_foot_impact"] = loadfx( "fx/impacts/zipline_launcher_foot_impact" );
    level._effect["lights_ext_halogen_quad_white"] = loadfx( "fx/lights/lights_ext_halogen_quad_white" );
    level._effect["cnd_spotlight_strobe"] = loadfx( "fx/temp/cornered/cnd_spotlight_strobe" );
    level._effect["cnd_ally_strobe"] = loadfx( "fx/temp/cornered/cnd_ally_strobe" );
    level._effect["window_explosion_out"] = loadfx( "fx/explosions/window_explosion_out" );
    level._effect["copier_papers_falling"] = loadfx( "fx/temp/cornered/copier_papers_falling" );
    level._effect["cell_screen_glow_bright"] = loadfx( "vfx/moments/cornered/cell_screen_glow_bright" );
    level._effect["cell_screen_glow"] = loadfx( "vfx/moments/cornered/cell_screen_glow" );
    level._effect["vfx_playing_cards_burst"] = loadfx( "vfx/moments/cornered/vfx_playing_cards_burst" );
    level._effect["light_dust_motes_fog_garden"] = loadfx( "fx/temp/cornered/light_dust_motes_fog_garden" );
    level._effect["cnd_godray_thin"] = loadfx( "vfx/moments/cornered/cnd_godray_thin" );
    level._effect["pipe_fire_looping_fxlight"] = loadfx( "fx/impacts/pipe_fire_looping_fxlight" );
    level._effect["pipe_fire_looping"] = loadfx( "fx/impacts/pipe_fire_looping" );
    level._effect["payback_pipe_steam"] = loadfx( "fx/maps/payback/payback_pipe_steam" );
    level._effect["banner_fire_nodrip"] = loadfx( "fx/fire/banner_fire_nodrip" );
    level._effect["vfx_camera_flashes"] = loadfx( "vfx/moments/cornered/vfx_camera_flashes" );
    level._effect["vfx_crowd_dnc"] = loadfx( "vfx/moments/cornered/vfx_crowd_dnc" );
    level._effect["vfx_crowd_rappel_road"] = loadfx( "vfx/moments/cornered/vfx_crowd_rappel_road" );
    level._effect["vfx_crowd_rappel_road_long"] = loadfx( "vfx/moments/cornered/vfx_crowd_rappel_road_long" );
    level._effect["vfx_crowd_rappel"] = loadfx( "vfx/moments/cornered/vfx_crowd_rappel" );
    level._effect["vfx_festival_spot_cnd"] = loadfx( "vfx/ambient/lights/vfx_festival_spot_cnd" );
    level._effect["vfx_atrium_tile"] = loadfx( "vfx/moments/cornered/vfx_atrium_tile" );
    level._effect["vfx_glass_falling"] = loadfx( "vfx/moments/cornered/vfx_glass_falling" );
    level._effect["spark_large_fountain02"] = loadfx( "vfx/moments/cornered/spark_large_fountain02" );
    level._effect["spark_large_fountain"] = loadfx( "vfx/moments/cornered/spark_large_fountain" );
    level._effect["vfx_torch_cutting_window_open_papers"] = loadfx( "vfx/moments/cornered/vfx_torch_cutting_window_open_papers" );
    level._effect["torch_cutting_glass_spark_ondeath2"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark_ondeath2" );
    level._effect["torch_cutting_glass_heatribbon_path"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_heatribbon_path" );
    level._effect["torch_cutting_glass_spark_crack"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark_crack" );
    level._effect["torch_cutting_glass_spark_ondeath"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark_ondeath" );
    level._effect["vfx_torch_cutting_window_open"] = loadfx( "vfx/moments/cornered/vfx_torch_cutting_window_open" );
    level._effect["torch_cutting_glass_spark_crack_revend"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark_crack_revend" );
    level._effect["torch_cutting_glass_spark_crack_rev"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark_crack_rev" );
    level._effect["torch_cutting_glass_heatribbon"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_heatribbon" );
    level._effect["torch_cutting_glass_heatribbon_player"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_heatribbon_player" );
    level._effect["torch_cutting_glass_beam_player"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_beam_player" );
    level._effect["torch_cutting_glass_beam"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_beam" );
    level._effect["torch_cutting_glass_spark"] = loadfx( "vfx/moments/cornered/torch_cutting_glass_spark" );
    level._effect["paper_blowing_stack_flat_cluster"] = loadfx( "fx/misc/paper_blowing_stack_flat_cluster" );
    level._effect["paper_blowing_stack_impact"] = loadfx( "fx/misc/paper_blowing_stack_impact" );
    level._effect["fireworks"] = loadfx( "fx/temp/cornered/fireworks" );
    level._effect["vfx_fireworks_meteors_trails"] = loadfx( "vfx/moments/cornered/vfx_fireworks_meteors_trails" );
    level._effect["vfx_fireworks_ground_straight_single"] = loadfx( "vfx/moments/cornered/vfx_fireworks_ground_straight_single" );
    level._effect["vfx_fireworks_groundflare_oneshot2"] = loadfx( "vfx/moments/cornered/vfx_fireworks_groundflare_oneshot2" );
    level._effect["vfx_fireworks_groundflare_oneshot"] = loadfx( "vfx/moments/cornered/vfx_fireworks_groundflare_oneshot" );
    level._effect["vfx_fireworks_ground_straight"] = loadfx( "vfx/moments/cornered/vfx_fireworks_ground_straight" );
    level._effect["vfx_fireworks_flare_explosion_p"] = loadfx( "vfx/moments/cornered/vfx_fireworks_flare_explosion_p" );
    level._effect["vfx_fireworks_sparkle_large"] = loadfx( "vfx/moments/cornered/vfx_fireworks_sparkle_large" );
    level._effect["vfx_fireworks_flare_explosion"] = loadfx( "vfx/moments/cornered/vfx_fireworks_flare_explosion" );
    level._effect["vfx_fireworks_lingeringsmoke_r"] = loadfx( "vfx/moments/cornered/vfx_fireworks_lingeringsmoke_r" );
    level._effect["vfx_fireworks_lingeringsmoke"] = loadfx( "vfx/moments/cornered/vfx_fireworks_lingeringsmoke" );
    level._effect["vfx_fireworks_groundflare_oneshot3"] = loadfx( "vfx/moments/cornered/vfx_fireworks_groundflare_oneshot3" );
    level._effect["fireworks_red_lrg"] = loadfx( "fx/explosions/fireworks_red_lrg" );
    level._effect["fireworks_red"] = loadfx( "fx/explosions/fireworks_red" );
    level._effect["fireworks_blue_lrg"] = loadfx( "fx/explosions/fireworks_blue_lrg" );
    level._effect["fireworks_blue"] = loadfx( "fx/explosions/fireworks_blue" );
    level._effect["fireworks_red_trail"] = loadfx( "fx/explosions/fireworks_red_trail" );
    level._effect["fireworks_green_ch"] = loadfx( "fx/explosions/fireworks_green_ch" );
    level._effect["fireworks_white_falling_lg"] = loadfx( "fx/explosions/fireworks_white_falling_lg" );
    level._effect["fireworks_blue_falling"] = loadfx( "fx/explosions/fireworks_blue_falling" );
    level._effect["fireworks_white_lrg"] = loadfx( "fx/explosions/fireworks_white_lrg" );
    level._effect["fireworks_purple_lrg"] = loadfx( "fx/explosions/fireworks_purple_lrg" );
    level._effect["fireworks_green_lrg"] = loadfx( "fx/explosions/fireworks_green_lrg" );
    level._effect["fireworks_purple"] = loadfx( "fx/explosions/fireworks_purple" );
    level._effect["fireworks_white_falling_thin"] = loadfx( "fx/explosions/fireworks_white_falling_thin" );
    level._effect["fireworks_white_falling"] = loadfx( "fx/explosions/fireworks_white_falling" );
    level._effect["fireworks_green"] = loadfx( "fx/explosions/fireworks_green" );
    level._effect["fireworks_white"] = loadfx( "fx/explosions/fireworks_white" );
    level._effect["fireworks_popping"] = loadfx( "fx/explosions/fireworks_popping" );
    level._effect["raindrops_screen_3_0"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_3_0" );
    level._effect["raindrops_screen_3_1"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_3_1" );
    level._effect["raindrops_screen_3_2"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_3_2" );
    level._effect["raindrops_screen_3_3"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_3_3" );
    level._effect["raindrops_screen_3_4"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_3_4" );
    level._effect["raindrops_screen_5_0"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_5_0" );
    level._effect["raindrops_screen_5_1"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_5_1" );
    level._effect["raindrops_screen_5_2"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_5_2" );
    level._effect["raindrops_screen_5_3"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_5_3" );
    level._effect["raindrops_screen_5_4"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_5_4" );
    level._effect["raindrops_screen_10_0"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_10_0" );
    level._effect["raindrops_screen_10_1"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_10_1" );
    level._effect["raindrops_screen_10_2"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_10_2" );
    level._effect["raindrops_screen_10_3"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_10_3" );
    level._effect["raindrops_screen_10_4"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_10_4" );
    level._effect["raindrops_screen_20_0"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_20_0" );
    level._effect["raindrops_screen_20_1"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_20_1" );
    level._effect["raindrops_screen_20_2"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_20_2" );
    level._effect["raindrops_screen_20_3"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_20_3" );
    level._effect["raindrops_screen_20_4"] = loadfx( "vfx/gameplay/screen_effects/raindrops_screen_20_4" );
    level._effect["neck_stab_blood"] = loadfx( "vfx/moments/cornered/vfx_neck_stab_blood" );
    level._effect["spotlight"] = loadfx( "fx/lights/lights_spotlight_heli_search_nosnow" );

    if ( !getdvarint( "r_reflectionProbeGenerate" ) )
    {
        maps\createfx\cornered_fx::main();

        if ( getdvar( "createfx" ) == "" )
            grab_firework_effects();

        maps\createfx\cornered_sound::main();
    }
}

treadfx_override()
{
    var_0 = "fx/treadfx/heli_dust_infinite_cheap";
    maps\_treadfx::setallvehiclefx( "script_vehicle_nh90_no_lod", var_0 );
}

delete_stage_one_fx()
{
    if ( isdefined( level.smoke_effect_tags ) )
    {
        for ( var_0 = 0; var_0 < level.smoke_effect_tags.size; var_0++ )
        {
            level.smoke_effect_tags[var_0] unlink();
            level.smoke_effect_tags[var_0].origin = ( 0, 0, 0 );
            stopfxontag( level._effect[level.vfxarry[var_0].v["fxid"]], level.smoke_effect_tags[var_0], "tag_origin" );
        }
    }

    handle_stage_two_fx();
}

handle_stage_two_fx()
{
    var_0 = maps\_utility::get_exploder_array( 9876 );

    foreach ( var_2 in var_0 )
    {
        var_3 = anglestoup( var_2.v["angles"] );
        var_4 = anglestoforward( var_2.v["angles"] );
        var_5 = spawnfx( level._effect[var_2.v["fxid"]], var_2.v["origin"], var_4, var_3 );
        triggerfx( var_5, -2240 );
    }
}

fx_checkpoint_states()
{
    var_0 = level.start_point;

    if ( var_0 == "intro" )
    {
        common_scripts\utility::exploder( 3456 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "rappel_stealth" )
    {
        common_scripts\utility::exploder( 3456 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "inverted_rappel" )
    {
        common_scripts\utility::exploder( 3456 );
        maps\_utility::stop_exploder( 10 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "courtyard" )
    {
        maps\_utility::stop_exploder( 10 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "bar" )
    {
        maps\_utility::stop_exploder( 10 );
        common_scripts\utility::exploder( 13 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "junction" )
    {
        maps\_utility::stop_exploder( 10 );
        common_scripts\utility::exploder( 14 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "rappel" )
    {
        maps\_utility::stop_exploder( 10 );
        common_scripts\utility::exploder( 14 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "garden" )
    {
        maps\_utility::stop_exploder( 10 );
        common_scripts\utility::exploder( 1200 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "hvt_capture" )
    {
        maps\_utility::stop_exploder( 10 );
        common_scripts\utility::exploder( 1200 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "atrium" )
    {
        maps\_utility::stop_exploder( 10 );
        maps\_utility::stop_exploder( 20 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }

    if ( var_0 == "horizontal" )
    {
        maps\_utility::stop_exploder( 10 );
        maps\_utility::stop_exploder( 20 );
        maps\_utility::stop_exploder( 22 );
        maps\_utility::stop_exploder( 23 );
        maps\_utility::stop_exploder( 67 );
    }
}

activate_fireworks_exploder( var_0 )
{
    var_0 = var_0 + "";

    if ( !isdefined( level.fireworksfx ) )
    {
        common_scripts\utility::exploder( var_0 );
        return;
    }

    level notify( "exploding_" + var_0 );
    var_1 = 0;

    for ( var_2 = 0; var_2 < level.fireworksfx.size; var_2++ )
    {
        var_3 = level.fireworksfx[var_2];

        if ( !isdefined( var_3 ) )
            continue;

        if ( !isdefined( var_3.exploder ) )
            continue;

        if ( var_3.exploder + "" != var_0 )
            continue;

        var_3 thread activate_individual_fireworks_exploder();
        var_1 = 1;
    }

    if ( !var_1 )
        common_scripts\utility::exploder( var_0 );
}

activate_individual_fireworks_exploder()
{
    if ( isdefined( self.delay ) )
        wait( self.delay );

    if ( isdefined( self.fxent ) )
        self.fxent delete();

    var_0 = anglestoforward( self.angles );
    var_1 = anglestoup( self.angles );
    self.fxent = spawnfx( common_scripts\utility::getfx( self.fxid ), self.origin, var_0, var_1 );
    triggerfx( self.fxent );

    if ( isdefined( self.soundalias ) )
        common_scripts\utility::play_sound_in_space( self.soundalias, self.origin );
}

grab_firework_effects()
{
    if ( isdefined( level.fireworksfx ) )
        return;

    var_0 = [];
    level.fireworksfx = [];

    for ( var_1 = 0; var_1 < level.createfxent.size; var_1++ )
    {
        var_2 = level.createfxent[var_1];

        if ( !isdefined( var_2 ) )
        {
            var_0[var_0.size] = var_2;
            continue;
        }

        if ( var_2.v["type"] != "exploder" )
        {
            var_0[var_0.size] = var_2;
            continue;
        }

        if ( !isdefined( var_2.v["exploder"] ) )
        {
            var_0[var_0.size] = var_2;
            continue;
        }

        if ( !issubstr( var_2.v["fxid"], "firework" ) )
        {
            var_0[var_0.size] = var_2;
            continue;
        }

        level.fireworksfx[level.fireworksfx.size] = convert_to_fireworks_effect( var_2 );
        var_2 = undefined;
    }

    level.createfxent = var_0;
}

convert_to_fireworks_effect( var_0 )
{
    var_1 = spawnstruct();
    var_1.fxid = var_0.v["fxid"];
    var_1.origin = var_0.v["origin"];
    var_1.angles = var_0.v["angles"];
    var_1.exploder = var_0.v["exploder"];

    if ( isdefined( var_0.v["soundalias"] ) )
        var_1.soundalias = var_0.v["soundalias"];

    if ( isdefined( var_0.v["delay"] ) )
        var_1.delay = var_0.v["delay"];

    return var_1;
}

turn_off_rain_fx()
{
    common_scripts\utility::flag_clear( "fx_screen_raindrops" );
    waittillframeend;
    level notify( "fx_screen_raindrops_done" );
}

fx_screen_raindrops_cleanup()
{
    level waittill( "fx_screen_raindrops_done" );
    wait 0.5;
    level.screenrain delete();
}

fx_screen_raindrops_fast_kill()
{
    level notify( "fx_screen_raindrops_kill" );
    level.screenrain delete();
}

fx_screen_raindrops()
{
    level endon( "fx_screen_raindrops_done" );
    level endon( "fx_screen_raindrops_kill" );
    level.screenrain = spawn( "script_model", ( 0, 0, 0 ) );
    level.screenrain setmodel( "tag_origin" );
    level.screenrain.origin = level.player.origin;
    level.screenrain linktoplayerview( level.player, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ), 1 );
    thread fx_screen_raindrops_cleanup();
    var_0 = 0;

    for (;;)
    {
        if ( !common_scripts\utility::flag( "fx_screen_raindrops" ) )
        {
            level waittill( "fx_screen_raindrops" );

            if ( !common_scripts\utility::flag( "fx_screen_raindrops" ) )
                continue;
        }

        var_1 = level.player getplayerangles();
        var_0 = var_0 + 1;

        if ( var_0 > 4 )
            var_0 = 0;

        if ( common_scripts\utility::flag( "player_is_ziplining" ) )
        {
            if ( var_1[0] < -40 )
                playfxontag( level._effect["raindrops_screen_20_" + var_0], level.screenrain, "tag_origin" );
            else if ( var_1[0] < -25 )
                playfxontag( level._effect["raindrops_screen_10_" + var_0], level.screenrain, "tag_origin" );
            else if ( var_1[0] < 25 )
                playfxontag( level._effect["raindrops_screen_5_" + var_0], level.screenrain, "tag_origin" );
            else if ( var_1[0] < 40 )
                playfxontag( level._effect["raindrops_screen_3_" + var_0], level.screenrain, "tag_origin" );
        }

        wait( getdvarfloat( "screen_rain_zipline_repeat_seconds", 0.1 ) );
    }
}

fx_screen_water_sheeting( var_0, var_1 )
{
    if ( isdefined( var_1 ) )
        level endon( var_1 );

    var_2 = getent( var_0, "targetname" );

    for (;;)
    {
        var_2 waittill( "trigger" );

        while ( level.player istouching( var_2 ) )
        {
            level.player setwatersheeting( 1, 1.0 );
            wait 0.5;
        }
    }
}
