mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 10:27:55 -05:00
775 lines
18 KiB
Plaintext
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;
|
|
} |