IL-GSC/IW/PC/ALL/2574.gsc
2023-10-27 03:49:01 -04:00

813 lines
14 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 2574.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 27
* Decompile Time: 10 ms
* Timestamp: 10/27/2023 12:23:22 AM
*******************************************************************/
//Function Number: 1
func_B602(param_00)
{
self endon("melee_finished");
self waittill("terminate_ai_threads");
lib_0A1B::func_2916();
}
//Function Number: 2
func_B599(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = self.var_10C;
}
if(isdefined(self.var_B55B))
{
func_B580();
}
lib_0A1B::func_297F(param_01);
self.var_B55B.var_1158F = param_00;
param_01.var_B55B.var_1158F = param_00;
return level.var_111AE;
}
//Function Number: 3
func_B580()
{
self method_8484();
if(isdefined(self.var_B55B))
{
if(isdefined(self.var_B55B.target))
{
self.var_B55B.target.var_B55B = undefined;
}
self.var_B55B = undefined;
}
}
//Function Number: 4
func_3914(param_00)
{
if(isdefined(self.var_B55B))
{
return 0;
}
if(!isdefined(self.var_B5E4) || !self.var_B5E4)
{
return 0;
}
if(!isdefined(param_00.var_B55B))
{
return 0;
}
var_01 = param_00.var_B55B.var_C92C;
if(!isdefined(var_01) || !isdefined(var_01.var_B55B))
{
return 0;
}
if(isdefined(var_01.var_B55B.var_29A8))
{
return 0;
}
var_02 = distance(param_00.origin,self.origin);
var_03 = distance(param_00.origin,var_01.origin);
if(var_02 + 48 > var_03)
{
return 0;
}
return 1;
}
//Function Number: 5
func_9E96(param_00)
{
var_01 = self.var_10C;
if(isdefined(param_00))
{
var_01 = param_00;
}
if(isdefined(self.var_5966))
{
return 0;
}
if(isdefined(self.var_3135.var_38E1))
{
return 0;
}
if(!isdefined(var_01))
{
return 0;
}
if(isdefined(var_01.var_5966))
{
return 0;
}
if(isdefined(self.var_1412) && !func_38CD())
{
return 0;
}
if(func_9DD1(var_01))
{
if(!func_3914(var_01))
{
return 0;
}
}
return 1;
}
//Function Number: 6
func_10039(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = self.var_10C;
}
if(!func_9E96(param_01))
{
return level.var_6AD5;
}
if(![[ self.var_71AF ]](param_01,1))
{
return level.var_6AD5;
}
if(!func_9E98(param_01))
{
return level.var_6AD5;
}
return level.var_111AE;
}
//Function Number: 7
func_9896(param_00)
{
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_11901 = gettime();
self.var_3135.var_9928[param_00].var_312F = 0;
if(isplayer(self.var_B55B.target))
{
self.var_3135.var_9928[param_00].var_163 = self.var_163;
self.var_163 = 0;
}
lib_0A1B::func_2965(self.var_B55B.target);
if(isdefined(self.var_71BF))
{
self [[ self.var_71BF ]]();
}
if(!isdefined(self.var_B5DA) && isplayer(self.var_B55B.target) && !self.var_B55B.target isonground())
{
self.var_B55B.var_2720 = 1;
}
self method_841F();
if(isai(self.var_B55B.target))
{
self.var_B55B.target method_841F();
}
}
//Function Number: 8
func_5903(param_00)
{
if(!isdefined(self.var_B55B))
{
return level.var_6AD5;
}
if(isdefined(self.var_B55B.var_2720))
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("melee_attack","end"))
{
return level.var_111AE;
}
if(lib_0A1A::func_232A("melee_attack","begin",0))
{
self.var_3135.var_9928[param_00].var_312F = 1;
self.var_3135.var_9928[param_00].var_11901 = gettime() + 10000;
}
if(!self.var_3135.var_9928[param_00].var_312F)
{
if(!isdefined(self.var_B55B.target) || !isalive(self.var_B55B.target))
{
return level.var_6AD5;
}
}
if(gettime() > self.var_3135.var_9928[param_00].var_11901 + 2000)
{
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
if(isdefined(self.var_B55B.target) && !isplayer(self.var_B55B.target) && self.var_B55B.target lib_0A1B::func_2938())
{
return level.var_6AD5;
}
return level.var_E87A;
}
//Function Number: 9
func_41C6(param_00)
{
lib_0A1B::func_2914();
if(isdefined(self.var_B55B) && !isdefined(self.var_B55B.var_312F))
{
if(isdefined(self.var_B55B.target))
{
self.var_B55B.target.var_B55B = undefined;
}
self.var_B55B = undefined;
}
if(isdefined(self.var_3135.var_9928[param_00].var_163))
{
self.var_163 = self.var_3135.var_9928[param_00].var_163;
}
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 10
func_B5C3(param_00)
{
if(isdefined(self.var_10C) && isdefined(self.var_10C.var_B55B))
{
if(isdefined(self.var_10C.var_B55B.var_C92C))
{
self.var_10C.var_B55B.var_C92C func_B580();
}
else
{
self.var_10C func_B580();
}
}
return level.var_111AE;
}
//Function Number: 11
func_B653(param_00)
{
func_B599(param_00);
if(isdefined(self.var_71C2))
{
self [[ self.var_71C2 ]](param_00);
}
thread func_B602(self.var_10C);
}
//Function Number: 12
func_B655(param_00)
{
lib_0A1B::func_2914();
func_B580();
if(isdefined(self.var_71C3))
{
self [[ self.var_71C3 ]](param_00);
}
}
//Function Number: 13
func_B657(param_00)
{
if(!isdefined(self.var_B55B.target) || !isalive(self.var_B55B.target))
{
return level.var_6AD5;
}
if(lib_0A1A::func_232A("melee_attack","end"))
{
return level.var_111AE;
}
lib_0A1B::func_2965(self.var_B55B.target);
return level.var_E87A;
}
//Function Number: 14
func_B5B4(param_00,param_01)
{
if(!isdefined(anim))
{
return;
}
if(!isdefined(level.var_B5F5))
{
return;
}
if(!isdefined(param_00))
{
return;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
if(isplayer(self.var_B55B.target) && isdefined(level.var_B5F6[self.var_12BA4]))
{
level.var_B5F7[self.var_12BA4] = gettime() + level.var_B5F6[self.var_12BA4] * param_01;
return;
}
if(isdefined(level.var_B5F5[self.var_12BA4]))
{
level.var_B5F8[self.var_12BA4] = gettime() + level.var_B5F5[self.var_12BA4] * param_01;
}
}
//Function Number: 15
func_B5E8(param_00)
{
self.var_B55B.var_3D2C = 1;
if(isdefined(self.var_71C0))
{
self [[ self.var_71C0 ]](param_00);
}
func_B5B4(self.var_12BA4,3);
self.var_3135.var_9928[param_00] = spawnstruct();
self.var_3135.var_9928[param_00].var_3E30 = gettime() + 100;
self.var_3135.var_9928[param_00].var_11901 = gettime() + 4000;
self.var_3135.var_9928[param_00].var_6572 = self.var_10C.origin;
if(isplayer(self.var_B55B.target))
{
self.var_3135.var_9928[param_00].var_163 = self.var_163;
self.var_163 = 0;
}
self.var_1D5 = 64;
}
//Function Number: 16
func_B5EE(param_00)
{
if(isdefined(self.var_B55B))
{
func_B5B4(self.var_12BA4,0);
}
if(isdefined(self.var_B55B) && isdefined(self.var_B55B.var_2720) || !isdefined(self.var_B55B.var_29A8))
{
func_B580();
}
self method_8484();
self.var_1D5 = 0;
if(isdefined(self.var_3135.var_9928[param_00].var_163))
{
self.var_163 = self.var_3135.var_9928[param_00].var_163;
}
lib_0A1B::func_2913();
if(isdefined(self.var_71C1))
{
self [[ self.var_71C1 ]](param_00);
}
self.var_3135.var_9928[param_00] = undefined;
}
//Function Number: 17
func_7FAB(param_00)
{
if(isplayer(param_00))
{
var_01 = self.meleechargedistvsplayer;
}
else
{
var_01 = self.meleechargedist;
}
if(!lib_0A06::func_8BC8())
{
var_01 = var_01 * self.meleechargedistreloadmultiplier;
}
return var_01;
}
//Function Number: 18
func_B5B5()
{
if(!isdefined(self.var_B55B))
{
return 1;
}
var_00 = self.var_B55B.target;
if(!isdefined(var_00))
{
return 1;
}
if(!isalive(var_00))
{
return 1;
}
if(!isplayer(var_00) && var_00 lib_0A1B::func_2938())
{
return 1;
}
return 0;
}
//Function Number: 19
func_B5EB()
{
if(func_B5B5())
{
return 1;
}
if(isdefined(self.var_3135.var_38E1))
{
return 1;
}
if(isdefined(self.var_B55B.var_2720))
{
return 1;
}
var_00 = self.var_B55B.target;
if(isdefined(var_00.var_C337) && var_00.var_C337.var_19)
{
if(isai(var_00) || !isdefined(self.var_B5DC) || !self.var_B5DC)
{
return 1;
}
}
if(isdefined(self.var_10C) && var_00 != self.var_10C)
{
return 1;
}
if(lib_0A1A::func_232A("melee_charge_state","end"))
{
return 1;
}
return 0;
}
//Function Number: 20
func_B5E7(param_00)
{
self.var_BF90 = gettime() + 1500;
self.var_A985 = param_00;
}
//Function Number: 21
func_B5EA(param_00,param_01)
{
var_02 = self.var_3135.var_9928[param_00].var_1157A;
if(!isdefined(var_02))
{
return 0;
}
if(isdefined(self.var_233) && distance2dsquared(self.var_233,self.origin) > 16)
{
return 0;
}
return distancesquared(var_02,param_01) < 4;
}
//Function Number: 22
func_B5F0(param_00)
{
if(func_B5EB())
{
if(isdefined(self.var_B55B))
{
self.var_B55B.var_2720 = 1;
}
return level.var_6AD5;
}
var_01 = self.meleerangesq;
if(!isdefined(var_01))
{
var_01 = 4096;
}
var_02 = self.var_B55B.target;
if(isdefined(self.var_B5DA) || isdefined(self.var_B621))
{
var_03 = distance2dsquared(var_02.origin,self.origin);
}
else
{
var_03 = distancesquared(var_03.origin,self.origin);
}
var_04 = func_7FAB(var_02) + 24;
var_05 = var_04 * var_04;
if(var_03 > var_05)
{
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
if(isplayer(var_02))
{
var_06 = getclosestpointonnavmesh(var_02.origin,self);
}
else
{
var_06 = var_03 method_84AC();
}
var_07 = var_01;
var_08 = length(self.var_381);
if(var_08 > 1)
{
var_07 = squared(sqrt(var_01) + var_08 * 0.1);
}
if(var_03 <= var_07)
{
if(isplayer(var_02))
{
if(scripts\common\utility::func_B616())
{
return level.var_E87A;
}
}
var_09 = 18;
if(isdefined(self.var_2C0) && self.var_2C0 != "none" && isplayer(var_02))
{
var_09 = 32;
}
if(isdefined(self.var_B621) || abs(self.origin[2] - var_02.origin[2]) < var_09)
{
var_0A = self method_84AC();
if(self [[ self.var_7199 ]](var_0A,var_06))
{
self.var_B55B.var_29A8 = 1;
return level.var_111AE;
}
}
}
if(self.var_2748 || gettime() > self.var_3135.var_9928[param_00].var_3E30 && !isdefined(self.var_233))
{
func_B5E7(var_02);
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
if(!isdefined(self.var_B55B.var_2AC7) || !self.var_B55B.var_2AC7)
{
if(gettime() >= self.var_3135.var_9928[param_00].var_11901)
{
func_B5E7(var_02);
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
}
if(!isdefined(self.var_B55B.var_2AC6) || !self.var_B55B.var_2AC6)
{
if(isdefined(self.var_B5DA))
{
var_0B = distance2dsquared(var_02.origin,self.var_3135.var_9928[param_00].var_6572);
}
else
{
var_0B = distancesquared(var_03.origin,self.var_3135.var_9928[var_01].var_6572);
}
if(var_0B > 16384)
{
func_B5E7(var_02);
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
}
var_0C = max(sqrt(var_01) - 24,0);
var_0D = vectornormalize(self.origin - var_02.origin);
var_0E = var_02.origin + var_0D * var_0C;
var_0F = 36;
if(isdefined(self.var_B64F))
{
var_0F = self.var_B64F;
}
var_10 = 1;
if(!func_B5EA(param_00,var_0E))
{
var_11 = getclosestpointonnavmesh(var_0E,self);
var_10 = distance2dsquared(var_0E,var_11) > var_0F;
if(!var_10)
{
var_10 = !self [[ self.var_7199 ]](var_11,var_06);
}
}
if(var_10 && isdefined(self.var_B651) && self.var_B651)
{
if(isdefined(var_02.var_205))
{
if(scripts\common\utility::func_9EB4(var_02.var_205))
{
var_12 = function_02D3(var_02.var_205.angles);
var_0E = var_02.var_205.origin + var_12 * var_0C;
}
else if(scripts\common\utility::func_9EB7(var_02.var_205))
{
var_13 = anglestoright(var_02.var_205.angles);
var_0E = var_02.var_205.origin + var_13 * var_0C;
}
else
{
var_14 = anglestoforward(var_02.var_205.angles);
var_0E = var_02.var_205.origin - var_14 * var_0C;
}
if(!func_B5EA(param_00,var_0E))
{
var_11 = getclosestpointonnavmesh(var_0E,self);
var_10 = distance2dsquared(var_0E,var_11) > var_0F;
}
}
if(var_10)
{
var_0E = var_02.origin - var_0D * var_0C;
if(!func_B5EA(param_00,var_0E))
{
var_11 = getclosestpointonnavmesh(var_0E,self);
var_10 = distance2dsquared(var_0E,var_11) > var_0F;
}
}
if(var_10)
{
var_0E = var_06;
var_10 = 0;
}
}
if(var_10)
{
func_B5E7(var_02);
self.var_B55B.var_2720 = 1;
return level.var_6AD5;
}
self method_8481(var_0E);
self.var_6D = 6;
self.var_3135.var_9928[param_00].var_1157A = var_0E;
lib_0A1B::func_2966(var_02,var_0E);
return level.var_E87A;
}
//Function Number: 23
func_8198(param_00)
{
var_01 = param_00.origin;
var_02 = param_00.origin - self.origin;
var_02 = vectornormalize(var_02);
var_01 = var_01 - var_02 * self.meleeactorboundsradius;
var_03 = getclosestpointonnavmesh(var_01,self);
if(abs(var_01[2] - var_03[2]) > self.maxzdiff)
{
return undefined;
}
var_04 = navtrace(self.origin,var_03,self,1);
var_05 = var_04["fraction"];
if(var_05 < self.var_1548)
{
return undefined;
}
return var_03;
}
//Function Number: 24
func_38CD()
{
if(isdefined(self.var_65DB) && isdefined(self.var_65DB["_stealth_enabled"]) && self.var_65DB["_stealth_enabled"])
{
if(isdefined(self.var_65DB["_stealth_attack"]) && !self.var_65DB["_stealth_attack"])
{
return 0;
}
}
return level.var_111AE;
}
//Function Number: 25
func_9DD1(param_00)
{
var_01 = self.var_10C;
if(isdefined(param_00))
{
var_01 = param_00;
}
if(isdefined(self.var_B55B))
{
return 1;
}
if(isdefined(var_01.var_B55B))
{
return 1;
}
return 0;
}
//Function Number: 26
func_9E98(param_00)
{
if(abs(param_00.origin[2] - self.origin[2]) > self.var_B627)
{
return 0;
}
var_01 = func_7FAB(param_00);
var_02 = var_01 * var_01;
var_03 = distancesquared(self.origin,param_00.origin);
return var_03 <= var_02;
}
//Function Number: 27
func_9E9A(param_00,param_01)
{
if(isdefined(self.var_5966))
{
return 0;
}
if(!isdefined(param_00))
{
return 0;
}
if(isdefined(param_00.var_5966))
{
return 0;
}
if(!isalive(self))
{
return 0;
}
if(!isalive(param_00))
{
return 0;
}
return 1;
}