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

693 lines
15 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1277.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 23
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 3:24:16 AM
*******************************************************************/
//Function Number: 1
flagsobjectiveinit(param_00)
{
var_01 = [0.1,0.5,1,2,3,5,7.5,10,12.5,15];
lib_04FF::func_6934(param_00);
lib_04FF::func_6963("pauseDuringTransitionDelay",0);
lib_04FF::func_6963("pointTransitionDelay",0,var_01);
lib_04FF::func_6963("captureTime",10,var_01);
lib_04FF::func_6964("flagsCapFunc",undefined);
func_1D4D();
thread flagsobjectivethink();
level.var_695E[level.var_695E.size] = ::flagobjectiveonplayerkilled;
}
//Function Number: 2
flagobjectiveonplayerkilled(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
var_0A = self;
if(isdefined(var_0A.raisingflag) && var_0A.raisingflag)
{
lib_0502::raidawardflagraiserkillevent(param_01);
}
}
//Function Number: 3
flagsobjectivethink()
{
self endon("end_think");
self.var_62C7 = self;
lib_04FF::func_6983(self.var_695A);
self.var_292D = 0;
self.var_2929 = 0;
self.var_21DC = [];
setomnvar("ui_assault_objective_update",self.var_292D);
setomnvar("ui_assault_objective_complete",1);
thread momentumwatchgameend();
foreach(var_01 in self.var_62CF)
{
if(common_scripts\utility::func_562E(var_01.var_5758))
{
self.var_21DC[self.var_21DC.size] = clamp(var_01.var_62C6 / self.var_62CF.size,0,1);
}
}
wait(0.1);
self.var_62CF[self.var_292D] thread func_08B1();
for(;;)
{
self waittill("momentumCapture",var_03);
if(var_03 == game["attackers"])
{
level notify("momentum_point_" + self.var_292D + "_attackers");
self.var_62CF[self.var_292D] thread func_2A78();
self.var_292D++;
if(self.var_292D >= self.var_62CF.size)
{
lib_04FF::func_6935(self.var_695A);
wait(1);
return;
}
if(self.var_62CF[self.var_292D].var_5758)
{
self.var_2929++;
}
self.var_62CF[self.var_292D] thread func_08B1();
}
else if(var_03 == game["defenders"])
{
level notify("momentum_point_" + self.var_292D + "_defenders");
if(self.var_292D <= 0)
{
}
self.var_62CF[self.var_292D] thread func_2A78();
self.var_292D--;
self.var_62CF[self.var_292D] thread func_08B1();
}
else
{
}
setomnvar("ui_assault_objective_update",self.var_292D);
}
}
//Function Number: 4
momentumwatchgameend()
{
level waittill("game_ended");
setomnvar("ui_assault_objective_complete",0);
}
//Function Number: 5
func_86CE(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 0;
}
var_02 = 0;
var_03 = 1;
if(isdefined(self.var_62C7.var_21DC[self.var_62C7.var_2929]))
{
var_03 = self.var_62C7.var_21DC[self.var_62C7.var_2929];
}
if(self.var_62C7.var_2929 >= 1)
{
var_02 = self.var_62C7.var_21DC[self.var_62C7.var_2929 - 1];
}
var_04 = clamp(self.var_62C7.var_292D / self.var_62C7.var_62CF.size,0,1);
var_05 = clamp(var_04 - var_02 / var_03 - var_02,0,1);
var_06 = int(var_05 * 10000);
self.var_62C7.var_62CF[self.var_62C7.var_292D].var_695D lib_04FF::func_860D(param_00);
if(param_01)
{
self.var_62C7.var_62CF[self.var_62C7.var_292D].var_695D lib_04FF::func_8615(var_06,param_00,var_02,var_03);
return;
}
self.var_62C7.var_62CF[self.var_62C7.var_292D].var_695D lib_04FF::func_8617("taking",param_00);
}
//Function Number: 6
func_1D4D()
{
self.var_62CF = [];
var_00 = undefined;
for(var_00 = func_45A7();isdefined(var_00);var_00 = var_00 func_45A7())
{
var_00 thread func_62D0(self,self.var_62CF.size);
self.var_62CF[self.var_62CF.size] = var_00;
}
if(self.var_62CF.size == 0)
{
}
}
//Function Number: 7
func_45A7()
{
if(!isdefined(self.var_1A2))
{
return undefined;
}
var_00 = [];
var_01 = getentarray(self.var_1A2,"targetname");
foreach(var_03 in var_01)
{
if(!isdefined(var_03.var_165))
{
var_03.var_165 = "trigger";
}
if(var_03.var_165 == "trigger")
{
var_00[var_00.size] = var_03;
}
}
if(var_00.size <= 0)
{
return undefined;
}
if(var_00.size != 1)
{
return undefined;
}
return var_00[0];
}
//Function Number: 8
func_4592()
{
var_00 = [];
if(isdefined(self.var_1A2))
{
var_01 = getentarray(self.var_1A2,"targetname");
foreach(var_03 in var_01)
{
if(!isdefined(var_03.var_165))
{
continue;
}
if(var_03.var_165 == "visuals")
{
var_00[var_00.size] = var_03;
}
}
}
return var_00;
}
//Function Number: 9
handleflagoutline(param_00)
{
level endon("game_ended");
self endon("disableFlag");
self notify("teamFlagOutline");
self endon("teamFlagOutline");
var_01 = game["defenders"];
var_02 = self.flagpole;
var_03 = 0;
var_04 = 1;
var_05 = 2;
for(;;)
{
if(param_00)
{
var_06 = [];
var_07 = [];
foreach(var_09 in level.var_744A)
{
if(var_09.var_1A7 == var_01 || var_09.var_1A7 == "spectator")
{
var_07[var_07.size] = var_09;
continue;
}
var_06[var_06.size] = var_09;
}
if(var_07.size > 0)
{
var_02 hudoutlineenableforclients(var_07,var_04,1);
}
if(var_06.size > 0)
{
var_02 hudoutlineenableforclients(var_06,var_05,1);
}
}
else if(level.var_744A.size > 0)
{
var_02 hudoutlineenableforclients(level.var_744A,var_03,1);
}
level waittill("joined_team");
}
}
//Function Number: 10
handleflaguse()
{
level endon("game_ended");
self endon("disableFlag");
var_00 = game["defenders"];
var_01 = self.var_9D65;
foreach(var_03 in level.var_744A)
{
if(var_03.var_1A7 == var_00 || var_03.var_1A7 == "spectator")
{
var_01 disableplayeruse(var_03);
continue;
}
if(var_03.var_1A7 != var_00)
{
var_01 enableplayeruse(var_03);
}
}
for(;;)
{
level waittill("joined_team",var_03);
if(var_03.var_1A7 == var_00 || var_03.var_1A7 == "spectator")
{
var_01 disableplayeruse(var_03);
continue;
}
if(var_03.var_1A7 != var_00)
{
var_01 enableplayeruse(var_03);
}
}
}
//Function Number: 11
disableflaguse()
{
level endon("game_ended");
self endon("activateFlag");
var_00 = self.var_9D65;
foreach(var_02 in level.var_744A)
{
var_00 disableplayeruse(var_02);
}
var_04 = self.flagpole;
var_04 handleobjsheen(0);
for(;;)
{
level waittill("joined_team",var_02);
var_00 disableplayeruse(var_02);
}
}
//Function Number: 12
func_62D0(param_00,param_01)
{
lib_04FF::func_6942(self);
self.var_62C7 = param_00;
self.var_62C6 = param_01;
self.var_5758 = isdefined(self.var_8260) && self.var_8260 == "isCheckpoint";
var_02 = func_4592();
foreach(var_04 in var_02)
{
var_04 lib_0502::func_7997();
}
var_06 = getent(self.var_81EF,"script_linkname");
var_07 = getent(var_06.var_81EF,"script_linkname");
var_08 = getent(var_07.var_81EF,"script_linkname");
var_06 method_805C();
lib_04FF::func_6983(self.var_62C7.var_695A);
var_09 = lib_04FF::func_45CE(self);
var_0A = "flags_raiseTime_" + param_01;
var_0B = maps\mp\gametypes\_gameobjects::func_2837(game["attackers"],self,var_02,var_09,0,1);
var_0B maps\mp\gametypes\_gameobjects::func_C30("friendly");
var_0B maps\mp\gametypes\_gameobjects::func_8740("friendly",self.var_62C7 lib_04FF::func_45D0("captureTime"));
var_0B maps\mp\gametypes\_gameobjects::func_8740("enemy",self.var_62C7 lib_04FF::func_45D0("captureTime"));
var_0B maps\mp\gametypes\_gameobjects::func_8A59(&"MP_SECURING_POSITION");
var_0B maps\mp\gametypes\_gameobjects::func_8A57(&"RAIDS_RAISE_FLAG");
var_0B maps\mp\gametypes\_gameobjects::func_8A5A(lib_0501::func_4647(var_0A));
var_0B.alliedflag = var_06;
var_0B.axisflag = var_07;
var_0B.flagpole = var_08;
var_0B thread disableflaguse();
var_0B.var_681A = 0;
var_0C = var_0B maps\mp\gametypes\_gameobjects::func_454C();
var_0B.var_E5 = var_0C;
var_0B maps\mp\gametypes\_gameobjects::func_8A60("friendly");
var_0B.var_6ABC = ::func_62CA;
var_0B.var_6AFA = ::func_62CB;
var_0B.var_6BBF = ::func_62CC;
var_0B.var_A23E = 21;
var_0B.var_5F95 = 1;
var_0B.var_502A = "raidZoneCaptureTwar";
var_0B.var_59DD = 1;
var_0B.var_A248 = "war_hammer_assemble_mp";
var_0B.var_113F = 0;
var_0B.var_4B25 = 0;
var_0B.var_62C7 = param_00;
var_0B.var_A22B = 1;
var_0B.var_76EB = 0;
var_0B.var_76E3 = 0;
var_0B.var_76E4 = 0;
self.var_695D = var_0B;
var_0B thread updateflagprogress();
lib_04FF::func_6982(self.var_62C7.var_695A);
self notify("end_think");
self notify("end_hud");
var_0B maps\mp\gametypes\_gameobjects::func_2F93();
var_0B maps\mp\gametypes\_gameobjects::deleteuseobjectobjectives();
waittillframeend;
var_0B maps\mp\gametypes\_gameobjects::func_2D58();
}
//Function Number: 13
updateflagprogress()
{
var_00 = self.alliedflag;
var_01 = self.axisflag;
var_02 = var_01.var_116;
var_03 = var_00.var_116;
var_04 = self.var_A23F;
var_05 = distance(var_02,var_03);
var_06 = vectornormalize(var_02 - var_03);
var_07 = var_04 / 2;
var_08 = 1;
for(;;)
{
var_09 = self.var_28D5;
if(var_09 < var_07)
{
var_0A = var_09 / var_07;
var_01.var_116 = var_02 - var_05 * var_06 * var_0A;
}
else
{
if(var_08)
{
var_00 method_805B();
var_01 method_805C();
var_08 = 0;
}
var_0A = var_09 - var_07 / var_07;
var_00.var_116 = var_03 + var_05 * var_06 * var_0A;
}
wait 0.05;
}
}
//Function Number: 14
handleobjsheen(param_00)
{
if(param_00 == 1)
{
if(isdefined(self.var_8260))
{
self setmodel(self.var_8260);
return;
}
return;
}
if(param_00 == 0)
{
if(isdefined(self.var_6C4C))
{
self setmodel(self.var_6C4C);
return;
}
}
}
//Function Number: 15
func_08B1()
{
self.var_695D notify("activateFlag");
self.var_695D thread handleflaguse();
self.var_695D.flagpole.var_6C4C = self.var_695D.flagpole.var_106;
self.var_695D.flagpole handleobjsheen(1);
self.var_695D maps\mp\gametypes\_gameobjects::func_8A60("any");
foreach(var_01 in self.var_695D.var_A582)
{
var_01 lib_0502::func_79C6();
}
var_03 = 0;
var_04 = 1;
if(isdefined(self.var_62C7.var_21DC[self.var_62C7.var_2929]))
{
var_04 = self.var_62C7.var_21DC[self.var_62C7.var_2929];
}
if(self.var_62C7.var_2929 >= 1)
{
var_03 = self.var_62C7.var_21DC[self.var_62C7.var_2929 - 1];
}
var_05 = self.var_62C7 lib_04FF::func_45D0("captureTime");
self.var_695D lib_04FF::func_990(self.var_116,undefined,undefined,var_05 * 1000,24,0,1);
self.var_695D.var_A6E8 = 1;
lib_04FF::func_79B2(self.var_695A);
if(self.var_62C7 lib_04FF::func_45D0("pauseDuringTransitionDelay"))
{
setomnvar("ui_war_pause_timer",1);
maps\mp\gametypes\_gamelogic::func_6F27();
}
var_06 = self.var_62C7 lib_04FF::func_45D0("pointTransitionDelay");
if(var_06 > 0)
{
wait(var_06);
}
self.var_695D.var_A6E8 = 0;
if(self.var_62C7 lib_04FF::func_45D0("pauseDuringTransitionDelay"))
{
setomnvar("ui_war_pause_timer",0);
maps\mp\gametypes\_gamelogic::func_7DFC();
}
lib_04FF::func_79B3(self.var_695A);
if(!self.var_695D func_62C5())
{
self.var_695D maps\mp\gametypes\_gameobjects::func_C30("any");
self.var_695D lib_04FF::func_860D(135);
self.var_695D lib_04FF::func_8614(135);
}
else
{
self.var_695D maps\mp\gametypes\_gameobjects::func_C30("any");
self.var_695D lib_04FF::func_860D(23);
self.var_695D lib_04FF::func_8614(23);
}
thread func_62CE();
}
//Function Number: 16
func_2A78()
{
self.var_695D notify("disableFlag");
self.var_695D thread disableflaguse();
foreach(var_01 in self.var_695D.var_A582)
{
var_01 lib_0502::func_7997();
}
self.var_695D maps\mp\gametypes\_gameobjects::func_8A60("none");
self.var_695D maps\mp\gametypes\_gameobjects::func_C30("none");
self.var_695D.var_A23F = 0;
self.var_695D.var_76EB = 0;
self.var_695D.var_28D5 = 0;
self.var_695D.var_230F = "none";
self.var_695D.var_230E = undefined;
self.var_695D.var_5B82 = "none";
self.var_695D lib_04FF::func_7CCA();
self notify("deactivated");
lib_04FF::func_79B3(self.var_695A);
}
//Function Number: 17
func_62CA(param_00)
{
param_00.raisingflag = 1;
param_00 thread momentumawardraisingxpevent();
self.var_A22B = 1;
lib_04FF::func_860D(136);
lib_04FF::func_8617("taking",136);
var_01 = maps\mp\gametypes\_gameobjects::func_45F7();
self.var_2EE9 = 0;
self.var_2950 = 0;
if(param_00.var_1A7 == game["attackers"])
{
lib_04FF::func_6981(self.var_62C7.var_695A,"progress",0);
}
else
{
lib_04FF::func_6981(self.var_62C7.var_695A,"enemyprogress",0);
}
level notify("momentum_point_capture_start_attmept_vo");
}
//Function Number: 18
momentumawardraisingxpevent()
{
self notify("raiseXPEvent");
level endon("game_ended");
self endon("disconnect");
self endon("death");
self endon("raiseXPEvent");
var_00 = 0;
while(common_scripts\utility::func_562E(self.raisingflag))
{
wait(0.1);
var_00++;
if(var_00 >= 10)
{
var_00 = 0;
level thread maps\mp\gametypes\_rank::func_1457("raids_flag_raising",self);
}
}
}
//Function Number: 19
func_62C5()
{
return !self.var_9D65.var_62C6 == 0 && !self.var_9D65.var_5758;
}
//Function Number: 20
func_62CC(param_00)
{
var_01 = gettime();
var_02 = param_00.var_1A7;
var_03 = maps\mp\gametypes\_gameobjects::func_45F7();
self.var_1FC1 = gettime();
self.var_4B25 = 1;
var_04 = self.var_62C7 lib_04FF::func_45D0("flagsCapFunc");
if(isdefined(var_04))
{
[[ var_04 ]]();
}
self.var_9D65.var_62C7 notify("momentumCapture",param_00.var_1A7);
}
//Function Number: 21
func_62CB(param_00,param_01,param_02)
{
param_01.raisingflag = undefined;
lib_04FF::func_860D(135);
lib_04FF::func_8614(135);
if(isplayer(param_01))
{
param_01 setclientomnvar("ui_capture_icon",0);
param_01 setclientomnvar("ui_capture_status_index",0);
}
if(param_02)
{
if(param_00 == game["attackers"])
{
lib_04FF::func_6981(self.var_62C7.var_695A,"advance",0);
}
else
{
lib_04FF::func_6981(self.var_62C7.var_695A,"retreat",0);
}
momentumawardflagcaptureobjectiveevent(param_01);
}
if(!func_62C5())
{
maps\mp\gametypes\_gameobjects::func_C30("any");
lib_04FF::func_860D(135);
lib_04FF::func_8614(135);
return;
}
maps\mp\gametypes\_gameobjects::func_C30("any");
lib_04FF::func_860D(23);
lib_04FF::func_8614(23);
}
//Function Number: 22
momentumawardflagcaptureobjectiveevent(param_00)
{
param_00 maps\mp\_utility::func_50EA("raids_flag_raise",1);
level thread maps\mp\gametypes\_rank::func_1457("raids_flag_raise",param_00);
}
//Function Number: 23
func_62CE()
{
self notify("momentumOvertimeUpdate");
self endon("momentumOvertimeUpdate");
self endon("deactivated");
var_00 = 10;
var_01 = 0;
for(;;)
{
var_02 = 0;
if(isdefined(self.var_695D.var_54F5) && self.var_695D.var_54F5)
{
var_00 = 10;
}
if(var_00 > 0)
{
if(common_scripts\utility::func_562E(level.var_99F5))
{
var_00 = var_00 - 0.05;
}
foreach(var_04 in level.var_744A)
{
if(var_04.var_1A7 == game["attackers"])
{
if(var_04 istouching(self))
{
var_02 = 1;
}
}
}
}
if(var_02 != var_01)
{
if(var_02)
{
lib_04FF::func_79B2(self.var_695A);
}
else
{
lib_04FF::func_79B3(self.var_695A);
}
var_01 = var_02;
}
wait 0.05;
}
}