// 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_us_udt"; level.scr_anim["player_rig"]["player_intro"] = %blackice_player_intro; level.scr_anim["player_rig"]["player_surface_arms"] = %blackice_player_surface_arms; level.scr_anim["player_rig"]["player_surface_root"] = %blackice_player_surface_root; level.scr_anim["player_rig"]["player_surface_root_pt2"] = %blackice_player_surface_root_pt2; maps\_anim::addnotetrack_flag( "player_rig", "surface_anim_swap", "flag_surface_anim_swap" ); level.scr_anim["player_rig"]["alpha_rig_ascend_aim"] = %blackice_player_rigascend_aim; level.scr_anim["player_rig"]["alpha_rig_ascend_aim_loop"][0] = %blackice_player_rigascend_aim_loop; level.scr_anim["player_rig"]["alpha_rig_ascend_linkup"] = %blackice_player_linkup; level.scr_anim["player_rig"]["alpha_rig_ascend_groundidle"][0] = %blackice_player_groundidle; level.scr_anim["player_rig"]["alpha_rig_ascend"] = %blackice_player_rigascend; level.scr_anim["player_rig"]["player_rigascend_noise"] = %blackice_player_rigascend_noise; level.scr_anim["player_rig"]["rigascend_noise_parent"] = %rigascend_noise; level.scr_anim["player_rig"]["rig_ascend_stop"] = %blackice_player_rigascend_stop; level.scr_anim["player_rig"]["rig_ascend_start"] = %blackice_player_rigascend_start; level.scr_anim["player_rig"]["rigascend_aim_left_parent"] = %rigascend_aim_left; level.scr_anim["player_rig"]["rigascend_aim_right_parent"] = %rigascend_aim_right; level.scr_anim["player_rig"]["rigascend_aim_up_parent"] = %rigascend_aim_up; level.scr_anim["player_rig"]["rigascend_aim_down_parent"] = %rigascend_aim_down; level.scr_anim["player_rig"]["rigascend_aim_left"] = %blackice_player_rigascend_aim_left; level.scr_anim["player_rig"]["rigascend_aim_right"] = %blackice_player_rigascend_aim_right; level.scr_anim["player_rig"]["rigascend_aim_up"] = %blackice_player_rigascend_aim_up; level.scr_anim["player_rig"]["rigascend_aim_down"] = %blackice_player_rigascend_aim_down; maps\_anim::addnotetrack_customfunction( "player_rig", "free_look_active", ::notetrack_player_free_look_active, "alpha_rig_ascend" ); maps\_anim::addnotetrack_customfunction( "player_rig", "additive_anims_start", ::notetrack_player_additive_anims_start, "alpha_rig_ascend" ); maps\_anim::addnotetrack_customfunction( "player_rig", "draw_weapon", ::notetrack_player_draw_weapon_ascend, "alpha_rig_ascend" ); maps\_anim::addnotetrack_flag( "player_rig", "bravo_leave", "flag_ascend_bravo_go" ); maps\_anim::addnotetrack_notify( "player_rig", "change_snowfx", "notify_start_catwalks_snow", "alpha_rig_ascend" ); level.scr_anim["player_rig"]["breach"] = %blackice_commonroom_player; maps\_anim::addnotetrack_notify( "player_rig", "start_bullets", "notify_start_bullets", "breach" ); maps\_anim::addnotetrack_notify( "player_rig", "green_light_start", "notify_start_green_light", "breach" ); maps\_anim::addnotetrack_notify( "player_rig", "red_light_start", "notify_start_red_light", "breach" ); maps\_anim::addnotetrack_notify( "player_rig", "damage_breacher", "notify_damage_breacher", "breach" ); maps\_anim::addnotetrack_flag( "player_rig", "ally_start", "flag_common_breach_ally_start", "breach" ); maps\_anim::addnotetrack_customfunction( "player_rig", "draw_your_weapon", ::cw_common_breach_draw_weapon, "breach" ); level.scr_anim["player_rig"]["turn_off_flare_stack"] = %blackice_flare_stack_player; level.scr_anim["player_rig"]["command_start"] = %blackice_controlroom_player_start; level.scr_anim["player_rig"]["command_end"] = %blackice_controlroom_player_end; level.scr_anim["player_rig"]["command_early"] = %blackice_controlroom_player_early; level.scr_anim["player_rig"]["command_late"] = %blackice_controlroom_player_late; level.scr_anim["player_rig"]["command_control"] = %blackice_controlroom_player_control; level.scr_anim["player_rig"]["ladder_chase"] = %blackice_player_exfil_explode; level.scr_anim["player_rig"]["exfil_fail"] = %blackice_player_exfil_fail; level.scr_anim["player_rig"]["jump_arms"] = %blackice_player_exfil_jumparms; level.scr_anim["player_rig"]["jump_arms_fail"] = %blackice_player_exfil_jumparms_fail; level.scr_anim["player_rig"]["cam_test"] = %blackice_player_exfil_jumparms; maps\_anim::addnotetrack_notify( "player_rig", "focus_monitor", "notify_focus_monitor", "command_start" ); maps\_anim::addnotetrack_notify( "player_rig", "blast", "notify_command_early_blast", "command_early" ); maps\_anim::addnotetrack_notify( "player_rig", "flare_console_small_quake", "notify_flare_stack_button_press", "turn_off_flare_stack" ); maps\_anim::addnotetrack_notify( "player_rig", "flip_switch", "notify_console_flip_switch", "turn_off_flare_stack" ); maps\_anim::addnotetrack_notify( "player_rig", "draw_weapon", "notify_player_draw_weapon", "turn_off_flare_stack" ); maps\_anim::addnotetrack_notify( "player_rig", "unlink", "notify_player_unlink", "turn_off_flare_stack" ); maps\_anim::addnotetrack_notify( "player_rig", "flare_stack_off", "notify_stop_flare_stack", "turn_off_flare_stack" ); maps\_anim::addnotetrack_notify( "player_rig", "unhide_arms", "notify_player_unhide_arms", "ladder_chase" ); maps\_anim::addnotetrack_notify( "player_rig", "fade_to_black", "notify_flyout_fade_to_black", "ladder_chase" ); maps\_anim::addnotetrack_notify( "player_rig", "death", "notify_player_hit_ice", "exfil_fail" ); maps\_anim::addnotetrack_notify( "player_rig", "quit_smoking", "notify_stop_view_smoke_fx", "exfil_fail" ); maps\_anim::addnotetrack_customfunction( "player_rig", "allow_player_control", ::notetrack_swim_begin_player_control ); maps\_anim::addnotetrack_customfunction( "player_rig", "player_breach_water", ::notetrack_player_breach_water ); maps\_anim::addnotetrack_customfunction( "player_rig", "player_remove_mask", ::notetrack_remove_mask ); maps\_anim::addnotetrack_customfunction( "player_rig", "release_allies", ::notetrack_release_allies ); maps\_anim::addnotetrack_customfunction( "player_rig", "draw_weapon", ::notetrack_player_draw_weapon_surface, "player_surface_root_pt2" ); maps\_anim::addnotetrack_customfunction( "player_rig", "loosen_lookaround", ::notetrack_swim_loosen_lookaround ); maps\_anim::addnotetrack_customfunction( "player_rig", "End_player_control", ::notetrack_ascend_end_player_control, "alpha_rig_ascend" ); maps\_anim::addnotetrack_customfunction( "player_rig", "allow_free_look", ::notetrack_control_room_allow_free_look ); maps\_anim::addnotetrack_customfunction( "player_rig", "start_baker", ::notetrack_control_room_start_baker ); maps\_anim::addnotetrack_customfunction( "player_rig", "slowmo_start", maps\black_ice_exfil::notetrack_slowmo_start ); maps\_anim::addnotetrack_customfunction( "player_rig", "fire_shake", maps\black_ice_ascend::notetrack_fire_shake ); maps\_anim::addnotetrack_customfunction( "player_rig", "takeoff", maps\black_ice_ascend::notetrack_takeoff ); maps\_anim::addnotetrack_customfunction( "player_rig", "shake_start", maps\black_ice_ascend::notetrack_shake_start ); maps\_anim::addnotetrack_customfunction( "player_rig", "shake_stop", maps\black_ice_ascend::notetrack_shake_stop ); maps\_anim::addnotetrack_customfunction( "player_rig", "grab_shake", maps\black_ice_exfil::notetrack_grab_shake ); maps\_anim::addnotetrack_customfunction( "player_rig", "shockwave_shake", maps\black_ice_exfil::notetrack_shockwave_shake ); maps\_anim::addnotetrack_customfunction( "player_rig", "blast_shake_early", maps\black_ice_command::notetrack_blast_shake_early ); maps\_anim::addnotetrack_customfunction( "player_rig", "blast_shake_late", maps\black_ice_command::notetrack_blast_shake_late ); maps\_anim::addnotetrack_flag( "player_rig", "fail_late", "flag_ladder_jumpfail_nojump", "ladder_chase" ); } #using_animtree("generic_human"); generic_human_anims() { level.scr_anim["snake_cam_enemy"]["intro_1"] = %blackice_intro_snakecam_opfor_1; level.scr_anim["snake_cam_enemy"]["intro_2"] = %blackice_intro_snakecam_opfor_2; level.scr_anim["snake_cam_enemy"]["intro_3"] = %blackice_intro_snakecam_opfor_3; level.scr_anim["snake_cam_enemy"]["intro_4"] = %blackice_intro_snakecam_opfor_4; level.scr_anim["snake_cam_enemy"]["intro_5"] = %blackice_intro_snakecam_opfor_9; level.scr_anim["opfor5"]["enemy_dismount"] = %blackice_intro_snakecam_opfor_5; level.scr_anim["opfor6"]["enemy_dismount"] = %blackice_intro_snakecam_opfor_6; level.scr_anim["opfor7"]["enemy_dismount"] = %blackice_intro_snakecam_opfor_7; level.scr_anim["opfor8"]["enemy_dismount"] = %blackice_intro_snakecam_opfor_8; level.scr_anim["scuba_ally"]["intro_ally1"] = %blackice_intro_ally2; level.scr_anim["scuba_ally"]["intro_ally2"] = %blackice_intro_ally1; maps\_anim::addnotetrack_customfunction( "scuba_ally", "bubbles_1", ::notetrack_intro_ally2_bubbles ); maps\_anim::addnotetrack_notify( "scuba_ally", "line3_1", "notify_snake_cam_dialogue_line3_1" ); level.scr_anim["scuba_ally"]["intro_ally1_idle"][0] = %blackice_intro_ally2_idle; level.scr_anim["scuba_ally"]["intro_ally2_idle"][0] = %blackice_intro_ally1_idle; level.scr_anim["scuba_ally"]["breach_ally1"] = %blackice_breach_ally2; level.scr_anim["scuba_ally"]["breach_ally2"] = %blackice_breach_ally1; level.scr_anim["ice_breach_enemy"]["death_anim0"] = %blackice_introbreach_opfor1_death; level.scr_anim["ice_breach_enemy"]["death_anim1"] = %blackice_introbreach_opfor2_death; level.scr_anim["ice_breach_enemy"]["death_anim2"] = %blackice_introbreach_opfor3_death; level.scr_anim["ice_breach_enemy"]["death_anim3"] = %blackice_introbreach_opfor4_death; level.scr_anim["ice_breach_enemy"]["death_anim4"] = %blackice_introbreach_opfor5_death; level.scr_anim["ice_breach_enemy"]["death_anim5"] = %blackice_introbreach_opfor6_death; level.scr_anim["ice_breach_enemy"]["death_anim6"] = %blackice_introbreach_opfor7_death; level.scr_anim["ice_breach_enemy"]["death_anim7"] = %blackice_introbreach_opfor8_death; level.scr_anim["ice_breach_enemy"]["death_anim8"] = %blackice_introbreach_opfor9_death; level.scr_anim["ice_breach_enemy"]["death_anim9"] = %blackice_introbreach_opfor10_death; level.scr_anim["ice_breach_enemy"]["introbreach_opfor0"] = %blackice_introbreach_opfor1; level.scr_anim["ice_breach_enemy"]["introbreach_opfor1"] = %blackice_introbreach_opfor2; level.scr_anim["ice_breach_enemy"]["introbreach_opfor2"] = %blackice_introbreach_opfor3; level.scr_anim["ice_breach_enemy"]["introbreach_opfor3"] = %blackice_introbreach_opfor4; level.scr_anim["ice_breach_enemy"]["introbreach_opfor4"] = %blackice_introbreach_opfor5; level.scr_anim["ice_breach_enemy"]["introbreach_opfor5"] = %blackice_introbreach_opfor6; level.scr_anim["ice_breach_enemy"]["introbreach_opfor6"] = %blackice_introbreach_opfor7; level.scr_anim["ice_breach_enemy"]["introbreach_opfor7"] = %blackice_introbreach_opfor8; level.scr_anim["ice_breach_enemy"]["introbreach_opfor8"] = %blackice_introbreach_opfor9; level.scr_anim["ice_breach_enemy"]["introbreach_opfor9"] = %blackice_introbreach_opfor10; maps\_anim::addnotetrack_notify( "scuba_ally", "line5_1", "notify_swim_dialog5_1" ); maps\_anim::addnotetrack_flag( "scuba_ally", "line5_1", "flag_player_clear_to_breach" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6", "notify_swim_dialog6" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6_1", "notify_swim_dialog6_1" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6_2", "notify_swim_dialog6_2" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6_3", "notify_swim_dialog6_3" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6_4", "notify_swim_dialog6_4" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line6_5", "notify_swim_dialog6_5" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line7", "notify_swim_dialog7" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line7_1", "notify_swim_dialog7_1" ); maps\_anim::addnotetrack_notify( "scuba_ally", "line8", "notify_swim_dialog8" ); maps\_anim::addnotetrack_notify( "scuba_ally", "pullout_detonator", "notify_pullout_detonator" ); maps\_anim::addnotetrack_notify( "scuba_ally", "end_breach", "notify_swim_end_breach" ); maps\_anim::addnotetrack_notify( "scuba_ally", "allow_movement", "notify_swim_allow_movement" ); level.scr_anim["scuba_ally"]["surface_ally1"] = %blackice_surface_ally2; level.scr_anim["scuba_ally"]["surface_ally2"] = %blackice_surface_ally1; level.scr_anim["scuba_ally"]["surface_ally1_idle"][0] = %blackice_surface_ally2_idle; level.scr_anim["scuba_ally"]["surface_ally2_idle"][0] = %blackice_surface_ally1_idle; level.scr_anim["scuba_ally"]["surface_ally1_up"] = %blackice_surface_ally2_up; level.scr_anim["scuba_ally"]["surface_ally2_up"] = %blackice_surface_ally1_up; level.scr_anim["scuba_ally"]["surface_ally3_up"] = %blackice_surface_ally3_up; level.scr_anim["scuba_ally"]["surface_ally3_up_pt2"] = %blackice_surface_ally3_up_pt2; maps\_anim::addnotetrack_notify( "scuba_ally", "icehole_godrays", "notify_icehole_godrays" ); maps\_anim::addnotetrack_dialogue( "scuba_ally", "wave_to_player", "surface_ally1_up", "blackice_bkr_onthatrig" ); var_0 = []; var_0["run"]["stairs_up"] = %traverse_stair_run_01_blackice; maps\_utility::register_archetype( "black_ice_ally", var_0 ); level.scr_anim["generic"]["camp_pain_dead"] = %blackice_surface_opfor4; level.scr_anim["generic"]["camp_pain_long_1"] = %blackice_surface_opfor1; level.scr_anim["generic"]["camp_pain_long_2"] = %blackice_surface_opfor2; level.scr_anim["generic"]["camp_pain_short_1"] = %blackice_surface_opfor3; level.scr_anim["generic"]["camp_pain_tumble"] = %blackice_surface_opfor5; level.scr_anim["generic"]["unarmed_run"] = %unarmed_scared_run_delta; level.scr_anim["generic"]["run_180_1"] = %run_reaction_180; level.scr_anim["generic"]["run_180_2"] = %civilian_run_upright_turn180; level.scr_anim["ally1"]["grenade"] = %doorpeek_grenade; level.scr_anim["ally1"]["kick"] = %doorpeek_kick; level.scr_anim["heli_opfor1"]["arrive"] = %blackice_basecamp_heliarrive_opfor1; level.scr_anim["heli_opfor2"]["arrive"] = %blackice_basecamp_heliarrive_opfor2; level.scr_anim["heli_opfor3"]["arrive"] = %blackice_basecamp_heliarrive_opfor3; level.scr_anim["heli_opfor4"]["arrive"] = %blackice_basecamp_heliarrive_opfor4; level.scr_anim["heli_opfor1"]["leave"] = %blackice_basecamp_heli_opfor1; level.scr_anim["heli_opfor2"]["leave"] = %blackice_basecamp_heli_opfor2; level.scr_anim["heli_opfor3"]["leave"] = %blackice_basecamp_heli_opfor3; level.scr_anim["heli_opfor4"]["leave"] = %blackice_basecamp_heli_opfor4; level.scr_anim["bravo1"]["ascend_runin"] = %blackice_ally1_runin; level.scr_anim["bravo1"]["ascend_waiting"][0] = %blackice_ally1_waiting; level.scr_anim["bravo1"]["bravo_rope_shoot"] = %blackice_ally1_rigshoot; level.scr_anim["bravo1"]["bravo_rope_idle"][0] = %blackice_ally1_rig_idle; level.scr_anim["bravo1"]["bravo_rig_ascend"] = %blackice_ally1_rigascend; level.scr_anim["bravo2"]["ascend_runin"] = %blackice_ally2_runin; level.scr_anim["bravo2"]["ascend_waiting"][0] = %blackice_ally2_waiting; level.scr_anim["bravo2"]["bravo_rope_shoot"] = %blackice_ally2_rigshoot; level.scr_anim["bravo2"]["bravo_rope_idle"][0] = %blackice_ally2_rig_idle; level.scr_anim["bravo2"]["bravo_rig_ascend"] = %blackice_ally2_rigascend; level.scr_anim["ally1"]["ascend_runin"] = %blackice_ally4_runin; level.scr_anim["ally1"]["ascend_waiting"][0] = %blackice_ally4_waiting; level.scr_anim["ally1"]["alpha_rope_shoot"] = %blackice_ally4_ropeshoot; level.scr_anim["ally1"]["alpha_hand_rope"][0] = %blackice_ally4_handrope; level.scr_anim["ally1"]["alpha_rig_ascend"] = %blackice_ally4_rigascend; level.scr_anim["ally2"]["ascend_runin"] = %blackice_ally5_runin; level.scr_anim["ally2"]["ascend_waiting"][0] = %blackice_ally5_waiting; level.scr_anim["ally2"]["alpha_rope_shoot"] = %blackice_ally5_ropeshoot; level.scr_anim["ally2"]["alpha_hand_rope"][0] = %blackice_ally5_handrope; level.scr_anim["ally2"]["alpha_rig_ascend"] = %blackice_ally5_rigascend; level.scr_anim["opfor"]["alpha_rig_ascend"] = %blackice_opfor_rigascend; maps\_anim::addnotetrack_notify( "bravo1", "line0", "notify_ascend_dialog0" ); maps\_anim::addnotetrack_notify( "bravo1", "line5", "notify_ascend_dialog5" ); maps\_anim::addnotetrack_notify( "bravo1", "line6", "notify_ascend_dialog6" ); maps\_anim::addnotetrack_notify( "bravo1", "line7", "notify_ascend_dialog7" ); maps\_anim::addnotetrack_flag( "ally1", "dialog_dontstop", "flag_dialog_dontstop" ); maps\_anim::addnotetrack_flag( "ally1", "dialog_weaponsfree", "flag_dialog_weaponsfree" ); maps\_anim::addnotetrack_customfunction( "bravo1", "rubber_band_stop", ::notetrack_ascend_rubberband_bravo_stop ); maps\_anim::addnotetrack_customfunction( "ally1", "rubber_band_start", ::notetrack_ascend_rubberband_alpha_start ); maps\_anim::addnotetrack_customfunction( "ally1", "rubber_band_stop", ::notetrack_ascend_rubberband_alpha_stop ); level.scr_animtree["player_legs_ascend"] = #animtree; level.scr_model["player_legs_ascend"] = "body_hero_sandman_seal_udt_b"; level.scr_anim["player_legs_ascend"]["alpha_rig_ascend_linkup"] = %blackice_playerlegs_linkup; level.scr_anim["player_legs_ascend"]["alpha_rig_ascend_groundidle"][0] = %blackice_playerlegs_groundidle; level.scr_anim["player_legs_ascend"]["alpha_rig_ascend"] = %blackice_playerlegs_rigascend; level.scr_anim["player_legs_ascend"]["rig_ascend_stop"] = %blackice_playerlegs_rigascend_stop; level.scr_anim["player_legs_ascend"]["rig_ascend_start"] = %blackice_playerlegs_rigascend_start; level.scr_anim["generic"]["cw_falling_death"][0] = %blackice_catwalk_deathfall_1; level.scr_anim["generic"]["cw_falling_death"][1] = %blackice_catwalk_deathfall_2; level.scr_anim["generic"]["cw_falling_death"][2] = %blackice_catwalk_deathfall_5; level.scr_anim["generic"]["cw_falling_death"][3] = %blackice_catwalk_deathfall_6; level.scr_anim["ally1"]["catwalk_kill"] = %blackice_catwalkkill_ally; level.scr_anim["ally2"]["catwalk_kill"] = %blackice_catwalkkill_ally; level.scr_anim["generic"]["catwalk_kill"] = %blackice_catwalkkill_opfor; level.scr_anim["ally1"]["cw_tape_breach"] = %blackice_doortape_ally1; level.scr_anim["ally2"]["cw_tape_breach"] = %blackice_doortape_ally2; maps\_anim::addnotetrack_customfunction( "ally2", "doortape_breach", ::notetrack_cw_tape_explode, "cw_tape_breach" ); level.scr_anim["ally1"]["cw_hallsweep"] = %blackice_hallwayclear_baker; level.scr_anim["ally2"]["cw_hallsweep"] = %blackice_hallwayclear_fuentes; level.scr_anim["generic"]["cw_hallsweep"] = %blackice_hallwayclear_opfor; maps\_anim::addnotetrack_dialogue( "ally2", "fuentes_va_clear_1", "cw_hallsweep", "blackice_fnt_clearmoveup" ); maps\_anim::addnotetrack_dialogue( "ally1", "baker_vo_clear_1", "cw_hallsweep", "blackice_bkr_roomscleargo" ); maps\_anim::addnotetrack_dialogue( "ally2", "fuentes_vo_contact", "cw_hallsweep", "black_ice_fnt_contact" ); maps\_anim::addnotetrack_dialogue( "ally1", "baker_vo_clear_2", "cw_hallsweep", "black_ice_mrk_goodeyeshesh" ); maps\_anim::addnotetrack_customfunction( "ally2", "fuentes_bakers_vo_contact", ::notetrack_dialogue_hallclear, "cw_hallsweep" ); maps\_anim::addnotetrack_notify( "ally2", "fuentes_vo_contact", "cw_hallsweep_ally2_attack", "cw_hallsweep" ); maps\_anim::addnotetrack_customfunction( "generic", "opfor_dead", ::vig_actor_kill, "cw_hallsweep" ); level.scr_anim["ally1"]["rec_breach_check"] = %blackice_commonroom_ally1_check; level.scr_anim["ally1"]["rec_breach"] = %blackice_commonroom_ally1_pt1; level.scr_anim["ally2"]["rec_breach"] = %blackice_commonroom_ally2_pt1; level.scr_anim["ally1"]["rec_breach_idle"][0] = %blackice_commonroom_ally1_idle; level.scr_anim["ally2"]["rec_breach_idle"][0] = %blackice_commonroom_ally2_idle; level.scr_anim["ally1"]["rec_breach_move"] = %blackice_commonroom_ally1_pt2; level.scr_anim["ally2"]["rec_breach_move"] = %blackice_commonroom_ally2_pt2; level.scr_anim["generic"]["exposed_flashbang_v1"] = %exposed_flashbang_v1; level.scr_anim["generic"]["exposed_flashbang_v3"] = %exposed_flashbang_v3; maps\_anim::addnotetrack_notify( "ally1", "blast", "cw_common_door_down", "rec_breach" ); maps\_anim::addnotetrack_notify( "ally1", "throwaflash", "cw_common_throw_flash", "rec_breach" ); level.scr_anim["ally1"]["flarestack_start"] = %blackice_flamestack_ally1; level.scr_anim["ally1"]["flarestack_idle"][0] = %blackice_flamestack_ally1_idle; level.scr_anim["ally1"]["flarestack_end"] = %blackice_flamestack_ally1_end; maps\_anim::addnotetrack_notify( "ally1", "start_scan", "notify_flarestack_start_scan", "flarestack_start" ); maps\_anim::addnotetrack_notify( "ally1", "pistol_pullout", "notify_flarestack_baker_pistol_pullout", "flarestack_end" ); maps\_anim::addnotetrack_notify( "ally1", "pistol_fire", "notify_flarestack_baker_pistol_fire", "flarestack_end" ); maps\_anim::addnotetrack_notify( "ally1", "pistol_putawayz", "notify_flarestack_baker_pistol_putaway", "flarestack_end" ); level.scr_anim["flarestack_guy"]["flarestack_start"] = %blackice_flamestack_opfor1; level.scr_anim["flarestack_guy"]["flarestack_idle"][0] = %blackice_flamestack_opfor1_idle; level.scr_anim["flarestack_guy"]["flarestack_end"] = %blackice_flamestack_opfor1_end; maps\_anim::addnotetrack_notify( "flarestack_guy", "death", "notify_flarestack_enemy_kill", "flarestack_end" ); maps\_anim::addnotetrack_notify( "flarestack_guy", "audio_point", "notify_flarestack_enemy_on_console", "flarestack_start" ); maps\_anim::addnotetrack_notify( "flarestack_guy", "line_1", "black_ice_saf2_whatareyoudoing", "flarestack_start" ); maps\_anim::addnotetrack_dialogue( "ally1", "line2", "flarestack_start", "black_ice_mrk_quiet" ); maps\_anim::addnotetrack_notify( "flarestack_guy", "line3", "black_ice_saf2_shitwhatareyou", "flarestack_end" ); level.scr_sound["flarestack_guy"]["black_ice_saf2_whatareyoudoing"] = "black_ice_saf2_whatareyoudoing"; level.scr_face["flarestack_guy"]["black_ice_saf2_whatareyoudoing"] = %black_ice_saf2_whatareyoudoing; level.scr_sound["flarestack_guy"]["black_ice_saf2_nononodontdoit"] = "black_ice_saf2_nononodontdoit"; level.scr_face["flarestack_guy"]["black_ice_saf2_nononodontdoit"] = %black_ice_saf2_nononodontdoit; level.scr_sound["flarestack_guy"]["black_ice_saf2_shitwhatareyou"] = "black_ice_saf2_shitwhatareyou"; level.scr_face["flarestack_guy"]["black_ice_saf2_shitwhatareyou"] = %black_ice_saf2_shitwhatareyou; level.scr_anim["ally1"]["flarestack_exit"] = %blackice_flamestack_ally1_exit; maps\_anim::addnotetrack_notify( "ally1", "door_open", "notify_flamestack_door_open", "flarestack_exit" ); level.scr_anim["ally1"]["cover_left_idle"][0] = %blackice_corner_standl_alert_idle; level.scr_anim["ally1"]["refinery_hold_init"] = %blackice_baker_hold2_init; level.scr_anim["ally1"]["refinery_hold_idle"][0] = %blackice_baker_hold2_idle; level.scr_anim["ally1"]["refinery_hold_end"] = %blackice_baker_hold2_end; level.scr_anim["refinery_guy"]["derrick_explode_reaction_1"] = %blackice_explosionreact1; level.scr_anim["refinery_guy"]["derrick_explode_reaction_2"] = %blackice_explosionreact2; level.scr_anim["generic"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy1"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy2"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy3"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy4"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy5"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy6"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy7"]["derrick_explode_death"] = %death_explosion_run_f_v2; level.scr_anim["refinery_guy1"]["derrick_explode_scene"] = %blackice_topside_opfor1; level.scr_anim["refinery_guy2"]["derrick_explode_scene"] = %blackice_topside_opfor2; level.scr_anim["refinery_guy3"]["derrick_explode_scene"] = %blackice_topside_opfor3; level.scr_anim["refinery_guy4"]["derrick_explode_scene"] = %blackice_topside_opfor4; level.scr_anim["refinery_guy5"]["derrick_explode_scene"] = %blackice_topside_opfor5; level.scr_anim["refinery_guy6"]["derrick_explode_scene"] = %blackice_topside_opfor6; level.scr_anim["refinery_guy7"]["derrick_explode_scene"] = %blackice_topside_opfor7; level.scr_anim["refinery_guy6"]["death_pose"] = %blackice_topside_opfor6_dead; maps\_anim::addnotetrack_notify( "refinery_guy1", "derrick_detonation", "notify_refinery_explosion_start" ); level.scr_anim["tanks_guy_1"]["tanks_bridge_fall_scene"] = %blackice_tanks_catwalk_collapse_opfor1; level.scr_anim["tanks_guy_1"]["tanks_bridge_fall_death"] = %blackice_tanks_catwalk_collapse_opfor1_death; level.scr_anim["tanks_guy_2"]["tanks_bridge_fall_scene"] = %blackice_tanks_catwalk_collapse_opfor2; maps\_anim::addnotetrack_customfunction( "tanks_guy_1", "start_custom_death", ::notetrack_tanks_start_custom_death, "tanks_bridge_fall_scene" ); maps\_anim::addnotetrack_customfunction( "tanks_guy_1", "end_custom_death", ::notetrack_tanks_end_custom_death, "tanks_bridge_fall_scene" ); level.scr_anim["ai0"]["engineroom_workers_throughdoor"] = %blackice_engineroom_throughdoor_worker1; level.scr_anim["ai1"]["engineroom_workers_throughdoor"] = %blackice_engineroom_throughdoor_worker2; level.scr_anim["ai0"]["engineroom_workers_idle"][0] = %blackice_engineroom_idle_worker1; level.scr_anim["ai1"]["engineroom_workers_idle"][0] = %blackice_engineroom_idle_worker2; level.scr_anim["ai0"]["engineroom_workers_death"] = %blackice_engineroom_death_worker1; level.scr_anim["ai1"]["engineroom_workers_death"] = %blackice_engineroom_death_worker2; level.scr_anim["ally1"]["engine_room_enter"] = %blackice_engineroom_postup_ally1; level.scr_anim["ai0"]["engineroom_worker2_run"] = %blackice_engineroom2_walkout; level.scr_anim["ai0"]["engineroom_worker2_idle"][0] = %blackice_engineroom2_idle; level.scr_anim["extinguisher_guy"]["extinguisher_loop1"][0] = %blackice_engineroom_firefighter1_idle; level.scr_anim["extinguisher_guy"]["extinguisher_loop2"][0] = %blackice_engineroom_firefighter2_idle; level.scr_anim["extinguisher_guy"]["extinguisher_loop3"][0] = %blackice_engineroom_firefighter3_idle; level.scr_anim["extinguisher_guy"]["extinguisher_loop_break1"] = %blackice_engineroom_firefighter1; level.scr_anim["extinguisher_guy"]["extinguisher_loop_break2"] = %blackice_engineroom_firefighter2; level.scr_anim["extinguisher_guy"]["extinguisher_loop_break3"] = %blackice_engineroom_firefighter3; level.scr_anim["ally1"]["topdrive_reaction"] = %blackice_explosionreact2; level.scr_anim["ally1"]["topdrive_duck_full"] = %blackice_topdrive_ally2; level.scr_anim["ally1"]["topdrive_duck"] = %blackice_topdrive_ally1; level.scr_anim["ally2"]["topdrive_duck"] = %blackice_topdrive_ally1; maps\_anim::addnotetrack_notify( "ally1", "heli_notify", "notify_spawn_pipedeck_heli" ); level.scr_anim["lifeboat_guy1"]["lifeboat_deploy"] = %blackice_lifeboat_opfor1; level.scr_anim["lifeboat_guy2"]["lifeboat_deploy"] = %blackice_lifeboat_opfor2; level.scr_anim["lifeboat_guy3"]["lifeboat_deploy"] = %blackice_lifeboat_opfor3; level.scr_anim["lifeboat_guy4"]["lifeboat_deploy"] = %blackice_lifeboat_opfor4; level.scr_anim["lifeboat_guy5"]["lifeboat_deploy"] = %blackice_lifeboat_opfor5; level.scr_anim["lifeboat_guy6"]["lifeboat_deploy"] = %blackice_lifeboat_opfor6; level.scr_anim["lifeboat_guy7"]["lifeboat_deploy"] = %blackice_lifeboat_opfor7; level.scr_anim["lifeboat_guy8"]["lifeboat_deploy"] = %blackice_lifeboat_opfor8; level.scr_anim["lifeboat_guy9"]["lifeboat_deploy"] = %blackice_lifeboat_opfor9; level.scr_anim["lifeboat_guy10"]["lifeboat_deploy"] = %blackice_lifeboat_opfor10; level.scr_anim["lifeboat_guy11"]["lifeboat_deploy"] = %blackice_lifeboat_opfor11; level.scr_anim["lifeboat_guy12"]["lifeboat_deploy"] = %blackice_lifeboat_opfor12; level.scr_anim["derrick_guy1"]["heat_shield_run"] = %blackice_pipedeck_heat_opfor1; level.scr_anim["derrick_guy2"]["heat_shield_run"] = %blackice_pipedeck_heat_opfor2; level.scr_anim["ally1"]["command_enter_approach"] = %blackice_baker_controlroomdoor_1; level.scr_anim["ally1"]["command_enter"] = %blackice_baker_controlroomdoor_2; level.scr_anim["ally1"]["command_init"] = %blackice_controlroompanel_baker_init; level.scr_goaltime["ally1"]["command_init"] = 0.2; level.scr_anim["ally1"]["command_loop"][0] = %blackice_controlroompanel_baker_loop; level.scr_anim["ally1"]["command_start"] = %blackice_controlroompanel_baker_start; level.scr_anim["ally1"]["command_control"] = %blackice_controlroompanel_baker_control; level.scr_anim["ally1"]["command_end"] = %blackice_controlroompanel_baker_end; level.scr_anim["ally1"]["command_early"] = %blackice_controlroompanel_baker_early; level.scr_anim["ally1"]["command_late"] = %blackice_controlroompanel_baker_late; maps\_anim::addnotetrack_notify( "ally1", "opfor1_anim_start", "notify_baker_push_opfor" ); maps\_anim::addnotetrack_notify( "ally1", "dialog_instruct_1", "notify_dialog_instruct_1" ); maps\_anim::addnotetrack_notify( "ally1", "dialog_instruct_2", "notify_dialog_instruct_2" ); maps\_anim::addnotetrack_notify( "ally1", "dialog_instruct_3", "notify_dialog_instruct_3" ); maps\_anim::addnotetrack_notify( "ally1", "dialog_instruct_4", "notify_dialog_instruct_4" ); maps\_anim::addnotetrack_notify( "ally1", "dialog_instruct_5", "notify_dialog_instruct_5" ); maps\_anim::addnotetrack_notify( "ally1", "merrick_head", "notify_swap_ally_head" ); maps\_anim::addnotetrack_notify( "ally1", "ps_black_ice_bkr_shutdownthefire", "ps_black_ice_bkr_shutdownthefire" ); maps\_anim::addnotetrack_notify( "ally1", "ps_black_ice_mrk_holditsteady", "ps_black_ice_mrk_holditsteady" ); maps\_anim::addnotetrack_notify( "ally1", "ps_black_ice_mrk_yougottakeepthe", "ps_black_ice_mrk_yougottakeepthe" ); maps\_anim::addnotetrack_notify( "ally1", "ps_black_ice_mrk_keepusoutof", "ps_black_ice_mrk_keepusoutof" ); maps\_anim::addnotetrack_customfunction( "ally1", "dialog_end", ::notetrack_command_dialog_end ); level.scr_anim["ally1"]["exfil_corner_cut"] = %blackice_controlroom_exfil_stairs_1; level.scr_anim["ally2"]["exfil_corner_cut"] = %blackice_controlroom_exfil_stairs_2; level.scr_anim["ally1"]["exfil_steam_react"] = %blackice_controlroom_exfil_finalroom_1; level.scr_anim["ally2"]["exfil_steam_react"] = %blackice_controlroom_exfil_finalroom_2; level.scr_anim["ally1"]["ladder_chase"] = %blackice_ally1_exfil_explode; level.scr_anim["ally2"]["ladder_chase"] = %blackice_ally2_exfil_explode; level.scr_animtree["player_legs_exfil"] = #animtree; level.scr_model["player_legs_exfil"] = "body_hero_sandman_seal_udt_b"; level.scr_anim["player_legs_exfil"]["ladder_chase"] = %blackice_playerlegs_exfil_explode; maps\_anim::addnotetrack_notify( "ally1", "pipe_burst", "notify_exfil_steam_burst", "exfil_steam_react" ); maps\_anim::addnotetrack_notify( "ally1", "start_ladder_chase", "notify_start_ladder_chase", "exfil_steam_react" ); maps\_anim::addnotetrack_flag( "ally1", "pipe_explosion", "flag_command_pipes_explosion", "exfil_steam_react" ); maps\_anim::addnotetrack_customfunction( "ally1", "baker_dialog_1", ::notetrack_exfil_dialog_1 ); maps\_anim::addnotetrack_customfunction( "ally1", "baker_dialog_2", ::notetrack_exfil_dialog_2 ); maps\_anim::addnotetrack_customfunction( "ally1", "player_teleport", ::notetrack_player_teleport ); maps\_anim::addnotetrack_customfunction( "ally1", "heli_swing", ::notetrack_heli_swing ); maps\_anim::addnotetrack_customfunction( "ally1", "start_slomo", ::notetrack_start_slomo ); maps\_anim::addnotetrack_customfunction( "ally1", "end_slomo", ::notetrack_end_slomo ); level.scr_anim["ally1"]["DRS_sprint"] = %sprint1_loop; level.scr_anim["ally1"]["DRS_combat_jog"] = %combat_jog; level.scr_anim["ally2"]["DRS_sprint"] = %sprint1_loop; level.scr_anim["ally2"]["DRS_combat_jog"] = %combat_jog; } #using_animtree("script_model"); script_model_anims() { level.scr_animtree["snake_cam"] = #animtree; level.scr_model["snake_cam"] = "tag_origin"; level.scr_anim["snake_cam"]["retract"] = %blackice_intro_snakecam_retract; maps\_anim::addnotetrack_customfunction( "snake_cam", "lens_water", ::notetrack_snake_cam_lens_water ); maps\_anim::addnotetrack_customfunction( "snake_cam", "underwater_transition", ::notetrack_snake_cam_underwater_transition ); maps\_anim::addnotetrack_notify( "snake_cam", "rumble_cam_1", "notify_rumble_cam_1" ); maps\_anim::addnotetrack_notify( "snake_cam", "rumble_cam_2", "notify_rumble_cam_2" ); maps\_anim::addnotetrack_notify( "snake_cam", "rumble_cam_3", "notify_rumble_cam_3" ); maps\_anim::addnotetrack_notify( "snake_cam", "rumble_cam_4", "notify_rumble_cam_4" ); level.scr_animtree["snowmobile_1"] = #animtree; level.scr_model["snowmobile_1"] = "vehicle_snowmobile_iw6"; level.scr_anim["snowmobile_1"]["intro_drive"] = %blackice_intro_drive_snowmobile_1; level.scr_animtree["snowmobile_2"] = #animtree; level.scr_model["snowmobile_2"] = "vehicle_snowmobile_iw6"; level.scr_anim["snowmobile_2"]["intro_drive"] = %blackice_intro_drive_snowmobile_2; level.scr_animtree["gaz71"] = #animtree; level.scr_model["gaz71"] = "vehicle_gaz71_iw6"; level.scr_anim["gaz71"]["intro_drive"] = %blackice_intro_drive_gaz71; level.scr_anim["gaz71"]["intro_breach"] = %blackice_introbreach_gaz71; maps\_anim::addnotetrack_notify( "gaz71", "line2_1", "notify_snake_cam_dialogue_line2_1" ); maps\_anim::addnotetrack_notify( "gaz71", "line2_2", "notify_snake_cam_dialogue_line2_2" ); maps\_anim::addnotetrack_notify( "gaz71", "line2_3", "notify_snake_cam_dialogue_line2_3" ); maps\_anim::addnotetrack_notify( "gaz71", "line2_4", "notify_snake_cam_dialogue_line2_4" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_snowmobile_1", "notify_rumble_snowmobile_1" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_snowmobile_2", "notify_rumble_snowmobile_2" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_truck_1", "notify_rumble_truck_1" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_truck_2", "notify_rumble_truck_2" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_truck_3", "notify_rumble_truck_3" ); maps\_anim::addnotetrack_notify( "gaz71", "rumble_truck_off", "notify_rumble_truck_off" ); maps\_anim::addnotetrack_customfunction( "gaz71", "camera_retract", ::notetrack_snake_cam_retract ); maps\_anim::addnotetrack_customfunction( "gaz71", "enemy_dismount", ::notetrack_snake_enemy_dismount ); level.scr_animtree["gaztiger"] = #animtree; level.scr_model["gaztiger"] = "vehicle_iveco_lynx_iw6"; level.scr_anim["gaztiger"]["intro_drive"] = %blackice_intro_drive_gaztiger; level.scr_anim["gaztiger"]["intro_breach"] = %blackice_introbreach_gaztiger; level.scr_animtree["gaztiger_2"] = #animtree; level.scr_model["gaztiger_2"] = "vehicle_iveco_lynx_iw6"; level.scr_anim["gaztiger_2"]["intro_drive"] = %blackice_intro_drive_gaztiger2; level.scr_animtree["bm21_1"] = #animtree; level.scr_model["bm21_1"] = "vehicle_tatra_t815_iw6_covered"; level.scr_anim["bm21_1"]["intro_drive"] = %blackice_intro_drive_truck1; level.scr_anim["bm21_1"]["intro_breach"] = %blackice_introbreach_truck1; level.scr_anim["bm21_1"]["surface_truck"] = %blackice_intro_truck_fall; level.scr_animtree["blackice_ice_chunks_truck"] = #animtree; level.scr_model["blackice_ice_chunks_truck"] = "blackice_ice_chunks_truck"; level.scr_anim["blackice_ice_chunks_truck"]["surface_truck"] = %blackice_intro_truck_fall_icechunks; level.scr_animtree["bm21_2"] = #animtree; level.scr_model["bm21_2"] = "vehicle_tatra_t815_iw6_covered"; level.scr_anim["bm21_2"]["intro_drive"] = %blackice_intro_drive_truck2; level.scr_anim["bm21_2"]["intro_breach"] = %blackice_introbreach_truck2; level.scr_animtree["bm21_3"] = #animtree; level.scr_model["bm21_3"] = "vehicle_tatra_t815_iw6_covered"; level.scr_anim["bm21_3"]["intro_drive"] = %blackice_intro_drive_truck3; level.scr_animtree["introbreach_props"] = #animtree; level.scr_model["introbreach_props"] = "blackice_introbreach_props"; level.scr_anim["introbreach_props"]["intro_breach"] = %blackice_introbreach_props_01; level.scr_anim["introbreach_props"]["intro_breach_end"] = %blackice_introbreach_props_end; level.scr_animtree["ice_chunks1"] = #animtree; level.scr_model["ice_chunks1"] = "blackice_infil_ice_chunks_1"; level.scr_anim["ice_chunks1"]["intro_breach"] = %blackice_introbreach_ice1; level.scr_anim["ice_chunks1"]["intro_breach_loop"][0] = %blackice_introbreach_ice1_loop; level.scr_anim["ice_chunks1"]["intro_breach_end"] = %blackice_introbreach_ice1_end; level.scr_animtree["ice_chunks2"] = #animtree; level.scr_model["ice_chunks2"] = "blackice_infil_ice_chunks_2"; level.scr_anim["ice_chunks2"]["intro_breach"] = %blackice_introbreach_ice2; level.scr_anim["ice_chunks2"]["intro_breach_loop"][0] = %blackice_introbreach_ice2_loop; level.scr_anim["ice_chunks2"]["intro_breach_end"] = %blackice_introbreach_ice2_end; level.scr_animtree["breach_water"] = #animtree; level.scr_model["breach_water"] = "blackice_breach_water"; level.scr_anim["breach_water"]["intro_breach"] = %blackice_introbreach_water; level.scr_anim["breach_water"]["intro_breach_end"] = %blackice_introbreach_water_end; level.scr_animtree["tape_breach_door"] = #animtree; level.scr_animtree["tape_breach_door_dam"] = #animtree; level.scr_model["tape_breach_door"] = "bulkhead_door"; level.scr_model["tape_breach_door_dam"] = "bulkhead_door_damaged"; level.scr_anim["tape_breach_door"]["cw_tape_breach"] = %blackice_doortape_door; level.scr_anim["tape_breach_door_dam"]["cw_tape_breach"] = %blackice_doortape_door; level.scr_animtree["tape_breach_tape"] = #animtree; level.scr_model["tape_breach_tape"] = "blackice_explosive_tape"; level.scr_anim["tape_breach_tape"]["cw_tape_breach"] = %blackice_doortape_tape; level.scr_animtree["hallway_door"] = #animtree; level.scr_model["hallway_door"] = "bi_hallway_door"; level.scr_anim["hallway_door"]["cw_hallsweep"] = %blackice_hallwayclear_door; level.scr_animtree["breach_door_charge"] = #animtree; level.scr_model["breach_door_charge"] = "blackice_comm_room_breacher"; level.scr_anim["breach_door_charge"]["breach"] = %blackice_commonroom_charge; level.scr_animtree["common_door_dam"] = #animtree; level.scr_model["common_door_dam"] = "hallway_double_door_damaged"; level.scr_anim["common_door_dam"]["explode"] = %blackice_commonroom_door; level.scr_animtree["common_door"] = #animtree; level.scr_model["common_door"] = "hallway_double_door"; level.scr_anim["common_door"]["bullets"] = %blackice_commonroom_door_bullets; level.scr_animtree["oil_pump"] = #animtree; level.scr_anim["oil_pump"]["motion"] = %oil_pump_2; level.scr_animtree["flarestack_door_in"] = #animtree; level.scr_anim["flarestack_door_in"]["flarestack_start"] = %blackice_flamestack_door; level.scr_animtree["baker_sidearm"] = #animtree; level.scr_model["baker_sidearm"] = "weapon_p226"; level.scr_animtree["flarestack_door_out"] = #animtree; level.scr_anim["flarestack_door_out"]["flarestack_exit"] = %blackice_flamestack_door_exit; level.scr_animtree["derrick"] = #animtree; level.scr_model["derrick"] = "blackice_oil_derrick"; level.scr_anim["derrick"]["collapse"] = %blackice_derrick_collapse; level.scr_anim["derrick"]["small_explosion"] = %blackice_derrick_small_explosion; level.scr_animtree["tag_origin"] = #animtree; level.scr_anim["tag_origin"]["cam_test"] = %blackice_player_exfil_jumpcam; maps\_anim::addnotetrack_customfunction( "derrick", "small_explosion", ::notetrack_derrick_small_explosion ); maps\_anim::addnotetrack_customfunction( "derrick", "large_explosion", ::notetrack_derrick_large_explosion ); maps\_anim::addnotetrack_customfunction( "derrick", "traveling_block_impact", ::notetrack_traveling_block_impact ); maps\_anim::addnotetrack_customfunction( "derrick", "impact_rig", ::notetrack_derrick_impact_rig ); maps\_anim::addnotetrack_customfunction( "derrick", "start_combat", ::notetrack_refinery_start_combat ); level.scr_animtree["traveling_block"] = #animtree; level.scr_model["traveling_block"] = "blackice_traveling_block"; level.scr_anim["traveling_block"]["derrick_explosion"] = %blackice_derrick_traveling_block2; maps\_anim::addnotetrack_customfunction( "traveling_block", "hit_1", ::notetrack_derrick_debris_hit_1 ); maps\_anim::addnotetrack_customfunction( "traveling_block", "hit_2", ::notetrack_derrick_debris_hit_2 ); level.scr_animtree["derrick_chunk"] = #animtree; level.scr_model["derrick_chunk"] = "blackice_derrick_chunk"; level.scr_anim["derrick_chunk"]["derrick_explosion"] = %blackice_derrick_traveling_block; maps\_anim::addnotetrack_customfunction( "derrick_chunk", "hitbarrels", ::notetrack_derrick_chunk_hit_barrels ); level.scr_animtree["oiltank_catwalk"] = #animtree; level.scr_model["oiltank_catwalk"] = "blackice_refinery_tank_catwalk_destroyed"; level.scr_anim["oiltank_catwalk"]["oiltank_catwalk"] = %blackice_derrick_oiltank_catwalk; maps\_anim::addnotetrack_customfunction( "oiltank_catwalk", "swap_catwalk", ::notetrack_oiltank_catwalk_swap ); level.scr_animtree["oiltank_forklift"] = #animtree; level.scr_model["oiltank_forklift"] = "vehicle_forklift_blackice"; level.scr_anim["oiltank_forklift"]["derrick_explosion"] = %blackice_derrick_debris_forklift; level.scr_animtree["oiltank_forklift_crate"] = #animtree; level.scr_model["oiltank_forklift_crate"] = "ch_crate48x64_snow_no_tweak"; level.scr_anim["oiltank_forklift_crate"]["derrick_explosion"] = %blackice_derrick_debris_forklift_crate; level.scr_animtree["oiltank_spool"] = #animtree; level.scr_model["oiltank_spool"] = "wire_spool_metal"; level.scr_anim["oiltank_spool"]["derrick_explosion"] = %blackice_derrick_debris_spool; level.scr_animtree["oiltank_debris_1_1"] = #animtree; level.scr_model["oiltank_debris_1_1"] = "junk_scrap_08"; level.scr_anim["oiltank_debris_1_1"]["derrick_explosion"] = %blackice_derrick_oiltank_debris_1; level.scr_animtree["oiltank_debris_1_2"] = #animtree; level.scr_model["oiltank_debris_1_2"] = "junk_scrap_08"; level.scr_anim["oiltank_debris_1_2"]["derrick_explosion"] = %blackice_derrick_oiltank_debris_2; level.scr_animtree["oiltank_debris_1_3"] = #animtree; level.scr_model["oiltank_debris_1_3"] = "junk_scrap_08"; level.scr_anim["oiltank_debris_1_3"]["derrick_explosion"] = %blackice_derrick_oiltank_debris_3; level.scr_animtree["oiltank_debris_2"] = #animtree; level.scr_model["oiltank_debris_2"] = "junk_scrap_05"; level.scr_anim["oiltank_debris_2"]["derrick_explosion"] = %blackice_derrick_oiltank_debris_4; level.scr_animtree["oiltank_debris_3"] = #animtree; level.scr_model["oiltank_debris_3"] = "junk_scrap_10"; level.scr_anim["oiltank_debris_3"]["derrick_explosion"] = %blackice_derrick_oiltank_debris_5; level.scr_animtree["barrel_crush"] = #animtree; level.scr_model["barrel_crush"] = "blackice_barrel_crush"; level.scr_anim["barrel_crush"]["barrel_crush_1"] = %blackice_derrick_barrel_1; level.scr_anim["barrel_crush"]["barrel_crush_2"] = %blackice_derrick_barrel_2; level.scr_anim["barrel_crush"]["barrel_crush_3"] = %blackice_derrick_barrel_3; level.scr_anim["barrel_crush"]["barrel_crush_4"] = %blackice_derrick_barrel_4; level.scr_anim["barrel_crush"]["barrel_crush_5"] = %blackice_derrick_barrel_5; level.scr_animtree["barrel_oiltank_crush_1"] = #animtree; level.scr_animtree["barrel_oiltank_crush_2"] = #animtree; level.scr_animtree["barrel_oiltank_crush_3"] = #animtree; level.scr_animtree["barrel_oiltank_crush_4"] = #animtree; level.scr_animtree["barrel_oiltank_crush_5"] = #animtree; level.scr_animtree["barrel_oiltank_crush_6"] = #animtree; level.scr_animtree["barrel_oiltank_crush_7"] = #animtree; level.scr_model["barrel_oiltank_crush_1"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_2"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_3"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_4"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_5"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_6"] = "blackice_barrel_crush"; level.scr_model["barrel_oiltank_crush_7"] = "blackice_barrel_crush"; level.scr_anim["barrel_oiltank_crush_1"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_1; level.scr_anim["barrel_oiltank_crush_2"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_2; level.scr_anim["barrel_oiltank_crush_3"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_3; level.scr_anim["barrel_oiltank_crush_4"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_4; level.scr_anim["barrel_oiltank_crush_5"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_5; level.scr_anim["barrel_oiltank_crush_6"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_6; level.scr_anim["barrel_oiltank_crush_7"]["derrick_explosion"] = %blackice_derrick_oiltank_barrel_7; level.scr_animtree["derrick_debris_1"] = #animtree; level.scr_model["derrick_debris_1"] = "ny_harbor_debris_misc_01"; level.scr_anim["derrick_debris_1"]["derrick_debris_1"] = %blackice_derrick_debris_1_1; level.scr_anim["derrick_debris_1"]["derrick_debris_2"] = %blackice_derrick_debris_1_2; level.scr_animtree["derrick_debris_2"] = #animtree; level.scr_model["derrick_debris_2"] = "ny_harbor_debris_misc_02"; level.scr_anim["derrick_debris_2"]["derrick_debris_1"] = %blackice_derrick_debris_2_1; level.scr_anim["derrick_debris_2"]["derrick_debris_2"] = %blackice_derrick_debris_2_2; level.scr_animtree["derrick_debris_3"] = #animtree; level.scr_model["derrick_debris_3"] = "ny_harbor_debris_misc_03"; level.scr_anim["derrick_debris_3"]["derrick_debris_1"] = %blackice_derrick_debris_3_1; level.scr_anim["derrick_debris_3"]["derrick_debris_2"] = %blackice_derrick_debris_3_2; level.scr_animtree["derrick_debris_4"] = #animtree; level.scr_model["derrick_debris_4"] = "ny_harbor_debris_misc_04"; level.scr_anim["derrick_debris_4"]["derrick_debris_1"] = %blackice_derrick_debris_4_1; level.scr_anim["derrick_debris_4"]["derrick_debris_2"] = %blackice_derrick_debris_4_2; level.scr_animtree["derrick_debris_5"] = #animtree; level.scr_model["derrick_debris_5"] = "ny_harbor_debris_misc_05"; level.scr_anim["derrick_debris_5"]["derrick_debris_1"] = %blackice_derrick_debris_5_1; level.scr_anim["derrick_debris_5"]["derrick_debris_2"] = %blackice_derrick_debris_5_2; level.scr_animtree["derrick_debris_6"] = #animtree; level.scr_model["derrick_debris_6"] = "ny_harbor_debris_misc_06"; level.scr_anim["derrick_debris_6"]["derrick_debris_1"] = %blackice_derrick_debris_6_1; level.scr_anim["derrick_debris_6"]["derrick_debris_2"] = %blackice_derrick_debris_6_2; maps\_anim::addnotetrack_customfunction( "traveling_block", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_chunk", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_1", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_2", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_3", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_4", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_5", "hitground", ::notetrack_derrick_debris_hitground ); maps\_anim::addnotetrack_customfunction( "derrick_debris_6", "hitground", ::notetrack_derrick_debris_hitground ); level.scr_animtree["blackice_door_refinery"] = #animtree; level.scr_model["blackice_door_refinery"] = "blackice_door_refinery"; level.scr_anim["blackice_door_refinery"]["command_enter"] = %blackice_door_controlroomdoor_2; level.scr_animtree["derrick_wires"] = #animtree; level.scr_animtree["drill_pipe1"] = #animtree; level.scr_model["drill_pipe1"] = "blackice_drill_pipe_single"; level.scr_anim["drill_pipe1"]["fall"] = %blackice_topdrive_pipe1_fall; level.scr_animtree["drill_pipe2"] = #animtree; level.scr_model["drill_pipe2"] = "blackice_drill_pipe_single"; level.scr_anim["drill_pipe2"]["fall"] = %blackice_topdrive_pipe2_fall; level.scr_animtree["drill_pipe3"] = #animtree; level.scr_model["drill_pipe3"] = "blackice_drill_pipe_single"; level.scr_anim["drill_pipe3"]["fall"] = %blackice_topdrive_pipe3_fall; level.scr_animtree["drill_pipe4"] = #animtree; level.scr_model["drill_pipe4"] = "blackice_drill_pipe_single"; level.scr_anim["drill_pipe4"]["fall"] = %blackice_topdrive_pipe4_fall; level.scr_animtree["top_drive"] = #animtree; level.scr_model["top_drive"] = "topdrive_destroyed"; level.scr_anim["top_drive"]["fall"] = %blackice_topdrive_fall; level.scr_animtree["hiding_door"] = #animtree; level.scr_anim["hiding_door"]["grenade"] = %doorpeek_grenade_door; level.scr_anim["hiding_door"]["kick"] = %doorpeek_kick_door; level.scr_animtree["player_scuba"] = #animtree; level.scr_model["player_scuba"] = "prop_player_scuba_tank"; level.scr_anim["player_scuba"]["scuba_intro"] = %blackice_scuba_intro; level.scr_animtree["player_mask"] = #animtree; level.scr_model["player_mask"] = "viewmodel_scuba_mask"; level.scr_anim["player_mask"]["mask_surface"] = %blackice_mask_surface; level.scr_anim["player_mask"]["mask_surface_pt2"] = %blackice_mask_surface_pt2; level.scr_animtree["borescope"] = #animtree; level.scr_model["borescope"] = "blackice_borescope"; level.scr_anim["borescope"]["borescope"] = %blackice_intro_borescope_01; level.scr_animtree["ascend_launcher_non_anim"] = #animtree; level.scr_model["ascend_launcher_non_anim"] = "black_ice_line_launcher"; level.scr_animtree["ascend_hook"] = #animtree; level.scr_model["ascend_hook"] = "grappling_hook_rigged"; level.scr_anim["ascend_hook"]["ascend_hook"] = %blackice_player_rigascend_hook; level.scr_animtree["ascend_hook_ally1"] = #animtree; level.scr_model["ascend_hook_ally1"] = "grappling_hook_rigged"; level.scr_anim["ascend_hook_ally1"]["ascend_hook"] = %blackice_ally1_rigascend_hook; level.scr_animtree["ascend_hook_ally2"] = #animtree; level.scr_model["ascend_hook_ally2"] = "grappling_hook_rigged"; level.scr_anim["ascend_hook_ally2"]["ascend_hook"] = %blackice_ally2_rigascend_hook; level.scr_animtree["ascend_hook_ally3"] = #animtree; level.scr_model["ascend_hook_ally3"] = "grappling_hook_rigged"; level.scr_anim["ascend_hook_ally3"]["ascend_hook"] = %blackice_ally3_rigascend_hook; level.scr_animtree["ascend_hook_ally4"] = #animtree; level.scr_model["ascend_hook_ally4"] = "grappling_hook_rigged"; level.scr_anim["ascend_hook_ally4"]["ascend_hook"] = %blackice_ally4_rigascend_hook; level.scr_animtree["ascend_launcher"] = #animtree; level.scr_model["ascend_launcher"] = "viewmodel_black_ice_line_launcher"; level.scr_anim["ascend_launcher"]["alpha_rig_ascend_aim"] = %blackice_playerascender_rigascend_aim; level.scr_anim["ascend_launcher"]["alpha_rig_ascend_aim_loop"][0] = %blackice_playerascender_aim_loop; level.scr_anim["ascend_launcher"]["alpha_rig_ascend_linkup"] = %blackice_player_lineshooter_linkup; level.scr_anim["ascend_launcher"]["ascender_aim_left_parent"] = %ascender_aim_left; level.scr_anim["ascend_launcher"]["ascender_aim_right_parent"] = %ascender_aim_right; level.scr_anim["ascend_launcher"]["ascender_aim_up_parent"] = %ascender_aim_up; level.scr_anim["ascend_launcher"]["ascender_aim_down_parent"] = %ascender_aim_down; level.scr_anim["ascend_launcher"]["ascender_aim_left"] = %blackice_playerascender_aim_left; level.scr_anim["ascend_launcher"]["ascender_aim_right"] = %blackice_playerascender_aim_right; level.scr_anim["ascend_launcher"]["ascender_aim_up"] = %blackice_playerascender_aim_up; level.scr_anim["ascend_launcher"]["ascender_aim_down"] = %blackice_playerascender_aim_down; level.scr_animtree["ascend_ascender"] = #animtree; level.scr_model["ascend_ascender"] = "black_ice_rope_ascender"; level.scr_anim["ascend_ascender"]["alpha_rig_ascend_linkup"] = %blackice_player_ascender_linkup; level.scr_anim["ascend_ascender"]["alpha_rig_ascend_groundidle"][0] = %blackice_player_ascender_groundidle; level.scr_anim["ascend_ascender"]["alpha_rig_ascend"] = %blackice_player_ascender_rigascend; level.scr_animtree["ally1_ascend_launcher"] = #animtree; level.scr_model["ally1_ascend_launcher"] = "rig_linelauncher_animated"; level.scr_anim["ally1_ascend_launcher"]["ascend_runin"] = %blackice_ally1_lineshooter_runnin; level.scr_anim["ally1_ascend_launcher"]["ascend_waiting"][0] = %blackice_ally1_lineshooter_waiting; level.scr_anim["ally1_ascend_launcher"]["alpha_rope_shoot"] = %blackice_ally1_lineshooter_shoot; level.scr_anim["ally1_ascend_launcher"]["alpha_hand_rope"][0] = %blackice_ally1_lineshooter_idle; level.scr_anim["ally1_ascend_launcher"]["alpha_rig_ascend"] = %blackice_ally1_lineshooter_ascend; level.scr_animtree["ally1_ascend_ascender"] = #animtree; level.scr_model["ally1_ascend_ascender"] = "black_ice_rope_ascender"; level.scr_anim["ally1_ascend_ascender"]["alpha_hand_rope"][0] = %blackice_ally1_ascender_idle; level.scr_anim["ally1_ascend_ascender"]["alpha_rig_ascend"] = %blackice_ally1_ascender_ascend; level.scr_animtree["ally2_ascend_launcher"] = #animtree; level.scr_model["ally2_ascend_launcher"] = "rig_linelauncher_animated"; level.scr_anim["ally2_ascend_launcher"]["ascend_runin"] = %blackice_ally2_lineshooter_runnin; level.scr_anim["ally2_ascend_launcher"]["ascend_waiting"][0] = %blackice_ally2_lineshooter_waiting; level.scr_anim["ally2_ascend_launcher"]["alpha_rope_shoot"] = %blackice_ally2_lineshooter_shoot; level.scr_anim["ally2_ascend_launcher"]["alpha_hand_rope"][0] = %blackice_ally2_lineshooter_idle; level.scr_anim["ally2_ascend_launcher"]["alpha_rig_ascend"] = %blackice_ally2_lineshooter_ascend; level.scr_animtree["ally2_ascend_ascender"] = #animtree; level.scr_model["ally2_ascend_ascender"] = "black_ice_rope_ascender"; level.scr_anim["ally2_ascend_ascender"]["alpha_hand_rope"][0] = %blackice_ally2_ascender_idle; level.scr_anim["ally2_ascend_ascender"]["alpha_rig_ascend"] = %blackice_ally2_ascender_ascend; level.scr_animtree["bravo1_ascend_launcher"] = #animtree; level.scr_model["bravo1_ascend_launcher"] = "rig_linelauncher_animated"; level.scr_anim["bravo1_ascend_launcher"]["ascend_runin"] = %blackice_bravo2_lineshooter_runnin; level.scr_anim["bravo1_ascend_launcher"]["ascend_waiting"][0] = %blackice_bravo2_lineshooter_waiting; level.scr_anim["bravo1_ascend_launcher"]["bravo_rope_shoot"] = %blackice_bravo2_lineshooter_shoot; level.scr_anim["bravo1_ascend_launcher"]["bravo_rope_idle"][0] = %blackice_bravo2_lineshooter_idle; level.scr_anim["bravo1_ascend_launcher"]["bravo_rig_ascend"] = %blackice_bravo2_lineshooter_ascend; level.scr_animtree["bravo1_ascend_ascender"] = #animtree; level.scr_model["bravo1_ascend_ascender"] = "black_ice_rope_ascender"; level.scr_anim["bravo1_ascend_ascender"]["bravo_rope_idle"][0] = %blackice_bravo1_ascender_idle; level.scr_anim["bravo1_ascend_ascender"]["bravo_rig_ascend"] = %blackice_bravo1_ascender_ascend; level.scr_animtree["bravo2_ascend_launcher"] = #animtree; level.scr_model["bravo2_ascend_launcher"] = "rig_linelauncher_animated"; level.scr_anim["bravo2_ascend_launcher"]["ascend_runin"] = %blackice_bravo1_lineshooter_runnin; level.scr_anim["bravo2_ascend_launcher"]["ascend_waiting"][0] = %blackice_bravo1_lineshooter_waiting; level.scr_anim["bravo2_ascend_launcher"]["bravo_rope_shoot"] = %blackice_bravo1_lineshooter_shoot; level.scr_anim["bravo2_ascend_launcher"]["bravo_rope_idle"][0] = %blackice_bravo1_lineshooter_idle; level.scr_anim["bravo2_ascend_launcher"]["bravo_rig_ascend"] = %blackice_bravo1_lineshooter_ascend; level.scr_animtree["bravo2_ascend_ascender"] = #animtree; level.scr_model["bravo2_ascend_ascender"] = "black_ice_rope_ascender"; level.scr_anim["bravo2_ascend_ascender"]["bravo_rope_idle"][0] = %blackice_bravo2_ascender_idle; level.scr_anim["bravo2_ascend_ascender"]["bravo_rig_ascend"] = %blackice_bravo2_ascender_ascend; level.scr_animtree["ascend_rope1"] = #animtree; level.scr_model["ascend_rope1"] = "black_ice_rope_prop"; level.scr_anim["ascend_rope1"]["alpha_rope_shoot"] = %blackice_allyrope1_shoot; level.scr_anim["ascend_rope1"]["alpha_hand_rope"][0] = %blackice_allyrope1_hand; level.scr_anim["ascend_rope1"]["alpha_rig_ascend_linkup"] = %blackice_allyrope1_linkup; level.scr_anim["ascend_rope1"]["alpha_rig_ascend_groundidle"][0] = %blackice_allyrope1_groundidle; level.scr_anim["ascend_rope1"]["alpha_rig_ascend"] = %blackice_allyrope1_rigascend; level.scr_animtree["ascend_rope2"] = #animtree; level.scr_model["ascend_rope2"] = "black_ice_rope_prop"; level.scr_anim["ascend_rope2"]["alpha_rope_shoot"] = %blackice_allyrope2_shoot; level.scr_anim["ascend_rope2"]["alpha_hand_rope"][0] = %blackice_allyrope2_hand; level.scr_anim["ascend_rope2"]["alpha_rig_ascend"] = %blackice_allyrope2_rigascend; level.scr_animtree["ascend_rope3"] = #animtree; level.scr_model["ascend_rope3"] = "black_ice_rope_prop"; level.scr_anim["ascend_rope3"]["alpha_rope_shoot"] = %blackice_allyrope3_shoot; level.scr_anim["ascend_rope3"]["alpha_hand_rope"][0] = %blackice_allyrope3_hand; level.scr_anim["ascend_rope3"]["alpha_rig_ascend"] = %blackice_allyrope3_rigascend; level.scr_animtree["bravo_ascend_rope1"] = #animtree; level.scr_model["bravo_ascend_rope1"] = "black_ice_rope_prop"; level.scr_anim["bravo_ascend_rope1"]["bravo_rope_shoot"] = %blackice_bravorope1_shoot; level.scr_anim["bravo_ascend_rope1"]["bravo_rope_idle"][0] = %blackice_bravorope1_idle; level.scr_anim["bravo_ascend_rope1"]["bravo_rig_ascend"] = %blackice_bravorope1_ascend; level.scr_animtree["bravo_ascend_rope2"] = #animtree; level.scr_model["bravo_ascend_rope2"] = "black_ice_rope_prop"; level.scr_anim["bravo_ascend_rope2"]["bravo_rope_shoot"] = %blackice_bravorope2_shoot; level.scr_anim["bravo_ascend_rope2"]["bravo_rope_idle"][0] = %blackice_bravorope2_idle; level.scr_anim["bravo_ascend_rope2"]["bravo_rig_ascend"] = %blackice_bravorope2_ascend; maps\_anim::addnotetrack_sound( "hiding_door", "sound door death", "any", "scn_blackice_door_kick" ); level.scr_animtree["flare_stack_console"] = #animtree; level.scr_anim["flare_stack_console"]["turn_off_flare_stack"] = %blackice_flare_stack_console_press; level.scr_anim["flare_stack_console"]["console_open"] = %blackice_flare_stack_console; level.scr_animtree["extinguisher"] = #animtree; level.scr_model["extinguisher"] = "com_fire_extinguisher_anim"; level.scr_anim["extinguisher"]["extinguisher_loop1"][0] = %blackice_engineroom_firefighter1_ext_idle; level.scr_anim["extinguisher"]["extinguisher_loop2"][0] = %blackice_engineroom_firefighter2_ext_idle; level.scr_anim["extinguisher"]["extinguisher_loop3"][0] = %blackice_engineroom_firefighter3_ext_idle; level.scr_anim["extinguisher"]["extinguisher_loop_break1"] = %blackice_engineroom_firefighter1_ext; level.scr_anim["extinguisher"]["extinguisher_loop_break2"] = %blackice_engineroom_firefighter2_ext; level.scr_anim["extinguisher"]["extinguisher_loop_break3"] = %blackice_engineroom_firefighter3_ext; level.scr_animtree["tanks_pipe"] = #animtree; level.scr_model["tanks_pipe"] = "blackice_catwalk_collapse_pipe"; level.scr_anim["tanks_pipe"]["tanks_bridge_fall_scene"] = %blackice_tanks_catwalk_collapse_pipe1; level.scr_animtree["tanks_bridge"] = #animtree; level.scr_anim["tanks_bridge"]["tanks_bridge_fall_scene"] = %blackice_tanks_catwalk_collapse_bridge; maps\_anim::addnotetrack_notify( "tanks_bridge", "model_swap", "notify_bridge_model_swap", "tanks_bridge_fall_scene" ); level.scr_animtree["lifeboat1"] = #animtree; level.scr_anim["lifeboat1"]["lifeboat_deploy"] = %blackice_lifeboat1; level.scr_animtree["lifeboat2"] = #animtree; level.scr_anim["lifeboat2"]["lifeboat_deploy"] = %blackice_lifeboat2; level.scr_animtree["lifeboat_crates"] = #animtree; level.scr_model["lifeboat_crates"] = "blackice_lifeboat_crates"; level.scr_anim["lifeboat_crates"]["lifeboat_deploy"] = %blackice_lifeboat_crates_01; level.scr_animtree["pipedeck_explosion2_rig"] = #animtree; level.scr_anim["pipedeck_explosion2_rig"]["pipes_explode"] = %blackice_pipedeck_explosion2_01; level.scr_animtree["pipedeck_explosion3_rig"] = #animtree; level.scr_anim["pipedeck_explosion3_rig"]["pipes_explode"] = %blackice_pipedeck_explosion3_01; level.scr_animtree["pipedeck_explosion4_rig"] = #animtree; level.scr_anim["pipedeck_explosion4_rig"]["pipes_explode"] = %blackice_pipedeck_explosion4_01; level.scr_animtree["pipedeck_pipe"] = #animtree; level.scr_model["pipedeck_pipe"] = "blackice_drill_pipe_single"; level.scr_animtree["pipedeck_crate"] = #animtree; level.scr_model["pipedeck_crate"] = "ch_crate48x64_snow_no_tweak"; level.scr_animtree["pipedeck_crane_1"] = #animtree; level.scr_anim["pipedeck_crane_1"]["pipes_explode"] = %blackice_pipedeck_explosion2_crane; level.scr_animtree["wires"] = #animtree; level.scr_anim["wires"]["vig_pipdeck_wires"][0] = %blackice_wires_pipedeck_01; level.scr_animtree["pipedeck_heli_target"] = #animtree; level.scr_model["pipedeck_heli_target"] = "blackice_pipedeck_heliattack_hitpoint"; level.scr_anim["pipedeck_heli_target"]["final_support"] = %blackice_pipedeck_heliattack_hitpoint_01; level.scr_animtree["command_lever"] = #animtree; level.scr_anim["command_lever"]["command_player_end"] = %blackice_controlroom_lever_player_end; level.scr_anim["command_lever"]["command_player_early"] = %blackice_controlroom_lever_player_early; level.scr_anim["command_lever"]["command_player_late"] = %blackice_controlroom_lever_player_late; level.scr_anim["command_lever"]["command_player_control"] = %blackice_controlroom_lever_player_control; level.scr_anim["command_lever"]["command_baker_end"] = %blackice_controlroom_lever_baker_end; level.scr_anim["command_lever"]["command_baker_early"] = %blackice_controlroom_lever_baker_early; level.scr_anim["command_lever"]["command_baker_late"] = %blackice_controlroom_lever_baker_late; level.scr_animtree["command_monitor_fx_green"] = #animtree; level.scr_model["command_monitor_fx_green"] = "bi_command_center_panel_26_screen_green"; level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_1"] = %blackice_controlroom_monitor_fx_1; level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_2"] = %blackice_controlroom_monitor_fx_2; level.scr_anim["command_monitor_fx_green"]["command_monitor_fx_3"] = %blackice_controlroom_monitor_fx_3; level.scr_animtree["command_monitor_fx_yellow"] = #animtree; level.scr_model["command_monitor_fx_yellow"] = "bi_command_center_panel_26_screen_yellow"; level.scr_anim["command_monitor_fx_yellow"]["command_monitor_fx_1"] = %blackice_controlroom_monitor_fx_1; level.scr_anim["command_monitor_fx_yellow"]["command_monitor_fx_2"] = %blackice_controlroom_monitor_fx_2; level.scr_anim["command_monitor_fx_yellow"]["command_monitor_fx_3"] = %blackice_controlroom_monitor_fx_3; level.scr_animtree["command_monitor_fx_red"] = #animtree; level.scr_model["command_monitor_fx_red"] = "bi_command_center_panel_26_screen_red"; level.scr_anim["command_monitor_fx_red"]["command_monitor_fx_1"] = %blackice_controlroom_monitor_fx_1; level.scr_anim["command_monitor_fx_red"]["command_monitor_fx_2"] = %blackice_controlroom_monitor_fx_2; level.scr_anim["command_monitor_fx_red"]["command_monitor_fx_3"] = %blackice_controlroom_monitor_fx_3; level.scr_animtree["command_shutoff_button"] = #animtree; level.scr_anim["command_shutoff_button"]["command_shutoff_button"] = %blackice_command_shutoff_button; level.scr_animtree["command_monitor"] = #animtree; level.scr_anim["command_monitor"]["command_monitor_player"] = %blackice_command_monitor_player; level.scr_anim["command_monitor"]["command_monitor_baker"] = %blackice_command_monitor_baker; level.scr_anim["command_monitor"]["command_monitor_player_end"] = %blackice_command_monitor_player_end; level.scr_anim["command_monitor"]["command_monitor_baker_end"] = %blackice_command_monitor_baker_end; level.scr_animtree["command_opfor1_chair"] = #animtree; level.scr_model["command_opfor1_chair"] = "blackice_commandcenter_chair"; level.scr_anim["command_opfor1_chair"]["command_death"] = %blackice_controlroompanel_chair_death; level.scr_anim["command_opfor1_chair"]["command_start"] = %blackice_controlroompanel_chair_death_push; level.scr_animtree["command_enemy_1"] = #animtree; level.scr_animtree["command_enemy_2"] = #animtree; level.scr_model["command_enemy_1"] = "body_oil_worker_ab"; level.scr_model["command_enemy_2"] = "body_oil_worker_bb"; level.scr_anim["command_enemy_1"]["command_idle"][0] = %blackice_controlroompanel_opfor1_loop; level.scr_anim["command_enemy_1"]["command_death"] = %blackice_controlroompanel_opfor1_death; level.scr_anim["command_enemy_1"]["command_start"] = %blackice_controlroompanel_opfor1_death_push; level.scr_anim["command_enemy_2"]["command_idle"][0] = %blackice_controlroompanel_opfor2_loop; level.scr_anim["command_enemy_2"]["command_death"] = %blackice_controlroompanel_opfor2_death; level.scr_anim["command_enemy_2"]["command_start"] = %blackice_controlroom_player_start_opfor; level.scr_animtree["debris01"] = #animtree; level.scr_anim["debris01"]["runout_group1"] = %blackice_runout_group_1; level.scr_model["debris01"] = "blackice_runout_group1"; level.scr_animtree["debris02"] = #animtree; level.scr_anim["debris02"]["runout_group2"] = %blackice_runout_group_2; level.scr_model["debris02"] = "blackice_runout_group2"; level.scr_animtree["debris03"] = #animtree; level.scr_anim["debris03"]["runout_group3"] = %blackice_runout_group_3; level.scr_model["debris03"] = "blackice_runout_group3"; level.scr_animtree["bulkhead_door"] = #animtree; level.scr_model["bulkhead_door"] = "bulkhead_door"; level.scr_anim["bulkhead_door"]["shoulder_door"] = %blackice_controlroom_exfil_finalroom_door; level.scr_animtree["exfil_helo"] = #animtree; level.scr_model["exfil_helo"] = "vehicle_mi24p_hind_blackice"; level.scr_anim["exfil_helo"]["idle"] = %blackice_helo_idle; level.scr_anim["exfil_helo"]["ladder_chase"] = %blackice_helo_explode; maps\_anim::addnotetrack_notify( "exfil_helo", "spotlight_on", "notify_helo_spotlight_on", "idle" ); maps\_anim::addnotetrack_notify( "exfil_helo", "spotlight_off", "notify_helo_spotlight_off", "ladder_chase" ); level.scr_animtree["cam_shake"] = #animtree; level.scr_model["cam_shake"] = "tag_origin"; level.scr_anim["cam_shake"]["jump_shake"] = %blackice_player_exfil_jumpcam; level.scr_anim["cam_shake"]["jump_shake_fail"] = %blackice_player_exfil_jumpcam_fail; level.scr_animtree["exfil_ladder"] = #animtree; level.scr_model["exfil_ladder"] = "blackice_rope_ladder"; level.scr_anim["exfil_ladder"]["idle"] = %blackice_rope_ladder_idle; level.scr_anim["exfil_ladder"]["ladder_chase"] = %blackice_rope_ladder_explode; level.scr_animtree["exfil_oilrig"] = #animtree; level.scr_model["exfil_oilrig"] = "black_ice_rig_platform"; level.scr_anim["exfil_oilrig"]["ladder_chase"] = %blackice_oilrig_exfil_explode; maps\_anim::addnotetrack_notify( "exfil_oilrig", "sphere_start_fall", "notify_sphere_start_fall", "ladder_chase" ); maps\_anim::addnotetrack_notify( "exfil_oilrig", "sphere_hit_ground", "notify_sphere_hit_ground", "ladder_chase" ); maps\_anim::addnotetrack_notify( "exfil_oilrig", "rig_explode", "notify_rig_explode", "ladder_chase" ); level.scr_animtree["exfil_lifeboat1"] = #animtree; level.scr_model["exfil_lifeboat1"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat1"]["ladder_chase"] = %blackice_lifeboat1_exfil_explode; level.scr_animtree["exfil_lifeboat2"] = #animtree; level.scr_model["exfil_lifeboat2"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat2"]["ladder_chase"] = %blackice_lifeboat2_exfil_explode; level.scr_animtree["exfil_lifeboat3"] = #animtree; level.scr_model["exfil_lifeboat3"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat3"]["ladder_chase"] = %blackice_lifeboat3_exfil_explode; level.scr_animtree["exfil_lifeboat4"] = #animtree; level.scr_model["exfil_lifeboat4"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat4"]["ladder_chase"] = %blackice_lifeboat4_exfil_explode; level.scr_animtree["exfil_lifeboat5"] = #animtree; level.scr_model["exfil_lifeboat5"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat5"]["ladder_chase"] = %blackice_lifeboat5_exfil_explode; level.scr_animtree["exfil_lifeboat6"] = #animtree; level.scr_model["exfil_lifeboat6"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat6"]["ladder_chase"] = %blackice_lifeboat6_exfil_explode; level.scr_animtree["exfil_lifeboat7"] = #animtree; level.scr_model["exfil_lifeboat7"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat7"]["ladder_chase"] = %blackice_lifeboat7_exfil_explode; level.scr_animtree["exfil_lifeboat8"] = #animtree; level.scr_model["exfil_lifeboat8"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat8"]["ladder_chase"] = %blackice_lifeboat8_exfil_explode; level.scr_animtree["exfil_lifeboat9"] = #animtree; level.scr_model["exfil_lifeboat9"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat9"]["ladder_chase"] = %blackice_lifeboat9_exfil_explode; level.scr_animtree["exfil_lifeboat10"] = #animtree; level.scr_model["exfil_lifeboat10"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat10"]["ladder_chase"] = %blackice_lifeboat10_exfil_explode; level.scr_animtree["exfil_lifeboat11"] = #animtree; level.scr_model["exfil_lifeboat11"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat11"]["ladder_chase"] = %blackice_lifeboat11_exfil_explode; level.scr_animtree["exfil_lifeboat12"] = #animtree; level.scr_model["exfil_lifeboat12"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat12"]["ladder_chase"] = %blackice_lifeboat12_exfil_explode; level.scr_animtree["exfil_lifeboat13"] = #animtree; level.scr_model["exfil_lifeboat13"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat13"]["ladder_chase"] = %blackice_lifeboat13_exfil_explode; level.scr_animtree["exfil_lifeboat14"] = #animtree; level.scr_model["exfil_lifeboat14"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat14"]["ladder_chase"] = %blackice_lifeboat14_exfil_explode; level.scr_animtree["exfil_lifeboat15"] = #animtree; level.scr_model["exfil_lifeboat15"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat15"]["ladder_chase"] = %blackice_lifeboat15_exfil_explode; level.scr_animtree["exfil_lifeboat16"] = #animtree; level.scr_model["exfil_lifeboat16"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat16"]["ladder_chase"] = %blackice_lifeboat16_exfil_explode; level.scr_animtree["exfil_lifeboat17"] = #animtree; level.scr_model["exfil_lifeboat17"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat17"]["ladder_chase"] = %blackice_lifeboat17_exfil_explode; level.scr_animtree["exfil_lifeboat18"] = #animtree; level.scr_model["exfil_lifeboat18"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat18"]["ladder_chase"] = %blackice_lifeboat18_exfil_explode; level.scr_animtree["exfil_lifeboat19"] = #animtree; level.scr_model["exfil_lifeboat19"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat19"]["ladder_chase"] = %blackice_lifeboat19_exfil_explode; level.scr_animtree["exfil_lifeboat20"] = #animtree; level.scr_model["exfil_lifeboat20"] = "rnk_lifeboat"; level.scr_anim["exfil_lifeboat20"]["ladder_chase"] = %blackice_lifeboat20_exfil_explode; level.scr_animtree["exfil_viewexplosion_source"] = #animtree; level.scr_model["exfil_viewexplosion_source"] = "bi_viewexplosion_source"; } collapsed_derrick_wire_anims() { var_0 = getent( "derrick_wires", "targetname" ); var_0.animname = "derrick_wires"; var_0 maps\_anim::setanimtree(); var_0 setanim( %blackice_derrick_collapse_wires_1, 1, 0, 1 ); var_0 setanim( %blackice_derrick_collapse_wires_2, 1, 0, 1 ); var_0 setanim( %blackice_derrick_collapse_wires_3, 1, 0, 1 ); var_0 setanim( %blackice_derrick_collapse_wires_4, 1, 0, 1 ); var_0 setanim( %blackice_derrick_collapse_wires_5, 1, 0, 1 ); var_0 setanim( %blackice_derrick_collapse_wires_6, 1, 0, 1 ); } #using_animtree("vehicles"); vehicle_anims() { level.scr_anim["bc_reinforce_helo"]["arrive"] = %blackice_basecamp_heliarrival; level.scr_anim["bc_reinforce_helo"]["idle_loop"][0] = %blackice_basecamp_heliidle; level.scr_anim["bc_reinforce_helo"]["leave"] = %blackice_basecamp_helileave; level.scr_animtree["pipedeck_heli"] = #animtree; level.scr_model["pipedeck_heli"] = "blackice_drill_pipe_single"; level.scr_anim["pipedeck_heli"]["heli_reveal"] = %blackice_topdrive_helireveal; level.scr_anim["pipedeck_heli"]["heli_reveal_loop"][0] = %blackice_topdrive_helireveal_loop; level.scr_anim["pipedeck_heli"]["final_support"] = %blackice_pipedeck_heliattack_01; maps\_anim::addnotetrack_notify( "pipedeck_heli", "gun_on", "notify_heli_anim_fire_on", "final_support" ); maps\_anim::addnotetrack_notify( "pipedeck_heli", "gun_off", "notify_heli_anim_fire_off", "final_support" ); maps\_anim::addnotetrack_notify( "pipedeck_heli", "command_lights_out", "notify_command_lights_out", "final_support" ); } notetrack_swim_loosen_lookaround( var_0 ) { level.player lerpviewangleclamp( 1.0, 0, 0, level.spring_cam_max_clamp, level.spring_cam_max_clamp, level.spring_cam_max_clamp, level.spring_cam_max_clamp ); } notetrack_swim_begin_player_control( var_0 ) { level.player unlink(); level.player_mover delete(); level.player_rig delete(); } notetrack_player_breach_water( var_0 ) { var_1 = 0.2; var_2 = 0.2; var_3 = 1.5; var_4 = maps\_hud_util::create_client_overlay( "black", 0, level.player ); var_4 fadeovertime( var_1 ); var_4.alpha = 1; wait( var_1 ); thread maps\_utility::vision_set_fog_changes( "black_ice_basecamp_breach", 0.1 ); common_scripts\utility::flag_set( "player_water_breach" ); wait( var_2 ); level.breach_anim_node thread maps\_anim::anim_single_solo( level.breach_props["breach_water"], "intro_breach_end" ); level.breach_anim_node thread maps\_anim::anim_single_solo( level.breach_props["ice_chunks1"], "intro_breach_end" ); level.breach_anim_node thread maps\_anim::anim_single_solo( level.breach_props["introbreach_props"], "intro_breach_end" ); level.player maps\_underwater::underwater_hud_enable( 0 ); level.player thread maps\_underwater::stop_player_scuba(); if ( isdefined( level.player.hud_scubamask ) ) level.player.hud_scubamask maps\_hud_util::destroyelem(); level.player_mask show(); var_4 fadeovertime( var_3 ); var_4.alpha = 0; thread maps\_utility::vision_set_fog_changes( "black_ice_basecamp", 1.5 ); wait( var_3 ); var_4 destroy(); } notetrack_intro_ally2_bubbles( var_0 ) { playfxontag( common_scripts\utility::getfx( "scuba_bubbles_friendly" ), var_0.scuba_org, "tag_origin" ); } notetrack_remove_mask( var_0 ) { } notetrack_release_allies( var_0 ) { level notify( "bc_release_allies" ); } notetrack_player_draw_weapon_surface( var_0 ) { level.player takeweapon( "aps_underwater+swim" ); level.player switchtoweapon( level.default_weapon ); level.player giveweapon( "fraggrenade" ); level.player giveweapon( "flash_grenade" ); level.player.disablereload = 0; level.player enableweapons(); level.player enableoffhandweapons(); level.player enableweaponswitch(); setsaveddvar( "hud_drawhud", 1 ); maps\black_ice_util::black_ice_show_previous_hud(); level.player.early_weapon_enabled = 1; } notetrack_player_draw_weapon_ascend( var_0 ) { level.player.disablereload = 0; level.player enableweapons(); level.player enableoffhandweapons(); level.player enableweaponswitch(); level.player.early_weapon_enabled = 1; } notetrack_derrick_small_explosion( var_0 ) { level notify( "notify_derrick_small_explosion" ); } notetrack_traveling_block_impact( var_0 ) { thread maps\black_ice_audio::sfx_blackice_derrick_exp6_ss(); level notify( "notify_traveling_block_impact" ); } notetrack_derrick_large_explosion( var_0 ) { level notify( "notify_derrick_large_explosion" ); common_scripts\utility::flag_set( "flag_derrick_exploded" ); } notetrack_derrick_impact_rig( var_0 ) { level notify( "notify_derrick_impact_rig" ); } notetrack_refinery_start_combat( var_0 ) { level notify( "notify_notetrack_debris_end" ); } notetrack_ascend_rubberband_bravo_stop( var_0 ) { level notify( "notify_ascend_rubberband_bravo_stop" ); } notetrack_ascend_rubberband_alpha_start( var_0 ) { level notify( "notify_ascend_rubberband_alpha_start" ); } notetrack_ascend_rubberband_alpha_stop( var_0 ) { level notify( "notify_ascend_rubberband_alpha_stop" ); } notetrack_player_free_look_active( var_0 ) { level.player lerpviewangleclamp( 0.02, 0, 0, 60, 60, 60, 60 ); } notetrack_player_additive_anims_start( var_0 ) { level.player notify( "notify_additive_anims_start" ); level.allow_player_ascend_move = 1; var_0 setanimlimited( level.scr_anim["player_rig"]["player_rigascend_noise"], 1, 0.1 ); var_0 setanimlimited( level.scr_anim["player_rig"]["rigascend_noise_parent"], 0, 0.1 ); maps\black_ice_ascend::player_ramp_up_wind(); } notetrack_ascend_end_player_control( var_0 ) { level.allow_player_ascend_move = 0; thread maps\black_ice_audio::sfx_stop_ascent_sounds(); thread maps\black_ice_audio::sfx_ascend_wind_last(); level.player lerpviewangleclamp( 1.0, 0, 0, 0, 0, 0, 0 ); level.player_rig setanim( level.scr_anim["player_rig"]["rig_ascend_start"], 0.0 ); level.player_legs setanim( level.scr_anim["player_legs_ascend"]["rig_ascend_start"], 0.0 ); level.player_rig setanim( level.scr_anim["player_rig"]["rig_ascend_stop"], 0.0 ); level.player_legs setanim( level.scr_anim["player_legs_ascend"]["rig_ascend_stop"], 0.0 ); level.player_rig setanimlimited( level.scr_anim["player_rig"]["player_rigascend_noise"], 0.0, 0.2 ); level.player_rig setanimlimited( level.scr_anim["player_rig"]["rigascend_noise_parent"], 0.0, 0.2 ); level notify( "notify_end_ascend_pendulum" ); wait( level.timestep ); level.player_ascend_anim_node rotateto( ( 0, level.player_ascend_anim_node.angles[1], 0 ), level.timestep ); level notify( "notify_ascend_objective_complete" ); wait 5; maps\_utility::autosave_by_name( "catwalk_start" ); } notetrack_cw_tape_explode( var_0 ) { level notify( "notify_cw_tape_explode" ); } notetrack_control_room_allow_free_look( var_0 ) { level notify( "notify_control_room_allow_free_look" ); } notetrack_control_room_start_baker( var_0 ) { common_scripts\utility::flag_set( "flag_command_baker_console_anim" ); } notetrack_dialogue_hallclear( var_0 ) { level._allies[0] maps\_utility::smart_dialogue( "black_ice_bkr_hallwayclearletsmove" ); } notetrack_exfil_dialog_1( var_0 ) { level notify( "notify_exfil_dialog_1" ); } notetrack_exfil_dialog_2( var_0 ) { level notify( "notify_exfil_dialog_2" ); } notetrack_player_teleport( var_0 ) { level notify( "notify_exfil_player_teleport" ); level notify( "notify_stop_view_smoke_fx" ); } notetrack_heli_swing( var_0 ) { common_scripts\utility::flag_set( "flag_helo_swing" ); level.player playrumbleonentity( "helo_ladder_swing" ); } notetrack_start_slomo( var_0 ) { level notify( "notify_exfil_start_slomo" ); } notetrack_end_slomo( var_0 ) { level notify( "notify_exfil_end_slomo" ); } ambient_derrick_animation() { thread collapsed_derrick_wire_anims(); } notetrack_command_dialog_fail_early( var_0 ) { thread maps\black_ice_util::temp_dialogue_line( "Baker", "ROOK! TO SOON! GET OUT, NOW!!!", 3 ); } notetrack_command_dialog_fail_late( var_0 ) { maps\_utility::radio_dialogue_stop(); wait 0.5; level._allies[0] maps\_utility::smart_radio_dialogue_interrupt( "black_ice_mrk_shitadamkeepthe" ); } notetrack_command_dialog_end( var_0 ) { level notify( "notify_dialog_command_end" ); } notetrack_derrick_debris_hitground( var_0 ) { var_0 notify( "hitground" ); } notetrack_derrick_debris_hit_1( var_0 ) { level notify( "notify_debris_ground_fx_1" ); } notetrack_derrick_debris_hit_2( var_0 ) { level notify( "notify_debris_ground_fx_2" ); } notetrack_derrick_chunk_hit_barrels( var_0 ) { earthquake( 0.33, 0.65, level.player.origin, 128 ); level.player playrumbleonentity( "damage_light" ); } notetrack_oiltank_catwalk_swap( var_0 ) { level notify( "notify_swap_catwalk" ); } notetrack_tanks_start_custom_death( var_0 ) { level notify( "notify_tanks_start_custom_death" ); } notetrack_tanks_end_custom_death( var_0 ) { level notify( "notify_tanks_end_custom_death" ); } smooth_player_link( var_0, var_1 ) { level.player playerlinktoblend( var_0, "tag_player", var_1 ); wait( var_1 ); level.player playerlinktodelta( var_0, "tag_player", 1, 0, 0, 0, 0, 1 ); var_0 show(); } snake_cam_enemy_anims() { for ( var_0 = 1; var_0 < level.snake_cam_enemies.size; var_0++ ) level.snake_cam_anim_node thread maps\_anim::anim_single_solo( level.snake_cam_enemies[var_0], "intro_" + ( var_0 + 1 ) ); level.snake_cam_anim_node maps\_anim::anim_single_solo( level.snake_cam_enemies[0], "intro_1" ); foreach ( var_2 in level.snake_cam_enemies ) { var_2 delete(); var_2 = undefined; } } swim_intro_anims() { level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level.player_scuba, "scuba_intro" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level.borescope, "borescope" ); level.borescope thread maps\black_ice_util::delete_at_anim_end( "borescope", "borescope" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level.player_rig, "player_intro" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level._allies_swim[0], "intro_ally1" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level._allies_swim[1], "intro_ally2" ); level common_scripts\utility::waittill_either( "notify_swim_dialog5_1", "flag_swim_breach_detonate" ); if ( !common_scripts\utility::flag( "flag_swim_breach_detonate" ) ) thread swim_await_detonate_anims(); } swim_await_detonate_anims() { for ( var_0 = 0; var_0 < level.const_expected_num_swim_allies; var_0++ ) level.allies_breach_anim_node thread maps\_anim::anim_loop_solo( level._allies_swim[var_0], "intro_ally" + ( var_0 + 1 ) + "_idle", "stop_loop" ); } swim_enemies_first_frame_anims() { for ( var_0 = 0; var_0 < level.ice_breach_enemies.size; var_0++ ) level.breach_anim_node thread maps\_anim::anim_first_frame_solo( level.ice_breach_enemies[var_0], "introbreach_opfor" + var_0 ); } swim_props_first_frame_anims() { level.allies_breach_anim_node thread maps\_anim::anim_first_frame_solo( level.borescope, "borescope" ); level.breach_anim_node maps\_anim::anim_first_frame( level.breach_props, "intro_breach" ); } swim_vehicles_snake_cam_anims() { level.snake_cam_anim_node thread maps\_anim::anim_single( level.breach_vehicles, "intro_drive" ); level.snake_cam_anim_node thread maps\_anim::anim_single( level.vehicles_no_breach, "intro_drive" ); level.vehicles_no_breach["bm21_3"] thread maps\black_ice_util::delete_at_anim_end( "bm21_3", "intro_drive" ); level.vehicles_no_breach["gaztiger_2"] thread maps\black_ice_util::delete_at_anim_end( "gaztiger_2", "intro_drive" ); level.vehicles_no_breach["snowmobile_1"] thread maps\black_ice_util::delete_at_anim_end( "snowmobile_1", "intro_drive" ); level.vehicles_no_breach["snowmobile_2"] thread maps\black_ice_util::delete_at_anim_end( "snowmobile_2", "intro_drive" ); } notetrack_snake_cam_retract( var_0 ) { level.snake_cam_anim_node thread maps\_anim::anim_single_solo( level.snake_cam_dummy, "retract" ); } notetrack_snake_enemy_dismount( var_0 ) { var_1 = getentarray( "enemy_dismount", "script_noteworthy" ); var_2 = maps\_utility::array_spawn( var_1 ); foreach ( var_4 in var_2 ) { var_4.animname = var_4.script_parameters; var_4 maps\black_ice_util::ignore_everything(); var_4 thread maps\_utility::magic_bullet_shield(); } level.snake_cam_anim_node maps\_anim::anim_single( var_2, "enemy_dismount" ); foreach ( var_4 in var_2 ) { var_4 maps\_utility::stop_magic_bullet_shield(); var_4 delete(); } } notetrack_snake_cam_lens_water( var_0 ) { common_scripts\utility::flag_set( "flag_snake_cam_below_water" ); var_1 = spawn( "script_model", ( 0, 0, 0 ) ); var_1 setmodel( "tag_origin" ); var_1 linktoplayerview( level.player, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ), 1 ); playfxontag( common_scripts\utility::getfx( "snake_cam_waterline_under" ), var_1, "tag_origin" ); level waittill( "snake_cam_transition_to_underwater_complete" ); stopfxontag( common_scripts\utility::getfx( "snake_cam_waterline_under" ), var_1, "tag_origin" ); var_1 delete(); } notetrack_snake_cam_underwater_transition( var_0 ) { level notify( "notify_underwater_transition" ); common_scripts\utility::flag_set( "flag_intro_above_ice" ); if ( !level.console && !level.player common_scripts\utility::is_player_gamepad_enabled() ) level.player enablemousesteer( 0 ); } swim_breach_anims() { level.allies_breach_anim_node notify( "stop_loop" ); for ( var_0 = 0; var_0 < level.const_expected_num_swim_allies; var_0++ ) level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level._allies_swim[var_0], "breach_ally" + ( var_0 + 1 ) ); for ( var_0 = 0; var_0 < level.ice_breach_enemies.size; var_0++ ) { level.breach_anim_node thread maps\_anim::anim_single_solo( level.ice_breach_enemies[var_0], "introbreach_opfor" + var_0 ); level.ice_breach_enemies[var_0].deathanim = level.ice_breach_enemies[var_0] maps\_utility::getanim( "death_anim" + var_0 ); } level.breach_anim_node thread maps\_anim::anim_single( level.breach_props, "intro_breach" ); thread swim_breach_ice_anims(); level.breach_anim_node thread maps\_anim::anim_single( level.breach_vehicles, "intro_breach" ); thread maps\black_ice_fx::intro_turn_on_vehicle_underwater_lights_fx(); } swim_breach_ice_anims() { level endon( "bc_player_ready" ); while ( !level.breach_props["ice_chunks1"] maps\black_ice_util::check_anim_time( "ice_chunks1", "intro_breach", 1.0 ) ) wait( level.timestep ); level.breach_anim_node thread maps\_anim::anim_loop_solo( level.breach_props["ice_chunks1"], "intro_breach_loop", "stop_loop" ); } swim_enemy_death_anim_override() { if ( !isdefined( self.nodeathsound ) ) animscripts\death::playdeathsound(); if ( isdefined( self.deathanim ) ) { self animmode( "nogravity" ); self stopanimscripted(); self setflaggedanimknoblimitedrestart( "deathanim", self.deathanim, 1, 0.4 ); playfxontag( common_scripts\utility::getfx( "swim_ai_death_blood" ), self, "j_spineupper" ); wait( getanimlength( self.deathanim ) ); return 1; } return 0; } swim_allies_swim_forward() { for ( var_0 = 0; var_0 < level._allies_swim.size; var_0++ ) thread swim_single_ally_swim_forward( var_0 ); } swim_single_ally_swim_forward( var_0 ) { level.allies_breach_anim_node maps\_anim::anim_single_solo( level._allies_swim[var_0], "surface_ally" + ( var_0 + 1 ) ); if ( !common_scripts\utility::flag( "flag_player_breaching" ) ) level.allies_breach_anim_node thread maps\_anim::anim_loop_solo( level._allies_swim[var_0], "surface_ally" + ( var_0 + 1 ) + "_idle" ); } swim_ally_surface_anim() { var_0 = level.allies_breach_anim_node; var_0 thread maps\black_ice_swim::scuba_surface( 0.5, level._allies_swim[0], "surface_ally1_up", level._allies[0], "bc_node_surf_ally1" ); var_0 thread maps\black_ice_swim::bravo_post_snake_cam( 0.0, level._bravo[0], "bc_node_surf_bravo1", "surface_ally3_up" ); var_0 thread maps\black_ice_swim::bravo_post_snake_cam( 0.0, level._bravo[1], "bc_node_surf_bravo2" ); var_0 maps\black_ice_swim::scuba_surface( 2.0, level._allies_swim[1], "surface_ally2_up", level._allies[1], "bc_node_surf_ally2" ); level notify( "notify_ally_swim_surface_anims_done" ); } swim_truck_surface_anim() { var_0 = common_scripts\utility::getstruct( "vignette_truck_fall", "script_noteworthy" ); var_1 = maps\_utility::spawn_anim_model( "blackice_ice_chunks_truck" ); var_2 = maps\_utility::spawn_anim_model( "bm21_1" ); level.surface_truck = var_2; level.blackice_ice_chunks_truck = var_1; var_3 = [ var_2, var_1 ]; var_0 maps\_anim::anim_first_frame( var_3, "surface_truck" ); level waittill( "flag_player_breaching" ); var_0 maps\_anim::anim_single( var_3, "surface_truck" ); } swim_truck_surface_destroy() { wait 0.1; level.surface_truck delete(); level.surface_truck = undefined; } swim_player_surface_anim() { var_0 = maps\_utility::spawn_anim_model( "player_rig" ); var_0 setanim( level.scr_anim["player_rig"]["player_surface_arms"] ); var_1 = var_0 gettagorigin( "tag_knife_attach" ); level.player_rig = maps\_utility::spawn_anim_model( "player_rig" ); level.player_rig hide(); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level.player_rig, "player_surface_root" ); level.player playerlinktoblend( level.player_rig, "tag_player", 1.6 ); var_2 = maps\_utility::spawn_anim_model( "player_mask", var_1 ); level.player_mask = var_2; var_2 hide(); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( var_2, "mask_surface" ); while ( !level.player_rig maps\black_ice_util::check_anim_time( "player_rig", "player_surface_root", 1.0 ) ) { if ( common_scripts\utility::flag( "flag_surface_anim_swap" ) ) break; var_1 = level.player geteye(); var_3 = level.player getplayerangles(); var_0.origin = var_1; var_0.angles = var_3; wait( level.timestep ); } var_0 delete(); level.player_rig show(); level.player_rig stopanimscripted(); var_2 stopanimscripted(); level._bravo[0] stopanimscripted(); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level.player_rig, "player_surface_root_pt2" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( var_2, "mask_surface_pt2" ); level.allies_breach_anim_node thread maps\_anim::anim_single_solo( level._bravo[0], "surface_ally3_up_pt2" ); while ( !level.player_rig maps\black_ice_util::check_anim_time( "player_rig", "player_surface_root_pt2", 1.0 ) ) wait( level.timestep ); level notify( "bc_player_ready" ); var_2 delete(); level.player_mask = undefined; thread maps\_swim_ai_common::restore_water_footsteps(); } intro_player_goggles_watersheeting_fx() { level.player setwatersheeting( 1, 3 ); } cw_common_breach_player( var_0 ) { var_1 = getent( "cw_vig_common_room_breach", "targetname" ); level.breach_charge = maps\_utility::spawn_anim_model( "breach_door_charge" ); var_2 = maps\_utility::spawn_anim_model( "player_rig" ); var_2 hide(); var_0 maps\_utility::assign_animtree( "common_door" ); level.player disableweapons(); level.player freezecontrols( 1 ); level.player allowprone( 0 ); level.player allowcrouch( 0 ); var_3 = tolower( level.player getcurrentweapon() ); if ( issubstr( var_3, "mts255" ) ) wait 0.2; else if ( issubstr( var_3, "panzerfaust" ) ) wait 0.6; var_4 = [ var_2, level.breach_charge ]; var_5 = 0; thread smooth_player_link( var_2, 0.4 ); var_1 thread maps\_anim::anim_single_solo( var_4[1], "breach" ); var_0 thread maps\_anim::anim_single_solo( var_0, "bullets" ); var_1 maps\_anim::anim_single_solo( var_4[0], "breach" ); level.player unlink(); level.player freezecontrols( 0 ); level.player allowprone( 1 ); level.player allowcrouch( 1 ); level.player thread maps\black_ice_catwalks::cw_common_perfect_breach_proc(); var_2 delete(); } cw_common_breach_draw_weapon( var_0 ) { level.player enableweapons(); } cw_common_breach_allies() { var_0 = getent( "cw_vig_common_room_breach", "targetname" ); var_0 maps\_anim::anim_single( level._allies, "rec_breach" ); var_0 thread maps\_anim::anim_loop( level._allies, "rec_breach_idle", "stop_looping_anim" ); common_scripts\utility::flag_wait( "flag_common_breach_done" ); var_0 notify( "stop_looping_anim" ); var_0 maps\_anim::anim_single( level._allies, "rec_breach_move", undefined, 0.1 ); } vig_actor_kill( var_0 ) { if ( !isalive( var_0 ) ) return; if ( isdefined( var_0.magic_bullet_shield ) ) var_0 maps\_utility::stop_magic_bullet_shield(); var_0.allowdeath = 1; var_0.a.nodeath = 1; var_0 maps\_utility::set_battlechatter( 0 ); var_0 kill(); } #using_animtree("generic_human"); spawn_dead_bodies_mudpumps() { level.scr_animtree["body_mud1"] = #animtree; level.scr_anim["body_mud1"]["bodies"][0] = %blackice_mudpump_bodies_01; level.scr_model["body_mud1"] = "body_oil_worker_a"; level.scr_animtree["body_mud2"] = #animtree; level.scr_anim["body_mud2"]["bodies"][0] = %blackice_mudpump_bodies_02; level.scr_model["body_mud2"] = "body_oil_worker_ab"; level.scr_animtree["body_mud3"] = #animtree; level.scr_anim["body_mud3"]["bodies"][0] = %blackice_mudpump_bodies_03; level.scr_model["body_mud3"] = "body_oil_worker_ac"; level.scr_animtree["body_mud4"] = #animtree; level.scr_anim["body_mud4"]["bodies"][0] = %blackice_mudpump_bodies_04; level.scr_model["body_mud4"] = "body_oil_worker_b"; level.scr_animtree["body_mud5"] = #animtree; level.scr_anim["body_mud5"]["bodies"][0] = %blackice_mudpump_bodies_05; level.scr_model["body_mud5"] = "body_oil_worker_bb"; level.scr_animtree["body_mud6"] = #animtree; level.scr_anim["body_mud6"]["bodies"][0] = %blackice_mudpump_bodies_06; level.scr_model["body_mud6"] = "body_oil_worker_bc"; var_0 = common_scripts\utility::getstruct( "bodies", "script_noteworthy" ); var_1 = []; for ( var_2 = 1; var_2 <= 6; var_2++ ) { var_3 = maps\_utility::spawn_anim_model( "body_mud" + var_2 ); var_1 = common_scripts\utility::array_add( var_1, var_3 ); if ( common_scripts\utility::mod( var_2, 2 ) == 0 ) { var_3 attach( "head_oil_worker_a", "" ); continue; } var_3 attach( "head_oil_worker_b", "" ); } var_0 maps\_anim::anim_loop( var_1, "bodies" ); } spawn_dead_bodies_pipe_deck() { level.scr_animtree["body1"] = #animtree; level.scr_anim["body1"]["bodies"][0] = %blackice_pipedeck_bodies_01; level.scr_model["body1"] = "body_oil_worker_a"; level.scr_animtree["body2"] = #animtree; level.scr_anim["body2"]["bodies"][0] = %blackice_pipedeck_bodies_02; level.scr_model["body2"] = "body_oil_worker_ab"; level.scr_animtree["body3"] = #animtree; level.scr_anim["body3"]["bodies"][0] = %blackice_pipedeck_bodies_03; level.scr_model["body3"] = "body_oil_worker_ac"; level.scr_animtree["body4"] = #animtree; level.scr_anim["body4"]["bodies"][0] = %blackice_pipedeck_bodies_04; level.scr_model["body4"] = "body_oil_worker_b"; level.scr_animtree["body5"] = #animtree; level.scr_anim["body5"]["bodies"][0] = %blackice_pipedeck_bodies_05; level.scr_model["body5"] = "body_oil_worker_bb"; level.scr_animtree["body6"] = #animtree; level.scr_anim["body6"]["bodies"][0] = %blackice_pipedeck_bodies_06; level.scr_model["body6"] = "body_oil_worker_bc"; level.scr_animtree["body7"] = #animtree; level.scr_anim["body7"]["bodies"][0] = %blackice_pipedeck_bodies_07; level.scr_model["body7"] = "body_oil_worker_a"; level.scr_animtree["body8"] = #animtree; level.scr_anim["body8"]["bodies"][0] = %blackice_pipedeck_bodies_08; level.scr_model["body8"] = "body_oil_worker_ab"; level.scr_animtree["body9"] = #animtree; level.scr_anim["body9"]["bodies"][0] = %blackice_pipedeck_bodies_09; level.scr_model["body9"] = "body_oil_worker_ac"; level.scr_animtree["body10"] = #animtree; level.scr_anim["body10"]["bodies"][0] = %blackice_pipedeck_bodies_10; level.scr_model["body10"] = "body_oil_worker_b"; var_0 = common_scripts\utility::getstruct( "bodies", "script_noteworthy" ); var_1 = []; for ( var_2 = 1; var_2 <= 10; var_2++ ) { var_3 = maps\_utility::spawn_anim_model( "body" + var_2 ); var_1 = common_scripts\utility::array_add( var_1, var_3 ); if ( common_scripts\utility::mod( var_2, 2 ) == 0 ) { var_3 attach( "head_oil_worker_b", "" ); continue; } var_3 attach( "head_oil_worker_c", "" ); } var_0 maps\_anim::anim_loop( var_1, "bodies" ); } vig_pipdeck_wires() { var_0 = common_scripts\utility::getstruct( "vig_pipdeck_wires", "script_noteworthy" ); var_1 = getent( "blackice_wires_pipedeck_anim", "targetname" ); var_1 maps\_utility::assign_animtree( "wires" ); var_2 = []; var_2["wires"] = var_1; var_0 maps\_anim::anim_loop( var_2, "vig_pipdeck_wires" ); } runout_group1() { var_0 = common_scripts\utility::getstruct( "vignette_exfil_runout", "script_noteworthy" ); var_1 = maps\_utility::spawn_anim_model( "debris01" ); var_2 = []; var_2["debris01"] = var_1; var_0 maps\_anim::anim_first_frame( var_2, "runout_group1" ); wait 2.0; var_0 maps\_anim::anim_single( var_2, "runout_group1" ); } runout_group2() { var_0 = common_scripts\utility::getstruct( "vignette_exfil_runout", "script_noteworthy" ); var_1 = maps\_utility::spawn_anim_model( "debris02" ); var_2 = []; var_2["debris02"] = var_1; var_0 maps\_anim::anim_first_frame( var_2, "runout_group2" ); wait 4.85; var_0 maps\_anim::anim_single( var_2, "runout_group2" ); } runout_group3() { var_0 = common_scripts\utility::getstruct( "vignette_exfil_runout", "script_noteworthy" ); var_1 = maps\_utility::spawn_anim_model( "debris03" ); var_2 = []; var_2["debris03"] = var_1; var_0 maps\_anim::anim_first_frame( var_2, "runout_group3" ); wait 7.0; var_0 maps\_anim::anim_single( var_2, "runout_group3" ); }