IW4-Dump-Files/maps/favela_escape_anim.gsc

455 lines
20 KiB
Plaintext

#include maps\_utility;
#include common_scripts\utility;
#include maps\_anim;
#using_animtree( "generic_human" );
main()
{
setup_anims();
setup_dialogue();
}
setup_anims()
{
// intro rojas strung up
level.scr_anim[ "generic" ][ "intro_rojas_idle" ][ 0 ] = %favela_escape_crucified_idle;
level.scr_anim[ "generic" ][ "intro_rojas_death" ] = %favela_escape_crucified_death;
// intro casual walking
level.scr_anim[ "generic" ][ "intro_casual_walk" ] = %patrol_bored_patrolwalk;
// radiotower scout/guy waving his buddies on
level.scr_anim[ "generic" ][ "favela_run_and_wave" ] = %favela_run_and_wave;
// door kick
level.scr_anim[ "generic" ][ "door_kick_in" ] = %door_kick_in;
level.scr_anim[ "generic" ][ "doorburst_wave" ] = %doorburst_wave;
level.scr_anim[ "generic" ][ "doorburst_search" ] = %doorburst_search;
level.scr_anim[ "generic" ][ "doorburst_fall" ] = %doorburst_fall;
// window smashing
level.scr_anim[ "generic" ][ "window_smash_stop_inside" ] = %window_smash_stop_inside;
level.scr_anim[ "generic" ][ "window_smash_stop_outside" ] = %window_smash_stop_outside;
level.scr_anim[ "generic" ][ "window_smash_run" ] = %window_smash_run;
// guys running & shooting above player
level.scr_anim[ "generic" ][ "favela_chaotic_above_through" ] = %favela_chaotic_above_through;
level.scr_anim[ "generic" ][ "favela_chaotic_above_through_uzi" ] = %favela_chaotic_above_through_uzi;
level.scr_anim[ "generic" ][ "favela_chaotic_above_back" ] = %favela_chaotic_above_back;
// curtain pulldown
level.scr_anim[ "curtain_pull" ][ "pulldown" ] = %favela_curtain_pull;
// enemy diving through a window
level.scr_anim[ "generic" ][ "traverse_window_M_2_dive" ] = %traverse_window_M_2_dive;
// friends climbing up to rooftops anims
level.scr_anim[ "generic" ][ "favela_escape_rooftop_traverse_L" ] = %favela_escape_rooftop_traverse_L;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_traverse_R" ] = %favela_escape_rooftop_traverse_R;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_traverse_M" ] = %favela_escape_rooftop_traverse_M;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_traverse_M_idle" ][ 0 ] = %favela_escape_rooftop_traverse_M_idle;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_traverse_M_idle_2_run" ] = %favela_escape_rooftop_traverse_M_idle_2_run;
// roofrun anims
level.scr_anim[ "generic" ][ "freerunnerA_run" ] = %freerunnerA_loop;
level.scr_anim[ "generic" ][ "freerunnerB_run" ] = %freerunnerB_loop;
level.scr_anim[ "freerunner" ][ "freerunnerA_left" ] = %freerunnerA_left;
level.scr_anim[ "freerunner" ][ "freerunnerB_mid" ] = %freerunnerB_mid;
level.scr_anim[ "freerunner" ][ "freerunnerA_right" ] = %freerunnerA_right;
level.scr_anim[ "freerunner" ][ "freerunnerA_sideslope" ] = %freerunnerA_sideslope;
level.scr_anim[ "freerunner" ][ "freerunnerA_laundry" ] = %freerunnerA_laundry;
level.scr_anim[ "freerunner" ][ "freerunnerB_laundry" ] = %freerunnerB_laundry;
level.scr_anim[ "freerunner" ][ "jump_across_100_lunge"] = %jump_across_100_lunge;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_faust_loop" ][ 0 ] = %favela_escape_bigjump_faust_loop;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_ghost_loop" ][ 0 ] = %favela_escape_bigjump_ghost_loop;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_soap_loop" ][ 0 ] = %favela_escape_bigjump_soap_loop;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_soap_reach" ] = %favela_escape_bigjump_soap_reach;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_soap" ] = %favela_escape_bigjump_soap;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_ghost" ] = %favela_escape_bigjump_ghost;
level.scr_anim[ "freerunner" ][ "favela_escape_bigjump_faust" ] = %favela_escape_bigjump_faust;
// (added in script later, so that they don't stomp on scripted dialogue if the timing works out that way)
// "Uraaa!"
//level.scr_sound[ "freerunner" ][ "favela_escape_bigjump_soap" ] = "favesc_cmt_jumpsfx";
// "Unghh!"
//level.scr_sound[ "freerunner" ][ "favela_escape_bigjump_ghost" ] = "favesc_gst_jumpsfx";
// "Gahh!"
level.scr_sound[ "freerunner" ][ "favela_escape_bigjump_faust" ] = "favesc_tf1_jumpsfx";
// angry mob anims
level.scr_anim[ "generic" ][ "mobwalk_A" ] = %mob_arc_A;
level.scr_anim[ "generic" ][ "mobwalk_B" ] = %mob_arc_B;
level.scr_anim[ "generic" ][ "mobwalk_C" ] = %mob_arc_C;
level.scr_anim[ "generic" ][ "mobwalk_D" ] = %mob_arc_D;
level.scr_anim[ "generic" ][ "mob2_arc_A" ] = %mob2_arc_A;
level.scr_anim[ "generic" ][ "mob2_arc_B" ] = %mob2_arc_B;
level.scr_anim[ "generic" ][ "mob3_arc_C" ] = %mob3_arc_C;
level.scr_anim[ "generic" ][ "mob2_arc_D" ] = %mob2_arc_D;
level.scr_anim[ "generic" ][ "mob2_arc_E" ] = %mob2_arc_E;
level.scr_anim[ "generic" ][ "mob2_arc_F" ] = %mob2_arc_F;
level.scr_anim[ "generic" ][ "mob2_arc_G" ] = %mob2_arc_G;
level.scr_anim[ "generic" ][ "mob2_arc_H" ] = %mob2_arc_H;
level.scr_anim[ "generic" ][ "mob_left_A" ] = %mob_left_A;
level.scr_anim[ "generic" ][ "mob_left_B" ] = %mob_left_B;
level.scr_anim[ "generic" ][ "mob_left_C" ] = %mob_left_C;
level.scr_anim[ "generic" ][ "mob_left_D" ] = %mob_left_D;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_mob1" ] = %favela_escape_rooftop_mob1;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_mob2" ] = %favela_escape_rooftop_mob2;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_mob3" ] = %favela_escape_rooftop_mob3;
level.scr_anim[ "generic" ][ "favela_escape_rooftop_mob4" ] = %favela_escape_rooftop_mob4;
// player solo run civilian door slammer
level.scr_anim[ "default_civilian" ][ "run_and_slam_idle" ][ 0 ] = %flee_alley_civilain_idle;
level.scr_anim[ "default_civilian" ][ "run_and_slam" ] = %flee_alley_civilain;
level.scr_anim[ "default_civilian" ][ "run_and_slam_endidle" ][ 0 ] = %civilain_crouch_hide_idle;
// player solo run roof civilians
level.scr_anim[ "generic" ][ "unarmed_cowercrouch_react_A" ] = %unarmed_cowercrouch_react_A;
level.scr_anim[ "generic" ][ "unarmed_cowercrouch_react_B" ] = %unarmed_cowercrouch_react_B;
level.scr_anim[ "generic" ][ "unarmed_cowercrouch_idle" ][ 0 ] = %unarmed_cowercrouch_idle;
level.scr_anim[ "generic" ][ "cargoship_stunned_react_v2" ] = %cargoship_stunned_react_v2;
level.scr_anim[ "generic" ][ "unarmed_cowerstand_react_2_crouch" ] = %unarmed_cowerstand_react_2_crouch;
level.scr_anim[ "generic" ][ "unarmed_cowerstand_idle" ][ 0 ] = %unarmed_cowerstand_idle;
// sarge chopper door anims
level.scr_anim[ "chopper_door_guy" ][ "chopperjump_in" ] = %favela_escape_ending_mctavish_in;
level.scr_anim[ "chopper_door_guy" ][ "chopperjump_loop" ][ 0 ] = %favela_escape_ending_mctavish_flying_loop;
level.scr_anim[ "chopper_door_guy" ][ "chopperjump_flyaway" ] = %favela_escape_ending_mctavish_flying_away;
// vehicle anims
setup_vehicle_anims();
// model anims
setup_model_anims();
// player anims
favela_escape_player();
}
setup_dialogue()
{
// -- INTRO PATH --
// "Sir, the militia's closin' in! Almost two hundred of 'em, front and back!"
level.scr_sound[ "hero1" ][ "favesc_gst_closingin" ] = "favesc_gst_closingin";
// "We're gonna have to fight our way to the LZ! Let's go!"
level.scr_sound[ "sarge" ][ "favesc_cmt_fightourway" ] = "favesc_cmt_fightourway";
// "What about Rojas?"
level.scr_sound[ "hero1" ][ "favesc_gst_whataboutrojas" ] = "favesc_gst_whataboutrojas";
// "Victim of a hostile takeover?"
level.scr_sound[ "sarge" ][ "favesc_cmt_takeover" ] = "favesc_cmt_takeover";
// "Works for me."
level.scr_sound[ "hero1" ][ "favesc_gst_worksforme" ] = "favesc_gst_worksforme";
// "Nikolai! We're at the top of the favela surrounded by militia! Bring the chopper to the market, do you copy, over!"
level.scr_sound[ "sarge" ][ "favesc_cmt_surrounded" ] = "favesc_cmt_surrounded";
// "Ok my friend, I am on the way!"
level.scr_radio[ "favesc_nkl_ontheway" ] = "favesc_nkl_ontheway";
// "Everyone get ready! Lock and load! "
level.scr_sound[ "sarge" ][ "favesc_cmt_lockandload" ] = "favesc_cmt_lockandload";
// "Let's do this!!"
level.scr_sound[ "hero1" ][ "favesc_gst_letsdothis" ] = "favesc_gst_letsdothis";
// -- ENEMY SPAWN CALLOUTS --
// "Contaaact!!! Foot-mobiles on the rooftops, closing in fast from the south!!!"
level.scr_sound[ "hero1" ][ "favesc_gst_onrooftops" ] = "favesc_gst_onrooftops";
// "Tangos at ground level dead ahead!!"
level.scr_sound[ "hero1" ][ "favesc_gst_deadahead" ] = "favesc_gst_deadahead";
// "Militia comin' out of the shack on the left!"
level.scr_sound[ "hero1" ][ "favesc_gst_shackonleft" ] = "favesc_gst_shackonleft";
// "More skinnies on the rooftops at 12 o'clock!!"
level.scr_sound[ "hero1" ][ "favesc_gst_skinnies" ] = "favesc_gst_skinnies";
// "They're moving on our left flaank!!"
level.scr_sound[ "hero1" ][ "favesc_gst_leftflank" ] = "favesc_gst_leftflank";
// "Rooftops on our left! Shift fire!!"
level.scr_sound[ "sarge" ][ "favesc_cmt_shiftfire" ] = "favesc_cmt_shiftfire";
// "LEFT LEFT LEFT! In those wooden shacks!"
level.scr_sound[ "hero1" ][ "favesc_gst_leftleftleft" ] = "favesc_gst_leftleftleft";
// "RPGs to the east!!"
level.scr_sound[ "sarge" ][ "favesc_cmt_rpgseast" ] = "favesc_cmt_rpgseast";
// "RPGs on the rooftops to the south!"
level.scr_sound[ "hero1" ][ "favesc_gst_tothesouth" ] = "favesc_gst_tothesouth";
// "Tangos moving in low from the southeast!"
level.scr_sound[ "sarge" ][ "favesc_cmt_lowfromse" ] = "favesc_cmt_lowfromse";
// "Bloody hell there's a lot of 'em!"
level.scr_sound[ "hero1" ][ "favesc_gst_alotofem" ] = "favesc_gst_alotofem";
// "We gotta move...!!!"
level.scr_sound[ "hero1" ][ "favesc_gst_gottamove" ] = "favesc_gst_gottamove";
// -- RADIOTOWER SCOUT YELLING --
// "Kill them!!! Kill them all!!! They deserve nothing less!!!"
level.scr_sound[ "generic" ][ "favesc_pe4_killthemall" ] = "favesc_pe4_killthemall";
// "Here they come!"
level.scr_sound[ "generic" ][ "favesc_pe1_heretheycome" ] = "favesc_pe1_heretheycome";
// "Attaaaack!"
level.scr_sound[ "generic" ][ "favesc_pe1_attack" ] = "favesc_pe1_attack";
// -- RADIOTOWER SPECIFIC --
// "Technical comin' in from the south!!"
level.scr_sound[ "hero1" ][ "favesc_gst_technical" ] = "favesc_gst_technical";
// "We got another technical! Take it out!!!"
level.scr_sound[ "sarge" ][ "favesc_cmt_technical" ] = "favesc_cmt_technical";
// "Head through that gate!!! Keep pushing to the evac point!!!"
level.scr_sound[ "sarge" ][ "favesc_cmt_thruthatgate" ] = "favesc_cmt_thruthatgate";
// "We've gotta get to the helicopter - head through the gate to the market! Move!"
level.scr_sound[ "sarge" ][ "favesc_cmt_thrugate" ] = "favesc_cmt_thrugate";
// "Go! Go! Go!"
level.scr_sound[ "hero1" ][ "favesc_gst_gogogo" ] = "favesc_gst_gogogo";
// -- CHOPPER REVEAL --
// "Chopper inbound!"
level.scr_sound[ "hero1" ][ "favesc_gst_chopperinbound" ] = "favesc_gst_chopperinbound";
// "Nikolai, get out of here! You're gonna get hit by an RPG! We rendezvous at the market as planned!"
level.scr_sound[ "sarge" ][ "favesc_cmt_hitbyrpg" ] = "favesc_cmt_hitbyrpg";
// "Ok, ok, we do it your way. My gunner and I will give you covering fire from above, from a safer distance."
level.scr_radio[ "favesc_nkl_doityourway" ] = "favesc_nkl_doityourway";
// "The market is not far from where you are, but I see many milita moving towards you."
level.scr_radio[ "favesc_nkl_manymilitia" ] = "favesc_nkl_manymilitia";
// "Roger that Nikolai! And thanks! Out!"
level.scr_sound[ "sarge" ][ "favesc_cmt_rogerandthanks" ] = "favesc_cmt_rogerandthanks";
// -- STREET COMBAT --
// "Let's go, let's go! We've gotta push through these streets to the market!"
level.scr_sound[ "sarge" ][ "favesc_cmt_pushthrustreets" ] = "favesc_cmt_pushthrustreets";
// "Watch for flanking routes!"
level.scr_sound[ "sarge" ][ "favesc_cmt_flankingroutes" ] = "favesc_cmt_flankingroutes";
// "Roach! Lay down some fire on the intersection!"
level.scr_sound[ "sarge" ][ "favesc_cmt_laydownfire" ] = "favesc_cmt_laydownfire";
// "Heads up! Alley on the left!"
level.scr_sound[ "sarge" ][ "favesc_cmt_alleyonleft" ] = "favesc_cmt_alleyonleft";
// "Keep moving!! We're almost at the market!"
level.scr_sound[ "sarge" ][ "favesc_cmt_almostatmarket" ] = "favesc_cmt_almostatmarket";
// -- MARKET COMBAT --
// "Not exactly the High Street shops, eh?"
level.scr_sound[ "hero1" ][ "favesc_gst_highstreet" ] = "favesc_gst_highstreet";
// "Squad! Split up and clear the market! Watch your sectors - these guys are everywhere!"
level.scr_sound[ "sarge" ][ "favesc_cmt_splitup" ] = "favesc_cmt_splitup";
// "Contacts above us at 11 o'clock, firing blind!"
level.scr_sound[ "hero1" ][ "favesc_gst_firingblind" ] = "favesc_gst_firingblind";
// "Tango coming out of the shack on the right!!!"
level.scr_sound[ "sarge" ][ "favesc_cmt_shackonright" ] = "favesc_cmt_shackonright";
// -- MARKET EVAC --
// "There's Nikolai's Pave Low! Let's go!"
level.scr_sound[ "sarge" ][ "favesc_cmt_therespavelow" ] = "favesc_cmt_therespavelow";
// "Nikolai! ETA 20 seconds! Be ready for immediate dustoff!"
level.scr_sound[ "sarge" ][ "favesc_cmt_immediatedustoff" ] = "favesc_cmt_immediatedustoff";
// "That may not be fast enough! I see more militia closing in on the market!"
level.scr_radio[ "favesc_nkl_notfastenough" ] = "favesc_nkl_notfastenough";
// "Pick up the pace! Let's go!"
level.scr_sound[ "sarge" ][ "favesc_cmt_pickuppace" ] = "favesc_cmt_pickuppace";
// "It's too hot! We will not survive this landing!"
level.scr_radio[ "favesc_nkl_toohot" ] = "favesc_nkl_toohot";
// "Nikolai, wave off, wave off! We'll meet you at the secondary LZ instead! Go!"
level.scr_sound[ "sarge" ][ "favesc_cmt_waveoff" ] = "favesc_cmt_waveoff";
// "Very well, I will meet you there! Good luck!"
level.scr_radio[ "favesc_nkl_meetyouthere" ] = "favesc_nkl_meetyouthere";
// "Come on! We've got to get to the rooftops, this way!"
level.scr_sound[ "sarge" ][ "favesc_cmt_gettorooftops" ] = "favesc_cmt_gettorooftops";
// "Roach! Get up here on the rooftops, let's go!"
level.scr_sound[ "sarge" ][ "favesc_cmt_getuphere" ] = "favesc_cmt_getuphere";
// "Roach! Get over here and climb up to the rooftops!"
level.scr_sound[ "sarge" ][ "favesc_cmt_climbup" ] = "favesc_cmt_climbup";
// "Roach! You can climb up over here!"
level.scr_sound[ "sarge" ][ "favesc_cmt_climbuphere" ] = "favesc_cmt_climbuphere";
// -- ROOF RUN --
// "Let's go, let's go!!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_letsgoletsgo" ] = "favesc_cmt_letsgoletsgo";
// "My friend, from up here, it looks like the whole village is trying to kill you!"
level.scr_radio[ "favesc_nkl_wholevillage" ] = "favesc_nkl_wholevillage";
// "Tell me something I don't know! Just get ready to pick us up at the secondary RV!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_pickusup" ] = "favesc_cmt_pickusup";
level.scr_face[ "freerunner" ][ "favesc_cmt_pickusup" ] = %favela_escape_Soap_pickusup;
// "Ok, I will pick you up soon, keep going!"
level.scr_radio[ "favesc_nkl_keepgoing" ] = "favesc_nkl_keepgoing";
// "We're running out of rooftop!!!"
level.scr_sound[ "freerunner" ][ "favesc_gst_runoutofroof" ] = "favesc_gst_runoutofroof";
// "We can make it! Go go go!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_makeitgogo" ] = "favesc_cmt_makeitgogo";
level.scr_face[ "freerunner" ][ "favesc_cmt_makeitgogo" ] = %favela_escape_Soap_makeitgogo;
// "We've got to get out of here, Roach, come on!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_getoutta" ] = "favesc_cmt_getoutta";
// "C'mon Roach, we're almost at the chopper!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_gettochopper" ] = "favesc_cmt_gettochopper";
// "Roach, what's the holdup, let's go!"
level.scr_sound[ "freerunner" ][ "favesc_cmt_whatsholdup" ] = "favesc_cmt_whatsholdup";
// -- PLAYER RECOVERY --
// "Roach!!! Roach!!! Wake up!!!"
level.scr_radio[ "favesc_cmt_wakeup" ] = "favesc_cmt_wakeup";
// "Roach! We can see them from the chopper! They're coming for you, dozens of 'em!!!"
level.scr_radio[ "favesc_gst_comingforyou" ] = "favesc_gst_comingforyou";
// "Roach! There's too many of them! Get the hell out of there and find a way to the rooftops! Move!"
level.scr_radio[ "favesc_cmt_toomany" ] = "favesc_cmt_toomany";
// "Run for it!!! Get to the rooftops!!"
level.scr_radio[ "favesc_cmt_runforit" ] = "favesc_cmt_runforit";
// -- PLAYER SOLO RUN --
// "Roach, we're circling the area but I can't see you! You've got to get to the rooftops!"
level.scr_radio[ "favesc_cmt_circlingarea" ] = "favesc_cmt_circlingarea";
// "Roach, we're running low on fuel! Where the hell are you?!"
level.scr_radio[ "favesc_cmt_lowonfuel" ] = "favesc_cmt_lowonfuel";
// "Roach! I see you! Jump down to the rooftops and meet us south of your position! Go!"
level.scr_radio[ "favesc_cmt_meetussouth" ] = "favesc_cmt_meetussouth";
// "Left!!! Turn left and jump down!"
level.scr_radio[ "favesc_cmt_leftturnleft" ] = "favesc_cmt_leftturnleft";
// "Head to the right!"
level.scr_radio[ "favesc_cmt_headtoright" ] = "favesc_cmt_headtoright";
// "Come on!!!!"
level.scr_radio[ "favesc_cmt_comeon" ] = "favesc_cmt_comeon";
// "Gas is very low! I must leave in thirty seconds, ok?"
level.scr_radio[ "favesc_nkl_verylow" ] = "favesc_nkl_verylow";
// "Roach! We're running on fumes here! You got thirty seconds! Run!"
level.scr_radio[ "favesc_cmt_onfumes" ] = "favesc_cmt_onfumes";
// "Jump for it!!!"
level.scr_sound[ "chopper_door_guy" ][ "favesc_cmt_jump" ] = "favesc_cmt_jump";
level.scr_face[ "chopper_door_guy" ][ "favesc_cmt_jump" ] = %favela_escape_soap_cmt_jump;
// "Nikolai! We got him! Get us outta here!"
level.scr_radio[ "favesc_cmt_gothim" ] = "favesc_cmt_gothim";
// "Where to, Captain?"
level.scr_radio[ "favesc_nkl_whereto" ] = "favesc_nkl_whereto";
// "Just get us to the sub..."
level.scr_radio[ "favesc_cmt_tothesub" ] = "favesc_cmt_tothesub";
}
#using_animtree( "player" );
favela_escape_player()
{
level.scr_anim[ "player_bigjump" ][ "jump" ] = %player_favela_escape_bigjump;
level.scr_anim[ "player_bigjump" ][ "recover" ] = %player_favela_escape_bigjump_getup;
level.scr_model[ "player_bigjump" ] = "viewhands_player_tf141_favela";
level.scr_animtree[ "player_bigjump" ] = #animtree;
level.scr_anim[ "player" ][ "chopperjump_jump" ] = %favela_escape_ending_player_catch_rope;
level.scr_model[ "player" ] = "viewhands_player_tf141_favela";
level.scr_animtree[ "player" ] = #animtree;
}
#using_animtree( "script_model" );
setup_model_anims()
{
level.scr_model[ "rojas_restraints" ] = "unconscious_rojas_rope";
level.scr_animtree[ "rojas_restraints" ] = #animtree;
level.scr_anim[ "rojas_restraints" ][ "idle" ][ 0 ] = %favela_escape_crucified_ropes;
level.scr_model[ "curtain" ] = "curtain_torn01_animated";
level.scr_animtree[ "curtain" ] = #animtree;
level.scr_anim[ "curtain" ][ "pulldown" ] = %favela_curtain_model_pull;
level.scr_model[ "civ_door" ] = "com_door_01_handleleft";
level.scr_animtree[ "civ_door" ] = #animtree;
level.scr_anim[ "civ_door" ][ "run_and_slam_idle" ][ 0 ] = %flee_alley_door_idle;
level.scr_anim[ "civ_door" ][ "run_and_slam" ] = %flee_alley_door;
level.scr_model[ "roof_rig" ] = "favela_escape_roof_piece";
level.scr_animtree[ "roof_rig" ] = #animtree;
level.scr_anim[ "roof_rig" ][ "breakaway" ] = %favela_escape_roof_piece_collapse;
level.scr_model[ "laundry" ] = "hanging_sheet";
level.scr_animtree[ "laundry" ] = #animtree;
level.scr_anim[ "laundry" ][ "roofrun_laundry_1" ] = %favela_escape_sheet01_run_through;
level.scr_anim[ "laundry" ][ "roofrun_laundry_2" ] = %favela_escape_sheet02_run_through;
level.scr_model[ "ladder" ] = "favela_escape_ropeladder";
level.scr_anim[ "ladder" ][ "chopperjump_in" ] = %favela_escape_ending_rope_in;
level.scr_anim[ "ladder" ][ "chopperjump_loop" ][ 0 ] = %favela_escape_ending_rope_loop;
level.scr_anim[ "ladder" ][ "chopperjump_jump" ] = %favela_escape_ending_rope_interaction;
level.scr_animtree[ "ladder" ] = #animtree;
}
#using_animtree( "vehicles" );
setup_vehicle_anims()
{
level.scr_anim[ "chopper" ][ "cargodoor_open" ] = %favela_escape_ending_chopper_open_back_door;
level.scr_anim[ "chopper" ][ "chopperjump_in" ] = %favela_escape_ending_chopper_in;
level.scr_anim[ "chopper" ][ "chopperjump_loop" ][ 0 ] = %favela_escape_ending_chopper_loop;
level.scr_anim[ "chopper" ][ "chopperjump_flyaway" ] = %favela_escape_ending_chopper_flying_away;
level.scr_anim[ "chopper" ][ "rotors" ] = %bh_rotors;
level.scr_model[ "chopper" ] = "vehicle_pavelow";
level.scr_animtree[ "chopper" ] = #animtree;
}