/******************************************************************* * Decompiled By: Bog * Decompiled File: common_scripts\_exploder.gsc * Game: Call of Duty: WWII * Platform: PC * Function Count: 37 * Decompile Time: 624 ms * Timestamp: 10/27/2023 3:26:34 AM *******************************************************************/ //Function Number: 1 func_44D1(param_00) { param_00 = param_00 + ""; if(isdefined(level.var_2807)) { return level.var_2807[param_00]; } var_01 = []; foreach(var_03 in level.var_2804) { if(!isdefined(var_03)) { continue; } if(var_03.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_03.var_A265["exploder"])) { continue; } if(var_03.var_A265["exploder"] == param_00) { var_01[var_01.size] = var_03; } } return var_01; } //Function Number: 2 func_885C(param_00) { var_01 = param_00.var_8186; if(!isdefined(level.var_3948[var_01])) { level.var_3948[var_01] = []; } var_02 = param_00.var_1A5; if(!isdefined(var_02)) { var_02 = ""; } level.var_3948[var_01][level.var_3948[var_01].size] = param_00; if(func_393B(param_00)) { param_00 method_805C(); return; } if(func_393A(param_00)) { param_00 method_805C(); param_00 notsolid(); if(isdefined(param_00.var_187) && param_00.var_187 & 1) { if(isdefined(param_00.var_8166)) { param_00 method_8060(); } } return; } if(func_3939(param_00)) { param_00 method_805C(); param_00 notsolid(); if(isdefined(param_00.var_187) && param_00.var_187 & 1) { param_00 method_8060(); } } } //Function Number: 3 func_8A1A() { level.var_3948 = []; var_00 = getentarray("script_brushmodel","classname"); var_01 = getentarray("script_model","classname"); for(var_02 = 0;var_02 < var_01.size;var_02++) { var_00[var_00.size] = var_01[var_02]; } foreach(var_04 in var_00) { if(isdefined(var_04.var_8272)) { var_04.var_8186 = var_04.var_8272; } if(isdefined(var_04.var_6019)) { continue; } if(isdefined(var_04.var_8186)) { func_885C(var_04); } } var_06 = []; var_07 = getentarray("script_brushmodel","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].var_8272)) { var_07[var_02].var_8186 = var_07[var_02].var_8272; } if(isdefined(var_07[var_02].var_8186)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = getentarray("script_model","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].var_8272)) { var_07[var_02].var_8186 = var_07[var_02].var_8272; } if(isdefined(var_07[var_02].var_8186)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = getentarray("script_origin","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].var_8272)) { var_07[var_02].var_8186 = var_07[var_02].var_8272; } if(isdefined(var_07[var_02].var_8186)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = getentarray("item_health","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].var_8272)) { var_07[var_02].var_8186 = var_07[var_02].var_8272; } if(isdefined(var_07[var_02].var_8186)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = level.var_9478; for(var_02 = 0;var_02 < var_07.size;var_02++) { if(!isdefined(var_07[var_02])) { continue; } if(isdefined(var_07[var_02].var_8272)) { var_07[var_02].var_8186 = var_07[var_02].var_8272; } if(isdefined(var_07[var_02].var_8186)) { if(!isdefined(var_07[var_02].var_1D)) { var_07[var_02].var_1D = (0,0,0); } var_06[var_06.size] = var_07[var_02]; } } if(!isdefined(level.var_2804)) { level.var_2804 = []; } var_08 = []; var_08["exploderchunk visible"] = 1; var_08["exploderchunk"] = 1; var_08["exploder"] = 1; thread func_8825(); for(var_02 = 0;var_02 < var_06.size;var_02++) { var_09 = var_06[var_02]; var_04 = common_scripts\utility::func_27E7(var_09.var_81BB); var_04.var_A265 = []; var_04.var_A265["origin"] = var_09.var_116; var_04.var_A265["angles"] = var_09.var_1D; var_04.var_A265["delay"] = var_09.var_161; var_04.var_A265["delay_post"] = var_09.var_8155; var_04.var_A265["firefx"] = var_09.var_8193; var_04.var_A265["firefxdelay"] = var_09.var_8194; var_04.var_A265["firefxsound"] = var_09.var_8195; var_04.var_A265["firefxtimeout"] = var_09.var_8196; var_04.var_A265["earthquake"] = var_09.var_817B; var_04.var_A265["rumble"] = var_09.var_827D; var_04.var_A265["damage"] = var_09.var_8146; var_04.var_A265["damage_radius"] = var_09.var_8276; var_04.var_A265["soundalias"] = var_09.var_828B; var_04.var_A265["repeat"] = var_09.var_8278; var_04.var_A265["delay_min"] = var_09.var_8154; var_04.var_A265["delay_max"] = var_09.var_8153; var_04.var_A265["target"] = var_09.var_1A2; var_04.var_A265["ender"] = var_09.getstruct; var_04.var_A265["physics"] = var_09.var_8269; var_04.var_A265["type"] = "exploder"; if(!isdefined(var_09.var_81BB)) { var_04.var_A265["fxid"] = "No FX"; } else { var_04.var_A265["fxid"] = var_09.var_81BB; } var_04.var_A265["exploder"] = var_09.var_8186; if(isdefined(level.var_2807)) { var_0A = level.var_2807[var_04.var_A265["exploder"]]; if(!isdefined(var_0A)) { var_0A = []; } var_0A[var_0A.size] = var_04; level.var_2807[var_04.var_A265["exploder"]] = var_0A; } if(!isdefined(var_04.var_A265["delay"])) { var_04.var_A265["delay"] = 0; } if(isdefined(var_09.var_1A2)) { var_0B = getentarray(var_04.var_A265["target"],"targetname")[0]; if(isdefined(var_0B)) { var_0C = var_0B.var_116; var_04.var_A265["angles"] = vectortoangles(var_0C - var_04.var_A265["origin"]); } else { var_0B = common_scripts\utility::func_4375(var_04.var_A265["target"]); if(isdefined(var_0B)) { var_0C = var_0B.var_116; var_04.var_A265["angles"] = vectortoangles(var_0C - var_04.var_A265["origin"]); } } } if(!isdefined(var_09.var_3B)) { var_04.var_106 = var_09; if(isdefined(var_04.var_106.var_8205)) { precachemodel(var_04.var_106.var_8205); } } else if(var_09.var_3B == "script_brushmodel" || isdefined(var_09.var_106)) { var_04.var_106 = var_09; var_04.var_106.var_2FBF = var_09.var_8166; } if(isdefined(var_09.var_1A5) && isdefined(var_08[var_09.var_1A5])) { var_04.var_A265["exploder_type"] = var_09.var_1A5; } else { var_04.var_A265["exploder_type"] = "normal"; } if(isdefined(var_09.var_6019)) { var_04.var_A265["masked_exploder"] = var_09.var_106; var_04.var_A265["masked_exploder_spawnflags"] = var_09.var_187; var_04.var_A265["masked_exploder_script_disconnectpaths"] = var_09.var_8166; var_09 delete(); } var_04 common_scripts\_createfx::func_75BE(); } } //Function Number: 4 func_8825() { waittillframeend; waittillframeend; waittillframeend; var_00 = []; foreach(var_02 in level.var_2804) { if(var_02.var_A265["type"] != "exploder") { continue; } var_03 = var_02.var_A265["flag"]; if(!isdefined(var_03)) { continue; } if(var_03 == "nil") { var_02.var_A265["flag"] = undefined; } var_00[var_03] = 1; } foreach(var_07, var_06 in var_00) { thread func_3933(var_07); } } //Function Number: 5 func_3933(param_00) { if(!common_scripts\utility::func_3C83(param_00)) { common_scripts\utility::func_3C87(param_00); } common_scripts\utility::func_3C9F(param_00); foreach(var_02 in level.var_2804) { if(var_02.var_A265["type"] != "exploder") { continue; } var_03 = var_02.var_A265["flag"]; if(!isdefined(var_03)) { continue; } if(var_03 != param_00) { continue; } var_02 common_scripts\utility::func_894(); } } //Function Number: 6 func_393A(param_00) { return isdefined(param_00.var_1A5) && param_00.var_1A5 == "exploder"; } //Function Number: 7 func_393B(param_00) { return param_00.var_106 == "fx" && !isdefined(param_00.var_1A5) || param_00.var_1A5 != "exploderchunk"; } //Function Number: 8 func_3939(param_00) { return isdefined(param_00.var_1A5) && param_00.var_1A5 == "exploderchunk"; } //Function Number: 9 func_8BCA(param_00) { param_00 = param_00 + ""; if(isdefined(level.var_2807)) { var_01 = level.var_2807[param_00]; if(isdefined(var_01)) { foreach(var_03 in var_01) { if(!func_393B(var_03.var_106) && !func_393A(var_03.var_106) && !func_3939(var_03.var_106)) { var_03.var_106 method_805B(); } if(isdefined(var_03.var_1CB4)) { var_03.var_106 method_805B(); } } return; } return; } var_05 = 0; while(var_03 < level.var_2804.size) { var_05 = level.var_2804[var_03]; if(!isdefined(var_05)) { continue; } if(var_05.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_05.var_A265["exploder"])) { continue; } if(var_05.var_A265["exploder"] + "" != var_02) { continue; } if(isdefined(var_05.var_106)) { if(!func_393B(var_05.var_106) && !func_393A(var_05.var_106) && !func_3939(var_05.var_106)) { var_05.var_106 method_805B(); } if(isdefined(var_05.var_1CB4)) { var_05.var_106 method_805B(); } } var_03++; } } //Function Number: 10 func_93C8(param_00) { param_00 = param_00 + ""; if(isdefined(level.var_2807)) { var_01 = level.var_2807[param_00]; if(isdefined(var_01)) { foreach(var_03 in var_01) { if(!isdefined(var_03.var_5EED)) { continue; } var_03.var_5EED delete(); } return; } return; } var_05 = 0; while(var_03 < level.var_2804.size) { var_05 = level.var_2804[var_03]; if(!isdefined(var_05)) { continue; } if(var_05.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_05.var_A265["exploder"])) { continue; } if(var_05.var_A265["exploder"] + "" != var_02) { continue; } if(!isdefined(var_05.var_5EED)) { continue; } var_05.var_5EED delete(); var_03++; } } //Function Number: 11 func_417F(param_00) { param_00 = param_00 + ""; var_01 = []; if(isdefined(level.var_2807)) { var_02 = level.var_2807[param_00]; if(isdefined(var_02)) { var_01 = var_02; } } else { foreach(var_04 in level.var_2804) { if(var_04.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_04.var_A265["exploder"])) { continue; } if(var_04.var_A265["exploder"] + "" != param_00) { continue; } var_01[var_01.size] = var_04; } } return var_01; } //Function Number: 12 func_4CE3(param_00) { param_00 = param_00 + ""; if(isdefined(level.var_2807)) { var_01 = level.var_2807[param_00]; if(isdefined(var_01)) { foreach(var_03 in var_01) { if(isdefined(var_03.var_106)) { var_03.var_106 method_805C(); } } return; } return; } var_05 = 0; while(var_03 < level.var_2804.size) { var_05 = level.var_2804[var_03]; if(!isdefined(var_05)) { continue; } if(var_05.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_05.var_A265["exploder"])) { continue; } if(var_05.var_A265["exploder"] + "" != var_02) { continue; } if(isdefined(var_05.var_106)) { var_05.var_106 method_805C(); } var_03++; } } //Function Number: 13 func_2D0D(param_00) { param_00 = param_00 + ""; if(isdefined(level.var_2807)) { var_01 = level.var_2807[param_00]; if(isdefined(var_01)) { foreach(var_03 in var_01) { if(isdefined(var_03.var_106)) { var_03.var_106 delete(); } } } } else { for(var_05 = 0;var_05 < level.var_2804.size;var_05++) { var_03 = level.var_2804[var_05]; if(!isdefined(var_03)) { continue; } if(var_03.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_03.var_A265["exploder"])) { continue; } if(var_03.var_A265["exploder"] + "" != param_00) { continue; } if(isdefined(var_03.var_106)) { var_03.var_106 delete(); } } } level notify("killexplodertridgers" + param_00); } //Function Number: 14 func_392F() { if(isdefined(self.var_A265["delay"])) { var_00 = self.var_A265["delay"]; } else { var_00 = 0; } if(isdefined(self.var_A265["damage_radius"])) { var_01 = self.var_A265["damage_radius"]; } else { var_01 = 128; } var_02 = self.var_A265["damage"]; var_03 = self.var_A265["origin"]; wait(var_00); if(isdefined(level.var_2971)) { [[ level.var_2971 ]](var_03,var_01,var_02); return; } radiusdamage(var_03,var_01,var_02,var_02); } //Function Number: 15 func_0895() { if(isdefined(self.var_A265["firefx"])) { thread func_3BB8(); } if(isdefined(self.var_A265["fxid"]) && self.var_A265["fxid"] != "No FX") { thread func_1F5E(); } if(isdefined(self.var_A265["soundalias"]) && self.var_A265["soundalias"] != "nil") { thread func_8F30(); } if(isdefined(self.var_A265["loopsound"]) && self.var_A265["loopsound"] != "nil") { thread func_359F(); } if(isdefined(self.var_A265["damage"])) { thread func_392F(); } if(isdefined(self.var_A265["earthquake"])) { thread func_3931(); } if(isdefined(self.var_A265["rumble"])) { thread func_393F(); } if(self.var_A265["exploder_type"] == "exploder") { thread func_1CB3(); return; } if(self.var_A265["exploder_type"] == "exploderchunk" || self.var_A265["exploder_type"] == "exploderchunk visible") { thread func_1CB5(); return; } thread func_1CB2(); } //Function Number: 16 func_1CB2() { var_00 = self.var_A265["exploder"]; if(isdefined(self.var_A265["delay"]) && self.var_A265["delay"] >= 0) { wait(self.var_A265["delay"]); } else { wait 0.05; } if(!isdefined(self.var_106)) { return; } if(isdefined(self.var_106.var_3A)) { if(common_scripts\utility::func_57D7() && self.var_106.var_187 & 1) { self.var_106 [[ level.var_2587 ]](); } } if(level.var_27F6) { if(isdefined(self.var_3928)) { return; } self.var_3928 = 1; self.var_106 method_805C(); self.var_106 notsolid(); wait(3); self.var_3928 = undefined; self.var_106 method_805B(); self.var_106 solid(); return; } if(!isdefined(self.var_A265["fxid"]) || self.var_A265["fxid"] == "No FX") { self.var_A265["exploder"] = undefined; } waittillframeend; if(isdefined(self.var_106) && isdefined(self.var_106.var_3A)) { self.var_106 delete(); } } //Function Number: 17 func_1CB5() { if(isdefined(self.var_A265["delay"])) { wait(self.var_A265["delay"]); } var_00 = undefined; if(isdefined(self.var_A265["target"])) { var_00 = common_scripts\utility::func_4375(self.var_A265["target"]); } if(!isdefined(var_00)) { self.var_106 delete(); return; } self.var_106 method_805B(); if(isdefined(self.var_A265["delay_post"])) { wait(self.var_A265["delay_post"]); } var_01 = self.var_A265["origin"]; var_02 = self.var_A265["angles"]; var_03 = var_00.var_116; var_04 = var_03 - self.var_A265["origin"]; var_05 = var_04[0]; var_06 = var_04[1]; var_07 = var_04[2]; var_08 = isdefined(self.var_A265["physics"]); if(var_08) { var_09 = undefined; if(isdefined(var_00.var_1A2)) { var_09 = var_00 common_scripts\utility::func_4375(); } if(!isdefined(var_09)) { var_0A = var_01; var_0B = var_00.var_116; } else { var_0A = var_02.var_116; var_0B = var_0A.var_116 - var_01.var_116 * self.var_A265["physics"]; } self.var_106 method_82C5(var_0A,var_0B); return; } else { self.var_106 rotatevelocity((var_08,var_09,var_0A),12); self.var_106 gravitymove((var_08,var_09,var_0A),12); } if(level.var_27F6) { if(isdefined(self.var_3928)) { return; } self.var_3928 = 1; wait(3); self.var_3928 = undefined; self.var_A265["origin"] = var_04; self.var_A265["angles"] = var_05; self.var_106 method_805C(); return; } self.var_A265["exploder"] = undefined; wait(6); self.var_106 delete(); } //Function Number: 18 func_1CB3() { if(isdefined(self.var_A265["delay"])) { wait(self.var_A265["delay"]); } if(!isdefined(self.var_106.var_8205)) { self.var_106 method_805B(); self.var_106 solid(); } else { var_00 = self.var_106 common_scripts\utility::func_8FFC(); if(isdefined(self.var_106.var_164)) { var_00.var_164 = self.var_106.var_164; } var_00 setmodel(self.var_106.var_8205); var_00 method_805B(); } self.var_1CB4 = 1; if(common_scripts\utility::func_57D7() && !isdefined(self.var_106.var_8205) && self.var_106.var_187 & 1) { if(!isdefined(self.var_106.var_2FBF)) { self.var_106 [[ level.var_2587 ]](); } else { self.var_106 [[ level.var_2FC3 ]](); } } if(level.var_27F6) { if(isdefined(self.var_3928)) { return; } self.var_3928 = 1; wait(3); self.var_3928 = undefined; if(!isdefined(self.var_106.var_8205)) { self.var_106 method_805C(); self.var_106 notsolid(); } } } //Function Number: 19 func_393F() { if(!common_scripts\utility::func_57D7()) { return; } func_3930(); level.var_721C playrumbleonentity(self.var_A265["rumble"]); } //Function Number: 20 func_3930() { if(!isdefined(self.var_A265["delay"])) { self.var_A265["delay"] = 0; } var_00 = self.var_A265["delay"]; var_01 = self.var_A265["delay"] + 0.001; if(isdefined(self.var_A265["delay_min"])) { var_00 = self.var_A265["delay_min"]; } if(isdefined(self.var_A265["delay_max"])) { var_01 = self.var_A265["delay_max"]; } if(var_00 > 0) { var_02 = randomfloatrange(var_00,var_01); self.var_8F0 = var_02; wait(var_02); } } //Function Number: 21 func_359F() { common_scripts\utility::func_3F51(); var_00 = self.var_A265["origin"]; var_01 = self.var_A265["loopsound"]; func_3930(); common_scripts\utility::func_5EDF(var_01,var_00); } //Function Number: 22 func_8F30() { func_35A0(); } //Function Number: 23 func_35A0() { var_00 = self.var_A265["origin"]; var_01 = self.var_A265["soundalias"]; func_3930(); common_scripts\utility::func_3F50(var_01,var_00); } //Function Number: 24 func_3931() { func_3930(); common_scripts\utility::func_30AE(self.var_A265["earthquake"],self.var_A265["origin"]); } //Function Number: 25 func_393D() { if(!isdefined(self.var_A265["soundalias"]) || self.var_A265["soundalias"] == "nil") { return; } common_scripts\utility::func_3F50(self.var_A265["soundalias"],self.var_A265["origin"]); } //Function Number: 26 func_3BB8() { var_00 = self.var_A265["forward"]; var_01 = self.var_A265["up"]; var_02 = undefined; var_03 = self.var_A265["firefxsound"]; var_04 = self.var_A265["origin"]; var_05 = self.var_A265["firefx"]; var_06 = self.var_A265["ender"]; if(!isdefined(var_06)) { var_06 = "createfx_effectStopper"; } var_07 = 0.5; if(isdefined(self.var_A265["firefxdelay"])) { var_07 = self.var_A265["firefxdelay"]; } func_3930(); if(isdefined(var_03)) { common_scripts\utility::func_5EE2(var_03,var_04,(0,0,0),1,var_06); } playfx(level.var_611[var_05],self.var_A265["origin"],var_00,var_01); } //Function Number: 27 func_1F5E() { if(isdefined(self.var_A265["repeat"])) { thread func_393D(); for(var_00 = 0;var_00 < self.var_A265["repeat"];var_00++) { playfx(level.var_611[self.var_A265["fxid"]],self.var_A265["origin"],self.var_A265["forward"],self.var_A265["up"]); func_3930(); } return; } if(!isdefined(self.var_A265["delay"])) { self.var_A265["delay"] = 0; } if(self.var_A265["delay"] >= 0) { func_3930(); var_01 = 0; } else { var_01 = self.var_A265["delay"]; } if(isdefined(self.var_5EED)) { self.var_5EED delete(); } self.var_5EED = spawnfx(common_scripts\utility::func_44F5(self.var_A265["fxid"]),self.var_A265["origin"],self.var_A265["forward"],self.var_A265["up"]); if(level.var_27F6) { function_014E(self.var_5EED,1); } if(self.var_A265["delay"] >= 0) { triggerfx(self.var_5EED); } else { triggerfx(self.var_5EED,var_01); } func_393D(); } //Function Number: 28 func_0891(param_00,param_01,param_02) { param_00 = param_00 + ""; level notify("exploding_" + param_00); var_03 = 0; if(isdefined(level.var_2807) && !level.var_27F6) { var_04 = level.var_2807[param_00]; if(isdefined(var_04)) { foreach(var_06 in var_04) { if(!var_06 func_2158()) { continue; } var_06 common_scripts\utility::func_894(); var_03 = 1; } } } else { for(var_08 = 0;var_08 < level.var_2804.size;var_08++) { var_06 = level.var_2804[var_08]; if(!isdefined(var_06)) { continue; } if(var_06.var_A265["type"] != "exploder") { continue; } if(!isdefined(var_06.var_A265["exploder"])) { continue; } if(var_06.var_A265["exploder"] + "" != param_00) { continue; } if(!var_06 func_2158()) { continue; } var_06 common_scripts\utility::func_894(); var_03 = 1; } } if(!func_8BA5() && !var_03) { func_088E(param_00,param_01,param_02); } } //Function Number: 29 func_392A(param_00,param_01,param_02) { [[ level.var_62E.var_3945 ]](param_00,param_01,param_02); } //Function Number: 30 func_5A01(param_00) { var_01 = func_44D1(param_00); if(isdefined(var_01)) { foreach(var_03 in var_01) { if(isdefined(var_03.var_5EED)) { function_014E(var_03.var_5EED,1); } } wait 0.05; foreach(var_03 in var_01) { var_03 common_scripts\utility::func_6F21(); } } } //Function Number: 31 func_2158() { var_00 = self; return 1; } //Function Number: 32 func_088E(param_00,param_01,param_02) { if(!func_5640(param_00)) { return; } var_03 = int(param_00); activateclientexploder(var_03,param_01,param_02); } //Function Number: 33 func_2A6D(param_00,param_01,param_02) { if(!func_5640(param_00)) { return; } var_03 = int(param_00); stopclientexploder(var_03,param_01,param_02); } //Function Number: 34 func_5640(param_00) { if(!isdefined(param_00)) { return 0; } var_01 = param_00; if(isstring(param_00)) { var_01 = int(param_00); if(var_01 == 0 && param_00 != "0") { return 0; } } return var_01 >= 0; } //Function Number: 35 func_8BA5() { if(common_scripts\utility::func_57D7()) { return 1; } if(!isdefined(level.var_27F6)) { level.var_27F6 = getdvar("1459") != ""; } if(level.var_27F6) { return 1; } return getdvar("3508") != "1"; } //Function Number: 36 func_392D(param_00,param_01,param_02) { waittillframeend; waittillframeend; func_0891(param_00,param_01,param_02); } //Function Number: 37 func_392B(param_00,param_01,param_02) { func_0891(param_00,param_01,param_02); }