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

939 lines
14 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\anim\cover_behavior.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 36
* Decompile Time: 2120 ms
* Timestamp: 10/27/2023 12:00:23 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
self.var_46A6 = self.origin;
var_01 = gettime();
var_02 = spawnstruct();
var_02.var_BF6E = var_01 - 1;
var_02.var_BF6F = var_01 - 1;
func_E257();
func_E267();
self.var_F17F = gettime();
self.var_1491.var_A97A = var_01;
self.var_1491.var_9302 = 0;
self.var_1491.var_BCC8 = "stop";
self.var_B600 = var_01 + 3000;
thread func_13B72();
var_03 = gettime() > 2500;
for(;;)
{
if(isdefined(self.var_C2) && isdefined(self.var_C2.var_71C6))
{
var_04 = gettime();
thread func_6335();
[[ self.var_C2.var_71C6 ]]();
if(gettime() == var_04)
{
self notify("dont_end_idle");
}
}
if(scripts\anim\combat_utility::func_10026())
{
if(scripts\anim\combat_utility::func_128AA(1))
{
wait(0.05);
continue;
}
}
if(isdefined(param_00.var_B24A))
{
var_04 = gettime();
thread func_6335();
[[ param_00.var_B24A ]]();
if(gettime() == var_04)
{
self notify("dont_end_idle");
}
}
if(isdefined(param_00.var_BD1C))
{
if([[ param_00.var_BD1C ]]())
{
continue;
}
}
if(scripts\common\utility::func_167E())
{
self method_8272(self.var_473C.origin);
}
else
{
self method_8272(self.var_473C.origin,func_7E3D());
}
if(!var_03)
{
func_92CC(param_00,0.05 + randomfloat(1.5));
var_03 = 1;
continue;
}
if(func_5927(param_00))
{
continue;
}
if(isdefined(level.var_11813) && isalive(level.player))
{
if(func_128AF(param_00,level.player))
{
continue;
}
}
if(func_E29E())
{
return;
}
var_05 = 0;
var_06 = 0;
if(isalive(self.var_10C))
{
var_05 = func_9DDA();
var_06 = scripts\anim\utility_common::func_3918();
}
if(var_05)
{
if(self.var_1491.var_7E0C < gettime())
{
if(scripts\anim\combat_utility::func_B019())
{
return;
}
}
func_2538(param_00);
continue;
}
if(isdefined(self.var_190C) || scripts\anim\utility_common::func_6561())
{
if(func_18D4())
{
return;
}
}
if(var_06)
{
func_2533(param_00,var_02);
continue;
}
if(func_252A(param_00,var_02))
{
return;
}
}
}
//Function Number: 2
func_010B(param_00)
{
if(getdvarint("ai_iw7",0) == 1)
{
return;
}
self.var_129B3 = undefined;
self.var_1491.var_D892 = undefined;
if(isdefined(self.var_B600) && self.var_B600 <= gettime())
{
self.var_B5FF = gettime() + 5000;
self.var_B600 = undefined;
}
self method_806F(%head,0.2);
self.var_6A89 = undefined;
}
//Function Number: 3
func_7E3D()
{
if(scripts\common\utility::func_167E())
{
return self.var_473C.angles;
}
var_00 = (self.var_473C.angles[0],scripts\asm\shared_utility::func_7FF7(self.var_473C),self.var_473C.angles[2]);
return var_00;
}
//Function Number: 4
func_E29E()
{
if(self method_801B() && self.var_1491.var_E29F < gettime())
{
if(scripts\anim\combat_utility::func_B019())
{
return 1;
}
self.var_1491.var_E29F = gettime() + 30000;
}
return 0;
}
//Function Number: 5
func_5927(param_00)
{
if(func_112C9(param_00))
{
if(func_9DDA())
{
func_E26B();
}
self.var_1491.var_A97A = gettime();
return 1;
}
if(func_4742(param_00,0))
{
return 1;
}
return 0;
}
//Function Number: 6
func_2538(param_00)
{
if(distancesquared(self.origin,self.var_10C.origin) > 562500)
{
if(func_128AF(param_00,self.var_10C))
{
return;
}
}
if(func_AB2D(param_00,"normal"))
{
func_E26B();
self.var_1491.var_A97A = gettime();
return;
}
func_92CC(param_00);
}
//Function Number: 7
func_2533(param_00,param_01)
{
if(self.var_FC)
{
if(func_AB2D(param_00,"ambush"))
{
return;
}
}
else if(self.var_251 || gettime() >= param_01.var_BF6F)
{
var_02 = "suppress";
if(!self.var_251 && gettime() - self.var_AA22 > 5000 && randomint(3) < 2)
{
var_02 = "ambush";
}
else if(!scripts\anim\shoot_behavior::func_100A4())
{
var_02 = "ambush";
}
if(func_AB2D(param_00,var_02))
{
param_01.var_BF6F = gettime() + randomintrange(3000,20000);
if(func_9DDA())
{
self.var_1491.var_A97A = gettime();
}
return;
}
}
if(func_128AF(param_00,self.var_10C))
{
return;
}
func_92CC(param_00);
}
//Function Number: 8
func_252A(param_00,param_01)
{
if(func_4742(param_00,0.1))
{
return 0;
}
if(isdefined(self.var_10C))
{
if(func_128AF(param_00,self.var_10C))
{
return 0;
}
}
if(!self.var_FC && gettime() >= param_01.var_BF6E)
{
if(func_B01C(param_00))
{
param_01.var_BF6E = gettime() + randomintrange(4000,15000);
return 0;
}
}
if(gettime() > self.var_1491.var_7E0C)
{
if(func_3926())
{
return 1;
}
}
if(self.var_FC || gettime() >= param_01.var_BF6F && isdefined(self.var_10C))
{
if(func_AB2D(param_00,"ambush"))
{
if(func_9DDA())
{
func_E26B();
}
self.var_1491.var_A97A = gettime();
param_01.var_BF6F = gettime() + randomintrange(6000,20000);
return 0;
}
}
func_92CC(param_00);
return 0;
}
//Function Number: 9
func_9DDA()
{
if(!isdefined(self.var_10C))
{
return 0;
}
if(distancesquared(self.var_10C.origin,self.var_46A6) < 256)
{
return 0;
}
return scripts\anim\utility_common::func_3908();
}
//Function Number: 10
func_112C9(param_00)
{
if(!scripts\anim\utility_common::func_9F8F())
{
return 0;
}
var_01 = gettime();
var_02 = 1;
while(scripts\anim\utility_common::func_9F8F())
{
var_02 = 0;
self method_8272(self.var_473C.origin);
var_03 = 1;
if(isdefined(self.var_6BAB))
{
var_03 = scripts\common\utility::func_4347();
}
if(var_03)
{
if(func_128B1(param_00))
{
self notify("killanimscript");
return 1;
}
}
if(self.var_1491.var_2411 && scripts\anim\utility_common::func_3907())
{
return 0;
}
if(func_9DDA() || scripts\anim\utility_common::func_3918())
{
if(isdefined(level.var_11813) && isalive(level.player))
{
if(func_128AF(param_00,level.player))
{
continue;
}
}
if(func_4742(param_00,0))
{
continue;
}
if(self.team != "allies" && gettime() >= var_01)
{
if(func_2B99(param_00))
{
var_01 = gettime();
if(!isdefined(self.var_6BAB))
{
var_01 = var_01 + randomintrange(3000,12000);
}
continue;
}
}
if(func_128AF(param_00,self.var_10C))
{
var_02 = 1;
continue;
}
}
if(func_4742(param_00,0.1))
{
continue;
}
func_92CC(param_00);
}
if(!var_02 && randomint(2) == 0)
{
func_B018(param_00);
}
return 1;
}
//Function Number: 11
func_805E(param_00)
{
var_01 = [];
if(param_00 == 1)
{
var_01[0] = 0;
}
else if(param_00 == 2)
{
var_01[0] = randomint(2);
var_01[1] = 1 - var_01[0];
}
else
{
for(var_02 = 0;var_02 < param_00;var_02++)
{
var_01[var_02] = var_02;
}
for(var_02 = 0;var_02 < param_00;var_02++)
{
var_03 = var_02 + randomint(param_00 - var_02);
var_04 = var_01[var_03];
var_01[var_03] = var_01[var_02];
var_01[var_02] = var_04;
}
}
return var_01;
}
//Function Number: 12
func_3773(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_00))
{
return 0;
}
thread func_6335();
var_04 = gettime();
var_05 = undefined;
if(isdefined(param_03))
{
var_05 = [[ param_00 ]](param_01,param_02,param_03);
}
else if(isdefined(param_02))
{
var_05 = [[ param_00 ]](param_01,param_02);
}
else if(isdefined(param_01))
{
var_05 = [[ param_00 ]](param_01);
}
else
{
var_05 = [[ param_00 ]]();
}
if(!var_05)
{
self notify("dont_end_idle");
}
return var_05;
}
//Function Number: 13
func_13B72()
{
self endon("killanimscript");
self.var_AA22 = gettime() - 100000;
self.var_112CD = self.var_AA22;
for(;;)
{
self waittill("suppression");
var_00 = gettime();
if(self.var_AA22 < var_00 - 700)
{
self.var_112CD = var_00;
}
self.var_AA22 = var_00;
}
}
//Function Number: 14
func_4742(param_00,param_01)
{
if(self.var_3250 > weaponclipsize(self.var_394) * param_01)
{
return 0;
}
self.var_9F21 = 1;
var_02 = func_3773(param_00.var_260);
self.var_9F21 = 0;
return var_02;
}
//Function Number: 15
func_AB2D(param_00,param_01)
{
thread scripts\anim\shoot_behavior::func_4F69(param_01);
if(!self.var_132 && !self.var_FC)
{
thread func_2FBF();
}
var_02 = func_3773(param_00.var_AB2D);
self notify("stop_deciding_how_to_shoot");
return var_02;
}
//Function Number: 16
func_B01C(param_00)
{
if(self.var_1491.var_2411 && scripts\anim\utility_common::func_3907())
{
return 0;
}
if(self.var_1491.var_A97A + 6000 > gettime())
{
return func_B018(param_00);
}
var_01 = func_3773(param_00.var_1BC,2 + randomfloat(2));
if(var_01)
{
return 1;
}
return func_3773(param_00.var_6B9B);
}
//Function Number: 17
func_B018(param_00)
{
var_01 = func_3773(param_00.var_6B9B);
if(var_01)
{
return 1;
}
return func_3773(param_00.var_1BC,0);
}
//Function Number: 18
func_92CC(param_00,param_01)
{
self.var_6F28 = 0;
if(isdefined(param_00.var_6F27))
{
if(!self.var_1491.var_9302 && gettime() - self.var_112CD < 600)
{
if([[ param_00.var_6F27 ]]())
{
return 1;
}
}
else
{
thread func_6F29(param_00);
}
}
if(!self.var_1491.var_9302)
{
thread func_92FF(param_00.var_92CC);
self.var_1491.var_9302 = 1;
}
if(isdefined(param_01))
{
func_9300(param_01);
}
else
{
func_9301();
}
if(self.var_6F28)
{
self waittill("flinch_done");
}
self notify("stop_waiting_to_flinch");
}
//Function Number: 19
func_9300(param_00)
{
self endon("end_idle");
wait(param_00);
}
//Function Number: 20
func_9301()
{
self endon("end_idle");
wait(0.3 + randomfloat(0.1));
self waittill("do_slow_things");
}
//Function Number: 21
func_92FF(param_00)
{
self endon("killanimscript");
self [[ param_00 ]]();
}
//Function Number: 22
func_6F29(param_00)
{
self endon("killanimscript");
self endon("stop_waiting_to_flinch");
var_01 = self.var_AA22;
for(;;)
{
self waittill("suppression");
var_02 = gettime();
if(var_01 < var_02 - 2000)
{
break;
}
var_01 = var_02;
}
self.var_6F28 = 1;
thread func_6335();
var_03 = [[ param_00.var_6F27 ]]();
if(!var_03)
{
self notify("dont_end_idle");
}
self.var_6F28 = 0;
self notify("flinch_done");
}
//Function Number: 23
func_6335()
{
self endon("killanimscript");
self endon("dont_end_idle");
waittillframeend;
if(!isdefined(self))
{
return;
}
self notify("end_idle");
self.var_1491.var_9302 = 0;
}
//Function Number: 24
func_128AF(param_00,param_01)
{
var_02 = anglestoforward(self.angles);
var_03 = vectornormalize(param_01.origin - self.origin);
if(vectordot(var_02,var_03) < 0)
{
return 0;
}
if(self.var_FC && !scripts\anim\utility_common::func_DDC9())
{
return 0;
}
if(scripts\anim\utility::func_9ED4())
{
return func_3773(param_00.var_85BF,param_01);
}
return func_3773(param_00.var_15F,param_01);
}
//Function Number: 25
func_2B99(param_00)
{
if(!scripts\anim\utility::func_3875())
{
return 0;
}
return func_3773(param_00.var_2B99);
}
//Function Number: 26
func_2FBF()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
if(self.var_132 || self.var_FC)
{
return;
}
wait(0.5 + randomfloat(0.75));
if(!isdefined(self.var_10C))
{
continue;
}
if(scripts\anim\utility_common::func_6561())
{
if(func_18D4())
{
return;
}
}
if(!scripts\anim\utility_common::func_DDC9() && !scripts\anim\utility_common::func_3917())
{
if(gettime() > self.var_1491.var_7E0C)
{
if(func_3926())
{
return;
}
}
}
}
}
//Function Number: 27
func_E267()
{
self.var_1491.var_E29F = 0;
}
//Function Number: 28
func_E257()
{
var_00 = gettime();
if(isdefined(self.var_54C3) && var_00 > self.var_1491.var_7E0C)
{
self.var_1491.var_7E0C = var_00 + randomintrange(2000,5000);
return;
}
if(isdefined(self.var_10C))
{
var_01 = distance2d(self.origin,self.var_10C.origin);
if(var_01 < self.var_112)
{
self.var_1491.var_7E0C = var_00 + randomintrange(5000,10000);
return;
}
if(var_01 > self.var_110 && var_01 < self.var_15C)
{
self.var_1491.var_7E0C = var_00 + randomintrange(2000,5000);
return;
}
self.var_1491.var_7E0C = var_00 + randomintrange(10000,15000);
return;
}
self.var_1491.var_7E0C = var_00 + randomintrange(5000,15000);
}
//Function Number: 29
func_E26B()
{
if(isdefined(self.var_190C))
{
self.var_F17F = gettime() + randomintrange(500,1000);
return;
}
self.var_F17F = gettime() + randomintrange(3000,5000);
}
//Function Number: 30
func_3926()
{
return func_18D4();
}
//Function Number: 31
func_18D4()
{
if(self.var_132 || self.var_FC)
{
return 0;
}
if(isdefined(self.var_190C) && gettime() >= self.var_F17F)
{
return scripts\anim\combat_utility::func_128AA(0);
}
var_00 = 0;
if(!isdefined(self.var_10C) || !self.var_10C scripts\common\utility::func_9DFB())
{
var_00 = scripts\anim\combat_utility::func_B019();
}
if(!var_00 && isdefined(self.var_10C) && !scripts\anim\utility_common::func_3908())
{
if(gettime() >= self.var_F17F)
{
return scripts\anim\combat_utility::func_128AA(0);
}
}
return var_00;
}
//Function Number: 32
func_128B1(param_00)
{
if(isdefined(param_00.var_BD1C))
{
if([[ param_00.var_BD1C ]]())
{
return 1;
}
}
return scripts\anim\combat_utility::func_B019();
}
//Function Number: 33
func_F5AE()
{
var_00 = scripts\anim\utility::func_B028("exposed_turn");
foreach(var_03, var_02 in var_00)
{
self.var_1491.var_2274[var_03] = var_02;
}
}
//Function Number: 34
func_F318()
{
var_00 = scripts\anim\utility::func_B028("exposed_turn_crouch");
foreach(var_03, var_02 in var_00)
{
self.var_1491.var_2274[var_03] = var_02;
}
}
//Function Number: 35
func_129B4(param_00)
{
}
//Function Number: 36
func_BD1C()
{
if(!isdefined(self.var_10C))
{
return 0;
}
if(isdefined(self.var_54C3))
{
self.var_54C3 = undefined;
return 0;
}
if(!isdefined(self.var_205))
{
return 0;
}
if(scripts\common\utility::func_9EB2(self.var_205))
{
return 0;
}
if(randomint(3) == 0)
{
return 0;
}
if(self.var_132 || self.var_FC || self.var_1A3 || self.var_1A4)
{
return 0;
}
if(distancesquared(self.origin,self.var_205.origin) > 256)
{
return 0;
}
var_00 = self method_80E8();
if(isdefined(var_00) && var_00 != self.var_205 && self method_83D4(var_00))
{
self.var_1016F = 1;
self.var_10171 = var_00;
self.var_54C3 = 1;
wait(0.5);
return 1;
}
return 0;
}