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

main()
{
    player_anims();
    generic_human_anims();
    script_model_anims();
    vehicle_anims();
}

#using_animtree("player");

player_anims()
{
    level.scr_animtree["player_rig"] = #animtree;
    level.scr_model["player_rig"] = "viewhands_player_gs_stealth";
    level.scr_anim["player_rig"]["player_sway_static"] = %sw_player_sway_static;
    level.scr_anim["player_rig"]["player_wind_static"] = %sw_player_wind_static;
    level.scr_anim["player_rig"]["player_nosway_static"] = %sw_player_nosway_static;
    maps\_anim::addnotetrack_notify( "player_rig", "player_hit_car", "player_hit_car" );
    maps\_anim::addnotetrack_notify( "player_rig", "player_end_vignette", "notify_player_end_vignette" );
    level.scr_anim["player_rig"]["death_fall"] = %sw_player_fallofftrain;
    level.scr_anim["player_rig"]["hangar_intro"] = %sw_intro_player;
    maps\_anim::addnotetrack_notify( "player_rig", "rumble_medium", "rumble_medium" );
    level.scr_anim["player_rig"]["bridge_push_player"] = %sw_bridge_push_player;
    maps\_anim::addnotetrack_notify( "player_rig", "draw_weapon", "notify_draw_weapon" );
    level.scr_anim["player_rig"]["loco_breach"] = %sw_enginecar_breach_player;
    level.scr_anim["player_rig"]["loco_breach_blast"] = %sw_enginecar_breach_blast_player;
    level.scr_anim["player_rig"]["loco_slide"] = %sw_enginecar_slide_player;
    level.scr_anim["player_rig"]["loco_blasthit"] = %sw_enginecar_blasthit_player;
    level.scr_animtree["player_rig_struggle"] = #animtree;
    level.scr_model["player_rig_struggle"] = "player_rorke_arm_struggle_world";
    level.scr_anim["player_rig_struggle"]["loco_standoff"] = %sw_enginecar_standoff_player;
    maps\_anim::addnotetrack_customfunction( "player_rig_struggle", "in_the_face", ::notetrack_in_the_face );
    maps\_anim::addnotetrack_customfunction( "player_rig", "opfor_start", ::loco_breach_opfor_start );
    maps\_anim::addnotetrack_notify( "player_rig", "slomo_start", "notify_loco_breach_slowmo_start", "loco_breach" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "smokin_mirrors", ::loco_breach_smokin_mirrors );
    maps\_anim::addnotetrack_notify( "player_rig", "merge_to_anim", "notify_merge_to_anim" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "player_view_lerp_down", ::loco_slide_player_view_lerp_down );
    maps\_anim::addnotetrack_customfunction( "player_rig", "player_view_lerp_up", ::loco_slide_player_view_lerp_up );
    maps\_anim::addnotetrack_notify( "player_rig", "start_slowmo", "notify_loco_breach_slowmo_start", "loco_slide" );
    maps\_anim::addnotetrack_notify( "player_rig", "player_raise_weapon", "notify_player_raise_weapon" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "player_drop_weapon", ::loco_gunhold_player_drop_weapon, "loco_slide" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "end_slomo", ::loco_gunhold_end_slowmo, "loco_slide" );
    maps\_anim::addnotetrack_notify( "player_rig_struggle", "struggle", "notify_loco_breach_struggle" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "blackscreen", maps\skyway_loco::blackscreen );
    maps\_anim::addnotetrack_customfunction( "player_rig", "glass_rise", ::loco_falling_glass, "loco_blasthit" );
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_forward_parent"] = %bodyshield_accelerate_front_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_back_parent"] = %bodyshield_accelerate_back_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_right_parent"] = %bodyshield_accelerate_right_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_left_parent"] = %bodyshield_accelerate_left_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_forward"] = %sw_ending_bodyshield_accelerate_front_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_back"] = %sw_ending_bodyshield_accelerate_back_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_right"] = %sw_ending_bodyshield_accelerate_right_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_accelerate_left"] = %sw_ending_bodyshield_accelerate_left_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_forward_parent"] = %bodyshield_forward_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_back_parent"] = %bodyshield_back_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_right_parent"] = %bodyshield_right_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_left_parent"] = %bodyshield_left_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_forward"] = %sw_ending_bodyshield_forward_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_back"] = %sw_ending_bodyshield_back_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_right"] = %sw_ending_bodyshield_right_player;
    level.scr_anim["player_rig_struggle"]["loco_bodyshield_left"] = %sw_ending_bodyshield_left_player;
    maps\_anim::addnotetrack_notify( "player_rig", "door_enemies", "notify_loco_breach_door_enemies" );
    maps\_anim::addnotetrack_notify( "player_rig", "door_explode", "notify_loco_breach_door_explode" );
    maps\_anim::addnotetrack_customfunction( "player_rig", "kick_door", ::notetrack_player_kick_door );
    maps\_anim::addnotetrack_customfunction( "player_rig", "player_blast", ::notetrack_player_blast );
    maps\_anim::addnotetrack_customfunction( "player_rig", "headbutt", ::notetrack_headbutt );
    maps\_anim::addnotetrack_customfunction( "player_rig", "hit_door", ::notetrack_hit_door );
    level.scr_anim["player_rig"]["swimout"] = %sw_swimout_init_player;
    level.scr_animtree["player_rig_magnum"] = #animtree;
    level.scr_model["player_rig_magnum"] = "sw_viewhands_magnum_combine";
    level.scr_anim["player_rig"]["pt2_crash"] = %sw_end_pt2_start_player;
    maps\_anim::addnotetrack_notify( "player_rig", "fade_in", "notify_fade_in" );
    maps\_anim::addnotetrack_notify( "player_rig", "player_hurt", "notify_player_hurt" );
    level.scr_anim["player_rig_magnum"]["pt2_crawl"] = %sw_end_pt2_crawl_player;
    level.scr_anim["player_rig_magnum"]["pt2_draw"] = %sw_end_pt2_draw_player;
    level.scr_anim["player_rig_magnum"]["pt2_aim_loop"][0] = %sw_end_pt2_aim_player;
    level.scr_anim["player_rig_magnum"]["pt2_aim_loop_cocked"][0] = %sw_end_pt2_aim_player_v2;
    level.scr_anim["player_rig_magnum"]["pt2_fire_empty"] = %sw_end_pt2_gun_fire_blank;
    level.scr_anim["player_rig"]["pt2_speedloader"] = %sw_end_pt2_speedloader_player;
    level.scr_anim["player_rig"]["pt2_speedloader2"] = %sw_end_pt2_speedloader_player2;
    level.scr_goaltime["player_rig"]["pt2_speedloader2"] = 0.15;
    level.scr_anim["player_rig_magnum"]["pt2_load_gun"] = %sw_end_pt2_loadgun_player;
    level.scr_anim["player_rig_magnum"]["pt2_fire"] = %sw_end_pt2_kill_vargas_player;
    level.scr_anim["player_rig_magnum"]["pt2_fire_hit"] = %sw_end_pt2_kill_vargas_player_success;
    level.scr_anim["player_rig_magnum"]["pt2_fire_win"] = %sw_end_pt2_kill_win_player;
    level.scr_anim["player_rig"]["pt2_help"] = %sw_end_pt2_help_hesh_player;
    level.scr_anim["player_rig_magnum"]["pt2_dry_fire_aim"] = %sw_end_pt2_player_proxy_01;
    level.scr_anim["player_rig_magnum"]["pt2_wet_fire_aim"] = %sw_end_pt2_player_proxy_02;
    level.scr_anim["player_rig_magnum"]["pt2_ads_up"] = %sw_end_pt2_gun_ads_up;
    level.scr_anim["player_rig_magnum"]["pt2_ads_down"] = %sw_end_pt2_gun_ads_down;
    level.scr_anim["player_rig_magnum"]["pt2_ads_fire"] = %sw_end_pt2_gun_ads_fire;
    level.scr_anim["player_rig_magnum"]["pt2_ads_fire_empty"] = %sw_end_pt2_gun_ads_fire_blank;
    level.scr_anim["player_rig_magnum"]["pt2_ads_aim_loop"][0] = %sw_end_pt2_gun_ads_idle;
    level.scr_anim["player_rig"]["beach_pt1_idle"][0] = %sw_beach_player_pt1_idle;
    level.scr_anim["player_rig"]["beach_pt2"] = %sw_beach_player_pt2;
    level.scr_goaltime["player_rig"]["beach_pt2"] = 0.7;
    level.scr_anim["player_rig"]["beach_pt3"] = %sw_beach_player_pt3;
    level.scr_anim["player_rig"]["pit_of_despair"] = %sw_player_pit_of_despair;
    maps\_anim::addnotetrack_notify( "player_rig", "brostache", "notify_beach_drag_control_start" );
    maps\_anim::addnotetrack_notify( "player_rig", "camera_lerp", "notify_beach_cam_lerp" );
    maps\_anim::addnotetrack_notify( "player_rig", "face_kick", "notify_beach_face_kick" );
    maps\_anim::addnotetrack_notify( "player_rig", "knife_pullout", "notify_beach_knife_grab" );
    maps\_anim::addnotetrack_notify( "player_rig", "arm_break", "notify_beach_arm_break" );
    maps\_anim::addnotetrack_notify( "player_rig", "face_hit", "notify_beach_face_hit" );
}

notetrack_test( var_0 )
{
    iprintln( "test" );
}

#using_animtree("generic_human");

generic_human_anims()
{
    level.scr_anim["generic"]["sw_op_sat_cover_bl"] = %sw_op_sat_cover_bl;
    level.scr_anim["generic"]["sw_op_sat_cover_br"] = %sw_op_sat_cover_br;
    level.scr_anim["generic"]["sw_op_sat_cover_r"] = %sw_op_sat_cover_r;
    level.scr_anim["generic"]["sw_op_sat_cover_l"] = %sw_op_sat_cover_l;
    level.scr_anim["generic"]["sw_op_satledge1"] = %sw_op_satledge1;
    level.scr_anim["generic"]["sw_op_satledge2"] = %sw_op_satledge2;
    level.scr_anim["generic"]["sw_op_stand_rail_front_land"] = %sw_op_stand_rail_front_land;
    level.scr_anim["generic"]["sw_op_crouch_rail_front_land"] = %sw_op_crouch_rail_front_land;
    level.scr_anim["generic"]["sw_op_crouch_rail_front"] = %sw_op_crouch_rail_front;
    level.scr_anim["generic"]["sw_op_crouch_rail_left"] = %sw_op_crouch_rail_left;
    level.scr_anim["generic"]["sw_op_crouch_rail_right"] = %sw_op_crouch_rail_right;
    level.scr_anim["generic"]["sw_op_stand_rail_back"] = %sw_op_stand_rail_back;
    level.scr_anim["generic"]["sw_op_stand_rail_front"] = %sw_op_stand_rail_front;
    level.scr_anim["generic"]["sw_op_stand_rail_left"] = %sw_op_stand_rail_left;
    level.scr_anim["generic"]["sw_op_stand_rail_right"] = %sw_op_stand_rail_right;
    level.scr_anim["ally1"]["hangar_intro"] = %sw_intro_hesh;
    level.scr_anim["ally1"]["hangar_intro_idle"][0] = %sw_intro_hesh_idle;
    level.scr_anim["ally1"]["hangar_intro_exit"] = %sw_intro_hesh_exit;
    level.scr_anim["boss"]["hangar_intro"] = %sw_intro_rorke;
    level.scr_anim["enemy_hangar_pip"]["hangar_intro"] = %sw_intro_security;
    maps\_anim::addnotetrack_notify( "ally1", "punch_monitor", "nt_punch_monitor" );
    maps\_anim::addnotetrack_notify( "ally1", "open_door", "nt_open_door" );
    level.scr_anim["ally1"]["noticket"] = %sw_rail_throw_short_hesh;
    level.scr_anim["noticket_enemy"]["noticket"] = %sw_rail_throw_short_enemy;
    level.scr_anim["ally1"]["sat_rog_hit"] = %sw_hesh_stationary_hit;
    level.scr_anim["generic"]["sat2_enemy_rog_run"] = %sw_sat2_enemy_reaction_01;
    level.scr_anim["generic"]["sat2_enemy_rog_surprise"] = %sw_sat2_enemy_reaction_02;
    level.scr_anim["generic"]["sat2_enemy_rog_stumble"] = %sw_hesh_stationary_hit;
    level.scr_anim["generic"]["sat1_enemy_rog_fall"] = %sw_op_overrail;
    maps\_anim::addnotetrack_notify( "generic", "rail", "notify_sat1_rog_run_fall" );
    maps\_anim::addnotetrack_notify( "generic", "delete", "notify_sat1_rog_run_delete" );
    level.scr_anim["ally1"]["bridge_push"] = %sw_bridge_push_hesh;
    level.scr_anim["ally1"]["rt_train_impact"] = %sw_traversal_rooftop_rodhit;
    level.scr_anim["generic"]["helo_pilot_death"][0] = %aas_72x_pilot_death_1;
    level.scr_anim["generic"]["helo_pilot_death"][1] = %aas_72x_pilot_death_2;
    level.scr_anim["generic"]["helo_shooter_death"][0] = %sw_aas_72x_death2;
    level.scr_anim["generic"]["helo_shooter_death"][1] = %sw_aas_72x_death2;
    level.scr_anim["generic"]["helo_shooter_death"][2] = %sw_aas_72x_death2;
    level.scr_anim["generic"]["helo_shooter_death"][3] = %sw_aas_72x_death2;
    level.scr_anim["generic"]["helo_shooter_death"][4] = %sw_aas_72x_death2;
    level.scr_anim["generic"]["helo_shooter_death"][5] = %sw_aas_72x_death2;
    level.scr_anim["ally1"]["rt_helo_crash"] = %sw_hesh_choppercrash;
    level.scr_anim["sw_door_r_opfor"]["sw_entry_u"] = %sw_rooftop_ladder_infils_dr_s;
    level.scr_anim["sw_door_l_opfor"]["sw_entry_u"] = %sw_rooftop_ladder_infils_dl_s;
    level.scr_anim["sw_opfor_grapple_1"]["sw_grapple_up"] = %sw_opfor_grapple_up_1;
    level.scr_anim["sw_opfor_grapple_1"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple_2"]["sw_grapple_up"] = %sw_opfor_grapple_up_2;
    level.scr_anim["sw_opfor_grapple_2"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple_3"]["sw_grapple_up"] = %sw_opfor_grapple_up_3;
    level.scr_anim["sw_opfor_grapple_3"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple_4"]["sw_grapple_up"] = %sw_opfor_grapple_up_4;
    level.scr_anim["sw_opfor_grapple_4"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple_5"]["sw_grapple_up"] = %sw_opfor_grapple_up_5;
    level.scr_anim["sw_opfor_grapple_5"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple_6"]["sw_grapple_up"] = %sw_opfor_grapple_up_6;
    level.scr_anim["sw_opfor_grapple_6"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["sw_opfor_grapple"]["sw_grapple_up_death"] = %sw_opfor_grapple_up_death_1;
    level.scr_anim["ally1"]["loco_breach"] = %sw_enginecar_breach_hesh;
    level.scr_anim["opfor1"]["loco_breach"] = %sw_enginecar_breach_opfor1;
    level.scr_anim["opfor2"]["loco_breach"] = %sw_enginecar_breach_opfor2;
    level.scr_anim["opfor3"]["loco_breach"] = %sw_enginecar_breach_opfor3;
    maps\_anim::addnotetrack_notify( "opfor1", "player_can_die", "notify_player_can_die", "loco_breach" );
    maps\_anim::addnotetrack_notify( "opfor1", "fire", "notify_player_death_via_notetrack" );
    maps\_anim::addnotetrack_notify( "opfor3", "slomo_end", "notify_loco_breach_slowmo_end" );
    level.scr_anim["opfor1"]["loco_breach_death"] = %sw_enginecar_breach_death_opfor1;
    level.scr_anim["opfor2"]["loco_breach_death"] = %sw_enginecar_breach_death_opfor2;
    level.scr_anim["opfor3"]["loco_breach_death"] = %sw_enginecar_breach_death_opfor3;
    level.scr_anim["opfor4"]["loco_breach_death"] = %sw_enginecar_breach_death_opfor1;
    maps\_anim::addnotetrack_notify( "opfor2", "knife_show", "notify_opfor_knife_show", "loco_breach" );
    maps\_anim::addnotetrack_customfunction( "opfor2", "player_stab", ::breach_enemy_player_stab, "loco_breach" );
    maps\_anim::addnotetrack_flag( "opfor3", "fire_rpg", "flag_player_failed_breach", "loco_breach" );
    maps\_anim::addnotetrack_notify( "opfor3", "fire_rpg", "notify_fire_rpg", "loco_breach_death" );
    level.scr_animtree["player_legs"] = #animtree;
    level.scr_model["player_legs"] = "body_rangers_bdu_assault_a";
    level.scr_anim["player_legs"]["loco_breach"] = %sw_enginecar_breach_playerlegs;
    level.scr_anim["ally1"]["loco_slide"] = %sw_enginecar_slide_hesh;
    level.scr_anim["opfor1"]["loco_slide"] = %sw_enginecar_slide_opfor1;
    level.scr_anim["opfor2"]["loco_slide"] = %sw_enginecar_slide_opfor2;
    level.scr_anim["opfor3"]["loco_slide"] = %sw_enginecar_slide_opfor3;
    level.scr_anim["opfor4"]["loco_slide"] = %sw_enginecar_slide_opfor4;
    level.scr_anim["opfor5"]["loco_slide"] = %sw_enginecar_slide_opfor5;
    level.scr_anim["opfor6"]["loco_slide"] = %sw_enginecar_slide_opfor6;
    level.scr_anim["player_legs"]["loco_slide"] = %sw_enginecar_slide_playerlegs;
    level.scr_anim["boss"]["loco_slide"] = %sw_enginecar_slide_rorke;
    maps\_anim::addnotetrack_notify( "boss", "break_glass", "notify_break_cockpit_glass", "loco_slide" );
    level.scr_anim["opfor5"]["loco_gunhold_death"] = %sw_enginecar_gunhold_death_opfor5;
    level.scr_anim["opfor6"]["loco_gunhold_death"] = %sw_enginecar_gunhold_death_opfor6;
    level.scr_anim["ally1"]["loco_standoff"] = %sw_enginecar_standoff_hesh;
    level.scr_anim["boss"]["loco_standoff"] = %sw_enginecar_standoff_vargas;
    level.scr_anim["opfor4"]["loco_standoff"] = %sw_enginecar_standoff_opfor4;
    maps\_anim::addnotetrack_notify( "ally1", "send_rog", "notify_call_in_final_rog", "loco_standoff" );
    level.scr_anim["ally1"]["loco_blasthit"] = %sw_enginecar_blasthit_hesh;
    level.scr_anim["boss"]["loco_blasthit"] = %sw_enginecar_blasthit_vargas;
    level.scr_anim["ally1"]["pt2_crash"] = %sw_end_pt2_start_hesch;
    level.scr_anim["boss"]["pt2_crash"] = %sw_end_pt2_start_vargas;
    maps\_anim::addnotetrack_notify( "boss", "glass_crack_01", "glass_crack_01" );
    level.scr_anim["opfor1"]["pt2_crash"] = %sw_end_pt2_start_dead_01;
    level.scr_anim["opfor2"]["pt2_crash"] = %sw_end_pt2_start_dead_02;
    level.scr_anim["opfor1"]["pt2_crash_loop"][0] = %sw_end_pt2_loop_dead_01;
    level.scr_anim["opfor2"]["pt2_crash_loop"][0] = %sw_end_pt2_loop_dead_02;
    level.scr_anim["ally1"]["pt2_crawl"] = %sw_end_pt2_crawl_hesch;
    level.scr_anim["boss"]["pt2_crawl"] = %sw_end_pt2_crawl_vargas;
    maps\_anim::addnotetrack_notify( "boss", "grab_gun", "notify_rorke_grab_gun", "pt2_crawl" );
    maps\_anim::addnotetrack_notify( "boss", "glass_crack_02", "glass_crack_02" );
    maps\_anim::addnotetrack_notify( "boss", "gun_fire", "enemy_gun_fire" );
    level.scr_anim["ally1"]["pt2_draw"] = %sw_end_pt2_draw_hesch;
    level.scr_anim["boss"]["pt2_draw"] = %sw_end_pt2_draw_vargas;
    maps\_anim::addnotetrack_notify( "boss", "spawn_knife", "spawn_knife" );
    level.scr_anim["ally1"]["pt2_fight"] = %sw_end_pt2_fight_loop_hesch;
    level.scr_anim["boss"]["pt2_fight"] = %sw_end_pt2_fight_loop_vargas;
    level.scr_anim["ally1"]["pt2_speedloader"] = %sw_end_pt2_speedloader_hesch;
    level.scr_anim["boss"]["pt2_speedloader"] = %sw_end_pt2_speedloader_vargas;
    level.scr_goaltime["ally1"]["pt2_speedloader"] = 0.25;
    level.scr_goaltime["boss"]["pt2_speedloader"] = 0.25;
    level.scr_anim["ally1"]["pt2_speedloader_fail"] = %sw_end_pt2_speedloader_hesch_fail;
    level.scr_anim["boss"]["pt2_speedloader_fail"] = %sw_end_pt2_speedloader_vargas_fail;
    level.scr_anim["ally1"]["pt2_load_gun"] = %sw_end_pt2_loadgun_hesch;
    level.scr_anim["boss"]["pt2_load_gun"] = %sw_end_pt2_loadgun_vargas;
    level.scr_anim["ally1"]["pt2_shoot_chance_loop"][0] = %sw_end_pt2_kill_vargas_hesch;
    level.scr_anim["boss"]["pt2_shoot_chance_loop"][0] = %sw_end_pt2_kill_vargas_vargas;
    level.scr_anim["ally1"]["pt2_fire_fail"] = %sw_end_pt2_kill_vargas_fail_hesch;
    level.scr_anim["boss"]["pt2_fire_fail"] = %sw_end_pt2_kill_vargas_fail_vargas;
    level.scr_anim["ally1"]["pt2_fire_win"] = %sw_end_pt2_kill_win_hesch;
    level.scr_anim["boss"]["pt2_fire_win"] = %sw_end_pt2_kill_win_vargas;
    level.scr_goaltime["ally1"]["pt2_fire_win"] = 0.25;
    level.scr_goaltime["boss"]["pt2_fire_win"] = 0.25;
    level.scr_anim["ally1"]["pt2_help_loop"][0] = %sw_end_pt2_help_hesh_loop_hesch;
    level.scr_anim["boss"]["pt2_help_loop"][0] = %sw_end_pt2_help_hesh_loop_vargas;
    level.scr_anim["ally1"]["pt2_help"] = %sw_end_pt2_help_hesh_hesch;
    level.scr_anim["boss"]["pt2_help"] = %sw_end_pt2_help_hesh_vargas;
    maps\_anim::addnotetrack_notify( "ally1", "hesch_kick_vo", "hesch_kick_vo" );
    maps\_anim::addnotetrack_notify( "ally1", "hesch_speedloader_vo", "hesch_speedloader_vo" );
    maps\_anim::addnotetrack_notify( "ally1", "slomo_start", "notify_slomo_start" );
    maps\_anim::addnotetrack_notify( "ally1", "qte_start", "notify_qte_start" );
    maps\_anim::addnotetrack_notify( "ally1", "bullets_blend", "notify_start_bullet_blend" );
    maps\_anim::addnotetrack_flag( "ally1", "qte_end", "flag_qte_end" );
    maps\_anim::addnotetrack_notify( "ally1", "bullets_ground", "notify_bullets_hit_ground" );
    maps\_anim::addnotetrack_notify( "ally1", "start_water_fx", "start_water_fx" );
    maps\_anim::addnotetrack_notify( "ally1", "player_swept", "player_swept" );
    maps\_anim::addnotetrack_notify( "ally1", "too_late_now", "too_late_now" );
    maps\_anim::addnotetrack_customfunction( "boss", "knife_floor", maps\skyway_end_wreck::detach_knife );
    maps\_anim::addnotetrack_customfunction( "boss", "knife_hand", maps\skyway_end_wreck::attach_knife );
    level.scr_sound["ally1"]["skyway_hsh_shoothim"] = "skyway_hsh_shoothim";
    level.scr_face["ally1"]["skyway_hsh_shoothim"] = %sw_end_pt2_face_shoot_him;
    level.scr_sound["ally1"]["skyway_hsh_logandoitnow"] = "skyway_hsh_logandoitnow";
    level.scr_face["ally1"]["skyway_hsh_logandoitnow"] = %sw_end_pt2_face_logan_now;
    level.scr_sound["ally1"]["skyway_hsh_doit"] = "skyway_hsh_doit";
    level.scr_face["ally1"]["skyway_hsh_doit"] = %sw_end_pt2_face_doit;
    level.scr_anim["ally1"]["swimout"] = %sw_swimout_init_hesh;
    level.scr_anim["boss"]["swimout"] = %sw_swimout_rorke;
    level.scr_anim["opfor3"]["swimout"] = %sw_swimout_deadbody3;
    level.scr_anim["opfor4"]["swimout"] = %sw_swimout_deadbody4;
    level.scr_anim["boss"]["swimout_loop"][0] = %sw_swimout_rorke_loop;
    level.scr_anim["opfor3"]["swimout_loop"][0] = %sw_swimout_deadbody3_loop;
    level.scr_anim["opfor4"]["swimout_loop"][0] = %sw_swimout_deadbody4_loop;
    level.scr_anim["ally1"]["beach_pt1_idle"][0] = %sw_beach_hesh_pt1_idle;
    level.scr_anim["ally1"]["beach_pt2"] = %sw_beach_hesh_pt2;
    level.scr_anim["ally1"]["beach_pt3"] = %sw_beach_hesh_pt3;
    level.scr_anim["boss"]["beach_pt2"] = %sw_beach_vargas_pt2;
    level.scr_anim["boss"]["beach_pt3"] = %sw_beach_vargas_pt3;
    level.scr_animtree["player_body"] = #animtree;
    level.scr_model["player_body"] = "body_keegan_cornered_a";
    level.scr_anim["player_body"]["beach_pt1_idle"][0] = %sw_beach_playerbody_pt1_idle;
    level.scr_anim["player_body"]["beach_pt2"] = %sw_beach_playerbody_pt2;
    level.scr_anim["player_body"]["beach_pt3"] = %sw_beach_playerbody_pt3;
    level.scr_anim["generic"]["hang2sat"] = %sw_traversal_jump_10;
    level.scr_anim["generic"]["sat2roof"] = %sw_hesh_sat2roof;
    level.scr_anim["generic"]["sw_jump_80"] = %sw_traversal_jump_1;
    level.scr_anim["generic"]["sw_jump_88"] = %sw_traversal_jump_8;
    level.scr_anim["generic"]["sw_jump_104"] = %sw_traversal_jump_11;
    level.scr_anim["generic"]["sw_jump_96_fall"] = %sw_traversal_jump_9;
    level.scr_anim["generic"]["sat_in"] = %sw_traversal_sat_in;
    level.scr_anim["generic"]["sat_out"] = %sw_traversal_sat_out;
    level.scr_anim["generic"]["bin_in"] = %sw_traversal_bin_in;
    level.scr_anim["generic"]["bin_out"] = %sw_traversal_bin_out;
    level.scr_anim["generic"]["sw_loco_stackup"] = %sw_enginecar_hesh_breach_init;
    maps\_anim::addnotetrack_flag( "generic", "line_1", "stack_line_1", "sw_loco_stackup" );
    maps\_anim::addnotetrack_flag( "generic", "line_2", "stack_line_2", "sw_loco_stackup" );
    maps\_anim::addnotetrack_flag( "generic", "line_3", "stack_line_3", "sw_loco_stackup" );
    maps\_anim::addnotetrack_flag( "generic", "line_4", "stack_line_4", "sw_loco_stackup" );
    maps\_anim::addnotetrack_flag( "generic", "line_5", "stack_line_5", "sw_loco_stackup" );
    maps\_anim::addnotetrack_flag( "generic", "line_6", "stack_line_6", "sw_loco_stackup" );
    var_0 = [];
    var_0["cover_right_stand"]["alert_idle_twitch"] = [ %corner_standr_alert_twitch02, %corner_standr_alert_twitch04, %corner_standr_alert_twitch06 ];
    var_0["cover_left_stand"]["alert_idle_twitch"] = [ %corner_standl_alert_twitch01, %corner_standl_alert_twitch02, %corner_standl_alert_twitch03, %corner_standl_alert_twitch04, %corner_standl_alert_twitch05, %corner_standl_alert_twitch07 ];
    var_0["cover_crouch"]["hide_idle_twitch"] = [ %covercrouch_twitch_1, %covercrouch_twitch_3, %covercrouch_twitch_4 ];
    var_0["cover_stand"]["hide_idle_twitch"] = [ %coverstand_hide_idle_twitch02, %coverstand_hide_idle_twitch03, %coverstand_hide_idle_twitch05 ];
    maps\_utility::register_archetype( "no_helmet", var_0 );
}

#using_animtree("script_model");

script_model_anims()
{
    level.scr_animtree["view_roll"] = #animtree;
    level.scr_model["view_roll"] = "sw_view_roll";
    level.scr_anim["view_roll"]["nosway"] = %sw_view_roll_nosway;
    level.scr_anim["view_roll"]["roll_R"] = %sw_view_roll_r;
    level.scr_anim["view_roll"]["roll_L"] = %sw_view_roll_l;
    level.scr_anim["view_roll"]["roll_engineroom_sieze"] = %sw_view_roll_engineroom_sieze;
    level.scr_animtree["hangar_door"] = #animtree;
    level.scr_animtree["hangar_pip_camera"] = #animtree;
    level.scr_model["hangar_pip_camera"] = "tag_origin";
    level.scr_anim["hangar_door"]["hangar_intro"] = %sw_intro_slidingdoor;
    level.scr_anim["hangar_pip_camera"]["hangar_intro"] = %sw_intro_camera;
    level.scr_animtree["enemy_hangar_1"] = #animtree;
    level.scr_animtree["enemy_hangar_2"] = #animtree;
    level.scr_model["enemy_hangar_1"] = "body_elite_pmc_assault_b_desert";
    level.scr_model["enemy_hangar_2"] = "body_elite_pmc_shotgun_b_desert";
    level.scr_anim["enemy_hangar_1"]["hangar_intro"] = %sw_intro_enemy_01;
    level.scr_anim["enemy_hangar_2"]["hangar_intro"] = %sw_intro_enemy_02;
    level.scr_animtree["sw_jet"] = #animtree;
    level.scr_model["sw_jet"] = "sw_jet_skel";
    level.scr_anim["sw_jet"]["rt_bomb"] = %sw_jet_bomb_rt;
    level.scr_anim["sw_jet"]["hang_flyby"] = %sw_jet_hang_flyby;
    level.scr_anim["sw_jet"]["rt_bomb_canyon_1"] = %sw_jet_bomb_canyon_1;
    level.scr_anim["sw_jet"]["rt_bomb_canyon_2"] = %sw_jet_bomb_canyon_2;
    level.scr_anim["sw_jet"]["rt_bomb_outpost"] = %sw_jet_bomb_outpost;
    level.scr_animtree["sw_mig"] = #animtree;
    level.scr_model["sw_mig"] = "vehicle_mig29_desert_skyway";
    level.scr_animtree["cage1"] = #animtree;
    level.scr_animtree["cage2"] = #animtree;
    level.scr_animtree["cage3"] = #animtree;
    level.scr_animtree["cage4"] = #animtree;
    level.scr_animtree["crane_train_sat_1"] = #animtree;
    level.scr_animtree["crane_train_sat_2"] = #animtree;
    level.scr_anim["cage1"]["sway"] = %skyway_sat_racks1_01;
    level.scr_anim["cage2"]["sway"] = %skyway_sat_racks1_01;
    level.scr_anim["cage3"]["sway"] = %skyway_sat_racks1_01;
    level.scr_anim["cage4"]["sway"] = %skyway_sat_racks1_01;
    level.scr_anim["crane_train_sat_1"]["sway"] = %skyway_sat_racks2_01;
    level.scr_anim["crane_train_sat_2"]["sway"] = %skyway_sat_racks2_02;
    level.scr_anim["cage1"]["overlay"] = %train_add_anims;
    level.scr_anim["cage2"]["overlay"] = %train_add_anims;
    level.scr_anim["cage3"]["overlay"] = %train_add_anims;
    level.scr_anim["cage4"]["overlay"] = %train_add_anims;
    level.scr_anim["crane_train_sat_1"]["overlay"] = %train_add_anims;
    level.scr_anim["crane_train_sat_2"]["overlay"] = %train_add_anims;
    level.scr_anim["cage1"]["sathit_L"] = %sw_sathitr_cage_l;
    level.scr_anim["cage2"]["sathit_L"] = %sw_sathitr_cage_r;
    level.scr_anim["cage3"]["sathit_L"] = %sw_sathitr_cage_r;
    level.scr_anim["cage4"]["sathit_L"] = %sw_sathitr_cage_l;
    level.scr_anim["crane_train_sat_1"]["sathit_L"] = %sw_sathitl_crane_1;
    level.scr_anim["crane_train_sat_2"]["sathit_L"] = %sw_sathitl_crane_2;
    level.scr_anim["cage1"]["sathit_R"] = %sw_sathitr_cage_r;
    level.scr_anim["cage2"]["sathit_R"] = %sw_sathitr_cage_l;
    level.scr_anim["cage3"]["sathit_R"] = %sw_sathitr_cage_l;
    level.scr_anim["cage4"]["sathit_R"] = %sw_sathitr_cage_r;
    level.scr_anim["crane_train_sat_1"]["sathit_R"] = %sw_sathitr_crane_1;
    level.scr_anim["crane_train_sat_2"]["sathit_R"] = %sw_sathitr_crane_2;
    level.scr_anim["cage1"]["roghit"] = %sw_roghit_cage_r;
    level.scr_anim["cage2"]["roghit"] = %sw_roghit_cage_l;
    level.scr_anim["cage3"]["roghit"] = %sw_roghit_cage_l;
    level.scr_anim["cage4"]["roghit"] = %sw_roghit_cage_r;
    level.scr_anim["crane_train_sat_1"]["roghit"] = %sw_roghit_crane_1;
    level.scr_anim["crane_train_sat_2"]["roghit"] = %sw_roghit_crane_2;
    level.scr_animtree["bridge"] = #animtree;
    level.scr_anim["bridge"]["bridge_push"] = %sw_bridge_push_bridge;
    level.scr_anim["bridge"]["bridge_push_player"] = %sw_bridge_push_player_bridge;
    level.scr_anim["traincar_pass_sus_b"]["wheels"] = %sw_train_wheels;
    level.scr_animtree["train_hangar_body"] = #animtree;
    level.scr_animtree["train_hangar_sus_f"] = #animtree;
    level.scr_animtree["train_hangar_sus_b"] = #animtree;
    level.scr_anim["train_hangar_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_hangar_body"]["intro"] = %sw_intro_hang_body;
    level.scr_anim["train_hangar_body"]["bb_1"] = %sw_bb_1_hang_body;
    level.scr_anim["train_hangar_body"]["bb_2"] = %sw_bb_2_hang_body;
    level.scr_anim["train_hangar_body"]["bc_1"] = %sw_bc_1_hang_body;
    level.scr_anim["train_hangar_body"]["bc_2"] = %sw_bc_2_hang_body;
    level.scr_anim["train_hangar_body"]["bc_3"] = %sw_bc_3_hang_body;
    level.scr_anim["train_hangar_body"]["loop_a1"] = %sw_loopa1_hang_body;
    level.scr_anim["train_hangar_body"]["loop_a2"] = %sw_loopa2_hang_body;
    level.scr_anim["train_hangar_body"]["ab_1"] = %sw_ab1_hang_body;
    level.scr_anim["train_hangar_body"]["ab_2"] = %sw_ab2_hang_body;
    level.scr_anim["train_hangar_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_hangar_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_hangar_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_hangar_body"]["sathit_L"] = %sw_sathitl_hang_body;
    level.scr_anim["train_hangar_body"]["sathit_R"] = %sw_sathit_hang_body;
    level.scr_anim["train_hangar_body"]["roghit"] = %sw_roghit_hang_body;
    level.scr_anim["train_hangar_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_hangar_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_hangar_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_hangar_sus_f"]["bb_1"] = %sw_bb_1_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["bb_2"] = %sw_bb_2_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["bc_1"] = %sw_bc_1_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["bc_2"] = %sw_bc_2_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["bc_3"] = %sw_bc_3_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["loop_a1"] = %sw_loopa1_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["loop_a2"] = %sw_loopa2_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["ab_1"] = %sw_ab1_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["ab_2"] = %sw_ab2_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_hangar_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_hangar_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_hangar_sus_f"]["sathit_L"] = %sw_sathitl_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["sathit_R"] = %sw_sathit_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["roghit"] = %sw_roghit_hang_sus_f;
    level.scr_anim["train_hangar_sus_f"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_hangar_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_hangar_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_hangar_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_hangar_sus_b"]["bb_1"] = %sw_bb_1_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["bb_2"] = %sw_bb_2_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["bc_1"] = %sw_bc_1_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["bc_2"] = %sw_bc_2_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["bc_3"] = %sw_bc_3_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["loop_a1"] = %sw_loopa1_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["loop_a2"] = %sw_loopa2_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["ab_1"] = %sw_ab1_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["ab_2"] = %sw_ab2_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_hangar_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_hangar_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_hangar_sus_b"]["sathit_L"] = %sw_sathitl_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["sathit_R"] = %sw_sathit_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["roghit"] = %sw_roghit_hang_sus_b;
    level.scr_anim["train_hangar_sus_b"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_hangar_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_animtree["train_sat_1_body"] = #animtree;
    level.scr_animtree["train_sat_1_sus_f"] = #animtree;
    level.scr_animtree["train_sat_1_sus_b"] = #animtree;
    level.scr_anim["train_sat_1_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_1_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_sat_1_body"]["bb_1"] = %sw_bb_1_satb_body;
    level.scr_anim["train_sat_1_body"]["bb_2"] = %sw_bb_2_satb_body;
    level.scr_anim["train_sat_1_body"]["bc_1"] = %sw_bc_1_satb_body;
    level.scr_anim["train_sat_1_body"]["bc_2"] = %sw_bc_2_satb_body;
    level.scr_anim["train_sat_1_body"]["bc_3"] = %sw_bc_3_satb_body;
    level.scr_anim["train_sat_1_body"]["loop_a1"] = %sw_loopa1_satb_body;
    level.scr_anim["train_sat_1_body"]["loop_a2"] = %sw_loopa2_satb_body;
    level.scr_anim["train_sat_1_body"]["ab_1"] = %sw_ab1_satb_body;
    level.scr_anim["train_sat_1_body"]["ab_2"] = %sw_ab2_satb_body;
    level.scr_anim["train_sat_1_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_sat_1_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_sat_1_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_sat_1_body"]["sathit_L"] = %sw_sathitl_sat_body;
    level.scr_anim["train_sat_1_body"]["sathit_R"] = %sw_sathit_sat_body;
    level.scr_anim["train_sat_1_body"]["roghit"] = %sw_roghit_sat_body;
    level.scr_anim["train_sat_1_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_sat_1_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_1_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_sat_1_sus_f"]["bb_1"] = %sw_bb_1_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["bb_2"] = %sw_bb_2_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["bc_1"] = %sw_bc_1_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["bc_2"] = %sw_bc_2_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["bc_3"] = %sw_bc_3_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["loop_a1"] = %sw_loopa1_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["loop_a2"] = %sw_loopa2_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["ab_1"] = %sw_ab1_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["ab_2"] = %sw_ab2_satb_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_sat_1_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_1_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_1_sus_f"]["sathit_L"] = %sw_sathitl_sat_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["sathit_R"] = %sw_sathit_sat_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["roghit"] = %sw_roghit_sat_sus_f;
    level.scr_anim["train_sat_1_sus_f"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_sat_1_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_sat_1_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_1_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_sat_1_sus_b"]["bb_1"] = %sw_bb_1_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["bb_2"] = %sw_bb_2_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["bc_1"] = %sw_bc_1_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["bc_2"] = %sw_bc_2_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["bc_3"] = %sw_bc_3_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["loop_a1"] = %sw_loopa1_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["loop_a2"] = %sw_loopa2_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["ab_1"] = %sw_ab1_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["ab_2"] = %sw_ab2_satb_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_sat_1_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_1_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_1_sus_b"]["sathit_L"] = %sw_sathitl_sat_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["sathit_R"] = %sw_sathit_sat_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["roghit"] = %sw_roghit_sat_sus_b;
    level.scr_anim["train_sat_1_sus_b"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_sat_1_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_animtree["train_sat_2_body"] = #animtree;
    level.scr_animtree["train_sat_2_sus_f"] = #animtree;
    level.scr_animtree["train_sat_2_sus_b"] = #animtree;
    level.scr_anim["train_sat_2_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_2_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_sat_2_body"]["bb_1"] = %sw_bb_1_sata_body;
    level.scr_anim["train_sat_2_body"]["bb_2"] = %sw_bb_2_sata_body;
    level.scr_anim["train_sat_2_body"]["bc_1"] = %sw_bc_1_sata_body;
    level.scr_anim["train_sat_2_body"]["bc_2"] = %sw_bc_2_sata_body;
    level.scr_anim["train_sat_2_body"]["bc_3"] = %sw_bc_3_sata_body;
    level.scr_anim["train_sat_2_body"]["loop_a1"] = %sw_loopa1_sata_body;
    level.scr_anim["train_sat_2_body"]["loop_a2"] = %sw_loopa2_sata_body;
    level.scr_anim["train_sat_2_body"]["ab_1"] = %sw_ab1_sata_body;
    level.scr_anim["train_sat_2_body"]["ab_2"] = %sw_ab2_sata_body;
    level.scr_anim["train_sat_2_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_sat_2_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_sat_2_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_sat_2_body"]["sathit_L"] = %sw_sathitl_sat_body;
    level.scr_anim["train_sat_2_body"]["sathit_R"] = %sw_sathit_sat_body;
    level.scr_anim["train_sat_2_body"]["roghit"] = %sw_roghit_sat_body;
    level.scr_anim["train_sat_2_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_sat_2_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_2_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_sat_2_sus_f"]["bb_1"] = %sw_bb_1_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["bb_2"] = %sw_bb_2_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["bc_1"] = %sw_bc_1_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["bc_2"] = %sw_bc_2_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["bc_3"] = %sw_bc_3_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["loop_a1"] = %sw_loopa1_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["loop_a2"] = %sw_loopa2_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["ab_1"] = %sw_ab1_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["ab_2"] = %sw_ab2_sata_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_sat_2_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_2_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_2_sus_f"]["sathit_L"] = %sw_sathitl_sat_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["sathit_R"] = %sw_sathit_sat_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["roghit"] = %sw_roghit_sat_sus_f;
    level.scr_anim["train_sat_2_sus_f"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_sat_2_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_sat_2_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_sat_2_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_sat_2_sus_b"]["bb_1"] = %sw_bb_1_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["bb_2"] = %sw_bb_2_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["bc_1"] = %sw_bc_1_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["bc_2"] = %sw_bc_2_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["bc_3"] = %sw_bc_3_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["loop_a1"] = %sw_loopa1_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["loop_a2"] = %sw_loopa2_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["ab_1"] = %sw_ab1_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["ab_2"] = %sw_ab2_sata_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_sat_2_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_2_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_sat_2_sus_b"]["sathit_L"] = %sw_sathitl_sat_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["sathit_R"] = %sw_sathit_sat_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["roghit"] = %sw_roghit_sat_sus_b;
    level.scr_anim["train_sat_2_sus_b"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_sat_2_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_animtree["train_rt0_body"] = #animtree;
    level.scr_animtree["train_rt0_sus_f"] = #animtree;
    level.scr_animtree["train_rt0_sus_b"] = #animtree;
    level.scr_anim["train_rt0_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt0_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_rt0_body"]["bb_1"] = %sw_bb_1_pass3_body;
    level.scr_anim["train_rt0_body"]["bb_2"] = %sw_bb_2_pass3_body;
    level.scr_anim["train_rt0_body"]["bc_1"] = %sw_bc_1_pass3_body;
    level.scr_anim["train_rt0_body"]["bc_2"] = %sw_bc_2_pass3_body;
    level.scr_anim["train_rt0_body"]["bc_3"] = %sw_bc_3_pass3_body;
    level.scr_anim["train_rt0_body"]["loop_a1"] = %sw_loopa1_pass3_body;
    level.scr_anim["train_rt0_body"]["loop_a2"] = %sw_loopa2_pass3_body;
    level.scr_anim["train_rt0_body"]["ab_1"] = %sw_ab1_pass3_body;
    level.scr_anim["train_rt0_body"]["ab_2"] = %sw_ab2_pass3_body;
    level.scr_anim["train_rt0_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_rt0_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt0_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt0_body"]["sathit_L"] = %sw_sathitl_pass_body;
    level.scr_anim["train_rt0_body"]["sathit_R"] = %sw_sathit_pass_body;
    level.scr_anim["train_rt0_body"]["roghit"] = %sw_roghit_pass_body;
    level.scr_anim["train_rt0_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_rt0_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt0_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt0_sus_f"]["bb_1"] = %sw_bb_1_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["bb_2"] = %sw_bb_2_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["bc_1"] = %sw_bc_1_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["bc_2"] = %sw_bc_2_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["bc_3"] = %sw_bc_3_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["loop_a1"] = %sw_loopa1_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["loop_a2"] = %sw_loopa2_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["ab_1"] = %sw_ab1_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["ab_2"] = %sw_ab2_pass3_sus_f;
    level.scr_anim["train_rt0_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt0_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt0_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt0_sus_f"]["sathit_L"] = %sw_sathitl_pass_sus_f;
    level.scr_anim["train_rt0_sus_f"]["sathit_R"] = %sw_sathit_pass_sus_f;
    level.scr_anim["train_rt0_sus_f"]["roghit"] = %sw_roghit_pass_sus_f;
    level.scr_anim["train_rt0_sus_f"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt0_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_rt0_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt0_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt0_sus_b"]["bb_1"] = %sw_bb_1_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["bb_2"] = %sw_bb_2_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["bc_1"] = %sw_bc_1_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["bc_2"] = %sw_bc_2_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["bc_3"] = %sw_bc_3_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["loop_a1"] = %sw_loopa1_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["loop_a2"] = %sw_loopa2_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["ab_1"] = %sw_ab1_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["ab_2"] = %sw_ab2_pass3_sus_b;
    level.scr_anim["train_rt0_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt0_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt0_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt0_sus_b"]["sathit_L"] = %sw_sathitl_pass_sus_b;
    level.scr_anim["train_rt0_sus_b"]["sathit_R"] = %sw_sathit_pass_sus_b;
    level.scr_anim["train_rt0_sus_b"]["roghit"] = %sw_roghit_pass_sus_b;
    level.scr_anim["train_rt0_sus_b"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt0_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_animtree["train_rt1_body"] = #animtree;
    level.scr_animtree["train_rt1_sus_f"] = #animtree;
    level.scr_animtree["train_rt1_sus_b"] = #animtree;
    level.scr_anim["train_rt1_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt1_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_rt1_body"]["bb_1"] = %sw_bb_1_pass4_body;
    level.scr_anim["train_rt1_body"]["bb_2"] = %sw_bb_2_pass4_body;
    level.scr_anim["train_rt1_body"]["bc_1"] = %sw_bc_1_pass4_body;
    level.scr_anim["train_rt1_body"]["bc_2"] = %sw_bc_2_pass4_body;
    level.scr_anim["train_rt1_body"]["bc_3"] = %sw_bc_3_pass4_body;
    level.scr_anim["train_rt1_body"]["loop_a1"] = %sw_loopa1_pass4_body;
    level.scr_anim["train_rt1_body"]["loop_a2"] = %sw_loopa2_pass4_body;
    level.scr_anim["train_rt1_body"]["ab_1"] = %sw_ab1_pass4_body;
    level.scr_anim["train_rt1_body"]["ab_2"] = %sw_ab2_pass4_body;
    level.scr_anim["train_rt1_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_rt1_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt1_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt1_body"]["sathit_L"] = %sw_sathitl_pass_body;
    level.scr_anim["train_rt1_body"]["sathit_R"] = %sw_sathit_pass_body;
    level.scr_anim["train_rt1_body"]["roghit"] = %sw_roghit_pass_body;
    level.scr_anim["train_rt1_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_rt1_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt1_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt1_sus_f"]["bb_1"] = %sw_bb_1_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["bb_2"] = %sw_bb_2_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["bc_1"] = %sw_bc_1_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["bc_2"] = %sw_bc_2_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["bc_3"] = %sw_bc_3_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["loop_a1"] = %sw_loopa1_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["loop_a2"] = %sw_loopa2_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["ab_1"] = %sw_ab1_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["ab_2"] = %sw_ab2_pass4_sus_f;
    level.scr_anim["train_rt1_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt1_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt1_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt1_sus_f"]["sathit_L"] = %sw_sathitl_pass_sus_f;
    level.scr_anim["train_rt1_sus_f"]["sathit_R"] = %sw_sathit_pass_sus_f;
    level.scr_anim["train_rt1_sus_f"]["roghit"] = %sw_roghit_pass_sus_f;
    level.scr_anim["train_rt1_sus_f"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt1_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_rt1_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt1_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt1_sus_b"]["bb_1"] = %sw_bb_1_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["bb_2"] = %sw_bb_2_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["bc_1"] = %sw_bc_1_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["bc_2"] = %sw_bc_2_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["bc_3"] = %sw_bc_3_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["loop_a1"] = %sw_loopa1_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["loop_a2"] = %sw_loopa2_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["ab_1"] = %sw_ab1_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["ab_2"] = %sw_ab2_pass4_sus_b;
    level.scr_anim["train_rt1_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt1_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt1_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt1_sus_b"]["sathit_L"] = %sw_sathitl_pass_sus_b;
    level.scr_anim["train_rt1_sus_b"]["sathit_R"] = %sw_sathit_pass_sus_b;
    level.scr_anim["train_rt1_sus_b"]["roghit"] = %sw_roghit_pass_sus_b;
    level.scr_anim["train_rt1_sus_b"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt1_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_rt1_body"]["rt_helo_crash"] = %sw_rt_body_crash;
    level.scr_anim["train_rt1_body"]["rt_helo_damaged"] = %sw_rt_body_damaged;
    level.scr_anim["train_rt1_sus_f"]["rt_helo_crash"] = %sw_rt_sus_f_crash;
    level.scr_anim["train_rt1_sus_f"]["rt_helo_damaged"] = %sw_rt_sus_f_damaged;
    level.scr_anim["train_rt1_sus_b"]["rt_helo_crash"] = %sw_rt_sus_b_crash;
    level.scr_anim["train_rt1_sus_b"]["rt_helo_damaged"] = %sw_rt_sus_b_damaged;
    level.scr_animtree["train_rt2_body"] = #animtree;
    level.scr_animtree["train_rt2_sus_f"] = #animtree;
    level.scr_animtree["train_rt2_sus_b"] = #animtree;
    level.scr_anim["train_rt2_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt2_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_rt2_body"]["bb_1"] = %sw_bb_1_pass5_body;
    level.scr_anim["train_rt2_body"]["bb_2"] = %sw_bb_2_pass5_body;
    level.scr_anim["train_rt2_body"]["bc_1"] = %sw_bc_1_pass5_body;
    level.scr_anim["train_rt2_body"]["bc_2"] = %sw_bc_2_pass5_body;
    level.scr_anim["train_rt2_body"]["bc_3"] = %sw_bc_3_pass5_body;
    level.scr_anim["train_rt2_body"]["loop_a1"] = %sw_loopa1_pass5_body;
    level.scr_anim["train_rt2_body"]["loop_a2"] = %sw_loopa2_pass5_body;
    level.scr_anim["train_rt2_body"]["ab_1"] = %sw_ab1_pass5_body;
    level.scr_anim["train_rt2_body"]["ab_2"] = %sw_ab2_pass5_body;
    level.scr_anim["train_rt2_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_rt2_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt2_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt2_body"]["sathit_L"] = %sw_sathitl_pass_body;
    level.scr_anim["train_rt2_body"]["sathit_R"] = %sw_sathit_pass_body;
    level.scr_anim["train_rt2_body"]["roghit"] = %sw_roghit_pass_body;
    level.scr_anim["train_rt2_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_rt2_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt2_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt2_sus_f"]["bb_1"] = %sw_bb_1_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["bb_2"] = %sw_bb_2_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["bc_1"] = %sw_bc_1_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["bc_2"] = %sw_bc_2_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["bc_3"] = %sw_bc_3_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["loop_a1"] = %sw_loopa1_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["loop_a2"] = %sw_loopa2_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["ab_1"] = %sw_ab1_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["ab_2"] = %sw_ab2_pass5_sus_f;
    level.scr_anim["train_rt2_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt2_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt2_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt2_sus_f"]["sathit_L"] = %sw_sathitl_pass_sus_f;
    level.scr_anim["train_rt2_sus_f"]["sathit_R"] = %sw_sathit_pass_sus_f;
    level.scr_anim["train_rt2_sus_f"]["roghit"] = %sw_roghit_pass_sus_f;
    level.scr_anim["train_rt2_sus_f"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt2_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_rt2_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt2_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt2_sus_b"]["bb_1"] = %sw_bb_1_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["bb_2"] = %sw_bb_2_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["bc_1"] = %sw_bc_1_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["bc_2"] = %sw_bc_2_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["bc_3"] = %sw_bc_3_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["loop_a1"] = %sw_loopa1_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["loop_a2"] = %sw_loopa2_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["ab_1"] = %sw_ab1_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["ab_2"] = %sw_ab2_pass5_sus_b;
    level.scr_anim["train_rt2_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt2_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt2_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt2_sus_b"]["sathit_L"] = %sw_sathitl_pass_sus_b;
    level.scr_anim["train_rt2_sus_b"]["sathit_R"] = %sw_sathit_pass_sus_b;
    level.scr_anim["train_rt2_sus_b"]["roghit"] = %sw_roghit_pass_sus_b;
    level.scr_anim["train_rt2_sus_b"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt2_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    maps\_anim::addnotetrack_notify( "train_rt2_body", "allow_teleport", "player_train_new_anim" );
    maps\_anim::addnotetrack_notify( "train_rt2_body", "break_sus_l", "notify_break_sus_l", "_a3_1" );
    maps\_anim::addnotetrack_notify( "train_rt2_body", "break_sus_r", "notify_break_sus_r", "_a3_1" );
    maps\_anim::addnotetrack_notify( "train_rt2_body", "scrape_wall", "notify_train_scrape_Wall", "_a3_1" );
    maps\_anim::addnotetrack_notify( "train_rt2_body", "stop_scrape_wall", "notify_train_stop_scrape_Wall", "_a3_1" );
    maps\_anim::addnotetrack_notify( "train_rt2_body", "hit_wall", "notify_train_hit_Wall", "_a3_1" );
    level.scr_animtree["train_rt3_body"] = #animtree;
    level.scr_animtree["train_rt3_sus_f"] = #animtree;
    level.scr_animtree["train_rt3_sus_b"] = #animtree;
    level.scr_anim["train_rt3_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt3_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_rt3_body"]["bb_1"] = %sw_bb_1_pass6_body;
    level.scr_anim["train_rt3_body"]["bb_2"] = %sw_bb_2_pass6_body;
    level.scr_anim["train_rt3_body"]["bc_1"] = %sw_bc_1_pass6_body;
    level.scr_anim["train_rt3_body"]["bc_2"] = %sw_bc_2_pass6_body;
    level.scr_anim["train_rt3_body"]["bc_3"] = %sw_bc_3_pass6_body;
    level.scr_anim["train_rt3_body"]["loop_a1"] = %sw_loopa1_pass6_body;
    level.scr_anim["train_rt3_body"]["loop_a2"] = %sw_loopa2_pass6_body;
    level.scr_anim["train_rt3_body"]["ab_1"] = %sw_ab1_pass6_body;
    level.scr_anim["train_rt3_body"]["ab_2"] = %sw_ab2_pass6_body;
    level.scr_anim["train_rt3_body"]["end_stop"] = %sw_end_stop_generic_body;
    level.scr_anim["train_rt3_body"]["end_hang"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt3_body"]["end_rog"] = %sw_end_hang_generic_body;
    level.scr_anim["train_rt3_body"]["sathit_L"] = %sw_sathitl_pass_body;
    level.scr_anim["train_rt3_body"]["sathit_R"] = %sw_sathit_pass_body;
    level.scr_anim["train_rt3_body"]["roghit"] = %sw_roghit_pass_body;
    level.scr_anim["train_rt3_body"]["loco_blasthit"] = %sw_enginecar_blasthit_traindummy;
    level.scr_anim["train_rt3_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt3_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt3_sus_f"]["bb_1"] = %sw_bb_1_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["bb_2"] = %sw_bb_2_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["bc_1"] = %sw_bc_1_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["bc_2"] = %sw_bc_2_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["bc_3"] = %sw_bc_3_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["loop_a1"] = %sw_loopa1_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["loop_a2"] = %sw_loopa2_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["ab_1"] = %sw_ab1_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["ab_2"] = %sw_ab2_pass6_sus_f;
    level.scr_anim["train_rt3_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt3_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt3_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt3_sus_f"]["sathit_L"] = %sw_sathitl_pass_sus_f;
    level.scr_anim["train_rt3_sus_f"]["sathit_R"] = %sw_sathit_pass_sus_f;
    level.scr_anim["train_rt3_sus_f"]["roghit"] = %sw_roghit_pass_sus_f;
    level.scr_anim["train_rt3_sus_f"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt3_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_rt3_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_rt3_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_rt3_sus_b"]["bb_1"] = %sw_bb_1_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["bb_2"] = %sw_bb_2_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["bc_1"] = %sw_bc_1_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["bc_2"] = %sw_bc_2_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["bc_3"] = %sw_bc_3_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["loop_a1"] = %sw_loopa1_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["loop_a2"] = %sw_loopa2_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["ab_1"] = %sw_ab1_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["ab_2"] = %sw_ab2_pass6_sus_b;
    level.scr_anim["train_rt3_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_rt3_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt3_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_rt3_sus_b"]["sathit_L"] = %sw_sathitl_pass_sus_b;
    level.scr_anim["train_rt3_sus_b"]["sathit_R"] = %sw_sathit_pass_sus_b;
    level.scr_anim["train_rt3_sus_b"]["roghit"] = %sw_roghit_pass_sus_b;
    level.scr_anim["train_rt3_sus_b"]["wheels"] = %sw_train_wheels;
    level.scr_anim["train_rt3_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_animtree["train_loco_body"] = #animtree;
    level.scr_animtree["train_loco_sus_f"] = #animtree;
    level.scr_animtree["train_loco_sus_b"] = #animtree;
    level.scr_anim["train_loco_body"]["overlay"] = %train_add_anims;
    level.scr_anim["train_loco_body"]["intro"] = %sw_intro_generic_body;
    level.scr_anim["train_loco_body"]["bb_1"] = %sw_bb_1_loco_body;
    level.scr_anim["train_loco_body"]["bb_2"] = %sw_bb_2_loco_body;
    level.scr_anim["train_loco_body"]["bc_1"] = %sw_bc_1_loco_body;
    level.scr_anim["train_loco_body"]["bc_2"] = %sw_bc_2_loco_body;
    level.scr_anim["train_loco_body"]["bc_3"] = %sw_bc_3_loco_body;
    level.scr_anim["train_loco_body"]["loop_a1"] = %sw_loopa1_loco_body;
    level.scr_anim["train_loco_body"]["loop_a2"] = %sw_loopa2_loco_body;
    level.scr_anim["train_loco_body"]["ab_1"] = %sw_ab1_loco_body;
    level.scr_anim["train_loco_body"]["ab_2"] = %sw_ab2_loco_body;
    level.scr_anim["train_loco_body"]["end_stop"] = %sw_end_stop_loco_body;
    level.scr_anim["train_loco_body"]["end_hang"] = %sw_end_hang_loco_body;
    level.scr_anim["train_loco_body"]["end_rog"] = %sw_end_rog_loco_body;
    level.scr_anim["train_loco_body"]["sathit_L"] = %sw_sathitl_loco_body;
    level.scr_anim["train_loco_body"]["sathit_R"] = %sw_sathit_loco_body;
    level.scr_anim["train_loco_body"]["roghit"] = %sw_roghit_loco_body;
    level.scr_anim["train_loco_body"]["loco_blasthit"] = %sw_enginecar_blasthit_train;
    level.scr_anim["train_loco_sus_f"]["overlay"] = %train_add_anims;
    level.scr_anim["train_loco_sus_f"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_loco_sus_f"]["bb_1"] = %sw_bb_1_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["bb_2"] = %sw_bb_2_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["bc_1"] = %sw_bc_1_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["bc_2"] = %sw_bc_2_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["bc_3"] = %sw_bc_3_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["loop_a1"] = %sw_loopa1_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["loop_a2"] = %sw_loopa2_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["ab_1"] = %sw_ab1_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["ab_2"] = %sw_ab2_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_loco_sus_f"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_loco_sus_f"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_loco_sus_f"]["sathit_L"] = %sw_sathitl_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["sathit_R"] = %sw_sathit_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["roghit"] = %sw_roghit_loco_sus_f;
    level.scr_anim["train_loco_sus_f"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_loco_sus_f"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    level.scr_anim["train_loco_sus_b"]["overlay"] = %train_add_anims;
    level.scr_anim["train_loco_sus_b"]["intro"] = %sw_intro_generic_sus;
    level.scr_anim["train_loco_sus_b"]["bb_1"] = %sw_bb_1_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["bb_2"] = %sw_bb_2_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["bc_1"] = %sw_bc_1_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["bc_2"] = %sw_bc_2_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["bc_3"] = %sw_bc_3_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["loop_a1"] = %sw_loopa1_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["loop_a2"] = %sw_loopa2_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["ab_1"] = %sw_ab1_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["ab_2"] = %sw_ab2_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["end_stop"] = %sw_end_stop_generic_sus;
    level.scr_anim["train_loco_sus_b"]["end_hang"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_loco_sus_b"]["end_rog"] = %sw_end_hang_generic_sus;
    level.scr_anim["train_loco_sus_b"]["sathit_L"] = %sw_sathitl_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["sathit_R"] = %sw_sathit_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["roghit"] = %sw_roghit_loco_sus_b;
    level.scr_anim["train_loco_sus_b"]["wheels"] = %sw_loco_wheels;
    level.scr_anim["train_loco_sus_b"]["loco_blasthit"] = %sw_enginecar_blasthit_suspensiondummy;
    maps\_anim::addnotetrack_notify( "train_loco_body", "shockwave_hit", "notify_shockwave_hit", "end_rog" );
    maps\_anim::addnotetrack_notify( "train_loco_body", "shockwave_stop_girders", "notify_shockwave_stop_girders", "end_rog" );
    maps\_anim::addnotetrack_notify( "train_loco_body", "shockwave_start", "notify_shockwave_start", "end_rog" );
    level.scr_animtree["sw_rope_grapple_1"] = #animtree;
    level.scr_model["sw_rope_grapple_1"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_1"]["sw_grapple_up"] = %sw_rope_grapple_up_1;
    level.scr_animtree["sw_rope_grapple_2"] = #animtree;
    level.scr_model["sw_rope_grapple_2"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_2"]["sw_grapple_up"] = %sw_rope_grapple_up_2;
    level.scr_animtree["sw_rope_grapple_3"] = #animtree;
    level.scr_model["sw_rope_grapple_3"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_3"]["sw_grapple_up"] = %sw_rope_grapple_up_3;
    level.scr_animtree["sw_rope_grapple_4"] = #animtree;
    level.scr_model["sw_rope_grapple_4"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_4"]["sw_grapple_up"] = %sw_rope_grapple_up_4;
    level.scr_animtree["sw_rope_grapple_5"] = #animtree;
    level.scr_model["sw_rope_grapple_5"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_5"]["sw_grapple_up"] = %sw_rope_grapple_up_5;
    level.scr_animtree["sw_rope_grapple_6"] = #animtree;
    level.scr_model["sw_rope_grapple_6"] = "sw_rope_grapple";
    level.scr_anim["sw_rope_grapple_6"]["sw_grapple_up"] = %sw_rope_grapple_up_6;
    level.scr_animtree["sw_door_r"] = #animtree;
    level.scr_animtree["sw_door_l"] = #animtree;
    level.scr_model["sw_door_r"] = "cnd_exit_door_right";
    level.scr_model["sw_door_l"] = "cnd_exit_door_right";
    level.scr_anim["sw_door_r"]["sw_entry_u"] = %sw_rooftop_ladder_infils_door_dr_s;
    level.scr_anim["sw_door_l"]["sw_entry_u"] = %sw_rooftop_ladder_infils_door_dl_s;
    level.scr_animtree["rt_helo_small"] = #animtree;
    level.scr_model["rt_helo_small"] = "sw_aas_noglass";
    level.scr_anim["rt_helo_small"]["blades"] = %sw_rt_helo_blades;
    level.scr_anim["rt_helo_small"]["blades_top"] = %sw_rt_helo_blades_top;
    level.scr_anim["rt_helo_small"]["blades_death"] = %sw_rt_helo_blades_death;
    level.scr_animtree["rt_helo_glass_front"] = #animtree;
    level.scr_model["rt_helo_glass_front"] = "sw_aas_glass_front";
    level.scr_animtree["rt_helo_glass_front_b"] = #animtree;
    level.scr_model["rt_helo_glass_front_b"] = "sw_aas_glass_front_b";
    level.scr_animtree["rt_helo_glass_mid_1"] = #animtree;
    level.scr_model["rt_helo_glass_mid_1"] = "sw_aas_glass_mid_1";
    level.scr_animtree["rt_helo_glass_mid_2"] = #animtree;
    level.scr_model["rt_helo_glass_mid_2"] = "sw_aas_glass_mid_2";
    level.scr_animtree["rt_helo_glass_back"] = #animtree;
    level.scr_model["rt_helo_glass_back"] = "sw_aas_glass_back";
    level.scr_animtree["rt_helo_broken_glass_front"] = #animtree;
    level.scr_model["rt_helo_broken_glass_front"] = "sw_aas_broken_glass_front";
    level.scr_animtree["rt_helo_broken_glass_front_b"] = #animtree;
    level.scr_model["rt_helo_broken_glass_front_b"] = "sw_aas_broken_glass_front_b";
    level.scr_animtree["rt_helo_broken_glass_mid_1"] = #animtree;
    level.scr_model["rt_helo_broken_glass_mid_1"] = "sw_aas_broken_glass_mid_1";
    level.scr_animtree["rt_helo_broken_glass_mid_2"] = #animtree;
    level.scr_model["rt_helo_broken_glass_mid_2"] = "sw_aas_broken_glass_mid_2";
    level.scr_animtree["rt_helo_broken_glass_back"] = #animtree;
    level.scr_model["rt_helo_broken_glass_back"] = "sw_aas_broken_glass_back";
    level.scr_animtree["rt_helo_crashed"] = #animtree;
    level.scr_model["rt_helo_crashed"] = "sw_aas_crashed";
    level.scr_anim["rt_helo_crashed"]["rt_helo_crash"] = %sw_rt_helod_crash;
    level.scr_anim["rt_helo_crashed"]["rt_helo_damaged"] = %sw_rt_helod_damaged;
    level.scr_animtree["rt_helo0_mover"] = #animtree;
    level.scr_animtree["rt_helo1_mover"] = #animtree;
    level.scr_model["rt_helo0_mover"] = "sw_helo_mover";
    level.scr_model["rt_helo1_mover"] = "sw_helo_mover";
    level.scr_anim["rt_helo0_mover"]["crash_norm"] = %sw_rt_helo_crash_norm_1;
    level.scr_anim["rt_helo1_mover"]["crash_norm"] = %sw_rt_helo_crash_norm_1;
    level.scr_anim["rt_helo0_mover"]["crash_spin"] = %sw_rt_helo_crash_norm_1;
    level.scr_anim["rt_helo1_mover"]["crash_spin"] = %sw_rt_helo_crash_norm_1;
    level.scr_anim["rt_helo0_mover"]["death_norm"] = %sw_rt_helo_death_norm_1;
    level.scr_anim["rt_helo1_mover"]["death_norm"] = %sw_rt_helo_death_norm_2;
    level.scr_anim["rt_helo0_mover"]["death_spin"] = %sw_rt_helo_death_norm_1;
    level.scr_anim["rt_helo1_mover"]["death_spin"] = %sw_rt_helo_death_norm_2;
    level.scr_anim["rt_helo0_mover"]["flyin"] = %sw_rt_helo_flyin_1;
    level.scr_anim["rt_helo1_mover"]["flyin"] = %sw_rt_helo_flyin_2;
    level.scr_anim["rt_helo0_mover"]["flyout"] = %sw_rt_helo_flyout_1;
    level.scr_anim["rt_helo1_mover"]["flyout"] = %sw_rt_helo_flyout_2;
    level.scr_anim["rt_helo0_mover"]["idle"][0] = %sw_rt_helo_idle_b_1;
    level.scr_anim["rt_helo1_mover"]["idle"][0] = %sw_rt_helo_idle_b_2;
    level.scr_anim["rt_helo1_mover"]["idle_inside"] = %sw_rt_helo_idle_b_2_to_1;
    level.scr_anim["rt_helo0_mover"]["tilt"] = %sw_rt_helo_tilt;
    level.scr_anim["rt_helo1_mover"]["tilt"] = %sw_rt_helo_tilt;
    level.scr_anim["rt_helo0_mover"]["tilt_parent"] = %helo_tilt_overlay;
    level.scr_anim["rt_helo1_mover"]["tilt_parent"] = %helo_tilt_overlay;
    maps\_anim::addnotetrack_notify( "rt_helo_mover", "helo_hit_train", "notify_helo_hit_train" );
    maps\_anim::addnotetrack_notify( "rt_helo_mover", "helo_explode", "notify_helo_explode" );
    level.scr_animtree["end_bridge"] = #animtree;
    level.scr_anim["end_bridge"]["bridge_rog_1"] = %sw_end_rog_bridge_1;
    level.scr_anim["end_bridge"]["bridge_rog_2"] = %sw_end_rog_bridge_2;
    level.scr_animtree["breach_knife"] = #animtree;
    level.scr_model["breach_knife"] = "weapon_bowie_knife";
    level.scr_animtree["loco_breach_RPG_model"] = #animtree;
    level.scr_model["loco_breach_RPG_model"] = "weapon_rpg7";
    level.scr_anim["loco_breach_RPG_model"]["loco_breach_death"] = %sw_enginecar_breach_opfor3_death_rpg;
    level.scr_anim["loco_breach_RPG_model"]["loco_breach"] = %sw_enginecar_breach_opfor3_rpg;
    level.scr_animtree["loco_breach_RPG_fx"] = #animtree;
    level.scr_model["loco_breach_RPG_fx"] = "sw_helo_mover";
    level.scr_anim["loco_breach_RPG_fx"]["loco_breach_death"] = %sw_enginecar_breach_rpg_fx_miss;
    level.scr_anim["loco_breach_RPG_fx"]["loco_breach"] = %sw_enginecar_breach_rpg_fx_hit;
    level.scr_animtree["loco_breach_door"] = #animtree;
    level.scr_anim["loco_breach_door"]["loco_breach"] = %sw_enginecar_breach_door;
    level.scr_animtree["loco_control_room_door"] = #animtree;
    level.scr_anim["loco_control_room_door"]["loco_slide"] = %sw_enginecar_slide_door;
    level.scr_animtree["loco_control_room_glass"] = #animtree;
    level.scr_anim["loco_control_room_glass"]["loco_slide"] = %sw_enginecar_slide_glass;
    level.scr_animtree["bridgepiece7"] = #animtree;
    level.scr_model["bridgepiece7"] = "sw_vista_broken_bridge_7";
    level.scr_anim["bridgepiece7"]["loco_blasthit"] = %sw_bridgepiece7_blasthit_train;
    maps\_anim::addnotetrack_notify( "bridgepiece7", "splash", "notify_bridgepiece_splash" );
    level.scr_animtree["bridgepiece6"] = #animtree;
    level.scr_model["bridgepiece6"] = "sw_vista_broken_bridge_6";
    level.scr_anim["bridgepiece6"]["loco_blasthit"] = %sw_bridgepiece6_blasthit_train;
    maps\_anim::addnotetrack_notify( "bridgepiece6", "splash", "notify_bridgepiece_splash" );
    level.scr_animtree["bridgepieceL_1"] = #animtree;
    level.scr_model["bridgepieceL_1"] = "sw_fx_bridge_piece_1";
    level.scr_anim["bridgepieceL_1"]["loco_blasthit"] = %sw_bridgepiecel_1_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceL_1", "splash", maps\skyway_fx::fx_bridgefall_large_splash );
    level.scr_animtree["bridgepieceL_2"] = #animtree;
    level.scr_model["bridgepieceL_2"] = "sw_fx_bridge_piece_1";
    level.scr_anim["bridgepieceL_2"]["loco_blasthit"] = %sw_bridgepiecel_2_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceL_2", "splash", maps\skyway_fx::fx_bridgefall_large_splash );
    level.scr_animtree["bridgepieceS_1"] = #animtree;
    level.scr_model["bridgepieceS_1"] = "sw_fx_bridge_piece_2";
    level.scr_anim["bridgepieceS_1"]["loco_blasthit"] = %sw_bridgepieces_1_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceS_1", "splash", maps\skyway_fx::fx_bridgefall_small_splash );
    level.scr_animtree["bridgepieceS_2"] = #animtree;
    level.scr_model["bridgepieceS_2"] = "sw_fx_bridge_piece_2";
    level.scr_anim["bridgepieceS_2"]["loco_blasthit"] = %sw_bridgepieces_2_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceS_2", "splash", maps\skyway_fx::fx_bridgefall_small_splash );
    level.scr_animtree["bridgepieceM_1"] = #animtree;
    level.scr_model["bridgepieceM_1"] = "sw_fx_bridge_piece_3";
    level.scr_anim["bridgepieceM_1"]["loco_blasthit"] = %sw_bridgepiecem_1_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceM_1", "splash", maps\skyway_fx::fx_bridgefall_med_splash );
    level.scr_animtree["bridgepieceM_2"] = #animtree;
    level.scr_model["bridgepieceM_2"] = "sw_fx_bridge_piece_3";
    level.scr_anim["bridgepieceM_2"]["loco_blasthit"] = %sw_bridgepiecem_2_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceM_2", "splash", maps\skyway_fx::fx_bridgefall_med_splash );
    level.scr_animtree["bridgepieceM_3"] = #animtree;
    level.scr_model["bridgepieceM_3"] = "sw_fx_bridge_piece_3";
    level.scr_anim["bridgepieceM_3"]["loco_blasthit"] = %sw_bridgepiecem_3_blasthit_train;
    maps\_anim::addnotetrack_customfunction( "bridgepieceM_3", "splash", maps\skyway_fx::fx_bridgefall_med_splash );
    level.scr_animtree["pt2_gun"] = #animtree;
    level.scr_model["pt2_gun"] = "weapon_magnum_iw6";
    level.scr_anim["pt2_gun"]["pt2_crash"] = %sw_end_pt2_start_gun;
    level.scr_anim["pt2_gun"]["pt2_crawl"] = %sw_end_pt2_crawl_gun;
    level.scr_animtree["pt2_extinguisher"] = #animtree;
    level.scr_model["pt2_extinguisher"] = "com_fire_extinguisher_anim";
    level.scr_anim["pt2_extinguisher"]["pt2_crash"] = %sw_end_pt2_start_extinguisher;
    level.scr_anim["pt2_extinguisher"]["pt2_crawl"] = %sw_end_pt2_crawl_extinguisher;
    level.scr_anim["pt2_extinguisher"]["loco_blasthit"] = %sw_enginecar_blasthit_extinguisher;
    level.scr_anim["pt2_extinguisher"]["loco_slide"] = %sw_enginecar_slide_extinguisher;
    level.scr_animtree["pt2_locomotive"] = #animtree;
    level.scr_model["pt2_locomotive"] = "sw_traincar_loco_ending";
    level.scr_anim["pt2_locomotive"]["pt2_crash"] = %sw_end_pt2_locomotive_sinking;
    level.scr_animtree["pt2_speedloader"] = #animtree;
    level.scr_model["pt2_speedloader"] = "sw_speedloader";
    level.scr_anim["pt2_speedloader"]["pt2_speedloader"] = %sw_end_pt2_speedloader_speedloader;
    level.scr_anim["pt2_speedloader"]["pt2_load_gun"] = %sw_end_pt2_loadgun_speedloader;
    level.scr_animtree["pt2_bullet_start"] = #animtree;
    level.scr_model["pt2_bullet_start"] = "sw_helo_mover";
    level.scr_anim["pt2_bullet_start"]["pt2_speedloader"] = %sw_end_pt2_speedloader_bullet_start;
    level.scr_animtree["pt2_bullet_end"] = #animtree;
    level.scr_model["pt2_bullet_end"] = "sw_helo_mover";
    level.scr_anim["pt2_bullet_end"]["pt2_speedloader"] = %sw_end_pt2_speedloader_bullet_end;
    level.scr_animtree["pt2_bullet_tumble"] = #animtree;
    level.scr_model["pt2_bullet_tumble"] = "sw_helo_mover";
    level.scr_anim["pt2_bullet_tumble"]["pt2_speedloader"] = %sw_end_pt2_speedloader_bullet_tumble;
    level.scr_animtree["pt2_bullet"] = #animtree;
    level.scr_model["pt2_bullet"] = "sw_speedloader_bullet";
    level.scr_animtree["seafloor"] = #animtree;
    level.scr_anim["seafloor"]["pt2_crash"] = %sw_end_pt2_start_seafloor;
    level.scr_animtree["debris"] = #animtree;
    level.scr_model["debris"] = "skyway_loco_destroyed_cockpit_debris";
    level.scr_anim["debris"]["pt2_crash"] = %sw_end_pt2_start_debris;
    level.scr_anim["debris"]["pt2_crash_loop"][0] = %sw_end_pt2_loop_debris;
    maps\_anim::addnotetrack_notify( "seafloor", "hit_seafloor_1", "notify_hit_floor_1", "pt2_crash" );
    maps\_anim::addnotetrack_notify( "seafloor", "hit_seafloor_2", "notify_hit_floor_2", "pt2_crash" );
    maps\_anim::addnotetrack_notify( "seafloor", "hit_seafloor_3", "notify_hit_floor_3", "pt2_crash" );
    maps\_anim::addnotetrack_notify( "seafloor", "hit_seafloor_4", "notify_hit_floor_4", "pt2_crash" );
    level.scr_animtree["sw_swim_view_fx"] = #animtree;
    level.scr_model["sw_swim_view_fx"] = "sw_helo_mover";
    level.scr_anim["sw_swim_view_fx"]["swim_fx_base"] = %sw_swim_view_fx_base;
    level.scr_anim["sw_swim_view_fx"]["swim_drown_overlay"] = %swim_drown_overlay;
    level.scr_anim["sw_swim_view_fx"]["swim_fx_add"] = %sw_swim_view_fx_add;
    level.scr_animtree["beach_knife"] = #animtree;
    level.scr_model["beach_knife"] = "weapon_knife_iw6";
    level.scr_animtree["end_dvora1"] = #animtree;
    level.scr_anim["end_dvora1"]["sink"] = %sw_end_dvora1;
    level.scr_animtree["end_dvora2"] = #animtree;
    level.scr_anim["end_dvora2"]["sink"] = %sw_end_dvora2;
    level.scr_animtree["end_dvora3"] = #animtree;
    level.scr_anim["end_dvora3"]["sink"] = %sw_end_dvora3;
    level.scr_animtree["end_dvora4"] = #animtree;
    level.scr_anim["end_dvora4"]["sink"] = %sw_end_dvora4;
    level.scr_animtree["end_cruiser1"] = #animtree;
    level.scr_anim["end_cruiser1"]["sink"] = %sw_end_cruis1;
    level.scr_animtree["end_cruiser2"] = #animtree;
    level.scr_anim["end_cruiser2"]["sink"] = %sw_end_cruis2;
    level.scr_animtree["end_cruiser3"] = #animtree;
    level.scr_anim["end_cruiser3"]["sink"] = %sw_end_cruis3;
    level.scr_animtree["end_dest1"] = #animtree;
    level.scr_anim["end_dest1"]["sink"] = %sw_end_dest1;
    level.scr_animtree["end_dest2"] = #animtree;
    level.scr_anim["end_dest2"]["sink"] = %sw_end_dest2;
    level.scr_animtree["end_dest3"] = #animtree;
    level.scr_anim["end_dest3"]["sink"] = %sw_end_dest3;
    level.scr_animtree["end_dest4"] = #animtree;
    level.scr_anim["end_dest4"]["sink"] = %sw_end_dest4;
    level.scr_animtree["end_dest5"] = #animtree;
    level.scr_anim["end_dest5"]["sink"] = %sw_end_dest5;
    level.scr_animtree["end_dest6"] = #animtree;
    level.scr_anim["end_dest6"]["sink"] = %sw_end_dest6;
    level.scr_animtree["end_dest7"] = #animtree;
    level.scr_anim["end_dest7"]["sink"] = %sw_end_dest7;
    level.scr_animtree["end_dest8"] = #animtree;
    level.scr_anim["end_dest8"]["sink"] = %sw_end_dest8;
    level.scr_animtree["end_dest9"] = #animtree;
    level.scr_anim["end_dest9"]["sink"] = %sw_end_dest9;
    level.scr_animtree["end_dest10"] = #animtree;
    level.scr_anim["end_dest10"]["sink"] = %sw_end_dest10;
    level.scr_animtree["end_dest11"] = #animtree;
    level.scr_anim["end_dest11"]["sink"] = %sw_end_dest11;
    level.scr_animtree["end_dest12"] = #animtree;
    level.scr_anim["end_dest12"]["sink"] = %sw_end_dest12;
    level.scr_animtree["sun_pit"] = #animtree;
    level.scr_model["sun_pit"] = "sw_helo_mover";
    level.scr_anim["sun_pit"]["pit_of_despair"] = %sw_sun_pit_of_despair;
    level.scr_animtree["moon_pit"] = #animtree;
    level.scr_model["moon_pit"] = "sw_helo_mover";
    level.scr_anim["moon_pit"]["pit_of_despair"] = %sw_moon_pit_of_despair;
    level.scr_animtree["moonlight_pit"] = #animtree;
    level.scr_model["moonlight_pit"] = "sw_helo_mover";
    level.scr_anim["moonlight_pit"]["pit_of_despair"] = %sw_moonlight_pit_of_despair;
}

update_train_path_anims( var_0 )
{
    switch ( var_0 )
    {
        case "sus_r_broken":
            level.scr_anim["train_rt1_sus_f"]["loop_a1"] = %sw_loopa1_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["loop_a2"] = %sw_loopa2_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["bb_1"] = %sw_bb_1_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["bb_2"] = %sw_bb_2_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["ab_1"] = %sw_ab1_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["ab_2"] = %sw_ab2_pass4_sus_f_broken;
            level.scr_anim["train_rt1_sus_f"]["wheels"] = %sw_train_wheels_broken_sus;
            break;
    }
}

vehicle_anims()
{

}

loco_breach_player_shot( var_0 )
{

}

breach_enemy_player_stab( var_0 )
{
    level.player dodamage( level.player.health - 1, var_0 geteye(), var_0, var_0 );
    level.player disableweapons();
    level notify( "failure" );
    setdvar( "ui_deadquote", "" );
    maps\_utility::missionfailedwrapper();
}

notetrack_player_kick_door( var_0 )
{
    earthquake( 0.4, 0.5, level.player.origin, 3000 );
    level.player playrumbleonentity( "damage_heavy" );
}

notetrack_player_blast( var_0 )
{

}

loco_breach_opfor_start( var_0 )
{
    common_scripts\utility::array_call( level.end_breach_enemies, ::linkto, level.loco_breach_anim_node );
    level.loco_breach_anim_node thread maps\_anim::anim_single( level.end_breach_enemies, "loco_breach" );
    level waittill( "notify_opfor_knife_show" );
    level.end_breach_enemies[1] attach( level.scr_model["breach_knife"], "TAG_INHAND" );
}

loco_breach_smokin_mirrors( var_0 )
{
    level.player.disablereload = 1;
    level.player disableweapons();
    level.player disableoffhandweapons();
    level.player disableweaponswitch();
    common_scripts\utility::flag_set( "flag_breach_final_tracks" );
}

loco_slide_player_view_lerp_down( var_0 )
{
    level.player lerpviewangleclamp( 1.0, 0, 0, 0, 0, 0, 0 );
}

loco_slide_player_view_lerp_up( var_0 )
{
    level.player lerpviewangleclamp( 0.5, 0, 0, 45, 45, 20, 0 );
    wait 1.4;
    level.player lerpviewangleclamp( 0.6, 0, 0, 0, 0, 0, 0 );
}

breach_enemy_death_anim_override()
{
    if ( !isdefined( self.nodeathsound ) )
        animscripts\death::playdeathsound();

    if ( isdefined( self.deathanim ) )
    {
        self stopanimscripted();
        self setflaggedanimknoblimitedrestart( "deathanim", self.deathanim, 1, 0.2 );
        wait( getanimlength( self.deathanim ) );
        thread end_breach_swap_dead_opfor();
        return 1;
    }

    return 0;
}

loco_gunhold_player_drop_weapon( var_0 )
{
    level.player forcemovingplatformentity( undefined );
    level.player.disablereload = 1;
    level.player disableweapons();
    level.player disableoffhandweapons();
    level.player disableweaponswitch();
    level.player springcamdisabled( 0.5 );

    if ( maps\_utility::is_gen4() )
        thread maps\_art::dof_enable_script( 0, 2, 1.8, 20, 61, 6, 0.1 );
    else
        thread maps\_art::dof_enable_script( 0, 2, 1.8, 20, 61, 2.2, 0.16 );

    thread maps\skyway_loco::handle_revolver_bullet_fiction();
}

loco_gunhold_end_slowmo( var_0 )
{
    level notify( "notify_loco_breach_slowmo_end" );
}

end_breach_swap_dead_opfor()
{
    level.loco_breach_anim_node thread maps\_anim::anim_last_frame_solo( self, "loco_breach_death" );
    level waittill( "notify_swap_dead_opfor" );
    self delete();
}

notetrack_headbutt( var_0 )
{
    level.player playsound( "scn_sw_loco_standoff_02" );
    level.player shellshock( "default_nosound", 1.0 );
    level.player maps\_hud_util::fade_out( 0, "white" );
    level.player playrumbleonentity( "grenade_rumble" );
    wait 0.1;
    level.player maps\_hud_util::fade_in( 0.5, "white" );

    if ( isdefined( level.end_control_enemies[2].magic_bullet_shield ) && level.end_control_enemies[2].magic_bullet_shield )
        level.end_control_enemies[2] maps\_utility::stop_magic_bullet_shield();

    level.end_control_enemies[2] hide();
    level.end_control_enemies[2] delete();
}

notetrack_in_the_face( var_0 )
{
    level.player playrumbleonentity( "grenade_rumble" );
    level.player shellshock( "default_nosound", 2.5 );
    level.player maps\_hud_util::fade_out( 0, "white" );
    setblur( 6, 0.05 );
    wait 0.1;
    level.player maps\_hud_util::fade_in( 0.3, "white" );
    maps\_utility::vision_set_fog_changes( "skyway_standoff_rocked", 0.1 );
    setblur( 0, 1.0 );
    wait 0.3;
    maps\_utility::vision_set_fog_changes( "skyway_standoff", 6.0 );
    wait 1;
    thread maps\_art::dof_enable_script( 0, 5.0, 4, 20, 100, 3, 0.5 );
    wait 1.8;
    thread maps\_art::dof_enable_script( 5, 40, 4, 20, 100, 0, 0.3 );
    wait 11;
    thread maps\_art::dof_enable_script( 0, 12, 4, 1000, 20000, 0.1, 2 );
}

notetrack_hit_door( var_0 )
{
    maps\skyway_util::train_quake( 0.6, 1.0, level.player.origin, 2048 );
    level.player playrumbleonentity( "grenade_rumble" );
    thread maps\skyway_util::player_rumble_bump( level.player_rumble_ent, 0.8, 0.0, 0.2, 0.0, 0.5 );
    thread maps\_art::dof_enable_script( 0, 60, 6.08, 6623.4, 13099.2, 1.8, 3.2 );
    level.player shellshock( "default_nosound", 1.5 );
    level.player maps\_hud_util::fade_out( 0, "white" );
    wait 0.1;
    level.player maps\_hud_util::fade_in( 0.15, "white" );
}

loco_falling_glass( var_0 )
{
    playfxontag( common_scripts\utility::getfx( "loco_falling_glass" ), level._train.cars["train_loco"].body, "tag_controlroom_glass_lift" );
}

standoff_temp_vo_hesh_4( var_0 )
{
    maps\skyway_util::temp_dialogue_line( "Hesh", "You lost, Rorke", 2.5 );
}

standoff_temp_vo_hesh_5( var_0 )
{
    maps\skyway_util::temp_dialogue_line( "Hesh", "Its over", 2.5 );
}
