InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

277 lines
5.4 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: technical_lagos\common.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 13
* Decompile Time: 162 ms
* Timestamp: 4/22/2024 1:58:55 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
self endon("killanimscript");
animscripts\utility::initialize("saw");
if(!isdefined(param_00))
{
return;
}
self.a.special = "saw";
if(isdefined(param_00.script_delay_min))
{
var_01 = param_00.script_delay_min;
}
else
{
var_01 = maps\_mgturret::burst_fire_settings("delay");
}
if(isdefined(param_00.script_delay_max))
{
var_02 = param_00.script_delay_max - var_01;
}
else
{
var_02 = maps\_mgturret::burst_fire_settings("delay_range");
}
if(isdefined(param_00.script_burst_min))
{
var_03 = param_00.script_burst_min;
}
else
{
var_03 = maps\_mgturret::burst_fire_settings("burst");
}
if(isdefined(param_00.script_burst_max))
{
var_04 = param_00.script_burst_max - var_03;
}
else
{
var_04 = maps\_mgturret::burst_fire_settings("burst_range");
}
var_05 = gettime();
var_06 = "start";
animscripts\shared::placeweaponon(self.weapon,"none");
param_00 show();
if(isdefined(param_00.aiowner))
{
self.a.postscriptfunc = ::postscriptfunc;
self.a.usingturret = param_00;
param_00 notify("being_used");
thread stopusingturretwhennodelost();
}
else
{
self.a.postscriptfunc = ::preplacedpostscriptfunc;
}
param_00.dofiring = 0;
thread firecontroller(param_00);
self setturretanim(self.primaryturretanim);
self setanimknobrestart(self.primaryturretanim,1,0.2,1);
self setanimknoblimitedrestart(self.additiveturretidle);
self setanimknoblimitedrestart(self.additiveturretfire);
param_00 setanimknoblimitedrestart(param_00.additiveturretidle);
param_00 setanimknoblimitedrestart(param_00.additiveturretfire);
param_00 endon("death");
for(;;)
{
if(param_00.dofiring)
{
thread doshoot(param_00);
waittimeoruntilturretstatechange(randomfloatrange(var_03,var_03 + var_04),param_00);
param_00 notify("turretstatechange");
if(param_00.dofiring)
{
thread doaim(param_00);
wait(randomfloatrange(var_01,var_01 + var_02));
}
continue;
}
thread doaim(param_00);
param_00 waittill("turretstatechange");
}
}
//Function Number: 2
waittimeoruntilturretstatechange(param_00,param_01)
{
param_01 endon("turretstatechange");
wait(param_00);
}
//Function Number: 3
firecontroller(param_00)
{
self endon("killanimscript");
var_01 = cos(15);
for(;;)
{
while(isdefined(self.enemy))
{
var_02 = self.enemy.origin;
var_03 = param_00 gettagangles("tag_aim");
if(common_scripts\utility::within_fov(param_00.origin,var_03,var_02,var_01) || distancesquared(param_00.origin,var_02) < 40000)
{
if(!param_00.dofiring)
{
param_00.dofiring = 1;
param_00 notify("turretstatechange");
}
}
else if(param_00.dofiring)
{
param_00.dofiring = 0;
param_00 notify("turretstatechange");
}
wait(0.05);
}
if(param_00.dofiring)
{
param_00.dofiring = 0;
param_00 notify("turretstatechange");
}
wait(0.05);
}
}
//Function Number: 4
turrettimer(param_00,param_01)
{
if(param_00 <= 0)
{
return;
}
self endon("killanimscript");
param_01 endon("turretstatechange");
wait(param_00);
param_01 notify("turretstatechange");
}
//Function Number: 5
stopusingturretwhennodelost()
{
self endon("killanimscript");
for(;;)
{
if(!isdefined(self.node) || distancesquared(self.origin,self.node.origin) > 4096)
{
self stopuseturret();
}
wait(0.25);
}
}
//Function Number: 6
postscriptfunc(param_00)
{
if(param_00 == "pain")
{
if(isdefined(self.node) && distancesquared(self.origin,self.node.origin) < 4096)
{
self.a.usingturret hide();
animscripts\shared::placeweaponon(self.weapon,"right");
self.a.postscriptfunc = ::postpainfunc;
return;
}
else
{
self stopuseturret();
}
}
if(param_00 == "saw")
{
var_01 = self getturret();
return;
}
self.a.usingturret delete();
self.a.usingturret = undefined;
animscripts\shared::placeweaponon(self.weapon,"right");
}
//Function Number: 7
postpainfunc(param_00)
{
if(!isdefined(self.node) || distancesquared(self.origin,self.node.origin) > 4096)
{
self stopuseturret();
self.a.usingturret delete();
self.a.usingturret = undefined;
if(isdefined(self.weapon) && self.weapon != "none")
{
animscripts\shared::placeweaponon(self.weapon,"right");
return;
}
return;
}
if(param_00 != "saw")
{
self.a.usingturret delete();
}
}
//Function Number: 8
preplacedpostscriptfunc(param_00)
{
animscripts\shared::placeweaponon(self.weapon,"right");
}
//Function Number: 9
doshoot(param_00)
{
self setanim(%additive_saw_idle,0,0.1);
self setanim(%additive_saw_fire,1,0.1);
param_00 turretdoshootanims();
turretdoshoot(param_00);
}
//Function Number: 10
doaim(param_00)
{
self setanim(%additive_saw_idle,1,0.1);
self setanim(%additive_saw_fire,0,0.1);
param_00 turretdoaimanims();
}
//Function Number: 11
turretdoshoot(param_00)
{
self endon("killanimscript");
param_00 endon("turretstatechange");
for(;;)
{
param_00 shootturret();
wait(0.1);
}
}
//Function Number: 12
turretdoshootanims()
{
self setanim(%additive_saw_idle,0,0.1);
self setanim(%additive_saw_fire,1,0.1);
}
//Function Number: 13
turretdoaimanims()
{
self setanim(%additive_saw_idle,1,0.1);
self setanim(%additive_saw_fire,0,0.1);
}