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

387 lines
6.7 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\_entityheadicons.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 11
* Decompile Time: 579 ms
* Timestamp: 10/27/2023 12:15:13 AM
*******************************************************************/
//Function Number: 1
init()
{
if(isdefined(level.var_9801))
{
return;
}
level.var_9801 = 1;
if(level.multiteambased)
{
foreach(var_01 in level.teamnamelist)
{
var_02 = "entity_headicon_" + var_01;
game[var_02] = scripts\mp\_teams::func_BD71(var_01);
precacheshader(game[var_02]);
}
return;
}
game["entity_headicon_allies"] = scripts\mp\_teams::func_81B0("allies");
game["entity_headicon_axis"] = scripts\mp\_teams::func_81B0("axis");
precacheshader(game["entity_headicon_allies"]);
precacheshader(game["entity_headicon_axis"]);
}
//Function Number: 2
func_F73D(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(scripts\mp\_utility::func_9E0E(param_00) && !isplayer(param_00))
{
return;
}
if(!isdefined(self.var_6647))
{
self.var_6647 = [];
}
if(!isdefined(param_05))
{
param_05 = 1;
}
if(!isdefined(param_06))
{
param_06 = 0.05;
}
if(!isdefined(param_07))
{
param_07 = 1;
}
if(!isdefined(param_08))
{
param_08 = 1;
}
if(!isdefined(param_09))
{
param_09 = 0;
}
if(!isdefined(param_0A))
{
param_0A = 1;
}
if(!isplayer(param_00) && param_00 == "none")
{
foreach(var_0D, var_0C in self.var_6647)
{
if(isdefined(var_0C))
{
var_0C destroy();
}
self.var_6647[var_0D] = undefined;
}
return;
}
if(isplayer(param_03))
{
if(isdefined(self.var_6647[param_03.var_86BD]))
{
self.var_6647[param_03.var_86BD] destroy();
self.var_6647[param_03.var_86BD] = undefined;
}
if(param_04 == "")
{
return;
}
if(isdefined(param_03.team))
{
if(isdefined(self.var_6647[param_03.team]))
{
self.var_6647[param_03.team] destroy();
self.var_6647[param_03.team] = undefined;
}
}
var_0C = newclienthudelem(param_03);
self.var_6647[param_02.var_86BD] = var_0D;
}
else
{
if(isdefined(self.var_6647[param_03]))
{
self.var_6647[param_03] destroy();
self.var_6647[param_03] = undefined;
}
if(param_04 == "")
{
return;
}
foreach(var_0E in self.var_6647)
{
if(var_10 == "axis" || var_10 == "allies")
{
continue;
}
var_0F = scripts\mp\_utility::func_8071(var_10);
if(var_0F.team == param_01)
{
self.var_6647[var_10] destroy();
self.var_6647[var_10] = undefined;
}
}
var_0C = newteamhudelem(param_01);
self.var_6647[param_01] = var_0C;
}
if(!isdefined(param_04) || !isdefined(param_05))
{
param_04 = 10;
param_05 = 10;
}
var_0C.archived = param_06;
var_0C.x = self.origin[0] + param_03[0];
var_0C.y = self.origin[1] + param_03[1];
var_0C.var_3A6 = self.origin[2] + param_03[2];
var_0C.alpha = 0.85;
var_0C setshader(param_02,param_04,param_05);
var_0C setwaypoint(param_08,param_09,param_0A,var_0B);
var_0C thread func_A57C(self,param_03,param_07);
thread func_531F();
if(isplayer(param_01))
{
var_0C thread func_5320(param_01);
}
if(isplayer(self))
{
var_0C thread func_5320(self);
}
return var_0C;
}
//Function Number: 3
func_5320(param_00)
{
self endon("death");
param_00 waittill("disconnect");
self destroy();
}
//Function Number: 4
func_531F()
{
self notify("destroyIconsOnDeath");
self endon("destroyIconsOnDeath");
self waittill("death");
if(!isdefined(self.var_6647))
{
return;
}
foreach(var_01 in self.var_6647)
{
if(!isdefined(var_01))
{
continue;
}
var_01 destroy();
}
}
//Function Number: 5
func_A57C(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("death");
param_00 endon("disconnect");
var_03 = isdefined(param_00.classname) && !func_9ED0(param_00);
if(var_03)
{
self linkwaypointtotargetwithoffset(param_00,param_01);
}
for(;;)
{
if(!isdefined(param_00))
{
return;
}
if(!var_03)
{
var_04 = param_00.origin;
self.x = var_04[0] + param_01[0];
self.y = var_04[1] + param_01[1];
self.var_3A6 = var_04[2] + param_01[2];
}
if(param_02 > 0.05)
{
self.alpha = 0.85;
self fadeovertime(param_02);
self.alpha = 0;
}
wait(param_02);
}
}
//Function Number: 6
func_9ED0(param_00)
{
return isdefined(param_00.var_336) && param_00.var_336 == "care_package";
}
//Function Number: 7
func_F73E(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("disconnect");
wait(param_02);
if(level.teambased)
{
func_F877(param_00.team,param_01);
return;
}
func_F7F2(param_00,param_01);
}
//Function Number: 8
func_F877(param_00,param_01)
{
if(!level.teambased)
{
return;
}
if(!isdefined(self.var_6648))
{
self.var_6648 = "none";
self.var_6644 = undefined;
}
var_02 = game["entity_headicon_" + param_00];
self.var_6648 = param_00;
if(isdefined(param_01))
{
self.var_6645 = param_01;
}
else
{
self.var_6645 = (0,0,0);
}
self notify("kill_entity_headicon_thread");
if(param_00 == "none")
{
if(isdefined(self.var_6644))
{
self.var_6644 destroy();
}
return;
}
var_03 = newteamhudelem(param_00);
var_03.archived = 1;
var_03.x = self.origin[0] + self.var_6645[0];
var_03.y = self.origin[1] + self.var_6645[1];
var_03.var_3A6 = self.origin[2] + self.var_6645[2];
var_03.origin = (var_03.x,var_03.y,var_03.var_3A6);
var_03.alpha = 1;
var_03 setshader(var_02,10,10);
var_03 setwaypoint(0,0,0,1);
self.var_6644 = var_03;
thread func_A578();
thread func_531E();
}
//Function Number: 9
func_F7F2(param_00,param_01)
{
if(level.teambased)
{
return;
}
if(!isdefined(self.var_6648))
{
self.var_6648 = "none";
self.var_6644 = undefined;
}
self notify("kill_entity_headicon_thread");
if(!isdefined(param_00))
{
if(isdefined(self.var_6644))
{
self.var_6644 destroy();
}
return;
}
var_02 = param_00.team;
self.var_6648 = var_02;
if(isdefined(param_01))
{
self.var_6645 = param_01;
}
else
{
self.var_6645 = (0,0,0);
}
var_03 = game["entity_headicon_" + var_02];
var_04 = newclienthudelem(param_00);
var_04.archived = 1;
var_04.x = self.origin[0] + self.var_6645[0];
var_04.y = self.origin[1] + self.var_6645[1];
var_04.var_3A6 = self.origin[2] + self.var_6645[2];
var_04.alpha = 0.8;
var_04 setshader(var_03,10,10);
var_04 setwaypoint(0,0,0,1);
self.var_6644 = var_04;
thread func_A578();
thread func_531E();
}
//Function Number: 10
func_A578()
{
self.var_6644 linkwaypointtotargetwithoffset(self,self.var_6645);
}
//Function Number: 11
func_531E()
{
self endon("kill_entity_headicon_thread");
self waittill("death");
if(!isdefined(self.var_6644))
{
return;
}
self.var_6644 destroy();
}