mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
260 lines
6.4 KiB
Plaintext
260 lines
6.4 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 1344.gsc
|
|
* Game: Call of Duty: WWII
|
|
* Platform: PC
|
|
* Function Count: 4
|
|
* Decompile Time: 3 ms
|
|
* Timestamp: 10/27/2023 3:25:27 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_00D5()
|
|
{
|
|
setdvarifuninitialized("debug_falling_zombies",0);
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_A26F(param_00,param_01,param_02)
|
|
{
|
|
var_03 = param_00.var_A27C;
|
|
var_04 = "";
|
|
var_05 = 0;
|
|
var_06 = 0;
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = "spawn_drop";
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = spawnstruct();
|
|
var_03.var_9919 = -1;
|
|
var_03.var_ED2 = [];
|
|
var_03.var_886 = [];
|
|
param_00.var_A27C = var_03;
|
|
}
|
|
|
|
if(isdefined(var_03.var_886[param_01]))
|
|
{
|
|
return var_03.var_886[param_01];
|
|
}
|
|
|
|
var_07 = undefined;
|
|
if(!isdefined(var_07))
|
|
{
|
|
var_07 = 15;
|
|
}
|
|
|
|
var_08 = getgroundposition(param_00.var_116,var_07,64,64);
|
|
param_00.var_487C = var_08;
|
|
if(!function_02E6(var_08))
|
|
{
|
|
var_04 = "Sky Spawner not on Nav Mesh for entities of radius " + var_07 + "\n";
|
|
var_09 = getclosestpointonnavmesh(var_08);
|
|
var_05 = 1;
|
|
}
|
|
|
|
if(!var_05)
|
|
{
|
|
foreach(var_0B in maps/mp/agents/_scripted_agent_anim_util::func_4081(param_01,"zombie_generic",#animtree))
|
|
{
|
|
var_0C = getanimname(var_0B);
|
|
var_0D = maps/mp/agents/_scripted_agent_anim_util::func_446A(var_0B);
|
|
if(!animhasnotetrack(var_0B,"jump_start") || !animhasnotetrack(var_0B,"jump_end"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0E = maps/mp/agents/_scripted_agent_anim_util::func_45B9(var_0B,"jump_end");
|
|
if(var_0D <= var_0E)
|
|
{
|
|
}
|
|
|
|
var_0F = getmovedelta(var_0B,var_0E,var_0D);
|
|
var_10 = getangledelta(var_0B,var_0E,0);
|
|
var_0F = rotatevector(var_0F,(0,var_10,0));
|
|
var_11 = var_0F + var_08;
|
|
if(function_02E6(var_11) && function_02DE(var_08,var_11))
|
|
{
|
|
var_03.var_ED2[var_0C] = 1;
|
|
var_06++;
|
|
continue;
|
|
}
|
|
|
|
var_04 = var_04 + var_0C + " does not fit on mesh for entities of radius " + var_07 + "\n";
|
|
}
|
|
}
|
|
|
|
if(var_04 != "")
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04 = param_02 + "\n" + var_04;
|
|
}
|
|
}
|
|
|
|
var_03.var_886[param_01] = var_06 > 0;
|
|
return var_03.var_886[param_01];
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_ABA4(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
self endon("death");
|
|
if(!common_scripts\utility::func_562E(param_04.ignorehidingskyspawner) && common_scripts\utility::func_562E(level.st_142418))
|
|
{
|
|
self method_805C();
|
|
wait 0.05;
|
|
self method_805B();
|
|
}
|
|
|
|
if(isdefined(param_04) && common_scripts\utility::func_562E(param_04.asssassinspawn))
|
|
{
|
|
[[ level.assassin_validation_func ]](param_04,param_03);
|
|
}
|
|
else if(isdefined(param_04))
|
|
{
|
|
func_A26F(param_04,param_03);
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 2500;
|
|
}
|
|
|
|
param_02 = param_00[2] + param_02;
|
|
var_06 = getgroundposition(param_00,self.var_14F,64,64);
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = "spawn_drop";
|
|
}
|
|
|
|
var_07 = maps/mp/agents/_scripted_agent_anim_util::func_434D(param_03);
|
|
var_08 = -1;
|
|
var_09 = 0;
|
|
var_0A = undefined;
|
|
var_0B = undefined;
|
|
var_0C = undefined;
|
|
var_0D = undefined;
|
|
var_0E = 0;
|
|
var_0F = [];
|
|
var_10 = undefined;
|
|
var_0E = undefined;
|
|
var_09 = undefined;
|
|
var_11 = undefined;
|
|
var_12 = self method_83DB(var_07);
|
|
for(var_13 = 0;var_13 < var_12;var_13++)
|
|
{
|
|
var_0F[var_0F.size] = var_13;
|
|
}
|
|
|
|
var_0F = common_scripts\utility::func_F92(var_0F);
|
|
foreach(var_15 in var_0F)
|
|
{
|
|
var_0D = self method_83D8(var_07,var_15);
|
|
var_16 = getanimname(var_0D);
|
|
if(isdefined(param_04) && isdefined(param_04.var_A27C) && isdefined(param_04.var_A27C.var_886[param_03]) && !common_scripts\utility::func_562E(param_04.var_A27C.var_ED2[var_16]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!animhasnotetrack(var_0D,"jump_start") || !animhasnotetrack(var_0D,"jump_end"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_11 = getanimlength(var_0D);
|
|
var_09 = maps/mp/agents/_scripted_agent_anim_util::func_45B9(var_0D,"jump_start");
|
|
var_09 = ceil(var_09 * var_11 * 20) / var_11 * 20;
|
|
var_0E = maps/mp/agents/_scripted_agent_anim_util::func_45B9(var_0D,"jump_end");
|
|
var_17 = (0,getangledelta(var_0D,var_0E,0),0);
|
|
var_0B = transformmove(var_06,param_01,(0,0,0),(0,0,0),getmovedelta(var_0D,var_0E,0),var_17);
|
|
var_18 = rotatevector(getmovedelta(var_0D,0,var_09),var_0B["angles"]);
|
|
var_19 = rotatevector(getmovedelta(var_0D,0,1),var_0B["angles"]);
|
|
var_1A = var_0B["origin"];
|
|
var_1B = (0,0,param_02 - var_1A[2]);
|
|
var_0C = var_1A + var_1B;
|
|
var_0A = var_0C + var_18;
|
|
var_1C = getgroundposition(var_1A + var_19,self.var_14F);
|
|
var_1D = (0,0,4);
|
|
var_1E = self method_83EB(var_0A,var_06 + var_1D,self.var_14F,self.var_BD,1,1);
|
|
var_1F = function_02E6(var_06,self) && function_02DE(var_06,var_1C,self);
|
|
if(var_1E["fraction"] < 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!var_1F)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_08 = var_15;
|
|
var_0B["origin"] = var_0C;
|
|
var_21 = var_18[2] + var_1A[2] - var_06[2];
|
|
var_22 = var_21 + var_1B[2];
|
|
var_10 = var_22 / var_21;
|
|
break;
|
|
}
|
|
|
|
if(var_08 == -1)
|
|
{
|
|
lib_056D::func_5A86();
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
param_04 thread func_17EE(self);
|
|
}
|
|
|
|
self setorigin(var_0B["origin"],1);
|
|
self method_839C("anim deltas");
|
|
self scragentsetorientmode("face angle abs",var_0B["angles"]);
|
|
self method_839D("noclip");
|
|
self scragentsetscripted(1);
|
|
maps/mp/agents/_scripted_agent_anim_util::func_8732(1,"FallingZombie");
|
|
maps/mp/agents/_scripted_agent_anim_util::func_8415(var_07,var_08);
|
|
var_24 = var_11 * var_09;
|
|
wait(var_24);
|
|
var_25 = sqrt(1 / var_10);
|
|
var_26 = var_0E - var_09 * var_11;
|
|
var_27 = var_26 / var_25;
|
|
if(isdefined(param_05))
|
|
{
|
|
var_28 = param_05 - gettime() * 0.001;
|
|
var_27 = max(0.1,min(var_27,var_28));
|
|
}
|
|
|
|
var_27 = floor(var_27 * 20 + 0.5) * 0.05;
|
|
var_25 = var_26 / var_27;
|
|
var_29 = 1 / squared(var_25);
|
|
self method_839A(1,var_10);
|
|
self method_85D4(var_25);
|
|
wait(var_27);
|
|
lib_0378::func_8D74("zombie_fall_impact");
|
|
var_2A = anglestoaxis(self.var_1D);
|
|
playfx(common_scripts\utility::func_44F5("ground_impact"),self.var_116,var_2A["forward"],var_2A["up"]);
|
|
self notify("zombie_fall_impact");
|
|
self method_839A(1,1);
|
|
self method_85D4(1);
|
|
self method_839D("gravity");
|
|
var_2B = 1 - var_0E * var_11;
|
|
wait(var_2B);
|
|
maps/mp/agents/_scripted_agent_anim_util::func_8732(0,"FallingZombie");
|
|
self scragentsetscripted(0);
|
|
lib_0547::func_84CB();
|
|
if(abs(param_00[2] - self.var_116[2]) > 32)
|
|
{
|
|
lib_056D::func_5A86();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_17EE(param_00)
|
|
{
|
|
self.var_3A1B = 1;
|
|
param_00 common_scripts\utility::knock_off_battery("death","zombie_fall_impact");
|
|
self.var_3A1B = undefined;
|
|
} |