Files
IL-GSC/GHOSTS/PC/SP/animscripts/corner.gsc
2023-10-27 03:49:01 -04:00

1678 lines
34 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\corner.gsc
* Game: Call of Duty: Ghosts
* Platform: PC
* Function Count: 60
* Decompile Time: 1017 ms
* Timestamp: 10/27/2023 1:23:40 AM
*******************************************************************/
//Function Number: 1
func_1F52(param_00,param_01)
{
self endon("killanimscript");
self.animarrayfuncs["exposed"]["stand"] = ::func_6F9B;
self.animarrayfuncs["exposed"]["crouch"] = ::func_6E69;
self.var_1FCA = self.node;
self.cornerdirection = param_00;
self.a.cornermode = "unknown";
self.a.aimidlethread = undefined;
animscripts/cover_behavior::func_84C1(param_01);
func_6E66();
self.isshooting = 0;
self.var_8216 = 0;
self.var_1F53 = 0;
animscripts/track::setanimaimweight(0);
self.var_4030 = 0;
var_02 = spawnstruct();
if(!self.fixednode)
{
var_02.var_54BE = ::animscripts/cover_behavior::func_54BE;
}
var_02.mainloopstart = ::mainloopstart;
var_02.reload = ::cornerreload;
var_02.leavecoverandshoot = ::func_7BEC;
var_02.look = ::lookforenemy;
var_02.var_31EF = ::func_31EF;
var_02.var_43C6 = ::func_43C6;
var_02.grenade = ::func_8406;
var_02.var_3DB1 = ::func_8407;
var_02.blindfire = ::blindfire;
animscripts/cover_behavior::func_4FDD(var_02);
}
//Function Number: 2
end_script_corner()
{
self.var_7BED = undefined;
self.a.var_4D3C = undefined;
}
//Function Number: 3
func_6E66()
{
if(self.a.var_60B1 == "crouch")
{
func_6E31("crouch");
}
if(self.a.var_60B1 == "stand")
{
func_6E31("stand");
}
animscripts/utility::exitpronewrapper(1);
self.a.var_60B1 = "crouch";
func_6E31("crouch");
}
//Function Number: 4
func_74A2()
{
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.var_62FD) && self.a.var_60B1 == "stand")
{
return 0;
}
self.a.prevattack = undefined;
return 1;
}
return 0;
}
//Function Number: 5
mainloopstart()
{
var_00 = "stand";
if(self.a.var_60B1 == "crouch")
{
var_00 = "crouch";
if(self.var_1FCA doesnodeallowstance("stand"))
{
if(!self.var_1FCA doesnodeallowstance("crouch") || func_74A2())
{
var_00 = "stand";
}
}
}
else if(self.var_1FCA doesnodeallowstance("crouch"))
{
if(!self.var_1FCA doesnodeallowstance("stand") || func_74A2())
{
var_00 = "crouch";
}
}
if(self.var_4030)
{
func_8272(var_00);
}
if(self.a.var_60B1 == var_00)
{
if(isdefined(self.cover) && isdefined(self.cover.var_420D) && self.cover.var_420D == "back")
{
var_01 = animscripts/utility::animarray("alert_idle_back");
}
else
{
var_01 = animscripts/utility::animarray("alert_idle");
}
gotocover(var_01,0.3,0.4);
}
else
{
var_02 = animscripts/utility::animarray("stance_change");
gotocover(var_02,0.3,getanimlength(var_02));
func_6E31(var_00);
}
self.var_4030 = 1;
}
//Function Number: 6
func_61B2()
{
wait(2);
for(;;)
{
func_61B3();
wait(0.05);
}
}
//Function Number: 7
func_19F8(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::func_4917(param_01) && var_02 > 14)
{
return 0;
}
if(animscripts/utility::func_491A(param_01) && var_02 < -12)
{
return 0;
}
return 1;
}
//Function Number: 8
func_7446()
{
if(!isdefined(self.var_7445))
{
return 0;
}
var_00 = self.var_1FCA animscripts/utility::getyawtoorigin(self.var_7445);
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
func_3A61(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.var_60B1 == "crouch" && var_03 > self.leftaimlimit && self.rightaimlimit > var_03)
{
var_04 = param_00 getvalidcoverpeekouts();
}
if(self.cornerdirection == "up")
{
if(animscripts/utility::func_4965())
{
var_05 = 0;
if(isdefined(param_01))
{
var_06 = anglestoup(self.angles);
var_05 = animscripts/combat_utility::func_3B8F(param_01,self geteye() + (var_06[0] * 12,var_06[1] * 12,var_06[2] * 12));
}
if(canlean(var_05,-5,80))
{
var_02 = func_74B6();
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 = func_74B6();
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 = func_74B6();
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::func_3BB6(var_04);
}
//Function Number: 10
getbeststepoutpos()
{
var_00 = 0;
if(animscripts/utility::cansuppressenemy())
{
var_00 = self.var_1FCA animscripts/utility::getyawtoorigin(animscripts/utility::func_3A97());
}
else if(self.doingambush && isdefined(self.var_7445))
{
var_00 = self.var_1FCA animscripts/utility::getyawtoorigin(self.var_7445);
}
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::func_4965() && 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::func_3A23(var_02),var_03))
{
return 0;
}
animscripts/combat_utility::func_2D4B();
func_7C5A(0.3);
var_05 = self.a.var_60B1;
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 func_7AC0(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.var_60B1 != var_05)
{
func_6E31(self.a.var_60B1);
}
thread func_1AD9(undefined,1,0.3);
return 1;
}
//Function Number: 12
canlean(param_00,param_01,param_02)
{
if(self.a.var_55A8)
{
return 0;
}
return param_01 <= param_00 && param_00 <= param_02;
}
//Function Number: 13
func_74B6()
{
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::func_2986(param_00);
}
//Function Number: 15
func_7AC0(param_00,param_01,param_02)
{
self.var_1F53 = 1;
if(self.a.cornermode == "lean")
{
self.a.var_4D3C = 1;
}
else
{
self.a.var_4D3C = undefined;
}
func_6FD7(param_00,param_01,param_02);
}
//Function Number: 16
func_1AD9(param_00,param_01,param_02)
{
if(self.a.cornermode == "lean")
{
self.a.var_4D3C = 1;
}
else
{
self.a.var_4D3C = undefined;
}
func_6FD7(param_00,param_01,param_02);
}
//Function Number: 17
func_7C5A(param_00)
{
self.var_1F53 = 0;
self clearanim(%add_fire,param_00);
animscripts/track::setanimaimweight(0,param_00);
self.facialidx = undefined;
self clearanim(%head,0.2);
}
//Function Number: 18
func_6FD7(param_00,param_01,param_02)
{
self.var_7966 = 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.var_ED8["lean_aim_straight"]))
{
var_03 = self.a.var_ED8["lean_aim_straight"];
}
thread animscripts/combat_utility::aimidlethread();
if(isdefined(self.a.var_4D3C))
{
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);
}
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);
}
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
func_7BEB()
{
if(self.a.cornermode == "over")
{
return 1;
}
return animscripts/combat_utility::func_6332();
}
//Function Number: 20
func_7BEA()
{
self.a.cornermode = "alert";
if(self.goalradius < 64)
{
self.goalradius = 64;
}
func_7017();
if(self.a.var_60B1 == "stand")
{
self.abanglecutoff = 38;
}
else
{
self.abanglecutoff = 31;
}
var_00 = self.a.var_60B1;
func_6E31(var_00);
animscripts/combat::func_6E7C();
var_01 = "none";
if(animscripts/utility::hasenemysightpos())
{
var_01 = func_3A61(self.var_1FCA,animscripts/utility::func_3A97());
}
else
{
var_01 = func_3A61(self.var_1FCA);
}
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::func_6E7C(self.var_1FCA);
}
if(var_01 == "A" || var_01 == "B")
{
self.a.var_78D0 = "cover_" + self.cornerdirection + "_" + self.a.var_60B1 + "_" + var_01;
}
else if(var_01 == "over")
{
self.a.var_78D0 = "cover_crouch_aim";
}
else
{
self.a.var_78D0 = "none";
}
self.keepclaimednodeifvalid = 1;
var_04 = 0;
self.changingcoverpos = 1;
self notify("done_changing_cover_pos");
var_05 = func_7BEB();
self.pushable = 0;
self setflaggedanimknoballrestart("stepout",var_03,%root,1,0.2,var_05);
corner_playcornerfacialanim(var_03);
thread donotetrackswithendon("stepout");
var_04 = animhasnotetrack(var_03,"start_aim");
if(var_04)
{
self.var_7BED = 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::func_1DE9() && self.cornerdirection == "right")
{
self.a.var_78D0 = "corner_right_martyrdom";
}
func_6E32(var_00);
var_06 = var_01 == "over" || animscripts/utility::func_4965();
func_7AC0(undefined,var_06,0.3);
thread animscripts/track::trackshootentorpos();
if(var_04)
{
self waittillmatch("end","stepout");
self.var_7BED = undefined;
}
func_1AD9(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
func_7BEC()
{
self.keepclaimednodeifvalid = 1;
if(isdefined(self.var_62FD) && randomfloat(1) < self.var_62FD)
{
if(func_62F8())
{
return 1;
}
}
if(!func_7BEA())
{
return 0;
}
func_7430();
if(isdefined(self.var_7445))
{
var_00 = lengthsquared(self.origin - self.var_7445);
if(animscripts/utility::func_87FA() && animscripts/utility::func_74AE(var_00))
{
if(self.a.var_60B1 == "stand")
{
animscripts/shared::func_80AC(animscripts/utility::lookupanim("combat","drop_rpg_stand"));
}
else
{
animscripts/shared::func_80AC(animscripts/utility::lookupanim("combat","drop_rpg_crouch"));
}
thread func_6988();
}
}
func_6689();
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 22
func_4033(param_00)
{
if(!isdefined(self.var_4C90))
{
return 1;
}
return gettime() - self.var_4C90 > param_00 * 1000;
}
//Function Number: 23
func_62F8()
{
if(!animscripts/utility::hasenemysightpos())
{
return 0;
}
var_00 = 0;
var_01 = 90;
var_02 = self.var_1FCA animscripts/utility::getyawtoorigin(animscripts/utility::func_3A97());
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();
func_7017();
self.keepclaimednodeifvalid = 1;
self.var_4940 = 1;
self.a.prevattack = "rambo";
self.changingcoverpos = 1;
thread animscripts/shared::func_62FA(var_00);
self setflaggedanimknoballrestart("rambo",var_04,%body,1,0,1);
corner_playcornerfacialanim(var_04);
animscripts/shared::func_2986("rambo");
self notify("rambo_aim_end");
self.changingcoverpos = 0;
self.keepclaimednodeifvalid = 0;
self.var_4C90 = gettime();
self.changingcoverpos = 0;
self.var_4940 = undefined;
return 1;
}
//Function Number: 24
func_7430()
{
maps\_gameskill::didsomethingotherthanshooting();
for(;;)
{
for(;;)
{
if(isdefined(self.shouldreturntocover))
{
break;
}
if(!isdefined(self.var_7445))
{
self waittill("do_slow_things");
waittillframeend;
if(isdefined(self.var_7445))
{
continue;
}
break;
}
if(!self.bulletsinclip)
{
break;
}
if(func_7446())
{
if(!changestepoutpos())
{
if(getbeststepoutpos() == self.a.cornermode)
{
break;
}
func_7450(0.2);
continue;
}
if(func_7446())
{
break;
}
continue;
}
func_744E(1);
self clearanim(%add_fire,0.2);
}
if(canreturntocover(self.a.cornermode != "lean"))
{
break;
}
if(func_7446() && changestepoutpos())
{
continue;
}
func_7450(0.2);
}
}
//Function Number: 25
func_7450(param_00)
{
thread func_5731(param_00);
var_01 = gettime();
func_744E(0);
self notify("stopNotifyStopShootingAfterTime");
var_02 = gettime() - var_01 / 1000;
if(var_02 < param_00)
{
wait(param_00 - var_02);
}
}
//Function Number: 26
func_5731(param_00)
{
self endon("killanimscript");
self endon("stopNotifyStopShootingAfterTime");
wait(param_00);
self notify("stopShooting");
}
//Function Number: 27
func_744E(param_00)
{
self endon("return_to_cover");
if(param_00)
{
thread anglerangethread();
}
thread animscripts/combat_utility::aimidlethread();
animscripts/combat_utility::func_744D();
}
//Function Number: 28
anglerangethread()
{
self endon("killanimscript");
self notify("newAngleRangeCheck");
self endon("newAngleRangeCheck");
self endon("take_cover_at_corner");
for(;;)
{
if(func_7446())
{
break;
}
wait(0.1);
}
self notify("stopShooting");
}
//Function Number: 29
func_7524()
{
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.var_1FCA.origin,var_01);
}
return self maymovetopoint(self.var_1FCA.origin,var_02);
}
//Function Number: 31
func_6689()
{
animscripts/combat_utility::func_2D52();
var_00 = animscripts/utility::func_4979();
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);
func_7C5A(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 = func_7BEB();
if(animscripts/utility::func_4965())
{
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::func_2986("hide");
if(var_03)
{
animscripts/weaponlist::refillclip();
}
self.changingcoverpos = 0;
if(self.cornerdirection == "up")
{
self.a.var_78D0 = "cover_up";
}
else if(self.cornerdirection == "left")
{
self.a.var_78D0 = "cover_left";
}
else
{
self.a.var_78D0 = "cover_right";
}
self.keepclaimednodeifvalid = 0;
self clearanim(var_02,0.2);
}
//Function Number: 32
blindfire()
{
if(!animscripts/utility::animarrayanyexist("blind_fire"))
{
return 0;
}
func_7017();
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::func_2986("blindfire");
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 33
func_4E20(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
func_8407(param_00)
{
return func_8406(param_00,1);
}
//Function Number: 35
func_8406(param_00,param_01)
{
if(!self maymovetopoint(getpredictedpathmidpoint()))
{
return 0;
}
if(isdefined(self.var_29AA) || isdefined(param_00.var_29A1))
{
return 0;
}
var_02 = undefined;
if(isdefined(self.var_62FD) && randomfloat(1) < self.var_62FD)
{
if(isdefined(self.a.var_ED8["grenade_rambo"]))
{
var_02 = animscripts/utility::animarray("grenade_rambo");
}
}
if(!isdefined(var_02))
{
if(isdefined(param_01) && param_01)
{
if(!isdefined(self.a.var_ED8["grenade_safe"]))
{
return 0;
}
var_02 = animscripts/utility::animarray("grenade_safe");
}
else
{
if(!isdefined(self.a.var_ED8["grenade_exposed"]))
{
return 0;
}
var_02 = animscripts/utility::animarray("grenade_exposed");
}
}
func_7017();
self.keepclaimednodeifvalid = 1;
var_03 = animscripts/combat_utility::func_8400(param_00,var_02);
self.keepclaimednodeifvalid = 0;
return var_03;
}
//Function Number: 36
func_61B3()
{
}
//Function Number: 37
lookforenemy(param_00)
{
if(!isdefined(self.a.var_ED8["alert_to_look"]))
{
return 0;
}
func_7017();
self.keepclaimednodeifvalid = 1;
if(!func_5B75())
{
return 0;
}
animscripts/shared::playlookanimation(animscripts/utility::animarray("look_idle"),param_00,::canstoppeeking);
var_01 = undefined;
if(animscripts/utility::func_4979())
{
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::func_2986("looking_end");
func_7017();
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 38
ispeekoutposclear()
{
var_00 = self.var_1FCA.angles;
if(animscripts/utility::func_4965())
{
var_00 = animscripts/utility::gettruenodeangles(self.var_1FCA);
}
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
func_5B75()
{
if(isdefined(self.var_1FCA.var_6B93))
{
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::func_2986("looking_start");
return 1;
}
//Function Number: 40
canstoppeeking()
{
return self maymovetopoint(self.var_1FCA.origin,!self.swimmer);
}
//Function Number: 41
func_31EF()
{
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::func_2986("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::func_3A23(param_00),var_02);
}
if(self.swimmer)
{
return 1;
}
return self maymovetopoint(animscripts/utility::func_3A23(param_01),var_03);
}
//Function Number: 44
getpredictedpathmidpoint(param_00)
{
var_01 = self.var_1FCA.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.var_1FCA.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.var_1FCA.origin + (var_03[0],var_03[1],0);
}
//Function Number: 45
func_43C6()
{
self endon("end_idle");
for(;;)
{
var_00 = randomint(2) == 0 && isdefined(self.a.var_ED8["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");
}
func_6017(var_01,var_00);
}
}
//Function Number: 46
func_3427()
{
if(!animscripts/utility::animarrayanyexist("alert_idle_flinch"))
{
return 0;
}
func_6017(animscripts/utility::animarraypickrandom("alert_idle_flinch"),1);
return 1;
}
//Function Number: 47
func_6017(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::func_2986("idle");
}
//Function Number: 48
func_6E31(param_00)
{
[[ self.animarrayfuncs["hiding"][param_00] ]]();
[[ self.animarrayfuncs["exposed"][param_00] ]]();
}
//Function Number: 49
func_6E32(param_00)
{
[[ self.animarrayfuncs["exposed"][param_00] ]]();
}
//Function Number: 50
func_8272(param_00)
{
if(self.a.var_60B1 == param_00)
{
func_6E31(param_00);
}
var_01 = animscripts/utility::animarray("stance_change");
self setflaggedanimknoballrestart("changeStance",var_01,%body);
corner_playcornerfacialanim(var_01);
func_6E31(param_00);
animscripts/shared::func_2986("changeStance");
wait(0.2);
}
//Function Number: 51
gotocover(param_00,param_01,param_02)
{
var_03 = animscripts/utility::func_3B4A();
var_04 = animscripts/utility::func_3A52();
var_05 = var_03 + self.var_420F;
if(animscripts/utility::func_4965())
{
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::func_54BF(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::func_3B4A();
var_05 = var_03 + self.var_420F;
}
func_7017();
if(self.cornerdirection == "left")
{
self.a.var_78D0 = "cover_left";
}
if(self.cornerdirection == "right")
{
self.a.var_78D0 = "cover_right";
}
self.a.var_78D0 = "cover_up";
}
//Function Number: 52
drawoffset()
{
self endon("killanimscript");
wait(0.05);
}
//Function Number: 53
func_6F9B()
{
if(self.swimmer && isdefined(self.node))
{
func_6FA2();
}
if(!isdefined(self.a.var_ED8))
{
}
var_00 = animscripts/utility::func_4F5D("default_stand");
self.a.var_ED8["add_aim_up"] = var_00["add_aim_up"];
self.a.var_ED8["add_aim_down"] = var_00["add_aim_down"];
self.a.var_ED8["add_aim_left"] = var_00["add_aim_left"];
self.a.var_ED8["add_aim_right"] = var_00["add_aim_right"];
self.a.var_ED8["add_turn_aim_up"] = var_00["add_turn_aim_up"];
self.a.var_ED8["add_turn_aim_down"] = var_00["add_turn_aim_down"];
self.a.var_ED8["add_turn_aim_left"] = var_00["add_turn_aim_left"];
self.a.var_ED8["add_turn_aim_right"] = var_00["add_turn_aim_right"];
self.a.var_ED8["straight_level"] = var_00["straight_level"];
if(self.a.cornermode == "lean")
{
var_01 = self.a.var_ED8["lean_fire"];
var_02 = self.a.var_ED8["lean_single"];
self.a.var_ED8["fire"] = var_01;
self.a.var_ED8["single"] = animscripts/utility::func_ED8(var_02);
self.a.var_ED8["semi2"] = var_02;
self.a.var_ED8["semi3"] = var_02;
self.a.var_ED8["semi4"] = var_02;
self.a.var_ED8["semi5"] = var_02;
self.a.var_ED8["burst2"] = var_01;
self.a.var_ED8["burst3"] = var_01;
self.a.var_ED8["burst4"] = var_01;
self.a.var_ED8["burst5"] = var_01;
self.a.var_ED8["burst6"] = var_01;
}
else
{
self.a.var_ED8["fire"] = var_00["fire_corner"];
self.a.var_ED8["semi2"] = var_00["semi2"];
self.a.var_ED8["semi3"] = var_00["semi3"];
self.a.var_ED8["semi4"] = var_00["semi4"];
self.a.var_ED8["semi5"] = var_00["semi5"];
if(animscripts/utility::func_8D9B())
{
self.a.var_ED8["single"] = animscripts/utility::lookupanim("shotgun_stand","single");
}
else
{
self.a.var_ED8["single"] = var_00["single"];
}
self.a.var_ED8["burst2"] = var_00["burst2"];
self.a.var_ED8["burst3"] = var_00["burst3"];
self.a.var_ED8["burst4"] = var_00["burst4"];
self.a.var_ED8["burst5"] = var_00["burst5"];
self.a.var_ED8["burst6"] = var_00["burst6"];
}
self.a.var_ED8["exposed_idle"] = var_00["exposed_idle"];
}
//Function Number: 54
func_6E69()
{
if(self.swimmer && isdefined(self.node))
{
func_6FA2();
}
if(!isdefined(self.a.var_ED8))
{
}
var_00 = animscripts/utility::func_4F5D("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.var_ED8["add_aim_up"] = animscripts/utility::lookupanim("cover_crouch","add_aim_up");
self.a.var_ED8["add_aim_down"] = animscripts/utility::lookupanim("cover_crouch","add_aim_down");
self.a.var_ED8["add_aim_left"] = animscripts/utility::lookupanim("cover_crouch","add_aim_left");
self.a.var_ED8["add_aim_right"] = animscripts/utility::lookupanim("cover_crouch","add_aim_right");
self.a.var_ED8["straight_level"] = animscripts/utility::lookupanim("cover_crouch","straight_level");
self.a.var_ED8["exposed_idle"] = animscripts/utility::lookupanim("default_stand","exposed_idle");
}
if(self.a.cornermode == "lean")
{
var_04 = self.a.var_ED8["lean_fire"];
var_05 = self.a.var_ED8["lean_single"];
self.a.var_ED8["fire"] = var_04;
self.a.var_ED8["single"] = animscripts/utility::func_ED8(var_05);
self.a.var_ED8["semi2"] = var_05;
self.a.var_ED8["semi3"] = var_05;
self.a.var_ED8["semi4"] = var_05;
self.a.var_ED8["semi5"] = var_05;
self.a.var_ED8["burst2"] = var_04;
self.a.var_ED8["burst3"] = var_04;
self.a.var_ED8["burst4"] = var_04;
self.a.var_ED8["burst5"] = var_04;
self.a.var_ED8["burst6"] = var_04;
}
else
{
self.a.var_ED8["fire"] = var_00["fire"];
self.a.var_ED8["semi2"] = var_00["semi2"];
self.a.var_ED8["semi3"] = var_00["semi3"];
self.a.var_ED8["semi4"] = var_00["semi4"];
self.a.var_ED8["semi5"] = var_00["semi5"];
if(animscripts/utility::func_8D9B())
{
self.a.var_ED8["single"] = animscripts/utility::lookupanim("shotgun_crouch","single");
}
else
{
self.a.var_ED8["single"] = var_00["single"];
}
self.a.var_ED8["burst2"] = var_00["burst2"];
self.a.var_ED8["burst3"] = var_00["burst3"];
self.a.var_ED8["burst4"] = var_00["burst4"];
self.a.var_ED8["burst5"] = var_00["burst5"];
self.a.var_ED8["burst6"] = var_00["burst6"];
}
self.a.var_ED8["add_aim_up"] = var_00["add_aim_up"];
self.a.var_ED8["add_aim_down"] = var_00["add_aim_down"];
self.a.var_ED8["add_aim_left"] = var_00["add_aim_left"];
self.a.var_ED8["add_aim_right"] = var_00["add_aim_right"];
self.a.var_ED8["add_turn_aim_up"] = var_00["add_turn_aim_up"];
self.a.var_ED8["add_turn_aim_down"] = var_00["add_turn_aim_down"];
self.a.var_ED8["add_turn_aim_left"] = var_00["add_turn_aim_left"];
self.a.var_ED8["add_turn_aim_right"] = var_00["add_turn_aim_right"];
self.a.var_ED8["straight_level"] = var_00["straight_level"];
self.a.var_ED8["exposed_idle"] = var_00["exposed_idle"];
}
//Function Number: 55
func_6FA2()
{
if(!isdefined(self.a.var_ED8))
{
}
var_00 = [];
if(self.var_EB9 == "cover_corner_r")
{
var_00 = animscripts/swim::func_3C1D("cover_corner_r");
}
else if(self.var_EB9 == "cover_corner_l")
{
var_00 = animscripts/swim::func_3C1D("cover_corner_l");
}
else if(self.var_EB9 == "cover_u")
{
var_00 = animscripts/swim::func_3C1D("cover_u");
}
else if(self.var_EB9 == "exposed")
{
var_00 = animscripts/swim::func_3C1D("exposed");
}
else
{
}
self.a.var_ED8["add_aim_up"] = var_00["add_aim_up"];
self.a.var_ED8["add_aim_down"] = var_00["add_aim_down"];
self.a.var_ED8["add_aim_left"] = var_00["add_aim_left"];
self.a.var_ED8["add_aim_right"] = var_00["add_aim_right"];
self.a.var_ED8["add_turn_aim_up"] = var_00["add_aim_up"];
self.a.var_ED8["add_turn_aim_down"] = var_00["add_aim_down"];
self.a.var_ED8["add_turn_aim_left"] = var_00["add_aim_left"];
self.a.var_ED8["add_turn_aim_right"] = var_00["add_aim_right"];
self.a.var_ED8["straight_level"] = var_00["straight_level"];
self.a.var_ED8["fire"] = var_00["add_aim_straight"];
self.a.var_ED8["semi2"] = var_00["add_aim_straight"];
self.a.var_ED8["semi3"] = var_00["add_aim_straight"];
self.a.var_ED8["semi4"] = var_00["add_aim_straight"];
self.a.var_ED8["semi5"] = var_00["add_aim_straight"];
self.a.var_ED8["single"] = animscripts/utility::func_ED8(var_00["add_aim_straight"]);
self.a.var_ED8["burst2"] = var_00["add_aim_straight"];
self.a.var_ED8["burst3"] = var_00["add_aim_straight"];
self.a.var_ED8["burst4"] = var_00["add_aim_straight"];
self.a.var_ED8["burst5"] = var_00["add_aim_straight"];
self.a.var_ED8["burst6"] = var_00["add_aim_straight"];
self.a.var_ED8["exposed_idle"] = animscripts/utility::func_ED8(var_00["add_aim_idle"]);
}
//Function Number: 56
func_6988()
{
self notify("killanimscript");
thread animscripts/combat::func_4FDD();
}
//Function Number: 57
func_7017()
{
if(self.swimmer)
{
self animmode("nogravity");
}
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::func_6004(param_00,var_01,self.facialidx);
}
//Function Number: 59
corner_playaimfacialanim(param_00)
{
self.facialidx = animscripts/face::func_6004(param_00,"aim",self.facialidx);
}
//Function Number: 60
corner_clearfacialanim()
{
self.facialidx = undefined;
self clearanim(%head,0.2);
}