Files
IL-GSC/IW/PC/ALL/scripts/anim/shoot_behavior.gsc
2023-10-27 03:49:01 -04:00

715 lines
12 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\shoot_behavior.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 26
* Decompile Time: 1266 ms
* Timestamp: 10/27/2023 12:01:01 AM
*******************************************************************/
//Function Number: 1
func_4F69(param_00)
{
self endon("killanimscript");
self notify("stop_deciding_how_to_shoot");
self endon("stop_deciding_how_to_shoot");
self endon("death");
scripts\sp\_gameskill::func_E259();
self.var_FECA = param_00;
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
self.var_6B92 = 0;
self.var_1006D = undefined;
if(!isdefined(self.var_3C60))
{
self.var_3C60 = 0;
}
var_01 = isdefined(self.var_473C) && self.var_473C.type != "Cover Prone" && self.var_473C.type != "Conceal Prone";
if(var_01)
{
wait(0.05);
}
var_02 = self.var_FE9E;
var_03 = self.var_FECF;
var_04 = self.var_FED7;
if(!isdefined(self.var_8B95))
{
self.var_1491.var_A878 = 1;
scripts\anim\shared::func_12EBD();
}
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
if(var_01 && !self.var_1491.var_2411 || !scripts\anim\utility_common::func_3907())
{
thread func_13A46();
}
thread func_E883();
self.var_1E2B = undefined;
for(;;)
{
if(isdefined(self.var_FED1))
{
if(!isdefined(self.var_10C))
{
self.var_FECF = self.var_FED1;
self.var_FED1 = undefined;
func_13696();
}
else
{
self.var_FED1 = undefined;
}
}
var_05 = undefined;
if(self.var_394 == "none")
{
func_C064();
}
else if(scripts\anim\utility_common::func_1311B())
{
var_05 = func_E778();
}
else if(scripts\anim\utility_common::func_9FCA())
{
var_05 = func_CBE2();
}
else
{
var_05 = func_E501();
}
if(isdefined(self.var_1491.var_1096D))
{
[[ self.var_1491.var_1096D ]]();
}
if(func_3DFB(var_02,self.var_FE9E) || !isdefined(self.var_FE9E) && func_3DFB(var_03,self.var_FECF) || func_3DFB(var_04,self.var_FED7))
{
self notify("shoot_behavior_change");
}
var_02 = self.var_FE9E;
var_03 = self.var_FECF;
var_04 = self.var_FED7;
if(!isdefined(var_05))
{
func_13696();
}
}
}
//Function Number: 2
func_13696()
{
self endon("enemy");
self endon("done_changing_cover_pos");
self endon("weapon_position_change");
self endon("enemy_visible");
if(isdefined(self.var_FE9E))
{
self.var_FE9E endon("death");
self endon("do_slow_things");
wait(0.05);
while(isdefined(self.var_FE9E))
{
self.var_FECF = self.var_FE9E method_815B();
wait(0.05);
}
return;
}
self waittill("do_slow_things");
}
//Function Number: 3
func_C064()
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
self.var_FECA = "normal";
}
//Function Number: 4
func_100A4()
{
return !scripts\anim\utility_common::func_9D4D() && !scripts\anim\utility_common::func_9F4F(self.var_394);
}
//Function Number: 5
func_E503()
{
if(!scripts\anim\utility_common::func_10077())
{
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
if(self.var_FC)
{
self.var_FECA = "ambush";
return "retry";
}
if(!isdefined(self.var_10C))
{
func_8C4D();
return;
}
func_B376();
if((self.var_251 || randomint(5) > 0) && func_100A4())
{
self.var_FECA = "suppress";
}
else
{
self.var_FECA = "ambush";
}
return "retry";
}
func_F83F();
func_F842();
}
//Function Number: 6
func_E504(param_00)
{
if(!param_00)
{
func_8C4D();
return;
}
self.var_FE9E = undefined;
self.var_FECF = scripts\anim\utility::func_7E90();
func_F841();
}
//Function Number: 7
func_E502(param_00)
{
self.var_FED7 = "none";
self.var_FE9E = undefined;
if(!param_00)
{
func_7DB9();
if(func_1009A())
{
self.var_1E2B = undefined;
self notify("return_to_cover");
self.var_1006D = 1;
return;
}
return;
}
self.var_FECF = scripts\anim\utility::func_7E90();
if(func_1009A())
{
self.var_1E2B = undefined;
if(func_100A4())
{
self.var_FECA = "suppress";
}
if(randomint(3) == 0)
{
self notify("return_to_cover");
self.var_1006D = 1;
}
return "retry";
}
}
//Function Number: 8
func_7DB9()
{
if(isdefined(self.var_10C) && self method_805F(self.var_10C))
{
func_F83F();
return;
}
var_00 = self method_80FC();
if(!isdefined(var_00))
{
if(isdefined(self.var_473C))
{
var_00 = self.var_473C.angles;
}
else if(isdefined(self.var_1E2C))
{
var_00 = self.var_1E2C.angles;
}
else if(isdefined(self.var_10C))
{
var_00 = vectortoangles(self lastknownpos(self.var_10C) - self.origin);
}
else
{
var_00 = self.angles;
}
}
var_01 = 1024;
if(isdefined(self.var_10C))
{
var_01 = distance(self.origin,self.var_10C.origin);
}
var_02 = self geteye() + anglestoforward(var_00) * var_01;
if(!isdefined(self.var_FECF) || distancesquared(var_02,self.var_FECF) > 25)
{
self.var_FECF = var_02;
}
}
//Function Number: 9
func_E501()
{
if(self.var_FECA == "normal")
{
func_E503();
}
else
{
if(scripts\anim\utility_common::func_10077())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
func_B376();
if(scripts\anim\utility_common::func_9D4D())
{
func_E26D();
}
var_00 = scripts\anim\utility_common::func_3917();
if(self.var_FECA == "suppress" || self.team == "allies" && !isdefined(self.var_10C) && !var_00)
{
func_E504(var_00);
}
else
{
func_E502(var_00);
}
}
}
//Function Number: 10
func_1009A()
{
if(!isdefined(self.var_1E2B))
{
if(self method_8198())
{
self.var_1E2B = gettime() + randomintrange(10000,-5536);
}
else
{
self.var_1E2B = gettime() + randomintrange(4000,10000);
}
}
return self.var_1E2B < gettime();
}
//Function Number: 11
func_E778()
{
if(!scripts\anim\utility_common::func_10077())
{
func_B376();
func_8C4D();
return;
}
func_F83F();
func_F840("single",0);
var_00 = lengthsquared(self.origin - self.var_FECF);
if(var_00 < squared(512))
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
//Function Number: 12
func_CBE2()
{
if(self.var_FECA == "normal")
{
if(!scripts\anim\utility_common::func_10077())
{
if(!isdefined(self.var_10C))
{
func_8C4D();
return;
}
func_B376();
self.var_FECA = "ambush";
return "retry";
}
func_F83F();
func_F840("single",0);
return;
}
if(scripts\anim\utility_common::func_10077())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
func_B376();
self.var_FE9E = undefined;
self.var_FED7 = "none";
self.var_FECF = scripts\anim\utility::func_7E90();
if(!isdefined(self.var_1E2B))
{
self.var_1E2B = gettime() + randomintrange(4000,8000);
}
if(self.var_1E2B < gettime())
{
self.var_FECA = "normal";
self.var_1E2B = undefined;
return "retry";
}
}
//Function Number: 13
func_B376()
{
if(isdefined(self.var_10C) && !self.var_3C60 && self.script != "combat")
{
if(isai(self.var_10C) && isdefined(self.var_10C.script) && self.var_10C.script == "cover_stand" || self.var_10C.script == "cover_crouch")
{
if(isdefined(self.var_10C.var_1491.var_4727) && self.var_10C.var_1491.var_4727 == "hide")
{
return;
}
}
self.var_46A6 = self.var_10C.origin;
}
}
//Function Number: 14
func_13A46()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
self waittill("suppression");
if(self.var_2D5 > self.var_112CE)
{
if(func_DD7D())
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
}
}
//Function Number: 15
func_DD7D()
{
if(self.var_3C60)
{
return 0;
}
if(!isdefined(self.var_10C) || !self method_805F(self.var_10C))
{
return 1;
}
if(gettime() < self.var_4740 + 800)
{
return 0;
}
if(isplayer(self.var_10C) && self.var_10C.health < self.var_10C.maxhealth * 0.5)
{
if(gettime() < self.var_4740 + 3000)
{
return 0;
}
}
return 1;
}
//Function Number: 16
func_E883()
{
self endon("death");
scripts\common\utility::waittill_any_3("killanimscript","stop_deciding_how_to_shoot");
self.var_1491.var_A878 = 0;
scripts\anim\shared::func_12EBD();
}
//Function Number: 17
func_3DFB(param_00,param_01)
{
if(isdefined(param_00) != isdefined(param_01))
{
return 1;
}
if(!isdefined(param_01))
{
return 0;
}
return param_00 != param_01;
}
//Function Number: 18
func_F83F()
{
self.var_FE9E = self.var_10C;
self.var_FECF = self.var_FE9E method_815B();
}
//Function Number: 19
func_8C4D()
{
self.var_FE9E = undefined;
self.var_FECF = undefined;
self.var_FED7 = "none";
if(self.var_FC)
{
self.var_FECA = "ambush";
}
if(!self.var_3C60)
{
self notify("return_to_cover");
self.var_1006D = 1;
}
}
//Function Number: 20
func_FFC6()
{
return level.var_7683 == 3 && isplayer(self.var_10C);
}
//Function Number: 21
func_F842()
{
if(isdefined(self.var_FE9E.var_10C) && isdefined(self.var_FE9E.var_10C.var_2DC))
{
return func_F840("single",0);
}
if(scripts\anim\utility_common::func_9D4D())
{
return func_F840("single",0);
}
if(scripts\anim\utility_common::func_9F4F(self.var_394))
{
if(scripts\anim\utility_common::func_13C40())
{
return func_F840("single",0);
}
else
{
return func_F840("semi",0);
}
}
if(weaponclass(self.var_394) == "grenade")
{
return func_F840("single",0);
}
if(function_023C(self.var_394) > 0)
{
return func_F840("burst",0);
}
if(isdefined(self.var_A4A3) && self.var_A4A3)
{
return func_F840("full",1);
}
var_00 = distancesquared(self method_815B(),self.var_FECF);
var_01 = weaponclass(self.var_394) == "mg";
if(self.var_251 && var_01)
{
return func_F840("full",0);
}
if(var_00 < -3036)
{
if(isdefined(self.var_FE9E) && isdefined(self.var_FE9E.var_B14F))
{
return func_F840("single",0);
}
else
{
return func_F840("full",0);
}
}
else if(var_00 < 810000 || func_FFC6())
{
if(function_0248(self.var_394) || func_FFF6())
{
return func_F840("semi",1);
}
else
{
return func_F840("burst",1);
}
}
else if(self.var_251 || var_01 || var_00 < 2560000)
{
if(func_FFF6())
{
return func_F840("semi",0);
}
else
{
return func_F840("burst",0);
}
}
return func_F840("single",0);
}
//Function Number: 22
func_F841()
{
var_00 = distancesquared(self method_815B(),self.var_FECF);
if(function_0248(self.var_394))
{
if(var_00 < 2560000)
{
return func_F840("semi",0);
}
return func_F840("single",0);
}
if(weaponclass(self.var_394) == "mg")
{
return func_F840("full",0);
}
if(self.var_251 || var_00 < 2560000)
{
if(func_FFF6())
{
return func_F840("semi",0);
}
else
{
return func_F840("burst",0);
}
}
return func_F840("single",0);
}
//Function Number: 23
func_F840(param_00,param_01)
{
self.var_FED7 = param_00;
self.var_6B92 = param_01;
}
//Function Number: 24
func_FFF6()
{
if(weaponclass(self.var_394) != "rifle")
{
return 0;
}
if(self.team != "allies")
{
return 0;
}
var_00 = scripts\anim\utility_common::func_EA26(int(self.origin[1]),10000) + 2000;
var_01 = int(self.origin[0]) + gettime();
return var_01 % 2 * var_00 > var_00;
}
//Function Number: 25
func_E26D()
{
self.var_103BF = 0;
self.var_103BA = 0;
thread func_103A7();
}
//Function Number: 26
func_103A7()
{
self endon("killanimscript");
self endon("enemy");
self endon("return_to_cover");
self notify("new_glint_thread");
self endon("new_glint_thread");
if(isdefined(self.var_5583) && self.var_5583)
{
return;
}
if(!isdefined(level._effect["sniper_glint"]))
{
return;
}
if(!isalive(self.var_10C))
{
return;
}
var_00 = scripts\common\utility::getfx("sniper_glint");
wait(0.2);
for(;;)
{
if(self.var_394 == self.var_D8E1 && scripts\anim\combat_utility::func_D285())
{
if(distancesquared(self.origin,self.var_10C.origin) > 65536)
{
playfxontag(var_00,self,"tag_flash");
}
var_01 = randomfloatrange(3,5);
wait(var_01);
}
wait(0.2);
}
}