Files
IL-GSC/IW/PC/ALL/scripts/mp/killstreaks/_helisniper.gsc
2023-10-27 03:49:01 -04:00

997 lines
21 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_helisniper.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 32
* Decompile Time: 1664 ms
* Timestamp: 10/27/2023 12:28:47 AM
*******************************************************************/
//Function Number: 1
init()
{
scripts\mp\killstreaks\_helicopter_guard::func_AADA();
scripts\mp\killstreaks\_helicopter_guard::func_AAD8();
scripts\mp\killstreaks\_killstreaks::func_DEFB("heli_sniper",::func_128E8);
var_00 = spawnstruct();
var_00.var_EC44 = "destroyed_helo_scout";
var_00.var_3774 = "callout_destroyed_helo_scout";
var_00.var_EB11 = 0.09;
var_00.var_65D0 = "tag_engine_right";
level.var_8DA6["heli_sniper"] = var_00;
}
//Function Number: 2
func_128E8(param_00,param_01)
{
var_02 = func_7E37(self.origin);
var_03 = func_7E34(self.origin);
var_04 = vectortoangles(var_03.origin - var_02.origin);
if(isdefined(self.var_12B90) && self.var_12B90)
{
return 0;
}
if(isdefined(self.var_9E5C) && self.var_9E5C == 1)
{
return 0;
}
else if(!isdefined(level.var_1A66) || !isdefined(var_02) || !isdefined(var_03))
{
self iprintlnbold(&"KILLSTREAKS_UNAVAILABLE_IN_LEVEL");
return 0;
}
var_05 = 1;
if(func_68C2())
{
self iprintlnbold(&"KILLSTREAKS_AIR_SPACE_TOO_CROWDED");
return 0;
}
if(scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA + var_05 >= scripts\mp\_utility::func_B4D2())
{
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
return 0;
}
if(isdefined(self.var_9D7F) && self.var_9D7F)
{
return 0;
}
if(isdefined(self.var_9F28) && self.var_9F28)
{
return 0;
}
var_06 = func_49D1(self,var_02,var_03,var_04,param_01,param_00);
if(!isdefined(var_06))
{
return 0;
}
var_07 = func_8DC0(var_06,param_01);
if(isdefined(var_07) && var_07 == "fail")
{
return 0;
}
return 1;
}
//Function Number: 3
func_68C2()
{
return isdefined(level.var_AAC8);
}
//Function Number: 4
func_7E37(param_00)
{
var_01 = undefined;
var_02 = 999999;
foreach(var_04 in level.var_1A6B)
{
var_05 = distance(var_04.origin,param_00);
if(var_05 < var_02)
{
var_01 = var_04;
var_02 = var_05;
}
}
return var_01;
}
//Function Number: 5
func_49D1(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = getent("airstrikeheight","targetname");
var_07 = param_02.origin;
var_08 = anglestoforward(param_03);
var_09 = param_01.origin;
var_0A = spawnhelicopter(param_00,var_09,var_08,"attack_littlebird_mp","vehicle_aas_72x_killstreak");
if(!isdefined(var_0A))
{
return;
}
var_0B = scripts\mp\_utility::func_7EFA();
var_0C = var_07 + scripts\mp\_utility::func_7EF9() + var_0B;
var_0D = var_07 + scripts\mp\_utility::func_7EF9() - var_0B;
var_0E = bullettrace(var_0C,var_0D,0,0,0,0,1);
if(isdefined(var_0E["entity"]) && var_0E["normal"][2] > 0.1)
{
var_07 = var_0E["position"] - scripts\mp\_utility::func_7EF9() + (0,0,384);
}
var_0A scripts\mp\killstreaks\_helicopter::func_1852("lbSniper");
var_0A thread scripts\mp\killstreaks\_helicopter::func_E111();
var_0A thread func_136B6();
var_0A.var_AC68 = param_05;
var_0A.var_143 = var_08;
var_0A.var_C973 = var_09;
var_0A.var_C96C = var_07;
var_0A.var_C96B = param_01.origin;
var_0A.var_7003 = var_07[2];
var_0A.var_B4A3 = var_06.origin;
var_0A.var_C537 = param_01.origin;
var_0A.var_CB45 = var_0A.var_C537 + (0,0,300);
var_0A.var_90F1 = var_0A.var_C537 + (0,0,600);
var_0A.var_7338 = var_08[1];
var_0A.var_273E = var_08[1] + 180;
if(var_0A.var_273E > 360)
{
var_0A.var_273E = var_0A.var_273E - 360;
}
var_0A.var_8DD9 = "littlebird";
var_0A.var_8DA0 = "littlebird";
var_0A.var_AED3 = param_01.var_C6F9;
var_0A.var_1CA6 = 1;
var_0A.var_2550 = missile_createattractorent(var_0A,level.var_8D2E,level.var_8D2D);
var_0A.var_9DBF = 0;
var_0A.maxhealth = level.var_8D73;
var_0A thread scripts\mp\killstreaks\_flares::func_6EAD(1);
var_0A thread scripts\mp\killstreaks\_helicopter::func_8D40("heli_sniper",1);
var_0A thread func_8DB4(param_04);
var_0A.var_222 = param_00;
var_0A.team = param_00.team;
var_0A thread func_AB2F();
var_0A.var_2B3 = 100;
var_0A.var_1E2D = 100;
var_0A.var_7247 = 40;
var_0A setcandamage(1);
var_0A method_830A(45,45);
var_0A method_83E5(var_0A.var_2B3,100,40);
var_0A method_8378(120,60);
var_0A method_82F6(10,10,60);
var_0A method_8316(512);
var_0A.var_A644 = 0;
var_0A.var_110EA = "heli_sniper";
var_0A.var_1C79 = 0;
var_0A.var_C834 = 0;
var_0A method_8187("tag_wings");
return var_0A;
}
//Function Number: 6
func_7DFC(param_00)
{
self endon("death");
self endon("crashing");
self endon("helicopter_removed");
self endon("heightReturned");
var_01 = getent("airstrikeheight","targetname");
if(isdefined(var_01))
{
var_02 = var_01.origin[2];
}
else if(isdefined(level.var_1AF8))
{
var_02 = 850 * level.var_1AF8;
}
else
{
var_02 = 850;
}
var_03 = bullettrace(param_00,param_00 - (0,0,10000),0,self,0,0,0,0);
var_04 = var_03["position"][2];
var_05 = 0;
var_06 = 0;
for(var_07 = 0;var_07 < 30;var_07++)
{
wait(0.05);
var_08 = var_07 % 8;
var_09 = var_07 * 7;
switch(var_08)
{
case 0:
var_05 = var_09;
var_06 = var_09;
break;
case 1:
var_05 = var_09 * -1;
var_06 = var_09 * -1;
break;
case 2:
var_05 = var_09 * -1;
var_06 = var_09;
break;
case 3:
var_05 = var_09;
var_06 = var_09 * -1;
break;
case 4:
var_05 = 0;
var_06 = var_09 * -1;
break;
case 5:
var_05 = var_09 * -1;
var_06 = 0;
break;
case 6:
var_05 = var_09;
var_06 = 0;
break;
case 7:
var_05 = 0;
var_06 = var_09;
break;
default:
break;
}
var_0A = bullettrace(param_00 + (var_05,var_06,1000),param_00 - (var_05,var_06,10000),0,self,0,0,0,0,0);
if(isdefined(var_0A["entity"]))
{
continue;
}
if(var_0A["position"][2] + 145 > var_04)
{
var_04 = var_0A["position"][2] + 145;
}
}
return var_04;
}
//Function Number: 7
func_8DC0(param_00,param_01)
{
level endon("game_ended");
param_00 endon("death");
param_00 endon("crashing");
param_00 endon("owner_disconnected");
param_00 endon("killstreakExit");
var_02 = func_7E37(self.origin);
level thread scripts\mp\_utility::func_115DE("used_heli_sniper",self,self.team);
if(isdefined(var_02.angles))
{
var_03 = var_02.angles;
}
else
{
var_03 = (0,0,0);
}
scripts\common\utility::func_1C6E(0);
var_04 = param_00.var_7003;
if(isdefined(var_02.var_BEAA[0]))
{
var_05 = var_02.var_BEAA[0];
}
else
{
var_05 = func_7E34(self.origin);
}
var_06 = anglestoforward(self.angles);
var_07 = var_05.origin * (1,1,0) + (0,0,1) * var_04 + var_06 * -100;
param_00.var_1157A = var_07;
param_00.var_4BF7 = var_05;
var_08 = func_BCD7(param_00);
if(isdefined(var_08) && var_08 == "fail")
{
param_00 thread func_8DBE();
return var_08;
}
thread func_C53A(param_00);
return var_08;
}
//Function Number: 8
func_C53A(param_00)
{
level endon("game_ended");
param_00 endon("death");
param_00 endon("crashing");
param_00 endon("owner_disconnected");
param_00 endon("killstreakExit");
if(isdefined(self.var_9382))
{
func_52CD();
}
param_00 thread func_835D();
param_00 method_8378(1,1,1,0.1);
param_00 notify("picked_up_passenger");
scripts\common\utility::func_1C6E(1);
param_00 method_83E5(param_00.var_2B3,100,40);
self.var_C53B = 1;
self.var_8DD6 = param_00;
param_00 endon("owner_death");
param_00 thread func_DB16();
param_00 thread func_AB2E();
param_00 method_8362(param_00.var_1157A,1);
param_00 thread func_8DB3();
param_00 waittill("near_goal");
param_00 thread func_8DBF();
thread func_13A0D(param_00);
wait(45);
self notify("heli_sniper_timeout");
func_5820(param_00);
}
//Function Number: 9
func_5820(param_00)
{
param_00 notify("dropping");
param_00 thread func_8DD1();
param_00 waittill("at_dropoff");
param_00 method_83E5(60);
param_00 method_8378(180,180,180,0.3);
wait(1);
if(!scripts\mp\_utility::func_9F19(self))
{
return;
}
thread func_F881();
self method_83A8();
self allowjump(1);
self setstance("stand");
self.var_C53B = 0;
self.var_8DD6 = undefined;
param_00.var_C834 = 0;
scripts\mp\_utility::func_141E("iw6_gm6helisnipe_mp_gm6scope");
self enableweaponswitch();
scripts\mp\_utility::setrecoilscale();
var_01 = scripts\common\utility::getlastweapon();
if(!self hasweapon(var_01))
{
var_01 = scripts\mp\killstreaks\_utility::func_7EB7();
}
scripts\mp\_utility::func_1136C(var_01);
wait(1);
if(isdefined(param_00))
{
param_00 thread func_8DBE();
}
}
//Function Number: 10
func_13A0D(param_00)
{
self endon("heli_sniper_timeout");
param_00 thread scripts\mp\killstreaks\_killstreaks::func_1CA5("dropping");
param_00 waittill("killstreakExit");
func_5820(param_00);
}
//Function Number: 11
func_BCD7(param_00)
{
self endon("disconnect");
self visionsetnakedforplayer("black_bw",0.5);
scripts\mp\_utility::func_F607("black_bw",0.5,1);
var_01 = scripts\common\utility::waittill_any_timeout_1(0.5,"death");
scripts\mp\_hostmigration::func_13834();
if(var_01 == "death")
{
thread scripts\mp\killstreaks\_killstreaks::func_41D6(1);
return "fail";
}
self cancelmantle();
if(var_01 != "disconnect")
{
thread scripts\mp\killstreaks\_killstreaks::func_41D6(1,0.75);
if(self.team == "spectator")
{
return "fail";
}
}
param_00 func_24A6();
if(!isalive(self))
{
return "fail";
}
level.var_8DD7 = param_00;
level notify("update_uplink");
}
//Function Number: 12
func_52CD()
{
foreach(var_01 in self.var_9382)
{
if(isdefined(var_01.var_3A9D) && var_01.var_3A9D == self)
{
self method_80F3();
self.var_9D81 = undefined;
self.var_3AA0 = undefined;
if(isdefined(var_01.var_2C68))
{
var_01.var_2C68 delete();
}
var_01 delete();
self enableweapons();
}
}
}
//Function Number: 13
func_8DB3()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self endon("leaving");
self.var_222 endon("death");
var_00 = self.origin + anglestoright(self.var_222.angles) * 1000;
self.var_B00E = spawn("script_origin",var_00);
self method_8305(self.var_B00E);
self method_8378(360,120);
for(;;)
{
wait(0.25);
var_00 = self.origin + anglestoright(self.var_222.angles) * 1000;
self.var_B00E.origin = var_00;
}
}
//Function Number: 14
func_24A6()
{
self.var_222 notify("force_cancel_sentry");
self.var_222 notify("force_cancel_ims");
self.var_222 notify("force_cancel_placement");
self.var_222 notify("cancel_carryRemoteUAV");
self.var_222 setplayerangles(self gettagangles("TAG_RIDER"));
self.var_222 ridevehicle(self,40,70,10,70,1);
self.var_222 setstance("crouch");
self.var_222 allowjump(0);
thread func_DE3E();
self.var_C834 = 1;
self notify("boarded");
self.var_222.var_3F14 = self;
}
//Function Number: 15
func_8DD1()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self endon("owner_disconnected");
self endon("owner_death");
var_00 = undefined;
var_01 = undefined;
var_02 = undefined;
var_03 = 0;
foreach(var_05 in level.var_1A66)
{
if(!isdefined(var_05.var_EE79) || !issubstr(var_05.var_EE79,"pickupNode"))
{
continue;
}
var_06 = distancesquared(var_05.origin,self.origin);
if(!isdefined(var_02) || var_06 < var_02)
{
var_01 = var_05;
var_02 = var_06;
if(var_05.var_EE79 == "pickupNodehigh")
{
var_03 = 1;
continue;
}
var_03 = 0;
}
}
if(scripts\mp\_utility::func_7F8B() == "mp_chasm")
{
if(var_01.origin == (-224,-1056,2376))
{
var_01.origin = (-304,-896,2376);
}
}
if(var_03 && !bullettracepassed(self.origin,var_01.origin,0,self))
{
self method_8362(self.origin + (0,0,2300),1);
func_137AB("near_goal","goal",5);
var_08 = var_01.origin;
var_08 = var_08 + (0,0,1500);
}
else if(var_02.origin[2] > self.origin[2])
{
var_08 = var_02.origin;
}
else
{
var_08 = var_02.origin * (1,1,0);
var_08 = var_08 + (0,0,self.origin[2]);
}
self method_8362(var_08,1);
var_09 = func_7DFC(var_08);
var_0A = var_08 * (1,1,0);
var_0B = var_0A + (0,0,var_09);
func_137AB("near_goal","goal",5);
self.var_BCB4 = 0;
self method_8362(var_0B + (0,0,200),1);
self.var_5D43 = 1;
func_137AB("near_goal","goal",5);
self.var_BCB4 = 1;
self notify("at_dropoff");
}
//Function Number: 16
func_137AB(param_00,param_01,param_02)
{
level endon("game_ended");
self endon(param_00);
self endon(param_01);
wait(param_02);
}
//Function Number: 17
func_8DBF()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("dropping");
self method_83E5(60,45,20);
self method_8316(8);
for(;;)
{
var_00 = self.var_222 getnormalizedmovement();
if(var_00[0] >= 0.15 || var_00[1] >= 0.15 || var_00[0] <= -0.15 || var_00[1] <= -0.15)
{
thread func_B31F(var_00);
}
wait(0.05);
}
}
//Function Number: 18
func_8DB8()
{
self method_83E5(80,60,20);
self method_8316(8);
for(;;)
{
var_00 = self.var_222 getnormalizedmovement();
if(var_00[0] >= 0.15 || var_00[1] >= 0.15 || var_00[0] <= -0.15 || var_00[1] <= -0.15)
{
thread func_B320(var_00);
}
wait(0.05);
}
}
//Function Number: 19
func_B320(param_00)
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("dropping");
self notify("manualMove");
self endon("manualMove");
var_01 = anglestoforward(self.var_222.angles) * 350 * param_00[0];
var_02 = anglestoright(self.var_222.angles) * 250 * param_00[1];
var_03 = var_01 + var_02;
var_04 = self.origin + var_03;
var_04 = var_04 * (1,1,0);
var_04 = var_04 + (0,0,self.var_B4A3[2]);
if(distance2dsquared((0,0,0),var_04) > 8000000)
{
return;
}
self method_8362(var_04,1);
self waittill("goal");
}
//Function Number: 20
func_B31F(param_00)
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("dropping");
self notify("manualMove");
self endon("manualMove");
var_01 = anglestoforward(self.var_222.angles) * 250 * param_00[0];
var_02 = anglestoright(self.var_222.angles) * 250 * param_00[1];
var_03 = var_01 + var_02;
var_04 = 256;
var_05 = self.origin + var_03;
var_06 = scripts\mp\_utility::func_7EFA();
var_07 = var_05 + scripts\mp\_utility::func_7EF9() + var_06;
var_08 = var_05 + scripts\mp\_utility::func_7EF9() - var_06;
var_09 = bullettrace(var_07,var_08,0,0,0,0,1);
if(isdefined(var_09["entity"]) && var_09["normal"][2] > 0.1)
{
var_05 = var_09["position"] - scripts\mp\_utility::func_7EF9() + (0,0,var_04);
var_0A = var_05[2] - self.origin[2];
if(var_0A > 1000)
{
return;
}
self method_8362(var_05,1);
self waittill("goal");
}
}
//Function Number: 21
func_8DBE()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self notify("end_disconnect_check");
self notify("end_death_check");
self notify("leaving");
if(isdefined(self.var_A79F))
{
self.var_A79F delete();
}
if(isdefined(self.trigger))
{
self.trigger delete();
}
if(isdefined(self.var_129B9))
{
self.var_129B9 delete();
}
if(isdefined(self.var_BD6D))
{
self.var_BD6D scripts\mp\_hud_util::destroyelem();
}
if(isdefined(self.var_1137A))
{
self.var_1137A scripts\mp\_hud_util::destroyelem();
}
if(isdefined(self.var_BCCF))
{
self.var_BCCF scripts\mp\_hud_util::destroyelem();
}
self method_8076();
level.var_8DD7 = undefined;
level notify("update_uplink");
self method_8378(220,220,220,0.3);
self method_83E5(120,60);
self method_8362(self.origin + (0,0,1200),1);
self waittill("goal");
var_00 = self.var_C96B - self.var_C96C * 5000;
self method_8362(var_00,1);
self method_83E5(300,75);
self.var_AB32 = 1;
scripts\common\utility::waittill_any_timeout_1(5,"goal");
if(isdefined(level.var_AAC8) && level.var_AAC8 == self)
{
level.var_AAC8 = undefined;
}
self notify("delete");
self delete();
}
//Function Number: 22
func_8DB4(param_00)
{
level endon("game_ended");
self endon("leaving");
self waittill("death");
scripts\mp\_hostmigration::func_13834();
thread scripts\mp\killstreaks\_helicopter::func_AAC7();
if(isdefined(self.var_A79F))
{
self.var_A79F delete();
}
if(isdefined(self.trigger))
{
self.trigger delete();
}
if(isdefined(self.var_129B9))
{
self.var_129B9 delete();
}
if(isdefined(self.var_BD6D))
{
self.var_BD6D scripts\mp\_hud_util::destroyelem();
}
if(isdefined(self.var_1137A))
{
self.var_1137A scripts\mp\_hud_util::destroyelem();
}
if(isdefined(self.var_BCCF))
{
self.var_BCCF scripts\mp\_hud_util::destroyelem();
}
if(isdefined(self.var_222) && isalive(self.var_222) && self.var_C834 == 1)
{
self.var_222 method_83A8();
var_01 = undefined;
var_02 = undefined;
if(isdefined(self.var_2507))
{
var_03 = 0;
foreach(var_06, var_05 in self.var_2507)
{
if(var_05 >= var_03)
{
var_03 = var_05;
var_01 = var_06;
}
}
}
if(isdefined(var_01))
{
foreach(var_08 in level.var_C928)
{
if(var_08 scripts\mp\_utility::func_81EC() == var_01)
{
var_02 = var_08;
}
}
}
var_0A = getdvarint("scr_team_fftype");
if(isdefined(self.var_A667) && isdefined(self.var_A667.var_9E20))
{
self.var_A667 radiusdamage(self.var_222.origin,200,2600,2600,self.var_A667);
}
else if(isdefined(var_02) && var_0A != 2)
{
radiusdamage(self.var_222.origin,200,2600,2600,var_02);
}
else if(var_0A == 2 && isdefined(var_02) && scripts\mp\_utility::func_24F0(var_02,self.var_222))
{
radiusdamage(self.var_222.origin,200,2600,2600,var_02);
radiusdamage(self.var_222.origin,200,2600,2600);
}
else
{
radiusdamage(self.var_222.origin,200,2600,2600);
}
self.var_222.var_C53B = 0;
self.var_222.var_8DD6 = undefined;
}
}
//Function Number: 23
func_F881()
{
if(!scripts\mp\_utility::_hasperk("specialty_falldamage"))
{
level endon("game_ended");
self endon("death");
self endon("disconnect");
scripts\mp\_utility::func_8387("specialty_falldamage");
wait(2);
scripts\mp\_utility::func_E150("specialty_falldamage");
}
}
//Function Number: 24
func_DE3E()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("dropping");
var_00 = 0;
for(;;)
{
wait(0.05);
if(!isdefined(self.var_222.var_ACAE) && !self.var_222 scripts\mp\_utility::func_9E59())
{
self.var_222 scripts\mp\perks\_perkfunctions::func_F785();
var_00++;
if(var_00 >= 2)
{
break;
}
}
}
}
//Function Number: 25
func_A576()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self endon("dropping");
for(;;)
{
if(self.var_222 getstance() != "crouch")
{
self.var_222 setstance("crouch");
}
wait(0.05);
}
}
//Function Number: 26
func_835D()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self endon("dropping");
self.var_222 endon("disconnect");
for(;;)
{
if(!isalive(self.var_222))
{
return "fail";
}
if(self.var_222 getcurrentprimaryweapon() != "iw6_gm6helisnipe_mp_gm6scope")
{
self.var_222 giveweapon("iw6_gm6helisnipe_mp_gm6scope");
self.var_222 scripts\mp\_utility::_switchtoweaponimmediate("iw6_gm6helisnipe_mp_gm6scope");
self.var_222 method_80AB();
self.var_222 scripts\mp\_utility::setrecoilscale(0,100);
self.var_222 givemaxammo("iw6_gm6helisnipe_mp_gm6scope");
}
else
{
return;
}
wait(0.05);
}
}
//Function Number: 27
func_E2B9()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self.var_222 endon("death");
self.var_222 endon("disconnect");
self.var_222 endon("dropping");
for(;;)
{
self.var_222 waittill("weapon_fired");
self.var_222 givemaxammo("iw6_gm6helisnipe_mp_gm6scope");
}
}
//Function Number: 28
func_DB16()
{
level endon("game_ended");
self.var_222 endon("disconnect");
self endon("death");
self endon("crashing");
self.var_222 waittill("death");
self.var_222.var_C53B = 0;
self.var_222.var_8DD6 = undefined;
self.var_C834 = 0;
if(isdefined(self.origin))
{
physicsexplosionsphere(self.origin,200,200,1);
}
}
//Function Number: 29
func_AB2F()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self endon("end_disconnect_check");
self.var_222 waittill("disconnect");
self notify("owner_disconnected");
thread func_8DBE();
}
//Function Number: 30
func_AB2E()
{
level endon("game_ended");
self endon("death");
self endon("crashing");
self endon("end_death_check");
self.var_222 waittill("death");
self notify("owner_death");
thread func_8DBE();
}
//Function Number: 31
func_7E34(param_00)
{
var_01 = undefined;
var_02 = 999999;
foreach(var_04 in level.var_1A66)
{
var_05 = distance(var_04.origin,param_00);
if(var_05 < var_02)
{
var_01 = var_04;
var_02 = var_05;
}
}
return var_01;
}
//Function Number: 32
func_136B6()
{
var_00 = self getentitynumber();
self waittill("death");
level.var_AAC8 = undefined;
if(isdefined(level.var_8DD7))
{
level.var_8DD7 = undefined;
level notify("update_uplink");
}
}