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

500 lines
8.3 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3066.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 16
* Decompile Time: 6 ms
* Timestamp: 10/27/2023 12:26:05 AM
*******************************************************************/
//Function Number: 1
func_8987(param_00)
{
if(!isdefined(param_00) || param_00 == 0)
{
lib_0C33::func_295A();
return;
}
if(param_00 == 1 || param_00 == 2)
{
if(self.var_3250 <= 0)
{
param_00 = 0;
}
}
switch(param_00)
{
case 2:
lib_0C33::func_295B();
break;
case 1:
lib_0C33::func_295C();
break;
default:
lib_0C33::func_295A();
break;
}
}
//Function Number: 2
func_3E49(param_00)
{
if(!isdefined(self.var_EF7D) && !isdefined(self.var_EF7A) && !isdefined(self.var_EF7C))
{
return level.var_6AD5;
}
func_8987(self.var_EF73);
if(isdefined(self.var_10C))
{
if(isdefined(self.var_3123))
{
return level.var_6AD5;
}
if(isdefined(self.var_EF79) && self.var_EF79 > 0)
{
var_01 = self.var_EF79 * self.var_EF79;
var_02 = distancesquared(self.origin,self.var_10C.origin);
if(var_02 < var_01)
{
self.var_3123 = 1;
return level.var_6AD5;
}
}
}
else
{
self.var_3123 = undefined;
}
if(isdefined(self.var_EF7E))
{
self method_8287(self.var_EF7E);
var_03 = self.var_EF7E;
}
else
{
var_03 = 4;
}
if(isdefined(self.var_EF7D))
{
self method_8484();
self method_8286(self.var_EF7D);
}
else if(isdefined(self.var_EF7A))
{
var_04 = distancesquared(self.origin,self.var_EF7A.origin);
if(var_04 > var_03 * var_03)
{
self method_8484();
self method_8284(self.var_EF7A);
}
else
{
return level.var_6AD5;
}
}
else if(isdefined(self.var_EF7C))
{
self method_8484();
self method_8285(self.var_EF7C);
}
return level.var_111AE;
}
//Function Number: 3
func_930A(param_00)
{
if(lib_0A1B::func_2942())
{
return level.var_111AE;
}
return level.var_6AD5;
}
//Function Number: 4
func_930D(param_00)
{
if(!lib_0A1B::func_2942() || !isdefined(self.var_10C))
{
return level.var_6AD5;
}
var_01 = 0;
if(lib_0A1B::func_2955())
{
var_01 = self method_841E();
}
if(var_01 == 0)
{
var_01 = distance2d(self.origin,self.var_10C.origin);
}
if(!lib_0A06::func_8BC8() || var_01 < self.forcefastcrawldist)
{
return level.var_111AE;
}
return level.var_6AD5;
}
//Function Number: 5
func_97FA(param_00)
{
if(self.health > self.fastcrawlmaxhealth)
{
self.health = self.fastcrawlmaxhealth;
}
lib_0C33::func_2979(1);
return level.var_111AE;
}
//Function Number: 6
func_5814()
{
playfx(level._effect["sentry_explode_mp"],self.origin);
earthquake(0.5,1,self.origin,512);
radiusdamage(self.origin,self.explosionradius,self.explosiondamagemax,self.explosiondamagemax,self,"MOD_EXPLOSIVE");
self suicide();
}
//Function Number: 7
func_5813(param_00)
{
if(!isdefined(self.var_10C))
{
return level.var_6AD5;
}
var_01 = distancesquared(self.origin,self.var_10C.origin);
if(var_01 < self.dismemberchargeexplodedistsq)
{
func_5814();
return level.var_111AE;
}
return level.var_E87A;
}
//Function Number: 8
func_116F3(param_00)
{
lib_0C33::func_2979(0);
}
//Function Number: 9
func_4F62(param_00,param_01)
{
if(isdefined(self.var_4F63))
{
[[ self.var_4F63 ]](param_00,param_01);
return;
}
var_02 = gettime();
if(self.last_enemy_sight_time < 0 || var_02 - self.last_enemy_sight_time < self.maxtimetostrafewithoutlos)
{
lib_0C33::func_295C();
return;
}
self.strafeifwithindist = self.desiredenemydistmax + 100;
if(param_01 < self.strafeifwithindist)
{
lib_0C33::func_295C();
return;
}
lib_0C33::func_295B();
}
//Function Number: 10
func_9ED8()
{
return 0;
}
//Function Number: 11
func_3DE6(param_00)
{
if(!isdefined(self.var_10C))
{
if(isdefined(self.var_6571))
{
return level.var_6AD5;
}
if(!func_9ED8())
{
lib_0A1B::func_2983(undefined);
self method_841F();
}
return level.var_6AD5;
}
var_01 = gettime();
if(isdefined(self.var_A938))
{
if(var_01 < self.var_A938 + 250)
{
return level.var_111AE;
}
}
self.var_A938 = var_01;
if(isdefined(self.var_A8B7) && isdefined(self.var_10C))
{
if(self.var_A8B7 != self.var_10C)
{
self.last_enemy_sight_time = -99;
}
}
else
{
self.last_enemy_sight_time = -99;
}
var_02 = 1;
var_03 = self method_805F(self.var_10C);
var_04 = distance2d(self.origin,self.var_10C.origin);
if(var_03)
{
var_02 = self method_8060(func_7E66());
}
else
{
var_02 = 0;
}
if(!var_02)
{
if(!scripts\common\utility::istrue(self.var_3320))
{
func_4F62(0,var_04);
self method_8484();
self method_8286(self.var_10C.origin);
}
return level.var_111AE;
}
self.var_3320 = undefined;
self.last_enemy_sight_time = gettime();
self.var_A8B7 = self.var_10C;
if(var_04 > self.desiredenemydistmax)
{
func_4F62(1,var_04);
self method_8484();
self method_8286(self.var_10C.origin);
return level.var_111AE;
}
if(var_04 < self.var_272A)
{
var_01 = gettime();
if(isdefined(self.var_A88C) && var_01 - self.var_A88C < 500 && isdefined(self.var_233))
{
return level.var_111AE;
}
var_05 = vectornormalize(self.origin - self.var_10C.origin);
var_06 = 100;
var_07 = self.origin + var_05 * var_06;
var_07 = getclosestpointonnavmesh(var_07,self);
var_08 = var_07 - self.origin;
var_08 = (var_08[0],var_08[1],0);
var_09 = vectornormalize(var_08);
var_0A = vectordot(var_09,var_05);
if(var_0A > 0)
{
lib_0C33::func_295C();
self method_8484();
self method_8286(var_07);
return level.var_111AE;
}
}
if(var_04 < self.desiredenemydistmin)
{
if(!func_9ED8())
{
self method_841F();
}
return level.var_111AE;
}
return level.var_111AE;
}
//Function Number: 12
func_CB30()
{
if(isdefined(self.var_10C) && isdefined(self.var_10C.var_565C) && self.var_10C.var_565C)
{
if(isdefined(self.var_3402))
{
return self.var_3402;
}
}
var_00 = 0;
var_01 = randomint(100);
for(var_02 = 0;var_02 < self.var_3403.size;var_02++)
{
var_03 = self.var_3403[var_02];
if(var_01 < var_03 + var_00)
{
return self.var_3404[var_02];
}
var_00 = var_00 + var_03;
}
return undefined;
}
//Function Number: 13
func_7E8E()
{
var_00 = self.var_10C gettagorigin("j_head");
return var_00;
}
//Function Number: 14
func_7E66()
{
if(scripts\common\utility::istrue(self.var_565C))
{
return func_7E8E();
}
var_00 = 70;
var_01 = 15;
if(isdefined(self.var_10C.var_18F4))
{
var_00 = self.var_10C.var_18F4;
var_01 = self.var_10C.var_18F9;
}
var_02 = var_00 * 0.75;
var_03 = (0,0,var_02);
var_04 = self.var_10C.origin + var_03;
return var_04;
}
//Function Number: 15
func_12F35(param_00)
{
if(!isdefined(self.var_3404))
{
return lib_0A06::func_12EC2(param_00);
}
if(isdefined(self.var_10C))
{
self.var_1C4 = undefined;
if(!isdefined(self.var_719B) || !isdefined(self.var_BFB1) || gettime() > self.var_BFB1)
{
self.var_719B = func_CB30();
self.var_BFB1 = gettime() + randomintrange(1500,2500);
}
if(isdefined(self.var_719B))
{
var_01 = self [[ self.var_719B ]]();
if(!self method_8060(var_01))
{
var_01 = func_7E66();
}
}
else
{
var_01 = func_7E66();
}
self.var_1C2 = var_01;
}
else
{
lib_0A1B::func_2983(undefined);
self.var_1C2 = undefined;
self.var_BFB1 = undefined;
}
return level.var_111AE;
}
//Function Number: 16
func_3401(param_00)
{
if(!isdefined(self.var_1C2))
{
return lib_0A06::func_FE88(param_00);
}
if(lib_0A1A::func_232A("shoot","shoot_finished"))
{
return level.var_111AE;
}
var_01 = self.var_3135.var_FECD;
if(self method_805F(self.var_10C))
{
self.var_1C4 = undefined;
var_01.var_D699 = self.var_1C2;
var_01.var_65D3 = undefined;
}
else if(isdefined(self.var_8451))
{
var_01.var_D699 = self.var_8451;
var_01.var_65D3 = undefined;
}
else
{
return level.var_111AE;
}
if(!isdefined(var_01.var_C274))
{
var_01.var_C274 = "normal";
}
lib_0A1B::func_2983(var_01,self.var_10C);
if(lib_0A06::func_9D2E())
{
if(!self.var_3135.var_B117)
{
lib_0A06::func_E259();
lib_0A06::func_3EF9(var_01);
lib_0A06::func_3EE3(var_01);
}
lib_0A06::func_3EF8(var_01);
self.var_3135.var_B117 = 1;
}
else
{
self.var_3135.var_B117 = 0;
}
if(!isdefined(var_01.var_D699) && !isdefined(var_01.var_65D3))
{
return level.var_111AE;
}
lib_0A1B::func_2962(self.var_3135.var_B117);
return level.var_E87A;
}