Files
IL-GSC/MW3/Xbox/SP/animscripts/corner.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

1431 lines
29 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\corner.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: Console
* Function Count: 55
* Decompile Time: 961 ms
* Timestamp: 10/27/2023 2:30:08 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.var_1FC6 = param_00;
self.a.var_899 = "unknown";
self.a.aimidlethread = undefined;
animscripts/cover_behavior::func_B5C(param_01);
func_1FCC();
self.var_1FC7 = 0;
self.var_1FC8 = 0;
self.var_1FC9 = 0;
animscripts/track::setanimaimweight(0);
self.havegonetocover = 0;
var_02 = spawnstruct();
if(!self.fixednode)
{
var_02.var_B22 = ::animscripts/cover_behavior::func_B22;
}
var_02.mainloopstart = ::mainloopstart;
var_02.reload = ::cornerreload;
var_02.leavecoverandshoot = ::func_1FE0;
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
func_1FCB()
{
self.stepoutyaw = undefined;
self.a.var_1EFE = undefined;
}
//Function Number: 3
func_1FCC()
{
if(self.a.var_911 == "crouch")
{
set_anim_array("crouch");
return;
}
if(self.a.var_911 == "stand")
{
set_anim_array("stand");
return;
}
animscripts/utility::exitpronewrapper(1);
self.a.var_911 = "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.var_911 == "stand")
{
return 0;
}
self.a.prevattack = undefined;
return 1;
}
return 0;
}
//Function Number: 5
mainloopstart()
{
var_00 = "stand";
if(self.a.var_911 == "crouch")
{
var_00 = "crouch";
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(self.havegonetocover)
{
func_1FF2(var_00);
return;
}
if(self.a.var_911 == var_00)
{
gotocover(animscripts/utility::animarray("alert_idle"),0.3,0.4);
}
else
{
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
func_1FCF()
{
wait 2;
for(;;)
{
printyawtoenemy();
wait 0.05;
}
}
//Function Number: 7
canseepointfromexposedatcorner(param_00,param_01)
{
var_02 = param_01 animscripts/utility::func_1FD1(param_00);
if(var_02 > 60 || var_02 < -60)
{
return 0;
}
if(param_01.type == "Cover Left" && var_02 > 14)
{
return 0;
}
if(param_01.type == "Cover Right" && var_02 < -12)
{
return 0;
}
return 1;
}
//Function Number: 8
shootposoutsidelegalyawrange()
{
if(!isdefined(self.shootpos))
{
return 0;
}
var_00 = self.covernode animscripts/utility::func_1FD1(self.shootpos);
if(self.a.var_899 == "over")
{
return var_00 < self.leftaimlimit || self.rightaimlimit < var_00;
}
if(self.var_1FC6 == "left")
{
if(self.a.var_899 == "B")
{
return var_00 < 0 - self.var_1FD3 || var_00 > 14;
}
if(self.a.var_899 == "A")
{
return var_00 > 0 - self.var_1FD3;
}
return var_00 < -50 || var_00 > 8;
}
if(self.a.var_899 == "B")
{
return var_00 > self.var_1FD3 || var_00 < -12;
}
if(self.a.var_899 == "A")
{
return var_00 < self.var_1FD3;
}
return var_00 > 50 || var_00 < -8;
}
//Function Number: 9
func_1FD4(param_00,param_01)
{
var_02 = 0;
var_03 = 0;
if(isdefined(param_01))
{
var_03 = param_00 animscripts/utility::func_1FD1(param_01);
}
var_04 = [];
if(isdefined(param_00) && self.a.var_911 == "crouch" && var_03 > self.leftaimlimit && self.rightaimlimit > var_03)
{
var_04 = param_00 getvalidcoverpeekouts();
}
if(self.var_1FC6 == "left")
{
if(func_1FD7(var_03,-40,0))
{
var_02 = shouldlean();
}
if(!var_03 && var_04 < 14)
{
if(var_04 < 0 - self.var_1FD3)
{
}
else
{
}
}
}
else
{
if(func_1FD7(var_04,0,40))
{
var_03 = shouldlean();
}
if(!var_03 && var_04 > -12)
{
if(var_04 > self.var_1FD3)
{
}
else
{
}
}
}
return animscripts/combat_utility::getrandomcovermode(var_41);
}
//Function Number: 10
func_1FD5()
{
var_00 = 0;
if(animscripts/utility::cansuppressenemy())
{
var_00 = self.covernode animscripts/utility::func_1FD1(animscripts/utility::getenemysightpos());
}
else if(self.doingambush && isdefined(self.shootpos))
{
var_00 = self.covernode animscripts/utility::func_1FD1(self.shootpos);
}
if(self.a.var_899 == "lean")
{
return "lean";
}
if(self.a.var_899 == "over")
{
return "over";
}
if(self.a.var_899 == "B")
{
if(self.var_1FC6 == "left")
{
if(var_00 < 0 - self.var_1FD3)
{
return "A";
}
}
else if(self.var_1FC6 == "right")
{
if(var_00 > self.var_1FD3)
{
return "A";
}
}
return "B";
}
if(self.a.var_899 == "A")
{
var_02 = "B";
if(self.var_1FC6 == "left")
{
if(var_00 > 0 - self.var_1FD3)
{
return "B";
}
}
else if(self.var_1FC6 == "right")
{
if(var_00 < self.var_1FD3)
{
return "B";
}
}
return "A";
}
}
//Function Number: 11
changestepoutpos()
{
self endon("killanimscript");
var_00 = func_1FD5();
if(var_00 == self.a.var_899)
{
return 0;
}
self.var_8C8 = 1;
self notify("done_changing_cover_pos");
var_01 = self.a.var_899 + "_to_" + var_00;
var_02 = animscripts/utility::animarraypickrandom(var_01);
var_03 = func_1FEF();
if(!self maymovetopoint(var_03))
{
return 0;
}
if(!self maymovefrompointtopoint(var_03,animscripts/utility::getanimendpos(var_02)))
{
return 0;
}
animscripts/combat_utility::endaimidlethread();
stopaiming(0.3);
var_04 = self.a.var_911;
self setanimlimited(animscripts/utility::animarray("straight_level"),0,0.2);
self setflaggedanimknob("changeStepOutPos",var_02,1,0.2,1.2);
thread donotetrackswithendon("changeStepOutPos");
if(animhasnotetrack(var_02,"start_aim"))
{
self waittillmatch("start_aim","changeStepOutPos");
}
else
{
self waittillmatch("end","changeStepOutPos");
}
thread startaiming(undefined,0,0.3);
self waittillmatch("end","changeStepOutPos");
self clearanim(var_02,0.1);
self.a.var_899 = var_00;
self.var_8C8 = 0;
self.var_8E8 = gettime();
if(self.a.var_911 != var_04)
{
set_anim_array(self.a.var_911);
}
thread func_1FDA(undefined,1,0.3);
return 1;
}
//Function Number: 12
func_1FD7(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.var_1FC9 = 1;
if(self.a.var_899 == "lean")
{
self.a.var_1EFE = 1;
}
else
{
self.a.var_1EFE = undefined;
}
setaimingparams(param_00,param_01,param_02);
}
//Function Number: 16
func_1FDA(param_00,param_01,param_02)
{
if(self.a.var_899 == "lean")
{
self.a.var_1EFE = 1;
}
else
{
self.a.var_1EFE = undefined;
}
setaimingparams(param_00,param_01,param_02);
}
//Function Number: 17
stopaiming(param_00)
{
self.var_1FC9 = 0;
self clearanim(%add_fire,param_00);
animscripts/track::setanimaimweight(0,param_00);
}
//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);
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.var_1EFE))
{
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.var_899 == "over")
{
return 1;
}
return animscripts/combat_utility::randomfasteranimspeed();
}
//Function Number: 20
stepout()
{
self.a.var_899 = "alert";
if(self.goalradius < 64)
{
self.goalradius = 64;
}
self animmode("zonly_physics");
if(self.a.var_911 == "stand")
{
self.var_1FD3 = 38;
}
else
{
self.var_1FD3 = 31;
}
var_00 = self.a.var_911;
set_anim_array(var_00);
self setdefaultaimlimits();
var_01 = "none";
if(animscripts/utility::hasenemysightpos())
{
var_01 = func_1FD4(self.covernode,animscripts/utility::getenemysightpos());
}
else
{
var_01 = func_1FD4(self.covernode);
}
if(!isdefined(var_01))
{
return 0;
}
var_02 = "alert_to_" + var_01;
var_03 = animscripts/utility::animarraypickrandom(var_02);
if(var_01 == "lean" && !func_1FEA())
{
return 0;
}
if(var_01 != "over" && !ispathclear(var_03,var_01 != "lean"))
{
return 0;
}
self.a.var_899 = var_01;
self.a.prevattack = var_01;
if(self.a.var_899 == "lean")
{
self setdefaultaimlimits(self.covernode);
}
if(var_01 == "A" || var_01 == "B")
{
self.a.special = "cover_" + self.var_1FC6 + "_" + self.a.var_911 + "_" + 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.var_8C8 = 1;
self notify("done_changing_cover_pos");
var_05 = stepoutandhidespeed();
self.pushable = 0;
self setflaggedanimknoballrestart("stepout",var_03,%root,1,0.2,var_05);
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.var_1FC6 == "right")
{
self.a.special = "corner_right_martyrdom";
}
func_1FF1(var_00);
var_06 = var_01 == "over";
startaiming(undefined,var_06,0.3);
thread animscripts/track::trackshootentorpos();
if(var_04)
{
self waittillmatch("end","stepout");
self.stepoutyaw = undefined;
}
func_1FDA(undefined,1,0.2);
self clearanim(%cover,0.1);
self clearanim(%corner,0.1);
self.var_8C8 = 0;
self.var_8E8 = gettime();
self.pushable = 1;
return 1;
}
//Function Number: 21
func_1FE0()
{
self.keepclaimednodeifvalid = 1;
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
{
if(func_0B76())
{
return 1;
}
}
if(!stepout())
{
return 0;
}
func_0B73();
if(isdefined(self.shootpos))
{
var_00 = lengthsquared(self.origin - self.shootpos);
if(animscripts/utility::usingrocketlauncher() && var_00 < squared(512) || self.a.rockets < 1)
{
if(self.a.var_911 == "stand")
{
animscripts/shared::throwdownweapon(%rpg_stand_throw);
}
else
{
animscripts/shared::throwdownweapon(%rpg_crouch_throw);
}
thread func_1FFA();
return;
}
}
returntocover();
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 22
func_1FE1(param_00)
{
if(!isdefined(self.var_B7C))
{
return 1;
}
return gettime() - self.var_B7C > param_00 * 1000;
}
//Function Number: 23
func_0B76()
{
if(!animscripts/utility::hasenemysightpos())
{
return 0;
}
var_00 = 0;
var_01 = 90;
var_02 = self.covernode animscripts/utility::func_1FD1(animscripts/utility::getenemysightpos());
if(self.var_1FC6 == "left")
{
var_02 = 0 - var_02;
}
if(var_02 > 30)
{
var_01 = 45;
if(self.var_1FC6 == "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 = func_1FEF(48);
if(!self maymovetopoint(var_05))
{
return 0;
}
self.var_8E8 = gettime();
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self.isrambo = 1;
self.a.prevattack = "rambo";
self.var_8C8 = 1;
thread animscripts/shared::ramboaim(var_00);
self setflaggedanimknoballrestart("rambo",var_04,%body,1,0,1);
animscripts/shared::donotetracks("rambo");
self notify("rambo_aim_end");
self.var_8C8 = 0;
self.keepclaimednodeifvalid = 0;
self.var_B7C = gettime();
self.var_8C8 = 0;
self.isrambo = undefined;
return 1;
}
//Function Number: 24
func_0B73()
{
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(func_1FD5() == self.a.var_899)
{
break;
}
func_1FE2(0.2);
continue;
}
if(shootposoutsidelegalyawrange())
{
break;
}
continue;
}
shootuntilshootbehaviorchange_corner(1);
self clearanim(%add_fire,0.2);
}
if(canreturntocover(self.a.var_899 != "lean"))
{
break;
}
if(shootposoutsidelegalyawrange() && changestepoutpos())
{
continue;
}
func_1FE2(0.2);
}
}
//Function Number: 25
func_1FE2(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)
{
if(param_00)
{
var_01 = func_1FEF();
if(!self maymovetopoint(var_01))
{
return 0;
}
return self maymovefrompointtopoint(var_01,self.covernode.origin);
}
return self maymovetopoint(self.covernode.origin);
}
//Function Number: 31
returntocover()
{
animscripts/combat_utility::endfireandanimidlethread();
var_00 = animscripts/utility::issuppressedwrapper();
self notify("take_cover_at_corner");
self.var_8C8 = 1;
self notify("done_changing_cover_pos");
var_01 = self.a.var_899 + "_to_alert";
var_02 = animscripts/utility::animarraypickrandom(var_01);
stopaiming(0.3);
var_03 = 0;
if(self.a.var_899 != "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();
self clearanim(%body,0.1);
self setflaggedanimrestart("hide",var_02,1,0.1,var_04);
animscripts/shared::donotetracks("hide");
if(var_03)
{
animscripts/weaponlist::refillclip();
}
self.var_8C8 = 0;
if(self.var_1FC6 == "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;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self setflaggedanimknoballrestart("blindfire",animscripts/utility::animarraypickrandom("blind_fire"),%body,1,0,1);
animscripts/shared::donotetracks("blindfire");
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 33
func_1FE8(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(func_1FEF()))
{
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");
}
}
self animmode("zonly_physics");
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;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
if(!peekout())
{
return 0;
}
animscripts/shared::func_B7E(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);
animscripts/shared::donotetracks("looking_end");
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 38
func_1FEA()
{
var_00 = self geteye();
var_01 = anglestoright(self.covernode.angles);
if(self.var_1FC6 == "right")
{
var_00 = var_00 + var_01 * 30;
}
else
{
var_00 = var_00 - var_01 * 30;
}
var_02 = var_00 + anglestoforward(self.covernode.angles) * 30;
return sighttracepassed(var_00,var_02,1,self);
}
//Function Number: 39
peekout()
{
if(isdefined(self.covernode.script_dontpeek))
{
return 0;
}
if(isdefined(self.nextpeekoutattempttime) && gettime() < self.nextpeekoutattempttime)
{
return 0;
}
if(!func_1FEA())
{
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);
animscripts/shared::donotetracks("looking_start");
return 1;
}
//Function Number: 40
canstoppeeking()
{
return self maymovetopoint(self.covernode.origin);
}
//Function Number: 41
fastlook()
{
return 0;
}
//Function Number: 42
cornerreload()
{
var_00 = animscripts/utility::animarraypickrandom("reload");
self setflaggedanimknobrestart("cornerReload",var_00,1,0.2);
animscripts/shared::donotetracks("cornerReload");
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)
{
if(param_01)
{
var_02 = func_1FEF();
if(!self maymovetopoint(var_02))
{
return 0;
}
return self maymovefrompointtopoint(var_02,animscripts/utility::getanimendpos(param_00));
}
return self maymovetopoint(animscripts/utility::getanimendpos(param_01));
}
//Function Number: 44
func_1FEF(param_00)
{
var_01 = self.covernode.angles;
var_02 = anglestoright(var_01);
if(!isdefined(param_00))
{
param_00 = 36;
}
switch(self.script)
{
case "cover_left":
var_02 = var_02 * 0 - param_00;
break;
case "cover_right":
var_02 = var_02 * param_00;
break;
default:
break;
}
return self.covernode.origin + (var_02[0],var_02[1],0);
}
//Function Number: 45
idle()
{
self endon("end_idle");
for(;;)
{
var_00 = randomint(2) == 0 && 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);
}
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
func_1FF1(param_00)
{
[[ self.animarrayfuncs["exposed"][param_00] ]]();
}
//Function Number: 50
func_1FF2(param_00)
{
if(self.a.var_911 == param_00)
{
set_anim_array(param_00);
return;
}
self setflaggedanimknoballrestart("changeStance",animscripts/utility::animarray("stance_change"),%body);
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::getnodeorigin();
var_05 = var_03 + self.hideyawoffset;
self orientmode("face angle",var_05);
self animmode("normal");
thread animscripts/shared::movetooriginovertime(var_04,param_01);
self setflaggedanimknoballrestart("coveranim",param_00,%body,1,param_01);
animscripts/notetracks::donotetracksfortime(param_02,"coveranim");
while(animscripts/utility::absangleclamp180(self.angles[1] - var_05) > 1)
{
animscripts/notetracks::donotetracksfortime(0.1,"coveranim");
}
self animmode("zonly_physics");
if(self.var_1FC6 == "left")
{
self.a.special = "cover_left";
return;
}
self.a.special = "cover_right";
}
//Function Number: 52
func_1FF7()
{
self endon("killanimscript");
wait 0.05;
}
//Function Number: 53
set_standing_animarray_aiming()
{
if(!isdefined(self.a.array))
{
}
self.a.array["add_aim_up"] = %exposed_aim_8;
self.a.array["add_aim_down"] = %exposed_aim_2;
self.a.array["add_aim_left"] = %exposed_aim_4;
self.a.array["add_aim_right"] = %exposed_aim_6;
self.a.array["add_turn_aim_up"] = %exposed_turn_aim_8;
self.a.array["add_turn_aim_down"] = %exposed_turn_aim_2;
self.a.array["add_turn_aim_left"] = %exposed_turn_aim_4;
self.a.array["add_turn_aim_right"] = %exposed_turn_aim_6;
self.a.array["straight_level"] = %exposed_aim_5;
if(self.a.var_899 == "lean")
{
var_00 = self.a.array["lean_fire"];
var_01 = self.a.array["lean_single"];
self.a.array["fire"] = var_00;
self.a.array["single"] = animscripts/utility::array(var_01);
self.a.array["semi2"] = var_01;
self.a.array["semi3"] = var_01;
self.a.array["semi4"] = var_01;
self.a.array["semi5"] = var_01;
self.a.array["burst2"] = var_00;
self.a.array["burst3"] = var_00;
self.a.array["burst4"] = var_00;
self.a.array["burst5"] = var_00;
self.a.array["burst6"] = var_00;
}
else
{
self.a.array["fire"] = %exposed_shoot_auto_v2;
self.a.array["semi2"] = %exposed_shoot_semi2;
self.a.array["semi3"] = %exposed_shoot_semi3;
self.a.array["semi4"] = %exposed_shoot_semi4;
self.a.array["semi5"] = %exposed_shoot_semi5;
if(animscripts/utility::weapon_pump_action_shotgun())
{
self.a.array["single"] = animscripts/utility::array(%shotgun_stand_fire_1a);
}
else
{
self.a.array["single"] = animscripts/utility::array(%exposed_shoot_semi1);
}
self.a.array["burst2"] = %exposed_shoot_burst3;
self.a.array["burst3"] = %exposed_shoot_burst3;
self.a.array["burst4"] = %exposed_shoot_burst4;
self.a.array["burst5"] = %exposed_shoot_burst5;
self.a.array["burst6"] = %exposed_shoot_burst6;
}
self.a.array["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
}
//Function Number: 54
set_crouching_animarray_aiming()
{
if(!isdefined(self.a.array))
{
}
if(self.a.var_899 == "over")
{
self.a.array["add_aim_up"] = %covercrouch_aim8_add;
self.a.array["add_aim_down"] = %covercrouch_aim2_add;
self.a.array["add_aim_left"] = %covercrouch_aim4_add;
self.a.array["add_aim_right"] = %covercrouch_aim6_add;
self.a.array["straight_level"] = %covercrouch_aim5;
var_00["fire"] = %exposed_shoot_auto_v2;
if(animscripts/utility::weapon_pump_action_shotgun())
{
}
else
{
}
self.a.array["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
return;
}
if(self.a.var_899 == "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"] = %exposed_crouch_shoot_auto_v2;
self.a.array["semi2"] = %exposed_crouch_shoot_semi2;
self.a.array["semi3"] = %exposed_crouch_shoot_semi3;
self.a.array["semi4"] = %exposed_crouch_shoot_semi4;
self.a.array["semi5"] = %exposed_crouch_shoot_semi5;
if(animscripts/utility::weapon_pump_action_shotgun())
{
self.a.array["single"] = animscripts/utility::array(%shotgun_crouch_fire);
}
else
{
self.a.array["single"] = animscripts/utility::array(%exposed_crouch_shoot_semi1);
}
self.a.array["burst2"] = %exposed_crouch_shoot_burst3;
self.a.array["burst3"] = %exposed_crouch_shoot_burst3;
self.a.array["burst4"] = %exposed_crouch_shoot_burst4;
self.a.array["burst5"] = %exposed_crouch_shoot_burst5;
self.a.array["burst6"] = %exposed_crouch_shoot_burst6;
}
self.a.array["add_aim_up"] = %exposed_crouch_aim_8;
self.a.array["add_aim_down"] = %exposed_crouch_aim_2;
self.a.array["add_aim_left"] = %exposed_crouch_aim_4;
self.a.array["add_aim_right"] = %exposed_crouch_aim_6;
self.a.array["add_turn_aim_up"] = %exposed_crouch_turn_aim_8;
self.a.array["add_turn_aim_down"] = %exposed_crouch_turn_aim_2;
self.a.array["add_turn_aim_left"] = %exposed_crouch_turn_aim_4;
self.a.array["add_turn_aim_right"] = %exposed_crouch_turn_aim_6;
self.a.array["straight_level"] = %exposed_crouch_aim_5;
self.a.array["exposed_idle"] = animscripts/utility::array(%exposed_crouch_idle_alert_v1,%exposed_crouch_idle_alert_v2,%exposed_crouch_idle_alert_v3);
}
//Function Number: 55
func_1FFA()
{
self notify("killanimscript");
thread animscripts/combat::main();
}