/******************************************************************* * Decompiled By: Bog * Decompiled File: corner.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 60 * Decompile Time: 886 ms * Timestamp: 4/22/2024 2:00:13 AM *******************************************************************/ //Function Number: 1 corner_think(param_00,param_01) { self endon("killanimscript"); self.animarrayfuncs["exposed"]["stand"] = ::set_standing_animarray_aiming; self.animarrayfuncs["exposed"]["crouch"] = ::set_crouching_animarray_aiming; self.covernode = self.node; self.cornerdirection = param_00; self.a.cornermode = "unknown"; self.a.aimidlethread = undefined; animscripts\cover_behavior::turntomatchnodedirection(param_01); set_corner_anim_array(); self.isshooting = 0; self.tracking = 0; self.corneraiming = 0; animscripts\track::setanimaimweight(0); self.havegonetocover = 0; var_02 = spawnstruct(); if(!self.fixednode) { var_02.movetonearbycover = ::animscripts\cover_behavior::movetonearbycover; } var_02.mainloopstart = ::mainloopstart; var_02.reload = ::cornerreload; var_02.leavecoverandshoot = ::stepoutandshootenemy; var_02.look = ::lookforenemy; var_02.fastlook = ::fastlook; var_02.idle = ::idle; var_02.grenade = ::trythrowinggrenade; var_02.grenadehidden = ::trythrowinggrenadestayhidden; var_02.blindfire = ::blindfire; animscripts\cover_behavior::main(var_02); } //Function Number: 2 end_script_corner() { self.stepoutyaw = undefined; self.a.leanaim = undefined; } //Function Number: 3 set_corner_anim_array() { if(self.a.pose == "crouch") { set_anim_array("crouch"); return; } if(self.a.pose == "stand") { set_anim_array("stand"); return; } animscripts\utility::exitpronewrapper(1); self.a.pose = "crouch"; set_anim_array("crouch"); } //Function Number: 4 shouldchangestanceforfun() { if(!isdefined(self.enemy)) { return 0; } if(!isdefined(self.changestanceforfuntime)) { self.changestanceforfuntime = gettime() + randomintrange(5000,20000); } if(gettime() > self.changestanceforfuntime) { self.changestanceforfuntime = gettime() + randomintrange(5000,20000); if(isdefined(self.rambochance) && self.a.pose == "stand") { return 0; } self.a.prevattack = undefined; return 1; } return 0; } //Function Number: 5 mainloopstart() { var_00 = "stand"; if(self.a.pose == "crouch") { var_00 = "crouch"; if(isdefined(self.animarchetype) && self.animarchetype == "s1_soldier") { if(self.script == "cover_right") { var_00 = "crouch_r"; } else if(self.script == "cover_left") { var_00 = "crouch_l"; } } if(self.covernode doesnodeallowstance("stand")) { if(!self.covernode doesnodeallowstance("crouch") || shouldchangestanceforfun()) { var_00 = "stand"; } } } else if(self.covernode doesnodeallowstance("crouch")) { if(!self.covernode doesnodeallowstance("stand") || shouldchangestanceforfun()) { var_00 = "crouch"; if(isdefined(self.animarchetype) && self.animarchetype == "s1_soldier") { if(self.script == "cover_right") { var_00 = "crouch_r"; } else if(self.script == "cover_left") { var_00 = "crouch_l"; } } } } if(self.havegonetocover) { if(isdefined(self.animarchetype) && self.animarchetype == "s1_soldier") { if(var_00 == "crouch_l" || var_00 == "crouch_r") { var_00 = "crouch"; } } transitiontostance(var_00); return; } var_01 = undefined; if(self.a.pose == var_00) { if(isdefined(self.cover) && isdefined(self.cover.hidestate) && self.cover.hidestate == "back") { var_02 = animscripts\utility::animarray("alert_idle_back"); } else { var_02 = animscripts\utility::animarray("alert_idle"); } gotocover(var_02,0.3,0.4); } else { if(isdefined(self.animarchetype) && self.animarchetype == "s1_soldier") { if(var_00 == "crouch_l") { var_01 = animscripts\utility::lookupanim("combat","trans_to_crouch_l"); var_00 = "crouch"; } else if(var_00 == "crouch_r") { var_01 = animscripts\utility::lookupanim("combat","trans_to_crouch_r"); var_00 = "crouch"; } } if(!isdefined(var_01)) { var_01 = animscripts\utility::animarray("stance_change"); } gotocover(var_01,0.3,getanimlength(var_01)); set_anim_array(var_00); } self.havegonetocover = 1; } //Function Number: 6 printyaws() { wait(2); for(;;) { printyawtoenemy(); wait(0.05); } } //Function Number: 7 canseepointfromexposedatcorner(param_00,param_01) { var_02 = param_01 animscripts\utility::getyawtoorigin(param_00); if(var_02 > 60 || var_02 < -60) { return 0; } if(animscripts\utility::isnodecoverleft(param_01) && var_02 > 14) { return 0; } if(animscripts\utility::isnodecoverright(param_01) && var_02 < -12) { return 0; } return 1; } //Function Number: 8 shootposoutsidelegalyawrange() { if(!isdefined(self.shootpos)) { return 0; } var_00 = self.covernode animscripts\utility::getyawtoorigin(self.shootpos); if(self.a.cornermode == "over") { return var_00 < self.leftaimlimit || self.rightaimlimit < var_00; } if(self.cornerdirection == "up") { return var_00 < -50 || var_00 > 50; } if(self.cornerdirection == "left") { if(self.a.cornermode == "B") { return var_00 < 0 - self.abanglecutoff || var_00 > 14; } if(self.a.cornermode == "A") { return var_00 > 0 - self.abanglecutoff; } return var_00 < -50 || var_00 > 8; } if(self.a.cornermode == "B") { return var_00 > self.abanglecutoff || var_00 < -12; } if(self.a.cornermode == "A") { return var_00 < self.abanglecutoff; } return var_00 > 50 || var_00 < -8; } //Function Number: 9 getcornermode(param_00,param_01) { var_02 = 0; var_03 = 0; if(isdefined(param_01)) { var_03 = param_00 animscripts\utility::getyawtoorigin(param_01); } var_04 = []; if(isdefined(param_00) && self.a.pose == "crouch" && var_03 > self.leftaimlimit && self.rightaimlimit > var_03) { var_04 = param_00 getvalidcoverpeekouts(); } if(self.cornerdirection == "up") { if(animscripts\utility::isspaceai()) { var_05 = 0; if(isdefined(param_01)) { var_06 = anglestoup(self.angles); var_05 = animscripts\combat_utility::getpitchtoorgfromorg(param_01,self geteye() + (var_06[0] * 12,var_06[1] * 12,var_06[2] * 12)); } if(canlean(var_05,-5,80)) { var_02 = shouldlean(); var_04[var_04.size] = "lean"; var_04[var_04.size] = "lean"; } if(!var_02) { var_04[var_04.size] = "A"; } } else { var_04[var_04.size] = "A"; } } else if(self.cornerdirection == "left") { if(canlean(var_03,-40,0)) { var_02 = shouldlean(); var_04[var_04.size] = "lean"; } if(!var_02 && var_03 < 14) { if(var_03 < 0 - self.abanglecutoff) { var_04[var_04.size] = "A"; } else { var_04[var_04.size] = "B"; } } } else { if(canlean(var_03,0,40)) { var_02 = shouldlean(); var_04[var_04.size] = "lean"; } if(!var_02 && var_03 > -12) { if(var_03 > self.abanglecutoff) { var_04[var_04.size] = "A"; } else { var_04[var_04.size] = "B"; } } } return animscripts\combat_utility::getrandomcovermode(var_04); } //Function Number: 10 getbeststepoutpos() { var_00 = 0; if(animscripts\utility::cansuppressenemy()) { var_00 = self.covernode animscripts\utility::getyawtoorigin(animscripts\utility::getenemysightpos()); } else if(self.doingambush && isdefined(self.shootpos)) { var_00 = self.covernode animscripts\utility::getyawtoorigin(self.shootpos); } if(self.a.cornermode == "lean") { return "lean"; } if(self.a.cornermode == "over") { return "over"; } if(self.a.cornermode == "B") { if(self.cornerdirection == "left") { if(var_00 < 0 - self.abanglecutoff) { return "A"; } } else if(self.cornerdirection == "right") { if(var_00 > self.abanglecutoff) { return "A"; } } return "B"; } if(self.a.cornermode == "A") { if(self.cornerdirection == "up") { return "A"; } else if(self.cornerdirection == "left") { if(var_00 > 0 - self.abanglecutoff) { return "B"; } } else if(self.cornerdirection == "right") { if(var_00 < self.abanglecutoff) { return "B"; } } return "A"; } } //Function Number: 11 changestepoutpos() { self endon("killanimscript"); var_00 = getbeststepoutpos(); if(var_00 == self.a.cornermode) { return 0; } self.changingcoverpos = 1; self notify("done_changing_cover_pos"); var_01 = self.a.cornermode + "_to_" + var_00; var_02 = animscripts\utility::animarraypickrandom(var_01); if(animscripts\utility::isspaceai() && var_01 == "A_to_B" || var_01 == "B_to_A") { return 0; } var_03 = !self.swimmer; var_04 = getpredictedpathmidpoint(); if(!self maymovetopoint(var_04,var_03)) { return 0; } if(!self maymovefrompointtopoint(var_04,animscripts\utility::getanimendpos(var_02),var_03)) { return 0; } animscripts\combat_utility::endaimidlethread(); stopaiming(0.3); var_05 = self.a.pose; self setanimlimited(animscripts\utility::animarray("straight_level"),0,0.2); self setflaggedanimknob("changeStepOutPos",var_02,1,0.2,1.2); corner_playcornerfacialanim(var_02); thread donotetrackswithendon("changeStepOutPos"); var_06 = animhasnotetrack(var_02,"start_aim"); if(var_06) { self waittillmatch("start_aim","changeStepOutPos"); } else { self waittillmatch("end","changeStepOutPos"); } thread startaiming(undefined,0,0.3); if(var_06) { self waittillmatch("end","changeStepOutPos"); } self clearanim(var_02,0.1); self.a.cornermode = var_00; self.changingcoverpos = 0; self.coverposestablishedtime = gettime(); if(self.a.pose != var_05) { set_anim_array(self.a.pose); } thread changeaiming(undefined,1,0.3); return 1; } //Function Number: 12 canlean(param_00,param_01,param_02) { if(self.a.neverlean) { return 0; } return param_01 <= param_00 && param_00 <= param_02; } //Function Number: 13 shouldlean() { if(self.team == "allies") { return 1; } if(animscripts\utility::ispartiallysuppressedwrapper()) { return 1; } return 0; } //Function Number: 14 donotetrackswithendon(param_00) { self endon("killanimscript"); animscripts\shared::donotetracks(param_00); } //Function Number: 15 startaiming(param_00,param_01,param_02) { self.corneraiming = 1; if(self.a.cornermode == "lean") { self.a.leanaim = 1; } else { self.a.leanaim = undefined; } setaimingparams(param_00,param_01,param_02); } //Function Number: 16 changeaiming(param_00,param_01,param_02) { if(self.a.cornermode == "lean") { self.a.leanaim = 1; } else { self.a.leanaim = undefined; } setaimingparams(param_00,param_01,param_02); } //Function Number: 17 stopaiming(param_00) { self.corneraiming = 0; self clearanim(%add_fire,param_00); animscripts\track::setanimaimweight(0,param_00); self.facialidx = undefined; self clearanim(%head,0.2); } //Function Number: 18 setaimingparams(param_00,param_01,param_02) { self.spot = param_00; self setanimlimited(%exposed_modern,1,param_02); self setanimlimited(%exposed_aiming,1,param_02); self setanimlimited(%add_idle,1,param_02); animscripts\track::setanimaimweight(1,param_02); corner_playaimfacialanim(undefined); var_03 = undefined; if(isdefined(self.a.array["lean_aim_straight"])) { var_03 = self.a.array["lean_aim_straight"]; } thread animscripts\combat_utility::aimidlethread(); if(isdefined(self.a.leanaim)) { self setanimlimited(var_03,1,param_02); self setanimlimited(animscripts\utility::animarray("straight_level"),0,0); self setanimknoblimited(animscripts\utility::animarray("lean_aim_left"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("lean_aim_right"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("lean_aim_up"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("lean_aim_down"),1,param_02); return; } if(param_01) { self setanimlimited(animscripts\utility::animarray("straight_level"),1,param_02); if(isdefined(var_03)) { self setanimlimited(var_03,0,0); } self setanimknoblimited(animscripts\utility::animarray("add_aim_up"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_aim_down"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_aim_left"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_aim_right"),1,param_02); return; } self setanimlimited(animscripts\utility::animarray("straight_level"),0,param_02); if(isdefined(var_03)) { self setanimlimited(var_03,0,0); } self setanimknoblimited(animscripts\utility::animarray("add_turn_aim_up"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_turn_aim_down"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_turn_aim_left"),1,param_02); self setanimknoblimited(animscripts\utility::animarray("add_turn_aim_right"),1,param_02); } //Function Number: 19 stepoutandhidespeed() { if(self.a.cornermode == "over") { return 1; } return animscripts\combat_utility::randomfasteranimspeed(); } //Function Number: 20 stepout() { self.a.cornermode = "alert"; if(self.goalradius < 64) { return 0; } setdefaultcorneranimmode(); if(self.a.pose == "stand") { self.abanglecutoff = 38; } else { self.abanglecutoff = 31; } var_00 = self.a.pose; set_anim_array(var_00); animscripts\combat::set_default_aim_limits(); var_01 = "none"; if(animscripts\utility::hasenemysightpos()) { var_01 = getcornermode(self.covernode,animscripts\utility::getenemysightpos()); } else { var_01 = getcornermode(self.covernode); } if(!isdefined(var_01)) { return 0; } var_02 = "alert_to_" + var_01; if(!animscripts\utility::animarrayanyexist(var_02)) { return 0; } var_03 = animscripts\utility::animarraypickrandom(var_02); if(var_01 == "lean" && !ispeekoutposclear()) { return 0; } if(var_01 != "over" && !ispathclear(var_03,var_01 != "lean")) { return 0; } self.a.cornermode = var_01; self.a.prevattack = var_01; if(self.a.cornermode == "lean") { animscripts\combat::set_default_aim_limits(self.covernode); } if(var_01 == "A" || var_01 == "B") { self.a.special = "cover_" + self.cornerdirection + "_" + self.a.pose + "_" + var_01; } else if(var_01 == "over") { self.a.special = "cover_crouch_aim"; } else { self.a.special = "none"; } self.keepclaimednodeifvalid = 1; var_04 = 0; self.changingcoverpos = 1; self notify("done_changing_cover_pos"); var_05 = stepoutandhidespeed(); self.pushable = 0; self setflaggedanimknoballrestart("stepout",var_03,%animscript_root,1,0.2,var_05); corner_playcornerfacialanim(var_03); thread donotetrackswithendon("stepout"); var_04 = animhasnotetrack(var_03,"start_aim"); if(var_04) { self.stepoutyaw = self.angles[1] + getangledelta(var_03,0,1); self waittillmatch("start_aim","stepout"); } else { self waittillmatch("end","stepout"); } if(var_01 == "B" && common_scripts\utility::cointoss() && self.cornerdirection == "right") { self.a.special = "corner_right_martyrdom"; } set_anim_array_aiming(var_00); var_06 = var_01 == "over" || animscripts\utility::isspaceai(); startaiming(undefined,var_06,0.3); thread animscripts\track::trackshootentorpos(); if(var_04) { self waittillmatch("end","stepout"); self.stepoutyaw = undefined; } changeaiming(undefined,1,0.2); self clearanim(%cover,0.1); self clearanim(%corner,0.1); self.changingcoverpos = 0; self.coverposestablishedtime = gettime(); self.pushable = 1; return 1; } //Function Number: 21 stepoutandshootenemy() { self.keepclaimednodeifvalid = 1; if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance) { if(rambo()) { return 1; } } if(!stepout()) { return 0; } shootastold(); if(isdefined(self.shootpos)) { var_00 = lengthsquared(self.origin - self.shootpos); if(animscripts\utility::usingrocketlauncher() && animscripts\utility::shoulddroprocketlauncher(var_00)) { if(self.a.pose == "stand") { animscripts\shared::throwdownweapon(animscripts\utility::lookupanim("combat","drop_rpg_stand")); } else { animscripts\shared::throwdownweapon(animscripts\utility::lookupanim("combat","drop_rpg_crouch")); } thread runcombat(); return; } } returntocover(); self.keepclaimednodeifvalid = 0; return 1; } //Function Number: 22 haventramboedwithintime(param_00) { if(!isdefined(self.lastrambotime)) { return 1; } return gettime() - self.lastrambotime > param_00 * 1000; } //Function Number: 23 rambo() { if(!animscripts\utility::hasenemysightpos()) { return 0; } var_00 = 0; var_01 = 90; var_02 = self.covernode animscripts\utility::getyawtoorigin(animscripts\utility::getenemysightpos()); if(self.cornerdirection == "left") { var_02 = 0 - var_02; } if(var_02 > 30) { var_01 = 45; if(self.cornerdirection == "left") { var_00 = 45; } else { var_00 = -45; } } var_03 = "rambo" + var_01; if(!animscripts\utility::animarrayanyexist(var_03)) { return 0; } var_04 = animscripts\utility::animarraypickrandom(var_03); var_05 = getpredictedpathmidpoint(48); if(!self maymovetopoint(var_05,!self.swimmer)) { return 0; } self.coverposestablishedtime = gettime(); setdefaultcorneranimmode(); self.keepclaimednodeifvalid = 1; self.isrambo = 1; self.a.prevattack = "rambo"; self.changingcoverpos = 1; thread animscripts\shared::ramboaim(var_00); self setflaggedanimknoballrestart("rambo",var_04,%body,1,0,1); corner_playcornerfacialanim(var_04); animscripts\shared::donotetracks("rambo"); self notify("rambo_aim_end"); self.changingcoverpos = 0; self.keepclaimednodeifvalid = 0; self.lastrambotime = gettime(); self.changingcoverpos = 0; self.isrambo = undefined; return 1; } //Function Number: 24 shootastold() { maps\_gameskill::didsomethingotherthanshooting(); for(;;) { for(;;) { if(isdefined(self.shouldreturntocover)) { break; } if(!isdefined(self.shootpos)) { self waittill("do_slow_things"); waittillframeend; if(isdefined(self.shootpos)) { continue; } break; } if(!self.bulletsinclip) { break; } if(shootposoutsidelegalyawrange()) { if(!changestepoutpos()) { if(getbeststepoutpos() == self.a.cornermode) { break; } shootuntilshootbehaviorchangefortime(0.2); continue; } if(shootposoutsidelegalyawrange()) { break; } continue; } shootuntilshootbehaviorchange_corner(1); self clearanim(%add_fire,0.2); } if(canreturntocover(self.a.cornermode != "lean")) { break; } if(shootposoutsidelegalyawrange() && changestepoutpos()) { continue; } shootuntilshootbehaviorchangefortime(0.2); } } //Function Number: 25 shootuntilshootbehaviorchangefortime(param_00) { thread notifystopshootingaftertime(param_00); var_01 = gettime(); shootuntilshootbehaviorchange_corner(0); self notify("stopNotifyStopShootingAfterTime"); var_02 = gettime() - var_01 / 1000; if(var_02 < param_00) { wait(param_00 - var_02); } } //Function Number: 26 notifystopshootingaftertime(param_00) { self endon("killanimscript"); self endon("stopNotifyStopShootingAfterTime"); wait(param_00); self notify("stopShooting"); } //Function Number: 27 shootuntilshootbehaviorchange_corner(param_00) { self endon("return_to_cover"); if(param_00) { thread anglerangethread(); } thread animscripts\combat_utility::aimidlethread(); animscripts\combat_utility::shootuntilshootbehaviorchange(); } //Function Number: 28 anglerangethread() { self endon("killanimscript"); self notify("newAngleRangeCheck"); self endon("newAngleRangeCheck"); self endon("take_cover_at_corner"); for(;;) { if(shootposoutsidelegalyawrange()) { break; } wait(0.1); } self notify("stopShooting"); } //Function Number: 29 showstate() { self.enemy endon("death"); self endon("enemy"); self endon("stopshowstate"); wait(0.05); } //Function Number: 30 canreturntocover(param_00) { var_01 = !self.swimmer; if(param_00) { var_02 = getpredictedpathmidpoint(); if(!self maymovetopoint(var_02,var_01)) { return 0; } return self maymovefrompointtopoint(var_02,self.covernode.origin,var_01); } return self maymovetopoint(self.covernode.origin,var_02); } //Function Number: 31 returntocover() { animscripts\combat_utility::endfireandanimidlethread(); var_00 = animscripts\utility::issuppressedwrapper(); self notify("take_cover_at_corner"); self.changingcoverpos = 1; self notify("done_changing_cover_pos"); var_01 = self.a.cornermode + "_to_alert"; var_02 = animscripts\utility::animarraypickrandom(var_01); stopaiming(0.3); var_03 = 0; if(self.a.cornermode != "lean" && var_00 && animscripts\utility::animarrayanyexist(var_01 + "_reload") && randomfloat(100) < 75) { var_02 = animscripts\utility::animarraypickrandom(var_01 + "_reload"); var_03 = 1; } var_04 = stepoutandhidespeed(); if(animscripts\utility::isspaceai()) { self clearanim(%exposed_modern,0.2); } else { self clearanim(%body,0.1); } self setflaggedanimrestart("hide",var_02,1,0.1,var_04); corner_playcornerfacialanim(var_02); animscripts\shared::donotetracks("hide"); if(var_03) { animscripts\weaponlist::refillclip(); } self.changingcoverpos = 0; if(self.cornerdirection == "up") { self.a.special = "cover_up"; } else if(self.cornerdirection == "left") { self.a.special = "cover_left"; } else { self.a.special = "cover_right"; } self.keepclaimednodeifvalid = 0; self clearanim(var_02,0.2); } //Function Number: 32 blindfire() { if(!animscripts\utility::animarrayanyexist("blind_fire")) { return 0; } setdefaultcorneranimmode(); self.keepclaimednodeifvalid = 1; var_00 = animscripts\utility::animarraypickrandom("blind_fire"); self setflaggedanimknoballrestart("blindfire",var_00,%body,1,0,1); corner_playcornerfacialanim(var_00); animscripts\shared::donotetracks("blindfire"); self.keepclaimednodeifvalid = 0; return 1; } //Function Number: 33 linethread(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = (1,1,1); } for(var_03 = 0;var_03 < 100;var_03++) { wait(0.05); } } //Function Number: 34 trythrowinggrenadestayhidden(param_00) { return trythrowinggrenade(param_00,1); } //Function Number: 35 trythrowinggrenade(param_00,param_01) { if(!self maymovetopoint(getpredictedpathmidpoint())) { return 0; } if(isdefined(self.dontevershoot) || isdefined(param_00.dontattackme)) { return 0; } var_02 = undefined; if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance) { if(isdefined(self.a.array["grenade_rambo"])) { var_02 = animscripts\utility::animarray("grenade_rambo"); } } if(!isdefined(var_02)) { if(isdefined(param_01) && param_01) { if(!isdefined(self.a.array["grenade_safe"])) { return 0; } var_02 = animscripts\utility::animarray("grenade_safe"); } else { if(!isdefined(self.a.array["grenade_exposed"])) { return 0; } var_02 = animscripts\utility::animarray("grenade_exposed"); } } setdefaultcorneranimmode(); self.keepclaimednodeifvalid = 1; var_03 = animscripts\combat_utility::trygrenade(param_00,var_02); self.keepclaimednodeifvalid = 0; return var_03; } //Function Number: 36 printyawtoenemy() { } //Function Number: 37 lookforenemy(param_00) { if(!isdefined(self.a.array["alert_to_look"])) { return 0; } setdefaultcorneranimmode(); self.keepclaimednodeifvalid = 1; if(!peekout()) { return 0; } animscripts\shared::playlookanimation(animscripts\utility::animarray("look_idle"),param_00,::canstoppeeking); var_01 = undefined; if(animscripts\utility::issuppressedwrapper()) { var_01 = animscripts\utility::animarray("look_to_alert_fast"); } else { var_01 = animscripts\utility::animarray("look_to_alert"); } self setflaggedanimknoballrestart("looking_end",var_01,%body,1,0.1,1); corner_playcornerfacialanim(var_01); animscripts\shared::donotetracks("looking_end"); setdefaultcorneranimmode(); self.keepclaimednodeifvalid = 0; return 1; } //Function Number: 38 ispeekoutposclear() { var_00 = self.covernode.angles; if(animscripts\utility::isspaceai()) { var_00 = animscripts\utility::gettruenodeangles(self.covernode); } var_01 = self geteye(); var_02 = anglestoright(var_00); var_03 = anglestoup(var_00); if(self.cornerdirection == "right") { var_01 = var_01 + var_02 * 30; } else if(self.cornerdirection == "left") { var_01 = var_01 - var_02 * 30; } else { var_01 = var_01 + var_03 * 30; } var_04 = var_01 + anglestoforward(var_00) * 30; return sighttracepassed(var_01,var_04,1,self); } //Function Number: 39 peekout() { if(isdefined(self.covernode.script_dontpeek)) { return 0; } if(isdefined(self.nextpeekoutattempttime) && gettime() < self.nextpeekoutattempttime) { return 0; } if(!ispeekoutposclear()) { self.nextpeekoutattempttime = gettime() + 3000; return 0; } var_00 = animscripts\utility::animarray("alert_to_look"); self setflaggedanimknoball("looking_start",var_00,%body,1,0.2,1); corner_playcornerfacialanim(var_00); animscripts\shared::donotetracks("looking_start"); return 1; } //Function Number: 40 canstoppeeking() { return self maymovetopoint(self.covernode.origin,!self.swimmer); } //Function Number: 41 fastlook() { return 0; } //Function Number: 42 cornerreload() { var_00 = animscripts\utility::animarraypickrandom("reload"); self setflaggedanimknobrestart("cornerReload",var_00,1,0.2); corner_playcornerfacialanim(var_00); animscripts\shared::donotetracks("cornerReload"); self notify("abort_reload"); animscripts\weaponlist::refillclip(); self setanimrestart(animscripts\utility::animarray("alert_idle"),1,0.2); self clearanim(var_00,0.2); return 1; } //Function Number: 43 ispathclear(param_00,param_01) { var_02 = !self.swimmer; if(param_01) { var_03 = getpredictedpathmidpoint(); if(!self maymovetopoint(var_03,var_02)) { return 0; } if(self.swimmer) { return 1; } return self maymovefrompointtopoint(var_03,animscripts\utility::getanimendpos(param_00),var_02); } if(self.swimmer) { return 1; } return self maymovetopoint(animscripts\utility::getanimendpos(param_01),var_03); } //Function Number: 44 getpredictedpathmidpoint(param_00) { var_01 = self.covernode.angles; var_02 = anglestoright(var_01); if(!isdefined(param_00)) { param_00 = 36; } var_03 = self.script; if(var_03 == "cover_multi") { if(self.cover.state == "right") { var_03 = "cover_right"; } else if(self.cover.state == "left") { var_03 = "cover_left"; } } if(var_03 == "cover_swim_up") { var_04 = anglestoup(var_01); return self.covernode.origin + var_04 * param_00; } switch(var_04) { case "cover_swim_left": case "cover_left": var_03 = var_03 * 0 - var_01; break; case "cover_swim_right": case "cover_right": var_03 = var_03 * var_01; break; default: break; } return self.covernode.origin + (var_03[0],var_03[1],0); } //Function Number: 45 idle() { self endon("end_idle"); for(;;) { var_00 = randomint(2) == 0 && isdefined(self.a.array["alert_idle_twitch"]) && animscripts\utility::animarrayanyexist("alert_idle_twitch"); if(var_00) { var_01 = animscripts\utility::animarraypickrandom("alert_idle_twitch"); } else { var_01 = animscripts\utility::animarray("alert_idle"); } playidleanimation(var_01,var_00); } } //Function Number: 46 flinch() { if(!animscripts\utility::animarrayanyexist("alert_idle_flinch")) { return 0; } playidleanimation(animscripts\utility::animarraypickrandom("alert_idle_flinch"),1); return 1; } //Function Number: 47 playidleanimation(param_00,param_01) { if(param_01) { self setflaggedanimknoballrestart("idle",param_00,%body,1,0.1,1); } else { self setflaggedanimknoball("idle",param_00,%body,1,0.1,1); } corner_playcornerfacialanim(param_00); animscripts\shared::donotetracks("idle"); } //Function Number: 48 set_anim_array(param_00) { [[ self.animarrayfuncs["hiding"][param_00] ]](); [[ self.animarrayfuncs["exposed"][param_00] ]](); } //Function Number: 49 set_anim_array_aiming(param_00) { [[ self.animarrayfuncs["exposed"][param_00] ]](); } //Function Number: 50 transitiontostance(param_00) { if(self.a.pose == param_00) { set_anim_array(param_00); return; } var_01 = animscripts\utility::animarray("stance_change"); self setflaggedanimknoballrestart("changeStance",var_01,%body); corner_playcornerfacialanim(var_01); set_anim_array(param_00); animscripts\shared::donotetracks("changeStance"); wait(0.2); } //Function Number: 51 gotocover(param_00,param_01,param_02) { var_03 = animscripts\utility::getnodedirection(); var_04 = animscripts\utility::getclaimednode(); var_05 = var_03 + self.hideyawoffset; if(animscripts\utility::isspaceai()) { self notify("force_space_rotation_update",0,0); } else { self orientmode("face angle",var_05); } self animmode("normal"); if(isdefined(var_04)) { thread animscripts\shared::movetonodeovertime(var_04,param_01); } self setflaggedanimknoballrestart("coveranim",param_00,%body,1,param_01); corner_playcornerfacialanim(param_00); animscripts\notetracks::donotetracksfortime(param_02,"coveranim"); while(animscripts\utility::absangleclamp180(self.angles[1] - var_05) > 1) { animscripts\notetracks::donotetracksfortime(0.1,"coveranim"); var_03 = animscripts\utility::getnodedirection(); var_05 = var_03 + self.hideyawoffset; } setdefaultcorneranimmode(); if(self.cornerdirection == "left") { self.a.special = "cover_left"; return; } if(self.cornerdirection == "right") { self.a.special = "cover_right"; return; } self.a.special = "cover_up"; } //Function Number: 52 drawoffset() { self endon("killanimscript"); wait(0.05); } //Function Number: 53 set_standing_animarray_aiming() { if(self.swimmer && isdefined(self.node)) { set_swimming_animarray_aiming(); return; } if(!isdefined(self.a.array)) { } var_00 = animscripts\utility::lookupanimarray("default_stand"); self.a.array["add_aim_up"] = var_00["add_aim_up"]; self.a.array["add_aim_down"] = var_00["add_aim_down"]; self.a.array["add_aim_left"] = var_00["add_aim_left"]; self.a.array["add_aim_right"] = var_00["add_aim_right"]; self.a.array["add_turn_aim_up"] = var_00["add_turn_aim_up"]; self.a.array["add_turn_aim_down"] = var_00["add_turn_aim_down"]; self.a.array["add_turn_aim_left"] = var_00["add_turn_aim_left"]; self.a.array["add_turn_aim_right"] = var_00["add_turn_aim_right"]; self.a.array["straight_level"] = var_00["straight_level"]; if(self.a.cornermode == "lean") { var_01 = self.a.array["lean_fire"]; var_02 = self.a.array["lean_single"]; self.a.array["fire"] = var_01; self.a.array["single"] = animscripts\utility::array(var_02); self.a.array["semi2"] = var_02; self.a.array["semi3"] = var_02; self.a.array["semi4"] = var_02; self.a.array["semi5"] = var_02; self.a.array["burst2"] = var_01; self.a.array["burst3"] = var_01; self.a.array["burst4"] = var_01; self.a.array["burst5"] = var_01; self.a.array["burst6"] = var_01; } else { self.a.array["fire"] = var_00["fire_corner"]; self.a.array["semi2"] = var_00["semi2"]; self.a.array["semi3"] = var_00["semi3"]; self.a.array["semi4"] = var_00["semi4"]; self.a.array["semi5"] = var_00["semi5"]; if(animscripts\utility::weapon_pump_action_shotgun()) { self.a.array["single"] = animscripts\utility::lookupanim("shotgun_stand","single"); } else { self.a.array["single"] = var_00["single"]; } self.a.array["burst2"] = var_00["burst2"]; self.a.array["burst3"] = var_00["burst3"]; self.a.array["burst4"] = var_00["burst4"]; self.a.array["burst5"] = var_00["burst5"]; self.a.array["burst6"] = var_00["burst6"]; } self.a.array["exposed_idle"] = var_00["exposed_idle"]; } //Function Number: 54 set_crouching_animarray_aiming() { if(self.swimmer && isdefined(self.node)) { set_swimming_animarray_aiming(); return; } if(!isdefined(self.a.array)) { } var_00 = animscripts\utility::lookupanimarray("default_crouch"); var_01["add_aim_up"] = animscripts\utility::lookupanim("cover_crouch","add_aim_up"); var_02["add_aim_up"] = animscripts\utility::lookupanim("cover_crouch","add_aim_up"); var_03[0] = animscripts\utility::lookupanim("cover_crouch","add_aim_up"); if(self.a.cornermode == "over") { self.a.array["add_aim_up"] = animscripts\utility::lookupanim("cover_crouch","add_aim_up"); self.a.array["add_aim_down"] = animscripts\utility::lookupanim("cover_crouch","add_aim_down"); self.a.array["add_aim_left"] = animscripts\utility::lookupanim("cover_crouch","add_aim_left"); self.a.array["add_aim_right"] = animscripts\utility::lookupanim("cover_crouch","add_aim_right"); self.a.array["straight_level"] = animscripts\utility::lookupanim("cover_crouch","straight_level"); self.a.array["exposed_idle"] = animscripts\utility::lookupanim("default_stand","exposed_idle"); return; } if(self.a.cornermode == "lean") { var_04 = self.a.array["lean_fire"]; var_05 = self.a.array["lean_single"]; self.a.array["fire"] = var_04; self.a.array["single"] = animscripts\utility::array(var_05); self.a.array["semi2"] = var_05; self.a.array["semi3"] = var_05; self.a.array["semi4"] = var_05; self.a.array["semi5"] = var_05; self.a.array["burst2"] = var_04; self.a.array["burst3"] = var_04; self.a.array["burst4"] = var_04; self.a.array["burst5"] = var_04; self.a.array["burst6"] = var_04; } else { self.a.array["fire"] = var_00["fire"]; self.a.array["semi2"] = var_00["semi2"]; self.a.array["semi3"] = var_00["semi3"]; self.a.array["semi4"] = var_00["semi4"]; self.a.array["semi5"] = var_00["semi5"]; if(animscripts\utility::weapon_pump_action_shotgun()) { self.a.array["single"] = animscripts\utility::lookupanim("shotgun_crouch","single"); } else { self.a.array["single"] = var_00["single"]; } self.a.array["burst2"] = var_00["burst2"]; self.a.array["burst3"] = var_00["burst3"]; self.a.array["burst4"] = var_00["burst4"]; self.a.array["burst5"] = var_00["burst5"]; self.a.array["burst6"] = var_00["burst6"]; } self.a.array["add_aim_up"] = var_00["add_aim_up"]; self.a.array["add_aim_down"] = var_00["add_aim_down"]; self.a.array["add_aim_left"] = var_00["add_aim_left"]; self.a.array["add_aim_right"] = var_00["add_aim_right"]; self.a.array["add_turn_aim_up"] = var_00["add_turn_aim_up"]; self.a.array["add_turn_aim_down"] = var_00["add_turn_aim_down"]; self.a.array["add_turn_aim_left"] = var_00["add_turn_aim_left"]; self.a.array["add_turn_aim_right"] = var_00["add_turn_aim_right"]; self.a.array["straight_level"] = var_00["straight_level"]; self.a.array["exposed_idle"] = var_00["exposed_idle"]; } //Function Number: 55 set_swimming_animarray_aiming() { if(!isdefined(self.a.array)) { } var_00 = []; if(self.approachtype == "cover_corner_r") { var_00 = animscripts\swim::getswimanim("cover_corner_r"); } else if(self.approachtype == "cover_corner_l") { var_00 = animscripts\swim::getswimanim("cover_corner_l"); } else if(self.approachtype == "cover_u") { var_00 = animscripts\swim::getswimanim("cover_u"); } else if(self.approachtype == "exposed") { var_00 = animscripts\swim::getswimanim("exposed"); } else { } self.a.array["add_aim_up"] = var_00["add_aim_up"]; self.a.array["add_aim_down"] = var_00["add_aim_down"]; self.a.array["add_aim_left"] = var_00["add_aim_left"]; self.a.array["add_aim_right"] = var_00["add_aim_right"]; self.a.array["add_turn_aim_up"] = var_00["add_aim_up"]; self.a.array["add_turn_aim_down"] = var_00["add_aim_down"]; self.a.array["add_turn_aim_left"] = var_00["add_aim_left"]; self.a.array["add_turn_aim_right"] = var_00["add_aim_right"]; self.a.array["straight_level"] = var_00["straight_level"]; self.a.array["fire"] = var_00["add_aim_straight"]; self.a.array["semi2"] = var_00["add_aim_straight"]; self.a.array["semi3"] = var_00["add_aim_straight"]; self.a.array["semi4"] = var_00["add_aim_straight"]; self.a.array["semi5"] = var_00["add_aim_straight"]; self.a.array["single"] = animscripts\utility::array(var_00["add_aim_straight"]); self.a.array["burst2"] = var_00["add_aim_straight"]; self.a.array["burst3"] = var_00["add_aim_straight"]; self.a.array["burst4"] = var_00["add_aim_straight"]; self.a.array["burst5"] = var_00["add_aim_straight"]; self.a.array["burst6"] = var_00["add_aim_straight"]; self.a.array["exposed_idle"] = animscripts\utility::array(var_00["add_aim_idle"]); } //Function Number: 56 runcombat() { self notify("killanimscript"); thread animscripts\combat::main(); } //Function Number: 57 setdefaultcorneranimmode() { if(self.swimmer) { self animmode("nogravity"); return; } self animmode("zonly_physics"); } //Function Number: 58 corner_playcornerfacialanim(param_00) { if(self.cornerdirection == "left") { var_01 = "corner_stand_L"; } else { var_01 = "corner_stand_R"; } self.facialidx = animscripts\face::playfacialanim(param_00,var_01,self.facialidx); } //Function Number: 59 corner_playaimfacialanim(param_00) { self.facialidx = animscripts\face::playfacialanim(param_00,"aim",self.facialidx); } //Function Number: 60 corner_clearfacialanim() { self.facialidx = undefined; self clearanim(%head,0.2); }