cod4-sdk/raw/maps/sniperescape_anim.gsc

1007 lines
44 KiB
Text
Raw Normal View History

2008-01-19 00:00:00 +00:00
#include maps\_anim;
#include maps\_utility;
#include maps\_props;
#include maps\sniperescape_code;
#include maps\sniperescape_exchange;
#include maps\sniperescape_wounding;
#using_animtree( "generic_human" );
main()
{
if ( !level.sniperescape_fastload )
{
add_smoking_notetracks( "generic" );
add_cellphone_notetracks( "generic" );
}
level.scr_model[ "stone_block_1" ] = "me_stone_block01";
level.scr_model[ "stone_block_2" ] = "me_stone_block02";
level.scr_model[ "stone_block_3" ] = "me_stone_block03";
level.scr_anim[ "price" ][ "rappel_end" ] = %sniper_escape_rappel_finish;
level.scr_anim[ "price" ][ "rappel_start" ] = %sniper_escape_rappel_start;
level.scr_anim[ "price" ][ "rappel_idle" ][ 0 ] = %sniper_escape_rappel_idle;
level.scr_anim[ "dead_guy" ][ "pool_death" ] = %exposed_death_nerve;
level.scr_animtree[ "dead_guy" ] = #animtree;
// We<57>ll have to take the short cut! Follow my lead!
level.scr_sound[ "price" ][ "rappel_start" ] = "sniperescape_mcm_shortcut";
level.scr_anim[ "generic" ][ "pilot_idle_ff" ] = %helicopter_pilot1_idle;
level.scr_anim[ "price" ][ "smooth_door_open" ] = %hunted_open_barndoor_flathand;
level.scr_anim[ "price" ][ "crash_pickup" ] = %sniper_escape_crash_pickup_macmillan;
level.scr_anim[ "price" ][ "precrash_idle" ][ 0 ] = %sniper_escape_crash_macmillan_aim;
level.scr_anim[ "price" ][ "fire_idle" ][ 0 ] = %sniper_escape_crash_macmillan_fire;
level.scr_anim[ "price" ][ "fire_idle" ][ 1 ] = %sniper_escape_crash_macmillan_aim;
level.scr_anim[ "price" ][ "crash" ] = %sniper_escape_crash_macmillan_runaway;
level.scr_anim[ "price" ][ "crash_idle" ][ 0 ] = %sniper_escape_crash_macmillan_wounded_idle;
level.scr_anim[ "generic" ][ "pilot_idle" ][ 0 ] = %helicopter_pilot1_idle;
level.scr_anim[ "generic" ][ "pilot_idle" ][ 1 ] = %helicopter_pilot1_twitch_clickpannel;
level.scr_anim[ "generic" ][ "pilot_idle" ][ 2 ] = %helicopter_pilot1_twitch_lookback;
level.scr_anim[ "generic" ][ "pilot_idle" ][ 3 ] = %helicopter_pilot1_twitch_lookoutside;
level.scr_anim[ "generic" ][ "gunner_idle" ][ 0 ] = %helicopter_pilot2_idle;
level.scr_anim[ "generic" ][ "gunner_idle" ][ 1 ] = %helicopter_pilot2_twitch_clickpannel;
level.scr_anim[ "generic" ][ "gunner_idle" ][ 2 ] = %helicopter_pilot2_twitch_radio;
level.scr_anim[ "generic" ][ "gunner_idle" ][ 3 ] = %helicopter_pilot2_twitch_lookoutside;
// level.scr_anim[ "zakhaev" ][ "zak_pain" ] = %exposed_death_twist; //exposed_pain_2_crouch;
level.scr_anim[ "zakhaev" ][ "zak_pain" ] = %sniper_escape_meeting_zakhaev_hit_front; //exposed_pain_2_crouch;
level.scr_anim[ "zakhaev" ][ "zak_pain_back" ] = %sniper_escape_meeting_zakhaev_hit_back; //exposed_pain_2_crouch;
level.scr_anim[ "zakhaev" ][ "run" ] = %unarmed_run_russian;
level.scr_anim[ "zakhaev" ][ "exchange" ] = %sniper_escape_meeting_zakhaev;
level.scr_anim[ "guard" ][ "exchange" ] = %sniper_escape_meeting_guard;
level.scr_anim[ "dealer" ][ "exchange" ] = %sniper_escape_meeting_dealer;
level.scr_anim[ "guard" ][ "exchange_idle" ][ 0 ] = %sniper_escape_meeting_guard_idle;
level.scr_anim[ "dealer" ][ "exchange_idle" ][ 0 ] = %sniper_escape_meeting_dealer_idle;
level.scr_anim[ "price" ][ "spin" ] = %combatwalk_f_spin;
level.scr_anim[ "price" ][ "halt" ] = %stand_exposed_wave_halt_v2;
level.scr_anim[ "price" ][ "wounded_turn_left" ] = %sniper_escape_price_turn_L;
level.scr_anim[ "price" ][ "wounded_turn_right" ] = %sniper_escape_price_turn_R;
level.scr_anim[ "price" ][ "spotter_exit" ] = %sniper_escape_spotter_exit;
level.scr_anim[ "price" ][ "spotter_idle" ][ 0 ] = %sniper_escape_spotter_idle;
level.scr_anim[ "price" ][ "spotter_wave" ] = %sniper_escape_spotter_wave;
// Chopper!!! Get back! I'll cover you! sniperescape_mcm_choppergetback
addNotetrack_dialogue( "price", "dialog", "wounded_begins", "sniperescape_mcm_choppergetback" );
level.scr_anim[ "price" ][ "wounded_begins" ] = %sniper_escape_price_hit;
level.scr_anim[ "price" ][ "wounded_idle_reach" ] = %sniper_escape_price_hit_idle;
level.scr_anim[ "price" ][ "wounded_idle" ][ 0 ] = %sniper_escape_price_hit_idle;
level.scr_anim[ "price" ][ "wounded_idle" + "weight" ][ 0 ] = 100;
level.scr_anim[ "price" ][ "wounded_idle" ][ 1 ] = %sniper_escape_price_hit_idle;
level.scr_anim[ "price" ][ "wounded_idle" + "weight" ][ 1 ] = 35;
level.scr_anim[ "price" ][ "wounded_fire" ] = %sniper_escape_price_hit_fire;
level.scr_anim[ "price" ][ "wounded_crawl_start" ] = %sniper_escape_price_crawl_start;
level.scr_anim[ "price" ][ "wounded_crawl_end" ] = %sniper_escape_price_crawl_end;
level.scr_anim[ "price" ][ "wounded_crawl" ] = %sniper_escape_price_crawl;
level.scr_anim[ "generic" ][ "stealth_jog" ] = %patrol_jog;
level.scr_anim[ "generic" ][ "stealth_walk" ] = %patrol_bored_patrolwalk;
level.scr_anim[ "generic" ][ "combat_jog" ] = %combat_jog;
level.scr_anim[ "price" ][ "wounded_death" ] = %sniper_escape_price_killed;
level.scr_anim[ "price" ][ "wounded_base" ] = %wounded_aim;
level.scr_anim[ "price" ][ "wounded_aim_left" ] = %sniper_escape_price_aim_L;
level.scr_anim[ "price" ][ "wounded_aim_right" ] = %sniper_escape_price_aim_R;
level.scr_anim[ "price" ][ "wounded_carry" ][ 0 ] = %sniper_escape_price_walk;
level.scr_anim[ "player" ][ "wounded_carry" ][ 0 ] = %sniper_escape_playerview_walk;
level.scr_anim[ "price" ][ "wounded_pickup" ] = %sniper_escape_price_getup;
level.scr_anim[ "price" ][ "wounded_putdown" ] = %sniper_escape_price_putdown;
level.scr_anim[ "price" ][ "wounded_seaknight_putdown" ] = %airlift_pilot_putdown;
level.scr_anim[ "price" ][ "pickup_idle" ][ 0 ] = %sniper_escape_price_wounded_idle;
level.scr_anim[ "price" ][ "pickup_idle" ][ 0 ] = %sniper_escape_price_wounded_idle;
level.scr_anim[ "generic" ][ "patrol_look_up" ] = %patrol_jog_look_up;
level.scr_anim[ "generic" ][ "patrol_360" ] = %patrol_jog_360;
level.scr_anim[ "generic" ][ "patrol_jog" ] = %patrol_jog;
level.scr_anim[ "generic" ][ "patrol_orders" ] = %patrol_jog_orders;
level.scr_anim[ "generic" ][ "patrol_look_up_once" ] = %patrol_jog_look_up_once;
level.scr_anim[ "generic" ][ "patrol_360_once" ] = %patrol_jog_360_once;
level.scr_anim[ "generic" ][ "patrol_jog_once" ] = %patrol_jog_once;
level.scr_anim[ "generic" ][ "patrol_orders_once" ] = %patrol_jog_orders_once;
level.scr_anim[ "generic" ][ "exchange_surprise_zakhaev" ] = %unarmed_cowerstand_react;
level.scr_anim[ "generic" ][ "exchange_surprise_0" ] = %exposed_idle_reactA;
level.scr_anim[ "generic" ][ "exchange_surprise_1" ] = %exposed_idle_reactB;
level.scr_anim[ "generic" ][ "exchange_surprise_2" ] = %exposed_idle_twitch;
level.scr_anim[ "generic" ][ "exchange_surprise_3" ] = %exposed_idle_twitch_v4;
addNotetrack_customFunction( "generic", "ready_to_run", ::exchange_ready_to_run );
/*
level.scr_anim[ "generic" ][ "exchange_surprise_0" ] = %patrol_bored_react_look_v1;
level.scr_anim[ "generic" ][ "exchange_surprise_1" ] = %patrol_bored_react_look_v2;
level.scr_anim[ "generic" ][ "exchange_surprise_3" ] = %patrol_bored_react_walkstop;
level.scr_anim[ "generic" ][ "exchange_surprise_4" ] = %patrol_bored_react_walkstop_short;
level.scr_anim[ "generic" ][ "exchange_surprise_5" ] = %patrol_bored_react_look_advance;
level.scr_anim[ "generic" ][ "exchange_surprise_6" ] = %patrol_bored_react_look_retreat;
*/
level.surprise_anims = 4;
level.scr_anim[ "generic" ][ "_stealth_behavior_whizby_0" ] = %exposed_idle_reactA;
level.scr_anim[ "generic" ][ "_stealth_behavior_whizby_1" ] = %exposed_idle_reactB;
level.scr_anim[ "generic" ][ "_stealth_behavior_whizby_2" ] = %exposed_idle_twitch;
level.scr_anim[ "generic" ][ "_stealth_behavior_whizby_3" ] = %exposed_idle_twitch_v4;
level.scr_anim[ "generic" ][ "_stealth_behavior_whizby_4" ] = %run_pain_stumble;
level.scr_anim[ "generic" ][ "_stealth_behavior_spotted_short" ] = %exposed_idle_twitch_v4;//patrol_bored_2_combat_alarm_short;
level.scr_anim[ "generic" ][ "_stealth_behavior_spotted_long" ] = %exposed_idle_twitch_v4;
level.scr_anim[ "generic" ][ "sprint" ] = %sprint1_loop;
level.scr_anim[ "generic" ][ "prone_dive" ] = %hunted_dive_2_pronehide_v1;
level.scr_anim[ "generic" ][ "prone_idle" ][ 0 ] = %hunted_pronehide_idle_relative;
level.scr_anim[ "generic" ][ "bored_cell_loop" ][ 0 ] = %patrol_bored_idle_cellphone;
level.scr_anim[ "generic" ][ "smoking" ][ 0 ] = %parabolic_leaning_guy_smoking_idle;
level.scr_anim[ "generic" ][ "smoking" ][ 1 ] = %parabolic_leaning_guy_smoking_twitch;
level.scr_anim[ "generic" ][ "bored_idle" ][ 0 ] = %patrol_bored_idle;
level.scr_anim[ "generic" ][ "bored_idle" ][ 1 ] = %patrol_bored_twitch_bug;
level.scr_anim[ "generic" ][ "bored_idle" ][ 2 ] = %patrol_bored_twitch_stretch;
level.scr_anim[ "generic" ][ "smoke_idle" ][ 0 ] = %patrol_bored_idle_smoke;
level.scr_anim[ "guy1" ][ "load" ] = %ch46_load_1;
level.scr_anim[ "guy1" ][ "unload" ] = %ch46_unload_1;
level.scr_anim[ "guy2" ][ "load" ] = %ch46_load_2;
level.scr_anim[ "guy2" ][ "unload" ] = %ch46_unload_2;
level.scr_anim[ "guy3" ][ "load" ] = %ch46_load_3;
level.scr_anim[ "guy3" ][ "unload" ] = %ch46_unload_3;
level.scr_anim[ "guy4" ][ "load" ] = %ch46_load_4;
level.scr_anim[ "guy4" ][ "unload" ] = %ch46_unload_4;
/*
hunted_pronehide_2_stand_v1
hunted_dive_2_pronehide_v2
hunted_pronehide_idle_v2
hunted_pronehide_2_stand_v2
hunted_dive_2_pronehide_v3
hunted_pronehide_idle_v3
hunted_pronehide_2_stand_v3
*/
level.scr_anim[ "price" ][ "crouch" ] = %exposed_stand_2_crouch;
// Incoming helicopter! Snipe the bastard!
level.scr_radio[ "incoming_helicopter" ] = "sniperescape_mcm_incomingheli";
// Take out that helicopter! Hit the rotor!
level.scr_radio[ "hit_the_rotor" ] = "sniperescape_mcm_hittherotor";
// Price, shoot the helicopter! We'll take it down together!
level.scr_radio[ "shoot_the_helicopter" ] = "sniperescape_mcm_downtogether";
// Fire! Fire!
level.scr_radio[ "fire_fire" ] = "sniperescape_mcm_firefire";
// Gooodnight ya bastard...
level.scr_radio[ "goodnight_ya_bastard" ] = "sniperescape_mcm_goodnight";
// Aw shite - RUUN!
level.scr_radio[ "aw_shite" ] = "sniperescape_mcm_run";
// Ahhh...CRAP! - RUUN!
level.scr_radio[ "ahh_crap" ] = "sniperescape_mcm_run";
// (coughing) Crap, I can't move! (coughing)
level.scr_radio[ "cant_move_1" ] = "sniperescape_mcm_cantmove";
// (coughing) Bloody hell, I can't move! (coughing)
level.scr_radio[ "cant_move_2" ] = "sniperescape_mcm_cantmove";
// (coughing) Damn! My leg's all messed up, I can't move! (coughing)
level.scr_radio[ "cant_move_3" ] = "sniperescape_mcm_cantmove";
addNotetrack_customFunction( "price", "fire", maps\sniperescape_code::price_fires, "wounded_fire" );
//* Leftenant Price, the meeting is underway. Enemy transport sighted entering the target area.
level.scr_radio[ "transport_sighted" ] = "sniperescape_mcm_enemysighted";
//* Now get on the Barrett rifle and wait for my signal. Do not engage until I give the word.
// the wind's gettin a big choppy, you can compensate for it or wait it out but he might leave, it's your call
level.scr_radio[ "get_on_barrett" ] = "sniperescape_mcm_getonbarrett";
//* Remember what I've taught you. Keep in mind variable humidity and wind speed along the bullet's flight path. At this distance you<6F>ll also have to take the Coriolis effect into account.
level.scr_radio[ "remember_my_teaching" ] = "sniperescape_mcm_corioliseffect";
//* Prepare for ranging. Standby.
level.scr_radio[ "prepare_for_ranging" ] = "sniperescape_mcm_prepranging";
//* White truck on the left, range, 1203.5 meters.
level.scr_radio[ "white_truck" ] = "sniperescape_mcm_whitetruck";
//* Range to BMP, 1207 meters.
level.scr_radio[ "range_to_bmp" ] = "sniperescape_mcm_bmprange";
//* The table with the briefcase, range, 1206 meters.
level.scr_radio[ "table_with_case" ] = "sniperescape_mcm_table";
//* Ok... I think I see him. Wait for my mark.
level.scr_radio[ "i_see_him" ] = "sniperescape_mcm_mymark";
//* Target...acquired. I have a positive I.D. on Imran Zakhaev.
level.scr_radio[ "target_acquired" ] = "sniperescape_mcm_positiveid";
//sniperescape_mcm_abouttobegin
//sniperescape_mcm_eyeonflag
//* Ach, where did he come from? Patience laddie... Wait for a clear shot<6F>.
level.scr_radio[ "where_did_he_come_from" ] = "sniperescape_mcm_clearshot";
// steady, keep an eye on that flag
//* Wait - the wind's picked up. Let it die down before you take the shot. Don<6F>t rush it.
level.scr_radio[ "wind_picked_up" ] = "sniperescape_mcm_eyeonflag";
//* Ok take the shot.
level.scr_radio[ "take_the_shot" ] = "sniperescape_mcm_taketheshot";
//* Damn, my line of sight was blocked. Did you take him out? I thought I saw his arm fly off! Can you see him?
level.scr_radio[ "did_you_take_him_out" ] = "sniperescape_mcm_armflyoff";
//* Shit... they<65>re on to us! Take out that helicopter, it<69>ll buy us some time!
level.scr_radio[ "take_out_that_heli" ] = "sniperescape_mcm_buysometime";
//* Great shot Leftenant! Now let's go! They'll be searching for us!
level.scr_radio[ "great_shot_now_go" ] = "sniperescape_mcm_greatshot";
//* Delta Two Four, this is Alpha Six! We have been compromised, I repeat we have been compromised, now heading to Extraction Point four!
level.scr_radio[ "compromised" ] = "sniperescape_mcm_comrpomised";
//* Alpha Six, Seaknight Five-Niner is en route, E.T.A. - 20 minutes. Don't be late. We're stretchin' our fuel as it is. Out.
level.scr_radio[ "eta_20_min" ] = "sniperescape_hqr_stretchingourfuel";
//* Leftenant Price, follow me!
level.scr_sound[ "price" ][ "follow_me" ] = "sniperescape_mcm_followme";
//* We've got to head for the extraction point! Move!
level.scr_radio[ "head_for_extract" ] = "sniperescape_mcm_headforpoint";
// More behind us!
level.scr_sound[ "price" ][ "more_behind" ] = "sniperescape_mcm_morebehind";
// In the bushes, behind us to the north.
level.scr_sound[ "price" ][ "bushes_north" ] = "sniperescape_mcm_bushesnorth";
// More enemies behind us, in the bushes to the northwest.
level.scr_sound[ "price" ][ "bushes_northwest" ] = "sniperescape_mcm_bushesNW";
// In the woods!
level.scr_sound[ "price" ][ "woods_north" ] = "sniperescape_mcm_inthewoods";
// Behind us! Movement in the woods to the northeast.
level.scr_sound[ "price" ][ "woods_northeast" ] = "sniperescape_mcm_woodsNE";
// More in the woods behind us to the east.
level.scr_sound[ "price" ][ "woods_east" ] = "sniperescape_mcm_woodseast";
// In the woods!
level.scr_sound[ "price" ][ "woods_southeast" ] = "sniperescape_mcm_inthewoods";
// Enemies behind us in the woods to the south.
level.scr_sound[ "price" ][ "woods_south" ] = "sniperescape_mcm_woodssouth";
// Behind us! In the woods to the southwest.
level.scr_sound[ "price" ][ "woods_southwest" ] = "sniperescape_mcm_woodsSW";
// In the woods!
level.scr_sound[ "price" ][ "woods_west" ] = "sniperescape_mcm_inthewoods";
// In the woods!
level.scr_sound[ "price" ][ "woods_northwest" ] = "sniperescape_mcm_inthewoods";
// Movement behind us. Coming through the bushes to the west.
level.scr_sound[ "price" ][ "bushes_west" ] = "sniperescape_mcm_busheswest";
// More coming from the north.
level.scr_sound[ "price" ][ "enemies_north" ] = "sniperescape_mcm_comingnorth";
// Movement. Northeast.
level.scr_sound[ "price" ][ "enemies_northeast" ] = "sniperescape_mcm_movementNE";
// Tangos moving to the east.
level.scr_sound[ "price" ][ "enemies_east" ] = "sniperescape_mcm_tangoseast";
// Targets southeast.
level.scr_sound[ "price" ][ "enemies_southeast" ] = "sniperescape_mcm_targetsSE";
// More of them moving in from the south.
level.scr_sound[ "price" ][ "enemies_south" ] = "sniperescape_mcm_morefromsouth";
// Contact southwest.
level.scr_sound[ "price" ][ "enemies_southwest" ] = "sniperescape_mcm_contactSW";
// Hostiles closing from the west.
level.scr_sound[ "price" ][ "enemies_west" ] = "sniperescape_mcm_hostileswest";
// More tangos to the northwest.
level.scr_sound[ "price" ][ "enemies_northwest" ] = "sniperescape_mcm_tangosNW";
//* We'll lose 'em in that apartment! Come on!
level.scr_sound[ "price" ][ "lose_them_in_apartment" ] = "sniperescape_mcm_apartmentcomeon";
// Quickly - plant a claymore in case they come this way!
level.scr_sound[ "price" ][ "place_claymore" ] = "sniperescape_mcm_plantclaymore";
//* Standby<62>!
level.scr_sound[ "price" ][ "standby" ] = "sniperescape_mcm_standby";
//* Now!
level.scr_sound[ "price" ][ "now" ] = "sniperescape_mcm_now";
//* Bloody 'ell I<>m hit, I can't move!!!!
level.scr_sound[ "price" ][ "im_hit" ] = "sniperescape_mcm_imhit";
//* Sorry mate, you're gonna have to carry me!
level.scr_sound[ "price" ][ "carry_me" ] = "sniperescape_mcm_sorrymate";
//* Price! Put me down where I can cover you!
level.scr_radio[ "put_me_down_1" ] = "sniperescape_mcm_coveryou";
//* Oi! Sit me down where I can cover your back!
level.scr_radio[ "put_me_down_2" ] = "sniperescape_mcm_oisit";
//* You'd better put me down quick so I can fight back<63>
level.scr_radio[ "put_me_down_quick" ] = "sniperescape_mcm_fightback";
//* Leftenant Price! Don't get too far ahead.
level.scr_sound[ "price" ][ "dont_go_far" ] = "sniperescape_mcm_toofarahead";
// plays after you pick him up so its on the "radio" ie in your head
// The extraction point is to the southwest. We can still make it if we hurry.
level.scr_radio[ "extraction_is_southwest" ] = "sniperescape_mcm_makeithurry";
//* Got one.
level.scr_sound[ "price" ][ "got_one" ] = "sniperescape_mcm_gotone";
//* Tango down.
level.scr_sound[ "price" ][ "tango_down" ] = "sniperescape_mcm_tangodown";
//* He's down.
level.scr_sound[ "price" ][ "he_is_down" ] = "sniperescape_mcm_hesdown";
//* Got another.
level.scr_sound[ "price" ][ "got_another" ] = "sniperescape_mcm_gotanother";
//* Got him.
level.scr_sound[ "price" ][ "got_him" ] = "sniperescape_mcm_gothim";
//* Target neutralized.
level.scr_sound[ "price" ][ "target_neutralized" ] = "sniperescape_mcm_targetneutralized";
//* Head for that apartment, we'll try to lose 'em in there..
level.scr_sound[ "price" ][ "head_for_apartment" ] = "sniperescape_mcm_headforapartment";
// We're almost there. The extraction point is on the other side of that building.
level.scr_radio[ "almost_there" ] = "sniperescape_mcm_otherside";
// Leftenant Price, the meeting is underway. Enemy transport sighted entering the target area.
level.scr_sound[ "price" ][ "transport_inbound" ] = "sniperescape_mcm_enemysighted";
// Enemy contact up ahead. Let's cut through the woods.
level.scr_sound[ "price" ][ "cut_through_woods" ] = "sniperescape_mcm_cutthruwoods";
// The extraction point is to the southwest. We can still make it if we hurry.
level.scr_sound[ "price" ][ "extract_southwest" ] = "sniperescape_mcm_makeithurry";
// Head for that apartment, we'll try to lose 'em in there..
level.scr_radio[ "head_for_apartment" ] = "sniperescape_mcm_headforapartment";
// Alright, go!
level.scr_sound[ "price" ][ "alright_go" ] = "sniperescape_mcm_alrightgo";
// Get ready<64>
level.scr_sound[ "price" ][ "get_ready" ] = "sniperescape_mcm_getready";
// Go!
level.scr_sound[ "price" ][ "go!" ] = "sniperescape_mcm_go";
// Come on let's go!
level.scr_sound[ "price" ][ "come_on_lets_go" ] = "sniperescape_mcm_comeon";
// It's time to move.
level.scr_sound[ "price" ][ "time_to_move" ] = "sniperescape_mcm_timetomove";
// It's time to move.
level.scr_sound[ "price" ][ "spotter_exit" ] = "sniperescape_mcm_timetomove";
// You'd better put me down and sweep the rooms, I'll cover the entrance.
level.scr_radio[ "sweep_the_rooms" ] = "sniperescape_mcm_putmedown";
// Easy does it<69>
level.scr_sound[ "price" ][ "put_down_1" ] = "sniperescape_mcm_easydoesit";
// Easy now<6F>
level.scr_sound[ "price" ][ "put_down_2" ] = "sniperescape_mcm_easynow";
// Careful<75>
level.scr_sound[ "price" ][ "put_down_3" ] = "sniperescape_mcm_careful";
// It's time to move, give me a lift.
level.scr_sound[ "price" ][ "lets_get_moving_1" ] = "sniperescape_mcm_givemealift";
// Looks like we're in the clear, we should get moving.
level.scr_sound[ "price" ][ "lets_get_moving_2" ] = "sniperescape_mcm_intheclear";
// Leftenant, put me down in a good sniping position.
level.scr_sound[ "price" ][ "good_sniping_position" ] = "sniperescape_mcm_snipingposition";
// Great shot Leftenant! Now let's go! They'll be searching for us!
//sniperescape_mcm_greatshot
//* Enemy troops approaching. Find a spot where I can cover you and put me down.
level.scr_radio[ "new_put_me_down_1" ] = "sniperescape_mcm_enemytroops";
//* Enemies closing in. Put me in a good spot where I can cover you.
level.scr_radio[ "new_put_me_down_2" ] = "sniperescape_mcm_closingin";
//* Tangos closing fast! Put me in a good spot to cover you!
level.scr_radio[ "new_put_me_down_3" ] = "sniperescape_mcm_tangosfast";
//* Tangos moving in! Find a spot where I can cover you and put me down!
level.scr_radio[ "new_put_me_down_4" ] = "sniperescape_mcm_movingin";
//* If we run into trouble, you<6F>ll have to find a good spot to put me down so I can cover you.
level.scr_radio[ "find_good_spot" ] = "sniperescape_mcm_findgoodspot";
//* Alpha Six, this is Big Bird. Standing by for your signal, over.
level.scr_radio[ "waiting_for_signal" ] = "sniperescape_hp1_yoursignal";
//* Good. Our helicopter is standing by at a safe distance. The enemy will try to overrun our LZ once they pick him up on radar, so find a good sniping spot and go prone. Once you're in position, I'll call in the helicopter. Go.
level.scr_radio[ "find_sniping_spot" ] = "sniperescape_mcm_overrunlz";
//* And if you have any claymores left, now is the time to use them.
level.scr_radio[ "use_claymores" ] = "sniperescape_mcm_claymores";
//* Find a good spot to snipe from and go prone.
level.scr_radio[ "find_spot_go_prone" ] = "sniperescape_mcm_goprone";
//* Alright lad, I've activated the beacon. Good luck.
level.scr_radio[ "activated_beacon" ] = "sniperescape_mcm_beacon";
//* Alpha Six, we have a fix on your position. Hang tight. Big Bird out.
level.scr_radio[ "have_a_fix" ] = "sniperescape_hp1_hangtight";
//* Tangos in sight. Let them get closer.
level.scr_radio[ "let_them_get_closer" ] = "sniperescape_mcm_getcloser";
//* Standby to engage<67>
level.scr_radio[ "standby_to_engage" ] = "sniperescape_mcm_standbyengage";
//* Open fire.
level.scr_radio[ "open_fire" ] = "sniperescape_mcm_openfire";
//* WHERE'S MACMILLAAAN?!!!
level.scr_radio[ "where_is_he" ] = "sniperescape_sas2_wheresmac";
//* Alpha Team, we're at the LZ. Standing by.
level.scr_radio[ "heli_at_the_lz" ] = "sniperescape_hp1_atthelz";
//* Alpha Team, we're at bingo fuel! You got thirty seconds!
level.scr_radio[ "heli_got_thirty_seconds" ] = "sniperescape_hp1_bingofuel";
//* Alpha Team, we are too low on fuel. We're outta here.
level.scr_radio[ "heli_goodbye" ] = "sniperescape_hp1_toolow";
// Forget these guys, we're going to get left behind! Let's get to the extraction point!
level.scr_sound[ "price" ][ "gotta_go_1" ] = "sniperescape_mcm_leftbehind";
// We've got to reach the extraction point before we run out of time! Keep moving!
level.scr_sound[ "price" ][ "gotta_go_2" ] = "sniperescape_mcm_outoftime";
// We're going to get trapped if we stay here! Head for the extraction point!
level.scr_sound[ "price" ][ "gotta_go_3" ] = "sniperescape_mcm_gettrapped";
// We've got to get to the LZ before time runs out! I'll watch your back! Go!
level.scr_sound[ "price" ][ "gotta_go_4" ] = "sniperescape_mcm_gettolz";
// Keep moving towards the extraction point! Go go go!
level.scr_sound[ "price" ][ "gotta_go_5" ] = "sniperescape_mcm_keepmoving";
// Price! We're wasting time here! We've got to head for the extraction point, now!
level.scr_sound[ "price" ][ "gotta_go_6" ] = "sniperescape_mcm_wastingtime";
// We're running out of time! We've got to go!! We've got to go!!!!
level.scr_sound[ "price" ][ "gotta_go_7" ] = "sniperescape_mcm_gottogo";
// Time's running out! Head for the LZ! I'll cover the rear!
level.scr_sound[ "price" ][ "gotta_go_8" ] = "sniperescape_mcm_coverrear";
// Price! I'll cover your back! Head for the extraction point!!
level.scr_sound[ "price" ][ "gotta_go_9" ] = "sniperescape_mcm_coverback";
// Price, forget it! We've got to move! We're running out of time!!!
level.scr_sound[ "price" ][ "gotta_go_10" ] = "sniperescape_mcm_forgetit";
// We have fifteen minutes left to get to the extraction point.
level.scr_sound[ "price" ][ "fifteen_minutes" ] = "sniperescape_mcm_15mins";
// We've got ten minutes left.
level.scr_sound[ "price" ][ "ten_minuets" ] = "sniperescape_mcm_10mins";
// Eight minutes.
level.scr_sound[ "price" ][ "eight_minutes" ] = "sniperescape_mcm_8mins";
// Six minutes left, let's keep moving.
level.scr_sound[ "price" ][ "six_minutes" ] = "sniperescape_mcm_6mins";
// Five minutes.
level.scr_sound[ "price" ][ "five_minutes" ] = "sniperescape_mcm_5mins";
//* Wait. Make sure these rooms are clear first.
level.scr_sound[ "price" ][ "wait_make_sure" ] = "sniperescape_mcm_makesureclear";
//* I will signal our transport in thirty seconds.
level.scr_sound[ "price" ][ "signal_transport" ] = "sniperescape_mcm_signaltransport";
//* Put me down behind the Ferris wheel, where I can provide sniper support.
level.scr_sound[ "price" ][ "put_down_behind_wheel" ] = "sniperescape_mcm_snipersupport";
//* This'll be fine.
level.scr_sound[ "price" ][ "this_is_fine" ] = "sniperescape_mcm_thisllbefine";
//* A bit farther to the north, so I can get a clear shot.
level.scr_sound[ "price" ][ "a_bit_farther_north" ] = "sniperescape_mcm_getaclearshot";
//* Get me over to that hill so I have a clear field of view.
level.scr_sound[ "price" ][ "over_to_that_hill" ] = "sniperescape_mcm_clearview";
//* The enemy is bound to enter this area, so find a good sniping position.
level.scr_sound[ "price" ][ "find_a_good_snipe" ] = "sniperescape_mcm_enterthisarea";
//* I will signal the helicopter in thirty seconds.
level.scr_sound[ "price" ][ "i_will_signal_in_30" ] = "sniperescape_mcm_thirtysec";
// Prep the killzone by planting the rest of your claymores. Move.
level.scr_sound[ "price" ][ "prep_the_killzone" ] = "sniperescape_mcm_prepkillzone";
//* Our helicopter is standing by at a safe distance.
level.scr_sound[ "price" ][ "helicopter_is_standing_by" ] = "sniperescape_mcm_safedistance";
// Price, move me to a better position.
level.scr_sound[ "price" ][ "move_me" ] = "sniperescape_mcm_betterposition";
//* Check your compass for the best location.
level.scr_sound[ "price" ][ "check_your_compass" ] = "sniperescape_mcm_checkcompass";
//* Pick me up and move me a bit farther to the north.
level.scr_sound[ "price" ][ "pick_me_up_and_move_me" ] = "sniperescape_mcm_pickupnorth";
//* A bit farther to the north<74>
level.scr_sound[ "price" ][ "a_bit_farther_north_2" ] = "sniperescape_mcm_farthernorth";
//* Over there. Put me down on the rise behind the Ferris wheel.
level.scr_sound[ "price" ][ "over_there_behind_ferris_wheel" ] = "sniperescape_mcm_behindferris";
level.heli_flag[ "cant_pick_up_price" ] = "near_pool";
// The fugitives are near the swimming pool complex! Send Groups A and B to cut them off now!
level.scr_sound[ "heli" ][ "near_pool" ] = "sniperescape_rul_nearpool";
level.heli_flag[ "player_abandon_protection" ] = "amusement_park";
// They are heading towards the amusement park! We need reinforcements in sector three!
level.scr_sound[ "heli" ][ "amusement_park" ] = "sniperescape_rul_amusementpk";
level.heli_flag[ "start_heat_spawners" ] = "hotel_police";
// Enemy sighted near the Hotel Polissia! I repeat, enemy soldiers are moving from the Hotel Polissia!
level.scr_sound[ "heli" ][ "hotel_police" ] = "sniperescape_rul_hotelpolissa";
level.heli_flag[ "stop_east_spawners" ] = "cut_exits";
// They've moved into Apartment Block D, we can't follow them in there. Cut off all the exits and stop them at the park.
level.scr_sound[ "heli" ][ "cut_exits" ] = "sniperescape_rul_cutoffexits";
level.heli_flag[ "enter_burnt" ] = "snipers_in_area";
// Enemy snipers are in the area! They are hiding in the apartment blocks! Find them!
level.scr_sound[ "heli" ][ "snipers_in_area" ] = "sniperescape_rul_snipersinarea";
level.heli_flag[ "to_the_pool" ] = "south_of_city";
// Team five, search the swimming pool area! Team six, search the buildings to the south of the city!
level.scr_sound[ "heli" ][ "south_of_city" ] = "sniperescape_rul_southofcity";
level.heli_flag[ "player_leaves_price_wounding" ] = "cover_woods";
// They may be moving towards the northern end of the city! Send two more teams to cover the woods to the north!
level.scr_sound[ "heli" ][ "cover_woods" ] = "sniperescape_rul_coverwoods";
level.heli_flag[ "plant_claymore" ] = "move_move";
// The enemy snipers have been spotted moving through the courtyards between the apartment buildings! Move! Move!
level.scr_sound[ "heli" ][ "move_move" ] = "sniperescape_rul_movemove";
//* Quick, plant a claymore by the door up ahead!
level.scr_radio[ "plant_claymore_by_door" ] = "sniperescape_mcm_bydoor";
// Enemy moving on your left flank!
level.scr_radio[ "enemy_left_flank" ] = "snescape_mcm_movinglt";
// Enemy moving on your right flank!
level.scr_radio[ "enemy_right_flank" ] = "snescape_mcm_movingrt";
// Enemy flanking on your left!
level.scr_radio[ "enemy_left_flank_2" ] = "snescape_mcm_ltflank";
// Enemy flanking on your right!
level.scr_radio[ "enemy_right_flank_2" ] = "snescape_mcm_rtflank";
//* Damn, it went wide! Probably should've waited for the wind to die down.
level.scr_radio[ "went_wide" ] = "snescape_mcm_wentwide";
//* The target's still standing! Keep firing!
level.scr_radio[ "target_still_standing" ] = "snescape_mcm_stillstand";
//* Target down. I think I saw his arm fly off. Nice work Leftenant. We got him.
level.scr_radio[ "target_down_1" ] = "snescape_mcm_wegothim";
//* Target down. I think you blew off his arm. Shock and blood loss'll take care of the rest.
level.scr_radio[ "target_down_2" ] = "snescape_mcm_shock";
//* Target is down! Nice shot Leftenant.
level.scr_radio[ "target_down_3" ] = "snescape_mcm_niceshotlt";
//* It's now or never, take the shot!
level.scr_radio[ "now_or_never" ] = "snescape_mcm_nownever";
//* (labored breathing reactions)
level.scr_radio[ "pickup_breathing" ] = "sniperescape_mcm_breathing";
//* Take the rest of my claymores, now is the time to use them.
level.scr_radio[ "take_my_claymores" ] = "snescape_mcm_takemy";
//* Enemy choppers inbound!
level.scr_radio[ "enemy_choppers" ] = "snescape_mcm_enemychop";
//* Watch out!
level.scr_radio[ "watch_out_1" ] = "snescape_mcm_watchout";
//* Pay attention!
level.scr_radio[ "watch_out_2" ] = "snescape_mcm_payattention";
//* Big Bird we are heavily out numbered, where are you?
level.scr_radio[ "where_are_you" ] = "sniperescape_mcm_bigbird";
//* Copy that Alpha, we'll be there ASAP. Hold tight.
level.scr_radio[ "be_there_asap" ] = "sniperescape_hp1_holdtight";
//* Are you insane?
level.scr_radio[ "are_you_insane" ] = "scoutsniper_mcm_youinsane";
level.scr_radio[ "scoutsniper_mcm_youdaft" ] = "scoutsniper_mcm_youdaft";
/*
level.scr_anim[ "axis" ][ "patrolwalk_1" ] = %huntedrun_2;
level.scr_anim[ "axis" ][ "patrolwalk_2" ] = %huntedrun_2;
level.scr_anim[ "axis" ][ "patrolwalk_3" ] = %huntedrun_2;
level.scr_anim[ "axis" ][ "patrolwalk_4" ] = %huntedrun_2;
level.scr_anim[ "axis" ][ "patrolwalk_5" ] = %huntedrun_2;
*/
player_rappel();
dog_anims();
seaknight_anims();
script_models();
}
/*
// Now get on the Barrett rifle and wait for my signal. Do not engage until I give the word.
sniperescape_mcm_getonrifle
// Remember what I've taught you. Keep in mind variable humidity and wind speed along the bullet's flight path. At this distance you<6F>ll also have to take the Coriolis effect into account.
sniperescape_mcm_corioliseffect
// Prepare for ranging. Standby.
sniperescape_mcm_prepranging
// White truck on the left, range, 1203.5 meters.
sniperescape_mcm_whitetruck
// Range to BMP, 1207 meters.
sniperescape_mcm_bmprange
// The table with the briefcase, range, 1206 meters.
sniperescape_mcm_table
// Ok... I think I see him. Wait for my mark.
sniperescape_mcm_mymark
// Target...acquired. I have a positive I.D. on Imran Zakhaev.
sniperescape_mcm_positiveid
// Ach, where did he come from? Patience laddie... Wait for a clear shot<6F>.
sniperescape_mcm_clearshot
// Ok take the shot.
sniperescape_mcm_taketheshot
// Damn, my line of sight was blocked. Did you take him out? I thought I saw his arm fly off! Can you see him?
sniperescape_mcm_armflyoff
// Shit... they<65>re on to us! Take out that helicopter, it<69>ll buy us some time!
sniperescape_mcm_buysometime
// Great shot Leftenant! Now let's go! They'll be searching for us!
sniperescape_mcm_greatshot
// We<57>ll have to take the short cut! Follow my lead!
sniperescape_mcm_shortcut
// Delta Two Four, this is Alpha Six! We have been compromised, I repeat we have been compromised, now heading to Extraction Point four!
sniperescape_mcm_comrpomised
Contact north. sniperescape_mcm_contactnorth
Movement. Northeast. sniperescape_mcm_movementNE
Tangos moving to the east. sniperescape_mcm_tangoseast
Targets southeast. sniperescape_mcm_targetsSE
Contact south. sniperescape_mcm_contactsouth
Contact southwest. sniperescape_mcm_contactSW
Hostiles closing from the west. sniperescape_mcm_hostileswest
Contact northwest. sniperescape_mcm_contactNW
More coming from the north. sniperescape_mcm_comingnorth
More coming from the northeast. sniperescape_mcm_moreNE
More to the east. sniperescape_mcm_moreeast
More hostiles to the southeast. sniperescape_mcm_hostilesSE
More of them moving in from the south. sniperescape_mcm_morefromsouth
More to the southwest. sniperescape_mcm_moreSW
More tangos to the west. sniperescape_mcm_tangoswest
More tangos to the northwest. sniperescape_mcm_tangosNW
In the woods to the north! sniperescape_mcm_woodsnorth
Movement in the woods to the northeast. sniperescape_mcm_woodsNE
More in the woods to the east. sniperescape_mcm_woodseast
In the woods to the southeast! sniperescape_mcm_woodsSE
Enemies in the woods to the south. sniperescape_mcm_woodssouth
In the woods to the southwest. sniperescape_mcm_woodsSW
In the woods to the west! sniperescape_mcm_woodswest
They're in the woods to the northwest! sniperescape_mcm_woodsNW
In the bushes to the north. sniperescape_mcm_bushesnorth
In the bushes to the northeast. sniperescape_mcm_bushesNE
In the bushes to the east. sniperescape_mcm_busheseast
To the southeast, in the bushes. sniperescape_mcm_bushesSE
More tangos in the bushes to the south. sniperescape_mcm_tangosbushesS
Enemies moving in the bushes to the southeast. sniperescape_mcm_enemiesSE
Movement behind us. Coming through the bushes to the west. sniperescape_mcm_busheswest
More enemies behind us, in the bushes to the northwest. sniperescape_mcm_bushesNW
In the woods! sniperescape_mcm_inthewoods
More behind us! sniperescape_mcm_morebehind
Price! Put me down where I can cover you! sniperescape_mcm_coveryou
Oi! Sit me down where I can cover your back! sniperescape_mcm_oisit
You'd better put me down quick so I can fight back<63> sniperescape_mcm_fightback
Leftenant Price! Don't get too far ahead. sniperescape_mcm_toofarahead
Got one. sniperescape_mcm_gotone
Tango down. sniperescape_mcm_tangodown
He's down. sniperescape_mcm_hesdown
Got another. sniperescape_mcm_gotanother
Target neutralized. sniperescape_mcm_targetneutralized
Got him. sniperescape_mcm_gothim
// We're almost there. The extraction point is on the other side of that building.
sniperescape_mcm_otherside
// The fugitives are near the swimming pool complex! Send Groups A and B to cut them off now!
sniperescape_rul_nearpool
// They are heading towards the amusement park! We need reinforcements in sector three!
sniperescape_rul_amusementpk
// Enemy sighted near the Hotel Polissia! I repeat, enemy soldiers are moving from the Hotel Polissia!
sniperescape_rul_hotelpolissa
// They've moved into Apartment Block D, we can't follow them in there. Cut off all the exits and stop them at the park.
sniperescape_rul_cutoffexits
*/
#using_animtree( "player" );
player_rappel()
{
level.scr_anim[ "player_rappel" ][ "rappel" ] = %sniper_escape_player_rappel;
level.scr_animtree[ "player_rappel" ] = #animtree;
level.scr_model[ "player_rappel" ] = "viewhands_player_marines";
level.scr_anim[ "player_carry" ][ "wounded_putdown" ] = %sniper_escape_player_putdown;
level.scr_anim[ "player_carry" ][ "wounded_pickup" ] = %sniper_escape_player_getup;
level.scr_animtree[ "player_carry" ] = #animtree;
level.scr_model[ "player_carry" ] = "viewhands_player_marines";
level.scr_anim[ "player_carry" ][ "wounded_seaknight_putdown" ] = %airlift_player_putdown;
level.scr_anim[ "player_carry" ][ "crash_pickup" ] = %sniper_escape_crash_pickup_player;
}
#using_animtree( "dog" );
dog_anims()
{
level.scr_anim[ "dog" ][ "fence_attack" ] = %sniper_escape_dog_fence;
level.scr_anim[ "generic" ][ "dog_food" ][ 0 ] = %german_shepherd_eating;
level.scr_anim[ "generic" ][ "dog_food_w_sound" ][ 0 ] = %german_shepherd_eating;
level.scr_anim[ "generic" ][ "dog_food_nonidle" ] = %german_shepherd_eating;
level.scr_sound[ "generic" ][ "dog_food_w_sound" ][ 0 ] = "anml_dog_eating_body";
// addNotetrack_sound( "dog", "sound_dog_attack_fence", "fence_attack", "anml_dog_attack_jump" );
addNotetrack_sound( "dog", "fence", "fence_attack", "fence_smash" );
}
#using_animtree( "vehicles" );
seaknight_anims()
{
level.scr_anim[ "seaknight" ][ "idle" ][ 0 ] = %sniper_escape_ch46_idle;
level.scr_anim[ "seaknight" ][ "landing" ] = %sniper_escape_ch46_land;
level.scr_anim[ "seaknight" ][ "take_off" ] = %sniper_escape_ch46_take_off;
addNotetrack_customFunction( "seaknight", "fade", maps\sniperescape::end_level, "take_off" );
addNotetrack_customFunction( "mi28", "rotor", maps\sniperescape_wounding::rotor_blades );
level.scr_anim[ "seaknight" ][ "rotors" ] = %sniper_escape_ch46_rotors;
level.scr_animtree[ "seaknight" ] = #animtree;
level.scr_anim[ "mi28" ][ "entrance" ] = %sniper_escape_crash_mi28_entrance;
level.scr_anim[ "mi28" ][ "idle" ][ 0 ] = %sniper_escape_crash_mi28_idle;
level.scr_anim[ "mi28" ][ "crash" ] = %sniper_escape_crash_mi28_crash;
}
#using_animtree( "script_model" );
script_models()
{
level.scr_anim[ "zakhaev" ][ "zak_pain" ] = %sniper_escape_meeting_zakhaev_hit_front; //exposed_pain_2_crouch;
level.scr_anim[ "generic" ][ "zak_pain_back" ] = %sniper_escape_meeting_zakhaev_hit_back; //exposed_pain_2_crouch;
level.scr_animtree[ "zakhaev" ] = #animtree;
level.scr_anim[ "curtain" ][ "curtain_right" ] = %chechnya_curtain_sway_le;
level.scr_anim[ "curtain" ][ "curtain_left" ] = %chechnya_curtain_sway_ri;
level.scr_animtree[ "curtain" ] = #animtree;
level.scr_model[ "curtain" ] = "ch_curtain01";
level.scr_animtree[ "rope" ] = #animtree;
level.scr_model[ "rope" ] = "rappelrope100_ri";
level.scr_anim[ "player_rope" ][ "rappel_for_player" ] = %sniper_escape_player_start_rappelrope100;
level.scr_animtree[ "player_rope" ] = #animtree;
level.scr_model[ "player_rope" ] = "rappelrope100_le";
level.scr_anim[ "player_rope_obj" ][ "rappel_for_player" ] = %sniper_escape_player_start_rappelrope100;
level.scr_animtree[ "player_rope_obj" ] = #animtree;
level.scr_model[ "player_rope_obj" ] = "rappelrope100_le_obj";
level.scr_anim[ "rope" ][ "rappel_end" ] = %sniper_escape_rappel_finish_rappelrope100;
level.scr_anim[ "rope" ][ "rappel_start" ] = %sniper_escape_rappel_start_rappelrope100;
level.scr_anim[ "rope" ][ "rappel_idle" ][ 0 ] = %sniper_escape_rappel_idle_rappelrope100;
level.scr_anim[ "briefcase" ][ "exchange" ] = %sniper_escape_meeting_briefcase;
level.scr_animtree[ "briefcase" ] = #animtree;
level.scr_anim[ "brick" ][ "exchange" ] = %sniper_escape_meeting_briefcase;
level.scr_animtree[ "brick" ] = #animtree;
level.scr_anim[ "flag" ][ "up" ] = %sniper_escape_flag_wave_up;
level.scr_anim[ "flag" ][ "down" ] = %sniper_escape_flag_wave_down;
level.scr_animtree[ "flag" ] = #animtree;
if ( !level.sniperescape_fastload )
{
level.scr_model[ "binocs" ] = "weapon_binocular";
level.scr_model[ "flag" ] = "prop_car_flag";
level.scr_model[ "brick" ] = "com_golden_brick";
level.scr_model[ "briefcase" ] = "com_gold_brick_case";
level.scr_model[ "zak_one_arm" ] = "body_complete_onearm_sp_zakhaev";
level.scr_model[ "zak_left_arm" ] = "zakhaev_left_arm";
}
level.scr_animtree[ "zak_left_arm" ] = #animtree;
level.scr_anim[ "zak_left_arm" ][ "zak_pain" ] = %sniper_escape_meeting_zakhaev_hit_arm_front;
addNotetrack_flag( "briefcase", "dust", "briefcase_placed", "exchange" );
level.scr_model[ "tag_gunner" ] = "vehicle_mi-28_window_front";
level.scr_model[ "tag_pilot" ] = "vehicle_mi-28_window_back";
level.scr_model[ "blade1" ] = "vehicle_mi-28_hub";
level.scr_model[ "blade2" ] = "vehicle_mi-28_blade1";
level.scr_model[ "blade3" ] = "vehicle_mi-28_blade2";
level.scr_model[ "blade4" ] = "vehicle_mi-28_blade3";
level.scr_model[ "blade5" ] = "vehicle_mi-28_blade4";
addNotetrack_customFunction( "blade1", "blade", ::remove_blade );
addNotetrack_customFunction( "blade2", "blade", ::remove_blade );
addNotetrack_customFunction( "blade3", "blade", ::remove_blade );
addNotetrack_customFunction( "blade4", "blade", ::remove_blade );
addNotetrack_customFunction( "blade5", "blade", ::remove_blade );
level.scr_animtree[ "blade1" ] = #animtree;
level.scr_animtree[ "blade2" ] = #animtree;
level.scr_animtree[ "blade3" ] = #animtree;
level.scr_animtree[ "blade4" ] = #animtree;
level.scr_animtree[ "blade5" ] = #animtree;
level.scr_anim[ "blade1" ][ "spin" ] = %sniper_escape_crash_mi28_rotor_1;
level.scr_anim[ "blade2" ][ "spin" ] = %sniper_escape_crash_mi28_rotor_2;
level.scr_anim[ "blade3" ][ "spin" ] = %sniper_escape_crash_mi28_rotor_3;
level.scr_anim[ "blade4" ][ "spin" ] = %sniper_escape_crash_mi28_rotor_4;
level.scr_anim[ "blade5" ][ "spin" ] = %sniper_escape_crash_mi28_rotor_5;
level.scr_anim[ "generic" ][ "dead_pilot" ] = %sniper_escape_crash_mi28_pilot;
level.scr_anim[ "generic" ][ "dead_gunner" ] = %sniper_escape_crash_mi28_copilot;
level.scr_animtree[ "dead_heli_pilot" ] = #animtree;
}