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

1309 lines
29 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3617.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 45
* Decompile Time: 27 ms
* Timestamp: 10/27/2023 12:30:56 AM
*******************************************************************/
//Function Number: 1
func_9527()
{
precacheitem("antigrav");
precachemodel("anti_grav_border_wm");
level._effect["antigrav_detonate_dud"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_dud.vfx");
level._effect["antigrav_caltrop_trail"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_trail.vfx");
level._effect["antigrav_detonate"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate.vfx");
level._effect["antigrav_detonate_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_cheap.vfx");
level._effect["antigrav_caltrop_barrier"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier.vfx");
level._effect["antigrav_caltrop_barrier_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_cheap.vfx");
level._effect["antigrav_area_small"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small.vfx");
level._effect["antigrav_area_small_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_cheap.vfx");
level._effect["antigrav_detonate_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_upgrade.vfx");
level._effect["antigrav_detonate_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_detonate_upgrade_cheap.vfx");
level._effect["antigrav_caltrop_barrier_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_upgrade.vfx");
level._effect["antigrav_caltrop_barrier_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_caltrop_barrier_upgrade_cheap.vfx");
level._effect["antigrav_area_small_up"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_upgrade.vfx");
level._effect["antigrav_area_small_up_cheap"] = loadfx("vfx/iw7/_requests/equipment/antigrav/antigrav_gren_area_small_upgrade_cheap.vfx");
scripts\common\utility::flag_init("antigrav_force_delete");
level.player.var_D363 = [];
level.player thread func_D0EB();
level thread func_365A();
level.var_2006 = spawnstruct();
level.var_2006.var_A8C6 = undefined;
level.var_2006.var_522B = [];
}
//Function Number: 2
func_2013(param_00)
{
var_01 = self;
var_02 = scripts\common\utility::spawn_tag_origin();
var_02.origin = param_00.origin;
var_02.var_15F = param_00;
var_02 linkto(var_02.var_15F);
level.var_2006.var_522B[level.var_2006.var_522B.size] = var_02;
var_03 = var_02.var_15F func_201A();
if(!isdefined(var_02.var_15F))
{
var_02 thread func_DFC5();
return;
}
var_02 func_E057();
var_02.var_85D2 = var_01 func_1294();
var_02.var_5F36 = var_01 func_1293();
var_02.var_112DF = var_03;
if(isdefined(var_01) && isdefined(var_01.var_202A) && var_01.var_202A == 1)
{
var_02.var_5F37 = 1;
}
else
{
var_02.var_5F37 = 0;
}
if(isdefined(var_01) && isdefined(level.player) && var_01 == level.player)
{
var_02.var_D43A = 1;
}
else
{
var_02.var_D43A = 0;
}
var_02 thread func_200F();
}
//Function Number: 3
func_201A()
{
self endon("entitydeleted");
self endon("death");
self waittill("missile_stuck",var_00,var_01,var_02);
return var_02;
}
//Function Number: 4
func_FF4F(param_00,param_01)
{
if(param_00 scripts\sp\_utility::isactorwallrunning())
{
return 0;
}
if(func_3CB0(param_00,param_01))
{
if(isdefined(param_00.var_1C78))
{
return param_00.var_1C78;
}
if(param_00 method_81A6())
{
return 0;
}
return 1;
}
return 0;
}
//Function Number: 5
func_200B()
{
var_00 = scripts\common\utility::spawn_tag_origin();
var_00.origin = self.origin;
level.var_2006.var_522B[level.var_2006.var_522B.size] = var_00;
var_00.var_85D2 = 156;
var_00.var_5F36 = 7;
var_00 thread func_200F();
}
//Function Number: 6
func_2017()
{
self playsurfacesound("gravity_explode_default",self.var_112DF);
}
//Function Number: 7
func_200F()
{
if(!isdefined(self.var_5F37))
{
self.var_5F37 = 0;
}
if(!isdefined(self.var_112DF))
{
self.var_112DF = "default";
}
self.angles = (0,0,0);
self.var_132AA = [];
thread func_2017();
if(!self.var_5F37)
{
if(level.var_2006.var_522B.size > 1)
{
var_00 = "antigrav_detonate_cheap";
}
else
{
var_00 = "antigrav_detonate";
}
}
else if(level.var_2006.var_522B.size > 1)
{
var_00 = "antigrav_detonate_up_cheap";
}
else
{
var_00 = "antigrav_detonate_up";
}
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
{
var_01 = spawnfx(level._effect[var_00],self.origin,(1,0,0),(0,0,1));
triggerfx(var_01);
self.var_132AA[self.var_132AA.size] = var_01;
}
else
{
playfx(level._effect[var_00],self.origin,(1,0,0),(0,0,1));
}
func_36E1();
func_1066C();
lib_0F18::func_10E8A("broadcast","attack",self.origin,1000);
level scripts\common\utility::func_6E59("antigrav_force_delete",0.55);
var_02 = [];
foreach(var_04 in function_0072())
{
if(func_FF4F(var_04,self))
{
var_02[var_02.size] = var_04;
}
}
thread scripts\common\utility::func_CD7F("gravity_field_lp");
self.var_CB13 = func_4933();
var_06 = 0;
var_07 = 0;
foreach(var_09 in self.var_378E)
{
if(var_09.var_5F15 == 1)
{
continue;
}
if(self.origin[2] - var_09.origin[2] > var_06)
{
var_06 = self.origin[2] - var_09.origin[2];
}
if(var_09.origin[2] - self.origin[2] > var_07)
{
var_07 = var_09.origin[2] - self.origin[2];
}
}
var_0B = self.origin[2] - var_06 - 24;
var_0C = self.origin[2] + var_07 + 72;
var_0D = var_0C + var_0B * 0.5;
if(var_0D < self.origin[2])
{
var_0E = self.origin;
var_0F = self.origin[2] - var_0B;
}
else
{
var_0E = (self.origin[0],self.origin[1],var_0F);
var_0F = var_0D - var_0C * 0.5;
}
func_4926(var_0E,var_0F);
scripts\common\utility::array_thread(var_02,::func_197D,self);
func_CF45();
thread func_FB3E();
level scripts\common\utility::func_6E59("antigrav_force_delete",self.var_5F36);
thread func_DFC5();
}
//Function Number: 8
func_4926(param_00,param_01)
{
var_02 = ["axis","allies","team3","neutral","bad_guys"];
if(!isdefined(level.var_2006.var_5602) || level.var_2006.var_5602.size == 0)
{
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0));
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,1);
return;
}
if(level.var_2006.var_5602.size > 0)
{
if(level.var_2006.var_5602[0] == "all")
{
return;
}
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"allies") && scripts\common\utility::func_2286(level.var_2006.var_5602,"axis"))
{
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"team3","neutral","bad_guys");
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
return;
}
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"allies"))
{
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"axis","team3","neutral","bad_guys");
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
return;
}
if(scripts\common\utility::func_2286(level.var_2006.var_5602,"axis"))
{
self.var_C2CA = function_0315(param_00,(self.var_85D2,self.var_85D2,param_01),(0,0,0),"allies","team3","neutral","bad_guys");
function_0277("antigrav" + self getentitynumber(),-1,param_00,self.var_85D2,0,"team3","neutral","bad_guys");
return;
}
return;
}
}
//Function Number: 9
func_FB3E()
{
level scripts\common\utility::func_6E59("antigrav_force_delete",self.var_5F36 - 0.4);
if(!isdefined(self))
{
return;
}
if(!isdefined(self.var_15F))
{
thread scripts\sp\_utility::func_CE2F("gravity_field_off");
}
thread scripts\common\utility::func_11018("gravity_field_lp");
}
//Function Number: 10
func_DFC5()
{
if(!isdefined(self))
{
return;
}
level notify("antigrav_done");
thread func_E057();
if(scripts\common\utility::flag("antigrav_force_delete"))
{
scripts\common\utility::func_136F7();
}
thread scripts\common\utility::func_11018("gravity_field_lp");
if(isdefined(self.var_BEFC))
{
func_D25C();
}
if(isdefined(self.var_CB13))
{
func_52B3(self.var_CB13);
}
if(isdefined(self.var_C2CA))
{
destroynavobstacle(self.var_C2CA);
function_0278("antigrav" + self getentitynumber());
}
if(isdefined(self.var_132AA))
{
foreach(var_01 in self.var_132AA)
{
var_01 delete();
}
}
if(isdefined(self.var_378D))
{
var_03 = self.var_378D;
foreach(var_05 in var_03)
{
func_DFC4(var_05);
}
}
level.var_2006.var_522B = scripts\common\utility::func_22A9(level.var_2006.var_522B,self);
self delete();
}
//Function Number: 11
func_E057()
{
if(isdefined(self.var_15F))
{
level.var_2006.var_A8C6 = self.var_15F.origin;
self unlink();
self.var_15F delete();
}
}
//Function Number: 12
func_DFC4(param_00)
{
if(isdefined(param_00.var_132AA))
{
foreach(var_02 in param_00.var_132AA)
{
var_02 delete();
}
}
killfxontag(level._effect["antigrav_caltrop_trail"],param_00,"tag_origin");
self.var_378D = scripts\common\utility::func_22A9(self.var_378D,param_00);
param_00 delete();
}
//Function Number: 13
func_DFBA()
{
level notify("removing_all_antigravs_instantly");
level endon("removing_all_antigravs_instantly");
scripts\common\utility::flag_set("antigrav_force_delete");
foreach(var_01 in level.var_2006.var_522B)
{
var_01 thread func_E057();
}
for(;;)
{
if(level.var_2006.var_522B.size > 0)
{
scripts\common\utility::func_136F7();
continue;
}
break;
}
scripts\common\utility::func_6E2A("antigrav_force_delete");
}
//Function Number: 14
func_197D(param_00)
{
if(!isdefined(self) || !isalive(self))
{
return;
}
if(isdefined(self.var_1491) && isdefined(self.var_1491.var_58DA))
{
self method_81D0();
return;
}
if(self.var_12BA4 == "c12")
{
return;
}
if(lib_0A1B::func_2938())
{
self method_83A1();
}
if(!isdefined(self.var_2023))
{
func_1978(param_00);
lib_0A1A::func_237C("antigrav_rise");
return;
}
if(self.var_2023 == "rise" || self.var_2023 == "float_idle")
{
self.var_201D = gettime() + param_00.var_5F36 + randomfloat(0.25) * 1000;
return;
}
if(self.var_2023 == "fall")
{
self.var_201D = gettime() + param_00.var_5F36 + randomfloat(0.25) * 1000;
self.var_2020 = 1;
return;
}
func_1978(param_00);
self.var_2020 = 1;
}
//Function Number: 15
func_1978(param_00)
{
self.var_2022 = gettime();
self.var_201D = self.var_2022 + param_00.var_5F36 + randomfloat(0.25) * 1000;
}
//Function Number: 16
func_CF45()
{
self.var_BEFC = 1;
level.player.var_D363[level.player.var_D363.size] = self;
level.player notify("new_antigrav_gren_active");
thread func_CF46();
}
//Function Number: 17
func_CF46()
{
scripts\common\utility::func_6E59("antigrav_force_delete",0.1);
self.var_BEFC = 0;
}
//Function Number: 18
func_D25C()
{
level.player.var_D363 = scripts\common\utility::func_22A9(level.player.var_D363,self);
level.player notify("removed_antigrav_gren");
}
//Function Number: 19
func_365A()
{
for(;;)
{
waittillframeend;
level.player.var_D363 = scripts\common\utility::func_22BC(level.player.var_D363);
var_00 = function_0075("all","C12");
foreach(var_02 in var_00)
{
if(!isalive(var_02))
{
continue;
}
if(!isdefined(var_02.var_93B5))
{
var_02.var_93B5 = 0;
}
var_03 = 0;
foreach(var_05 in level.player.var_D363)
{
if(func_3CB0(var_02,var_05))
{
var_03 = 1;
break;
}
}
if(var_03)
{
if(!var_02.var_93B5)
{
var_02.var_2015 = var_02.var_BCD6;
var_02.var_BCD6 = 0.2;
var_02.var_93B5 = 1;
}
continue;
}
if(var_02.var_93B5)
{
var_02.var_BCD6 = var_02.var_2015;
var_02.var_2015 = undefined;
var_02.var_93B5 = 0;
}
}
wait(0.05);
}
}
//Function Number: 20
func_D0EB()
{
self endon("death");
self.var_93B5 = 0;
for(;;)
{
waittillframeend;
level.player.var_D363 = scripts\common\utility::func_22BC(level.player.var_D363);
if(self.var_D363.size == 0)
{
if(self.var_93B5)
{
func_5567();
self.var_93B5 = 0;
}
self waittill("new_antigrav_gren_active");
}
var_00 = 0;
var_01 = 0;
self.var_4B16 = undefined;
if(!level.player scripts\sp\_utility::func_65DF("disable_antigrav_float") || !level.player scripts\sp\_utility::func_65DB("disable_antigrav_float"))
{
foreach(var_03 in self.var_D363)
{
if(func_3CB0(self,var_03))
{
var_00 = 1;
self.var_4B16 = var_03;
if(var_03.var_BEFC == 1)
{
var_01 = 1;
}
}
}
}
if(!self.var_93B5 && var_00)
{
thread func_6228();
self.var_93B5 = 1;
}
else if(self.var_93B5 && !var_00)
{
thread func_5567();
self.var_93B5 = 0;
}
wait(0.05);
}
}
//Function Number: 21
func_6228()
{
level.player notify("enable_player_antigrav_gren");
level.player endon("disable_player_antigrav_gren");
if(!isdefined(level.player.var_2028))
{
lib_0E4F::func_9755();
level.player.var_2028 = 1;
level.player.var_2024 = level.player getstance();
if(level.player.var_2024 == "crouch")
{
function_01C5("player_spaceViewHeight",40);
function_01C5("player_spaceCapsuleHeight",50);
}
else if(level.player.var_2024 == "prone")
{
function_01C5("player_spaceViewHeight",11);
function_01C5("player_spaceCapsuleHeight",30);
}
else
{
function_01C5("player_spaceViewHeight",60);
function_01C5("player_spaceCapsuleHeight",70);
}
}
level.player scripts\common\utility::func_1C6E(0);
level.player.var_C37D = getdvarint("player_death_animated",1);
setdvar("player_death_animated",0);
if(level.player scripts\sp\_utility::func_65DB("player_space_override_off"))
{
return;
}
if(level.player scripts\sp\_utility::func_9F59())
{
level.player notify("cancel_sliding");
level.player scripts\sp\_utility::func_6389();
}
if(level.player isonground())
{
level.player playgestureviewmodel("ges_antigrav_reaction");
level.player.var_D4AB = 1;
thread func_CF65();
}
else
{
level.player playgestureviewmodel("ges_antigrav_reaction");
level.player.var_D4AB = 1;
thread func_CF65();
}
level.player.var_2A6.var_6F43 = 1;
level.player scripts\sp\_utility::func_65E1("player_gravity_off");
level.player thread func_CF64();
level.player thread func_CF67();
}
//Function Number: 22
func_5567()
{
level.player notify("disable_player_antigrav_gren");
if(level.player scripts\sp\_utility::func_65DF("player_gravity_off"))
{
level.player scripts\sp\_utility::func_65DD("player_gravity_off");
}
level.player.var_D4AB = undefined;
level.player scripts\common\utility::func_1C6E(1);
setdvar("player_death_animated",level.player.var_C37D);
level.player.var_C37D = undefined;
thread func_5568();
}
//Function Number: 23
func_5568()
{
level.player endon("enable_player_antigrav_gren");
for(;;)
{
if(getdvarint("player_spaceEnabled") == 0)
{
break;
}
wait(0.05);
}
for(;;)
{
level.player setstance(level.player.var_2024);
if(level.player getstance() == level.player.var_2024)
{
break;
}
wait(0.05);
}
level.player.var_2028 = undefined;
}
//Function Number: 24
func_CF64()
{
self endon("death");
self notify("crawlmeleegrab_antigrav");
waittillframeend;
self.var_2A6.var_6F43 = 1;
self method_80D8(0.8,0.8);
lib_0E4F::func_6251();
lib_0E4F::func_621C();
while(lib_0E4F::func_9C7B())
{
if(!isdefined(self.var_4B16))
{
break;
}
if(!level.player.var_D4AB)
{
level.player playgestureviewmodel("ges_antigrav_idle");
}
var_00 = level.player.origin[2] - self.var_4B16.origin[2];
var_01 = clamp(100 - var_00 / 100,0,1);
var_02 = 50 * var_01;
var_03 = self getvelocity();
var_04 = (0,0,1);
var_05 = var_03 + var_04 * var_02;
self setvelocity(var_05);
wait(0.05);
}
level.player stopgestureviewmodel("ges_antigrav_reaction");
level.player stopgestureviewmodel("ges_antigrav_idle");
lib_0E4F::func_40A6();
if(isdefined(level.player.var_9BF5))
{
while(level.player.var_9BF5 == 1)
{
scripts\common\utility::func_136F7();
}
}
}
//Function Number: 25
func_CF65()
{
thread func_CF66();
self endon("antigrav_reaction_think_timeout");
self endon("death");
for(;;)
{
level.player waittill("gesture_stopped",var_00);
if(var_00 == "ges_antigrav_reaction")
{
break;
}
}
if(isdefined(self.var_D4AB))
{
self.var_D4AB = 0;
}
}
//Function Number: 26
func_CF66()
{
self endon("death");
wait(5);
self notify("antigrav_reaction_think_timeout");
if(isdefined(self.var_D4AB))
{
self.var_D4AB = 0;
}
}
//Function Number: 27
func_CF67()
{
level.player endon("death");
level.player endon("disable_player_antigrav_gren");
for(;;)
{
level waittill("ai_killed",var_00,var_01);
if(isdefined(level.player.var_4B16) && isdefined(level.player.var_4B16.var_D43A) && level.player.var_4B16.var_D43A == 1)
{
if(isdefined(var_00) && isdefined(var_00.team) && var_00.team == "axis")
{
if(isdefined(var_01) && var_01 == level.player)
{
break;
}
}
}
}
scripts\sp\_utility::func_834F("ANTI_GRAV_KILL");
}
//Function Number: 28
func_36E1()
{
var_00 = self.origin;
self.var_378E = [];
for(var_01 = 0;var_01 < 12;var_01++)
{
var_02 = 30 * var_01;
var_03 = self.var_85D2;
var_04 = func_378C(var_00,var_02,var_03);
if(isdefined(var_04))
{
var_05 = spawnstruct();
var_05.origin = var_04;
var_05.var_5F15 = 0;
if(var_04[2] + 256 < var_00[2])
{
var_05.var_5F15 = 1;
}
self.var_378E[self.var_378E.size] = var_05;
}
}
return self.var_378E;
}
//Function Number: 29
func_1066C(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
var_01 = self.origin;
var_02 = [];
self.var_378D = [];
for(var_03 = 0;var_03 < self.var_378E.size;var_03++)
{
var_04 = 0;
var_05 = 0;
if(var_03 > 0)
{
var_05 = var_03 - 1;
}
else
{
var_05 = self.var_378E.size - 1;
}
if(var_03 < self.var_378E.size - 1)
{
var_04 = var_03 + 1;
}
else
{
var_04 = 0;
}
var_06 = self.var_378E[var_04].origin;
var_07 = self.var_378E[var_05].origin;
var_08 = scripts\common\utility::func_6EE6(vectornormalize(var_07 - var_06));
var_09 = rotatevector(var_08,(0,-90,0));
if(length(var_09) == 0)
{
var_09 = vectornormalize(var_01 - self.var_378E[var_03].origin);
if(length(var_09) == 0)
{
var_09 = (0,0,1);
}
}
if(param_00)
{
self.var_378E[var_03].var_5F15 = 1;
}
self.var_378D[self.var_378D.size] = func_1066B(var_01,self.var_378E[var_03].origin,var_09,self.var_378E[var_03].var_5F15);
}
if(!param_00)
{
if(!self.var_5F37)
{
if(level.var_2006.var_522B.size > 1)
{
var_0A = "antigrav_area_small_cheap";
}
else
{
var_0A = "antigrav_area_small";
}
}
else if(level.var_2006.var_522B.size > 1)
{
var_0A = "antigrav_area_small_up_cheap";
}
else
{
var_0A = "antigrav_area_small_up";
}
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
{
var_0B = spawnfx(level._effect[var_0A],var_01,(1,0,0),(0,0,1));
func_C0A7(0.55,::triggerfx,var_0B);
self.var_132AA[self.var_132AA.size] = var_0B;
}
else
{
func_C0A7(0.55,::playfx,level._effect[var_0A],var_01,(1,0,0),(0,0,1));
}
var_0C = self.var_85D2 * 0.4;
var_0D = 0;
for(var_03 = 0;var_03 < self.var_378E.size;var_03++)
{
if(self.var_378E[var_03].var_5F15)
{
continue;
}
var_0E = distance(self.var_378E[var_03].origin,var_01);
var_0F = vectornormalize(self.var_378E[var_03].origin - var_01);
if(self.var_378E[var_03].origin[2] < var_01[2])
{
var_0F = scripts\common\utility::func_6EE6(var_0F);
}
var_10 = anglestoright(vectortoangles(var_0F));
var_11 = var_0C;
var_12 = [];
var_13 = 0;
while(var_11 < var_0E)
{
if(var_13 == 0 && !var_0D)
{
var_14 = 0;
var_12[var_12.size] = scripts\common\utility::func_5D14(var_01 + rotatevector(var_0F,(0,var_14,0)) * var_11,12,-1000);
}
else if(var_13 == 1)
{
var_14 = 0;
var_12[var_12.size] = scripts\common\utility::func_5D14(var_01 + rotatevector(var_0F,(0,var_14,0)) * var_11,12,-1000);
}
var_13++;
var_11 = var_11 + var_0C;
}
foreach(var_16 in var_12)
{
var_17 = [0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4];
var_18 = randomint(8);
var_19 = 0.35 + var_17[var_18];
var_1A = rotatevector((1,0,0),(0,randomfloat(360),0));
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
{
var_0B = spawnfx(level._effect[var_0A],var_16 + (0,0,6),var_1A,(0,0,1));
func_C0A7(var_19,::triggerfx,var_0B);
self.var_132AA[self.var_132AA.size] = var_0B;
continue;
}
func_C0A7(var_19,::playfx,level._effect[var_0A],var_16 + (0,0,6),var_1A,(0,0,1));
}
var_0D = !var_0D;
}
}
}
//Function Number: 30
func_378A(param_00,param_01,param_02)
{
var_03 = anglestoforward((0,param_01,0));
var_04 = scripts\common\trace::func_DCF1(param_00 + (0,0,48),param_00 + (0,0,48) + var_03 * param_02,undefined,scripts\common\trace::func_497D());
return var_04;
}
//Function Number: 31
func_378C(param_00,param_01,param_02)
{
var_03 = anglestoforward((0,param_01,0));
var_04 = scripts\common\trace::func_DCED(param_00 + (0,0,48),param_00 + (0,0,48) + var_03 * param_02,undefined,scripts\common\trace::func_497D());
if(var_04["fraction"] > 0.5)
{
var_05 = param_02 * var_04["fraction"] - 12;
var_06 = param_00 + var_03 * var_05;
var_07 = scripts\common\utility::func_5D14(var_06,50,-1000);
return var_07;
}
return undefined;
}
//Function Number: 32
func_1066B(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 0;
}
var_04 = vectornormalize(param_01 - param_00);
var_05 = param_01;
var_06 = param_00 + (0,0,2);
var_07 = spawn("script_model",var_06);
var_07.angles = (0,0,0);
var_07.var_132AA = [];
var_07 setmodel("anti_grav_border_wm");
var_07 method_83D0(#animtree);
playfxontag(level._effect["antigrav_caltrop_trail"],var_07,"tag_origin");
var_08 = randomfloatrange(0.3,0.65);
thread func_3789(var_07,var_06,var_05,var_08);
if(!param_03)
{
if(!self.var_5F37)
{
if(level.var_2006.var_522B.size > 1)
{
var_09 = "antigrav_caltrop_barrier_cheap";
}
else
{
var_09 = "antigrav_caltrop_barrier";
}
}
else if(level.var_2006.var_522B.size > 1)
{
var_09 = "antigrav_caltrop_barrier_up_cheap";
}
else
{
var_09 = "antigrav_caltrop_barrier_up";
}
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
{
var_0A = spawnfx(level._effect[var_09],param_01,param_02,(0,0,1));
func_C0A7(var_08,::triggerfx,var_0A);
var_07.var_132AA[var_07.var_132AA.size] = var_0A;
}
else
{
func_C0A7(var_08,::playfx,level._effect[var_09],param_01,param_02,(0,0,1));
}
}
else
{
level func_5128(var_08,::func_378B,var_07,param_01,param_02);
}
return var_07;
}
//Function Number: 33
func_378B(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
return;
}
if(scripts\common\utility::func_6E34("in_vr_mode") && scripts\common\utility::flag("in_vr_mode"))
{
var_03 = spawnfx(scripts\common\utility::getfx("antigrav_detonate_dud"),param_01,param_02,(0,0,1));
triggerfx(var_03);
param_00.var_132AA[param_00.var_132AA.size] = var_03;
return;
}
playfx(scripts\common\utility::getfx("antigrav_detonate_dud"),param_01,param_02,(0,0,1));
}
//Function Number: 34
func_3789(param_00,param_01,param_02,param_03)
{
param_00 endon("death");
var_04 = vectornormalize(param_02 - param_01);
var_05 = distance(param_02,param_01);
var_06 = param_01 + var_04 * var_05;
var_07 = randomfloatrange(30,70);
var_08 = param_01 + var_04 * var_05 * 0.15 + (0,0,var_07 * 0.75);
var_09 = param_01 + var_04 * var_05 * 0.5 + (0,0,var_07);
var_0A = param_01 + var_04 * var_05 * 0.85 + (0,0,var_07 * 0.75);
var_0B = param_02;
var_0C = 0;
if(param_02[2] < param_01[2] - 50)
{
var_0C = 1;
}
param_00 method_8269((randomfloatrange(360,900),0,randomfloatrange(360,900)),param_03 - 0.05);
param_00 moveto(var_08,param_03 / 4,0,0);
wait(param_03 / 4);
param_00 moveto(var_09,param_03 / 4,0,0);
wait(param_03 / 4);
param_00 moveto(var_0A,param_03 / 4,0,0);
wait(param_03 / 4);
param_00 moveto(var_0B,param_03 / 4,0,0);
wait(param_03 / 4);
var_0D = 0.2;
var_0E = randomfloat(5);
param_00 method_8269((randomfloatrange(-40,40),0,randomfloatrange(-40,40)),var_0D - 0.05);
param_00 moveto(var_0B + var_04 * var_0E / 2 + (0,0,var_0E),var_0D / 2,0,var_0D / 2);
wait(var_0D / 2);
param_00 moveto(var_0B + var_04 * var_0E,var_0D / 2,var_0D / 2,0);
wait(var_0D / 2);
func_DFC4(param_00);
}
//Function Number: 35
func_3CB0(param_00,param_01)
{
if(distance2d(param_00.origin,param_01.origin) <= param_01.var_85D2)
{
if(param_00.origin[2] + 256 > param_01.origin[2] && param_00.origin[2] - param_01.origin[2] <= 180)
{
var_02 = 48;
var_03 = 24;
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_02),param_00.origin + (0,0,var_02),undefined,scripts\common\trace::func_497D());
if(var_04)
{
return 1;
}
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_03),param_00.origin + (0,0,var_03),undefined,scripts\common\trace::func_497D());
if(var_04)
{
return 1;
}
var_05 = param_00.origin - param_01.origin;
var_05 = (var_05[0],var_05[1],0);
var_06 = param_01.origin + (0,0,var_02) + var_05;
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_02),var_06,undefined,scripts\common\trace::func_497D());
if(var_04)
{
var_04 = scripts\common\trace::func_DCF1(var_06,param_00.origin + (0,0,var_02),undefined,scripts\common\trace::func_497D());
if(var_04)
{
return 1;
}
}
var_05 = param_00.origin - param_01.origin;
var_05 = (var_05[0],var_05[1],0);
var_06 = param_01.origin + (0,0,var_03) + var_05;
var_04 = scripts\common\trace::func_DCF1(param_01.origin + (0,0,var_03),var_06,undefined,scripts\common\trace::func_497D());
if(var_04)
{
var_04 = scripts\common\trace::func_DCF1(var_06,param_00.origin + (0,0,var_03),undefined,scripts\common\trace::func_497D());
if(var_04)
{
return 1;
}
}
}
}
return 0;
}
//Function Number: 36
func_4933()
{
var_00 = physics_volumecreate(self.origin,self.var_85D2,180);
var_00 method_8527(0);
var_00 method_8529(1);
var_00 method_8526(1);
thread func_CB0A(var_00);
return var_00;
}
//Function Number: 37
func_CB0A(param_00)
{
param_00 endon("destroy_volume");
var_01 = -0.15;
param_00 method_852A(1,var_01);
wait(0.2);
param_00 method_852A(1,0);
}
//Function Number: 38
func_52B3(param_00)
{
param_00 notify("destroy_volume");
param_00 delete();
}
//Function Number: 39
func_1293()
{
if(isdefined(self) && isdefined(self.var_202A))
{
return 11;
}
return 7;
}
//Function Number: 40
func_1294()
{
if(isdefined(self) && isdefined(self.var_202B))
{
return 196;
}
return 148;
}
//Function Number: 41
func_C0A7(param_00,param_01,param_02,param_03,param_04,param_05)
{
thread func_C0A8(param_01,param_00,param_02,param_03,param_04,param_05);
}
//Function Number: 42
func_C0A8(param_00,param_01,param_02,param_03,param_04,param_05)
{
scripts\common\utility::func_6E59("antigrav_force_delete",param_01);
if(isdefined(param_05))
{
[[ param_00 ]](param_02,param_03,param_04,param_05);
return;
}
if(isdefined(param_04))
{
[[ param_00 ]](param_02,param_03,param_04);
return;
}
if(isdefined(param_03))
{
[[ param_00 ]](param_02,param_03);
return;
}
if(isdefined(param_02))
{
[[ param_00 ]](param_02);
return;
}
[[ param_00 ]]();
}
//Function Number: 43
func_5128(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
thread scripts\common\utility::func_512D(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 44
func_5129(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("death");
self endon("stop_delay_thread");
scripts\common\utility::func_6E59("antigrav_force_delete",param_01);
if(isdefined(param_07))
{
thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07);
return;
}
if(isdefined(param_06))
{
thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06);
return;
}
if(isdefined(param_05))
{
thread [[ param_00 ]](param_02,param_03,param_04,param_05);
return;
}
if(isdefined(param_04))
{
thread [[ param_00 ]](param_02,param_03,param_04);
return;
}
if(isdefined(param_03))
{
thread [[ param_00 ]](param_02,param_03);
return;
}
if(isdefined(param_02))
{
thread [[ param_00 ]](param_02);
return;
}
thread [[ param_00 ]]();
}
//Function Number: 45
func_CE2E(param_00)
{
if(scripts\sp\_utility::func_9BB2())
{
return;
}
var_01 = spawn("script_origin",self.origin);
var_01.origin = self.origin;
var_01.angles = self.angles;
var_01 linkto(self);
var_01 playsound(param_00,"sounddone");
var_01 scripts\common\utility::waittill_any_3("sounddone","antigrav_force_delete");
var_01 delete();
}