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

596 lines
12 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\agents\_scriptedagents.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 37
* Decompile Time: 1275 ms
* Timestamp: 10/27/2023 12:23:14 AM
*******************************************************************/
//Function Number: 1
func_197F(param_00,param_01)
{
self.var_2A80 = param_00;
lib_0A02::func_77();
lib_0A1D::func_234D(param_01);
thread func_19F7();
}
//Function Number: 2
func_DF00()
{
level.var_C118["footstep_right_large"] = ::func_C0F9;
level.var_C118["footstep_right_small"] = ::func_C0F9;
level.var_C118["footstep_left_large"] = ::func_C0F9;
level.var_C118["footstep_left_small"] = ::func_C0F9;
}
//Function Number: 3
func_C0F9(param_00,param_01)
{
var_02 = issubstr(param_00,"left");
var_03 = issubstr(param_00,"large");
var_04 = "right";
if(var_02)
{
var_04 = "left";
}
if(var_03)
{
self notify("large_footstep");
}
self.var_2303.var_7257.var_7254 = var_04;
self.var_2303.var_7257.time = gettime();
}
//Function Number: 4
func_89A9(param_00,param_01,param_02)
{
if(isdefined(level.var_C118[param_00]))
{
return [[ level.var_C118[param_00] ]](param_00,param_01);
}
return undefined;
}
//Function Number: 5
func_0219(param_00,param_01)
{
if(isdefined(self.var_C50F))
{
self [[ self.var_C50F ]](param_00,param_01);
}
}
//Function Number: 6
func_0218()
{
self notify("killanimscript");
self notify("terminate_ai_threads");
}
//Function Number: 7
func_19F7()
{
self endon("terminate_ai_threads");
thread lib_0A1D::func_C878();
thread lib_0A1D::func_126E5();
for(;;)
{
if(!isdefined(self))
{
break;
}
lib_0A02::func_90();
lib_0A1A::func_2314();
if(isdefined(self.var_2303.var_10E23))
{
lib_0A1A::func_2317(self.var_2303.var_10E23);
self.var_2303.var_10E23 = undefined;
}
lib_0A1A::func_2389();
wait(0.05);
}
}
//Function Number: 8
func_CED9(param_00,param_01,param_02,param_03)
{
func_CED5(param_00,0,param_01,param_02,param_03);
}
//Function Number: 9
func_CED5(param_00,param_01,param_02,param_03,param_04)
{
self method_82AF(param_00,param_01);
if(!isdefined(param_03))
{
param_03 = "end";
}
func_1384C(param_02,param_03,param_00,param_01,param_04);
}
//Function Number: 10
func_CED2(param_00,param_01,param_02,param_03,param_04,param_05)
{
self method_82AF(param_00,param_01,param_02);
if(!isdefined(param_04))
{
param_04 = "end";
}
func_1384C(param_03,param_04,param_00,param_01,param_05);
}
//Function Number: 11
func_1384A(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = undefined;
if(isdefined(param_05))
{
var_07 = gettime() - param_06 * 0.001 / param_05;
}
func_89A9(param_00,param_02,param_04);
if(isdefined(param_02) && isdefined(self.var_2303))
{
lib_0A1D::func_2345(param_00,param_02,param_03,var_07);
}
if(!isdefined(param_05) || var_07 > 0)
{
if(param_00 == param_01 || param_00 == "end" || param_00 == "anim_will_finish" || param_00 == "finish")
{
return 1;
}
}
if(isdefined(param_04))
{
[[ param_04 ]](param_00,param_02,param_03,var_07);
}
return 0;
}
//Function Number: 12
func_1384C(param_00,param_01,param_02,param_03,param_04)
{
var_05 = gettime();
var_06 = undefined;
if(isdefined(param_02) && isdefined(param_03))
{
var_06 = getanimlength(self method_80FD(param_02,param_03));
}
for(var_07 = 0;!var_07;var_07 = func_1384A(var_08,param_01,param_02,param_03,param_04,var_06,var_05))
{
self waittill(param_00,var_08);
if(isarray(var_08))
{
foreach(var_0A in var_08)
{
if(func_1384A(var_0A,param_01,param_02,param_03,param_04,var_06,var_05))
{
var_07 = 1;
}
}
continue;
}
}
}
//Function Number: 13
func_CED0(param_00,param_01)
{
func_CED4(param_00,0,param_01);
}
//Function Number: 14
func_CED4(param_00,param_01,param_02)
{
self method_82AF(param_00,param_01);
wait(param_02);
}
//Function Number: 15
playanimnwithnotetracksfortime(param_00,param_01,param_02,param_03,param_04)
{
self method_82AF(param_00,param_01);
thread playanimnwithnotetracksfortime_helper(param_00,param_01,param_02,param_04);
wait(param_03);
self notify(param_00 + param_01);
}
//Function Number: 16
playanimnwithnotetracksfortime_helper(param_00,param_01,param_02,param_03)
{
self notify(param_00 + param_01);
self endon(param_00 + param_01);
var_04 = 0;
var_05 = self method_80FD(param_00,param_01);
var_06 = getanimlength(var_05);
var_07 = gettime();
while(!var_04)
{
self waittill(param_02,var_08);
if(!isarray(var_08))
{
var_08 = [var_08];
}
foreach(var_0A in var_08)
{
if(func_1384A(var_0A,"end",param_00,param_01,param_03,var_06,var_07))
{
var_04 = 1;
}
}
}
}
//Function Number: 17
func_CED1(param_00,param_01,param_02,param_03)
{
self method_82AF(param_00,param_01,param_02);
wait(param_03);
}
//Function Number: 18
func_7DC9(param_00,param_01,param_02)
{
var_03 = length2d(param_00);
var_04 = param_00[2];
var_05 = length2d(param_01);
var_06 = param_01[2];
var_07 = 1;
var_08 = 1;
if(isdefined(param_02) && param_02)
{
var_09 = (param_01[0],param_01[1],0);
var_0A = vectornormalize(var_09);
if(vectordot(var_0A,param_00) < 0)
{
var_07 = 0;
}
else if(var_05 > 0)
{
var_07 = var_03 / var_05;
}
}
else if(var_05 > 0)
{
var_07 = var_03 / var_05;
}
if(abs(var_06) > 0.001 && var_06 * var_04 >= 0)
{
var_08 = var_04 / var_06;
}
var_0B = spawnstruct();
var_0B.var_13E2B = var_07;
var_0B.var_3A6 = var_08;
return var_0B;
}
//Function Number: 19
func_5D51(param_00,param_01)
{
var_02 = 15;
var_03 = 45;
if(isdefined(self.var_257))
{
var_02 = self.var_257;
}
if(isdefined(self.height))
{
var_03 = self.height;
}
if(!isdefined(param_01))
{
param_01 = 18;
}
var_04 = param_00 + (0,0,param_01);
var_05 = param_00 + (0,0,param_01 * -1);
var_06 = self method_8007(var_04,var_05,self.var_257,self.height,1);
if(abs(var_06[2] - var_04[2]) < 0.1)
{
return undefined;
}
if(abs(var_06[2] - var_05[2]) < 0.1)
{
return undefined;
}
return var_06;
}
//Function Number: 20
func_38D0(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 6;
}
if(!isdefined(param_03))
{
param_03 = self.var_257;
}
var_04 = (0,0,1) * param_02;
var_05 = param_00 + var_04;
var_06 = param_01 + var_04;
return self method_8008(var_05,var_06,param_03,self.height - param_02,1);
}
//Function Number: 21
func_81F9(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 6;
}
var_03 = (0,0,1) * param_02;
var_04 = param_00 + var_03;
var_05 = param_01 + var_03;
return self method_8007(var_04,var_05,self.var_257 + 4,self.height - param_02,1);
}
//Function Number: 22
func_80FE(param_00)
{
var_01 = getmovedelta(param_00);
var_02 = self method_81E7(var_01);
var_03 = func_81F9(self.origin,var_02);
var_04 = distance(self.origin,var_03);
var_05 = distance(self.origin,var_02);
return min(1,var_04 / var_05);
}
//Function Number: 23
func_EA25(param_00,param_01,param_02,param_03)
{
var_04 = func_80AE(param_00);
func_EA24(param_00,var_04,param_01,param_02,param_03);
}
//Function Number: 24
func_EA22(param_00,param_01,param_02,param_03,param_04)
{
var_05 = func_80AE(param_00);
func_EA23(param_00,var_05,param_01,param_02,param_03,param_04);
}
//Function Number: 25
func_EA23(param_00,param_01,param_02,param_03,param_04,param_05)
{
self method_82AF(param_00,param_01,param_02);
func_EA24(param_00,param_01,param_03,param_04,param_05);
}
//Function Number: 26
func_EA24(param_00,param_01,param_02,param_03,param_04)
{
var_05 = self method_80FD(param_00,param_01);
var_06 = func_80FE(var_05);
self method_8282(var_06,1);
func_CED5(param_00,param_01,param_02,param_03,param_04);
self method_8282(1,1);
}
//Function Number: 27
func_80AE(param_00)
{
var_01 = self method_8100(param_00);
return randomint(var_01);
}
//Function Number: 28
func_7DBD(param_00)
{
var_01 = vectortoangles(param_00);
var_02 = angleclamp180(var_01[1] - self.angles[1]);
return function_02F9(var_02);
}
//Function Number: 29
func_F2B1(param_00,param_01,param_02)
{
if(isdefined(param_02))
{
self method_82AF(param_00,param_01,param_02);
return;
}
if(isdefined(param_01))
{
self method_82AF(param_00,param_01);
return;
}
self method_82AF(param_00);
}
//Function Number: 30
func_9F77()
{
if(!isdefined(self.var_2C6))
{
return 0;
}
return self.var_2C6;
}
//Function Number: 31
func_F85E(param_00,param_01)
{
self.var_2C6 = param_00;
}
//Function Number: 32
func_CED6(param_00,param_01,param_02,param_03,param_04)
{
func_CED3(param_00,param_01,1,param_02,param_03,param_04);
}
//Function Number: 33
func_1384D(param_00,param_01,param_02)
{
self endon("disconnect");
self endon("death");
if(isdefined(param_02))
{
childthread func_C0E0(param_00,param_02,param_01);
}
func_1384C(param_00,param_01);
self notify("Notetrack_Timeout");
}
//Function Number: 34
func_CED3(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("disconnect");
self endon("death");
if(isdefined(param_00))
{
if(isdefined(param_01))
{
var_06 = getanimlength(self method_80FD(param_00,param_01));
}
else
{
var_06 = getanimlength(self method_80FD(param_01,0));
}
childthread func_C0E0(param_03,var_06 * 1 / param_02,param_04);
}
func_CED2(param_00,param_01,param_02,param_03,param_04,param_05);
self notify("Notetrack_Timeout");
}
//Function Number: 35
func_C0E0(param_00,param_01,param_02)
{
self notify("Notetrack_Timeout");
self endon("Notetrack_Timeout");
param_01 = max(0.05,param_01);
wait(param_01);
if(isdefined(param_02))
{
self notify(param_00,param_02);
return;
}
self notify(param_00,"end");
}
//Function Number: 36
func_5AC1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(param_04 != "highest_point")
{
func_CED5(param_00,param_01,param_03,param_04,param_07);
}
if(param_06)
{
var_08 = self.var_6367;
var_09 = 1;
}
else
{
var_08 = scripts\common\utility::getstruct(self.var_6366.target,"targetname");
var_09 = var_09.origin;
var_0A = getnotetracktimes(param_03,"highest_point");
var_09 = var_0A[0];
}
func_5AC2(param_00,param_01,param_03,param_02,param_04,param_05,var_08,var_09,param_07);
}
//Function Number: 37
func_5AC2(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = abs(self.origin[2] - param_06[2]);
var_0A = getnotetracktimes(param_03,param_04);
var_0B = var_0A[0];
var_0C = var_0B;
var_0D = getnotetracktimes(param_03,param_05);
var_0E = var_0D[0];
param_07 = var_0E;
var_0F = "flex_height_up_top";
var_10 = getnotetracktimes(param_03,var_0F);
var_11 = "flex_height_down_top";
var_12 = getnotetracktimes(param_03,var_11);
var_13 = "flex_height_down_bottom";
var_14 = getnotetracktimes(param_03,var_13);
if(param_04 == "flex_height_up_start" && var_10.size > 0)
{
param_07 = var_10[0];
}
if(param_04 == "flex_height_down_start")
{
if(var_12.size > 0)
{
var_0C = var_10[0];
}
if(var_14.size > 0)
{
param_07 = var_14[0];
}
}
var_15 = getmovedelta(param_03,var_0C,param_07);
var_16 = abs(var_15[2]);
var_18 = getmovedelta(param_03,var_0B,var_0E);
var_19 = abs(var_18[2]);
if(var_19 < 1)
{
var_1A = 1;
}
else
{
var_1B = var_18 - var_1A;
if(var_09 <= var_1B)
{
var_1A = var_1B - var_09 / var_19;
}
else
{
var_1A = var_09 - var_1B / var_19;
}
}
self method_8282(1,var_1A);
if(var_0B != 0)
{
var_1C = self method_8102(param_03);
if(var_1C < var_0B)
{
func_CED2(param_00,param_01,1,param_02,param_04,param_08);
}
}
var_1D = clamp(1 / var_1A,0.33,3);
func_CED2(param_00,param_01,var_1D,param_02,param_05,param_08);
}