2023-10-27 03:49:01 -04:00

3371 lines
56 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: common_scripts\utility.gsc
* Game: Call of Duty: Ghosts
* Platform: PC
* Function Count: 197
* Decompile Time: 3601 ms
* Timestamp: 10/27/2023 1:16:34 AM
*******************************************************************/
//Function Number: 1
func_5685(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(level.func))
{
return;
}
if(!isdefined(level.func[param_00]))
{
return;
}
if(!isdefined(param_01))
{
[[ level.func[param_00] ]]();
return;
}
if(!isdefined(param_02))
{
[[ level.func[param_00] ]](param_01);
return;
}
if(!isdefined(param_03))
{
[[ level.func[param_00] ]](param_01,param_02);
return;
}
if(!isdefined(param_04))
{
[[ level.func[param_00] ]](param_01,param_02,param_03);
return;
}
[[ level.func[param_00] ]](param_01,param_02,param_03,param_04);
}
//Function Number: 2
self_func(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(level.func[param_00]))
{
}
if(!isdefined(param_01))
{
self [[ level.func[param_00] ]]();
}
if(!isdefined(param_02))
{
self [[ level.func[param_00] ]](param_01);
}
if(!isdefined(param_03))
{
self [[ level.func[param_00] ]](param_01,param_02);
}
if(!isdefined(param_04))
{
self [[ level.func[param_00] ]](param_01,param_02,param_03);
}
self [[ level.func[param_00] ]](param_01,param_02,param_03,param_04);
}
//Function Number: 3
randomvector(param_00)
{
return (randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5);
}
//Function Number: 4
randomvectorrange(param_00,param_01)
{
var_02 = randomfloatrange(param_00,param_01);
if(randomint(2) == 0)
{
var_02 = var_02 * -1;
}
var_03 = randomfloatrange(param_00,param_01);
if(randomint(2) == 0)
{
var_03 = var_03 * -1;
}
var_04 = randomfloatrange(param_00,param_01);
if(randomint(2) == 0)
{
var_04 = var_04 * -1;
}
return (var_02,var_03,var_04);
}
//Function Number: 5
sign(param_00)
{
if(param_00 >= 0)
{
return 1;
}
return -1;
}
//Function Number: 6
mod(param_00,param_01)
{
var_02 = int(param_00 / param_01);
if(param_00 * param_01 < 0)
{
var_02 = var_02 - 1;
}
return param_00 - var_02 * param_01;
}
//Function Number: 7
func_81E6(param_00)
{
if(isdefined(self.current_target))
{
if(param_00 == self.current_target)
{
}
}
self.current_target = param_00;
}
//Function Number: 8
func_386F(param_00)
{
var_01 = [];
var_01["axis"] = "allies";
var_01["allies"] = "axis";
return var_01[param_00];
}
//Function Number: 9
clear_exception(param_00)
{
self.exception[param_00] = level.defaultexception;
}
//Function Number: 10
func_6EB3(param_00,param_01)
{
self.exception[param_00] = param_01;
}
//Function Number: 11
set_all_exceptions(param_00)
{
var_01 = getarraykeys(self.exception);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
self.exception[var_01[var_02]] = param_00;
}
}
//Function Number: 12
func_1DE9()
{
return randomint(100) >= 50;
}
//Function Number: 13
choose_from_weighted_array(param_00,param_01)
{
var_02 = randomint(param_01[param_01.size - 1] + 1);
for(var_03 = 0;var_03 < param_01.size;var_03++)
{
if(var_02 <= param_01[var_03])
{
return param_00[var_03];
}
}
}
//Function Number: 14
get_cumulative_weights(param_00)
{
var_01 = [];
var_02 = 0;
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_02 = var_02 + param_00[var_03];
var_01[var_03] = var_02;
}
return var_01;
}
//Function Number: 15
func_8B9E(param_00,param_01)
{
if(param_00 != "death")
{
self endon("death");
}
param_01 endon("die");
self waittill(param_00);
param_01 notify("returned",param_00);
}
//Function Number: 16
func_8B9F(param_00,param_01)
{
param_01 endon("die");
self waittill(param_00);
param_01 notify("returned",param_00);
}
//Function Number: 17
func_8B73(param_00,param_01,param_02,param_03,param_04)
{
self endon("death");
var_05 = spawnstruct();
var_05.threads = 0;
if(isdefined(param_00))
{
childthread func_8B9E(param_00,var_05);
var_05.threads++;
}
if(isdefined(param_01))
{
childthread func_8B9E(param_01,var_05);
var_05.threads++;
}
if(isdefined(param_02))
{
childthread func_8B9E(param_02,var_05);
var_05.threads++;
}
if(isdefined(param_03))
{
childthread func_8B9E(param_03,var_05);
var_05.threads++;
}
if(isdefined(param_04))
{
childthread func_8B9E(param_04,var_05);
var_05.threads++;
}
while(var_05.threads)
{
var_05 waittill("returned");
var_05.threads--;
}
var_05 notify("die");
}
//Function Number: 18
func_8B74(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("death");
var_08 = spawnstruct();
var_08.threads = 0;
if(isdefined(param_00))
{
param_00 childthread func_8B9E(param_01,var_08);
var_08.threads++;
}
if(isdefined(param_02))
{
param_02 childthread func_8B9E(param_03,var_08);
var_08.threads++;
}
if(isdefined(param_04))
{
param_04 childthread func_8B9E(param_05,var_08);
var_08.threads++;
}
if(isdefined(param_06))
{
param_06 childthread func_8B9E(param_07,var_08);
var_08.threads++;
}
while(var_08.threads)
{
var_08 waittill("returned");
var_08.threads--;
}
var_08 notify("die");
}
//Function Number: 19
func_8B33(param_00,param_01,param_02,param_03,param_04,param_05)
{
if((!isdefined(param_00) || param_00 != "death") && !isdefined(param_01) || param_01 != "death" && !isdefined(param_02) || param_02 != "death" && !isdefined(param_03) || param_03 != "death" && !isdefined(param_04) || param_04 != "death" && !isdefined(param_05) || param_05 != "death")
{
self endon("death");
}
var_06 = spawnstruct();
if(isdefined(param_00))
{
childthread func_8B9E(param_00,var_06);
}
if(isdefined(param_01))
{
childthread func_8B9E(param_01,var_06);
}
if(isdefined(param_02))
{
childthread func_8B9E(param_02,var_06);
}
if(isdefined(param_03))
{
childthread func_8B9E(param_03,var_06);
}
if(isdefined(param_04))
{
childthread func_8B9E(param_04,var_06);
}
if(isdefined(param_05))
{
childthread func_8B9E(param_05,var_06);
}
var_06 waittill("returned",var_07);
var_06 notify("die");
return var_07;
}
//Function Number: 20
waittill_any_return_no_endon_death(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
if(isdefined(param_00))
{
childthread func_8B9F(param_00,var_06);
}
if(isdefined(param_01))
{
childthread func_8B9F(param_01,var_06);
}
if(isdefined(param_02))
{
childthread func_8B9F(param_02,var_06);
}
if(isdefined(param_03))
{
childthread func_8B9F(param_03,var_06);
}
if(isdefined(param_04))
{
childthread func_8B9F(param_04,var_06);
}
if(isdefined(param_05))
{
childthread func_8B9F(param_05,var_06);
}
var_06 waittill("returned",var_07);
var_06 notify("die");
return var_07;
}
//Function Number: 21
func_8B2E(param_00)
{
var_01 = spawnstruct();
var_02 = 0;
foreach(var_04 in param_00)
{
childthread func_8B9E(var_04,var_01);
if(var_04 == "death")
{
var_02 = 1;
}
}
if(!var_02)
{
self endon("death");
}
var_01 waittill("returned",var_06);
var_01 notify("die");
return var_06;
}
//Function Number: 22
waittill_any_in_array_return_no_endon_death(param_00)
{
var_01 = spawnstruct();
foreach(var_03 in param_00)
{
childthread func_8B9F(var_03,var_01);
}
var_01 waittill("returned",var_05);
var_01 notify("die");
return var_05;
}
//Function Number: 23
func_8B2C(param_00,param_01)
{
var_02 = spawnstruct();
var_03 = 0;
foreach(var_05 in param_00)
{
childthread func_8B9E(var_05,var_02);
if(var_05 == "death")
{
var_03 = 1;
}
}
if(!var_03)
{
self endon("death");
}
var_02 childthread _timeout(param_01);
var_02 waittill("returned",var_07);
var_02 notify("die");
return var_07;
}
//Function Number: 24
waittill_any_in_array_or_timeout_no_endon_death(param_00,param_01)
{
var_02 = spawnstruct();
foreach(var_04 in param_00)
{
childthread func_8B9F(var_04,var_02);
}
var_02 thread _timeout(param_01);
var_02 waittill("returned",var_06);
var_02 notify("die");
return var_06;
}
//Function Number: 25
func_8B35(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if((!isdefined(param_01) || param_01 != "death") && !isdefined(param_02) || param_02 != "death" && !isdefined(param_03) || param_03 != "death" && !isdefined(param_04) || param_04 != "death" && !isdefined(param_05) || param_05 != "death" && !isdefined(param_06) || param_06 != "death")
{
self endon("death");
}
var_07 = spawnstruct();
if(isdefined(param_01))
{
childthread func_8B9E(param_01,var_07);
}
if(isdefined(param_02))
{
childthread func_8B9E(param_02,var_07);
}
if(isdefined(param_03))
{
childthread func_8B9E(param_03,var_07);
}
if(isdefined(param_04))
{
childthread func_8B9E(param_04,var_07);
}
if(isdefined(param_05))
{
childthread func_8B9E(param_05,var_07);
}
if(isdefined(param_06))
{
childthread func_8B9E(param_06,var_07);
}
var_07 childthread _timeout(param_00);
var_07 waittill("returned",var_08);
var_07 notify("die");
return var_08;
}
//Function Number: 26
_timeout(param_00)
{
self endon("die");
wait(param_00);
self notify("returned","timeout");
}
//Function Number: 27
func_8B36(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
if(isdefined(param_01))
{
childthread func_8B9F(param_01,var_06);
}
if(isdefined(param_02))
{
childthread func_8B9F(param_02,var_06);
}
if(isdefined(param_03))
{
childthread func_8B9F(param_03,var_06);
}
if(isdefined(param_04))
{
childthread func_8B9F(param_04,var_06);
}
if(isdefined(param_05))
{
childthread func_8B9F(param_05,var_06);
}
var_06 childthread _timeout(param_00);
var_06 waittill("returned",var_07);
var_06 notify("die");
return var_07;
}
//Function Number: 28
func_8B2A(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(isdefined(param_01))
{
self endon(param_01);
}
if(isdefined(param_02))
{
self endon(param_02);
}
if(isdefined(param_03))
{
self endon(param_03);
}
if(isdefined(param_04))
{
self endon(param_04);
}
if(isdefined(param_05))
{
self endon(param_05);
}
if(isdefined(param_06))
{
self endon(param_06);
}
if(isdefined(param_07))
{
self endon(param_07);
}
self waittill(param_00);
}
//Function Number: 29
func_8B2B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D)
{
if(isdefined(param_02) && isdefined(param_03))
{
param_02 endon(param_03);
}
if(isdefined(param_04) && isdefined(param_05))
{
param_04 endon(param_05);
}
if(isdefined(param_06) && isdefined(param_07))
{
param_06 endon(param_07);
}
if(isdefined(param_08) && isdefined(param_09))
{
param_08 endon(param_09);
}
if(isdefined(param_0A) && isdefined(param_0B))
{
param_0A endon(param_0B);
}
if(isdefined(param_0C) && isdefined(param_0D))
{
param_0C endon(param_0D);
}
param_00 waittill(param_01);
}
//Function Number: 30
isflashed()
{
if(!isdefined(self.flashendtime))
{
return 0;
}
return gettime() < self.flashendtime;
}
//Function Number: 31
flag_exist(param_00)
{
return isdefined(level.flag[param_00]);
}
//Function Number: 32
flag(param_00)
{
return level.flag[param_00];
}
//Function Number: 33
func_4549()
{
level.flag = [];
level.flags_lock = [];
level.generic_index = 0;
if(!isdefined(level.sp_stat_tracking_func))
{
level.sp_stat_tracking_func = ::empty_init_func;
}
level.flag_struct = spawnstruct();
level.flag_struct assign_unique_id();
}
//Function Number: 34
func_3385(param_00)
{
if(!isdefined(level.flag))
{
func_4549();
}
level.flag[param_00] = 0;
if(!isdefined(level.trigger_flags))
{
func_45C2();
level.trigger_flags[param_00] = [];
}
else if(!isdefined(level.trigger_flags[param_00]))
{
level.trigger_flags[param_00] = [];
}
if(issuffix(param_00,"aa_"))
{
thread [[ level.sp_stat_tracking_func ]](param_00);
}
}
//Function Number: 35
empty_init_func(param_00)
{
}
//Function Number: 36
issuffix(param_00,param_01)
{
if(param_01.size > param_00.size)
{
return 0;
}
for(var_02 = 0;var_02 < param_01.size;var_02++)
{
if(param_00[var_02] != param_01[var_02])
{
return 0;
}
}
return 1;
}
//Function Number: 37
flag_set(param_00,param_01)
{
level.flag[param_00] = 1;
func_6FAF(param_00);
if(isdefined(param_01))
{
level notify(param_00,param_01);
}
level notify(param_00);
}
//Function Number: 38
assign_unique_id()
{
self.unique_id = "generic" + level.generic_index;
level.generic_index++;
}
//Function Number: 39
flag_wait(param_00)
{
var_01 = undefined;
while(!flag(param_00))
{
var_01 = undefined;
level waittill(param_00,var_01);
}
if(isdefined(var_01))
{
return var_01;
}
}
//Function Number: 40
func_337C(param_00)
{
if(!flag(param_00))
{
}
level.flag[param_00] = 0;
func_6FAF(param_00);
level notify(param_00);
}
//Function Number: 41
func_33A0(param_00)
{
while(flag(param_00))
{
level waittill(param_00);
}
}
//Function Number: 42
func_8B4F(param_00,param_01)
{
self endon(param_00);
self waittill(param_01);
}
//Function Number: 43
array_thread_amortized(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
{
if(!isdefined(param_03))
{
foreach(var_0D in param_00)
{
var_0D thread [[ param_01 ]]();
wait(param_02);
}
}
if(!isdefined(param_07))
{
foreach(var_0F in param_03)
{
var_0F thread [[ param_03 ]](param_05);
wait(param_04);
}
}
if(!isdefined(param_0A))
{
foreach(var_11 in param_05)
{
var_11 thread [[ param_05 ]](param_07,param_08);
wait(param_06);
}
}
if(!isdefined(var_0D))
{
foreach(var_13 in param_07)
{
var_13 thread [[ param_07 ]](param_09,param_0A,param_0B);
wait(param_08);
}
}
if(!isdefined(var_10))
{
foreach(var_15 in param_09)
{
var_15 thread [[ param_09 ]](param_0B,var_0C,var_0D,var_0E);
wait(param_0A);
}
}
if(!isdefined(var_13))
{
foreach(var_17 in param_0B)
{
var_17 thread [[ param_0B ]](var_0D,var_0E,var_0F,var_10,var_11);
wait(var_0C);
}
}
if(!isdefined(var_16))
{
foreach(var_19 in var_0D)
{
var_19 thread [[ var_0D ]](var_0F,var_10,var_11,var_12,var_13,var_14);
wait(var_0E);
}
}
if(!isdefined(var_19))
{
foreach(var_1B in var_0F)
{
var_1B thread [[ var_0F ]](var_11,var_12,var_13,var_14,var_15,var_16,var_17);
wait(var_10);
}
}
if(!isdefined(var_1C))
{
foreach(var_1D in var_11)
{
var_1D thread [[ var_11 ]](var_13,var_14,var_15,var_16,var_17,var_18,var_19,var_1A);
wait(var_12);
}
}
foreach(var_1F in var_13)
{
var_1F thread [[ var_13 ]](var_15,var_16,var_17,var_18,var_19,var_1A,var_1B,var_1C,var_1D);
wait(var_14);
}
}
//Function Number: 44
func_0F1B(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
{
if(!isdefined(param_02))
{
foreach(var_0C in param_00)
{
var_0C thread [[ param_01 ]]();
}
}
if(!isdefined(param_06))
{
foreach(var_0E in param_03)
{
var_0E thread [[ param_03 ]](param_04);
}
}
if(!isdefined(param_09))
{
foreach(var_10 in param_05)
{
var_10 thread [[ param_05 ]](param_06,param_07);
}
}
if(!isdefined(var_0C))
{
foreach(var_12 in param_07)
{
var_12 thread [[ param_07 ]](param_08,param_09,param_0A);
}
}
if(!isdefined(var_0F))
{
foreach(var_14 in param_09)
{
var_14 thread [[ param_09 ]](param_0A,var_0B,var_0C,var_0D);
}
}
if(!isdefined(var_12))
{
foreach(var_16 in var_0B)
{
var_16 thread [[ var_0B ]](var_0C,var_0D,var_0E,var_0F,var_10);
}
}
if(!isdefined(var_15))
{
foreach(var_18 in var_0D)
{
var_18 thread [[ var_0D ]](var_0E,var_0F,var_10,var_11,var_12,var_13);
}
}
if(!isdefined(var_18))
{
foreach(var_1A in var_0F)
{
var_1A thread [[ var_0F ]](var_10,var_11,var_12,var_13,var_14,var_15,var_16);
}
}
if(!isdefined(var_1B))
{
foreach(var_1C in var_11)
{
var_1C thread [[ var_11 ]](var_12,var_13,var_14,var_15,var_16,var_17,var_18,var_19);
}
}
foreach(var_1E in var_13)
{
var_1E thread [[ var_13 ]](var_14,var_15,var_16,var_17,var_18,var_19,var_1A,var_1B,var_1C);
}
}
//Function Number: 45
array_call(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_04))
{
foreach(var_06 in param_00)
{
var_06 [[ param_01 ]](param_02,param_03,param_04);
}
}
if(isdefined(var_06))
{
foreach(var_08 in param_03)
{
var_08 [[ param_03 ]](param_04,var_05);
}
}
if(isdefined(var_07))
{
foreach(var_0A in var_05)
{
var_0A [[ var_05 ]](var_06);
}
}
foreach(var_0C in var_07)
{
var_0C [[ var_07 ]]();
}
}
//Function Number: 46
func_5682(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_04))
{
foreach(var_06 in param_00)
{
[[ param_01 ]](var_06,param_02,param_03,param_04);
}
}
if(isdefined(var_06))
{
foreach(var_08 in param_03)
{
[[ param_03 ]](var_08,param_04,var_05);
}
}
if(isdefined(var_07))
{
foreach(var_0A in var_05)
{
[[ var_05 ]](var_0A,var_06);
}
}
foreach(var_0C in var_07)
{
[[ var_07 ]](var_0C);
}
}
//Function Number: 47
func_0F1C(param_00,param_01,param_02,param_03,param_04,param_05)
{
func_0F1B(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 48
array_thread5(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
func_0F1B(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 49
func_837B(param_00,param_01)
{
if(isdefined(param_00) && isdefined(param_01))
{
var_02 = getentarray(param_00,param_01);
func_0F1B(var_02,::func_837D);
}
func_837D();
}
//Function Number: 50
func_837D()
{
if(isdefined(self.realorigin))
{
self.origin = self.realorigin;
}
self.trigger_off = undefined;
}
//Function Number: 51
trigger_off(param_00,param_01)
{
if(isdefined(param_00) && isdefined(param_01))
{
var_02 = getentarray(param_00,param_01);
func_0F1B(var_02,::func_837A);
}
func_837A();
}
//Function Number: 52
func_837A()
{
if(!isdefined(self.realorigin))
{
self.realorigin = self.origin;
}
if(self.origin == self.realorigin)
{
self.origin = self.origin + (0,0,-10000);
}
self.trigger_off = 1;
}
//Function Number: 53
func_6FAF(param_00)
{
if(!isdefined(level.trigger_flags))
{
}
level.trigger_flags[param_00] = array_removeundefined(level.trigger_flags[param_00]);
func_0F1B(level.trigger_flags[param_00],::func_86B9);
}
//Function Number: 54
func_86B9()
{
var_00 = 1;
if(isdefined(self.script_flag_true))
{
var_00 = 0;
var_01 = func_2079(self.script_flag_true);
foreach(var_03 in var_01)
{
if(flag(var_03))
{
var_00 = 1;
break;
}
}
}
var_05 = 1;
if(isdefined(self.script_flag_false))
{
var_01 = func_2079(self.script_flag_false);
foreach(var_03 in var_01)
{
if(flag(var_03))
{
var_05 = 0;
break;
}
}
}
[[ level.trigger_func[var_00 && var_05] ]]();
}
//Function Number: 55
func_2079(param_00)
{
var_01 = strtok(param_00," ");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(!isdefined(level.flag[var_01[var_02]]))
{
func_3385(var_01[var_02]);
}
}
return var_01;
}
//Function Number: 56
func_45C2()
{
level.trigger_flags = [];
level.trigger_func[1] = ::func_837B;
level.trigger_func[0] = ::trigger_off;
}
//Function Number: 57
func_3C18(param_00,param_01)
{
var_02 = level.struct_class_names[param_01][param_00];
if(!isdefined(var_02))
{
return undefined;
}
if(var_02.size > 1)
{
return undefined;
}
return var_02[0];
}
//Function Number: 58
func_3C1A(param_00,param_01)
{
var_02 = level.struct_class_names[param_01][param_00];
if(!isdefined(var_02))
{
return [];
}
return var_02;
}
//Function Number: 59
func_7CF9()
{
level.struct_class_names = [];
level.struct_class_names["target"] = [];
level.struct_class_names["targetname"] = [];
level.struct_class_names["script_noteworthy"] = [];
level.struct_class_names["script_linkname"] = [];
foreach(var_01 in level.struct)
{
if(isdefined(var_01.targetname))
{
if(!isdefined(level.struct_class_names["targetname"][var_01.targetname]))
{
level.struct_class_names["targetname"][var_01.targetname] = [];
}
var_02 = level.struct_class_names["targetname"][var_01.targetname].size;
level.struct_class_names["targetname"][var_01.targetname][var_02] = var_01;
}
if(isdefined(var_01.target))
{
if(!isdefined(level.struct_class_names["target"][var_01.target]))
{
level.struct_class_names["target"][var_01.target] = [];
}
var_02 = level.struct_class_names["target"][var_01.target].size;
level.struct_class_names["target"][var_01.target][var_02] = var_01;
}
if(isdefined(var_01.script_noteworthy))
{
if(!isdefined(level.struct_class_names["script_noteworthy"][var_01.script_noteworthy]))
{
level.struct_class_names["script_noteworthy"][var_01.script_noteworthy] = [];
}
var_02 = level.struct_class_names["script_noteworthy"][var_01.script_noteworthy].size;
level.struct_class_names["script_noteworthy"][var_01.script_noteworthy][var_02] = var_01;
}
if(isdefined(var_01.script_linkname))
{
if(!isdefined(level.struct_class_names["script_linkname"][var_01.script_linkname]))
{
level.struct_class_names["script_linkname"][var_01.script_linkname] = [];
}
var_02 = level.struct_class_names["script_linkname"][var_01.script_linkname].size;
level.struct_class_names["script_linkname"][var_01.script_linkname][0] = var_01;
}
}
}
//Function Number: 60
func_322C(param_00)
{
}
//Function Number: 61
func_322A()
{
}
//Function Number: 62
func_3228(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
}
//Function Number: 63
func_3229(param_00,param_01)
{
}
//Function Number: 64
fileprint_map_entity_start()
{
}
//Function Number: 65
fileprint_map_entity_end()
{
}
//Function Number: 66
func_322B(param_00)
{
}
//Function Number: 67
array_remove(param_00,param_01)
{
var_02 = [];
foreach(var_04 in param_00)
{
if(var_04 != param_01)
{
var_02[var_02.size] = var_04;
}
}
return var_02;
}
//Function Number: 68
array_remove_array(param_00,param_01)
{
foreach(var_03 in param_01)
{
param_00 = array_remove(param_00,var_03);
}
return param_00;
}
//Function Number: 69
array_removeundefined(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isdefined(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 70
array_remove_duplicates(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isdefined(var_03))
{
continue;
}
var_04 = 1;
foreach(var_06 in var_01)
{
if(var_03 == var_06)
{
var_04 = 0;
break;
}
}
if(var_04)
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 71
array_levelthread(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_04))
{
foreach(var_06 in param_00)
{
thread [[ param_01 ]](var_06,param_02,param_03,param_04);
}
}
if(isdefined(var_06))
{
foreach(var_08 in param_03)
{
thread [[ param_03 ]](var_08,param_04,var_05);
}
}
if(isdefined(var_07))
{
foreach(var_0A in var_05)
{
thread [[ var_05 ]](var_0A,var_06);
}
}
foreach(var_0C in var_07)
{
thread [[ var_07 ]](var_0C);
}
}
//Function Number: 72
array_levelcall(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_04))
{
foreach(var_06 in param_00)
{
[[ param_01 ]](var_06,param_02,param_03,param_04);
}
}
if(isdefined(var_06))
{
foreach(var_08 in param_03)
{
[[ param_03 ]](var_08,param_04,var_05);
}
}
if(isdefined(var_07))
{
foreach(var_0A in var_05)
{
[[ var_05 ]](var_0A,var_06);
}
}
foreach(var_0C in var_07)
{
[[ var_07 ]](var_0C);
}
}
//Function Number: 73
add_to_array(param_00,param_01)
{
if(!isdefined(param_01))
{
return param_00;
}
if(!isdefined(param_00))
{
param_00[0] = param_01;
}
else
{
param_00[param_00.size] = param_01;
}
return param_00;
}
//Function Number: 74
func_337A(param_00)
{
}
//Function Number: 75
func_339B(param_00,param_01)
{
for(;;)
{
if(flag(param_00))
{
}
if(flag(param_01))
{
}
level func_8B4F(param_00,param_01);
}
}
//Function Number: 76
flag_wait_either_return(param_00,param_01)
{
for(;;)
{
if(flag(param_00))
{
return param_00;
}
if(flag(param_01))
{
return param_01;
}
var_02 = level func_8B33(param_00,param_01);
return var_02;
}
}
//Function Number: 77
flag_wait_any(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = [];
if(isdefined(param_05))
{
var_06[var_06.size] = param_00;
var_06[var_06.size] = param_01;
var_06[var_06.size] = param_02;
var_06[var_06.size] = param_03;
var_06[var_06.size] = param_04;
var_06[var_06.size] = param_05;
}
else if(isdefined(param_04))
{
var_06[var_06.size] = param_00;
var_06[var_06.size] = param_01;
var_06[var_06.size] = param_02;
var_06[var_06.size] = param_03;
var_06[var_06.size] = param_04;
}
else if(isdefined(param_03))
{
var_06[var_06.size] = param_00;
var_06[var_06.size] = param_01;
var_06[var_06.size] = param_02;
var_06[var_06.size] = param_03;
}
else if(isdefined(param_02))
{
var_06[var_06.size] = param_00;
var_06[var_06.size] = param_01;
var_06[var_06.size] = param_02;
}
else if(isdefined(param_01))
{
func_339B(param_00,param_01);
}
else
{
}
for(;;)
{
for(var_07 = 0;var_07 < var_06.size;var_07++)
{
if(flag(var_06[var_07]))
{
}
}
level func_8B2A(param_00,param_01,param_02,param_03,param_04,param_05);
}
}
//Function Number: 78
func_3398(param_00,param_01,param_02,param_03,param_04)
{
var_05 = [];
if(isdefined(param_04))
{
var_05[var_05.size] = param_00;
var_05[var_05.size] = param_01;
var_05[var_05.size] = param_02;
var_05[var_05.size] = param_03;
var_05[var_05.size] = param_04;
}
else if(isdefined(param_03))
{
var_05[var_05.size] = param_00;
var_05[var_05.size] = param_01;
var_05[var_05.size] = param_02;
var_05[var_05.size] = param_03;
}
else if(isdefined(param_02))
{
var_05[var_05.size] = param_00;
var_05[var_05.size] = param_01;
var_05[var_05.size] = param_02;
}
else if(isdefined(param_01))
{
var_06 = flag_wait_either_return(param_00,param_01);
return var_06;
}
else
{
}
for(;;)
{
for(var_07 = 0;var_07 < var_06.size;var_07++)
{
if(flag(var_06[var_07]))
{
return var_06[var_07];
}
}
var_06 = level func_8B33(param_01,param_02,param_03,param_04,var_05);
return var_07;
}
}
//Function Number: 79
flag_wait_all(param_00,param_01,param_02,param_03)
{
if(isdefined(param_00))
{
flag_wait(param_00);
}
if(isdefined(param_01))
{
flag_wait(param_01);
}
if(isdefined(param_02))
{
flag_wait(param_02);
}
if(isdefined(param_03))
{
flag_wait(param_03);
}
}
//Function Number: 80
flag_wait_or_timeout(param_00,param_01)
{
var_02 = param_01 * 1000;
var_03 = gettime();
for(;;)
{
if(flag(param_00))
{
break;
}
if(gettime() >= var_03 + var_02)
{
break;
}
var_04 = var_02 - gettime() - var_03;
var_05 = var_04 / 1000;
func_8A81(param_00,var_05);
}
}
//Function Number: 81
func_33A2(param_00,param_01)
{
var_02 = gettime();
for(;;)
{
if(!flag(param_00))
{
break;
}
if(gettime() >= var_02 + param_01 * 1000)
{
break;
}
func_8A81(param_00,param_01);
}
}
//Function Number: 82
func_8A81(param_00,param_01)
{
level endon(param_00);
wait(param_01);
}
//Function Number: 83
delaycall(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
thread delaycall_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
//Function Number: 84
delaycall_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(issp())
{
self endon("death");
self endon("stop_delay_call");
}
wait(param_01);
if(isdefined(param_09))
{
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
}
if(isdefined(param_08))
{
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07,param_08);
}
if(isdefined(param_07))
{
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07);
}
if(isdefined(param_06))
{
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06);
}
if(isdefined(param_05))
{
self [[ param_00 ]](param_02,param_03,param_04,param_05);
}
if(isdefined(param_04))
{
self [[ param_00 ]](param_02,param_03,param_04);
}
if(isdefined(param_03))
{
self [[ param_00 ]](param_02,param_03);
}
if(isdefined(param_02))
{
self [[ param_00 ]](param_02);
}
self [[ param_00 ]]();
}
//Function Number: 85
func_5683(param_00,param_01,param_02,param_03,param_04,param_05)
{
thread func_5684(param_01,param_00,param_02,param_03,param_04,param_05);
}
//Function Number: 86
func_5684(param_00,param_01,param_02,param_03,param_04,param_05)
{
wait(param_01);
if(isdefined(param_05))
{
[[ param_00 ]](param_02,param_03,param_04,param_05);
}
if(isdefined(param_04))
{
[[ param_00 ]](param_02,param_03,param_04);
}
if(isdefined(param_03))
{
[[ param_00 ]](param_02,param_03);
}
if(isdefined(param_02))
{
[[ param_00 ]](param_02);
}
[[ param_00 ]]();
}
//Function Number: 87
issp()
{
if(!isdefined(level.issp))
{
level.issp = !string_starts_with(getdvar("mapname"),"mp_");
}
return level.issp;
}
//Function Number: 88
issp_towerdefense()
{
if(!isdefined(level.issp_towerdefense))
{
level.issp_towerdefense = string_starts_with(getdvar("mapname"),"so_td_");
}
return level.issp_towerdefense;
}
//Function Number: 89
string_starts_with(param_00,param_01)
{
if(param_00.size < param_01.size)
{
return 0;
}
for(var_02 = 0;var_02 < param_01.size;var_02++)
{
if(tolower(param_00[var_02]) != tolower(param_01[var_02]))
{
return 0;
}
}
return 1;
}
//Function Number: 90
plot_points(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_00[0];
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!isdefined(param_02))
{
param_02 = 1;
}
if(!isdefined(param_03))
{
param_03 = 1;
}
if(!isdefined(param_04))
{
param_04 = 0.05;
}
for(var_06 = 1;var_06 < param_00.size;var_06++)
{
thread func_2A5C(var_05,param_00[var_06],param_01,param_02,param_03,param_04);
var_05 = param_00[var_06];
}
}
//Function Number: 91
func_2A5C(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_05 = gettime() + param_05 * 1000;
while(gettime() < param_05)
{
wait(0.05);
}
}
//Function Number: 92
func_7E48(param_00,param_01)
{
var_02 = [];
foreach(var_05, var_04 in param_00)
{
var_02[var_05] = var_04;
}
foreach(var_05, var_04 in param_01)
{
var_02[var_05] = var_04;
}
return var_02;
}
//Function Number: 93
array_combine(param_00,param_01)
{
var_02 = [];
foreach(var_04 in param_00)
{
var_02[var_02.size] = var_04;
}
foreach(var_04 in param_01)
{
var_02[var_02.size] = var_04;
}
return var_02;
}
//Function Number: 94
array_combine_non_integer_indices(param_00,param_01)
{
var_02 = [];
foreach(var_05, var_04 in param_00)
{
var_02[var_05] = var_04;
}
foreach(var_05, var_04 in param_01)
{
var_02[var_05] = var_04;
}
return var_02;
}
//Function Number: 95
array_randomize(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
var_02 = randomint(param_00.size);
var_03 = param_00[var_01];
param_00[var_01] = param_00[var_02];
param_00[var_02] = var_03;
}
return param_00;
}
//Function Number: 96
array_add(param_00,param_01)
{
param_00[param_00.size] = param_01;
return param_00;
}
//Function Number: 97
array_insert(param_00,param_01,param_02)
{
if(param_02 == param_00.size)
{
var_03 = param_00;
var_03[var_03.size] = param_01;
return var_03;
}
var_03 = [];
var_04 = 0;
for(var_05 = 0;var_05 < param_00.size;var_05++)
{
if(var_05 == param_02)
{
var_03[var_05] = param_01;
var_04 = 1;
}
var_03[var_05 + var_04] = param_00[var_05];
}
return var_03;
}
//Function Number: 98
array_contains(param_00,param_01)
{
if(param_00.size <= 0)
{
return 0;
}
foreach(var_03 in param_00)
{
if(var_03 == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 99
array_find(param_00,param_01)
{
foreach(var_04, var_03 in param_00)
{
if(var_03 == param_01)
{
return var_04;
}
}
return undefined;
}
//Function Number: 100
func_3415(param_00)
{
var_01 = (0,param_00[1],0);
return var_01;
}
//Function Number: 101
func_3417(param_00)
{
var_01 = (param_00[0],param_00[1],0);
return var_01;
}
//Function Number: 102
draw_arrow_time(param_00,param_01,param_02,param_03)
{
level endon("newpath");
var_04 = [];
var_05 = vectortoangles(param_00 - param_01);
var_06 = anglestoright(var_05);
var_07 = anglestoforward(var_05);
var_08 = anglestoup(var_05);
var_09 = distance(param_00,param_01);
var_0A = [];
var_0B = 0.1;
var_0A[0] = param_00;
var_0A[1] = param_00 + var_06 * var_09 * var_0B + var_07 * var_09 * -0.1;
var_0A[2] = param_01;
var_0A[3] = param_00 + var_06 * var_09 * -1 * var_0B + var_07 * var_09 * -0.1;
var_0A[4] = param_00;
var_0A[5] = param_00 + var_08 * var_09 * var_0B + var_07 * var_09 * -0.1;
var_0A[6] = param_01;
var_0A[7] = param_00 + var_08 * var_09 * -1 * var_0B + var_07 * var_09 * -0.1;
var_0A[8] = param_00;
var_0C = param_02[0];
var_0D = param_02[1];
var_0E = param_02[2];
plot_points(var_0A,var_0C,var_0D,var_0E,param_03);
}
//Function Number: 103
get_linked_ents()
{
var_00 = [];
if(isdefined(self.script_linkto))
{
var_01 = get_links();
foreach(var_03 in var_01)
{
var_04 = getentarray(var_03,"script_linkname");
if(var_04.size > 0)
{
var_00 = array_combine(var_00,var_04);
}
}
}
return var_00;
}
//Function Number: 104
get_linked_vehicle_nodes()
{
var_00 = [];
if(isdefined(self.script_linkto))
{
var_01 = get_links();
foreach(var_03 in var_01)
{
var_04 = getvehiclenodearray(var_03,"script_linkname");
if(var_04.size > 0)
{
var_00 = array_combine(var_00,var_04);
}
}
}
return var_00;
}
//Function Number: 105
func_38D7()
{
var_00 = get_linked_ents();
return var_00[0];
}
//Function Number: 106
get_linked_vehicle_node()
{
var_00 = get_linked_vehicle_nodes();
return var_00[0];
}
//Function Number: 107
get_links()
{
return strtok(self.script_linkto," ");
}
//Function Number: 108
func_697A(param_00,param_01,param_02,param_03,param_04)
{
var_05 = getentarray(param_00,"targetname");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = func_3C1A(param_00,"targetname");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = [[ level.getnodearrayfunction ]](param_00,"targetname");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = getvehiclenodearray(param_00,"targetname");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
}
//Function Number: 109
func_6979(param_00,param_01,param_02,param_03,param_04)
{
var_05 = getentarray(param_00,"script_noteworthy");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = func_3C1A(param_00,"script_noteworthy");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = [[ level.getnodearrayfunction ]](param_00,"script_noteworthy");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
var_05 = getvehiclenodearray(param_00,"script_noteworthy");
func_0F1B(var_05,param_01,param_02,param_03,param_04);
}
//Function Number: 110
draw_arrow(param_00,param_01,param_02)
{
level endon("newpath");
var_03 = [];
var_04 = vectortoangles(param_00 - param_01);
var_05 = anglestoright(var_04);
var_06 = anglestoforward(var_04);
var_07 = distance(param_00,param_01);
var_08 = [];
var_09 = 0.05;
var_08[0] = param_00;
var_08[1] = param_00 + var_05 * var_07 * var_09 + var_06 * var_07 * -0.2;
var_08[2] = param_01;
var_08[3] = param_00 + var_05 * var_07 * -1 * var_09 + var_06 * var_07 * -0.2;
for(var_0A = 0;var_0A < 4;var_0A++)
{
var_0B = var_0A + 1;
if(var_0B >= 4)
{
var_0B = 0;
}
}
}
//Function Number: 111
draw_entity_bounds(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_02))
{
param_02 = (0,1,0);
}
if(!isdefined(param_03))
{
param_03 = 0;
}
if(!isdefined(param_04))
{
param_04 = 0.05;
}
if(param_03)
{
var_05 = int(param_04 / 0.05);
}
else
{
var_05 = int(param_02 / 0.05);
}
var_06 = [];
var_07 = [];
var_08 = gettime();
var_09 = var_08 + param_01 * 1000;
while(var_08 < var_09 && isdefined(param_00))
{
var_06[0] = param_00 getpointinbounds(1,1,1);
var_06[1] = param_00 getpointinbounds(1,1,-1);
var_06[2] = param_00 getpointinbounds(-1,1,-1);
var_06[3] = param_00 getpointinbounds(-1,1,1);
var_07[0] = param_00 getpointinbounds(1,-1,1);
var_07[1] = param_00 getpointinbounds(1,-1,-1);
var_07[2] = param_00 getpointinbounds(-1,-1,-1);
var_07[3] = param_00 getpointinbounds(-1,-1,1);
for(var_0A = 0;var_0A < 4;var_0A++)
{
var_0B = var_0A + 1;
if(var_0B == 4)
{
var_0B = 0;
}
}
if(!param_03)
{
}
wait(param_04);
var_08 = gettime();
}
}
//Function Number: 112
draw_volume(param_00,param_01,param_02,param_03,param_04)
{
draw_entity_bounds(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 113
draw_trigger(param_00,param_01,param_02,param_03,param_04)
{
draw_entity_bounds(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 114
func_3AB9(param_00)
{
return level._effect[param_00];
}
//Function Number: 115
func_36C3(param_00)
{
return isdefined(level._effect[param_00]);
}
//Function Number: 116
func_619A(param_00,param_01)
{
var_02 = param_01 + "," + param_00;
if(isdefined(level.csv_lines[var_02]))
{
}
level.csv_lines[var_02] = 1;
}
//Function Number: 117
func_3222(param_00)
{
}
//Function Number: 118
func_3B0A()
{
return self.saved_lastweapon;
}
//Function Number: 119
func_5FEB()
{
}
//Function Number: 120
func_4992()
{
return !self.disabledusability;
}
//Function Number: 121
_disableusability()
{
if(!isdefined(self.disabledusability))
{
self.disabledusability = 0;
}
self.disabledusability++;
self disableusability();
}
//Function Number: 122
_enableusability()
{
if(!isdefined(self.disabledusability))
{
self.disabledusability = 0;
}
if(self.disabledusability > 0)
{
self.disabledusability--;
if(self.disabledusability == 0)
{
self enableusability();
}
}
}
//Function Number: 123
func_6623()
{
self.disabledusability = 0;
self enableusability();
}
//Function Number: 124
_disableweapon()
{
if(!isdefined(self.disabledweapon))
{
self.disabledweapon = 0;
}
self.disabledweapon++;
self disableweapons();
}
//Function Number: 125
_enableweapon()
{
if(!isdefined(self.disabledweapon))
{
self.disabledweapon = 0;
}
self.disabledweapon--;
if(!self.disabledweapon)
{
self enableweapons();
}
}
//Function Number: 126
func_49B6()
{
return !self.disabledweapon;
}
//Function Number: 127
_disableweaponswitch()
{
if(!isdefined(self.var_27AB))
{
self.var_27AB = 0;
}
self.var_27AB++;
self disableweaponswitch();
}
//Function Number: 128
_enableweaponswitch()
{
if(!isdefined(self.var_27AB))
{
self.var_27AB = 0;
}
self.var_27AB--;
if(!self.var_27AB)
{
self enableweaponswitch();
}
}
//Function Number: 129
isweaponswitchenabled()
{
return !self.var_27AB;
}
//Function Number: 130
_disableoffhandweapons()
{
if(!isdefined(self.disabledoffhandweapons))
{
self.disabledoffhandweapons = 0;
}
self.disabledoffhandweapons++;
self disableoffhandweapons();
}
//Function Number: 131
func_066F()
{
if(!isdefined(self.disabledoffhandweapons))
{
self.disabledoffhandweapons = 0;
}
self.disabledoffhandweapons--;
if(!self.disabledoffhandweapons)
{
self enableoffhandweapons();
}
}
//Function Number: 132
isoffhandweaponenabled()
{
return !self.disabledoffhandweapons;
}
//Function Number: 133
func_6306(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_01[var_01.size] = var_03;
}
if(!var_01.size)
{
return undefined;
}
return var_01[randomint(var_01.size)];
}
//Function Number: 134
random_weight_sorted(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_01[var_01.size] = var_03;
}
if(!var_01.size)
{
return undefined;
}
var_05 = randomint(var_01.size * var_01.size);
return var_01[var_01.size - 1 - int(sqrt(var_05))];
}
//Function Number: 135
func_7836()
{
var_00 = spawn("script_model",(0,0,0));
var_00 setmodel("tag_origin");
var_00 hide();
if(isdefined(self.origin))
{
var_00.origin = self.origin;
}
if(isdefined(self.angles))
{
var_00.angles = self.angles;
}
return var_00;
}
//Function Number: 136
waittill_notify_or_timeout(param_00,param_01)
{
self endon(param_00);
wait(param_01);
}
//Function Number: 137
func_8B7E(param_00,param_01)
{
self endon(param_00);
wait(param_01);
return "timeout";
}
//Function Number: 138
fileprint_launcher_start_file()
{
level.fileprintlauncher_linecount = 0;
level.fileprint_launcher = 1;
fileprint_launcher("GAMEPRINTSTARTFILE:");
}
//Function Number: 139
fileprint_launcher(param_00)
{
level.fileprintlauncher_linecount++;
if(level.fileprintlauncher_linecount > 200)
{
wait(0.05);
level.fileprintlauncher_linecount = 0;
}
}
//Function Number: 140
func_3224(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 0;
}
if(param_01)
{
fileprint_launcher("GAMEPRINTENDFILE:GAMEPRINTP4ENABLED:" + param_00);
}
else
{
fileprint_launcher("GAMEPRINTENDFILE:" + param_00);
}
var_02 = gettime() + 4000;
while(getdvarint("LAUNCHER_PRINT_SUCCESS") == 0 && getdvar("LAUNCHER_PRINT_FAIL") == "0" && gettime() < var_02)
{
wait(0.05);
}
if(!gettime() < var_02)
{
iprintlnbold("LAUNCHER_PRINT_FAIL:( TIMEOUT ): launcherconflict? restart launcher and try again? ");
level.fileprint_launcher = undefined;
return 0;
}
var_03 = getdvar("LAUNCHER_PRINT_FAIL");
if(var_03 != "0")
{
iprintlnbold("LAUNCHER_PRINT_FAIL:( " + var_03 + " ): launcherconflict? restart launcher and try again? ");
level.fileprint_launcher = undefined;
return 0;
}
level.fileprint_launcher = undefined;
return 1;
}
//Function Number: 141
func_4CFC(param_00)
{
level.fileprintlauncher_linecount = 0;
fileprint_launcher("LAUNCHER_CLIP:" + param_00);
}
//Function Number: 142
func_48AC()
{
if(!isdefined(self))
{
return 0;
}
return isdefined(self.destructible_type);
}
//Function Number: 143
func_5B59()
{
common_scripts\_createfx::func_7C2A();
}
//Function Number: 144
activate_individual_exploder()
{
common_scripts\_exploder::activate_individual_exploder_proc();
}
//Function Number: 145
func_8AFE()
{
wait(0.05);
}
//Function Number: 146
func_39BD(param_00)
{
if(!isdefined(param_00))
{
param_00 = self.target;
}
var_01 = getent(param_00,"targetname");
if(isdefined(var_01))
{
return var_01;
}
if(issp())
{
var_01 = [[ level.getnodefunction ]](param_00,"targetname");
if(isdefined(var_01))
{
return var_01;
}
}
var_01 = func_3C18(param_00,"targetname");
if(isdefined(var_01))
{
return var_01;
}
var_01 = getvehiclenode(param_00,"targetname");
if(isdefined(var_01))
{
return var_01;
}
}
//Function Number: 147
get_noteworthy_ent(param_00)
{
var_01 = getent(param_00,"script_noteworthy");
if(isdefined(var_01))
{
return var_01;
}
if(issp())
{
var_01 = [[ level.getnodefunction ]](param_00,"script_noteworthy");
if(isdefined(var_01))
{
return var_01;
}
}
var_01 = func_3C18(param_00,"script_noteworthy");
if(isdefined(var_01))
{
return var_01;
}
var_01 = getvehiclenode(param_00,"script_noteworthy");
if(isdefined(var_01))
{
return var_01;
}
}
//Function Number: 148
do_earthquake(param_00,param_01)
{
var_02 = level.earthquake[param_00];
earthquake(var_02["magnitude"],var_02["duration"],param_01,var_02["radius"]);
}
//Function Number: 149
func_5CF6(param_00,param_01)
{
var_02 = spawn("script_origin",(0,0,0));
if(!isdefined(param_01))
{
param_01 = self.origin;
}
var_02.origin = param_01;
var_02 playloopsound(param_00);
return var_02;
}
//Function Number: 150
func_5D20(param_00,param_01,param_02,param_03)
{
var_04 = spawn("script_origin",(0,0,1));
if(!isdefined(param_01))
{
param_01 = self.origin;
}
var_04.origin = param_01;
var_04.angles = param_02;
if(issp())
{
if(isdefined(param_03) && param_03)
{
var_04 playsoundasmaster(param_00,"sounddone");
}
else
{
var_04 playsound(param_00,"sounddone");
}
var_04 waittill("sounddone");
}
else if(isdefined(param_03) && param_03)
{
var_04 playsoundasmaster(param_00);
}
else
{
var_04 playsound(param_00);
}
var_04 delete();
}
//Function Number: 151
func_5D1F(param_00,param_01,param_02)
{
func_5D20(param_00,param_01,(0,0,0),param_02);
}
//Function Number: 152
func_4F68(param_00,param_01,param_02,param_03,param_04)
{
func_4F6B(param_00,param_01,(0,0,0),param_02,param_03,param_04);
}
//Function Number: 153
func_4F6B(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
if(isdefined(param_03) && param_03)
{
if(!isdefined(level.first_frame) || level.first_frame == 1)
{
spawnloopingsound(param_00,param_01,param_02);
}
}
if(level.createfx_enabled && isdefined(param_05.loopsound_ent))
{
var_07 = param_05.loopsound_ent;
}
else
{
var_07 = spawn("script_origin",(0,0,0));
}
if(isdefined(param_04))
{
thread func_4F6F(param_04,var_07);
self endon(param_04);
}
var_07.origin = param_01;
var_07.angles = param_02;
var_07 playloopsound(param_00);
if(level.createfx_enabled)
{
param_05.loopsound_ent = var_07;
}
var_07 willneverchange();
}
//Function Number: 154
func_4F69(param_00,param_01,param_02,param_03,param_04,param_05)
{
func_4F6A(param_00,param_01,(0,0,0),param_02,param_03,param_04,param_05);
}
//Function Number: 155
func_4F6A(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = spawn("script_origin",(0,0,0));
if(isdefined(param_03))
{
thread func_4F6F(param_03,var_07);
self endon(param_03);
}
var_07.origin = param_01;
var_07.angles = param_02;
if(param_05 >= param_06)
{
wait(0.05);
}
if(!soundexists(param_00))
{
wait(0.05);
}
for(;;)
{
wait(randomfloatrange(param_05,param_06));
lock("createfx_looper");
thread func_5D20(param_00,var_07.origin,var_07.angles,undefined);
unlock("createfx_looper");
}
}
//Function Number: 156
func_4F6F(param_00,param_01)
{
param_01 endon("death");
self waittill(param_00);
param_01 delete();
}
//Function Number: 157
createloopeffect(param_00)
{
var_01 = common_scripts\_createfx::createeffect("loopfx",param_00);
var_01.var_880E["delay"] = common_scripts\_createfx::func_3B1B();
return var_01;
}
//Function Number: 158
createoneshoteffect(param_00)
{
var_01 = common_scripts\_createfx::createeffect("oneshotfx",param_00);
var_01.var_880E["delay"] = common_scripts\_createfx::func_3B64();
return var_01;
}
//Function Number: 159
createexploder(param_00)
{
var_01 = common_scripts\_createfx::createeffect("exploder",param_00);
var_01.var_880E["delay"] = common_scripts\_createfx::func_3AA4();
var_01.var_880E["exploder_type"] = "normal";
return var_01;
}
//Function Number: 160
alphabetize(param_00)
{
if(param_00.size <= 1)
{
return param_00;
}
var_01 = 0;
for(var_02 = param_00.size - 1;var_02 >= 1;var_02--)
{
var_03 = param_00[var_02];
var_04 = var_02;
for(var_05 = 0;var_05 < var_02;var_05++)
{
var_06 = param_00[var_05];
if(stricmp(var_06,var_03) > 0)
{
var_03 = var_06;
var_04 = var_05;
}
}
if(var_04 != var_02)
{
param_00[var_04] = param_00[var_02];
param_00[var_02] = var_03;
}
}
return param_00;
}
//Function Number: 161
is_later_in_alphabet(param_00,param_01)
{
return stricmp(param_00,param_01) > 0;
}
//Function Number: 162
func_5CF4(param_00,param_01)
{
var_02 = spawn("script_origin",(0,0,0));
var_02 endon("death");
thread delete_on_death(var_02);
if(isdefined(param_01))
{
var_02.origin = self.origin + param_01;
var_02.angles = self.angles;
var_02 linkto(self);
}
else
{
var_02.origin = self.origin;
var_02.angles = self.angles;
var_02 linkto(self);
}
var_02 playloopsound(param_00);
self waittill("stop sound" + param_00);
var_02 stoploopsound(param_00);
var_02 delete();
}
//Function Number: 163
func_7C33(param_00)
{
self notify("stop sound" + param_00);
}
//Function Number: 164
delete_on_death(param_00)
{
param_00 endon("death");
self waittill("death");
if(isdefined(param_00))
{
param_00 delete();
}
}
//Function Number: 165
error(param_00)
{
func_8AFE();
}
//Function Number: 166
exploder(param_00,param_01,param_02)
{
[[ level._fx.exploderfunction ]](param_00,param_01,param_02);
}
//Function Number: 167
create_dvar(param_00,param_01)
{
setdvarifuninitialized(param_00,param_01);
}
//Function Number: 168
func_8A42()
{
}
//Function Number: 169
func_7E60(param_00,param_01)
{
var_02 = self gettagorigin(param_00);
var_03 = self gettagangles(param_00);
var_04 = anglestoforward(var_03);
var_04 = vectornormalize(var_04) * param_01;
return var_02 + var_04;
}
//Function Number: 170
func_803F(param_00,param_01,param_02)
{
if(param_00)
{
return param_01;
}
return param_02;
}
//Function Number: 171
create_lock(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!isdefined(level.lock))
{
level.lock = [];
}
var_02 = spawnstruct();
var_02.max_count = param_01;
var_02.count = 0;
level.lock[param_00] = var_02;
}
//Function Number: 172
func_4ECD(param_00)
{
if(!isdefined(level.lock))
{
return 0;
}
return isdefined(level.lock[param_00]);
}
//Function Number: 173
lock(param_00)
{
for(var_01 = level.lock[param_00];var_01.count >= var_01.max_count;var_01 waittill("unlocked"))
{
}
var_01.count++;
}
//Function Number: 174
is_locked(param_00)
{
var_01 = level.lock[param_00];
return var_01.count > var_01.max_count;
}
//Function Number: 175
func_85C4(param_00)
{
thread func_85C3(param_00);
wait(0.05);
}
//Function Number: 176
unlock(param_00)
{
thread func_85C3(param_00);
}
//Function Number: 177
func_85C3(param_00)
{
wait(0.05);
var_01 = level.lock[param_00];
var_01.count--;
var_01 notify("unlocked");
}
//Function Number: 178
func_39CA()
{
var_00 = level.script;
if(isdefined(level.template_script))
{
var_00 = level.template_script;
}
return var_00;
}
//Function Number: 179
func_4828()
{
if(!level.console)
{
var_00 = self usinggamepad();
if(isdefined(var_00))
{
return var_00;
}
else
{
return 0;
}
}
return 1;
}
//Function Number: 180
array_reverse(param_00)
{
var_01 = [];
for(var_02 = param_00.size - 1;var_02 >= 0;var_02--)
{
var_01[var_01.size] = param_00[var_02];
}
return var_01;
}
//Function Number: 181
func_27FE(param_00,param_01)
{
return length2dsquared(param_00 - param_01);
}
//Function Number: 182
get_array_of_farthest(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = func_37D5(param_00,param_01,param_02,param_03,param_04,param_05);
var_06 = array_reverse(var_06);
return var_06;
}
//Function Number: 183
func_37D5(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_03))
{
param_03 = param_01.size;
}
if(!isdefined(param_02))
{
param_02 = [];
}
var_06 = undefined;
if(isdefined(param_04))
{
var_06 = param_04 * param_04;
}
var_07 = 0;
if(isdefined(param_05))
{
var_07 = param_05 * param_05;
}
if(param_02.size == 0 && param_03 >= param_01.size && var_07 == 0 && !isdefined(var_06))
{
return sortbydistance(param_01,param_00);
}
var_08 = [];
foreach(var_0A in param_01)
{
var_0B = 0;
foreach(var_0D in param_02)
{
if(var_0A == var_0D)
{
var_0B = 1;
break;
}
}
if(var_0B)
{
continue;
}
var_0F = distancesquared(param_00,var_0A.origin);
if(isdefined(var_06) && var_0F > var_06)
{
continue;
}
if(var_0F < var_07)
{
continue;
}
var_08[var_08.size] = var_0A;
}
var_08 = sortbydistance(var_08,param_00);
if(param_03 >= var_08.size)
{
return var_08;
}
var_11 = [];
for(var_12 = 0;var_12 < param_03;var_12++)
{
var_11[var_12] = var_08[var_12];
}
return var_11;
}
//Function Number: 184
drop_to_ground(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = 1500;
}
if(!isdefined(param_02))
{
param_02 = -12000;
}
return physicstrace(param_00 + (0,0,param_01),param_00 + (0,0,param_02));
}
//Function Number: 185
add_destructible_type_function(param_00,param_01)
{
if(!isdefined(level.destructible_functions))
{
level.destructible_functions = [];
}
level.destructible_functions[param_00] = param_01;
}
//Function Number: 186
func_088B(param_00,param_01)
{
if(!isdefined(level.destructible_transient))
{
level.destructible_transient = [];
}
level.destructible_transient[param_00] = param_01;
}
//Function Number: 187
func_8E18(param_00,param_01,param_02,param_03)
{
var_04 = vectornormalize(param_02 - param_00);
var_05 = anglestoforward(param_01);
var_06 = vectordot(var_05,var_04);
return var_06 >= param_03;
}
//Function Number: 188
entity_path_disconnect_thread(param_00)
{
self notify("entity_path_disconnect_thread");
self endon("entity_path_disconnect_thread");
self endon("death");
level endon("game_ended");
var_01 = 0;
self.forcedisconnectuntil = 0;
for(;;)
{
var_02 = self.origin;
var_03 = func_8B35(param_00,"path_disconnect");
var_04 = 0;
var_05 = distancesquared(self.origin,var_02) > 0;
if(var_05)
{
var_04 = 1;
}
if(isdefined(var_03) && var_03 == "path_disconnect")
{
var_04 = 1;
}
if(gettime() < self.forcedisconnectuntil)
{
var_04 = 1;
}
foreach(var_07 in level.characters)
{
if(isai(var_07) && distancesquared(self.origin,var_07.origin) < 250000)
{
var_04 = 1;
self.forcedisconnectuntil = max(gettime() + 30000,self.forcedisconnectuntil);
}
}
if(var_04 != var_01 || var_05)
{
if(var_04)
{
self disconnectpaths();
}
else
{
self connectpaths();
}
var_01 = var_04;
}
}
}
//Function Number: 189
func_5009(param_00,param_01)
{
if(level.gametype == "aliens" && isdefined(level.aliens_make_entity_sentient_func))
{
return self [[ level.aliens_make_entity_sentient_func ]](param_00,param_01);
}
if(isdefined(level.bot_funcs) && isdefined(level.bot_funcs["bots_make_entity_sentient"]))
{
return self [[ level.bot_funcs["bots_make_entity_sentient"] ]](param_00,param_01);
}
}
//Function Number: 190
ai_3d_sighting_model(param_00)
{
if(isdefined(level.bot_funcs) && isdefined(level.bot_funcs["ai_3d_sighting_model"]))
{
return self [[ level.bot_funcs["ai_3d_sighting_model"] ]](param_00);
}
}
//Function Number: 191
func_6E53(param_00,param_01,param_02)
{
if(!isdefined(level.anim_prop_models))
{
level.anim_prop_models = [];
}
var_03 = tolower(getdvar("mapname"));
var_04 = 1;
if(string_starts_with(var_03,"mp_"))
{
var_04 = 0;
}
if(var_04)
{
level.anim_prop_models[param_00]["basic"] = param_01;
}
level.anim_prop_models[param_00]["basic"] = param_02;
}
//Function Number: 192
func_3A56(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 500000;
}
var_03 = undefined;
foreach(var_05 in param_01)
{
var_06 = distance(var_05.origin,param_00);
if(var_06 >= param_02)
{
continue;
}
param_02 = var_06;
var_03 = var_05;
}
return var_03;
}
//Function Number: 193
func_3AA8(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 500000;
}
var_03 = 0;
var_04 = undefined;
foreach(var_06 in param_01)
{
var_07 = distance(var_06.origin,param_00);
if(var_07 <= var_03 || var_07 >= param_02)
{
continue;
}
var_03 = var_07;
var_04 = var_06;
}
return var_04;
}
//Function Number: 194
func_52B2(param_00,param_01,param_02)
{
param_02 = func_803F(isdefined(param_02),param_02,(0,0,0));
self missile_settargetent(param_00,param_02);
switch(param_01)
{
case "direct":
self missile_setflightmodedirect();
break;
case "top":
self missile_setflightmodetop();
break;
}
}
//Function Number: 195
add_fx(param_00,param_01)
{
if(!isdefined(level._effect))
{
level._effect = [];
}
level._effect[param_00] = loadfx(param_01);
}
//Function Number: 196
array_sort_by_handler(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size - 1;var_02++)
{
for(var_03 = var_02 + 1;var_03 < param_00.size;var_03++)
{
if(param_00[var_03] [[ param_01 ]]() < param_00[var_02] [[ param_01 ]]())
{
var_04 = param_00[var_03];
param_00[var_03] = param_00[var_02];
param_00[var_02] = var_04;
}
}
}
return param_00;
}
//Function Number: 197
func_0F0F(param_00,param_01)
{
for(var_02 = 1;var_02 < param_00.size;var_02++)
{
var_03 = param_00[var_02];
for(var_04 = var_02 - 1;var_04 >= 0 && ![[ param_01 ]](param_00[var_04],var_03);var_04--)
{
param_00[var_04 + 1] = param_00[var_04];
}
param_00[var_04 + 1] = var_03;
}
return param_00;
}