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

main()
{
    level._effect["vfx_sunflare_satfarm"] = loadfx( "vfx/ambient/atmospheric/vfx_sunflare_satfarm" );
    level._effect["vfx_parachute_strap_cut"] = loadfx( "vfx/moments/jungle_ghost/vfx_parachute_strap_cut" );
    level._effect["vfx_vectorfield_wind_pulse"] = loadfx( "vfx/gameplay/vectorfields/vfx_vectorfield_wind_pulse" );
    level._effect["vfx_iplane_plane_debris_frnt"] = loadfx( "vfx/moments/iplane/vfx_iplane_plane_debris_frnt" );
    level._effect["vfx_iplane_plane_debris_bck"] = loadfx( "vfx/moments/iplane/vfx_iplane_plane_debris_bck" );
    level._effect["vfx_aircrash_windcaos"] = loadfx( "vfx/moments/jungle_ghost/vfx_aircrash_windcaos" );
    level._effect["vfx_iplane_sparkrain"] = loadfx( "vfx/moments/iplane/vfx_iplane_sparkrain" );
    level._effect["vfx_iplane_fragments_rip"] = loadfx( "vfx/moments/iplane/vfx_iplane_fragments_rip" );
    level._effect["vfx_iplane_fragments_small"] = loadfx( "vfx/moments/iplane/vfx_iplane_fragments_small" );
    level._effect["vfx_iplane_sizzle_r"] = loadfx( "vfx/moments/iplane/vfx_iplane_sizzle_r" );
    level._effect["vfx_scrnfx_tocam_waterdrops_xs"] = loadfx( "vfx/gameplay/screen_effects/vfx_scrnfx_tocam_waterdrops_xs" );
    level._effect["vfx_iplane_spark_stream"] = loadfx( "vfx/moments/iplane/vfx_iplane_spark_stream" );
    level._effect["vfx_iplane_godray"] = loadfx( "vfx/moments/iplane/vfx_iplane_godray" );
    level._effect["vfx_iplane_smk_cabin_nowind_lux"] = loadfx( "vfx/moments/iplane/vfx_iplane_smk_cabin_nowind_lux" );
    level._effect["vfx_iplane_smk_cabin_nowind"] = loadfx( "vfx/moments/iplane/vfx_iplane_smk_cabin_nowind" );
    level._effect["vfx_godray_jungle_anim_faded"] = loadfx( "vfx/ambient/lights/vfx_godray_jungle_anim_faded" );
    level._effect["vfx_helicrash_fireash_thick"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_fireash_thick" );
    level._effect["vfx_helicrash_boxburst"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_boxburst" );
    level._effect["vfx_helicrash_sparkrain"] = loadfx( "vfx/moments/iplane/vfx_iplane_sparkrain" );
    level._effect["vfx_helicrash_sparkrain"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_sparkrain" );
    level._effect["vfx_helicrash_wreckfire"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_wreckfire" );
    level._effect["vfx_helicrash_waterfire_small"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_waterfire_small" );
    level._effect["vfx_helicrash_waterfire"] = loadfx( "vfx/texture_examples/fire/vfx_helicrash_waterfire" );
    level._effect["vfx_helicrash_oilspill_straight"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_oilspill_straight" );
    level._effect["vfx_helicrash_waterfire"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_waterfire" );
    level._effect["vfx_helicrash_oilspill"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_oilspill" );
    level._effect["vfx_helicrash_rotorchugdirt_long"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorchugdirt_long" );
    level._effect["vfx_helicrash_godray"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_godray" );
    level._effect["vfx_helicrash_dwsh_watersurf"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_dwsh_watersurf" );
    level._effect["vfx_helicrash_downwash"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_downwash" );
    level._effect["vfx_helicrash_chunklandsplash"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_chunklandsplash" );
    level._effect["vfx_helicrash_smoke"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_smoke" );
    level._effect["vfx_helicrash_rotorchugwater"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorchugwater" );
    level._effect["vfx_helicrash_watersplashes"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_watersplashes" );
    level._effect["vfx_helicrash_rpg_explosion"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rpg_explosion" );
    level._effect["vfx_helicrash_helibodyfire"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_helibodyfire" );
    level._effect["vfx_helicrash_rotorchugdirt"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorchugdirt" );
    level._effect["vfx_helicrash_rotor_watersplash"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotor_watersplash" );
    level._effect["vfx_helicrash_ashnembers"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_ashnembers" );
    level._effect["vfx_jg_wfall_dripping"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_dripping" );
    level._effect["vfx_waterfall_fallingwater_xthin"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater_xthin" );
    level._effect["vfx_waterfall_fallingwater_start"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater_start" );
    level._effect["vfx_whitewater_rapid_foam_collide"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_foam_collide" );
    level._effect["vfx_whitewater_current_undersurf"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_current_undersurf" );
    level._effect["vfx_whitewater_rapid_foam_s_shade"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_foam_s_shade" );
    level._effect["vfx_whitewater_rapid_foam_xsmall"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_foam_xsmall" );
    level._effect["vfx_whitewater_rapid_foam_small"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_foam_small" );
    level._effect["vfx_whitewater_current_wide"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_current_wide" );
    level._effect["vfx_whitewater_current"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_current" );
    level._effect["vfx_waterfall_splash_stepped_small"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_stepped_small" );
    level._effect["vfx_jungle_mist_rising_funnel_up"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_mist_rising_funnel_up" );
    level._effect["vfx_jungle_mist_rising_dim"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_mist_rising_dim" );
    level._effect["vfx_jungle_forest_mist_slow"] = loadfx( "vfx/moments/jungle_ghost/vfx_jungle_forest_mist_slow" );
    level._effect["vfx_jungle_low_cloud_byhelicrash"] = loadfx( "vfx/moments/jungle_ghost/vfx_jungle_low_cloud_byhelicrash" );
    level._effect["vfx_crash_site_fallout"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fallout" );
    level._effect["vfx_crash_site_heliwash_nowind"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_heliwash_nowind" );
    level._effect["vfx_crash_site_fire_wind_big"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire_wind_big" );
    level._effect["vfx_crash_site_fire_upperdrift"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire_upperdrift" );
    level._effect["vfx_crash_site_heliwash"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_heliwash" );
    level._effect["vfx_crash_site_fire_small"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire_small" );
    level._effect["vfx_jg_wf_mist_lowthick_statlight"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wf_mist_lowthick_statlight" );
    level._effect["vfx_waterfall_splash_tight"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_tight" );
    level._effect["vfx_jg_stream_straight"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_stream_straight" );
    level._effect["vfx_jg_wfall_underw_surfripple"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_underw_surfripple" );
    level._effect["vfx_jg_wfall_underw_inispl"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_underw_inispl" );
    level._effect["vfx_jg_wfall_underw_bubbles"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_underw_bubbles" );
    level._effect["vfx_jg_wfall_underw_bubblestosurf"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_underw_bubbtosurf" );
    level._effect["vfx_jg_leafs_burst"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_leafs_burst" );
    level._effect["vfx_jg_wfall_microrain_hzon"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_wfall_microrain_hzon" );
    level._effect["vfx_jg_lastfall_mist_rise"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_lastfall_mist_rise" );
    level._effect["vfx_jungle_waterfall_riserain"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_riserain" );
    level._effect["vfx_whitewater_rapid_foam"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_foam" );
    level._effect["vfx_whitewater_rapid_splash2"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_splash2" );
    level._effect["vfx_whitewater_rapid_splash"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_splash" );
    level._effect["vfx_whitewater_rapid_narrow"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid_narrow" );
    level._effect["vfx_whitewater_rapid"] = loadfx( "vfx/moments/jungle_ghost/vfx_whitewater_rapid" );
    level._effect["vfx_waterfall_rainbow"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_rainbow" );
    level._effect["vfx_jungle_waterfall_microrain"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_microrain" );
    level._effect["vfx_jungle_pollen_coverage"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen_coverage" );
    level._effect["vfx_jungle_grass_mist_slow"] = loadfx( "vfx/moments/jungle_ghost/vfx_jungle_grass_mist_slow" );
    level._effect["vfx_jungle_ground_mist_slow"] = loadfx( "vfx/moments/jungle_ghost/vfx_jungle_ground_mist_slow" );
    level._effect["vfx_jungle_low_cloud"] = loadfx( "vfx/moments/jungle_ghost/vfx_jungle_low_cloud" );
    level._effect["vfx_wf_tall_mist"] = loadfx( "vfx/moments/jungle_ghost/vfx_wf_tall_mist" );
    level._effect["vfx_wf_tall_landsplash"] = loadfx( "vfx/moments/jungle_ghost/vfx_wf_tall_landsplash" );
    level._effect["vfx_wf_fallwater_tall"] = loadfx( "vfx/moments/jungle_ghost/vfx_wf_fallwater_tall" );
    level._effect["vfx_waterfall_fallingwater_thin2"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater_thin2" );
    level._effect["vfx_waterfall_splash_small"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_small" );
    level._effect["vfx_waterfall_splash_medium"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_medium" );
    level._effect["vfx_jungle_waterfall_mist_pushing"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_mist_pushing" );
    level._effect["vfx_jungle_waterfall_rainmist_light"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_rainmist_light" );
    level._effect["vfx_jungle_waterfall_mist_turb"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_mist_turb" );
    level._effect["vfx_waterfall_fallingwater_smooth"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater_smooth" );
    level._effect["vfx_jungle_waterfall_mist_lowthick"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_mist_lowthick" );
    level._effect["vfx_waterfall_fallingwater_thin"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater_thin" );
    level._effect["vfx_waterfall_splash_stepped"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_stepped" );
    level._effect["vfx_waterfall_splash_violent"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_violent" );
    level._effect["vfx_waterfall_fallingwater"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_fallingwater" );
    level._effect["vfx_jungle_waterfall_mist"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_waterfall_mist" );
    level._effect["vfx_waterfall_splash_wide"] = loadfx( "vfx/moments/jungle_ghost/vfx_waterfall_splash_wide" );
    level._effect["vfx_jungle_insects_norm"] = loadfx( "vfx/ambient/animals/vfx_jungle_insects_norm" );
    level._effect["vfx_jungle_leaves_falling"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_leaves_falling" );
    level._effect["vfx_jungle_pollen_highup"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen_highup" );
    level._effect["vfx_jungle_mist_rising"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_mist_rising" );
    level._effect["vfx_godray_jungle_anim"] = loadfx( "vfx/ambient/lights/vfx_godray_jungle_anim" );
    level._effect["vfx_atmos_bokeh_jungle"] = loadfx( "vfx/ambient/atmospheric/vfx_atmos_bokeh_jungle" );
    level._effect["vfx_dandelion_dense"] = loadfx( "vfx/ambient/atmospheric/vfx_dandelion_dense" );
    level._effect["vfx_jungle_pollen_godray"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen_godray" );
    level._effect["vfx_jungle_insects_dense"] = loadfx( "vfx/ambient/animals/vfx_jungle_insects_dense" );
    level._effect["vfx_inthetrees_clothsmoldr"] = loadfx( "vfx/moments/jungle_ghost/vfx_inthetrees_clothsmoldr" );
    level._effect["vfx_inthetrees_isolationfire"] = loadfx( "vfx/moments/jungle_ghost/vfx_inthetrees_isolationfire" );
    level._effect["vfx_inthetrees_metalchunk"] = loadfx( "vfx/moments/jungle_ghost/vfx_inthetrees_metalchunk" );
    level._effect["vfx_inthetrees_chair"] = loadfx( "vfx/moments/jungle_ghost/vfx_inthetrees_chair" );
    level._effect["vfx_debris_fire"] = loadfx( "vfx/ambient/fire/vfx_debris_fire" );
    level._effect["rain_drop_impact_puddle_splash"] = loadfx( "vfx/moments/jungle_ghost/rain_drop_impact_puddle_splash" );
    level._effect["vfx_helicrash_ashnembers"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_ashnembers" );
    level._effect["vfx_helicrash_helibodyfire"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_helibodyfire" );
    level._effect["vfx_helicrash_rotor_watersplash"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotor_watersplash" );
    level._effect["vfx_helicrash_rotorchugdirt"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorchugdirt" );
    level._effect["vfx_helicrash_rotorchugleaf"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorchugleaf" );
    level._effect["vfx_helicrash_rotorspinsmoke"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rotorspinsmoke" );
    level._effect["vfx_helicrash_rpg_explosion"] = loadfx( "vfx/moments/jungle_ghost/vfx_helicrash_rpg_explosion" );
    maps\_utility::set_console_status();

    if ( maps\_utility::is_gen4() )
    {
        setsaveddvar( "fx_alphathreshold", 8 );
        setsaveddvar( "r_thermalColorOffset", 0.26 );
    }
    else
        setsaveddvar( "fx_alphathreshold", 10 );

    if ( !getdvarint( "r_reflectionProbeGenerate" ) )
    {
        maps\createfx\jungle_ghosts_fx::main();
        maps\createfx\jungle_ghosts_sound::main();
    }

    level_fx();
    thread intro_birds();
    thread field_birds();
}

level_fx()
{
    level._effect["smoke_geotrail_icbm"] = loadfx( "vfx/moments/jungle_ghost/vfx_icbm_trail" );
    level._effect["icbm_launch"] = loadfx( "vfx/moments/jungle_ghost/vfx_icbm_base" );
    level._effect["vfx_gnat_swarm"] = loadfx( "vfx/ambient/animals/vfx_gnat_swarm" );
    level._effect["vfx_blurred_insects"] = loadfx( "vfx/ambient/animals/vfx_blurred_insects" );
    level._effect["vfx_blurred_insects_bidirectional"] = loadfx( "vfx/ambient/animals/vfx_blurred_insects_bidirectional" );
    level._effect["vfx_insect_volume"] = loadfx( "vfx/ambient/animals/vfx_insect_volume" );
    level._effect["vfx_jungle_pollen"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen" );
    level._effect["vfx_jungle_pollen_wide"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen_wide" );
    level._effect["vfx_jungle_pollen_small"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_pollen_small" );
    level._effect["vfx_leaves_anim"] = loadfx( "vfx/ambient/atmospheric/vfx_leaves_anim" );
    level._effect["vfx_leaves_falling"] = loadfx( "vfx/ambient/atmospheric/vfx_leaves_falling" );
    level._effect["vfx_leaf_burst_runner"] = loadfx( "vfx/ambient/atmospheric/vfx_leaf_burst_runner" );
    level._effect["vfx_dandelion"] = loadfx( "vfx/ambient/atmospheric/vfx_dandelion" );
    level._effect["vfx_jungle_mist"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_mist" );
    level._effect["vfx_jungle_mist_faint"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_mist_faint" );
    level._effect["vfx_jungle_dust"] = loadfx( "vfx/ambient/atmospheric/vfx_jungle_dust" );
    level._effect["vfx_bees"] = loadfx( "vfx/ambient/animals/vfx_bees" );
    level._effect["vfx_rainbow"] = loadfx( "vfx/ambient/lights/vfx_rainbow" );
    level._effect["flesh_hit_large"] = loadfx( "vfx/gameplay/blood/flesh_hit_large" );
    level._effect["vfx_falling_through_tree"] = loadfx( "vfx/moments/jungle_ghost/vfx_falling_through_tree" );
    level._effect["vfx_falling_pollen"] = loadfx( "vfx/moments/jungle_ghost/vfx_falling_pollen" );
    level._effect["vfx_drowning_splash"] = loadfx( "vfx/moments/jungle_ghost/vfx_drowning_splash" );
    level._effect["mp_pb_godray_thin"] = loadfx( "fx/maps/mp_prisonbreak/mp_pb_godray_thin" );
    level._effect["mp_pb_godraylarge"] = loadfx( "fx/maps/mp_prisonbreak/mp_pb_godraylarge" );
    level._effect["godray_forest"] = loadfx( "fx/lights/godray_forest" );
    level._effect["godray_forest_thin"] = loadfx( "fx/lights/godray_forest_thin" );
    level._effect["rain_light"] = loadfx( "fx/weather/rain_light_castle" );
    level._effect["rain_heavy"] = loadfx( "fx/weather/rain_heavy_mist" );
    level._effect["lightning"] = loadfx( "fx/weather/lightning" );
    level._effect["drowned_body_ripple"] = loadfx( "vfx/moments/jungle_ghost/drowned_body_ripple" );
    level._effect["drowned_dunk_in"] = loadfx( "vfx/moments/jungle_ghost/drowned_dunk_in" );
    level._effect["drowned_dunk_out"] = loadfx( "vfx/moments/jungle_ghost/drowned_dunk_out" );
    level._effect["drowned_lift_out"] = loadfx( "vfx/moments/jungle_ghost/drowned_lift_out" );
    level._effect["drowned_limb_push_splash"] = loadfx( "vfx/moments/jungle_ghost/drowned_limb_push_splash" );
    level._effect["drowned_push_splash"] = loadfx( "vfx/moments/jungle_ghost/drowned_push_splash" );
    level._effect["drowned_splash_hand_in"] = loadfx( "vfx/moments/jungle_ghost/drowned_splash_hand_in" );
    level._effect["drowned_splash_hand_out"] = loadfx( "vfx/moments/jungle_ghost/drowned_splash_hand_out" );
    level._effect["drowned_underwater_loop"] = loadfx( "vfx/moments/jungle_ghost/drowned_underwater_loop" );
    level._effect["drowned_waterboarding_loop"] = loadfx( "vfx/moments/jungle_ghost/drowned_waterboarding_loop" );
    level._effect["heli_spotlight"] = loadfx( "fx/misc/docks_heli_spotlight_model" );
    level._effect["clouds_predator"] = loadfx( "fx/misc/clouds_predator" );
    level._effect["birds"] = loadfx( "fx/misc/bird_takeoff_pm" );
    level._effect["water_stop"] = loadfx( "fx/water/player_water_wake" );
    level._effect["water_movement"] = loadfx( "fx/maps/warlord/warlord_water_stop" );
    level._effect["waterfall_riverbed_sightblocker"] = loadfx( "fx/water/waterfall_riverbed_sightblocker" );
    level._effect["waterfall_fill"] = loadfx( "fx/water/waterfall_fill" );
    level._effect["waterfall_fill_dark"] = loadfx( "fx/water/waterfall_fill_dark" );
    level._effect["waterfall_fill_wide"] = loadfx( "fx/water/waterfall_fill_wide" );
    level._effect["waterfall_fill_wide_dark"] = loadfx( "fx/water/waterfall_fill_wide_dark" );
    level._effect["waterfall_splash_thin"] = loadfx( "fx/water/waterfall_splash_thin" );
    level._effect["waterfall_splash_thin_dark"] = loadfx( "fx/water/waterfall_splash_thin_dark" );
    level._effect["waterfall_splash_wide"] = loadfx( "fx/water/waterfall_splash_wide" );
    level._effect["waterfall_splash_giant"] = loadfx( "fx/water/waterfall_splash_giant" );
    level._effect["waterfall_mist"] = loadfx( "fx/water/waterfall_mist" );
    level._effect["waterfall_mist_cheap"] = loadfx( "fx/water/waterfall_mist_cheap" );
    level._effect["waterfall_mist_cheap_faint"] = loadfx( "fx/water/waterfall_mist_cheap_faint" );
    level._effect["waterfall_mist_ground_drift"] = loadfx( "fx/water/waterfall_mist_ground_drift" );
    level._effect["waterfall_mist_crest"] = loadfx( "fx/water/waterfall_mist_crest" );
    level._effect["water_splash_cliffdive"] = loadfx( "fx/impacts/water_splash_cliffdive" );
    level._effect["waterfall_splash_runoff_base"] = loadfx( "fx/water/waterfall_splash_runoff_base" );
    level._effect["mist_drifting_groundfog_slow"] = loadfx( "fx/smoke/mist_drifting_groundfog_slow" );
    level._effect["mist_drifting_groundfog_slow_tight"] = loadfx( "fx/smoke/mist_drifting_groundfog_slow_tight" );
    level._effect["water_movement"] = loadfx( "fx/impacts/footstep_water" );
    level._effect["after_math_embers"] = loadfx( "fx/fire/after_math_embers" );
    level._effect["vfx_tree_fire_base"] = loadfx( "vfx/ambient/fire/wood/vfx_tree_fire_base" );
    level._effect["embers_trees"] = loadfx( "fx/fire/embers_trees" );
    level._effect["car_fire_mp"] = loadfx( "fx/fire/car_fire_mp" );
    level._effect["fire_falling_runner"] = loadfx( "fx/fire/fire_falling_runner" );
    level._effect["tree_fire_hamburg"] = loadfx( "fx/fire/tree_fire_hamburg" );
    level._effect["firelp_cheap_mp"] = loadfx( "fx/fire/firelp_cheap_mp" );
    level._effect["fire_embers_slowfall"] = loadfx( "fx/fire/fire_embers_slowfall" );
    level._effect["vfx_light_ash"] = loadfx( "vfx/ambient/atmospheric/vfx_light_ash" );
    level._effect["embers_prague"] = loadfx( "fx/weather/embers_prague" );
    level._effect["vfx_ground_steam"] = loadfx( "vfx/ambient/weather/sand/vfx_ground_steam" );
    level._effect["vfx_dmg_heli_sparks_runner"] = loadfx( "vfx/moments/las_vegas/vfx_dmg_heli_sparks_runner" );
    level._effect["vfx_crash_site_fire"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire" );
    level._effect["vfx_crash_site_fire_ps3"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire_ps3" );
    level._effect["vfx_fire_wall_lg"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_lg" );
    level._effect["vfx_engine_steam"] = loadfx( "vfx/moments/jungle_ghost/vfx_engine_steam" );
    level._effect["vfx_crash_site_fire_wind"] = loadfx( "vfx/moments/jungle_ghost/vfx_crash_site_fire_wind" );
    level._effect["vfx_ground_steam_wind"] = loadfx( "vfx/ambient/weather/sand/vfx_ground_steam_wind" );
    level._effect["tree_explosion"] = loadfx( "fx/explosions/tree_trunk_explosion" );
    level._effect["tree_dust"] = loadfx( "fx/dust/tree_fall_impact" );
    level._effect["tree_dust_small"] = loadfx( "fx/dust/tree_fall_impact_short" );
    level._effect["splash_side"] = loadfx( "fx/water/splash_lg_ch" );
    level._effect["splash_large"] = loadfx( "fx/water/zodiac_splash_bounce_large" );
    level._effect["splash_small"] = loadfx( "fx/water/zodiac_splash_bounce_small" );
    level._effect["splash_turn"] = loadfx( "fx/water/zodiac_splash_turn_hard" );
    level._effect["wake_large"] = loadfx( "fx/treadfx/dvora_wake_nyharbor" );
    level._effect["rock_impact_large"] = loadfx( "fx/explosions/rock_impact_large" );
    level._effect["water_bubbles_random_ch1"] = loadfx( "fx/water/water_bubbles_random_ch1" );
    level._effect["underwater_bullet"] = loadfx( "fx/water/underwater_bullet_trail1" );
    level._effect["jungle_fire"] = loadfx( "fx/fire/tank_fire_hatch" );
    level._effect["cliff_impact"] = loadfx( "fx/explosions/ceiling_rock_break_explosion" );
    level._effect["sniper_glint"] = loadfx( "fx/misc/scope_glint" );
    level._effect["slide_npc"] = loadfx( "vfx/moments/jungle_ghost/vfx_mudslide_npc" );
    level._effect["slide_player"] = loadfx( "vfx/moments/jungle_ghost/vfx_mudslide_first_person" );
    level._effect["slide_screenspace"] = loadfx( "vfx/moments/jungle_ghost/vfx_jg_mudslide_screenspace" );
    level._effect["muzzle_flash_pistol"] = loadfx( "fx/muzzleflashes/pistolflash" );
    level._effect["muzzle_flash_rifle"] = loadfx( "fx/muzzleflashes/rifleflash" );
    level._effect["rpg_trail"] = loadfx( "fx/smoke/smoke_geotrail_rpg" );
    level._effect["rpg_explode"] = loadfx( "fx/explosions/rpg_wall_impact" );
    level._effect["flying_face_fx"] = loadfx( "fx/weather/flying_particulates" );
    level._effect["splash_down"] = loadfx( "vfx/gameplay/explosions/weap/gre/vfx_exp_gre_water" );
}

intro_birds()
{
    level waittill( "load_finished" );
    var_0 = getent( "perch_trees_opening", "target" );
    var_1 = var_0 maps\interactive_models\_birds::birds_savetostruct();
    var_0 = getent( "perch_ground_first_encounter", "target" );
    var_2 = var_0 maps\interactive_models\_birds::birds_savetostruct();
    level.player waittill( "start_falling_anim" );
    wait 1;
    var_1 maps\interactive_models\_birds::birds_loadfromstruct();
    wait 10;
    var_2 maps\interactive_models\_birds::birds_loadfromstruct();
}

field_birds()
{
    level waittill( "load_finished" );
    var_0 = [];

    foreach ( var_2 in [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ] )
    {
        var_3 = "perch_tallgrass_" + var_2;
        var_4 = getent( var_3, "target" );

        if ( isdefined( var_4 ) )
            var_0[var_2] = var_4 maps\interactive_models\_birds::birds_savetostruct();
    }

    common_scripts\utility::flag_wait( "field_entrance" );

    foreach ( var_7 in var_0 )
        var_7 maps\interactive_models\_birds::birds_loadfromstruct();
}
