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

361 lines
6.3 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\_lightbar.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 19
* Decompile Time: 774 ms
* Timestamp: 10/27/2023 12:20:47 AM
*******************************************************************/
//Function Number: 1
init()
{
}
//Function Number: 2
func_1768(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
if(param_04 == 0)
{
param_04 = undefined;
}
if(!isdefined(self.var_ACB1) || self.var_ACB1.size == 0)
{
var_06 = [];
var_06[0] = spawnstruct();
self.var_ACB1 = var_06;
}
else
{
var_07 = scripts\mp\_utility::cleanarray(self.var_ACB1);
self.var_ACB1 = var_07;
self.var_ACB1[self.var_ACB1.size] = spawnstruct();
}
self.var_ACB1[self.var_ACB1.size - 1].var_AAC5 = param_00;
self.var_ACB1[self.var_ACB1.size - 1].var_DAF8 = param_01;
self.var_ACB1[self.var_ACB1.size - 1].priority = param_02;
self.var_ACB1[self.var_ACB1.size - 1].var_636E = param_03;
self.var_ACB1[self.var_ACB1.size - 1].var_1190D = gettime();
self.var_ACB1[self.var_ACB1.size - 1].var_68D9 = 0;
self.var_ACB1[self.var_ACB1.size - 1].var_636F = param_05;
if(isdefined(param_04))
{
self.var_ACB1[self.var_ACB1.size - 1].time = param_04 * 1000;
}
else
{
self.var_ACB1[self.var_ACB1.size - 1].time = undefined;
}
if(isdefined(param_03) && param_03)
{
thread func_6336(self.var_ACB1[self.var_ACB1.size - 1]);
}
if(isdefined(param_05))
{
thread func_635B(param_05,self.var_ACB1[self.var_ACB1.size - 1]);
}
thread func_B2EE();
}
//Function Number: 3
func_B2EE()
{
self notify("manageLightBarStack");
self endon("manageLightBarStack");
self endon("disconnect");
for(;;)
{
wait(0.05);
if(self.var_ACB1.size > 1)
{
var_00 = func_E17F(self.var_ACB1);
var_01 = scripts\common\utility::func_22C3(var_00,::func_9BFF);
}
else
{
var_01 = self.var_ACB1;
}
if(var_01.size == 0)
{
return;
}
self.var_ACB1 = var_01;
var_02 = var_01[0];
if(var_02.var_68D9)
{
continue;
}
var_03 = !isdefined(self.var_ACB1[self.var_ACB1.size - 1].time);
var_04 = 0;
if(!var_03)
{
var_05 = gettime() - var_02.var_1190D;
var_04 = var_02.time - var_05;
var_04 = var_04 / 1000;
if(var_04 <= 0)
{
self.var_ACB1[0] notify("removed");
self.var_ACB1[0] = undefined;
func_4041();
func_B2EE();
}
}
if(var_03)
{
if(var_02.var_636E)
{
var_02 notify("executing");
var_02.var_68D9 = 1;
thread func_F464(var_02.var_AAC5,var_02.var_DAF8);
}
else
{
thread func_F463(var_02.var_AAC5,var_02.var_DAF8);
}
continue;
}
if(var_02.var_636E)
{
var_02 notify("executing");
var_02.var_68D9 = 1;
thread func_F460(var_02.var_AAC5,var_02.var_DAF8,var_04);
continue;
}
thread func_F45F(var_02.var_AAC5,var_02.var_DAF8,var_04);
}
}
//Function Number: 4
func_4041()
{
var_00 = scripts\mp\_utility::cleanarray(self.var_ACB1);
self.var_ACB1 = var_00;
}
//Function Number: 5
func_E17F(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isdefined(var_03.time))
{
var_01[var_01.size] = var_03;
continue;
}
var_04 = gettime() - var_03.var_1190D;
var_05 = var_03.time - var_04;
var_05 = var_05 / 1000;
if(var_05 > 0)
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 6
func_9BFF(param_00,param_01)
{
return param_00.priority > param_01.priority;
}
//Function Number: 7
func_F45C(param_00,param_01)
{
func_F465(param_01);
func_F45D(param_00);
func_F462();
}
//Function Number: 8
func_F45F(param_00,param_01,param_02)
{
self notify("set_lightbar_for_time");
self endon("set_lightbar_for_time");
func_F465(param_01);
func_F45D(param_00);
func_F462();
wait(param_02);
if(!isdefined(self))
{
return;
}
func_F461();
self.var_ACB1 = undefined;
func_4041();
}
//Function Number: 9
func_F463(param_00,param_01)
{
self notify("set_lightbar");
self endon("set_lightbar");
func_F465(param_01);
func_F45D(param_00);
func_F462();
}
//Function Number: 10
func_F45E(param_00,param_01)
{
func_F465(param_01);
func_F45D(param_00);
func_F462();
thread func_1295F();
}
//Function Number: 11
func_F460(param_00,param_01,param_02)
{
self notify("set_lightbar_for_time_endon_death");
self endon("set_lightbar_for_time_endon_death");
func_F465(param_01);
func_F45D(param_00);
func_F462();
thread func_1295F();
wait(param_02);
if(!isdefined(self))
{
return;
}
func_F461();
self.var_ACB1[0] notify("removed");
self.var_ACB1[0] = undefined;
func_4041();
}
//Function Number: 12
func_F464(param_00,param_01)
{
self notify("set_lightbar_endon_death");
self endon("set_lightbar_endon_death");
func_F465(param_01);
func_F45D(param_00);
func_F462();
thread func_1295F();
}
//Function Number: 13
func_6336(param_00)
{
self notify("endInactiveInstructionOnDeath");
self endon("endInactiveInstructionOnDeath");
param_00 endon("executing");
self waittill("death");
if(!isdefined(self))
{
return;
}
if(self.var_ACB1.size == 0)
{
return;
}
self.var_ACB1[0] notify("removed");
self.var_ACB1[0] = undefined;
func_4041();
}
//Function Number: 14
func_635B(param_00,param_01)
{
param_01 endon("removed");
if(isarray(param_00))
{
var_02 = scripts\common\utility::func_13730(param_00);
}
else
{
self waittill(param_00);
}
if(!isdefined(self))
{
return;
}
for(var_03 = 0;var_03 < self.var_ACB1.size;var_03++)
{
if(param_01 == self.var_ACB1[var_03])
{
if(param_01.var_68D9)
{
func_F461();
}
self.var_ACB1[var_03] = undefined;
func_4041();
return;
}
}
}
//Function Number: 15
func_1295F()
{
self notify("turn_Off_Light_Bar_On_Death");
self endon("turn_Off_Light_Bar_On_Death");
self waittill("death");
if(!isdefined(self))
{
return;
}
if(self.var_ACB1.size == 0)
{
return;
}
func_F461();
self.var_ACB1[0] notify("removed");
self.var_ACB1[0] = undefined;
func_4041();
}
//Function Number: 16
func_F45D(param_00)
{
self setclientomnvar("lb_color",param_00);
}
//Function Number: 17
func_F462()
{
self setclientomnvar("lb_gsc_controlled",1);
}
//Function Number: 18
func_F461()
{
self setclientomnvar("lb_gsc_controlled",0);
}
//Function Number: 19
func_F465(param_00)
{
self setclientomnvar("lb_pulse_time",param_00);
}