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

610 lines
14 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1272.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 25
* Decompile Time: 24 ms
* Timestamp: 10/27/2023 3:24:14 AM
*******************************************************************/
//Function Number: 1
func_52B4()
{
var_00 = 0;
if(!var_00)
{
func_5364();
level.var_611["turret_destruction"] = loadfx("vfx/metal_equipment_sm_expl");
}
if(isdefined(level.var_79C2))
{
level.var_79C2.var_9F96 = [];
var_01 = getentarray("raid_turret","targetname");
foreach(var_03 in var_01)
{
if(!var_00)
{
func_5363(var_03,0);
continue;
}
func_7D01(var_03);
}
var_05 = getentarray("raid_turret_prebuilt","targetname");
foreach(var_03 in var_05)
{
if(!var_00)
{
func_5363(var_03,1);
continue;
}
func_7D01(var_03);
}
var_08 = getentarray("raid_turret_static","targetname");
foreach(var_03 in var_08)
{
level.var_79C2.var_9F96[level.var_79C2.var_9F96.size] = var_03;
}
}
}
//Function Number: 2
func_7D01(param_00)
{
var_01 = getentarray(param_00.var_1A2,"targetname");
foreach(var_03 in var_01)
{
var_03 delete();
}
param_00 delete();
}
//Function Number: 3
func_7CCF()
{
var_00 = getentarray("raid_turret","targetname");
foreach(var_02 in var_00)
{
var_02.var_E9E delete();
var_02.var_A21B delete();
var_02 delete();
}
var_04 = getentarray("raid_turret_prebuilt","targetname");
foreach(var_02 in var_04)
{
var_02.var_E9E delete();
var_02.var_A21B delete();
var_02 delete();
}
}
//Function Number: 4
func_5363(param_00,param_01)
{
level.var_79C2.var_9F96[level.var_79C2.var_9F96.size] = param_00;
lib_0502::func_1D39(param_00);
param_00.var_79E8 = level.var_79E8[param_00.var_165];
param_00 thread func_8A4C(param_01);
}
//Function Number: 5
func_5364()
{
level.var_79E8 = [];
level.var_79E8["mg42"] = [];
level.var_79E8["mg42"]["constructTime"] = 5;
level.var_79E8["mg42"]["flipTime"] = 0;
level.var_79E8["mg42"]["useLocationOffset"] = (0,0,9);
level.var_79E8["mg42"]["inactiveIdleAnimName"] = "mp_raids_turret_mg42_inactive_idle";
level.var_79E8["mg42"]["clipParts"] = ["tag_clip","J_Bullet_01","J_Bullet_02","J_Bullet_03","J_Bullet_04","J_Bullet_05"];
level.var_79E8["mg42"]["buildAnimName"] = "mp_raids_turret_mg42_build";
level.var_79E8["mg42"]["buildAnimRef"] = %mp_raids_turret_mg42_build;
level.var_79E8["mg42"]["objectiveModel"] = "npc_ger_mg42_bipod_turret_raid_obj";
level.var_79E8["pak38"] = [];
level.var_79E8["pak38"]["constructTime"] = 5;
level.var_79E8["pak38"]["flipTime"] = 0;
level.var_79E8["pak38"]["useLocationOffset"] = (0,0,20);
level.var_79E8["pak38"]["objectiveModel"] = "ger_btry_pak38_raid_obj";
}
//Function Number: 6
func_5837()
{
var_00 = getarraykeys(level.var_79E8);
return common_scripts\utility::func_F79(var_00,self.var_165);
}
//Function Number: 7
func_8A4C(param_00)
{
self setdefaultdroppitchyaw(0,0);
self makeunusable();
self.var_1D3D = 0;
self.var_1D3C = 0;
self.var_2599 = 0;
self method_805C();
func_52BB(self);
thread func_9F8C();
var_01 = getentarray(self.var_1A2,"targetname");
foreach(var_03 in var_01)
{
if(var_03.var_3A == "trigger_use_touch")
{
if(var_03.var_165 == "canBuildTurret")
{
self.var_1F89 = var_03;
var_04 = self.var_116 + self.var_79E8["useLocationOffset"];
self.var_1F89 usetouchtriggerrequirefacingposition(1,var_04);
self.var_1D4F = maps\mp\gametypes\_gameobjects::func_2837("neutral",self.var_1F89,[self],(0,0,32),1);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A5A(self.var_79E8["constructTime"]);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A59(&"RAIDS_USING_CONSTRUCT");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A57(&"RAIDS_USE_CONSTRUCT");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_C30("any");
self.var_1D4F.var_6BBF = ::func_6BC1;
self.var_1D4F.var_6ABC = ::func_6ABB;
self.var_1D4F.var_6AFA = ::func_6AF8;
self.var_1D4F.var_A248 = "war_wrench_assemble_mp";
self.var_1D4F.var_A23C = 0;
self.var_1D4F.var_1F84 = ::func_2982;
self.var_1D4F.var_502A = "raidConstruct";
self.var_1D4F.var_113F = 0;
self.var_1D4F.var_7894 = 1;
self.var_1D4F.var_A23E = 6;
var_03 func_52BB(self);
}
else if(var_03.var_165 == "flipTrigger")
{
self.var_3D79 = var_03;
var_04 = self.var_116 + self.var_79E8["useLocationOffset"];
self.var_3D79 usetouchtriggerrequirefacingposition(1,var_04);
self.var_1D4F = maps\mp\gametypes\_gameobjects::func_2837("neutral",self.var_3D79,[],(0,0,32),1);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A5A(self.var_79E8["flipTime"]);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A59(&"FLIPPING_TURRET");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A57(&"FLIP_TURRET");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_C30("any");
self.var_1D4F.var_6BBF = ::func_6BC4;
self.var_1D4F.var_1F84 = ::func_2982;
self.var_1D4F.var_113F = 0;
self.var_1D4F.var_A23E = 6;
self.var_1D4F.var_9EDD = self;
var_03 func_52BB(self);
}
continue;
}
if(var_03.var_3A == "script_model")
{
self.var_A21B = var_03;
self.var_A21B func_52BB(self);
}
}
self.var_E9E = spawn("script_model",self.var_116);
self.var_E9E.var_1D = self.var_1D;
if(isdefined(self.var_3D73))
{
self.var_E9E.var_92F0 = self.var_92F0;
self.var_E9E.var_92B8 = self.var_92B8;
self.var_E9E.var_3D73 = self.var_3D73;
self.var_E9E.var_3D6E = self.var_3D6E;
self.var_E9E thread func_3D78(self);
}
self.var_E9E setmodel(self.var_79E8["objectiveModel"]);
if(isdefined(self.var_79E8["inactiveIdleAnimName"]))
{
self.var_E9E scriptmodelplayanim(self.var_79E8["inactiveIdleAnimName"],"turret_anim");
}
if(isdefined(self.var_79E8["clipParts"]))
{
foreach(var_07 in self.var_79E8["clipParts"])
{
self.var_E9E hidepart(var_07);
}
}
self.var_E9E.var_9EDD = self;
if(param_00)
{
thread func_3668(0.1);
}
lib_0502::func_1D3A(self,param_00);
}
//Function Number: 8
func_2982(param_00)
{
if(isdefined(param_00) && isdefined(param_00.var_2016))
{
return 0;
}
return 1;
}
//Function Number: 9
func_9F8C()
{
self endon("death");
for(;;)
{
self waittill("turretownerchange");
func_3D7A();
}
}
//Function Number: 10
func_52BB(param_00)
{
if(!isdefined(self.var_1A2))
{
return;
}
if(!isdefined(self.var_1D))
{
self.var_1D = (0,0,0);
}
var_01 = common_scripts\utility::func_46B7(self.var_1A2,"targetname");
self.var_92F0 = self.var_116;
self.var_92B8 = self.var_1D;
self.var_92D1 = self.var_92F0;
self.var_92D0 = self.var_92B8;
foreach(var_03 in var_01)
{
if(!isdefined(var_03.var_1D))
{
var_03.var_1D = (0,0,0);
}
switch(var_03.var_165)
{
case "origin":
self.var_92D1 = var_03.var_116;
self.var_92D0 = var_03.var_1D;
break;
case "flip":
self.var_3D73 = var_03.var_116;
self.var_3D6E = var_03.var_1D;
break;
}
}
if(!isdefined(self.var_92B8))
{
self.var_92B8 = (0,0,0);
}
if(!isdefined(self.var_92D0))
{
self.var_92D0 = (0,0,0);
}
if(isdefined(self.var_3D73))
{
var_05 = transformmove(self.var_3D73,self.var_3D6E,self.var_92D1,self.var_92D0,self.var_116,self.var_1D);
self.var_3D73 = var_05["origin"];
self.var_3D6E = var_05["angles"];
thread func_3D78(param_00);
}
}
//Function Number: 11
func_3D7A()
{
var_00 = self.var_3D79;
if(!isdefined(var_00))
{
return;
}
if(self.var_1D3C || isdefined(self method_80E2()))
{
var_00 makeunusable();
return;
}
var_00 makeusable();
}
//Function Number: 12
func_3D78(param_00)
{
self endon("death");
for(;;)
{
param_00 waittill("flip");
self.var_116 = self.var_3D73;
self.var_1D = self.var_3D6E;
param_00 waittill("flip");
self.var_116 = self.var_92F0;
self.var_1D = self.var_92B8;
}
}
//Function Number: 13
func_6BC4(param_00)
{
self.var_9EDD notify("flip");
}
//Function Number: 14
func_3668(param_00)
{
wait(param_00);
self.var_1D3D = 1;
thread func_3667();
}
//Function Number: 15
func_9F78()
{
self endon("pauseBuildAnim");
self endon("built");
for(;;)
{
self waittill("turret_anim",var_00);
thread func_9F79(var_00);
if(var_00 == "end")
{
break;
}
}
}
//Function Number: 16
func_9F79(param_00)
{
if(common_scripts\utility::func_9467(param_00,"snd_"))
{
var_01 = getsubstr(param_00,4);
var_02 = strtok(var_01,";");
var_03 = var_02[0];
var_04 = var_02[1];
var_05 = self.var_116;
if(isdefined(var_04))
{
var_05 = self gettagorigin(var_04);
}
lib_04F3::func_79CB(var_03,var_05);
}
if(param_00 == "show_piece_clip")
{
if(isdefined(self.var_9EDD.var_79E8["clipParts"]))
{
foreach(var_07 in self.var_9EDD.var_79E8["clipParts"])
{
self showpart(var_07);
}
}
}
if(param_00 == "end")
{
self.var_9EDD.var_1D3D = 1;
}
}
//Function Number: 17
func_6ABB(param_00)
{
var_01 = self.var_A582[0];
var_01 thread func_9F7A(param_00);
var_01.var_E9E lib_0502::func_793D("drop");
var_01.var_1D3C = 1;
var_01 func_3D7A();
}
//Function Number: 18
func_6AF8(param_00,param_01,param_02)
{
var_03 = self.var_A582[0];
if(!param_02)
{
var_03 thread func_9F7B();
var_03.var_E9E lib_0502::func_793D();
}
var_03.var_1D3C = 0;
var_03 func_3D7A();
}
//Function Number: 19
func_9F85()
{
var_00 = "buildable_mg42_handle";
var_01 = "tag_barrel";
lib_04F3::func_79CF(var_00,self,var_01);
}
//Function Number: 20
func_9F7A(param_00)
{
param_00 endon("disconnect");
if(!isdefined(self.var_79E8["buildAnimName"]))
{
return;
}
self.var_E9E endon("pauseBuildAnim");
while(isdefined(self.var_1D4F.var_A248) && param_00 getcurrentweapon() != self.var_1D4F.var_A248)
{
wait 0.05;
}
var_01 = getanimlength(self.var_79E8["buildAnimRef"]);
var_02 = self.var_1D4F.var_28D5 / self.var_1D4F.var_A23F;
var_03 = var_01 / self.var_1D4F.var_A23F / 1000;
if(isdefined(param_00) && param_00 maps\mp\_utility::func_649("specialty_improvedobjectives"))
{
var_03 = var_03 * param_00.var_696D;
}
self.var_E9E scriptmodelplayanim(self.var_79E8["buildAnimName"],"turret_anim",var_02 * var_01,var_03,1);
self.var_E9E thread func_9F78();
self.var_E9E thread func_9F85();
}
//Function Number: 21
func_9F7B()
{
if(isdefined(self.var_79E8["clipParts"]))
{
foreach(var_01 in self.var_79E8["clipParts"])
{
self.var_E9E hidepart(var_01);
}
}
if(!isdefined(self.var_79E8["inactiveIdleAnimName"]))
{
return;
}
self.var_E9E notify("pauseBuildAnim");
self.var_E9E scriptmodelplayanim(self.var_79E8["inactiveIdleAnimName"],"turret_anim",undefined,undefined,1);
self.var_E9E thread func_9F85();
}
//Function Number: 22
func_3667(param_00)
{
if(isdefined(self.var_79E8["buildAnimName"]))
{
while(!self.var_1D3D)
{
wait 0.05;
}
}
if(isdefined(self.var_A21B))
{
self.var_A21B lib_0502::func_7997();
}
self method_805B();
self.var_E9E lib_0502::func_7997();
self restoredefaultdroppitch();
self makeusable();
self setcandamage(1);
self method_8131();
thread maps\mp\gametypes\_damage::func_8676(4,"raid_buildable",::func_35F3,::lib_0502::func_1D38,0);
self.var_6A = 0;
self.var_566B = 1;
self.var_2599 = 1;
lib_0502::func_7D5C(self);
self.var_1F89 makeunusable();
self.var_1D4F notify("disabled");
wait 0.05;
self.var_1D4F maps\mp\gametypes\_gameobjects::func_2D58();
self.var_1D4F = undefined;
self.var_E9E notify("built");
lib_0502::func_1D3B(self.var_566B);
}
//Function Number: 23
func_6BC1(param_00)
{
var_01 = self.var_A582[0];
var_01 thread func_3667(param_00);
if(lib_0502::func_21AC(var_01,param_00))
{
lib_0502::func_7922(param_00);
}
lib_0506::func_166E(param_00,"turret_repaired");
}
//Function Number: 24
func_35F3(param_00,param_01,param_02,param_03,param_04)
{
if(isplayer(param_00))
{
lib_0506::func_166E(param_00,"turret_disabled");
if(lib_0502::func_21AC(self,param_00))
{
lib_0502::func_7923(param_00);
}
}
thread func_2DDE();
}
//Function Number: 25
func_2DDE()
{
while(isdefined(self.var_1D4F))
{
wait 0.05;
}
self notify("turret_destroyed");
self setdefaultdroppitchyaw(0,0);
self.var_1D3D = 0;
self makeunusable();
self method_805C();
if(isdefined(self.var_A21B))
{
self.var_A21B lib_0502::func_79C6();
}
self setcandamage(0);
self setdamagecallbackon(0);
self.var_29B5 = undefined;
self.var_566B = 0;
if(isdefined(self method_80E2()))
{
self method_80E2() method_85E9();
}
self.var_E9E lib_0502::func_79C6();
if(isdefined(self.var_79E8["clipParts"]))
{
foreach(var_01 in self.var_79E8["clipParts"])
{
self.var_E9E hidepart(var_01);
}
}
if(isdefined(self.var_79E8["inactiveIdleAnimName"]))
{
self.var_E9E scriptmodelplayanim(self.var_79E8["inactiveIdleAnimName"],"turret_anim");
}
if(isdefined(self.var_79E8["constructTime"]))
{
self.var_1F89 makeusable();
self.var_1D4F = maps\mp\gametypes\_gameobjects::func_2837("neutral",self.var_1F89,[self],(0,0,32),1);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A5A(self.var_79E8["constructTime"]);
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A59(&"RAIDS_USING_CONSTRUCT");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_8A57(&"RAIDS_USE_CONSTRUCT");
self.var_1D4F maps\mp\gametypes\_gameobjects::func_C30("any");
self.var_1D4F.var_6BBF = ::func_6BC1;
self.var_1D4F.var_6ABC = ::func_6ABB;
self.var_1D4F.var_6AFA = ::func_6AF8;
self.var_1D4F.var_A248 = "war_wrench_assemble_mp";
self.var_1D4F.var_A23C = 0;
self.var_1D4F.var_502A = "raidConstruct";
self.var_1D4F.var_A23E = 6;
self.var_1D4F.var_113F = 0;
self.var_1D4F.var_7894 = 1;
}
lib_04F3::func_79CF("mp_war_bomb_explo",self.var_E9E,"tag_origin");
playfxontag(common_scripts\utility::func_44F5("turret_destruction"),self.var_E9E,"tag_origin");
lib_0502::func_1D3B(self.var_566B);
}