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

775 lines
18 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts\_hit_found.gsc
* Game: Call of Duty: WWII
* Platform: PC
* Function Count: 14
* Decompile Time: 234 ms
* Timestamp: 10/27/2023 3:26:38 AM
*******************************************************************/
//Function Number: 1
func_4161(param_00,param_01,param_02)
{
var_03 = [];
for(var_04 = 0;var_04 <= param_02;var_04 = var_04 + 3)
{
var_05 = param_01 * var_04;
var_03[var_03.size] = param_00 + var_05;
}
var_03[var_03.size] = param_00 + param_01 * param_02;
return var_03;
}
//Function Number: 2
func_9F90(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
var_05 = [];
var_06 = [];
var_07 = undefined;
var_08 = undefined;
var_09 = undefined;
var_0A = "none";
var_0B = 99999999;
var_0C = undefined;
var_0D = undefined;
var_0E = undefined;
var_0F = undefined;
var_10 = undefined;
var_11 = undefined;
var_12 = undefined;
var_13 = undefined;
var_14 = 0;
var_15 = undefined;
var_10 = anglestoforward(self.var_1D);
var_10 = vectornormalize((var_10[0],var_10[1],0));
var_16 = self.var_116 + var_10 * 15;
if(param_02)
{
var_17 = 10;
var_18 = 13;
}
else
{
var_17 = 60;
var_18 = 45;
}
var_07 = var_16 + (0,0,var_17);
var_05 = func_4161(var_07,var_10,15);
var_19 = var_05.size;
for(var_1A = 0;var_1A < var_19;var_1A++)
{
var_1B = var_05[var_1A];
var_1C = var_1B - (0,0,var_18);
if(isdefined(var_0F) && isdefined(param_04))
{
var_1D = distance2d(var_1B,var_08);
if(var_1D > param_04)
{
var_06[var_1A] = undefined;
continue;
}
}
if(!param_02)
{
var_06[var_1A] = func_9F91(var_1B,var_1C,param_00,param_01,5,var_14);
if(var_06[var_1A]["is_matching_hit_found"] == 0)
{
if(1 && var_14)
{
var_06[var_1A]["is_matching_hit_found"] = 1;
var_06[var_1A]["position"] = var_05[var_1A];
}
else
{
var_06[var_1A] = undefined;
continue;
}
}
if(!isdefined(var_15) && isdefined(var_06[var_1A]["entity"]))
{
var_15 = var_06[var_1A]["entity"];
var_1E = common_scripts\_plant_weapon::func_439E(var_15);
if(isdefined(var_1E))
{
if(var_1E < 15)
{
}
else
{
var_1F = func_4161(var_05[var_19 - 1],var_10,var_1E - 15);
var_05 = common_scripts\utility::func_F73(var_05,var_1F);
var_19 = var_05.size;
}
}
}
if(1 && !var_14 && var_06[var_1A]["surface_flags"] & 134217728 || var_06[var_1A]["surface_flags"] & 67108864)
{
var_14 = 1;
}
var_20 = var_06[var_1A]["position"];
}
else
{
var_20 = var_1B;
}
var_1C = var_05[var_1A] - (0,0,var_18);
var_21 = func_1D85(var_20,var_1C,0);
var_22 = var_21[0];
var_23 = var_21[1];
var_24 = var_21[2];
if(!isdefined(var_22))
{
var_06[var_1A] = undefined;
continue;
}
var_0E = param_03 - 15;
var_06[var_1A]["brush_model_solid_spot"] = var_22;
var_06[var_1A]["brush_model_solid_surfacetype"] = var_23;
var_06[var_1A]["entity"] = var_24;
if(!isdefined(var_11) || var_22[2] > var_11)
{
var_11 = var_22[2];
}
if(!isdefined(var_0F))
{
var_0F = var_1A;
var_08 = var_22;
var_0D = var_08 + var_10 * var_0E;
}
if(0)
{
break;
}
}
if(1)
{
var_25 = [];
foreach(var_27 in var_06)
{
if(var_11 - var_27["brush_model_solid_spot"][2] <= common_scripts\_plant_weapon::func_41C4())
{
var_25[var_25.size] = var_27;
}
else if(getdvarint("turret_plant_debug"))
{
}
}
var_06 = var_25;
}
foreach(var_27 in var_06)
{
var_2A = distance2dsquared(var_27["brush_model_solid_spot"],var_0D);
if(var_2A < var_0B)
{
var_0B = var_2A;
var_09 = var_27["brush_model_solid_spot"];
var_0A = var_27["brush_model_solid_surfacetype"];
var_0C = var_27["entity"];
}
}
if(isdefined(var_09))
{
var_2C = 1;
if(param_02)
{
var_2D = 7;
var_2E[0] = (self.var_116[0],self.var_116[1],var_09[2] + var_2D) - anglestoforward(self.var_1D) * 15;
var_2E[1] = var_2E[0] - anglestoright(self.var_1D) * 15;
var_2E[2] = var_2E[0] + anglestoright(self.var_1D) * 15;
var_2F = (var_09[0],var_09[1],var_09[2] + var_2D) + anglestoforward(self.var_1D) * 3;
for(var_1A = 0;var_1A < var_2E.size;var_1A++)
{
var_30 = func_1D85(var_2E[var_1A],var_2F,1,var_1A,var_2E.size);
var_22 = var_30[0];
var_23 = var_30[1];
if(isdefined(var_22))
{
var_2C = 0;
break;
}
}
}
if(var_2C)
{
return [var_09,var_0A,var_0C];
}
}
return [undefined,undefined,undefined];
}
//Function Number: 3
func_9F91(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = 0;
var_07 = 0;
if(param_02)
{
var_06 = var_06 | 536870912;
var_07 = var_07 | 64;
}
if(param_03)
{
var_06 = var_06 | 16777216;
var_07 = var_07 | 67108864;
var_07 = var_07 | 134217728;
}
var_08 = function_0335(param_00,param_01,var_06,var_07,self,param_04);
return var_08;
}
//Function Number: 4
func_1D85(param_00,param_01,param_02,param_03,param_04)
{
var_05 = undefined;
var_06 = undefined;
var_07 = ~0;
var_08 = 0;
if(param_02)
{
var_09 = 377552881;
}
else
{
var_09 = 377749489;
}
var_06 = function_0335(param_00,param_01,var_09,var_07,self,undefined,var_08);
if(var_06["is_matching_hit_found"])
{
return [var_06["position"],var_06["surfacetype"],var_06["entity"]];
}
return [undefined,undefined];
}
//Function Number: 5
func_6FAC(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = getdvarint("turret_plant_debug") == 2;
if(param_00["is_hit"])
{
if(!var_06)
{
return;
}
}
var_07 = param_01;
var_08 = param_02;
if(!isdefined(param_05))
{
var_09 = physicstrace(var_07,var_08,param_03);
}
else
{
var_0A = function_0335(var_08,var_09,var_06,undefined,param_04);
if(var_0A["is_matching_hit_found"])
{
var_09 = var_0A["position"];
}
else
{
var_09 = var_08;
}
}
if(!isdefined(param_00["current_angle"]))
{
var_0B = vectornormalize(var_09 - var_07);
param_04 = vectornormalize(param_04);
var_0C = vectordot(var_0B,param_04);
var_0C = clamp(var_0C,-1,1);
param_00["current_angle"] = acos(var_0C);
}
if(!common_scripts\utility::func_5646(var_09,var_08))
{
if(param_00["is_hit"] == 0)
{
param_00["hit_angle"] = param_00["current_angle"];
param_00["hit_point"] = var_09;
param_00["is_hit"] = 1;
}
}
return param_00;
}
//Function Number: 6
func_42BA(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = [];
var_07 = [];
if(!isdefined(param_04))
{
param_04 = 20;
}
var_08 = undefined;
if(param_03 > 0)
{
var_08 = int(param_03 / param_04) + 2;
}
else
{
param_04 = -1 * param_04;
var_08 = int(param_03 / param_04) + 2;
}
var_09 = 0;
for(var_0A = 0;var_0A < var_08;var_0A++)
{
if(var_0A == var_08 - 1)
{
var_09 = param_03;
}
else
{
var_09 = var_0A * param_04;
}
var_0B = undefined;
if(0)
{
var_0B = combineangles(param_01,(0,var_09,0));
}
else
{
var_0B = (param_01[0],angleclamp180(param_01[1] + var_09),param_01[2]);
}
var_0C = anglestoforward(var_0B) * param_02;
var_06[var_0A] = var_0C + param_00;
if(param_05)
{
var_0D = combineangles(var_0B,(0,param_05,0));
var_0E = anglestoforward(var_0D) * param_02;
var_07[var_0A] = var_0E + param_00;
}
}
return [var_06,var_07,var_0A];
}
//Function Number: 7
func_6FAB(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = getdvarint("turret_plant_debug") == 2;
var_0A = [];
var_0B = func_42BA(param_01,param_02,param_03,param_04,param_05,param_06);
var_0C = var_0B[0];
var_0D = var_0B[1];
var_0E = var_0B[2];
var_0F = anglestoforward(param_02);
var_0A["is_hit"] = 0;
var_0A["arc_end"] = var_0C[var_0E];
for(var_10 = 0;var_10 < var_0C.size;var_10++)
{
var_0A["current_angle"] = undefined;
var_0A = func_6FAC(var_0A,param_01,var_0C[var_10],param_07,var_0F,param_08);
if(var_0A["is_hit"])
{
break;
}
if(param_06)
{
var_11 = var_0D[var_10];
}
else
{
var_11 = var_0C[var_10];
}
var_12 = (var_11[0],var_11[1],param_00 + common_scripts\_plant_weapon::func_41B5());
var_0A = func_6FAC(var_0A,var_11,var_12,param_07,var_0F,param_08);
if(var_0A["is_hit"])
{
break;
}
var_13 = var_12;
var_14 = (var_13[0],var_13[1],param_00 - common_scripts\_plant_weapon::func_41B5());
var_0A = func_6FAC(var_0A,var_13,var_14,param_07,var_0F,param_08);
var_0A["is_hit"] = !var_0A["is_hit"];
if(var_0A["is_hit"])
{
var_0A["hit_angle"] = var_0A["current_angle"];
break;
}
}
return var_0A;
}
//Function Number: 8
func_4B43(param_00,param_01,param_02)
{
if(isdefined(param_00))
{
var_03 = [];
var_03["is_hit"] = 0;
var_04 = anglestoforward(combineangles(self.var_1D,(0,param_02,0)));
var_05 = param_00 - var_04 * param_01;
var_06 = (var_05[0],var_05[1],self.var_116[2] - common_scripts\_plant_weapon::func_41B5());
var_03 = func_6FAC(var_03,var_05,var_06,self,anglestoforward(self.var_1D),undefined);
return var_03["is_hit"];
}
return 0;
}
//Function Number: 9
func_43D8(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
var_0C = combineangles(param_03,(0,180,0));
var_0D = (param_01[0],param_01[1],0) - (param_02[0],param_02[1],0);
var_0E = length(var_0D);
var_0F = vectornormalize(var_0D);
var_10 = param_01 + var_0F * param_05 + (0,0,param_04);
var_11["right_outer"] = spawnstruct();
var_11["right_outer"].var_F40 = var_10;
var_11["right_outer"].var_F42 = param_06;
var_11["right_outer"].var_F3E = -1 * param_08;
var_11["right_outer"].var_7EDF = var_0C;
var_11["right_outer"].var_7064 = param_00;
var_11["right_outer"].var_32D3 = param_0B;
var_11["right_outer"].trace_type = "arc_radial";
var_11["right_outer"].custom_mask = undefined;
var_11["left_outer"] = spawnstruct();
var_11["left_outer"].var_F40 = var_10;
var_11["left_outer"].var_F42 = param_06;
var_11["left_outer"].var_F3E = param_07;
var_11["left_outer"].var_7EDF = var_0C;
var_11["left_outer"].var_7064 = param_00;
var_11["left_outer"].var_32D3 = param_0B;
var_11["left_outer"].trace_type = "arc_radial";
var_11["left_outer"].custom_mask = undefined;
var_12 = var_0E + 7;
var_11["right_inner"] = spawnstruct();
var_11["right_inner"].var_F40 = var_10;
var_11["right_inner"].var_F42 = var_12;
var_11["right_inner"].var_F3E = -1 * param_08;
var_11["right_inner"].var_7EDF = var_0C;
var_11["right_inner"].var_7064 = param_00;
var_11["right_inner"].var_32D3 = param_0B;
var_11["right_inner"].trace_type = "arc_single";
var_11["right_inner"].custom_mask = 377552881;
var_11["left_inner"] = spawnstruct();
var_11["left_inner"].var_F40 = var_10;
var_11["left_inner"].var_F42 = var_12;
var_11["left_inner"].var_F3E = param_07;
var_11["left_inner"].var_7EDF = var_0C;
var_11["left_inner"].var_7064 = param_00;
var_11["left_inner"].var_32D3 = param_0B;
var_11["left_inner"].trace_type = "arc_single";
var_11["left_inner"].custom_mask = 377552881;
var_13 = vectortoangles(vectornormalize(param_02 - param_01));
if(common_scripts\_plant_weapon::func_8BAF())
{
var_11["le_top_tag_player"] = spawnstruct();
var_11["le_top_tag_player"].var_F40 = param_01;
var_11["le_top_tag_player"].var_F42 = distance(param_02,param_01);
var_11["le_top_tag_player"].var_F3E = param_07;
var_11["le_top_tag_player"].var_F3F = param_09;
var_11["le_top_tag_player"].var_7EDF = var_13;
var_11["le_top_tag_player"].trace_type = "arc_multi";
var_11["le_top_tag_player"].custom_mask = 377749489;
var_11["ri_top_tag_player"] = spawnstruct();
var_11["ri_top_tag_player"].var_F40 = param_01;
var_11["ri_top_tag_player"].var_F42 = distance(param_02,param_01);
var_11["ri_top_tag_player"].var_F3E = -1 * param_08;
var_11["ri_top_tag_player"].var_F3F = param_09;
var_11["ri_top_tag_player"].var_7EDF = var_13;
var_11["ri_top_tag_player"].trace_type = "arc_multi";
var_11["ri_top_tag_player"].custom_mask = 377749489;
}
var_14 = 12;
var_15 = 7;
var_16 = func_41EB(self,var_11,var_14,var_15);
var_17 = var_16[0];
var_18 = var_16[1];
var_19 = var_16[2];
var_1A = var_16[3];
if(!isdefined(var_17) || var_17 > param_07)
{
var_17 = param_07;
}
if(!isdefined(var_18) || var_18 > param_08)
{
var_18 = param_08;
}
if(!isdefined(var_19) || var_19 > param_09)
{
var_19 = param_09;
}
if(!isdefined(var_1A) || var_1A > param_0A)
{
var_1A = param_0A;
}
return [var_17,var_18,var_19,var_1A];
}
//Function Number: 10
func_10D0(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_01))
{
param_01 = param_00;
}
param_00.var_5C66 = param_00 method_85A3();
param_00.var_7E86 = param_00 method_85A4();
param_00.var_9A95 = param_00 method_84BB();
param_00.var_1B4B = param_00 method_84BC();
var_05 = param_01 gettagorigin("TAG_PLAYER");
var_06 = param_01 gettagangles("TAG_PLAYER");
var_07 = param_01 gettagorigin("TAG_TURRET");
var_08 = param_01 gettagangles("TAG_TURRET");
var_09 = var_07 - var_05;
var_0A = length(var_09);
var_0B = combineangles(var_08,(0,180,0));
var_0C = vectortoangles(vectornormalize(var_05 - var_07));
var_0C = combineangles(var_0C,(0,0,90));
var_0D = combineangles(var_08,(0,180,90));
var_0E = [];
var_0F = (var_07[0],var_07[1],var_05[2]);
if(isdefined(param_03))
{
if(var_0A > 0)
{
var_10 = var_09 * 1 / var_0A;
var_0F = var_0F + var_10 * param_03;
}
}
if(!isdefined(param_04))
{
param_04 = 15;
}
if(isdefined(param_03))
{
param_04 = param_04 - param_03;
}
var_11 = var_0A + param_04;
var_12 = var_05 - var_07;
var_13 = func_43D8(param_02[2],var_07,var_05,var_08,var_12[2],0,var_11,param_00.var_5C66,param_00.var_7E86,param_00.var_9A95,param_00.var_1B4B);
var_14 = var_13[0];
var_15 = var_13[1];
var_16 = var_13[2];
var_17 = var_13[3];
if(isdefined(var_14) && var_14 < param_00 method_85A3())
{
param_00 method_8151(var_14);
}
if(isdefined(var_15) && var_15 < param_00 method_85A4())
{
param_00 method_8150(var_15);
}
if(isdefined(var_16) && var_16 < param_00 method_84BB())
{
param_00 method_8152(var_16);
}
if(isdefined(var_17) && var_17 < param_00 method_84BC())
{
param_00 method_8153(var_17);
}
}
//Function Number: 11
func_41EB(param_00,param_01,param_02,param_03)
{
var_04 = [];
var_05 = "";
var_06 = 0;
var_07 = undefined;
foreach(var_0D, var_09 in param_01)
{
var_0A = undefined;
if(issubstr(var_0D,"left"))
{
var_05 = "left";
var_0A = param_02;
}
else if(issubstr(var_0D,"right"))
{
var_05 = "right";
var_0A = param_02;
}
if(issubstr(var_0D,"top"))
{
var_05 = "top";
var_0A = param_03;
}
else if(issubstr(var_0D,"bottom"))
{
var_05 = "bottom";
var_0A = param_03;
}
if(var_09.trace_type == "arc_radial")
{
var_07 = func_6FAB(var_09.var_7064,var_09.var_F40,var_09.var_7EDF,var_09.var_F42,var_09.var_F3E,5,var_09.var_32D3,param_00,var_09.custom_mask);
}
else if(var_09.trace_type == "arc_multi")
{
var_0B = add_padding_and_get_signed_arc_angle_override_if_needed(var_09.var_F3E,var_0D,var_04,var_0A);
var_07 = func_6FAA(var_09.var_F40,var_09.var_7EDF,var_09.var_F42,var_0B,10,var_09.var_F3F + param_03,param_00,var_09.custom_mask);
}
else if(var_09.trace_type == "arc_single")
{
var_0B = add_padding_and_get_signed_arc_angle_override_if_needed(var_09.var_F3E,var_0D,var_04,var_0A);
var_07 = common_scripts\utility::func_6FA9(var_09.var_F40,var_09.var_7EDF,var_09.var_F42,var_0B,param_00,var_09.custom_mask);
}
if(var_07["is_hit"])
{
var_0C = var_07["hit_angle"];
var_0C = abs(angleclamp180(var_0C));
if(var_0C > 10)
{
var_0C = var_0C - var_0A;
}
if(!isdefined(var_04[var_05]) || var_0C < var_04[var_05])
{
var_04[var_05] = var_0C;
}
}
var_06++;
}
return [var_04["left"],var_04["right"],var_04["top"],var_04["bottom"]];
}
//Function Number: 12
add_padding_and_get_signed_arc_angle_override_if_needed(param_00,param_01,param_02,param_03)
{
if(function_02C6(param_01,"le") && isdefined(param_02["left"]))
{
var_04 = param_02["left"];
}
else if(function_02C6(param_02,"ri") && isdefined(param_03["right"]))
{
var_04 = param_03["right"];
}
else
{
var_04 = abs(param_01);
}
if(param_00 < 0)
{
var_05 = -1 * var_04 + param_03;
}
else
{
var_05 = var_05 + var_04;
}
return var_05;
}
//Function Number: 13
func_6FAA(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
var_08 = getdvarint("turret_plant_debug") == 2;
var_09 = [];
var_0A = func_42BA(param_00,param_01,param_02,param_03,param_04,0);
var_0B = var_0A[0];
var_0C = var_0A[1];
var_0D = var_0A[2];
var_0E = anglestoforward(param_01);
for(var_0F = 0;var_0F < var_0B.size;var_0F++)
{
var_10 = vectortoangles(vectornormalize(var_0B[var_0F] - param_00));
var_10 = combineangles(var_10,(0,0,90));
if(param_05 > 0)
{
param_05 = param_05 * -1;
}
var_09[var_0F] = common_scripts\utility::func_6FA9(param_00,var_10,param_02,param_05,param_06,param_07);
}
var_11 = undefined;
var_12 = 0;
for(var_0F = 0;var_0F < var_09.size;var_0F++)
{
if(isdefined(var_09[var_0F]["is_hit"]) && var_09[var_0F]["is_hit"])
{
if(!isdefined(var_11) || abs(var_11) > abs(var_09[var_0F]["hit_angle"]))
{
var_11 = var_09[var_0F]["hit_angle"];
var_12 = var_0F;
}
}
}
return var_09[var_12];
}
//Function Number: 14
func_7E4B(param_00)
{
if(isdefined(param_00.var_5C66))
{
param_00 method_8151(param_00.var_5C66);
}
if(isdefined(param_00.var_7E86))
{
param_00 method_8150(param_00.var_7E86);
}
if(isdefined(param_00.var_9A95))
{
param_00 method_8152(param_00.var_9A95);
}
if(isdefined(param_00.var_1B4B))
{
param_00 method_8153(param_00.var_1B4B);
}
param_00.var_5C66 = undefined;
param_00.var_7E86 = undefined;
param_00.var_9A95 = undefined;
param_00.var_1B4B = undefined;
}