IL-GSC/WW2/PC/ALL/1293.gsc
2023-10-27 03:49:01 -04:00

953 lines
19 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1293.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 40
* Decompile Time: 60 ms
* Timestamp: 10/27/2023 3:24:27 AM
*******************************************************************/
//Function Number: 1
func_00D5()
{
level.var_90B4 = 1.21;
setdvarifuninitialized("spawning_revised_domination",1);
setdvarifuninitialized("spawning_revised_teamdeathmatch",1);
setdvarifuninitialized("spawning_revised_capturetheflag",1);
setdvarifuninitialized("spawning_revised_hardpoint",1);
setdvarifuninitialized("spawning_revised_cornersighttraces",0);
setdvarifuninitialized("spawning_revised_frontline",0);
setdvarifuninitialized("spawning_revised_fatique",1);
if(getdvarint("spawning_revised_cornersighttraces") != 0 || getdvarint("spawning_revised_frontline") != 0 || getdvarint("spawning_revised_domination") == 0)
{
level.var_90B4 = 1.22;
}
level.var_5A77 = 5000;
level.var_94F3 = 0;
level.var_689B = 0;
level.var_689A = 0;
level.var_9068 = spawnstruct();
level.var_744A = [];
level.var_596C = [];
level.var_6E97 = [];
function_02CE();
level.var_486C = [];
level.var_6248 = [];
level.var_1FFD = [];
level.var_9F96 = [];
level.var_80D8 = [];
level.var_9FEA = [];
level.var_9BB5 = [];
level.var_395E = [];
level.var_7AD1["allies"] = [];
level.var_7AD1["axis"] = [];
level.var_7AD1["all"] = [];
level.var_7AD4["allies"] = [];
level.var_7AD4["axis"] = [];
level.var_7AD4["all"] = [];
lib_050C::func_534F();
lib_050E::func_5350();
level thread func_9091();
level thread func_9BCD();
level.var_9E41 = 1;
}
//Function Number: 2
func_908A(param_00,param_01)
{
var_02 = self;
if(!param_01)
{
level.var_907A = func_3915(level.var_907A,var_02.var_116);
level.var_9077 = func_3914(level.var_9077,var_02.var_116);
}
var_02.var_3E3E = anglestoforward(var_02.var_1D);
var_02.var_8C4D = var_02.var_116 + (0,0,50);
var_02.var_5BE2 = gettime();
var_02.var_6C97 = 1;
var_02.var_52B2 = 1;
var_02.var_5700 = param_00;
var_02.var_CAD = [];
var_03 = 1024;
if(!bullettracepassed(var_02.var_8C4D,var_02.var_8C4D + (0,0,var_03),0,undefined))
{
var_04 = var_02.var_8C4D + var_02.var_3E3E * 100;
if(!bullettracepassed(var_04,var_04 + (0,0,var_03),0,undefined))
{
var_02.var_6C97 = 0;
}
}
var_05 = anglestoright(var_02.var_1D);
if(!maps\mp\_utility::func_579B())
{
func_0996(var_02,var_02.var_116 + var_05 * 45);
func_0996(var_02,var_02.var_116 - var_05 * 45);
}
var_02.var_78CC = func_463E(var_02.var_116);
if(var_02.var_78CC.size <= 0)
{
if(!isdefined(level.var_585D) || !level.var_585D)
{
}
}
func_5351(var_02);
if(isdefined(var_02.var_165))
{
if((isdefined(game["switchedsides"]) && game["switchedsides"] && var_02.var_165 == "axis_override") || (!isdefined(game["switchedsides"]) || !game["switchedsides"]) && var_02.var_165 == "allies_override")
{
var_02.var_9849 = "allies";
}
else if((isdefined(game["switchedsides"]) && game["switchedsides"] && var_02.var_165 == "allies_override") || (!isdefined(game["switchedsides"]) || !game["switchedsides"]) && var_02.var_165 == "axis_override")
{
var_02.var_9849 = "axis";
}
if(isdefined(var_02.var_9849) && maps\mp\_utility::func_4571() == "mp_france_village" && level.var_3FDC == "ball")
{
var_02.var_9849 = maps\mp\_utility::func_45DE(var_02.var_9849);
}
}
}
//Function Number: 3
func_0996(param_00,param_01)
{
var_02 = playerphysicstrace(param_00.var_116,param_00.var_116 + (0,0,18));
var_03 = var_02[2] - param_00.var_116[2];
var_04 = (param_01[0],param_01[1],param_01[2] + var_03);
var_05 = playerphysicstrace(var_02,var_04);
if(var_05 != var_04)
{
return;
}
var_06 = function_0236(var_04);
if(abs(var_06[2] - param_01[2]) > 128)
{
return;
}
param_00.var_CAD[param_00.var_CAD.size] = var_06;
}
//Function Number: 4
func_9BCD()
{
for(;;)
{
level.var_486C = getentarray("grenade","classname");
level.var_6248 = getentarray("rocket","classname");
level.var_1FFD = getentarray("care_package","targetname");
wait 0.05;
}
}
//Function Number: 5
func_10E5(param_00,param_01)
{
if(isdefined(game["switchedsides"]) && game["switchedsides"])
{
param_00 = maps\mp\_utility::func_45DE(param_00);
}
if(isdefined(level.var_9307) && isdefined(level.var_9307[param_00]))
{
}
level.var_9307[param_00] = param_01;
if(!isdefined(level.var_908E))
{
level.var_908E = [];
}
level.var_908F[param_00] = [];
var_02 = setstartspawnpoints(param_01,param_00);
if(!var_02.size)
{
return;
}
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03] func_908A(0,0);
level.var_908E[level.var_908E.size] = var_02[var_03];
level.var_908F[param_00][level.var_908F[param_00].size] = var_02[var_03];
}
foreach(var_05 in var_02)
{
var_05.var_7702 = 1;
var_06 = anglestoforward(var_05.var_1D);
foreach(var_08 in var_02)
{
if(var_05 == var_08)
{
continue;
}
var_09 = vectornormalize(var_08.var_116 - var_05.var_116);
var_0A = vectordot(var_06,var_09);
if(var_0A > 0.86)
{
var_05.var_7702 = 0;
break;
}
}
}
}
//Function Number: 6
func_10DF(param_00)
{
level.var_8FDC = param_00;
level.var_908C = [];
var_01 = setgamespawnpoints(level.var_8FDC);
if(!var_01.size)
{
}
foreach(var_03 in var_01)
{
if(!isdefined(var_03.var_52B2))
{
var_03 func_908A(1,0);
level.var_908C[level.var_908C.size] = var_03;
}
}
}
//Function Number: 7
func_10DC(param_00)
{
level.var_908C = [];
var_01 = function_027A("mp/spawnClasses.csv");
for(var_02 = 0;var_02 < var_01;var_02++)
{
var_03 = tablelookupbyrow("mp/spawnClasses.csv",var_02,1);
var_04 = [];
var_04 = setgamespawnpoints(var_03);
if(!var_04.size)
{
}
foreach(var_06 in var_04)
{
if(!isdefined(var_06.var_52B2))
{
var_06 func_908A(1,0);
level.var_908C[level.var_908C.size] = var_06;
}
}
}
level.var_8FDC = param_00;
}
//Function Number: 8
func_10E4()
{
var_00 = tablelookup("mp/spawnClasses.csv",0,level.var_3FDC,2);
var_01 = tablelookup("mp/spawnClasses.csv",0,level.var_3FDC,3);
var_02 = tablelookup("mp/spawnClasses.csv",0,level.var_3FDC,1);
level.var_907A = (0,0,0);
level.var_9077 = (0,0,0);
if(isdefined(var_00) && var_00 != "none")
{
func_10E5("allies",var_00);
}
if(isdefined(var_01) && var_01 != "none")
{
func_10E5("axis",var_01);
}
if(getdvarint("5234",0) == 1)
{
func_10DC(var_02);
}
else if(isdefined(var_02) && var_02 != "none")
{
func_10DF(var_02);
}
j_//nullsub_350();
level.var_5FEB = func_3B89(level.var_907A,level.var_9077);
if(level.var_3FDC == "air" || level.var_3FDC == "aces")
{
level.var_5FEB = (0,0,0);
}
if(maps\mp\_utility::func_4571() == "mp_shipment_s2")
{
level.var_5FEB = (-938.5,7275.5,-476);
}
else if(maps\mp\_utility::func_4571() == "mp_sandbox_01")
{
level.var_5FEB = (470,30.5,920);
}
setmapcenter(level.var_5FEB);
lib_050E::func_2B5D();
}
//Function Number: 9
func_5661(param_00,param_01)
{
if(!isdefined(param_01.var_1A5) || param_01.var_1A5 == "")
{
return 1;
}
if(issubstr(param_01.var_1A5,param_00))
{
return 1;
}
return 0;
}
//Function Number: 10
func_28C0(param_00,param_01)
{
if(!isdefined(param_00))
{
param_00 = "free";
}
var_02 = [];
var_03 = getgamespawnpointactivelabel(param_00);
if(level.var_3FDC == "zombies" && isdefined(level.zombies_active_spawn_event))
{
var_03 = level.zombies_active_spawn_event;
}
foreach(var_05 in param_01)
{
if(func_5661(var_03,var_05))
{
var_02 = common_scripts\utility::func_972(var_02,var_05);
}
}
return var_02;
}
//Function Number: 11
func_46A0(param_00)
{
if(!isdefined(param_00) && isdefined(level.var_908E) && level.var_908E.size > 0)
{
return level.var_908E;
}
if(isdefined(param_00) && isdefined(level.var_908F) && isdefined(level.var_908F[param_00]) && level.var_908F[param_00].size > 0)
{
return level.var_908F[param_00];
}
return level.var_908C;
}
//Function Number: 12
func_44F9(param_00)
{
if(isdefined(level.var_908C) && level.var_908C.size > 0)
{
var_01 = level.var_908C;
}
else if(!isdefined(var_01))
{
var_01 = level.var_908E;
}
else
{
var_01 = level.var_908F[var_01];
}
return func_28C0(param_00,var_01);
}
//Function Number: 13
func_448B(param_00)
{
if(!isdefined(param_00))
{
return level.var_908E;
}
return level.var_908F[param_00];
}
//Function Number: 14
func_448A(param_00)
{
return level.var_908C;
}
//Function Number: 15
func_3F9B()
{
return isdefined(level.var_908C) && level.var_908C.size > 0 && isdefined(level.var_908F["allies"]) && level.var_908F["allies"].size > 0 && isdefined(level.var_908F["axis"]) && level.var_908F["axis"].size > 0;
}
//Function Number: 16
func_3ACC(param_00)
{
var_01 = "zombie_checkpoint_" + getdvarint("scr_zombieCheckpoint",0);
var_02 = "zombie_safe_haven_" + getdvarint("scr_zombieSafeHaven",0);
var_03 = [];
foreach(var_05 in param_00)
{
if(isdefined(var_05.var_1A5))
{
if(function_02C6(var_05.var_1A5,"zombie_event_spawn_"))
{
continue;
}
}
if(isdefined(var_05.var_165))
{
if(function_02C6(var_05.var_165,"zombie_safe_haven_"))
{
if(var_05.var_165 != var_02)
{
continue;
}
}
if(function_02C6(var_05.var_165,"zombie_checkpoint_"))
{
if(var_05.var_165 != var_01)
{
continue;
}
}
}
var_03[var_03.size] = var_05;
}
if(var_03.size == 0)
{
var_03 = param_00;
}
return var_03;
}
//Function Number: 17
filterspawnpointszombiesactiveevent(param_00)
{
var_01 = "zombie_event_spawn_";
if(isdefined(level.zombies_active_spawn_event))
{
var_01 = var_01 + level.zombies_active_spawn_event;
}
var_02 = [];
var_03 = [];
foreach(var_05 in param_00)
{
if(isdefined(var_05.var_1A5) && var_05.var_1A5 == var_01)
{
var_02[var_02.size] = var_05;
continue;
}
if(!isdefined(var_05.var_1A5) || var_05.var_1A5 == "")
{
var_03[var_03.size] = var_05;
}
}
if(var_02.size == 0)
{
if(var_03.size > 0)
{
var_02 = var_03;
}
else
{
var_02 = param_00;
}
}
return var_02;
}
//Function Number: 18
func_908D(param_00,param_01)
{
var_02 = param_00.var_487A;
var_03 = param_01.var_487A;
var_04["allies"] = 0;
var_04["axis"] = 0;
foreach(var_06 in func_448A())
{
var_07 = undefined;
var_08 = undefined;
if(func_5770())
{
var_07 = getpathdist(var_06.var_116,var_02,999999);
var_08 = getpathdist(var_06.var_116,var_03,999999);
}
if(!isdefined(var_07) || var_07 == -1)
{
var_07 = distancesquared(var_02,var_06.var_116);
}
if(!isdefined(var_08) || var_08 == -1)
{
var_08 = distancesquared(var_03,var_06.var_116);
}
if(!isdefined(var_06.var_9849))
{
iprintlnbold("Side-Based Spawn Point not assigned to a side at ( " + var_06.var_116[0] + ", " + var_06.var_116[1] + ", " + var_06.var_116[2] + " )");
continue;
}
var_06.var_984B = var_04[var_06.var_9849];
var_04[var_06.var_9849]++;
if(var_06.var_9849 == "allies")
{
var_06.var_3ED1 = param_00;
var_06.var_3ED2 = var_07;
var_06.var_3767 = var_08;
}
else
{
var_06.var_3ED1 = param_01;
var_06.var_3ED2 = var_08;
var_06.var_3767 = var_07;
}
var_09 = var_06.var_3ED2 / var_06.var_3767;
if(!isdefined(var_06.var_3ED1.var_4D3F) || var_06.var_3ED1.var_4D3F < var_09)
{
var_06.var_3ED1.var_4D3F = var_09;
}
if(!isdefined(var_06.var_3ED1.var_645F) || var_06.var_3ED1.var_645F == -1 || var_06.var_3767 < var_06.var_3ED1.var_645F)
{
var_06.var_3ED1.var_645F = var_06.var_3767;
}
}
foreach(var_06 in func_448A())
{
var_06.var_984A = var_04[var_06.var_9849];
}
}
//Function Number: 19
func_5770()
{
if(!isdefined(level.var_6ED7))
{
var_00 = getallnodes();
level.var_6ED7 = isdefined(var_00) && var_00.size > 150;
}
return level.var_6ED7;
}
//Function Number: 20
func_09FA()
{
level.var_6E97[level.var_6E97.size] = self;
}
//Function Number: 21
func_7CDF()
{
var_00 = 0;
for(var_01 = 0;var_01 < level.var_6E97.size;var_01++)
{
if(level.var_6E97[var_01] == self)
{
var_00 = 1;
while(var_01 < level.var_6E97.size - 1)
{
level.var_6E97[var_01] = level.var_6E97[var_01 + 1];
var_01++;
}
level.var_6E97[var_01] = undefined;
break;
}
}
}
//Function Number: 22
func_9091()
{
if(isdefined(level.var_585D) && level.var_585D)
{
return;
}
if(isdefined(level.var_A259) && level.var_A259)
{
return;
}
while(!isdefined(level.var_8FDC) && !isdefined(level.var_9307) || !isdefined(level.var_9307["allies"]))
{
wait 0.05;
}
if(getdvarint("5234",0) == 1)
{
}
var_00 = [];
if(isdefined(level.var_8FDC))
{
if(level.var_908C.size == 0)
{
common_scripts\utility::func_3809("Cannot generate visibility data. No Spawnpoints found.");
}
for(var_01 = 0;var_01 < level.var_908C.size;var_01++)
{
for(var_02 = 0;var_02 < level.var_908C[var_01].var_78CC.size;var_02++)
{
var_00[var_00.size] = level.var_908C[var_01].var_78CC[var_02];
}
}
}
if(var_00.size > 0 || maps\mp\_utility::func_579B())
{
function_0305(var_00,level.var_9036["LOSDistance"]);
return;
}
if(isdefined(level.var_8FDC))
{
var_03 = "Cannot generate visibility data. There are no \'" + level.var_8FDC + "\' pathnodes near any spawnpoints.";
foreach(var_05 in var_00)
{
var_03 = var_03 + "\nNode at " + var_05.var_116;
}
var_03 = var_03 + "\nMake sure you compile with Connect Paths checked";
common_scripts\utility::func_3809(var_03);
if(getdvarint("5234",0) != 0)
{
function_0308(-1);
return;
}
}
}
//Function Number: 23
func_4402()
{
var_00 = function_02D6();
foreach(var_02 in var_00)
{
var_02.var_9076 = function_02D5(var_02);
}
return var_00;
}
//Function Number: 24
func_A167()
{
level.var_90B5 = func_4402();
foreach(var_01 in level.var_90B5)
{
var_01.var_90B6 = undefined;
}
foreach(var_04 in level.var_9F96)
{
var_04.var_9076 = function_02D5(var_04);
level.var_90B5[level.var_90B5.size] = var_04;
var_04.var_90B6 = undefined;
}
foreach(var_07 in level.var_9FEA)
{
var_07.var_9076 = function_02D5(var_07);
level.var_90B5[level.var_90B5.size] = var_07;
var_07.var_90B6 = undefined;
}
}
//Function Number: 25
func_8BA8(param_00,param_01)
{
var_02 = 0;
foreach(var_04 in level.var_6E97)
{
if(!function_02ED(var_04))
{
var_02++;
}
}
if(param_01 + var_02 > param_00)
{
return 1;
}
return 0;
}
//Function Number: 26
func_5351(param_00)
{
func_240E(param_00);
}
//Function Number: 27
func_240E(param_00)
{
if(level.var_984D)
{
foreach(var_02 in level.var_985B)
{
func_2410(param_00,var_02);
}
return;
}
func_2410(param_00,"none");
}
//Function Number: 28
func_2410(param_00,param_01)
{
param_00.var_3EFF[param_01] = 0;
param_00.var_266E[param_01] = 0;
param_00.var_5EAD[param_01] = 0;
param_00.var_6221[param_01] = 1;
}
//Function Number: 29
func_3B4A(param_00)
{
var_01 = gettime();
self.var_5BE0 = param_00;
self.var_5BE2 = var_01;
param_00.var_5BE2 = var_01;
param_00.var_5BE1 = self.var_1A7;
var_02["position"] = param_00.var_116;
var_02["time"] = var_01;
if(level.var_984D)
{
level.var_7AD4[self.var_1A7][level.var_7AD4[self.var_1A7].size] = var_02;
return;
}
var_02["player"] = self.var_48CA;
level.var_7AD4["all"][level.var_7AD4["all"].size] = var_02;
}
//Function Number: 30
func_3916(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
level.var_907A = func_3915(level.var_907A,param_00[var_01].var_116);
level.var_9077 = func_3914(level.var_9077,param_00[var_01].var_116);
}
}
//Function Number: 31
func_3915(param_00,param_01)
{
if(param_00[0] > param_01[0])
{
param_00 = (param_01[0],param_00[1],param_00[2]);
}
if(param_00[1] > param_01[1])
{
param_00 = (param_00[0],param_01[1],param_00[2]);
}
if(param_00[2] > param_01[2])
{
param_00 = (param_00[0],param_00[1],param_01[2]);
}
return param_00;
}
//Function Number: 32
func_3914(param_00,param_01)
{
if(param_00[0] < param_01[0])
{
param_00 = (param_01[0],param_00[1],param_00[2]);
}
if(param_00[1] < param_01[1])
{
param_00 = (param_00[0],param_01[1],param_00[2]);
}
if(param_00[2] < param_01[2])
{
param_00 = (param_00[0],param_00[1],param_01[2]);
}
return param_00;
}
//Function Number: 33
func_3B89(param_00,param_01)
{
var_02 = (0,0,0);
var_02 = param_01 - param_00;
var_02 = (var_02[0] / 2,var_02[1] / 2,var_02[2] / 2) + param_00;
return var_02;
}
//Function Number: 34
func_86C5()
{
level.var_907A = (0,0,0);
level.var_9077 = (0,0,0);
func_3916(setstartspawnpoints("mp_tdm_spawn_allies_start","allies"));
func_3916(setstartspawnpoints("mp_tdm_spawn_axis_start","axis"));
level.var_5FEB = func_3B89(level.var_907A,level.var_9077);
j_//nullsub_350();
setmapcenter(level.var_5FEB);
}
//Function Number: 35
func_463E(param_00)
{
var_01 = [];
var_02 = function_00BA(param_00);
if(isdefined(var_02))
{
var_01[0] = var_02;
}
if(!isdefined(var_02))
{
var_01 = getnodesinradius(param_00,func_445F(),0,256,"path");
if(var_01.size == 0)
{
var_01 = getnodesinradius(param_00,250,0,256,"path");
}
}
return var_01;
}
//Function Number: 36
func_3892(param_00,param_01)
{
var_02 = maps\mp\gametypes\_gameobjects::func_44B9(param_01);
func_2410(param_00,var_02);
var_03 = undefined;
var_04 = func_580F();
var_05 = getdvarfloat("scr_lowerLimitFullSights");
var_06 = getdvarfloat("scr_lowerLimitCornerSights");
foreach(var_08 in level.var_90B5)
{
if(isdefined(level.valid_spawn_viewer) && ![[ level.valid_spawn_viewer ]](var_08))
{
continue;
}
if(level.var_984D && var_08.var_9076 != var_02)
{
continue;
}
if(param_00.var_3EFF[var_08.var_9076])
{
break;
}
if(!isdefined(var_08.var_90B6))
{
var_08.var_90B6 = var_08 method_859E(func_44D5());
if(!isdefined(var_08.var_90B6) || var_08.var_90B6.size == 0)
{
if(isdefined(level.var_602F) && var_04 && isplayer(var_08))
{
if(!isdefined(var_08.var_5BCA) || var_08.var_5BCA != gettime())
{
[[ level.var_602F ]]("LOG_GENERIC_MESSAGE",gettime(),"WARNING: Could not use TTLOS data for player " + var_08.var_109);
var_08.var_5BCA = gettime();
}
}
}
}
var_09 = [];
if(var_04 && isdefined(var_08.var_90B6) && var_08.var_90B6.size > 0)
{
var_09 = precomputedlosdatatest(var_08.var_90B6,param_00.var_78CC);
if(isdefined(var_09))
{
var_03 = var_09[0];
}
}
if(!isdefined(var_03))
{
var_03 = 0;
}
if(!isdefined(param_00.var_6221[var_08.var_9076]) || var_03 < param_00.var_6221[var_08.var_9076])
{
param_00.var_6221[var_08.var_9076] = var_03;
}
if(var_03 > var_05)
{
param_00.var_3EFF[var_08.var_9076]++;
param_00.var_5EAD[var_08.var_9076]++;
continue;
}
if(var_03 > var_06)
{
param_00.var_266E[var_08.var_9076]++;
}
}
}
//Function Number: 37
func_445F()
{
return 130;
}
//Function Number: 38
func_44D5()
{
return 250;
}
//Function Number: 39
func_4576()
{
return 2550;
}
//Function Number: 40
func_580F()
{
return function_0304();
}