mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 10:27:55 -05:00
558 lines
9.6 KiB
Plaintext
558 lines
9.6 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\mp\_outline.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 23
|
|
* Decompile Time: 866 ms
|
|
* Timestamp: 10/27/2023 12:21:09 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
level.var_C79F = 0;
|
|
level.var_C797 = [];
|
|
level.outlineidspending = [];
|
|
level thread func_C788();
|
|
level thread func_C7A4();
|
|
level thread outlineidswatchpending();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_C796(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
if(!isdefined(param_00.var_C7AE))
|
|
{
|
|
param_00.var_C7AE = [];
|
|
}
|
|
|
|
var_08 = spawnstruct();
|
|
var_08.isdisabled = 0;
|
|
var_08.priority = param_05;
|
|
var_08.var_43A6 = param_01;
|
|
var_08.var_D432 = param_02;
|
|
var_08.playersvisibletopending = [];
|
|
var_08.var_525C = param_03;
|
|
var_08.var_6C10 = param_04;
|
|
var_08.type = param_06;
|
|
if(param_06 == "TEAM")
|
|
{
|
|
var_08.team = param_07;
|
|
}
|
|
|
|
var_09 = func_C79A();
|
|
param_00.var_C7AE[var_09] = var_08;
|
|
func_C787(param_00);
|
|
var_0A = [];
|
|
foreach(var_0C in var_08.var_D432)
|
|
{
|
|
if(!canoutlineforplayer(var_0C))
|
|
{
|
|
var_08.playersvisibletopending[var_08.playersvisibletopending.size] = var_0C;
|
|
level.outlineidspending[var_09] = param_00;
|
|
continue;
|
|
}
|
|
|
|
var_0D = func_C79B(param_00,var_0C);
|
|
if(!isdefined(var_0D) || var_0D == var_08 || var_0D.priority == var_08.priority)
|
|
{
|
|
var_0A[var_0A.size] = var_0C;
|
|
}
|
|
}
|
|
|
|
if(var_0A.size > 0)
|
|
{
|
|
param_00 _hudoutlineenableforclients(var_0A,var_08.var_43A6,var_08.var_525C,var_08.var_6C10);
|
|
}
|
|
|
|
return var_09;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_C790(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
level.var_C797 = scripts\common\utility::func_22BC(level.var_C797);
|
|
return;
|
|
}
|
|
else if(!isdefined(param_01.var_C7AE))
|
|
{
|
|
func_C7AC(param_01);
|
|
return;
|
|
}
|
|
|
|
var_02 = param_01.var_C7AE[param_00];
|
|
if(!isdefined(var_02) || var_02.isdisabled)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02.isdisabled = 1;
|
|
foreach(var_04 in var_02.var_D432)
|
|
{
|
|
if(!isdefined(var_04))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!canoutlineforplayer(var_04))
|
|
{
|
|
var_02.playersvisibletopending[var_02.playersvisibletopending.size] = var_04;
|
|
level.outlineidspending[param_00] = param_01;
|
|
continue;
|
|
}
|
|
|
|
var_05 = func_C79B(param_01,var_04);
|
|
if(isdefined(var_05))
|
|
{
|
|
if(var_05.priority <= var_02.priority)
|
|
{
|
|
param_01 _hudoutlineenableforclient(var_04,var_05.var_43A6,var_05.var_525C,var_05.var_6C10);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
param_01 hudoutlinedisableforclient(var_04);
|
|
}
|
|
|
|
if(var_02.playersvisibletopending.size == 0)
|
|
{
|
|
param_01.var_C7AE[param_00] = undefined;
|
|
if(param_01.var_C7AE.size == 0)
|
|
{
|
|
func_C7AC(param_01);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_C7AB(param_00)
|
|
{
|
|
if(!isdefined(param_00.var_C7AE) || param_00.var_C7AE.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_02 in param_00.var_C7AE)
|
|
{
|
|
if(!isdefined(var_02) || var_02.isdisabled)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
foreach(var_04 in var_02.var_D432)
|
|
{
|
|
if(!isdefined(var_04))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = func_C79B(param_00,var_04);
|
|
if(isdefined(var_05))
|
|
{
|
|
param_00 _hudoutlineenableforclient(var_04,var_05.var_43A6,var_05.var_525C,var_05.var_6C10);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_C788()
|
|
{
|
|
for(;;)
|
|
{
|
|
level waittill("connected",var_00);
|
|
level thread func_C7A3(var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_C7A3(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
param_00 waittill("disconnect");
|
|
func_C7AD(param_00);
|
|
func_C791(param_00);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_C7A4()
|
|
{
|
|
for(;;)
|
|
{
|
|
level waittill("joined_team",var_00);
|
|
if(!isdefined(var_00.team) || var_00.team == "spectator")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
thread func_C7A5(var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_C7A5(param_00)
|
|
{
|
|
param_00 notify("outlineOnPlayerJoinedTeam_onFirstSpawn");
|
|
param_00 endon("outlineOnPlayerJoinedTeam_onFirstSpawn");
|
|
param_00 endon("disconnect");
|
|
param_00 waittill("spawned_player");
|
|
func_C7AD(param_00);
|
|
func_C791(param_00);
|
|
func_C786(param_00);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_C7AD(param_00)
|
|
{
|
|
level.var_C797 = scripts\common\utility::func_22BC(level.var_C797);
|
|
foreach(var_02 in level.var_C797)
|
|
{
|
|
var_03 = 0;
|
|
foreach(var_05 in var_02.var_C7AE)
|
|
{
|
|
var_05.var_D432 = scripts\common\utility::func_22BC(var_05.var_D432);
|
|
if(isdefined(param_00) && scripts\common\utility::func_2286(var_05.var_D432,param_00))
|
|
{
|
|
var_05.var_D432 = scripts\common\utility::func_22A9(var_05.var_D432,param_00);
|
|
var_03 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_03 && isdefined(var_02) && isdefined(param_00))
|
|
{
|
|
var_02 hudoutlinedisableforclient(param_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_C786(param_00)
|
|
{
|
|
foreach(var_02 in level.var_C797)
|
|
{
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 = undefined;
|
|
foreach(var_05 in var_02.var_C7AE)
|
|
{
|
|
if(var_05.type == "ALL" || var_05.type == "TEAM" && var_05.team == param_00.team)
|
|
{
|
|
if(!scripts\common\utility::func_2286(var_05.var_D432,param_00))
|
|
{
|
|
var_05.var_D432[var_05.var_D432.size] = param_00;
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
if(!isdefined(var_03) || var_05.priority > var_03.priority)
|
|
{
|
|
var_03 = var_05;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
var_02 _hudoutlineenableforclient(param_00,var_03.var_43A6,var_03.var_525C,var_03.var_6C10);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_C791(param_00)
|
|
{
|
|
if(!isdefined(param_00) || !isdefined(param_00.var_C7AE) || param_00.var_C7AE.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_03, var_02 in param_00.var_C7AE)
|
|
{
|
|
func_C790(var_03,param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_C787(param_00)
|
|
{
|
|
if(!scripts\common\utility::func_2286(level.var_C797,param_00))
|
|
{
|
|
level.var_C797[level.var_C797.size] = param_00;
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_C7AC(param_00)
|
|
{
|
|
level.var_C797 = scripts\common\utility::func_22A9(level.var_C797,param_00);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_C79C(param_00)
|
|
{
|
|
var_01 = -1;
|
|
if(!isdefined(param_00.var_C7AE) || param_00.size == 0)
|
|
{
|
|
return var_01;
|
|
}
|
|
|
|
var_02 = undefined;
|
|
foreach(var_05, var_04 in param_00.var_C7AE)
|
|
{
|
|
if(!isdefined(var_04) || var_04.isdisabled)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_02) || var_04.priority > var_02.priority)
|
|
{
|
|
var_02 = var_04;
|
|
var_01 = var_05;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_C79B(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
if(!isdefined(param_00.var_C7AE) || param_00.size == 0)
|
|
{
|
|
return var_02;
|
|
}
|
|
|
|
foreach(var_04 in param_00.var_C7AE)
|
|
{
|
|
if(!isdefined(var_04) || var_04.isdisabled)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::func_2286(var_04.var_D432,param_01) && !isdefined(var_02) || var_04.priority > var_02.priority)
|
|
{
|
|
var_02 = var_04;
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_C79A()
|
|
{
|
|
level.var_C79F++;
|
|
return level.var_C79F;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_C7A9(param_00)
|
|
{
|
|
param_00 = tolower(param_00);
|
|
var_01 = undefined;
|
|
switch(param_00)
|
|
{
|
|
case "lowest":
|
|
var_01 = 0;
|
|
break;
|
|
|
|
case "level_script":
|
|
var_01 = 1;
|
|
break;
|
|
|
|
case "equipment":
|
|
var_01 = 2;
|
|
break;
|
|
|
|
case "perk":
|
|
var_01 = 3;
|
|
break;
|
|
|
|
case "perk_superior":
|
|
var_01 = 4;
|
|
break;
|
|
|
|
case "killstreak":
|
|
var_01 = 5;
|
|
break;
|
|
|
|
case "killstreak_personal":
|
|
var_01 = 6;
|
|
break;
|
|
|
|
default:
|
|
var_01 = 0;
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_C78A(param_00)
|
|
{
|
|
param_00 = tolower(param_00);
|
|
var_01 = undefined;
|
|
switch(param_00)
|
|
{
|
|
case "white":
|
|
var_01 = 0;
|
|
break;
|
|
|
|
case "red":
|
|
var_01 = 1;
|
|
break;
|
|
|
|
case "green":
|
|
var_01 = 2;
|
|
break;
|
|
|
|
case "cyan":
|
|
var_01 = 3;
|
|
break;
|
|
|
|
case "orange":
|
|
var_01 = 4;
|
|
break;
|
|
|
|
case "yellow":
|
|
var_01 = 5;
|
|
break;
|
|
|
|
case "blue":
|
|
var_01 = 6;
|
|
break;
|
|
|
|
case "none":
|
|
var_01 = 7;
|
|
break;
|
|
|
|
default:
|
|
var_01 = 0;
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 19
|
|
outlineidswatchpending()
|
|
{
|
|
for(;;)
|
|
{
|
|
waittillframeend;
|
|
foreach(var_03, var_01 in level.outlineidspending)
|
|
{
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_01.var_C7AE))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = var_01.var_C7AE[var_03];
|
|
if(!isdefined(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_02.playersvisibletopending.size > 0)
|
|
{
|
|
if(outlinerefreshpending(var_01,var_03))
|
|
{
|
|
level.outlineidspending[var_03] = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
outlinerefreshpending(param_00,param_01)
|
|
{
|
|
var_02 = param_00.var_C7AE[param_01];
|
|
foreach(var_06, var_04 in var_02.playersvisibletopending)
|
|
{
|
|
if(!isdefined(var_04))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(canoutlineforplayer(var_04))
|
|
{
|
|
var_05 = func_C79B(param_00,var_04);
|
|
if(isdefined(var_05))
|
|
{
|
|
param_00 hudoutlineenableforclient(var_04,var_05.var_43A6,var_05.var_525C,var_05.var_6C10);
|
|
}
|
|
else
|
|
{
|
|
param_00 hudoutlinedisableforclient(var_04);
|
|
}
|
|
|
|
var_02.playersvisibletopending[var_06] = undefined;
|
|
}
|
|
}
|
|
|
|
var_02.playersvisibletopending = scripts\common\utility::func_22BC(var_02.playersvisibletopending);
|
|
if(var_02.playersvisibletopending.size == 0)
|
|
{
|
|
if(var_02.isdisabled)
|
|
{
|
|
param_00.var_C7AE[param_01] = undefined;
|
|
}
|
|
|
|
if(param_00.var_C7AE.size == 0)
|
|
{
|
|
func_C7AC(param_00);
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 21
|
|
canoutlineforplayer(param_00)
|
|
{
|
|
return param_00.sessionstate != "spectator";
|
|
}
|
|
|
|
//Function Number: 22
|
|
_hudoutlineenableforclient(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_01 == 7)
|
|
{
|
|
self hudoutlinedisableforclient(param_00);
|
|
return;
|
|
}
|
|
|
|
self hudoutlineenableforclient(param_00,param_01,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 23
|
|
_hudoutlineenableforclients(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(param_01 == 7)
|
|
{
|
|
self method_818D(param_00);
|
|
return;
|
|
}
|
|
|
|
self method_8190(param_00,param_01,param_02,param_03);
|
|
} |