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

1007 lines
18 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\sp\_hud_util.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 42
* Decompile Time: 2021 ms
* Timestamp: 10/27/2023 12:24:32 AM
*******************************************************************/
//Function Number: 1
setparent(param_00)
{
if(isdefined(self.parent) && self.parent == param_00)
{
return;
}
if(isdefined(self.parent))
{
self.parent removechild(self);
}
self.parent = param_00;
self.parent addchild(self);
if(isdefined(self.point))
{
setpoint(self.point,self.relativepoint,self.xoffset,self.yoffset);
return;
}
setpoint("TOPLEFT");
}
//Function Number: 2
getparent()
{
return self.parent;
}
//Function Number: 3
removedestroyedchildren()
{
if(isdefined(self.childchecktime) && self.childchecktime == gettime())
{
return;
}
self.childchecktime = gettime();
var_00 = [];
foreach(var_02 in self.children)
{
if(!isdefined(var_02))
{
continue;
}
var_02.index = var_00.size;
var_00[var_00.size] = var_02;
}
self.children = var_00;
}
//Function Number: 4
addchild(param_00)
{
param_00.index = self.children.size;
self.children[self.children.size] = param_00;
removedestroyedchildren();
}
//Function Number: 5
removechild(param_00)
{
param_00.parent = undefined;
if(self.children[self.children.size - 1] != param_00)
{
self.children[param_00.index] = self.children[self.children.size - 1];
self.children[param_00.index].index = param_00.index;
}
self.children[self.children.size - 1] = undefined;
param_00.index = undefined;
}
//Function Number: 6
setpoint(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_04))
{
param_04 = 0;
}
var_05 = getparent();
if(param_04)
{
self moveovertime(param_04);
}
if(!isdefined(param_02))
{
param_02 = 0;
}
self.xoffset = param_02;
if(!isdefined(param_03))
{
param_03 = 0;
}
self.yoffset = param_03;
self.point = param_00;
self.alignx = "center";
self.aligny = "middle";
if(issubstr(param_00,"TOP"))
{
self.aligny = "top";
}
if(issubstr(param_00,"BOTTOM"))
{
self.aligny = "bottom";
}
if(issubstr(param_00,"LEFT"))
{
self.alignx = "left";
}
if(issubstr(param_00,"RIGHT"))
{
self.alignx = "right";
}
if(!isdefined(param_01))
{
param_01 = param_00;
}
self.relativepoint = param_01;
var_06 = "center";
var_07 = "middle";
if(issubstr(param_01,"TOP"))
{
var_07 = "top";
}
if(issubstr(param_01,"BOTTOM"))
{
var_07 = "bottom";
}
if(issubstr(param_01,"LEFT"))
{
var_06 = "left";
}
if(issubstr(param_01,"RIGHT"))
{
var_06 = "right";
}
if(var_05 == level.uiparent)
{
self.horzalign = var_06;
self.vertalign = var_07;
}
else
{
self.horzalign = var_05.horzalign;
self.vertalign = var_05.vertalign;
}
if(var_06 == var_05.alignx)
{
var_08 = 0;
var_09 = 0;
}
else if(var_08 == "center" || var_07.alignx == "center")
{
var_08 = int(var_07.width / 2);
if(var_07 == "left" || var_06.alignx == "right")
{
var_09 = -1;
}
else
{
var_09 = 1;
}
}
else
{
var_08 = var_07.width;
if(var_07 == "left")
{
var_09 = -1;
}
else
{
var_09 = 1;
}
}
self.x = var_05.x + var_08 * var_09;
if(var_07 == var_05.aligny)
{
var_0A = 0;
var_0B = 0;
}
else if(var_09 == "middle" || var_07.aligny == "middle")
{
var_0A = int(var_07.height / 2);
if(var_08 == "top" || var_06.aligny == "bottom")
{
var_0B = -1;
}
else
{
var_0B = 1;
}
}
else
{
var_0A = var_07.height;
if(var_08 == "top")
{
var_0B = -1;
}
else
{
var_0B = 1;
}
}
self.y = var_05.y + var_0A * var_0B;
self.x = self.x + self.xoffset;
self.y = self.y + self.yoffset;
switch(self.elemtype)
{
case "bar":
setpointbar(param_00,param_01,param_02,param_03);
break;
}
updatechildren(param_04);
}
//Function Number: 7
setpointbar(param_00,param_01,param_02,param_03)
{
self.bar.horzalign = self.horzalign;
self.bar.vertalign = self.vertalign;
self.bar.alignx = "left";
self.bar.aligny = self.aligny;
self.bar.y = self.y;
if(self.alignx == "left")
{
self.bar.x = self.x + self.var_13E1E;
}
else if(self.alignx == "right")
{
self.bar.x = self.x - self.width - self.var_13E1E;
}
else
{
self.bar.x = self.x - int(self.width - self.var_13E1E * 2 / 2);
}
updatebar(self.bar.frac);
}
//Function Number: 8
updatebar(param_00)
{
var_01 = int(self.width - self.var_13E1E * 2 * param_00);
if(!var_01)
{
var_01 = 1;
}
self.bar.frac = param_00;
self.bar setshader(self.bar.shader,var_01,self.height - self.var_13E5D * 2);
}
//Function Number: 9
func_8EB9(param_00)
{
param_00 = scripts\common\utility::func_116D7(isdefined(param_00),param_00,1);
if(param_00 || !isdefined(self.var_C708) || !isdefined(self.bar.var_C708))
{
self.var_C708 = self.alpha;
self.bar.var_C708 = self.bar.alpha;
}
self.alpha = scripts\common\utility::func_116D7(param_00,0,self.var_C708);
self.bar.alpha = scripts\common\utility::func_116D7(param_00,0,self.bar.var_C708);
}
//Function Number: 10
createfontstring(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 11
func_4999(param_00,param_01)
{
var_02 = newclienthudelem(self);
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 12
func_499D(param_00,param_01)
{
var_02 = newclienthudelem(self);
var_02.elemtype = "timer";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 13
createserverfontstring(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 14
createservertimer(param_00,param_01)
{
var_02 = newhudelem();
var_02.elemtype = "timer";
var_02.font = param_00;
var_02.fontscale = param_01;
var_02.x = 0;
var_02.y = 0;
var_02.width = 0;
var_02.height = int(level.fontheight * param_01);
var_02.xoffset = 0;
var_02.yoffset = 0;
var_02.children = [];
var_02 setparent(level.uiparent);
return var_02;
}
//Function Number: 15
createicon(param_00,param_01,param_02)
{
var_03 = newhudelem();
return func_49DA(var_03,param_00,param_01,param_02);
}
//Function Number: 16
func_499B(param_00,param_01,param_02)
{
var_03 = newclienthudelem(self);
return func_49DA(var_03,param_00,param_01,param_02);
}
//Function Number: 17
func_49DA(param_00,param_01,param_02,param_03)
{
param_00.elemtype = "icon";
param_00.x = 0;
param_00.y = 0;
param_00.width = param_02;
param_00.height = param_03;
param_00.xoffset = 0;
param_00.yoffset = 0;
param_00.children = [];
param_00 setparent(level.uiparent);
if(isdefined(param_01))
{
param_00 setshader(param_01,param_02,param_03);
}
return param_00;
}
//Function Number: 18
createbar(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_00))
{
param_00 = "white";
}
if(!isdefined(param_01))
{
param_01 = "black";
}
if(!isdefined(param_02))
{
param_02 = 100;
}
if(!isdefined(param_03))
{
param_03 = 9;
}
var_05 = newhudelem();
var_05.x = 2;
var_05.y = 2;
var_05.frac = 0.25;
var_05.shader = param_00;
var_05.sort = -1;
var_05 setshader(param_00,param_02 - 2,param_03 - 2);
if(isdefined(param_04))
{
var_05.flashfrac = param_04;
var_05 thread flashthread();
}
var_06 = newhudelem();
var_06.elemtype = "bar";
var_06.x = 0;
var_06.y = 0;
var_06.width = param_02;
var_06.height = param_03;
var_06.xoffset = 0;
var_06.yoffset = 0;
var_06.bar = var_05;
var_06.children = [];
var_06.var_C85E = 2;
var_06.sort = -2;
var_06.alpha = 0.5;
var_06 setparent(level.uiparent);
var_06 setshader(param_01,param_02,param_03);
return var_06;
}
//Function Number: 19
func_499C(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
param_00 = scripts\common\utility::func_116D7(isdefined(param_00),param_00,level.player);
param_01 = scripts\common\utility::func_116D7(isdefined(param_01),param_01,90);
param_02 = scripts\common\utility::func_116D7(isdefined(param_02),param_02,"white");
param_03 = scripts\common\utility::func_116D7(isdefined(param_03),param_03,"black");
param_04 = scripts\common\utility::func_116D7(isdefined(param_04),param_04,100);
param_05 = scripts\common\utility::func_116D7(isdefined(param_05),param_05,9);
param_06 = scripts\common\utility::func_116D7(isdefined(param_06),param_06,2);
param_07 = scripts\common\utility::func_116D7(isdefined(param_07),param_07,2);
var_08 = param_00 func_4997(param_02,param_03,param_04,param_05,undefined,param_06,param_07);
var_08 setpoint("CENTER",undefined,0,param_01);
return var_08;
}
//Function Number: 20
func_4997(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(!isdefined(param_05))
{
param_05 = 2;
}
if(!isdefined(param_06))
{
param_06 = 2;
}
var_07 = newclienthudelem(self);
var_07.x = 0 - param_05;
var_07.y = 0 - param_06;
var_07.frac = 0.25;
var_07.shader = param_00;
var_07.sort = -1;
var_07 setshader(param_00,param_02 - param_05 * 2,param_03 - param_06 * 2);
if(isdefined(param_04))
{
var_07.flashfrac = param_04;
var_07 thread flashthread();
}
var_08 = newclienthudelem(self);
var_08.elemtype = "bar";
var_08.x = 0;
var_08.y = 0;
var_08.width = param_02;
var_08.height = param_03;
var_08.xoffset = -1 * param_05;
var_08.yoffset = 0;
var_08.bar = var_07;
var_08.children = [];
var_08.var_13E1E = param_05;
var_08.var_13E5D = param_06;
var_08.sort = -2;
var_08.alpha = 0.5;
var_08 setparent(level.uiparent);
var_08 setshader(param_01,param_02,param_03);
return var_08;
}
//Function Number: 21
setflashfrac(param_00)
{
self.bar.flashfrac = param_00;
}
//Function Number: 22
func_6AAB(param_00,param_01)
{
if(isdefined(param_01) && param_01 > 0)
{
self fadeovertime(param_01);
}
self.alpha = param_00;
if(isdefined(param_01) && param_01 > 0)
{
wait(param_01);
}
}
//Function Number: 23
flashthread()
{
self endon("death");
self.alpha = 1;
for(;;)
{
if(self.frac >= self.flashfrac)
{
self fadeovertime(0.3);
self.alpha = 0.2;
wait(0.35);
self fadeovertime(0.3);
self.alpha = 1;
wait(0.7);
continue;
}
self.alpha = 1;
wait(0.05);
}
}
//Function Number: 24
destroyelem()
{
if(isdefined(self.children) && self.children.size)
{
var_00 = [];
for(var_01 = 0;var_01 < self.children.size;var_01++)
{
var_00[var_01] = self.children[var_01];
}
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01] setparent(getparent());
}
}
if(isdefined(self.elemtype) && self.elemtype == "bar")
{
self.bar destroy();
}
self destroy();
}
//Function Number: 25
seticonshader(param_00)
{
self setshader(param_00,self.width,self.height);
}
//Function Number: 26
setwidth(param_00)
{
self.width = param_00;
}
//Function Number: 27
setheight(param_00)
{
self.height = param_00;
}
//Function Number: 28
setsize(param_00,param_01)
{
self.width = param_00;
self.height = param_01;
}
//Function Number: 29
updatechildren(param_00)
{
for(var_01 = 0;var_01 < self.children.size;var_01++)
{
var_02 = self.children[var_01];
var_02 setpoint(var_02.point,var_02.relativepoint,var_02.xoffset,var_02.yoffset,param_00);
}
}
//Function Number: 30
func_10B56(param_00)
{
if(isdefined(param_00) && param_00 == 0)
{
func_10B55();
return;
}
if(isdefined(level.var_10B54))
{
level.var_10B54 destroy();
}
function_01C5("hud_showStance","0");
level.var_10B54 = newhudelem();
level.var_10B54.x = -75;
if(level.console)
{
level.var_10B54.y = -20;
}
else
{
level.var_10B54.y = -10;
}
level.var_10B54 setshader("stance_carry",64,64);
level.var_10B54.alignx = "right";
level.var_10B54.aligny = "bottom";
level.var_10B54.horzalign = "right";
level.var_10B54.vertalign = "bottom";
level.var_10B54.foreground = 1;
level.var_10B54.alpha = 0;
level.var_10B54 fadeovertime(0.5);
level.var_10B54.alpha = 1;
}
//Function Number: 31
func_10B55()
{
if(isdefined(level.var_10B54))
{
level.var_10B54 fadeovertime(0.5);
level.var_10B54.alpha = 0;
level.var_10B54 destroy();
}
function_01C5("hud_showStance","1");
}
//Function Number: 32
func_491A()
{
if(level.console)
{
var_00 = createfontstring("default",1.8);
var_00 setpoint("CENTER",undefined,-23,115);
var_00 settext(level.var_1114E["mantle"]);
var_01 = createicon("hint_mantle",40,40);
var_01 setpoint("CENTER",undefined,73,0);
var_01 setparent(var_00);
}
else
{
var_00 = createfontstring("default",1.6);
var_01 setpoint("CENTER",undefined,0,115);
var_01 settext(level.var_1114E["mantle"]);
var_01 = createicon("hint_mantle",40,40);
var_01 setpoint("CENTER",undefined,0,30);
var_01 setparent(var_00);
}
var_01.alpha = 0;
var_00.alpha = 0;
level.var_9153 = [];
level.var_9153["text"] = var_00;
level.var_9153["icon"] = var_01;
}
//Function Number: 33
func_78E6(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 0;
}
var_04 = undefined;
if(!level.console)
{
var_04 = -250;
}
else if(!isdefined(param_00))
{
var_04 = -225;
}
else
{
var_04 = param_00;
}
if(param_03)
{
var_04 = param_00;
}
if(!isdefined(param_01))
{
var_05 = 100;
}
else
{
var_05 = param_02;
}
if(isdefined(param_02))
{
var_06 = newclienthudelem(param_02);
}
else
{
var_06 = newhudelem();
}
var_06.alignx = "left";
var_06.aligny = "middle";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.x = var_04;
var_06.y = var_05;
var_06.fontscale = 1.6;
var_06.color = (0.8,1,0.8);
var_06.font = "objective";
var_06.var_154 = (0.3,0.6,0.3);
var_06.var_153 = 1;
var_06.foreground = 1;
var_06.hidewheninmenu = 1;
var_06.var_175 = 1;
return var_06;
}
//Function Number: 34
func_7956(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 0;
}
var_04 = undefined;
if(!level.console)
{
var_04 = -250;
}
else if(!isdefined(param_00))
{
var_04 = -170;
}
else
{
var_04 = param_00;
}
if(param_03)
{
var_04 = param_00;
}
if(!isdefined(param_01))
{
var_05 = 100;
}
else
{
var_05 = param_02;
}
if(isdefined(param_02))
{
var_06 = newclienthudelem(param_02);
}
else
{
var_06 = newhudelem();
}
var_06.alignx = "right";
var_06.aligny = "middle";
var_06.horzalign = "right";
var_06.vertalign = "top";
var_06.x = var_04;
var_06.y = var_05;
var_06.fontscale = 1.6;
var_06.color = (0.8,1,0.8);
var_06.font = "objective";
var_06.var_154 = (0.3,0.6,0.3);
var_06.var_153 = 1;
var_06.foreground = 1;
var_06.hidewheninmenu = 1;
var_06.var_175 = 1;
return var_06;
}
//Function Number: 35
func_48B7(param_00,param_01,param_02)
{
if(isdefined(param_02))
{
var_03 = newclienthudelem(param_02);
}
else
{
var_03 = newhudelem();
}
var_03.x = 0;
var_03.y = 0;
var_03 setshader(param_00,640,480);
var_03.alignx = "left";
var_03.aligny = "top";
var_03.sort = 1;
var_03.horzalign = "fullscreen";
var_03.vertalign = "fullscreen";
var_03.alpha = param_01;
var_03.foreground = 1;
return var_03;
}
//Function Number: 36
func_48B8(param_00,param_01,param_02,param_03,param_04)
{
var_05 = scripts\sp\_utility::func_7B92();
var_06 = newclienthudelem(var_05);
if(!isdefined(param_04))
{
param_04 = 1;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
var_06.x = param_02;
var_06.y = param_03;
var_06 setshader(param_00,int(640 * param_04),int(480 * param_04));
var_06.alignx = "center";
var_06.aligny = "middle";
var_06.sort = 1;
var_06.horzalign = "center";
var_06.vertalign = "middle";
var_06.alpha = param_01;
var_06.foreground = 1;
return var_06;
}
//Function Number: 37
func_48B9(param_00,param_01,param_02,param_03,param_04)
{
var_05 = scripts\sp\_utility::func_7B92();
var_06 = newclienthudelem(var_05);
if(!isdefined(param_04))
{
param_04 = 1;
}
var_06.x = param_02;
var_06.y = param_03;
var_06 setshader(param_00,int(640 * param_04),int(480 * param_04));
var_06.alignx = "center";
var_06.aligny = "middle";
var_06.sort = 1;
var_06.horzalign = "fullscreen";
var_06.vertalign = "fullscreen";
var_06.alpha = param_01;
var_06.foreground = 1;
return var_06;
}
//Function Number: 38
func_6A99(param_00,param_01)
{
if(level.var_B8D0)
{
return;
}
if(!isdefined(param_00))
{
param_00 = 0.3;
}
var_02 = func_7B4F(param_01);
var_02 fadeovertime(param_00);
var_02.alpha = 0;
wait(param_00);
}
//Function Number: 39
func_7B4F(param_00)
{
if(!isdefined(param_00))
{
param_00 = "black";
}
return func_7B5D(param_00);
}
//Function Number: 40
func_6AA3(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = 0.3;
}
var_02 = func_7B4F(param_01);
if(param_00 > 0)
{
var_02 fadeovertime(param_00);
}
var_02.alpha = 1;
wait(param_00);
}
//Function Number: 41
func_10CCC(param_00)
{
var_01 = func_7B4F(param_00);
var_01.alpha = 1;
}
//Function Number: 42
func_7B5D(param_00)
{
if(isplayer(self))
{
var_01 = self;
}
else
{
var_01 = level.player;
}
if(!isdefined(var_01.var_C7FD))
{
var_01.var_C7FD = [];
}
if(!isdefined(var_01.var_C7FD[param_00]))
{
var_01.var_C7FD[param_00] = func_48B7(param_00,0,var_01);
}
var_01.var_C7FD[param_00].sort = 0;
var_01.var_C7FD[param_00].foreground = 1;
return var_01.var_C7FD[param_00];
}