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

1104 lines
23 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 1345.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 41
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 3:25:27 AM
*******************************************************************/
//Function Number: 1
func_00F9()
{
func_531A();
func_52A9();
func_52AA();
level.var_8D9 = [];
}
//Function Number: 2
func_09C9(param_00,param_01,param_02,param_03,param_04)
{
level.var_65CB[param_00] = [];
level.var_65CB[param_00][0] = param_01;
level.var_65CB[param_00][2] = param_02;
level.var_65CB[param_00][3] = param_03;
level.var_65CB[param_00][4] = param_04;
}
//Function Number: 3
func_2F92(param_00,param_01)
{
if(!isarray(param_01))
{
param_01 = [param_01];
}
foreach(var_03 in param_01)
{
level.var_65CC[var_03][param_00] = 1;
}
}
//Function Number: 4
func_531A()
{
level.var_65CB = [];
func_09C9("crawl",::func_65C8);
func_2F92("crawl",["zombie_heavy","zombie_fireman","zombie_exploder","zombie_berserker"]);
}
//Function Number: 5
func_52A9()
{
lib_0547::func_7BD0("dismemberment_transition",::func_0EAF,::func_0EB0,3);
level.var_3EFD = 0;
level.var_2FDE[1]["modelToSpawn"] = "zom_shared_r_arm_slice";
level.var_2FDE[2]["modelToSpawn"] = "zom_shared_l_arm_slice";
level.var_2FDE[4]["modelToSpawn"] = "zom_shared_r_leg_slice";
level.var_2FDE[8]["modelToSpawn"] = "zom_shared_l_leg_slice";
level.var_2FDE[1]["tagName"] = "J_Shoulder_RI";
level.var_2FDE[2]["tagName"] = "J_Shoulder_LE";
level.var_2FDE[4]["tagName"] = "J_Hip_RI";
level.var_2FDE[8]["tagName"] = "J_Hip_LE";
level.var_2FDE[16]["tagName"] = "J_Head";
level.var_2FDE[1]["fxTagName"] = "J_Shoulder_RI";
level.var_2FDE[2]["fxTagName"] = "J_Shoulder_LE";
level.var_2FDE[4]["fxTagName"] = "J_Hip_RI";
level.var_2FDE[8]["fxTagName"] = "J_Hip_LE";
level.var_2FDE[16]["fxTagName"] = "J_Head";
level.var_2FDE["full"]["fxTagName"] = "J_MainRoot";
level.var_2FDE[1]["torsoFX"] = "torso_arm_loss_right";
level.var_2FDE[2]["torsoFX"] = "torso_arm_loss_left";
level.var_2FDE[4]["torsoFX"] = "torso_loss_right";
level.var_2FDE[8]["torsoFX"] = "torso_loss_left";
level.var_2FDE[16]["torsoFX"] = "torso_head_loss";
level.var_2FDE[1]["limbFX"] = "arm_loss_right";
level.var_2FDE[2]["limbFX"] = "arm_loss_left";
level.var_2FDE[4]["limbFX"] = "limb_loss_right";
level.var_2FDE[8]["limbFX"] = "limb_loss_left";
level.var_2FDE[16]["gibFX"] = "head_gibs";
level.var_2FDE[1]["dismemberSound"] = "zmb_dism_arm";
level.var_2FDE[2]["dismemberSound"] = "zmb_dism_arm";
level.var_2FDE[4]["dismemberSound"] = "zmb_dism_leg";
level.var_2FDE[8]["dismemberSound"] = "zmb_dism_leg";
level.var_2FDE[16]["dismemberSound"] = "zmb_dism_head";
level.var_2FDE["full"]["dismemberSound"] = "zmb_dism_instakill_explosion";
}
//Function Number: 6
func_52AA()
{
var_00 = "mp/zombieDismembermentModifiers.csv";
var_01 = 0;
var_02 = 2;
var_03 = 3;
var_04 = 4;
var_05 = 5;
var_06 = function_027A(var_00);
for(var_07 = 0;var_07 < var_06;var_07++)
{
var_08 = tablelookupbyrow(var_00,var_07,var_01);
var_09 = tablelookupbyrow(var_00,var_07,var_02);
var_0A = tablelookupbyrow(var_00,var_07,var_03);
var_0B = tablelookupbyrow(var_00,var_07,var_04);
var_0C = tablelookupbyrow(var_00,var_07,var_05);
level.var_2FEA[var_08] = float(var_09);
level.var_2FEB[var_08] = float(var_0A);
level.var_4D3D[var_08] = var_0B == "true";
level.var_2FE9[var_08] = var_0C == "true";
}
}
//Function Number: 7
func_65C7(param_00)
{
if(!isdefined(level.var_8D9[param_00]))
{
level.var_8D9[param_00] = 0;
}
if(!isdefined(self.var_8D9))
{
self.var_8D9 = [];
}
if(isdefined(self.var_8D9[param_00]))
{
return;
}
if(isdefined(level.var_65CC[self.var_A4B]))
{
if(isdefined(level.var_65CC[self.var_A4B][param_00]) && level.var_65CC[self.var_A4B][param_00])
{
return;
}
}
level.var_8D9[param_00]++;
self.var_8D9[param_00] = 1;
self [[ level.var_65CB[param_00][0] ]]();
if(isdefined(self.var_8D9))
{
self.var_8D9[param_00] = undefined;
}
level.var_8D9[param_00]--;
}
//Function Number: 8
func_9AA4(param_00,param_01)
{
if(isdefined(level.var_611[param_00 + "_head"]))
{
lib_0547::func_74A5(level.var_611[param_00 + "_head"],self,"j_head");
}
if(isdefined(level.var_611[param_00 + "_arm_r"]))
{
lib_0547::func_74A5(level.var_611[param_00 + "_arm_r"],self,"j_shoulder_ri");
}
if(isdefined(level.var_611[param_00 + "_arm_l"]))
{
lib_0547::func_74A5(level.var_611[param_00 + "_arm_l"],self,"j_shoulder_le");
}
if(isdefined(level.var_611[param_00 + "_back"]))
{
lib_0547::func_74A5(level.var_611[param_00 + "_back"],self,"j_spineupper");
}
if(isdefined(level.var_611[param_00 + "_spine"]))
{
lib_0547::func_74A5(level.var_611[param_00 + "_spine"],self,"j_spine4");
}
self.var_9AA6 = param_00;
if(isdefined(param_01))
{
thread func_9AA5(param_00,param_01);
}
}
//Function Number: 9
func_9AA5(param_00,param_01)
{
self notify("removeTorsoEffectsDelayed");
self endon("removeTorsoEffectsDelayed");
self endon("death");
if(isdefined(param_01))
{
wait(param_01);
}
if(isdefined(self))
{
if(isdefined(level.var_611[param_00 + "_head"]))
{
lib_0547::func_9406(level.var_611[param_00 + "_head"],self,"j_head");
}
if(isdefined(level.var_611[param_00 + "_arm_r"]))
{
lib_0547::func_9406(level.var_611[param_00 + "_arm_r"],self,"j_shoulder_ri");
}
if(isdefined(level.var_611[param_00 + "_arm_l"]))
{
lib_0547::func_9406(level.var_611[param_00 + "_arm_l"],self,"j_shoulder_le");
}
if(isdefined(level.var_611[param_00 + "_back"]))
{
lib_0547::func_9406(level.var_611[param_00 + "_back"],self,"j_spineupper");
}
if(isdefined(level.var_611[param_00 + "_spine"]))
{
lib_0547::func_9406(level.var_611[param_00 + "_spine"],self,"j_spine4");
}
}
}
//Function Number: 10
func_65C8()
{
func_65D0(12,0);
}
//Function Number: 11
func_92C5()
{
self.var_2FDA = 1;
maps/mp/agents/humanoid/_humanoid_util::func_313C();
if(isdefined(self.var_5F4C))
{
maps/mp/agents/humanoid/_humanoid_util::func_5F4E(10,240,120,"attack_lunge_boost",level.var_611["boost_lunge"],1,255);
}
maps/mp/agents/humanoid/_humanoid_util::func_5C51();
self method_8538(0);
self method_853C(1);
self method_83A5(15);
level.var_2775++;
thread lib_0547::func_AB18(60);
self waittill("death");
level.var_2775--;
}
//Function Number: 12
func_4494(param_00,param_01,param_02)
{
if(lib_0547::func_5731())
{
return 0;
}
var_03 = undefined;
if(isdefined(param_01))
{
param_01 = getweapondisplayname(param_01);
var_03 = param_01;
}
else if(isdefined(param_02))
{
var_03 = param_02;
}
if(!isdefined(var_03))
{
return 1;
}
var_04 = level.var_2FEA[var_03];
if(isdefined(param_00) && isplayer(param_00) && isdefined(param_01) && isdefined(var_04) && !maps\mp\_utility::func_5740(param_01))
{
var_04 = func_21F3(param_00,param_01,var_04);
return var_04;
}
if(isdefined(var_04))
{
return var_04;
}
return 1;
}
//Function Number: 13
func_21F3(param_00,param_01,param_02)
{
var_03 = level.var_2FEB[param_01];
if(!isdefined(var_03))
{
return param_02;
}
var_04 = lib_0547::func_4747(param_00,param_01);
if(var_04 <= 1)
{
return param_02;
}
var_05 = param_02 - var_03;
var_06 = param_02 - var_04 / 3 * var_05;
return clamp(var_06,var_03,param_02);
}
//Function Number: 14
func_4596(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(param_03 >= 1)
{
if(lib_0547::func_21AA("exploder"))
{
return self.var_2FDB;
}
}
var_06 = common_scripts\utility::func_562E(level.var_2FE9[param_01]) || common_scripts\utility::func_562E(level.var_2FE9[param_02]) || lib_0547::func_5731() || issubstr(param_01,"m1911_pap_zm") || issubstr(param_01,"teslagun") || issubstr(param_01,"fliegerfaust_zm") || common_scripts\utility::func_562E(param_01 == "panzerschreck_zm") || issubstr(param_01,"razergun") || common_scripts\utility::func_562E(param_01 == "bazooka_zm") || common_scripts\utility::func_562E(self.luckycrit) || common_scripts\utility::func_562E(param_01 == "island_grenade_hc_zm") || common_scripts\utility::func_562E(param_01 == "jack_in_box_decoy_zm");
if(param_03 < 1 && lib_0547::func_5565(param_01,"turretweapon_ger_btry_flak38_mp_zombie"))
{
var_06 = 0;
}
if(var_06)
{
var_07 = 31;
}
else
{
var_07 = func_5E60(param_01);
}
var_08 = 1;
if(var_07 == 0)
{
return 0;
}
if(!isdefined(param_02) || param_02 != "MOD_GRENADE" && param_02 != "MOD_GRENADE_SPLASH" && param_02 != "MOD_EXPLOSIVE")
{
var_07 = var_07 & ~12;
}
else if(randomfloat(1) > 0.5)
{
var_07 = 8;
}
else
{
var_07 = 4;
}
if(isdefined(level.var_324B) && [[ level.var_324B ]](self))
{
var_07 = var_07 & ~12;
}
var_07 = var_07 & self.var_2FDB;
var_08 = var_08 * func_4494(param_04,param_01,undefined) * func_4494(param_04,undefined,param_02);
var_08 = var_08 * -0.7 * param_03 + 1;
return func_4597(var_07,param_05,param_03,var_08);
}
//Function Number: 15
func_4597(param_00,param_01,param_02,param_03)
{
var_04 = 0;
if(param_00 & param_00 - 1 > 0)
{
if(param_02 < 1)
{
var_05 = randomint(24);
var_06 = 228;
for(var_07 = 4;var_07 > 0;var_07--)
{
var_08 = 1 << var_05 % var_07 * 2;
var_05 = int(var_05 / var_07);
var_09 = var_06 % var_08;
var_0A = int(var_06 / var_08);
var_06 = var_09 + var_0A >> 2 * var_08;
var_0B = 1 << var_0A & 3;
if(param_00 & var_0B != 0 && isdefined(func_18B1(param_01 | var_04 | var_0B)))
{
if(randomfloat(1) > func_20AF(var_0B) * param_03)
{
var_04 = var_04 | var_0B;
}
}
}
}
else
{
while(param_00 > 0)
{
var_0B = param_00 & 0 - param_00;
if(randomfloat(1) > func_20AF(var_0B) * param_03)
{
var_04 = var_04 | var_0B;
}
param_00 = param_00 - var_0B;
}
}
}
else if(param_02 >= 1 || isdefined(func_18B1(param_01 | param_00)))
{
if(randomfloat(1) > func_20AF(param_00) * param_03)
{
var_04 = param_00;
}
}
return var_04;
}
//Function Number: 16
func_9E1D(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = 0;
if(isalive(self) && (!maps/mp/agents/_scripted_agent_anim_util::func_57E2() || param_03 >= 1) && self.var_BA4 != "traverse" && lib_0547::func_4B2C())
{
var_07 = func_4596(param_00,param_01,param_02,param_03,param_04,self.var_6250);
if(var_07 != 0)
{
var_08 = !common_scripts\utility::func_562E(self.var_2FDA);
var_09 = isdefined(self.var_6250) && self.var_6250 == 0;
if(level.var_2775 < 9999 || self.var_2FDA || var_07 & 12 == 0 || var_07 & 16 != 0 || self.var_6250 & 3 != 0)
{
if(func_65D0(self.var_6250 | var_07,common_scripts\utility::func_562E(level.var_4D3D[param_01]),param_03,param_05,undefined,1))
{
if(lib_0547::func_5731())
{
earthquake(randomfloatrange(0.15,0.35),1,self.var_116,200);
}
var_06 = 1;
}
if(isalive(self) && isplayer(param_04))
{
if(var_08 && common_scripts\utility::func_562E(self.var_2FDA))
{
param_04 thread lib_054E::func_72A4("crawl_spawn");
}
else if(var_09 && isdefined(self.var_6250) && self.var_6250 != 0)
{
param_04 thread lib_054E::func_72A4("shoot_arm");
}
}
}
}
}
return var_06;
}
//Function Number: 17
func_56FD()
{
if(!isdefined(self.var_7AD3))
{
return 0;
}
return lib_0547::func_2696(self.var_7AD3) >= 3;
}
//Function Number: 18
func_A0DF(param_00,param_01)
{
var_02 = func_18B1(self.var_6250);
if(var_02 != self method_85A5())
{
if(!self.var_2FDA && self.var_6250 & 12 != 0)
{
thread func_92C5();
}
if(param_00)
{
var_03 = var_02;
if(!isdefined(self.var_788C) || self.var_788C != var_02)
{
self.var_788C = var_02;
self notify("queuedDismembermentTransition");
switch(self.var_108)
{
case "walk":
var_03 = var_03 + "_walk";
break;
case "run":
case "sprint":
var_03 = var_03 + "_run";
break;
}
if(param_01)
{
var_03 = var_03 + "_highdamage";
}
var_04 = [self,"queuedDismembermentTransition"];
thread lib_0547::func_7D1A("dismemberment_transition",[var_02,var_03],undefined,var_04);
return;
}
return;
}
self method_83D5(var_03);
maps/mp/agents/humanoid/_humanoid_util::func_A18C();
if(self.var_BA4 == "idle")
{
var_05 = "idle_noncombat";
var_06 = maps/mp/agents/_scripted_agent_anim_util::func_434D(var_05);
maps/mp/agents/_scripted_agent_anim_util::func_8415(var_06);
return;
}
}
}
//Function Number: 19
func_0EAF(param_00,param_01)
{
maps/mp/agents/humanoid/_humanoid_util::func_20C3(param_00,param_01);
}
//Function Number: 20
func_0EB0(param_00,param_01)
{
maps/mp/agents/humanoid/_humanoid_util::func_20C4(param_00);
}
//Function Number: 21
func_65D0(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
param_00 = param_00 & self.var_2FDB;
if(param_00 == self.var_6250)
{
return 0;
}
var_06 = !isdefined(func_18B1(param_00)) || param_02 >= 1;
if(!lib_0547::func_1F4C())
{
if(param_00 & 16)
{
param_00 = param_00 & ~16;
}
if(var_06)
{
var_06 = 0;
param_00 = 0;
}
}
var_07 = self.var_90AB < gettime();
if(lib_0547::func_2696(param_00) - lib_0547::func_2696(self.var_6250) >= 3)
{
var_07 = 0;
}
if(var_06 && common_scripts\utility::func_562E(self.must_gib_head))
{
param_00 = 16;
}
func_2E44(param_00,var_06,param_03,var_07,param_04,param_05);
if(!var_06)
{
func_A0DF(var_07,param_01);
}
return var_06;
}
//Function Number: 22
func_2CD5()
{
self endon("death");
wait 0.05;
if(isdefined(self.var_5DAC["tag_eye"]))
{
self.var_5DAC["tag_eye"] delete();
self.var_5DAC["tag_eye"] = undefined;
}
}
//Function Number: 23
func_18B1(param_00)
{
var_01 = undefined;
switch(param_00)
{
case 1:
var_01 = "zombie_missing_right_arm_animclass";
break;
case 2:
var_01 = "zombie_missing_left_arm_animclass";
break;
case 4:
var_01 = "zombie_missing_right_leg_animclass";
break;
case 8:
var_01 = "zombie_missing_left_leg_animclass";
break;
case 12:
var_01 = "zombie_crawl_animclass";
break;
case 0:
var_01 = "zombie_animclass";
break;
default:
return undefined;
}
if(!maps\mp\_utility::func_585F())
{
var_01 = "mp_" + var_01;
}
return var_01;
}
//Function Number: 24
func_5E60(param_00)
{
switch(param_00)
{
case "right_arm_lower":
case "right_hand":
case "right_arm_upper":
return 1;
case "left_hand":
case "left_arm_lower":
case "left_arm_upper":
return 2;
case "right_foot":
case "right_leg_lower":
case "right_leg_upper":
return 4;
case "left_foot":
case "left_leg_lower":
case "left_leg_upper":
return 8;
case "neck":
case "helmet":
case "head":
return 16;
default:
return 0;
}
}
//Function Number: 25
func_20AF(param_00)
{
if(isdefined(self.var_4B53) && param_00 != 16)
{
return 1;
}
switch(param_00)
{
case 1:
return 0.45;
case 2:
return 0.45;
case 4:
return 0.5;
case 8:
return 0.5;
case 16:
if(common_scripts\utility::func_562E(self.var_4B6E) || common_scripts\utility::func_562E(self.var_4B5A))
{
return 1;
}
return 0.65;
default:
return 1;
}
}
//Function Number: 26
func_4559(param_00,param_01,param_02)
{
if(isdefined(self.var_2FE3) && isdefined(self.var_2FE3[param_00]))
{
var_03 = self.var_2FE3[param_00][param_02];
if(isdefined(var_03))
{
return var_03;
}
}
if(isdefined(param_01) && isdefined(level.var_2FDE[param_01]))
{
var_04 = level.var_2FDE[param_01][param_02];
if(isdefined(var_04))
{
return var_04;
}
}
var_04 = level.var_2FDE[param_00][param_02];
return var_04;
}
//Function Number: 27
func_4558(param_00,param_01)
{
var_02 = 40;
switch(param_00)
{
case 2:
case 1:
return self.var_116 + (0,0,var_02);
case 8:
case 4:
var_03 = self gettagorigin(param_01);
return (self.var_116[0],self.var_116[1],var_03[2]);
case 16:
return self gettagorigin(var_02);
}
}
//Function Number: 28
detachlimbsupdatemodelqueue(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(level.mutilate_detach_limb_queue))
{
level.mutilate_detach_limb_queue = 0;
}
var_06 = floor(level.mutilate_detach_limb_queue / 2) * 0.05;
level.mutilate_detach_limb_queue++;
var_07 = "entitydeleted";
if(function_01EF(self))
{
var_07 = "death";
}
self endon(var_07);
thread decrementlimbqueueondelete(var_07);
if(var_06 > 0)
{
wait(var_06);
}
detachlimbsupdatemodel(param_00,param_01,param_02,param_03,param_04,param_05);
thread decrementlimbqueue();
self notify("mutilate_queue_processed");
}
//Function Number: 29
decrementlimbqueueondelete(param_00)
{
self endon("mutilate_queue_processed");
self waittill(param_00);
thread decrementlimbqueue();
}
//Function Number: 30
decrementlimbqueue()
{
wait 0.05;
level.mutilate_detach_limb_queue--;
level.mutilate_detach_limb_queue = int(max(level.mutilate_detach_limb_queue,0));
}
//Function Number: 31
func_2E44(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 = param_00 & self.var_2FDB;
var_06 = ~self.var_6250 & param_00;
self.var_6250 = self.var_6250 | param_00;
self.var_7AD3 = var_06;
if(function_01EF(self))
{
self [[ maps/mp/agents/_agent_utility::func_A59("on_mutilate") ]](var_06);
}
if(common_scripts\utility::func_562E(param_05))
{
thread detachlimbsupdatemodelqueue(param_00,param_01,param_02,param_03,param_04,var_06);
return;
}
detachlimbsupdatemodel(param_00,param_01,param_02,param_03,param_04,var_06);
}
//Function Number: 32
detachlimbsupdatemodel(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(param_03)
{
if(param_05 & 1 != 0)
{
func_903D(1,param_02,param_04);
}
if(param_05 & 2 != 0)
{
func_903D(2,param_02,param_04);
}
if(param_05 & 4 != 0)
{
func_903D(4,param_02,param_04);
}
if(param_05 & 8 != 0)
{
func_903D(8,param_02,param_04);
}
}
if(param_05 & 16 != 0)
{
func_AC26(param_02);
func_903D(16,param_02,param_04);
if(isdefined(self.var_5DAC) && isdefined(self.var_5DAC["tag_eye"]))
{
function_014E(self.var_5DAC["tag_eye"],1);
thread func_2CD5();
}
}
if(!param_01 && param_03)
{
lib_054D::func_90B0(self,param_05,self.var_8D9);
}
lib_0547::func_A19E();
}
//Function Number: 33
func_903D(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
var_03 = lib_0547::func_4744(param_00);
var_04 = func_4559(param_00,var_03,"tagName");
var_05 = func_4558(param_00,var_04);
var_06 = self gettagangles(var_04);
var_07 = undefined;
if(!isdefined(param_01))
{
param_01 = (0,0,0);
}
var_08 = func_4559(param_00,var_03,"modelToSpawn");
if(param_02 && isdefined(var_08))
{
var_07 = spawn("script_model",var_05);
var_07 setmodel(var_08);
var_07.var_1D = var_06;
var_09 = (0,0,randomfloatrange(1000,2000));
var_0A = param_01 * randomfloatrange(500,1000);
var_0B = (randomfloatrange(-2000,2000),randomfloatrange(-2000,2000),randomfloatrange(-2000,2000));
var_0C = anglestoright(self.var_1D);
switch(param_00)
{
case 1:
var_0A = var_0A + var_0C * 750;
break;
case 4:
var_0A = var_0A + var_0C * 500;
break;
case 2:
var_0A = var_0A - var_0C * 750;
break;
case 8:
var_0A = var_0A - var_0C * 500;
break;
}
var_0D = var_09 + var_0A;
var_0E = length(var_0D);
var_0F = var_0D / var_0E;
var_0E = min(var_0E,1750);
var_07 method_83C9(var_0F * var_0E,var_0B);
var_07 method_8553();
if(level.var_66BF < level.var_2FDD.size)
{
level.var_2FDD[level.var_66BF] delete();
}
level.var_2FDD[level.var_66BF] = var_07;
level.var_66BF = level.var_66BF + 1 % 20;
}
var_10 = func_4559(param_00,var_03,"fxTagName");
var_11 = func_4559(param_00,var_03,"limbFX");
var_12 = func_4559(param_00,var_03,"gibFX");
if(common_scripts\utility::func_562E(func_4559(param_00,var_03,"noGib")))
{
var_12 = undefined;
}
if(isdefined(var_12))
{
var_13 = self gettagangles(var_10);
var_14 = anglestoforward(var_13);
var_15 = anglestoup(var_13);
var_16 = vectornormalize(var_14 + 4 * param_01);
var_17 = vectornormalize(vectorcross(var_16,var_15));
if(lengthsquared(var_17) < 0.5)
{
var_17 = anglestoright(var_13);
}
var_18 = vectorcross(var_17,var_16);
playfx(common_scripts\utility::func_44F5(var_12),self gettagorigin(var_10),var_16,var_18);
}
if(isdefined(var_11))
{
lib_0547::func_74A5(common_scripts\utility::func_44F5(var_11),var_07,var_10,1);
}
var_19 = lib_0547::func_4495();
var_1A = func_4559(param_00,var_03,var_19);
thread func_70F1(var_1A);
}
//Function Number: 34
func_70F1(param_00)
{
wait 0.05;
if(self.var_BC > 0)
{
self playsoundonmovingent(param_00);
return;
}
playclientsound(param_00,undefined,self.var_116);
}
//Function Number: 35
func_65CD(param_00)
{
self notify("mutatorSpawnSound");
self endon("mutatorSpawnSound");
if(common_scripts\utility::func_562E(self.var_6723))
{
return;
}
if(isdefined(level.var_65CB[param_00][2]))
{
wait(randomfloatrange(0.2,0.8));
var_01 = level.var_65CB[param_00][2];
self playsoundonmovingent(var_01);
}
}
//Function Number: 36
func_6ADD(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
foreach(var_0B in level.var_65CB)
{
if(isdefined(var_0B[4]))
{
self [[ var_0B[4] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
}
}
//Function Number: 37
func_6B4A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
foreach(var_0A in level.var_65CB)
{
if(isdefined(var_0A[3]))
{
self [[ var_0A[3] ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
}
}
//Function Number: 38
func_9E19(param_00,param_01,param_02)
{
if(!param_02 == "BULLET" || param_02 == "MOD_PISTOL_BULLET" || param_02 == "MOD_RIFLE_BULLET")
{
return;
}
if(!param_01 == "helmet" || param_01 == "head" || param_01 == "neck")
{
return;
}
var_03 = 0.25;
if(randomfloat(1) > var_03)
{
return;
}
func_AC26(param_00);
}
//Function Number: 39
func_2CD9()
{
self endon("death");
self waittill("helmet_pop",var_00);
func_AC26(anglestoright(self.var_1D) + anglestoup(self.var_1D),var_00);
}
//Function Number: 40
func_AC26(param_00,param_01)
{
self endon("death");
self endon("entitydeleted");
if(self.var_4B6E || self.var_4B5A)
{
var_02 = self.var_4CAA;
var_03 = self gettagorigin("j_head") + (0,0,20);
var_04 = self gettagangles("j_head");
self.var_4B6E = 0;
self.var_4B5A = 0;
if(isdefined(param_01))
{
wait(param_01);
}
lib_0547::func_A19E();
var_05 = spawn("script_model",var_03);
var_05 setmodel(var_02);
var_05.var_1D = var_04;
var_06 = spawn("script_model",var_05.var_116);
var_06 setmodel("helmet_collision");
var_06.var_1D = var_05.var_1D;
var_05 linkto(var_06);
var_06.var_6292 = var_05;
if(!isdefined(param_00))
{
param_00 = anglestoforward(var_06.var_1D);
}
var_07 = param_00;
var_08 = var_07[0] * 10000 * randomfloat(1);
var_09 = var_07[1] * 10000 * randomfloat(1);
var_0A = var_07[2] * 6000 * randomfloat(1);
var_0B = var_06.var_116 + param_00 * -5;
var_06 method_82C5(var_0B,(var_08,var_09,var_0A));
var_06 method_8553();
var_05 method_8553();
var_06 thread func_2395();
var_06 hideallparts();
}
}
//Function Number: 41
func_2395()
{
level endon("game_ended");
wait(15);
if(isdefined(self))
{
if(isdefined(self.var_6292))
{
self.var_6292 delete();
}
self delete();
}
}