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

856 lines
15 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_wall.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 35
* Decompile Time: 592 ms
* Timestamp: 10/27/2023 2:18:14 AM
*******************************************************************/
//Function Number: 1
func_0F76(param_00)
{
self endon("killanimscript");
self.var_CAF = self.node;
self.var_F77 = param_00;
if(!isdefined(self.node.turret))
{
animscripts/cover_behavior::func_F71(0);
}
if(param_00 == "crouch")
{
func_0F81("unknown");
self.var_CAF func_0F7F();
}
else
{
func_0F82("unknown");
}
self.a.aimidlethread = undefined;
self orientmode("face angle",self.var_CAF.angles[1]);
if(isdefined(self.weapon) && animscripts/utility::func_F79() && isdefined(self.node) && isdefined(self.node.turretinfo) && canspawnturret())
{
if(param_00 == "crouch")
{
if(func_0F7E(self.weapon))
{
var_01 = "rpd_bipod_crouch";
}
else
{
var_01 = "saw_bipod_crouch";
}
}
else if(func_0F7E(self.weapon))
{
var_01 = "rpd_bipod_stand";
}
else
{
var_01 = "saw_bipod_stand";
}
if(func_0F7E(self.weapon))
{
var_02 = "weapon_rpd_MG_Setup";
}
else
{
var_02 = "weapon_saw_MG_Setup";
}
func_0FA5(var_01,var_02);
}
else if(isdefined(self.node) && isdefined(self.node.turret))
{
func_0FA7();
}
self animmode("normal");
if(param_00 == "crouch" && self.a.pose == "stand")
{
var_03 = animscripts/utility::func_D4D("stand_2_hide");
var_04 = getanimlength(var_03);
self setanimknoballrestart(var_03,%body,1,0.2,animscripts/combat_utility::func_F7B());
thread animscripts/shared::func_F7C(self.var_CAF.origin,var_04);
wait var_04;
self.a.var_CF8 = "hide";
}
else
{
func_0FB2(0.4);
if(distancesquared(self.origin,self.var_CAF.origin) > 1)
{
thread animscripts/shared::func_F7C(self.var_CAF.origin,0.4);
wait 0.2;
if(param_00 == "crouch")
{
self.a.pose = "crouch";
}
wait 0.2;
}
else
{
wait 0.1;
}
}
self animmode("zonly_physics");
if(param_00 == "crouch")
{
if(self.a.pose == "prone")
{
animscripts/utility::func_F7D(1);
}
self.a.pose = "crouch";
}
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand";
}
else
{
self.a.var_D19 = "cover_crouch";
}
var_05 = spawnstruct();
if(!self.fixednode)
{
var_05.var_F37 = ::animscripts/cover_behavior::func_F37;
}
var_05.var_F54 = ::func_0F52;
var_05.var_F55 = ::func_0F83;
var_05.var_7A8 = ::func_07A8;
var_05.var_F57 = ::func_0F57;
var_05.idle = ::idle;
var_05.var_F5B = ::func_0F5B;
var_05.var_73C = ::func_0F61;
var_05.var_F63 = ::func_0F9E;
var_05.var_F64 = ::func_0F64;
animscripts/cover_behavior::main(var_05);
}
//Function Number: 2
func_0F7E(param_00)
{
return getsubstr(param_00,0,3) == "rpd" && param_00.size == 3 || param_00[3] == "_";
}
//Function Number: 3
func_0F7F()
{
if(isdefined(self.var_F80))
{
return;
}
var_00 = (0,0,42);
var_01 = anglestoforward(self.angles);
self.var_F80 = sighttracepassed(self.origin + var_00,self.origin + var_00 + var_01 * 64,0,undefined);
}
//Function Number: 4
func_0F81(param_00)
{
self setdefaultaimlimits(self.var_CAF);
func_0FA9(param_00);
}
//Function Number: 5
func_0F82(param_00)
{
self setdefaultaimlimits(self.var_CAF);
func_0FAE(param_00);
}
//Function Number: 6
func_0F52()
{
animscripts/combat_utility::func_F54(2,animscripts/utility::func_D4D("reload"));
return 1;
}
//Function Number: 7
func_0F83()
{
self.keepclaimednodeifvalid = 1;
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
{
if(func_0F8B())
{
return 1;
}
}
if(!func_0F98())
{
return 0;
}
func_0F88();
animscripts/combat_utility::func_F85();
if(isdefined(self.var_CB1))
{
var_00 = lengthsquared(self.origin - self.var_CB1);
if(animscripts/utility::func_BB6() && var_00 < squared(512) || self.a.rockets < 1)
{
if(self.a.pose == "stand")
{
animscripts/shared::func_F87(%rpg_stand_throw);
}
else
{
animscripts/shared::func_F87(%rpg_crouch_throw);
}
}
}
func_0F9C();
self.var_CAC = undefined;
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 8
func_0F88()
{
self endon("return_to_cover");
maps\_gameskill::didsomethingotherthanshooting();
for(;;)
{
if(isdefined(self.var_CDC))
{
break;
}
if(!isdefined(self.var_CB1))
{
self waittill("do_slow_things");
waittillframeend;
if(isdefined(self.var_CB1))
{
continue;
}
break;
}
if(!self.bulletsinclip)
{
break;
}
if(self.var_F77 == "crouch" && func_0FB4())
{
break;
}
func_0F8A();
self clearanim(%add_fire,0.2);
}
}
//Function Number: 9
func_0F8A()
{
if(self.var_F77 == "crouch")
{
thread func_0FB3();
}
thread animscripts/combat_utility::aimidlethread();
animscripts/combat_utility::func_F06();
}
//Function Number: 10
func_0F8B()
{
if(!animscripts/utility::func_F8C())
{
return 0;
}
var_00 = "rambo";
if(randomint(10) < 2)
{
var_00 = "rambo_fail";
}
if(!animscripts/utility::func_F8D(var_00))
{
return 0;
}
if(self.var_F77 == "crouch" && !self.var_CAF.var_F80)
{
return 0;
}
var_01 = func_0FB7(self.var_CAF.origin + animscripts/utility::func_F8E(self.var_CAF));
if(var_01 > 15)
{
return 0;
}
var_02 = anglestoforward(self.angles);
var_03 = self.origin + var_02 * -16;
if(!self maymovetopoint(var_03))
{
return 0;
}
self.var_CFD = gettime();
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self.isrambo = 1;
self.a.var_F3E = "rambo";
self.var_CDD = 1;
thread animscripts/shared::func_F90(0);
var_04 = animscripts/utility::func_CA8(var_00);
self setflaggedanimknoballrestart("rambo",var_04,%body,1,0.2,1);
animscripts/shared::donotetracks("rambo");
self notify("rambo_aim_end");
self.var_CDD = 0;
self.keepclaimednodeifvalid = 0;
self.var_F91 = gettime();
self.var_CDD = 0;
self.isrambo = undefined;
return 1;
}
//Function Number: 11
idle()
{
self endon("end_idle");
for(;;)
{
var_00 = randomint(2) == 0 && animscripts/utility::func_F8D("hide_idle_twitch");
if(var_00)
{
var_01 = animscripts/utility::func_CA8("hide_idle_twitch");
}
else
{
var_01 = animscripts/utility::func_D4D("hide_idle");
}
func_0F92(var_01,var_00);
}
}
//Function Number: 12
func_0F5B()
{
if(!animscripts/utility::func_F8D("hide_idle_flinch"))
{
return 0;
}
var_00 = anglestoforward(self.angles);
var_01 = self.origin + var_00 * -16;
if(!self maymovetopoint(var_01))
{
return 0;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
var_02 = animscripts/utility::func_CA8("hide_idle_flinch");
func_0F92(var_02,1);
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 13
func_0F92(param_00,param_01)
{
if(param_01)
{
self setflaggedanimknoballrestart("idle",param_00,%body,1,0.25,1);
}
else
{
self setflaggedanimknoball("idle",param_00,%body,1,0.25,1);
}
self.a.var_CF8 = "hide";
animscripts/shared::donotetracks("idle");
}
//Function Number: 14
func_07A8(param_00)
{
if(!isdefined(self.a.array["hide_to_look"]))
{
return 0;
}
if(!func_0F94())
{
return 0;
}
animscripts/shared::func_F93(animscripts/utility::func_D4D("look_idle"),param_00);
var_01 = undefined;
if(animscripts/utility::func_F4C())
{
var_01 = animscripts/utility::func_D4D("look_to_hide_fast");
}
else
{
var_01 = animscripts/utility::func_D4D("look_to_hide");
}
self setflaggedanimknoballrestart("looking_end",var_01,%body,1,0.1);
animscripts/shared::donotetracks("looking_end");
return 1;
}
//Function Number: 15
func_0F94()
{
if(isdefined(self.var_CAF.var_F95))
{
return 0;
}
self setflaggedanimknoball("looking_start",animscripts/utility::func_D4D("hide_to_look"),%body,1,0.2);
animscripts/shared::donotetracks("looking_start");
return 1;
}
//Function Number: 16
func_0F57()
{
self setflaggedanimknoballrestart("look",animscripts/utility::func_CA8("look"),%body,1,0.1);
animscripts/shared::donotetracks("look");
return 1;
}
//Function Number: 17
func_0F96()
{
if(self.a.var_CF8 == "left" || self.a.var_CF8 == "right" || self.a.var_CF8 == "over")
{
return 1;
}
return animscripts/combat_utility::func_F97();
}
//Function Number: 18
func_0F98()
{
var_00 = func_0FB5();
var_01 = 0.1;
var_02 = animscripts/utility::func_D4D("hide_2_" + var_00);
if(!self maymovetopoint(animscripts/utility::func_F99(var_02)))
{
return 0;
}
if(self.script == "cover_crouch" && var_00 == "lean")
{
self.var_CAC = 1;
}
if(self.var_F77 == "crouch")
{
func_0F81(var_00);
}
else
{
func_0F82(var_00);
}
self.a.var_D19 = "none";
self.var_D4B = undefined;
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand_aim";
}
else
{
self.a.var_D19 = "cover_crouch_aim";
}
self.var_CDD = 1;
self notify("done_changing_cover_pos");
self animmode("zonly_physics");
var_03 = func_0F96();
self setflaggedanimknoballrestart("pop_up",var_02,%body,1,0.1,var_03);
thread func_0F9A("pop_up");
if(animhasnotetrack(var_02,"start_aim"))
{
self waittillmatch("start_aim","pop_up");
var_01 = getanimlength(var_02) / var_03 * 1 - self getanimtime(var_02);
}
else
{
self waittillmatch("end","pop_up");
var_01 = 0.1;
}
self clearanim(var_02,var_01 + 0.05);
self.a.var_CF8 = var_00;
self.a.var_F3E = var_00;
func_0F9B(var_01);
thread animscripts/track::func_CA9();
wait var_01;
if(animscripts/combat_utility::issniper())
{
thread animscripts/shoot_behavior::func_D0C();
}
self.var_CDD = 0;
self.var_CFD = gettime();
self notify("stop_popup_donotetracks");
return 1;
}
//Function Number: 19
func_0F9A(param_00)
{
self endon("killanimscript");
self endon("stop_popup_donotetracks");
animscripts/shared::donotetracks(param_00);
}
//Function Number: 20
func_0F9B(param_00)
{
if(self.a.var_CF8 == "left" || self.a.var_CF8 == "right")
{
var_01 = "crouch";
}
else
{
var_01 = self.a.var_CF8;
}
self setanimknoball(animscripts/utility::func_D4D(var_01 + "_aim"),%body,1,param_00);
if(var_01 == "crouch")
{
self setanimlimited(%covercrouch_aim2_add,1,0);
self setanimlimited(%covercrouch_aim4_add,1,0);
self setanimlimited(%covercrouch_aim6_add,1,0);
self setanimlimited(%covercrouch_aim8_add,1,0);
return;
}
if(var_01 == "stand")
{
self setanimlimited(%exposed_aim_2,1,0);
self setanimlimited(%exposed_aim_4,1,0);
self setanimlimited(%exposed_aim_6,1,0);
self setanimlimited(%exposed_aim_8,1,0);
return;
}
if(var_01 == "lean")
{
self setanimlimited(%exposed_aim_2,1,0);
self setanimlimited(%exposed_aim_4,1,0);
self setanimlimited(%exposed_aim_6,1,0);
self setanimlimited(%exposed_aim_8,1,0);
return;
}
if(var_01 == "over")
{
self setanimlimited(%coverstandaim_aim2_add,1,0);
self setanimlimited(%coverstandaim_aim4_add,1,0);
self setanimlimited(%coverstandaim_aim6_add,1,0);
self setanimlimited(%coverstandaim_aim8_add,1,0);
return;
}
}
//Function Number: 21
func_0F9C()
{
self notify("return_to_cover");
self.var_CDD = 1;
self notify("done_changing_cover_pos");
animscripts/combat_utility::func_F9D();
var_00 = func_0F96();
self setflaggedanimknoball("go_to_hide",animscripts/utility::func_D4D(self.a.var_CF8 + "_2_hide"),%body,1,0.2,var_00);
self clearanim(%exposed_modern,0.2);
animscripts/shared::donotetracks("go_to_hide");
self.a.var_CF8 = "hide";
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand";
}
else
{
self.a.var_D19 = "cover_crouch";
}
self.var_CDD = 0;
}
//Function Number: 22
func_0F9E(param_00)
{
return func_0F61(param_00,1);
}
//Function Number: 23
func_0F61(param_00,param_01)
{
if(isdefined(self.dontevershoot) || isdefined(param_00.var_FA0))
{
return 0;
}
var_02 = undefined;
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
{
var_02 = animscripts/utility::func_CA8("grenade_rambo");
}
else if(isdefined(param_01) && param_01)
{
var_02 = animscripts/utility::func_CA8("grenade_safe");
}
else
{
var_02 = animscripts/utility::func_CA8("grenade_exposed");
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
var_03 = animscripts/combat_utility::func_FA1(param_00,var_02);
self.keepclaimednodeifvalid = 0;
return var_03;
}
//Function Number: 24
func_0F64()
{
if(!animscripts/utility::func_F8D("blind_fire"))
{
return 0;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self setflaggedanimknoballrestart("blindfire",animscripts/utility::func_CA8("blind_fire"),%body,1,0.2,1);
animscripts/shared::donotetracks("blindfire");
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 25
func_0FA2(param_00,param_01,param_02)
{
var_03 = spawnturret("misc_turret",param_00.origin,param_01);
var_03.angles = param_00.angles;
var_03.var_FA3 = self;
var_03 setmodel(param_02);
var_03 makeusable();
var_03 setdefaultdroppitch(0);
if(isdefined(param_00.leftarc))
{
var_03.leftarc = param_00.leftarc;
}
if(isdefined(param_00.rightarc))
{
var_03.rightarc = param_00.rightarc;
}
if(isdefined(param_00.toparc))
{
var_03.toparc = param_00.toparc;
}
if(isdefined(param_00.bottomarc))
{
var_03.bottomarc = param_00.bottomarc;
}
return var_03;
}
//Function Number: 26
func_0FA4(param_00)
{
self endon("death");
self endon("being_used");
wait 0.1;
if(isdefined(param_00))
{
param_00 notify("turret_use_failed");
}
self delete();
}
//Function Number: 27
func_0FA5(param_00,param_01)
{
var_02 = func_0FA2(self.node.turretinfo,param_00,param_01);
if(self useturret(var_02))
{
var_02 thread func_0FA4(self);
if(isdefined(self.var_FA6))
{
thread [[ self.var_FA6 ]](var_02);
}
self waittill("turret_use_failed");
return;
}
var_02 delete();
}
//Function Number: 28
func_0FA7()
{
var_00 = self.node.turret;
if(!var_00.issetup)
{
return;
}
thread maps\_mg_penetration::gunner_think(var_00);
self waittill("continue_cover_script");
}
//Function Number: 29
func_0FA9(param_00)
{
var_01 = [];
if(animscripts/utility::func_C97())
{
if(var_01 == "lean" || var_01 == "stand")
{
}
else
{
}
}
else
{
}
if(isdefined(level.ramboanims))
{
}
self.a.array = var_7B;
}
//Function Number: 30
func_0FAE(param_00)
{
var_01 = [];
if(var_01 == "over")
{
}
else if(animscripts/utility::func_C97())
{
}
else
{
}
if(isdefined(level.ramboanims))
{
}
self.a.array = var_7B;
}
//Function Number: 31
func_0FB2(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0.1;
}
self setanimknoballrestart(animscripts/utility::func_D4D("hide_idle"),%body,1,param_00);
self.a.var_CF8 = "hide";
}
//Function Number: 32
func_0FB3()
{
self endon("killanimscript");
self notify("newAngleRangeCheck");
self endon("newAngleRangeCheck");
self endon("return_to_cover");
for(;;)
{
if(func_0FB4())
{
break;
}
wait 0.1;
}
self notify("stopShooting");
}
//Function Number: 33
func_0FB4()
{
if(self.var_F77 != "crouch")
{
return 0;
}
var_00 = func_0FB7(self geteye());
if(self.a.var_CF8 == "lean")
{
return var_00 < 10;
}
return var_00 > 45;
}
//Function Number: 34
func_0FB5()
{
var_00 = [];
if(self.var_F77 == "stand")
{
var_00 = self.var_CAF getvalidcoverpeekouts();
}
else
{
var_01 = func_0FB7(self.var_CAF.origin + animscripts/utility::func_F8E(self.var_CAF));
if(var_01 > 30)
{
return "lean";
}
if(var_01 > 15 || !self.var_CAF.var_F80)
{
return "stand";
}
var_7B = self.var_CAF getvalidcoverpeekouts();
var_7B[var_7B.size] = "crouch";
}
return animscripts/combat_utility::func_FB6(var_7B);
}
//Function Number: 35
func_0FB7(param_00)
{
var_01 = animscripts/utility::func_FB8();
return angleclamp180(vectortoangles(var_01 - param_00)[0]);
}