IL-GSC/AW/PC/MP/maps/_utility.gsc
2023-10-27 03:49:01 -04:00

13322 lines
240 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps/_utility.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 857
* Decompile Time: 14198 ms
* Timestamp: 10/27/2023 1:48:18 AM
*******************************************************************/
//Function Number: 1
set_hudoutline(param_00,param_01)
{
var_02 = undefined;
param_00 = tolower(param_00);
var_03["friendly"] = 3;
var_03["enemy"] = 4;
var_03["objective"] = 5;
var_03["neutral"] = 0;
var_02 = var_03[param_00];
self hudoutlineenable(var_02,param_01);
}
//Function Number: 2
is_coop()
{
if(issplitscreen() || getdvar("coop") == "1")
{
return 1;
}
return 0;
}
//Function Number: 3
is_coop_online()
{
if(issplitscreen())
{
return 0;
}
if(!is_coop())
{
return 0;
}
return 1;
}
//Function Number: 4
is_player_down(param_00)
{
if(param_00 ent_flag_exist("laststand_downed"))
{
return param_00 ent_flag("laststand_downed");
}
if(isdefined(param_00.laststand))
{
return param_00.laststand;
}
return !isalive(param_00);
}
//Function Number: 5
is_player_down_and_out(param_00)
{
if(!isdefined(param_00.down_part2_proc_ran))
{
return 0;
}
return param_00.down_part2_proc_ran;
}
//Function Number: 6
killing_will_down(param_00)
{
if(laststand_enabled())
{
if(isdefined(level.laststand_kill_will_down_func))
{
return param_00 [[ level.laststand_kill_will_down_func ]]();
}
}
return 0;
}
//Function Number: 7
is_survival()
{
return is_specialop() && getdvarint("so_survival") > 0;
}
//Function Number: 8
laststand_enabled()
{
return isdefined(level.laststand_type) && level.laststand_type > 0;
}
//Function Number: 9
is_specialop()
{
return getdvarint("specialops") >= 1;
}
//Function Number: 10
convert_to_time_string(param_00,param_01)
{
var_02 = "";
if(param_00 < 0)
{
var_02 = var_02 + "-";
}
param_00 = round_float(param_00,1,0);
var_03 = param_00 * 100;
var_03 = int(var_03);
var_03 = abs(var_03);
var_04 = var_03 / 6000;
var_04 = int(var_04);
var_02 = var_02 + var_04;
var_05 = var_03 / 100;
var_05 = int(var_05);
var_05 = var_05 - var_04 * 60;
if(var_05 < 10)
{
var_02 = var_02 + ":0" + var_05;
}
else
{
var_02 = var_02 + ":" + var_05;
}
if(isdefined(param_01) && param_01)
{
var_06 = var_03;
var_06 = var_06 - var_04 * 6000;
var_06 = var_06 - var_05 * 100;
var_06 = int(var_06 / 10);
var_02 = var_02 + "." + var_06;
}
return var_02;
}
//Function Number: 11
round_float(param_00,param_01,param_02)
{
param_01 = int(param_01);
if(param_01 < 0 || param_01 > 4)
{
return param_00;
}
var_03 = 1;
for(var_04 = 1;var_04 <= param_01;var_04++)
{
var_03 = var_03 * 10;
}
var_05 = param_00 * var_03;
if(!isdefined(param_02) || param_02)
{
var_05 = floor(var_05);
}
else
{
var_05 = ceil(var_05);
}
param_00 = var_05 / var_03;
return param_00;
}
//Function Number: 12
round_millisec_on_sec(param_00,param_01,param_02)
{
var_03 = param_00 / 1000;
var_03 = round_float(var_03,param_01,param_02);
param_00 = var_03 * 1000;
return int(param_00);
}
//Function Number: 13
set_vision_set(param_00,param_01)
{
if(maps\_utility_code::init_vision_set(param_00))
{
return;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
visionsetnaked(param_00,param_01);
setdvar("vision_set_current",param_00);
}
//Function Number: 14
set_vision_set_player(param_00,param_01)
{
if(maps\_utility_code::init_vision_set(param_00))
{
return;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
self visionsetnakedforplayer(param_00,param_01);
}
//Function Number: 15
sun_light_fade(param_00,param_01,param_02)
{
param_02 = int(param_02 * 20);
var_03 = [];
for(var_04 = 0;var_04 < 3;var_04++)
{
var_03[var_04] = param_00[var_04] - param_01[var_04] / param_02;
}
var_05 = [];
for(var_04 = 0;var_04 < param_02;var_04++)
{
wait(0.05);
for(var_06 = 0;var_06 < 3;var_06++)
{
var_05[var_06] = param_00[var_06] - var_03[var_06] * var_04;
}
setsunlight(var_05[0],var_05[1],var_05[2]);
}
setsunlight(param_01[0],param_01[1],param_01[2]);
}
//Function Number: 16
ent_flag_wait(param_00)
{
while(isdefined(self) && !self.ent_flag[param_00])
{
self waittill(param_00);
}
}
//Function Number: 17
ent_flag_wait_vehicle_node(param_00)
{
while(isdefined(self) && !self.ent_flag[param_00])
{
self waittill(param_00);
}
}
//Function Number: 18
ent_flag_wait_either(param_00,param_01)
{
while(isdefined(self))
{
if(ent_flag(param_00))
{
return;
}
if(ent_flag(param_01))
{
return;
}
common_scripts\utility::waittill_either(param_00,param_01);
}
}
//Function Number: 19
ent_flag_wait_or_timeout(param_00,param_01)
{
var_02 = gettime();
while(isdefined(self))
{
if(self.ent_flag[param_00])
{
break;
}
if(gettime() >= var_02 + param_01 * 1000)
{
break;
}
maps\_utility_code::ent_wait_for_flag_or_time_elapses(param_00,param_01);
}
}
//Function Number: 20
ent_flag_waitopen(param_00)
{
while(isdefined(self) && self.ent_flag[param_00])
{
self waittill(param_00);
}
}
//Function Number: 21
ent_flag_assert(param_00)
{
}
//Function Number: 22
ent_flag_waitopen_either(param_00,param_01)
{
while(isdefined(self))
{
if(!ent_flag(param_00))
{
return;
}
if(!ent_flag(param_01))
{
return;
}
common_scripts\utility::waittill_either(param_00,param_01);
}
}
//Function Number: 23
ent_flag_init(param_00)
{
if(!isdefined(self.ent_flag))
{
self.ent_flag = [];
self.ent_flags_lock = [];
}
self.ent_flag[param_00] = 0;
}
//Function Number: 24
ent_flag_exist(param_00)
{
if(isdefined(self.ent_flag) && isdefined(self.ent_flag[param_00]))
{
return 1;
}
return 0;
}
//Function Number: 25
ent_flag_set_delayed(param_00,param_01)
{
self endon("death");
wait(param_01);
ent_flag_set(param_00);
}
//Function Number: 26
ent_flag_set(param_00)
{
self.ent_flag[param_00] = 1;
self notify(param_00);
}
//Function Number: 27
ent_flag_clear(param_00,param_01)
{
if(self.ent_flag[param_00])
{
self.ent_flag[param_00] = 0;
self notify(param_00);
}
if(isdefined(param_01) && param_01)
{
self.ent_flag[param_00] = undefined;
}
}
//Function Number: 28
ent_flag_clear_delayed(param_00,param_01)
{
wait(param_01);
ent_flag_clear(param_00);
}
//Function Number: 29
ent_flag(param_00)
{
return self.ent_flag[param_00];
}
//Function Number: 30
get_closest_to_player_view(param_00,param_01,param_02,param_03)
{
if(!param_00.size)
{
return;
}
if(!isdefined(param_01))
{
param_01 = level.player;
}
if(!isdefined(param_03))
{
param_03 = -1;
}
var_04 = param_01.origin;
if(isdefined(param_02) && param_02)
{
var_04 = param_01 geteye();
}
var_05 = undefined;
var_06 = param_01 getplayerangles();
var_07 = anglestoforward(var_06);
var_08 = -1;
foreach(var_0A in param_00)
{
var_0B = vectortoangles(var_0A.origin - var_04);
var_0C = anglestoforward(var_0B);
var_0D = vectordot(var_07,var_0C);
if(var_0D < var_08)
{
continue;
}
if(var_0D < param_03)
{
continue;
}
var_08 = var_0D;
var_05 = var_0A;
}
return var_05;
}
//Function Number: 31
get_closest_index_to_player_view(param_00,param_01,param_02)
{
if(!param_00.size)
{
return;
}
if(!isdefined(param_01))
{
param_01 = level.player;
}
var_03 = param_01.origin;
if(isdefined(param_02) && param_02)
{
var_03 = param_01 geteye();
}
var_04 = undefined;
var_05 = param_01 getplayerangles();
var_06 = anglestoforward(var_05);
var_07 = -1;
for(var_08 = 0;var_08 < param_00.size;var_08++)
{
var_09 = vectortoangles(param_00[var_08].origin - var_03);
var_0A = anglestoforward(var_09);
var_0B = vectordot(var_06,var_0A);
if(var_0B < var_07)
{
continue;
}
var_07 = var_0B;
var_04 = var_08;
}
return var_04;
}
//Function Number: 32
flag_trigger_init(param_00,param_01,param_02)
{
common_scripts\utility::flag_init(param_00);
if(!isdefined(param_02))
{
param_02 = 0;
}
param_01 thread maps\_utility_code::_flag_wait_trigger(param_00,param_02);
return param_01;
}
//Function Number: 33
flag_triggers_init(param_00,param_01,param_02)
{
common_scripts\utility::flag_init(param_00);
if(!isdefined(param_02))
{
param_02 = 0;
}
for(var_03 = 0;var_03 < param_01.size;var_03++)
{
param_01[var_03] thread maps\_utility_code::_flag_wait_trigger(param_00,0);
}
return param_01;
}
//Function Number: 34
flag_set_delayed(param_00,param_01)
{
wait(param_01);
common_scripts\utility::flag_set(param_00);
}
//Function Number: 35
flag_clear_delayed(param_00,param_01)
{
wait(param_01);
common_scripts\utility::flag_clear(param_00);
}
//Function Number: 36
level_end_save()
{
if(arcademode())
{
return;
}
if(level.missionfailed)
{
return;
}
if(common_scripts\utility::flag("game_saving"))
{
return;
}
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
var_01 = level.players[var_00];
if(!isalive(var_01))
{
return;
}
}
common_scripts\utility::flag_set("game_saving");
var_02 = "levelshots / autosave / autosave_" + level.script + "end";
savegame("levelend",&"AUTOSAVE_AUTOSAVE",var_02,1,1);
common_scripts\utility::flag_clear("game_saving");
}
//Function Number: 37
add_extra_autosave_check(param_00,param_01,param_02)
{
level._extra_autosave_checks[param_00] = [];
level._extra_autosave_checks[param_00]["func"] = param_01;
level._extra_autosave_checks[param_00]["msg"] = param_02;
}
//Function Number: 38
remove_extra_autosave_check(param_00)
{
level._extra_autosave_checks[param_00] = undefined;
}
//Function Number: 39
autosave_stealth()
{
thread autosave_by_name_thread("autosave_stealth",8,1);
}
//Function Number: 40
autosave_stealth_silent()
{
thread autosave_by_name_thread("autosave_stealth",8,1,1);
}
//Function Number: 41
autosave_tactical()
{
maps\_utility_code::autosave_tactical_setup();
thread maps\_utility_code::autosave_tactical_proc();
}
//Function Number: 42
autosave_by_name(param_00)
{
thread autosave_by_name_thread(param_00);
}
//Function Number: 43
autosave_by_name_silent(param_00)
{
thread autosave_by_name_thread(param_00,undefined,undefined,1);
}
//Function Number: 44
autosave_by_name_thread(param_00,param_01,param_02,param_03)
{
if(!isdefined(level.curautosave))
{
level.curautosave = 1;
}
var_04 = "levelshots/autosave/autosave_" + level.script + level.curautosave;
var_05 = level maps\_autosave::tryautosave(level.curautosave,"autosave",var_04,param_01,param_02,param_03);
if(isdefined(var_05) && var_05)
{
level.curautosave++;
}
}
//Function Number: 45
autosave_or_timeout(param_00,param_01)
{
thread autosave_by_name_thread(param_00,param_01);
}
//Function Number: 46
debug_message(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 5;
}
if(isdefined(param_03))
{
param_03 endon("death");
param_01 = param_03.origin;
}
for(var_04 = 0;var_04 < param_02 * 20;var_04++)
{
if(!isdefined(param_03))
{
}
else
{
}
wait(0.05);
}
}
//Function Number: 47
debug_message_ai(param_00,param_01)
{
self notify("debug_message_ai");
self endon("debug_message_ai");
self endon("death");
if(!isdefined(param_01))
{
param_01 = 5;
}
for(var_02 = 0;var_02 < param_01 * 20;var_02++)
{
wait(0.05);
}
}
//Function Number: 48
debug_message_clear(param_00,param_01,param_02,param_03)
{
if(isdefined(param_03))
{
level notify(param_00 + param_03);
level endon(param_00 + param_03);
}
else
{
level notify(param_00);
level endon(param_00);
}
if(!isdefined(param_02))
{
param_02 = 5;
}
for(var_04 = 0;var_04 < param_02 * 20;var_04++)
{
wait(0.05);
}
}
//Function Number: 49
precache(param_00)
{
var_01 = spawn("script_model",(0,0,0));
var_01.origin = level.player getorigin();
var_01 setmodel(param_00);
var_01 delete();
}
//Function Number: 50
closerfunc(param_00,param_01)
{
return param_00 >= param_01;
}
//Function Number: 51
fartherfunc(param_00,param_01)
{
return param_00 <= param_01;
}
//Function Number: 52
getclosestfx(param_00,param_01,param_02)
{
return maps\_utility_code::comparesizesfx(param_00,param_01,param_02,::closerfunc);
}
//Function Number: 53
get_closest_point(param_00,param_01,param_02)
{
var_03 = param_01[0];
var_04 = distance(param_00,var_03);
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
var_06 = distance(param_00,param_01[var_05]);
if(var_06 >= var_04)
{
continue;
}
var_04 = var_06;
var_03 = param_01[var_05];
}
if(!isdefined(param_02) || var_04 <= param_02)
{
return var_03;
}
return undefined;
}
//Function Number: 54
get_farthest_ent(param_00,param_01)
{
if(param_01.size < 1)
{
return;
}
var_02 = distance(param_01[0] getorigin(),param_00);
var_03 = param_01[0];
for(var_04 = 0;var_04 < param_01.size;var_04++)
{
var_05 = distance(param_01[var_04] getorigin(),param_00);
if(var_05 < var_02)
{
continue;
}
var_02 = var_05;
var_03 = param_01[var_04];
}
return var_03;
}
//Function Number: 55
get_within_range(param_00,param_01,param_02)
{
var_03 = [];
for(var_04 = 0;var_04 < param_01.size;var_04++)
{
if(distance(param_01[var_04].origin,param_00) <= param_02)
{
var_03[var_03.size] = param_01[var_04];
}
}
return var_03;
}
//Function Number: 56
get_outside_range(param_00,param_01,param_02)
{
var_03 = [];
for(var_04 = 0;var_04 < param_01.size;var_04++)
{
if(distance(param_01[var_04].origin,param_00) > param_02)
{
var_03[var_03.size] = param_01[var_04];
}
}
return var_03;
}
//Function Number: 57
get_closest_living(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 9999999;
}
if(param_01.size < 1)
{
return;
}
var_03 = undefined;
for(var_04 = 0;var_04 < param_01.size;var_04++)
{
if(!isalive(param_01[var_04]))
{
continue;
}
var_05 = distance(param_01[var_04].origin,param_00);
if(var_05 >= param_02)
{
continue;
}
param_02 = var_05;
var_03 = param_01[var_04];
}
return var_03;
}
//Function Number: 58
get_highest_dot(param_00,param_01,param_02)
{
if(!param_02.size)
{
return;
}
var_03 = undefined;
var_04 = vectortoangles(param_01 - param_00);
var_05 = anglestoforward(var_04);
var_06 = -1;
foreach(var_08 in param_02)
{
var_04 = vectortoangles(var_08.origin - param_00);
var_09 = anglestoforward(var_04);
var_0A = vectordot(var_05,var_09);
if(var_0A < var_06)
{
continue;
}
var_06 = var_0A;
var_03 = var_08;
}
return var_03;
}
//Function Number: 59
get_closest_index(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 9999999;
}
if(param_01.size < 1)
{
return;
}
var_03 = undefined;
foreach(var_07, 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_07;
}
return var_03;
}
//Function Number: 60
get_closest_exclude(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
return undefined;
}
var_03 = 0;
if(isdefined(param_02) && param_02.size)
{
var_04 = [];
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
var_04[var_05] = 0;
}
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
for(var_06 = 0;var_06 < param_02.size;var_06++)
{
if(param_01[var_05] == param_02[var_06])
{
var_04[var_05] = 1;
}
}
}
var_07 = 0;
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
if(!var_04[var_05] && isdefined(param_01[var_05]))
{
var_07 = 1;
var_03 = distance(param_00,param_01[var_05].origin);
var_08 = var_05;
var_05 = param_01.size + 1;
}
}
if(!var_07)
{
return undefined;
}
}
else
{
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
if(isdefined(param_01[var_05]))
{
var_03 = distance(param_00,param_01[0].origin);
var_08 = var_05;
var_05 = param_01.size + 1;
}
}
}
var_08 = undefined;
for(var_05 = 0;var_05 < param_01.size;var_05++)
{
if(isdefined(param_01[var_05]))
{
var_04 = 0;
if(isdefined(param_02))
{
for(var_06 = 0;var_06 < param_02.size;var_06++)
{
if(param_01[var_05] == param_02[var_06])
{
var_04 = 1;
}
}
}
if(!var_04)
{
var_09 = distance(param_00,param_01[var_05].origin);
if(var_09 <= var_03)
{
var_03 = var_09;
var_08 = var_05;
}
}
}
}
if(isdefined(var_08))
{
return param_01[var_08];
}
return undefined;
}
//Function Number: 61
get_closest_player(param_00)
{
if(level.players.size == 1)
{
return level.player;
}
var_01 = common_scripts\utility::getclosest(param_00,level.players);
return var_01;
}
//Function Number: 62
get_closest_player_healthy(param_00)
{
if(level.players.size == 1)
{
return level.player;
}
var_01 = get_players_healthy();
var_02 = common_scripts\utility::getclosest(param_00,var_01);
return var_02;
}
//Function Number: 63
get_players_healthy()
{
var_00 = [];
foreach(var_02 in level.players)
{
if(is_player_down(var_02))
{
continue;
}
var_00[var_00.size] = var_02;
}
return var_00;
}
//Function Number: 64
get_closest_ai(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
var_03 = getaiarray(param_01);
}
else
{
var_03 = getaiarray();
}
if(var_03.size == 0)
{
return undefined;
}
if(isdefined(param_02))
{
var_03 = common_scripts\utility::array_remove_array(var_03,param_02);
}
return common_scripts\utility::getclosest(param_00,var_03);
}
//Function Number: 65
get_closest_ai_exclude(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
var_03 = getaiarray(param_01);
}
else
{
var_03 = getaiarray();
}
if(var_03.size == 0)
{
return undefined;
}
return get_closest_exclude(param_00,var_03,param_02);
}
//Function Number: 66
get_progress(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = distance(param_00,param_01);
}
param_03 = max(0.01,param_03);
var_04 = vectornormalize(param_01 - param_00);
var_05 = param_02 - param_00;
var_06 = vectordot(var_05,var_04);
var_06 = var_06 / param_03;
var_06 = clamp(var_06,0,1);
return var_06;
}
//Function Number: 67
can_see_origin(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!point_in_fov(param_00))
{
return 0;
}
if(!sighttracepassed(self geteye(),param_00,param_01,self))
{
return 0;
}
return 1;
}
//Function Number: 68
point_in_fov(param_00)
{
var_01 = anglestoforward(self.angles);
var_02 = vectornormalize(param_00 - self.origin);
var_03 = vectordot(var_01,var_02);
return var_03 > 0.766;
}
//Function Number: 69
stop_magic_bullet_shield()
{
self notify("stop_magic_bullet_shield");
if(isai(self))
{
self.attackeraccuracy = 1;
}
self.magic_bullet_shield = undefined;
self.damageshield = 0;
self notify("internal_stop_magic_bullet_shield");
}
//Function Number: 70
magic_bullet_death_detection()
{
}
//Function Number: 71
magic_bullet_shield(param_00)
{
if(isai(self))
{
}
else
{
self.health = 100000;
}
self endon("internal_stop_magic_bullet_shield");
if(isai(self))
{
self.attackeraccuracy = 0.1;
}
self notify("magic_bullet_shield");
self.magic_bullet_shield = 1;
self.damageshield = 1;
self.noragdoll = 1;
}
//Function Number: 72
disable_long_death()
{
self.a.disablelongdeath = 1;
}
//Function Number: 73
enable_long_death()
{
self.a.disablelongdeath = 0;
}
//Function Number: 74
enable_blood_pool()
{
self.skipbloodpool = undefined;
}
//Function Number: 75
disable_blood_pool()
{
self.skipbloodpool = 1;
}
//Function Number: 76
deletable_magic_bullet_shield()
{
magic_bullet_shield(1);
}
//Function Number: 77
get_ignoreme()
{
return self.ignoreme;
}
//Function Number: 78
set_ignoreme(param_00)
{
self.ignoreme = param_00;
}
//Function Number: 79
set_ignoreall(param_00)
{
self.ignoreall = param_00;
}
//Function Number: 80
set_ignoresonicaoe(param_00)
{
self.ignoresonicaoe = param_00;
}
//Function Number: 81
set_favoriteenemy(param_00)
{
self.favoriteenemy = param_00;
}
//Function Number: 82
get_pacifist()
{
return self.pacifist;
}
//Function Number: 83
set_pacifist(param_00)
{
self.pacifist = param_00;
}
//Function Number: 84
ignore_me_timer(param_00)
{
self notify("new_ignore_me_timer");
self endon("new_ignore_me_timer");
self endon("death");
if(!isdefined(self.ignore_me_timer_prev_value))
{
self.ignore_me_timer_prev_value = self.ignoreme;
}
var_01 = getaiarray("bad_guys");
foreach(var_03 in var_01)
{
if(!isalive(var_03.enemy))
{
continue;
}
if(var_03.enemy != self)
{
continue;
}
var_03 clearenemy();
}
self.ignoreme = 1;
wait(param_00);
self.ignoreme = self.ignore_me_timer_prev_value;
self.ignore_me_timer_prev_value = undefined;
}
//Function Number: 85
delete_exploder(param_00)
{
common_scripts\_exploder::delete_exploder_proc(param_00);
}
//Function Number: 86
hide_exploder_models(param_00)
{
common_scripts\_exploder::hide_exploder_models_proc(param_00);
}
//Function Number: 87
show_exploder_models(param_00)
{
common_scripts\_exploder::show_exploder_models_proc(param_00);
}
//Function Number: 88
stop_exploder(param_00)
{
common_scripts\_exploder::stop_exploder_proc(param_00);
}
//Function Number: 89
get_exploder_array(param_00)
{
return common_scripts\_exploder::get_exploder_array_proc(param_00);
}
//Function Number: 90
flood_spawn(param_00)
{
maps\_spawner::flood_spawner_scripted(param_00);
}
//Function Number: 91
set_ambient(param_00,param_01)
{
soundscripts\_audio_zone_manager::azm_start_zone(param_00,param_01);
}
//Function Number: 92
force_crawling_death(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_01))
{
param_01 = 4;
}
thread force_crawling_death_proc(param_00,param_01,param_02,param_03);
}
//Function Number: 93
override_crawl_death_anims()
{
if(isdefined(self.a.custom_crawling_death_array))
{
self.a.array["crawl"] = self.a.custom_crawling_death_array["crawl"];
self.a.array["death"] = self.a.custom_crawling_death_array["death"];
self.a.crawl_fx_rate = self.a.custom_crawling_death_array["blood_fx_rate"];
if(isdefined(self.a.custom_crawling_death_array["blood_fx"]))
{
self.a.crawl_fx = self.a.custom_crawling_death_array["blood_fx"];
}
}
self.a.array["stand_2_crawl"] = [];
self.a.array["stand_2_crawl"][0] = %dying_stand_2_crawl_v3;
if(isdefined(self.nofallanim))
{
self.a.pose = "prone";
}
self orientmode("face angle",self.a.force_crawl_angle);
self.a.force_crawl_angle = undefined;
}
//Function Number: 94
force_crawling_death_proc(param_00,param_01,param_02,param_03)
{
self.forcelongdeath = 1;
self.a.force_num_crawls = param_01;
self.noragdoll = 1;
self.nofallanim = param_03;
self.a.custom_crawling_death_array = param_02;
self.crawlingpainanimoverridefunc = ::override_crawl_death_anims;
self.maxhealth = 100000;
self.health = 100000;
enable_long_death();
if(!isdefined(param_03) || param_03 == 0)
{
self.a.force_crawl_angle = param_00 + 181.02;
return;
}
self.a.force_crawl_angle = param_00;
thread animscripts\notetracks::notetrackposecrawl();
}
//Function Number: 95
never_saw_it_coming()
{
self endon("death");
for(;;)
{
var_00 = self ishighjumping();
if(var_00)
{
var_01 = common_scripts\utility::waittill_any_return("exo_dodge","player_boost_land","disable_high_jump");
if(!isdefined(var_01) || var_01 == "player_boost_land" || var_01 == "disable_high_jump")
{
continue;
}
if(!isdefined(self.never_saw_it_coming))
{
self.never_saw_it_coming = 1;
}
common_scripts\utility::waittill_any("player_boost_land","disable_high_jump");
wait 0.05;
self.never_saw_it_coming = undefined;
}
wait 0.05;
}
}
//Function Number: 96
check_man_overboard()
{
if(getdvar("mapname","undefined") != "sanfran_b")
{
return;
}
if(!isdefined(level.player.man_overboard) || !level.player.man_overboard)
{
level.player.man_overboard = 1;
}
wait(2);
level.player.man_overboard = undefined;
}
//Function Number: 97
monitor_genius_achievement(param_00,param_01,param_02)
{
if(param_01 != "MOD_GRENADE")
{
param_00.genius_achievement = undefined;
return;
}
if(!isdefined(param_00.genius_achievement))
{
param_00.genius_achievement = 1;
}
else
{
param_00.genius_achievement++;
}
if(param_00.genius_achievement == 4)
{
giveachievement_wrapper("SMART_GRENADE_KILL");
}
wait(0.1);
param_00.genius_achievement = undefined;
}
//Function Number: 98
start_monitor_escape_artist()
{
add_global_spawn_function("axis",::monitor_escape_artist);
common_scripts\utility::array_thread(getaiarray("axis"),::monitor_escape_artist);
level.grenade_id = 0;
level.player.escape_artist = [];
}
//Function Number: 99
monitor_escape_artist()
{
for(;;)
{
var_00 = undefined;
self waittill("grenade_fire",var_00,var_01);
var_00.unique_id = level.grenade_id;
level.grenade_id++;
var_00.owner = self.unique_id;
var_00 thread escape_artist_distance();
var_00 thread escape_artist();
}
}
//Function Number: 100
escape_artist_distance()
{
var_00 = level.player;
var_01 = self.unique_id;
while(isdefined(self))
{
var_02 = var_00.origin - self.origin;
var_03 = getweaponexplosionradius("fraggrenade") + 23;
var_04 = squared(var_03);
var_05 = lengthsquared(var_02);
if(var_05 > var_04)
{
if(isdefined(var_00.escape_artist[self.unique_id]))
{
var_00.escape_artist[self.unique_id] = undefined;
}
continue;
}
if(!isdefined(var_00.escape_artist[self.unique_id]))
{
if(isdefined(self.owner))
{
var_00.escape_artist[self.unique_id] = 1;
}
}
wait 0.05;
}
if(isdefined(var_00.escape_artist[var_01]))
{
var_00.escape_artist[var_01] = undefined;
}
}
//Function Number: 101
escape_artist()
{
var_00 = level.player;
while(isdefined(self))
{
if(isdefined(var_00.escape_artist[self.unique_id]))
{
var_01 = level.player common_scripts\utility::waittill_any_timeout(4,"exo_dodge");
if(isdefined(var_01) && var_01 == "exo_dodge")
{
thread check_grenade_dmg();
}
continue;
}
wait 0.05;
}
}
//Function Number: 102
check_grenade_dmg()
{
level.player endon("death");
while(isdefined(self))
{
var_00 = level.player waittill_dmg_timeout(1,"damage");
if(isdefined(var_00) && isarray(var_00))
{
if(var_00[5] == "MOD_GRENADE_SPLASH" && !isdefined(level.player.escape_artist_failure))
{
if(var_00[2].unique_id == self.owner && isdefined(level.player.escape_artist[self.unique_id]))
{
level.player.escape_artist_failure = 1;
}
}
continue;
}
wait 0.05;
}
if(!isdefined(level.player.escape_artist_failure))
{
level.player escape_artist_success();
return;
}
level.player.escape_artist_failure = undefined;
}
//Function Number: 103
escape_artist_success()
{
var_00 = self getlocalplayerprofiledata("ach_escapeArtist") + 1;
if(var_00 == 20)
{
giveachievement_wrapper("GRENADE_DODGE");
}
self setlocalplayerprofiledata("ach_escapeArtist",var_00);
}
//Function Number: 104
waittill_dmg_timeout(param_00,param_01)
{
if(!isdefined(param_01) || param_01 != "death")
{
self endon("death");
}
var_02 = spawnstruct();
if(isdefined(param_01))
{
childthread common_scripts\utility::waittill_string_parms(param_01,var_02);
}
var_02 childthread common_scripts\utility::_timeout(param_00);
var_02 waittill("returned",var_03);
var_02 notify("die");
return var_03;
}
//Function Number: 105
shock_ondeath()
{
precacheshellshock("default");
self waittill("death");
if(isdefined(self.specialdeath))
{
return;
}
if(getdvar("r_texturebits") == "16")
{
return;
}
self shellshock("default",3);
}
//Function Number: 106
playerwatch_unresolved_collision()
{
self endon("death");
self endon("stop_unresolved_collision_script");
reset_unresolved_collision_handler();
childthread playerwatch_unresolved_collision_count();
for(;;)
{
if(self.unresolved_collision)
{
self.unresolved_collision = 0;
if(self.unresolved_collision_count >= 20)
{
if(isdefined(self.handle_unresolved_collision))
{
self [[ self.handle_unresolved_collision ]]();
}
else
{
default_unresolved_collision_handler();
}
}
}
else
{
reset_unresolved_collision_handler();
}
wait(0.05);
}
}
//Function Number: 107
playerwatch_unresolved_collision_count()
{
for(;;)
{
self waittill("unresolved_collision");
self.unresolved_collision = 1;
self.unresolved_collision_count++;
}
}
//Function Number: 108
reset_unresolved_collision_handler()
{
self.unresolved_collision = 0;
self.unresolved_collision_count = 0;
}
//Function Number: 109
default_unresolved_collision_handler()
{
var_00 = getnodesinradiussorted(self.origin,300,0,200,"Path");
if(var_00.size)
{
self cancelmantle();
self dontinterpolate();
self setorigin(var_00[0].origin);
reset_unresolved_collision_handler();
return;
}
self kill();
}
//Function Number: 110
stop_playerwatch_unresolved_collision()
{
self notify("stop_unresolved_collision_script");
reset_unresolved_collision_handler();
}
//Function Number: 111
delete_on_death_wait_sound(param_00,param_01)
{
param_00 endon("death");
self waittill("death");
if(isdefined(param_00))
{
if(param_00 iswaitingonsound())
{
param_00 waittill(param_01);
}
param_00 delete();
}
}
//Function Number: 112
is_dead_sentient()
{
return issentient(self) && !isalive(self);
}
//Function Number: 113
play_sound_on_tag(param_00,param_01,param_02,param_03,param_04)
{
if(is_dead_sentient())
{
return;
}
if(!soundexists(param_00))
{
return;
}
var_05 = spawn("script_origin",(0,0,0));
var_05 endon("death");
thread delete_on_death_wait_sound(var_05,"sounddone");
if(isdefined(param_01))
{
var_05 linkto(self,param_01,(0,0,0),(0,0,0));
}
else
{
var_05.origin = self.origin;
var_05.angles = self.angles;
var_05 linkto(self);
}
var_05 playsound(param_00,"sounddone");
if(isdefined(param_02))
{
if(!isdefined(maps\_utility_code::wait_for_sounddone_or_death(var_05)))
{
var_05 stopsounds();
}
wait(0.05);
}
else
{
var_05 waittill("sounddone");
}
if(isdefined(param_03))
{
self notify(param_03);
}
var_05 delete();
}
//Function Number: 114
play_sound_on_tag_endon_death(param_00,param_01)
{
play_sound_on_tag(param_00,param_01,1);
}
//Function Number: 115
play_sound_on_entity(param_00,param_01)
{
play_sound_on_tag(param_00,undefined,undefined,param_01);
}
//Function Number: 116
play_loop_sound_on_tag(param_00,param_01,param_02,param_03)
{
var_04 = spawn("script_origin",(0,0,0));
var_04 endon("death");
if(!isdefined(param_02))
{
param_02 = 1;
}
if(param_02)
{
thread common_scripts\utility::delete_on_death(var_04);
}
if(!isdefined(param_03))
{
param_03 = 0;
}
if(param_03)
{
thread delete_on_removed(var_04);
}
if(isdefined(param_01))
{
var_04 linkto(self,param_01,(0,0,0),(0,0,0));
}
else
{
var_04.origin = self.origin;
var_04.angles = self.angles;
var_04 linkto(self);
}
var_04 playloopsound(param_00);
self waittill("stop sound" + param_00);
var_04 stoploopsound(param_00);
var_04 delete();
}
//Function Number: 117
delete_on_removed(param_00)
{
param_00 endon("death");
while(isdefined(self))
{
wait(0.05);
}
if(isdefined(param_00))
{
param_00 delete();
}
}
//Function Number: 118
save_friendlies()
{
var_00 = getaiarray("allies");
var_01 = 0;
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
if(isdefined(var_00[var_02].script_friendname))
{
continue;
}
game["character" + var_01] = var_00[var_02] codescripts\character::save();
var_01++;
}
game["total characters"] = var_01;
}
//Function Number: 119
spawn_failed(param_00)
{
if(!isalive(param_00))
{
return 1;
}
if(!isdefined(param_00.finished_spawning))
{
param_00 common_scripts\utility::waittill_either("finished spawning","death");
}
if(isalive(param_00))
{
return 0;
}
return 1;
}
//Function Number: 120
spawn_setcharacter(param_00)
{
codescripts\character::precache(param_00);
self waittill("spawned",var_01);
if(spawn_failed(var_01))
{
return;
}
var_01 codescripts\character::new();
var_01 codescripts\character::load(param_00);
}
//Function Number: 121
key_hint_print(param_00,param_01)
{
iprintlnbold(param_00,param_01["key1"]);
}
//Function Number: 122
view_tag(param_00)
{
self endon("death");
for(;;)
{
maps\_debug::drawtag(param_00);
wait(0.05);
}
}
//Function Number: 123
assign_animtree(param_00)
{
if(isdefined(param_00))
{
self.animname = param_00;
}
self useanimtree(level.scr_animtree[self.animname]);
}
//Function Number: 124
assign_model()
{
if(isarray(level.scr_model[self.animname]))
{
var_00 = randomint(level.scr_model[self.animname].size);
self setmodel(level.scr_model[self.animname][var_00]);
return;
}
self setmodel(level.scr_model[self.animname]);
}
//Function Number: 125
spawn_anim_model(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = (0,0,0);
}
var_03 = spawn("script_model",param_01);
var_03.animname = param_00;
var_03 assign_animtree();
var_03 assign_model();
if(isdefined(param_02))
{
var_03.angles = param_02;
}
return var_03;
}
//Function Number: 126
trigger_wait(param_00,param_01)
{
var_02 = getent(param_00,param_01);
if(!isdefined(var_02))
{
return;
}
var_02 waittill("trigger",var_03);
level notify(param_00,var_03);
return var_03;
}
//Function Number: 127
trigger_wait_targetname(param_00)
{
return trigger_wait(param_00,"targetname");
}
//Function Number: 128
set_flag_on_dead(param_00,param_01)
{
thread set_flag_on_func_wait_proc(param_00,param_01,::waittill_dead,"set_flag_on_dead");
}
//Function Number: 129
set_flag_on_dead_or_dying(param_00,param_01)
{
thread set_flag_on_func_wait_proc(param_00,param_01,::waittill_dead_or_dying,"set_flag_on_dead_or_dying");
}
//Function Number: 130
set_flag_on_spawned(param_00,param_01)
{
thread set_flag_on_func_wait_proc(param_00,param_01,::empty_func,"set_flag_on_spawned");
}
//Function Number: 131
empty_func(param_00)
{
}
//Function Number: 132
set_flag_on_spawned_ai_proc(param_00,param_01)
{
self waittill("spawned",var_02);
if(spawn_failed(var_02))
{
return;
}
param_00.ai[param_00.ai.size] = var_02;
ent_flag_set(param_01);
}
//Function Number: 133
set_flag_on_func_wait_proc(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.ai = [];
foreach(var_06 in param_00)
{
var_06 ent_flag_init(param_03);
}
common_scripts\utility::array_thread(param_00,::set_flag_on_spawned_ai_proc,var_04,param_03);
foreach(var_06 in param_00)
{
var_06 ent_flag_wait(param_03);
}
[[ param_02 ]](var_04.ai);
common_scripts\utility::flag_set(param_01);
}
//Function Number: 134
set_flag_on_trigger(param_00,param_01)
{
if(!common_scripts\utility::flag(param_01))
{
param_00 waittill("trigger",var_02);
common_scripts\utility::flag_set(param_01);
return var_02;
}
}
//Function Number: 135
set_flag_on_targetname_trigger(param_00)
{
if(common_scripts\utility::flag(param_00))
{
return;
}
var_01 = getent(param_00,"targetname");
var_01 waittill("trigger");
common_scripts\utility::flag_set(param_00);
}
//Function Number: 136
is_in_array(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(param_00[var_02] == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 137
waittill_dead(param_00,param_01,param_02)
{
var_0A = spawnstruct();
if(isdefined(param_02))
{
var_0A endon("thread_timed_out");
var_0A thread waittill_dead_timeout(param_02);
}
var_0A.count = param_00.size;
if(isdefined(param_01) && param_01 < var_0A.count)
{
var_0A.count = param_01;
}
common_scripts\utility::array_thread(param_00,::waittill_dead_thread,var_0A);
while(var_0A.count > 0)
{
var_0A waittill("waittill_dead guy died");
}
}
//Function Number: 138
waittill_dead_or_dying(param_00,param_01,param_02)
{
var_03 = [];
foreach(var_05 in param_00)
{
if(isalive(var_05) && !var_05.ignoreforfixednodesafecheck)
{
var_03[var_03.size] = var_05;
}
}
param_00 = var_03;
var_07 = spawnstruct();
if(isdefined(param_02))
{
var_07 endon("thread_timed_out");
var_07 thread waittill_dead_timeout(param_02);
}
var_07.count = param_00.size;
if(isdefined(param_01) && param_01 < var_07.count)
{
var_07.count = param_01;
}
common_scripts\utility::array_thread(param_00,::waittill_dead_or_dying_thread,var_07);
while(var_07.count > 0)
{
var_07 waittill("waittill_dead_guy_dead_or_dying");
}
}
//Function Number: 139
waittill_dead_thread(param_00)
{
self waittill("death");
param_00.count--;
param_00 notify("waittill_dead guy died");
}
//Function Number: 140
waittill_dead_or_dying_thread(param_00)
{
common_scripts\utility::waittill_either("death","pain_death");
param_00.count--;
param_00 notify("waittill_dead_guy_dead_or_dying");
}
//Function Number: 141
waittill_dead_timeout(param_00)
{
wait(param_00);
self notify("thread_timed_out");
}
//Function Number: 142
waittill_aigroupcleared(param_00)
{
while(level._ai_group[param_00].spawnercount || level._ai_group[param_00].aicount)
{
wait(0.25);
}
}
//Function Number: 143
waittill_aigroupcount(param_00,param_01)
{
while(level._ai_group[param_00].spawnercount + level._ai_group[param_00].aicount > param_01)
{
wait(0.25);
}
}
//Function Number: 144
get_ai_group_count(param_00)
{
return level._ai_group[param_00].spawnercount + level._ai_group[param_00].aicount;
}
//Function Number: 145
get_ai_group_sentient_count(param_00)
{
return level._ai_group[param_00].aicount;
}
//Function Number: 146
get_ai_group_ai(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < level._ai_group[param_00].ai.size;var_02++)
{
if(!isalive(level._ai_group[param_00].ai[var_02]))
{
continue;
}
var_01[var_01.size] = level._ai_group[param_00].ai[var_02];
}
return var_01;
}
//Function Number: 147
waittill_notetrack_or_damage(param_00)
{
self endon("damage");
self endon("death");
self waittillmatch(param_00,"single anim");
}
//Function Number: 148
get_living_ai(param_00,param_01)
{
var_02 = get_living_ai_array(param_00,param_01);
if(var_02.size > 1)
{
return undefined;
}
return var_02[0];
}
//Function Number: 149
get_living_ai_array(param_00,param_01)
{
var_02 = getaispeciesarray("all","all");
var_03 = [];
var_04 = var_02;
var_06 = getfirstarraykey(var_04);
if(isdefined(var_06))
{
var_05 = var_04[var_06];
if(!isalive(var_05))
{
continue;
}
switch(param_01)
{
case "targetname":
break;
case "script_noteworthy":
break;
}
}
}
//Function Number: 150
get_vehicle(param_00,param_01)
{
var_02 = get_vehicle_array(param_00,param_01);
if(!var_02.size)
{
return undefined;
}
return var_02[0];
}
//Function Number: 151
get_vehicle_array(param_00,param_01)
{
var_02 = getentarray(param_00,param_01);
var_03 = [];
var_04 = [];
foreach(var_06 in var_02)
{
if(var_06.code_classname != "script_vehicle")
{
continue;
}
var_04[0] = var_06;
if(isspawner(var_06))
{
if(isdefined(var_06.last_spawned_vehicle))
{
var_04[0] = var_06.last_spawned_vehicle;
var_03 = array_merge(var_03,var_04);
}
continue;
}
var_03 = array_merge(var_03,var_04);
}
return var_03;
}
//Function Number: 152
get_living_aispecies(param_00,param_01,param_02)
{
var_03 = get_living_aispecies_array(param_00,param_01,param_02);
if(var_03.size > 1)
{
return undefined;
}
return var_03[0];
}
//Function Number: 153
get_living_aispecies_array(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = "all";
}
var_03 = getaispeciesarray("allies",param_02);
var_03 = common_scripts\utility::array_combine(var_03,getaispeciesarray("axis",param_02));
var_04 = [];
var_05 = 0;
if(var_05 < var_03.size)
{
switch(param_01)
{
case "targetname":
break;
case "script_noteworthy":
break;
}
}
}
//Function Number: 154
gather_delay_proc(param_00,param_01)
{
if(isdefined(level.gather_delay[param_00]))
{
if(level.gather_delay[param_00])
{
wait(0.05);
if(isalive(self))
{
self notify("gather_delay_finished" + param_00 + param_01);
}
return;
}
level waittill(param_00);
if(isalive(self))
{
self notify("gather_delay_finished" + param_00 + param_01);
}
return;
}
level.gather_delay[param_00] = 0;
wait(param_01);
level.gather_delay[param_00] = 1;
level notify(param_00);
if(isalive(self))
{
self notify("gat her_delay_finished" + param_00 + param_01);
}
}
//Function Number: 155
gather_delay(param_00,param_01)
{
thread gather_delay_proc(param_00,param_01);
self waittill("gather_delay_finished" + param_00 + param_01);
}
//Function Number: 156
death_waiter(param_00)
{
self waittill("death");
level notify(param_00);
}
//Function Number: 157
getchar(param_00)
{
if(param_00 == 0)
{
return "0";
}
if(param_00 == 1)
{
return "1";
}
if(param_00 == 2)
{
return "2";
}
if(param_00 == 3)
{
return "3";
}
if(param_00 == 4)
{
return "4";
}
if(param_00 == 5)
{
return "5";
}
if(param_00 == 6)
{
return "6";
}
if(param_00 == 7)
{
return "7";
}
if(param_00 == 8)
{
return "8";
}
if(param_00 == 9)
{
return "9";
}
}
//Function Number: 158
getlinks_array(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = param_00[var_03];
var_05 = var_04.script_linkname;
if(!isdefined(var_05))
{
continue;
}
if(!isdefined(param_01[var_05]))
{
continue;
}
var_02[var_02.size] = var_04;
}
return var_02;
}
//Function Number: 159
array_merge_links(param_00,param_01)
{
if(!param_00.size)
{
return param_01;
}
if(!param_01.size)
{
return param_00;
}
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = param_00[var_03];
var_02[var_04.script_linkname] = 1;
}
for(var_03 = 0;var_03 < param_01.size;var_03++)
{
var_04 = param_01[var_03];
if(isdefined(var_02[var_04.script_linkname]))
{
continue;
}
var_02[var_04.script_linkname] = 1;
param_00[param_00.size] = var_04;
}
return param_00;
}
//Function Number: 160
array_merge(param_00,param_01)
{
if(param_00.size == 0)
{
return param_01;
}
if(param_01.size == 0)
{
return param_00;
}
var_02 = param_00;
foreach(var_04 in param_01)
{
var_05 = 0;
foreach(var_07 in param_00)
{
if(var_07 == var_04)
{
var_05 = 1;
break;
}
}
if(var_05)
{
continue;
}
else
{
var_02[var_02.size] = var_04;
}
}
return var_02;
}
//Function Number: 161
array_exclude(param_00,param_01)
{
var_02 = param_00;
for(var_03 = 0;var_03 < param_01.size;var_03++)
{
if(is_in_array(param_00,param_01[var_03]))
{
var_02 = common_scripts\utility::array_remove(var_02,param_01[var_03]);
}
}
return var_02;
}
//Function Number: 162
array_compare(param_00,param_01)
{
if(param_00.size != param_01.size)
{
return 0;
}
foreach(var_05, var_03 in param_00)
{
if(!isdefined(param_01[var_05]))
{
return 0;
}
var_04 = param_01[var_05];
if(var_04 != var_03)
{
return 0;
}
}
return 1;
}
//Function Number: 163
getlinkedvehiclenodes()
{
var_00 = [];
if(isdefined(self.script_linkto))
{
var_01 = common_scripts\utility::get_links();
foreach(var_03 in var_01)
{
var_04 = getvehiclenodearray(var_03,"script_linkname");
var_00 = common_scripts\utility::array_combine(var_00,var_04);
}
}
return var_00;
}
//Function Number: 164
draw_line(param_00,param_01,param_02,param_03,param_04)
{
wait(0.05);
}
//Function Number: 165
draw_line_to_ent_for_time(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);
if(!isdefined(param_01) || !isdefined(param_01.origin))
{
return;
}
}
}
//Function Number: 166
draw_line_from_ent_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
{
draw_line_to_ent_for_time(param_01,param_00,param_02,param_03,param_04,param_05);
}
//Function Number: 167
draw_line_from_ent_to_ent_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
{
param_00 endon("death");
param_01 endon("death");
param_05 = gettime() + param_05 * 1000;
while(gettime() < param_05)
{
wait(0.05);
}
}
//Function Number: 168
draw_line_from_ent_to_ent_until_notify(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
param_00 endon("death");
param_01 endon("death");
param_05 endon(param_06);
wait(0.05);
}
//Function Number: 169
draw_line_until_notify(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
param_05 endon(param_06);
common_scripts\utility::draw_line_for_time(param_00,param_01,param_02,param_03,param_04,0.05);
}
//Function Number: 170
draw_line_from_ent_to_vec_for_time(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
param_06 = gettime() + param_06 * 1000;
param_01 = param_01 * param_02;
while(gettime() < param_06)
{
wait(0.05);
if(!isdefined(param_00) || !isdefined(param_00.origin))
{
return;
}
}
}
//Function Number: 171
draw_circle_until_notify(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
if(isdefined(param_07))
{
var_08 = param_07;
}
else
{
var_08 = 16;
}
var_09 = 360 / var_08;
var_0A = [];
for(var_0B = 0;var_0B < var_08;var_0B++)
{
var_0C = var_09 * var_0B;
var_0D = cos(var_0C) * param_01;
var_0E = sin(var_0C) * param_01;
var_0F = param_00[0] + var_0D;
var_10 = param_00[1] + var_0E;
var_11 = param_00[2];
var_0A[var_0A.size] = (var_0F,var_10,var_11);
}
thread draw_circle_lines_until_notify(var_0A,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 172
draw_circle_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = 16;
var_07 = 360 / var_06;
var_08 = [];
for(var_09 = 0;var_09 < var_06;var_09++)
{
var_0A = var_07 * var_09;
var_0B = cos(var_0A) * param_01;
var_0C = sin(var_0A) * param_01;
var_0D = param_00[0] + var_0B;
var_0E = param_00[1] + var_0C;
var_0F = param_00[2];
var_08[var_08.size] = (var_0D,var_0E,var_0F);
}
thread draw_circle_lines_for_time(var_08,param_02,param_03,param_04,param_05);
}
//Function Number: 173
draw_circle_lines_for_time(param_00,param_01,param_02,param_03,param_04)
{
for(var_05 = 0;var_05 < param_00.size;var_05++)
{
var_06 = param_00[var_05];
if(var_05 + 1 >= param_00.size)
{
var_07 = param_00[0];
}
else
{
var_07 = param_00[var_05 + 1];
}
thread common_scripts\utility::draw_line_for_time(var_06,var_07,param_01,param_02,param_03,param_04);
}
}
//Function Number: 174
draw_circle_lines_until_notify(param_00,param_01,param_02,param_03,param_04,param_05)
{
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = param_00[var_06];
if(var_06 + 1 >= param_00.size)
{
var_08 = param_00[0];
}
else
{
var_08 = param_00[var_06 + 1];
}
thread draw_line_until_notify(var_07,var_08,param_01,param_02,param_03,param_04,param_05);
}
}
//Function Number: 175
clear_enemy_passthrough()
{
self notify("enemy");
self clearenemy();
}
//Function Number: 176
battlechatter_off(param_00)
{
level notify("battlechatter_off_thread");
maps\_dds::dds_disable(param_00);
animscripts\battlechatter::bcs_setup_chatter_toggle_array();
if(isdefined(param_00))
{
set_battlechatter_variable(param_00,0);
var_01 = getaiarray(param_00);
}
else
{
foreach(param_00 in level.teams)
{
set_battlechatter_variable(param_00,0);
}
var_01 = getaiarray();
}
if(!isdefined(level.chatinitialized) || !level.chatinitialized)
{
return;
}
for(var_04 = 0;var_04 < var_01.size;var_04++)
{
var_01[var_04].battlechatter = 0;
}
for(var_04 = 0;var_04 < var_01.size;var_04++)
{
var_05 = var_01[var_04];
if(!isalive(var_05))
{
continue;
}
if(!var_05.chatinitialized)
{
continue;
}
if(!var_05.isspeaking)
{
continue;
}
var_05 maps\_utility_code::wait_until_done_speaking();
}
var_06 = gettime() - level.lastteamspeaktime["allies"];
if(var_06 < 1500)
{
wait(var_06 / 1000);
}
if(isdefined(param_00))
{
level notify(param_00 + " done speaking");
return;
}
level notify("done speaking");
}
//Function Number: 177
battlechatter_on(param_00)
{
thread battlechatter_on_thread(param_00);
maps\_dds::dds_enable(param_00);
}
//Function Number: 178
battlechatter_on_thread(param_00)
{
level endon("battlechatter_off_thread");
animscripts\battlechatter::bcs_setup_chatter_toggle_array();
while(!isdefined(level.chatinitialized))
{
wait(0.05);
}
common_scripts\utility::flag_set("battlechatter_on_thread_waiting");
wait(1.5);
common_scripts\utility::flag_clear("battlechatter_on_thread_waiting");
if(isdefined(param_00))
{
set_battlechatter_variable(param_00,1);
var_01 = getaiarray(param_00);
}
else
{
foreach(param_00 in level.teams)
{
set_battlechatter_variable(param_00,1);
}
var_01 = getaiarray();
}
for(var_04 = 0;var_04 < var_01.size;var_04++)
{
var_01[var_04] set_battlechatter(1);
}
}
//Function Number: 179
set_battlechatter(param_00)
{
dds_exclude_this_ai(!param_00);
if(!isdefined(level.chatinitialized) || !level.chatinitialized)
{
return;
}
if(self.type == "dog")
{
return;
}
if(param_00)
{
if(isdefined(self.script_bcdialog) && !self.script_bcdialog)
{
self.battlechatter = 0;
return;
}
self.battlechatter = 1;
return;
}
self.battlechatter = 0;
if(isdefined(self.isspeaking) && self.isspeaking)
{
self waittill("done speaking");
}
}
//Function Number: 180
set_team_bcvoice(param_00,param_01)
{
if(!level.chatinitialized)
{
return;
}
var_02 = getarraykeys(level.countryids);
var_03 = common_scripts\utility::array_contains(var_02,param_01);
if(!var_03)
{
return;
}
var_04 = getaiarray(param_00);
foreach(var_06 in var_04)
{
var_06 set_ai_bcvoice(param_01);
wait 0.05;
}
}
//Function Number: 181
set_ai_bcvoice(param_00)
{
if(!level.chatinitialized)
{
return;
}
var_01 = getarraykeys(level.countryids);
var_02 = common_scripts\utility::array_contains(var_01,param_00);
if(!var_02)
{
return;
}
if(self.type == "dog")
{
return;
}
if(isdefined(self.isspeaking) && self.isspeaking)
{
self waittill("done speaking");
wait(0.1);
}
animscripts\battlechatter_ai::removefromsystem();
waittillframeend;
self.voice = param_00;
animscripts\battlechatter_ai::addtosystem();
}
//Function Number: 182
flavorbursts_on(param_00)
{
thread set_flavorbursts_team_state(1,param_00);
}
//Function Number: 183
flavorbursts_off(param_00)
{
thread set_flavorbursts_team_state(0,param_00);
}
//Function Number: 184
set_flavorbursts_team_state(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "allies";
}
if(!level.chatinitialized)
{
return;
}
wait(1.5);
level.flavorbursts[param_01] = param_00;
var_02 = [];
var_02 = getaiarray(param_01);
common_scripts\utility::array_thread(var_02,::set_flavorbursts,param_00);
}
//Function Number: 185
set_flavorbursts(param_00)
{
self.flavorbursts = param_00;
}
//Function Number: 186
friendlyfire_warnings_off()
{
var_00 = getaiarray("allies");
foreach(var_02 in var_00)
{
if(isalive(var_02))
{
var_02 set_friendlyfire_warnings(0);
}
}
level.friendlyfire_warnings = 0;
}
//Function Number: 187
friendlyfire_warnings_on()
{
var_00 = getaiarray("allies");
foreach(var_02 in var_00)
{
if(isalive(var_02))
{
var_02 set_friendlyfire_warnings(1);
}
}
level.friendlyfire_warnings = 1;
}
//Function Number: 188
set_friendlyfire_warnings(param_00)
{
if(param_00)
{
self.friendlyfire_warnings_disable = undefined;
return;
}
self.friendlyfire_warnings_disable = 1;
}
//Function Number: 189
dds_set_player_character_name(param_00)
{
if(!isplayer(self))
{
return;
}
switch(param_00)
{
case "reznov":
case "hudson":
case "mason":
break;
default:
break;
}
}
//Function Number: 190
dds_exclude_this_ai(param_00)
{
if(isai(self) && isalive(self))
{
if(param_00)
{
self.dds_disable = 1;
return;
}
self.dds_disable = 0;
return;
}
}
//Function Number: 191
get_obj_origin(param_00)
{
var_01 = getentarray("objective","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(var_01[var_02].script_noteworthy == param_00)
{
return var_01[var_02].origin;
}
}
}
//Function Number: 192
get_obj_event(param_00)
{
var_01 = getentarray("objective_event","targetname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(var_01[var_02].script_noteworthy == param_00)
{
return var_01[var_02];
}
}
}
//Function Number: 193
waittill_objective_event()
{
maps\_utility_code::waittill_objective_event_proc(1);
}
//Function Number: 194
waittill_objective_event_notrigger()
{
maps\_utility_code::waittill_objective_event_proc(0);
}
//Function Number: 195
debugorigin()
{
self notify("Debug origin");
self endon("Debug origin");
self endon("death");
for(;;)
{
var_00 = anglestoforward(self.angles);
var_01 = var_00 * 30;
var_02 = var_00 * 20;
var_03 = anglestoright(self.angles);
var_04 = var_03 * -10;
var_03 = var_03 * 10;
wait(0.05);
}
}
//Function Number: 196
get_linked_structs()
{
var_00 = [];
if(isdefined(self.script_linkto))
{
var_01 = common_scripts\utility::get_links();
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = common_scripts\utility::getstruct(var_01[var_02],"script_linkname");
if(isdefined(var_03))
{
var_00[var_00.size] = var_03;
}
}
}
return var_00;
}
//Function Number: 197
get_last_ent_in_chain(param_00)
{
var_01 = self;
if(isdefined(var_01.target))
{
wait(0.05);
if(isdefined(var_01.target))
{
switch(param_00)
{
case "vehiclenode":
break;
case "pathnode":
break;
case "ent":
break;
case "struct":
break;
default:
break;
}
}
}
}
//Function Number: 198
player_seek(param_00)
{
var_01 = spawn("script_origin",level.player.origin);
var_01 linkto(level.player);
if(isdefined(param_00))
{
thread timeout(param_00);
}
self setgoalentity(var_01);
if(!isdefined(self.oldgoalradius))
{
self.oldgoalradius = self.goalradius;
}
self.goalradius = 300;
common_scripts\utility::waittill_any("goal","timeout");
if(isdefined(self.oldgoalradius))
{
self.goalradius = self.oldgoalradius;
self.oldgoalradius = undefined;
}
var_01 delete();
}
//Function Number: 199
timeout(param_00)
{
self endon("death");
wait(param_00);
self notify("timeout");
}
//Function Number: 200
set_forcegoal()
{
if(isdefined(self.set_forcedgoal))
{
return;
}
self.oldfightdist = self.pathenemyfightdist;
self.oldmaxdist = self.pathenemylookahead;
self.oldmaxsight = self.maxsightdistsqrd;
self.pathenemyfightdist = 8;
self.pathenemylookahead = 8;
self.maxsightdistsqrd = 1;
self.set_forcedgoal = 1;
}
//Function Number: 201
unset_forcegoal()
{
if(!isdefined(self.set_forcedgoal))
{
return;
}
self.pathenemyfightdist = self.oldfightdist;
self.pathenemylookahead = self.oldmaxdist;
self.maxsightdistsqrd = self.oldmaxsight;
self.set_forcedgoal = undefined;
}
//Function Number: 202
array_removedead_keepkeys(param_00)
{
var_01 = [];
var_02 = getarraykeys(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_04 = var_02[var_03];
if(!isalive(param_00[var_04]))
{
continue;
}
var_01[var_04] = param_00[var_04];
}
return var_01;
}
//Function Number: 203
array_removedead(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 204
array_removedead_or_dying(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isalive(var_03))
{
continue;
}
if(var_03 doinglongdeath())
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 205
array_remove_nokeys(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
if(param_00[var_03] != param_01)
{
var_02[var_02.size] = param_00[var_03];
}
}
return var_02;
}
//Function Number: 206
array_remove_index(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size - 1;var_02++)
{
if(var_02 == param_01)
{
param_00[var_02] = param_00[var_02 + 1];
param_01++;
}
}
param_00[param_00.size - 1] = undefined;
return param_00;
}
//Function Number: 207
array_notify(param_00,param_01,param_02)
{
foreach(var_04 in param_00)
{
var_04 notify(param_01,param_02);
}
}
//Function Number: 208
struct_arrayspawn()
{
var_00 = spawnstruct();
var_00.array = [];
var_00.lastindex = 0;
return var_00;
}
//Function Number: 209
structarray_add(param_00,param_01)
{
param_00.array[param_00.lastindex] = param_01;
param_01.struct_array_index = param_00.lastindex;
param_00.lastindex++;
}
//Function Number: 210
structarray_remove(param_00,param_01)
{
structarray_swaptolast(param_00,param_01);
param_00.array[param_00.lastindex - 1] = undefined;
param_00.lastindex--;
}
//Function Number: 211
structarray_remove_index(param_00,param_01)
{
if(isdefined(param_00.array[param_00.lastindex - 1]))
{
param_00.array[param_01] = param_00.array[param_00.lastindex - 1];
param_00.array[param_01].struct_array_index = param_01;
param_00.array[param_00.lastindex - 1] = undefined;
param_00.lastindex = param_00.array.size;
return;
}
param_00.array[param_01] = undefined;
structarray_remove_undefined(param_00);
}
//Function Number: 212
structarray_remove_undefined(param_00)
{
var_01 = [];
foreach(var_03 in param_00.array)
{
if(!isdefined(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
param_00.array = var_01;
foreach(var_06, var_03 in param_00.array)
{
var_03.struct_array_index = var_06;
}
param_00.lastindex = param_00.array.size;
}
//Function Number: 213
structarray_swaptolast(param_00,param_01)
{
param_00 maps\_utility_code::structarray_swap(param_00.array[param_00.lastindex - 1],param_01);
}
//Function Number: 214
structarray_shuffle(param_00,param_01)
{
for(var_02 = 0;var_02 < param_01;var_02++)
{
param_00 maps\_utility_code::structarray_swap(param_00.array[var_02],param_00.array[randomint(param_00.lastindex)]);
}
}
//Function Number: 215
get_use_key()
{
if(level.console)
{
return " + usereload";
}
return " + activate";
}
//Function Number: 216
custom_battlechatter(param_00)
{
return animscripts\battlechatter_ai::custom_battlechatter_internal(param_00);
}
//Function Number: 217
get_stop_watch(param_00,param_01)
{
var_02 = newhudelem();
if(level.console)
{
var_02.x = 68;
var_02.y = 35;
}
else
{
var_02.x = 58;
var_02.y = 95;
}
var_02.alignx = "center";
var_02.aligny = "middle";
var_02.horzalign = "left";
var_02.vertalign = "middle";
if(isdefined(param_01))
{
var_03 = param_01;
}
else
{
var_03 = level.explosiveplanttime;
}
var_02 setclock(var_03,param_00,"hudStopwatch",64,64);
return var_02;
}
//Function Number: 218
objective_is_active(param_00)
{
var_01 = 0;
for(var_02 = 0;var_02 < level.active_objective.size;var_02++)
{
if(level.active_objective[var_02] != param_00)
{
continue;
}
var_01 = 1;
break;
}
return var_01;
}
//Function Number: 219
objective_is_inactive(param_00)
{
var_01 = 0;
for(var_02 = 0;var_02 < level.inactive_objective.size;var_02++)
{
if(level.inactive_objective[var_02] != param_00)
{
continue;
}
var_01 = 1;
break;
}
return var_01;
}
//Function Number: 220
set_objective_inactive(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < level.active_objective.size;var_02++)
{
if(level.active_objective[var_02] == param_00)
{
continue;
}
var_01[var_01.size] = level.active_objective[var_02];
}
level.active_objective = var_01;
var_03 = 0;
for(var_02 = 0;var_02 < level.inactive_objective.size;var_02++)
{
if(level.inactive_objective[var_02] != param_00)
{
continue;
}
var_03 = 1;
}
if(!var_03)
{
level.inactive_objective[level.inactive_objective.size] = param_00;
}
}
//Function Number: 221
set_objective_active(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < level.inactive_objective.size;var_02++)
{
if(level.inactive_objective[var_02] == param_00)
{
continue;
}
var_01[var_01.size] = level.inactive_objective[var_02];
}
level.inactive_objective = var_01;
var_03 = 0;
for(var_02 = 0;var_02 < level.active_objective.size;var_02++)
{
if(level.active_objective[var_02] != param_00)
{
continue;
}
var_03 = 1;
}
if(!var_03)
{
level.active_objective[level.active_objective.size] = param_00;
}
}
//Function Number: 222
missionfailedwrapper()
{
if(level.missionfailed)
{
return;
}
if(isdefined(level.nextmission))
{
return;
}
setsaveddvar("ammoCounterHide",1);
level.missionfailed = 1;
common_scripts\utility::flag_set("missionfailed");
if(arcademode())
{
return;
}
if(getdvar("failure_disabled") == "1")
{
return;
}
if(isdefined(level.mission_fail_func))
{
thread [[ level.mission_fail_func ]]();
return;
}
maps\_utility_code::mission_recon(0);
missionfailed();
}
//Function Number: 223
set_mission_failed_override(param_00)
{
level.mission_fail_func = param_00;
}
//Function Number: 224
script_delay()
{
if(isdefined(self.script_delay))
{
wait(self.script_delay);
return 1;
}
else if(isdefined(self.script_delay_min) && isdefined(self.script_delay_max))
{
wait(randomfloatrange(self.script_delay_min,self.script_delay_max));
return 1;
}
return 0;
}
//Function Number: 225
script_wait()
{
var_00 = gettime();
if(isdefined(self.script_wait))
{
wait(self.script_wait);
if(isdefined(self.script_wait_add))
{
self.script_wait = self.script_wait + self.script_wait_add;
}
}
else if(isdefined(self.script_wait_min) && isdefined(self.script_wait_max))
{
wait(randomfloatrange(self.script_wait_min,self.script_wait_max));
if(isdefined(self.script_wait_add))
{
self.script_wait_min = self.script_wait_min + self.script_wait_add;
self.script_wait_max = self.script_wait_max + self.script_wait_add;
}
}
return gettime() - var_00;
}
//Function Number: 226
guy_enter_vehicle(param_00)
{
maps\_vehicle_aianim::guy_enter(param_00);
}
//Function Number: 227
guy_runtovehicle_load(param_00,param_01)
{
maps\_vehicle_aianim::guy_runtovehicle(param_00,param_01);
}
//Function Number: 228
get_force_color_guys(param_00,param_01)
{
var_02 = getaiarray(param_00);
var_03 = [];
for(var_04 = 0;var_04 < var_02.size;var_04++)
{
var_05 = var_02[var_04];
if(!isdefined(var_05.script_forcecolor))
{
continue;
}
if(var_05.script_forcecolor != param_01)
{
continue;
}
var_03[var_03.size] = var_05;
}
return var_03;
}
//Function Number: 229
get_all_force_color_friendlies()
{
var_00 = getaiarray("allies");
var_01 = [];
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
var_03 = var_00[var_02];
if(!isdefined(var_03.script_forcecolor))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 230
get_all_target_ents(param_00)
{
if(!isdefined(param_00))
{
param_00 = self.target;
}
var_01 = [];
var_02 = getentarray(param_00,"targetname");
var_01 = common_scripts\utility::array_combine(var_01,var_02);
var_02 = getnodearray(param_00,"targetname");
var_01 = common_scripts\utility::array_combine(var_01,var_02);
var_02 = common_scripts\utility::getstructarray(param_00,"targetname");
var_01 = common_scripts\utility::array_combine(var_01,var_02);
var_02 = getvehiclenodearray(param_00,"targetname");
var_01 = common_scripts\utility::array_combine(var_01,var_02);
return var_01;
}
//Function Number: 231
enable_ai_color()
{
if(isdefined(self.script_forcecolor))
{
return;
}
if(!isdefined(self.old_forcecolor))
{
return;
}
set_force_color(self.old_forcecolor);
self.old_forcecolor = undefined;
}
//Function Number: 232
enable_ai_color_dontmove()
{
self.dontcolormove = 1;
enable_ai_color();
}
//Function Number: 233
disable_ai_color()
{
if(isdefined(self.new_force_color_being_set))
{
self endon("death");
self waittill("done_setting_new_color");
}
self clearfixednodesafevolume();
if(!isdefined(self.script_forcecolor))
{
return;
}
self.old_forcecolor = self.script_forcecolor;
maps\_colors::remove_ai_from_colors();
}
//Function Number: 234
clear_force_color()
{
disable_ai_color();
}
//Function Number: 235
check_force_color(param_00)
{
var_01 = level.colorchecklist[tolower(param_00)];
if(isdefined(self.script_forcecolor) && var_01 == self.script_forcecolor)
{
return 1;
}
return 0;
}
//Function Number: 236
get_force_color()
{
var_00 = self.script_forcecolor;
return var_00;
}
//Function Number: 237
set_force_color(param_00)
{
var_01 = maps\_colors::add_ai_to_colors(param_00);
}
//Function Number: 238
issue_color_orders(param_00,param_01)
{
maps\_colors::issue_color_orders_generic(param_00,param_01);
}
//Function Number: 239
clear_color_order(param_00,param_01)
{
maps\_colors::clear_color_order_from_team(param_00,param_01);
}
//Function Number: 240
clear_all_color_orders(param_00)
{
foreach(var_02 in level.colorlist)
{
maps\_colors::clear_color_order_from_team(var_02,param_00);
}
}
//Function Number: 241
replace_on_death()
{
thread maps\_colors::colornode_replace_on_death();
}
//Function Number: 242
disable_replace_on_death()
{
self.replace_on_death = undefined;
self notify("_disable_reinforcement");
}
//Function Number: 243
stop_replace_on_death()
{
self notify("_disable_reinforcement");
}
//Function Number: 244
stop_all_replace_on_death(param_00,param_01)
{
thread maps\_colors::colornode_stop_replace_on_death_group(param_00,param_01);
}
//Function Number: 245
spawn_reinforcement(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = "allies";
}
thread maps\_colors::colornode_spawn_reinforcement(param_03,param_00,param_01,param_02);
}
//Function Number: 246
clear_promotion_order()
{
maps\_colors::colornode_clear_promotion_order();
}
//Function Number: 247
set_promotion_order(param_00,param_01)
{
maps\_colors::colornode_set_promotion_order(param_00,param_01);
}
//Function Number: 248
set_empty_promotion_order(param_00)
{
maps\_colors::colornode_set_empty_promotion_order(param_00);
}
//Function Number: 249
has_color()
{
if(maps\_colors::get_team() == "axis")
{
return isdefined(self.script_color_axis) || isdefined(self.script_forcecolor);
}
return isdefined(self.script_color_allies) || isdefined(self.script_forcecolor);
}
//Function Number: 250
get_color_volume_from_trigger()
{
return maps\_colors::get_color_volume_from_trigger_codes();
}
//Function Number: 251
get_color_nodes_from_trigger()
{
return maps\_colors::get_color_nodes_from_trigger_codes();
}
//Function Number: 252
flashrumbleloop(param_00)
{
var_01 = gettime() + param_00 * 1000;
while(gettime() < var_01)
{
self playrumbleonentity("damage_heavy");
wait(0.05);
}
}
//Function Number: 253
flashmonitorenablehealthshield(param_00)
{
self endon("death");
self endon("flashed");
wait(0.2);
self enablehealthshield(0);
wait(param_00 + 2);
self enablehealthshield(1);
}
//Function Number: 254
ninebanghandler(param_00,param_01,param_02,param_03,param_04)
{
var_05 = [0.8,0.7,0.7,0.6];
var_06 = [1,0.8,0.6,0.6];
foreach(var_0C, var_08 in var_06)
{
var_09 = param_01 - 0.85 / 0.15;
if(var_09 > param_02)
{
param_02 = var_09;
}
if(param_02 < 0.25)
{
param_02 = 0.25;
}
var_0A = 0.3;
if(param_01 > 1 - var_0A)
{
param_01 = 1;
}
else
{
param_01 = param_01 / 1 - var_0A;
}
if(param_04 != self.team)
{
var_0B = param_01 * param_02 * 6;
}
else
{
var_0B = param_01 * param_02 * 3;
}
if(var_0B < 0.25)
{
continue;
}
var_0B = var_08 * var_0B;
if(isdefined(self.maxflashedseconds) && var_0B > self.maxflashedseconds)
{
var_0B = self.maxflashedseconds;
}
self.flashingteam = param_04;
self notify("flashed");
self.flashendtime = gettime() + var_0B * 1000;
self shellshock("flashbang",var_0B);
common_scripts\utility::flag_set("player_flashed");
if(param_01 * param_02 > 0.5)
{
thread flashmonitorenablehealthshield(var_0B);
}
wait(var_05[var_0C]);
}
thread maps\_utility_code::unflash_flag(0.05);
}
//Function Number: 255
flashmonitor()
{
self endon("death");
for(;;)
{
self waittill("flashbang",var_00,var_01,var_02,var_03,var_04);
if("1" == getdvar("noflash"))
{
continue;
}
if(is_player_down(self))
{
continue;
}
if(isdefined(self.threw_ninebang))
{
var_05 = 0.8;
var_06 = 1 - var_05;
self.threw_ninebang = undefined;
if(var_01 < var_06)
{
continue;
}
var_01 = var_01 - var_06 / var_05;
}
var_07 = var_01 - 0.85 / 0.15;
if(var_07 > var_02)
{
var_02 = var_07;
}
if(var_02 < 0.25)
{
var_02 = 0.25;
}
var_08 = 0.3;
if(var_01 > 1 - var_08)
{
var_01 = 1;
}
else
{
var_01 = var_01 / 1 - var_08;
}
if(var_04 != self.team)
{
var_09 = var_01 * var_02 * 6;
}
else
{
var_09 = var_01 * var_02 * 3;
}
if(var_09 < 0.25)
{
continue;
}
if(isdefined(self.maxflashedseconds) && var_09 > self.maxflashedseconds)
{
var_09 = self.maxflashedseconds;
}
self.flashingteam = var_04;
self notify("flashed");
self.flashendtime = gettime() + var_09 * 1000;
self shellshock("flashbang",var_09);
self lightsetoverrideenableforplayer("flashed",0.1);
common_scripts\utility::flag_set("player_flashed");
thread maps\_utility_code::unflash_flag(var_09);
wait(0.1);
self lightsetoverrideenableforplayer(var_09 - 0.1);
if(var_01 * var_02 > 0.5)
{
thread flashmonitorenablehealthshield(var_09);
}
if(var_09 > 2)
{
thread flashrumbleloop(0.75);
}
else
{
thread flashrumbleloop(0.25);
}
if(var_04 != "allies")
{
thread flashnearbyallies(var_09,var_04);
}
}
}
//Function Number: 256
flashnearbyallies(param_00,param_01)
{
wait(0.05);
var_02 = getaiarray("allies");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(distancesquared(var_02[var_03].origin,self.origin) < 122500)
{
var_04 = param_00 + randomfloatrange(-1000,1500);
if(var_04 > 4.5)
{
var_04 = 4.5;
}
else if(var_04 < 0.25)
{
continue;
}
var_05 = gettime() + var_04 * 1000;
if(!isdefined(var_02[var_03].flashendtime) || var_02[var_03].flashendtime < var_05)
{
var_02[var_03].flashingteam = param_01;
var_02[var_03] flashbangstart(var_04);
}
}
}
}
//Function Number: 257
restarteffect()
{
common_scripts\_createfx::restart_fx_looper();
}
//Function Number: 258
pauseexploder(param_00)
{
param_00 = param_00 + "";
if(isdefined(level.createfxexploders))
{
var_01 = level.createfxexploders[param_00];
if(isdefined(var_01))
{
foreach(var_03 in var_01)
{
var_03 common_scripts\utility::pauseeffect();
}
return;
}
return;
}
foreach(var_06 in level.createfxent)
{
if(!isdefined(var_06.v["exploder"]))
{
continue;
}
if(var_06.v["exploder"] != var_03)
{
continue;
}
var_06 common_scripts\utility::pauseeffect();
}
}
//Function Number: 259
restartexploder(param_00)
{
param_00 = param_00 + "";
if(isdefined(level.createfxexploders))
{
var_01 = level.createfxexploders[param_00];
if(isdefined(var_01))
{
foreach(var_03 in var_01)
{
var_03 restarteffect();
}
return;
}
return;
}
foreach(var_06 in level.createfxent)
{
if(!isdefined(var_06.v["exploder"]))
{
continue;
}
if(var_06.v["exploder"] != var_03)
{
continue;
}
var_06 restarteffect();
}
}
//Function Number: 260
getfxarraybyid(param_00)
{
var_01 = [];
if(isdefined(level.createfxbyfxid))
{
var_02 = level.createfxbyfxid[param_00];
if(isdefined(var_02))
{
var_01 = var_02;
}
}
else
{
for(var_03 = 0;var_03 < level.createfxent.size;var_03++)
{
if(level.createfxent[var_03].v["fxid"] == param_00)
{
var_01[var_01.size] = level.createfxent[var_03];
}
}
}
return var_01;
}
//Function Number: 261
ignoreallenemies(param_00)
{
self notify("ignoreAllEnemies_threaded");
self endon("ignoreAllEnemies_threaded");
if(param_00)
{
self.old_threat_bias_group = self getthreatbiasgroup();
var_01 = undefined;
createthreatbiasgroup("ignore_everybody");
self setthreatbiasgroup("ignore_everybody");
var_02 = [];
var_02["axis"] = "allies";
var_02["allies"] = "axis";
var_03 = getaiarray(var_02[self.team]);
var_04 = [];
for(var_05 = 0;var_05 < var_03.size;var_05++)
{
var_04[var_03[var_05] getthreatbiasgroup()] = 1;
}
var_06 = getarraykeys(var_04);
for(var_05 = 0;var_05 < var_06.size;var_05++)
{
setthreatbias(var_06[var_05],"ignore_everybody",0);
}
return;
}
var_01 = undefined;
if(self.old_threat_bias_group != "")
{
self setthreatbiasgroup(self.old_threat_bias_group);
}
self.old_threat_bias_group = undefined;
}
//Function Number: 262
vehicle_detachfrompath()
{
maps\_vehicle_code::vehicle_pathdetach();
}
//Function Number: 263
vehicle_resumepath()
{
thread maps\_vehicle_code::vehicle_resumepathvehicle();
}
//Function Number: 264
vehicle_land(param_00)
{
maps\_vehicle_code::vehicle_landvehicle(param_00);
}
//Function Number: 265
vehicle_liftoff(param_00)
{
maps\_vehicle_code::vehicle_liftoffvehicle(param_00);
}
//Function Number: 266
vehicle_dynamicpath(param_00,param_01)
{
maps\_vehicle::vehicle_paths(param_00,param_01);
}
//Function Number: 267
groundpos(param_00)
{
return bullettrace(param_00,param_00 + (0,0,-100000),0,self)["position"];
}
//Function Number: 268
change_player_health_packets(param_00)
{
self.player_health_packets = self.player_health_packets + param_00;
self notify("update_health_packets");
if(self.player_health_packets >= 3)
{
self.player_health_packets = 3;
}
}
//Function Number: 269
getvehiclespawner(param_00)
{
var_01 = getvehiclespawnerarray(param_00);
return var_01[0];
}
//Function Number: 270
getvehiclespawnerarray(param_00)
{
return maps\_vehicle_code::_getvehiclespawnerarray(param_00);
}
//Function Number: 271
describe_start(param_00,param_01,param_02,param_03,param_04,param_05)
{
add_start_assert();
if(!isdefined(level.start_description))
{
level.start_description = [];
}
level.start_description[param_00] = add_start_construct(param_00,param_01,param_02,param_03,[param_04],param_05);
}
//Function Number: 272
add_start(param_00,param_01,param_02,param_03,param_04,param_05)
{
add_start_assert();
param_00 = tolower(param_00);
if(isdefined(param_04))
{
if(param_04.size > 2)
{
var_06 = [];
var_06[0] = param_04[0];
var_06[1] = param_04[1];
param_04 = var_06;
}
if(!isdefined(level.start_transients))
{
level.start_transients = [];
}
foreach(var_08 in param_04)
{
if(!common_scripts\utility::array_contains(level.start_transients,var_08))
{
level.start_transients[level.start_transients.size] = var_08;
}
}
}
if(isdefined(level.start_description) && isdefined(level.start_description[param_00]))
{
var_0B = level.start_description[param_00];
}
else
{
var_0B = add_start_construct(param_01,param_02,param_03,param_04,param_05,var_0B);
}
if(!isdefined(param_01))
{
if(!isdefined(level.start_description))
{
}
else if(!issubstr(param_00,"no_game"))
{
if(!isdefined(level.start_description[param_00]))
{
return;
}
}
}
level.start_functions[level.start_functions.size] = var_0B;
level.start_arrays[param_00] = var_0B;
}
//Function Number: 273
set_start_transients(param_00,param_01)
{
if(!isdefined(level.start_arrays))
{
return;
}
if(!isdefined(level.start_arrays[param_00]))
{
return;
}
param_00 = tolower(param_00);
if(param_01.size > 2)
{
var_02 = [];
var_02[0] = param_01[0];
var_02[1] = param_01[1];
param_01 = var_02;
}
if(!isdefined(level.start_transients))
{
level.start_transients = [];
}
foreach(var_04 in param_01)
{
if(!common_scripts\utility::array_contains(level.start_transients,var_04))
{
level.start_transients[level.start_transients.size] = var_04;
}
}
level.start_arrays[param_00]["transients_to_load"] = param_01;
}
//Function Number: 274
is_no_game_start()
{
return issubstr(level.start_point,"no_game");
}
//Function Number: 275
add_start_construct(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = [];
var_06["name"] = param_00;
var_06["start_func"] = param_01;
var_06["start_loc_string"] = param_02;
var_06["logic_func"] = param_03;
var_06["transients_to_load"] = param_04;
var_06["catchup_function"] = param_05;
return var_06;
}
//Function Number: 276
add_start_assert()
{
if(!isdefined(level.start_functions))
{
level.start_functions = [];
}
}
//Function Number: 277
level_has_start_points()
{
return level.start_functions.size > 1;
}
//Function Number: 278
set_default_start(param_00)
{
level.default_start_override = param_00;
}
//Function Number: 279
default_start(param_00)
{
level.default_start = param_00;
}
//Function Number: 280
linetime(param_00,param_01,param_02,param_03)
{
thread maps\_utility_code::linetime_proc(param_00,param_01,param_02,param_03);
}
//Function Number: 281
within_fov_2d(param_00,param_01,param_02,param_03)
{
var_04 = vectornormalize((param_02[0],param_02[1],0) - (param_00[0],param_00[1],0));
var_05 = anglestoforward((0,param_01[1],0));
return vectordot(var_05,var_04) >= param_03;
}
//Function Number: 282
get_dot(param_00,param_01,param_02)
{
var_03 = vectornormalize(param_02 - param_00);
var_04 = anglestoforward(param_01);
var_05 = vectordot(var_04,var_03);
return var_05;
}
//Function Number: 283
within_fov_of_players(param_00,param_01)
{
var_02 = undefined;
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
var_04 = level.players[var_03] geteye();
var_02 = common_scripts\utility::within_fov(var_04,level.players[var_03] getplayerangles(),param_00,param_01);
if(!var_02)
{
return 0;
}
}
return 1;
}
//Function Number: 284
wait_for_buffer_time_to_pass(param_00,param_01)
{
var_02 = param_01 * 1000 - gettime() - param_00;
var_02 = var_02 * 0.001;
if(var_02 > 0)
{
wait(var_02);
}
}
//Function Number: 285
bcs_scripted_dialogue_start()
{
anim.scripteddialoguestarttime = gettime();
}
//Function Number: 286
dialogue_queue(param_00)
{
var_01 = getsndaliasvalue(param_00,"squelchname");
if(self == level || var_01 != "")
{
radio_dialogue(param_00,undefined,var_01);
return;
}
bcs_scripted_dialogue_start();
maps\_anim::anim_single_queue(self,param_00);
}
//Function Number: 287
generic_dialogue_queue(param_00,param_01)
{
bcs_scripted_dialogue_start();
maps\_anim::anim_generic_queue(self,param_00,undefined,undefined,param_01);
}
//Function Number: 288
radio_dialogue(param_00,param_01,param_02)
{
if(!isdefined(level.player_radio_emitter))
{
var_03 = spawn("script_origin",(0,0,0));
var_03 linkto(level.player,"",(0,0,0),(0,0,0));
level.player_radio_emitter = var_03;
}
bcs_scripted_dialogue_start();
if(!isdefined(param_01))
{
return level.player_radio_emitter function_stack(::radio_dialogue_play,param_00,param_02);
}
return level.player_radio_emitter function_stack_timeout(param_01,::radio_dialogue_play,param_00,param_02);
}
//Function Number: 289
radio_dialogue_play(param_00,param_01)
{
if(!isdefined(param_01))
{
param_01 = "none";
}
level.player_radio_squelch_out_queued = 0;
if(param_01 != "none" && isdefined(level.scr_radio["squelches"][param_01]))
{
play_sound_on_tag(level.scr_radio["squelches"][param_01]["on"],undefined,1);
}
var_02 = 0;
if(isdefined(level.scr_radio[param_00]))
{
var_02 = play_sound_on_tag(level.scr_radio[param_00],undefined,1);
}
else
{
var_02 = play_sound_on_tag(param_00,undefined,1);
}
if(param_01 != "none" && isdefined(level.scr_radio["squelches"][param_01]))
{
thread radio_try_squelch_out(param_01);
}
return var_02;
}
//Function Number: 290
radio_dialogue_overlap(param_00)
{
if(!isdefined(level.player_radio_emitter_overlap))
{
level.player_radio_emitter_overlap = [];
}
var_01 = spawn("script_origin",(0,0,0));
level.player_radio_emitter_overlap[level.player_radio_emitter_overlap.size] = var_01;
var_01 endon("death");
thread delete_on_death_wait_sound(var_01,"sounddone");
var_01.origin = level.player_radio_emitter.origin;
var_01.angles = level.player_radio_emitter.angles;
var_01 linkto(level.player_radio_emitter);
var_01 playsound(level.scr_radio[param_00],"sounddone");
if(!isdefined(maps\_utility_code::wait_for_sounddone_or_death(var_01)))
{
var_01 stopsounds();
}
wait(0.05);
level.player_radio_emitter_overlap = common_scripts\utility::array_remove(level.player_radio_emitter_overlap,var_01);
var_01 delete();
}
//Function Number: 291
radio_dialogue_stop()
{
if(!isdefined(level.player_radio_emitter))
{
return;
}
level.player_radio_emitter delete();
}
//Function Number: 292
radio_dialogue_overlap_stop()
{
if(!isdefined(level.player_radio_emitter_overlap))
{
return;
}
foreach(var_01 in level.player_radio_emitter_overlap)
{
if(isdefined(var_01))
{
var_01 stopsounds();
wait(0.05);
var_01 delete();
}
}
level.player_radio_emitter_overlap = undefined;
}
//Function Number: 293
radio_dialogue_clear_stack()
{
if(!isdefined(level.player_radio_emitter))
{
return;
}
level.player_radio_emitter function_stack_clear();
}
//Function Number: 294
radio_dialogue_remove_from_stack(param_00)
{
if(!isdefined(level.player_radio_emitter))
{
return;
}
if(!isdefined(level.player_radio_emitter.function_stack))
{
return;
}
var_01 = [];
var_02 = 0;
var_03 = level.player_radio_emitter.function_stack.size;
for(var_04 = 0;var_04 < var_03;var_04++)
{
if(var_04 == 0 && isdefined(level.player_radio_emitter.function_stack[0].function_stack_func_begun) && isdefined(level.player_radio_emitter.function_stack[0].function_stack_func_begun))
{
var_01[var_01.size] = level.player_radio_emitter.function_stack[var_04];
continue;
}
if(isdefined(level.player_radio_emitter.function_stack[var_04].param1) && level.player_radio_emitter.function_stack[var_04].param1 == param_00)
{
level.player_radio_emitter.function_stack[var_04] notify("death");
level.player_radio_emitter.function_stack[var_04] = undefined;
var_02 = 1;
continue;
}
var_01[var_01.size] = level.player_radio_emitter.function_stack[var_04];
}
if(var_02)
{
level.player_radio_emitter.function_stack = var_01;
}
}
//Function Number: 295
radio_dialogue_interupt(param_00)
{
if(!isdefined(level.player_radio_emitter))
{
var_01 = spawn("script_origin",(0,0,0));
var_01 linkto(level.player,"",(0,0,0),(0,0,0));
level.player_radio_emitter = var_01;
}
level.player_radio_emitter play_sound_on_tag(level.scr_radio[param_00],undefined,1);
}
//Function Number: 296
radio_dialogue_safe(param_00)
{
return radio_dialogue(param_00,0.05);
}
//Function Number: 297
smart_radio_dialogue(param_00,param_01)
{
var_02 = getsndaliasvalue(param_00,"squelchname");
maps\_utility_code::add_to_radio(param_00);
radio_dialogue(param_00,param_01,var_02);
}
//Function Number: 298
smart_radio_dialogue_interrupt(param_00)
{
maps\_utility_code::add_to_radio(param_00);
radio_dialogue_stop();
radio_dialogue_interupt(param_00);
}
//Function Number: 299
smart_radio_dialogue_overlap(param_00)
{
maps\_utility_code::add_to_radio(param_00);
radio_dialogue_overlap(param_00);
}
//Function Number: 300
smart_dialogue(param_00)
{
maps\_utility_code::add_to_dialogue(param_00);
dialogue_queue(param_00);
}
//Function Number: 301
smart_dialogue_generic(param_00)
{
maps\_utility_code::add_to_dialogue_generic(param_00);
generic_dialogue_queue(param_00);
}
//Function Number: 302
radio_try_squelch_out(param_00,param_01)
{
self endon("death");
if(!isdefined(param_01))
{
param_01 = 0.1;
}
level.player_radio_squelch_out_queued = 1;
wait(param_01);
if(isdefined(level.player_radio_emitter) && level.player_radio_squelch_out_queued == 1)
{
level.player_radio_emitter function_stack(::play_sound_on_tag,level.scr_radio["squelches"][param_00]["off"],undefined,1);
}
}
//Function Number: 303
radio_dialogue_queue(param_00,param_01)
{
radio_dialogue(param_00,undefined,param_01);
}
//Function Number: 304
hint_create(param_00,param_01,param_02)
{
var_03 = spawnstruct();
if(isdefined(param_01) && param_01 == 1)
{
var_03.bg = newhudelem();
}
var_03.elm = newhudelem();
var_03 hint_position_internal(param_02);
var_03.elm settext(param_00);
return var_03;
}
//Function Number: 305
hint_delete()
{
self notify("death");
if(isdefined(self.elm))
{
self.elm destroy();
}
if(isdefined(self.bg))
{
self.bg destroy();
}
}
//Function Number: 306
hint_position_internal(param_00)
{
if(level.console)
{
self.elm.fontscale = 2;
}
else
{
self.elm.fontscale = 1.6;
}
self.elm.x = 0;
self.elm.y = -40;
self.elm.alignx = "center";
self.elm.aligny = "bottom";
self.elm.horzalign = "center";
self.elm.vertalign = "middle";
self.elm.sort = 1;
self.elm.alpha = 0.8;
if(!isdefined(self.bg))
{
return;
}
self.bg.x = 0;
self.bg.y = -40;
self.bg.alignx = "center";
self.bg.aligny = "middle";
self.bg.horzalign = "center";
self.bg.vertalign = "middle";
self.bg.sort = -1;
if(level.console)
{
self.bg setshader("popmenu_bg",650,52);
}
else
{
self.bg setshader("popmenu_bg",650,42);
}
if(!isdefined(param_00))
{
param_00 = 0.5;
}
self.bg.alpha = param_00;
}
//Function Number: 307
string(param_00)
{
return "" + param_00;
}
//Function Number: 308
is_string_a_number(param_00)
{
var_01 = float(param_00);
return string(var_01) == param_00;
}
//Function Number: 309
ignoreeachother(param_00,param_01)
{
setignoremegroup(param_00,param_01);
setignoremegroup(param_01,param_00);
}
//Function Number: 310
add_global_spawn_function(param_00,param_01,param_02,param_03,param_04)
{
var_05 = [];
var_05["function"] = param_01;
var_05["param1"] = param_02;
var_05["param2"] = param_03;
var_05["param3"] = param_04;
level.spawn_funcs[param_00][level.spawn_funcs[param_00].size] = var_05;
}
//Function Number: 311
remove_global_spawn_function(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < level.spawn_funcs[param_00].size;var_03++)
{
if(level.spawn_funcs[param_00][var_03]["function"] != param_01)
{
var_02[var_02.size] = level.spawn_funcs[param_00][var_03];
}
}
level.spawn_funcs[param_00] = var_02;
}
//Function Number: 312
exists_global_spawn_function(param_00,param_01)
{
if(!isdefined(level.spawn_funcs))
{
return 0;
}
for(var_02 = 0;var_02 < level.spawn_funcs[param_00].size;var_02++)
{
if(level.spawn_funcs[param_00][var_02]["function"] == param_01)
{
return 1;
}
}
return 0;
}
//Function Number: 313
remove_spawn_function(param_00)
{
var_01 = [];
foreach(var_03 in self.spawn_functions)
{
if(var_03["function"] == param_00)
{
continue;
}
var_01[var_01.size] = var_03;
}
self.spawn_functions = var_01;
}
//Function Number: 314
add_spawn_function(param_00,param_01,param_02,param_03,param_04,param_05)
{
foreach(var_07 in self.spawn_functions)
{
if(var_07["function"] == param_00)
{
return;
}
}
var_09 = [];
var_09["function"] = param_00;
var_09["param1"] = param_01;
var_09["param2"] = param_02;
var_09["param3"] = param_03;
var_09["param4"] = param_04;
var_09["param5"] = param_05;
self.spawn_functions[self.spawn_functions.size] = var_09;
}
//Function Number: 315
array_delete(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
param_00[var_01] delete();
}
}
//Function Number: 316
array_kill(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
param_00[var_01] kill();
}
}
//Function Number: 317
ignore_triggers(param_00)
{
self endon("death");
self.ignoretriggers = 1;
if(isdefined(param_00))
{
wait(param_00);
}
else
{
wait(0.5);
}
self.ignoretriggers = 0;
}
//Function Number: 318
activate_trigger_with_targetname(param_00)
{
var_01 = getent(param_00,"targetname");
var_01 activate_trigger();
}
//Function Number: 319
activate_trigger_with_noteworthy(param_00)
{
var_01 = getent(param_00,"script_noteworthy");
var_01 activate_trigger();
}
//Function Number: 320
disable_trigger_with_targetname(param_00)
{
var_01 = getent(param_00,"targetname");
var_01 common_scripts\utility::trigger_off();
}
//Function Number: 321
disable_trigger_with_noteworthy(param_00)
{
var_01 = getent(param_00,"script_noteworthy");
var_01 common_scripts\utility::trigger_off();
}
//Function Number: 322
enable_trigger_with_targetname(param_00)
{
var_01 = getent(param_00,"targetname");
var_01 common_scripts\utility::trigger_on();
}
//Function Number: 323
enable_trigger_with_noteworthy(param_00)
{
var_01 = getent(param_00,"script_noteworthy");
var_01 common_scripts\utility::trigger_on();
}
//Function Number: 324
is_hero()
{
return isdefined(level.hero_list[get_ai_number()]);
}
//Function Number: 325
get_ai_number()
{
if(!isdefined(self.unique_id))
{
set_ai_number();
}
return self.unique_id;
}
//Function Number: 326
set_ai_number()
{
self.unique_id = "ai" + level.ai_number;
level.ai_number++;
}
//Function Number: 327
make_hero()
{
level.hero_list[self.unique_id] = 1;
}
//Function Number: 328
unmake_hero()
{
level.hero_list[self.unique_id] = undefined;
}
//Function Number: 329
get_heroes()
{
var_00 = [];
var_01 = getaiarray("allies");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
if(var_01[var_02] is_hero())
{
var_00[var_00.size] = var_01[var_02];
}
}
return var_00;
}
//Function Number: 330
set_team_pacifist(param_00,param_01)
{
var_02 = getaiarray(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03].pacifist = param_01;
}
}
//Function Number: 331
remove_dead_from_array(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
if(!isalive(var_03))
{
continue;
}
var_01[var_01.size] = var_03;
}
return var_01;
}
//Function Number: 332
remove_heroes_from_array(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(param_00[var_02] is_hero())
{
continue;
}
var_01[var_01.size] = param_00[var_02];
}
return var_01;
}
//Function Number: 333
remove_color_from_array(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = param_00[var_03];
if(!isdefined(var_04.script_forcecolor))
{
continue;
}
if(var_04.script_forcecolor == param_01)
{
continue;
}
var_02[var_02.size] = var_04;
}
return var_02;
}
//Function Number: 334
remove_noteworthy_from_array(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = param_00[var_03];
if(!isdefined(var_04.script_noteworthy))
{
continue;
}
if(var_04.script_noteworthy == param_01)
{
continue;
}
var_02[var_02.size] = var_04;
}
return var_02;
}
//Function Number: 335
get_closest_colored_friendly(param_00,param_01)
{
var_02 = get_force_color_guys("allies",param_00);
var_02 = remove_heroes_from_array(var_02);
if(!isdefined(param_01))
{
var_03 = level.player.origin;
}
else
{
var_03 = var_02;
}
return common_scripts\utility::getclosest(var_03,var_02);
}
//Function Number: 336
remove_without_classname(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
if(!issubstr(param_00[var_03].classname,param_01))
{
continue;
}
var_02[var_02.size] = param_00[var_03];
}
return var_02;
}
//Function Number: 337
remove_without_model(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
if(!issubstr(param_00[var_03].model,param_01))
{
continue;
}
var_02[var_02.size] = param_00[var_03];
}
return var_02;
}
//Function Number: 338
get_closest_colored_friendly_with_classname(param_00,param_01,param_02)
{
var_03 = get_force_color_guys("allies",param_00);
var_03 = remove_heroes_from_array(var_03);
if(!isdefined(param_02))
{
var_04 = level.player.origin;
}
else
{
var_04 = var_03;
}
var_03 = remove_without_classname(var_03,param_01);
return common_scripts\utility::getclosest(var_04,var_03);
}
//Function Number: 339
promote_nearest_friendly(param_00,param_01)
{
for(;;)
{
var_02 = get_closest_colored_friendly(param_00);
if(!isalive(var_02))
{
wait(1);
continue;
}
var_02 set_force_color(param_01);
}
}
//Function Number: 340
instantly_promote_nearest_friendly(param_00,param_01)
{
for(;;)
{
var_02 = get_closest_colored_friendly(param_00);
if(!isalive(var_02))
{
return;
}
var_02 set_force_color(param_01);
}
}
//Function Number: 341
instantly_promote_nearest_friendly_with_classname(param_00,param_01,param_02)
{
for(;;)
{
var_03 = get_closest_colored_friendly_with_classname(param_00,param_02);
if(!isalive(var_03))
{
return;
}
var_03 set_force_color(param_01);
}
}
//Function Number: 342
promote_nearest_friendly_with_classname(param_00,param_01,param_02)
{
for(;;)
{
var_03 = get_closest_colored_friendly_with_classname(param_00,param_02);
if(!isalive(var_03))
{
wait(1);
continue;
}
var_03 set_force_color(param_01);
}
}
//Function Number: 343
riotshield_lock_orientation(param_00)
{
self orientmode("face angle",param_00);
self.lockorientation = 1;
}
//Function Number: 344
riotshield_unlock_orientation()
{
self.lockorientation = 0;
}
//Function Number: 345
instantly_set_color_from_array_with_classname(param_00,param_01,param_02)
{
var_03 = 0;
var_04 = [];
for(var_05 = 0;var_05 < param_00.size;var_05++)
{
var_06 = param_00[var_05];
if(var_03 || !issubstr(var_06.classname,param_02))
{
var_04[var_04.size] = var_06;
continue;
}
var_03 = 1;
var_06 set_force_color(param_01);
}
return var_04;
}
//Function Number: 346
instantly_set_color_from_array(param_00,param_01)
{
var_02 = 0;
var_03 = [];
for(var_04 = 0;var_04 < param_00.size;var_04++)
{
var_05 = param_00[var_04];
if(var_02)
{
var_03[var_03.size] = var_05;
continue;
}
var_02 = 1;
var_05 set_force_color(param_01);
}
return var_03;
}
//Function Number: 347
wait_for_script_noteworthy_trigger(param_00)
{
maps\_utility_code::wait_for_trigger(param_00,"script_noteworthy");
}
//Function Number: 348
wait_for_targetname_trigger(param_00)
{
maps\_utility_code::wait_for_trigger(param_00,"targetname");
}
//Function Number: 349
wait_for_flag_or_timeout(param_00,param_01)
{
if(common_scripts\utility::flag(param_00))
{
return;
}
level endon(param_00);
wait(param_01);
}
//Function Number: 350
wait_for_notify_or_timeout(param_00,param_01)
{
self endon(param_00);
wait(param_01);
}
//Function Number: 351
wait_for_trigger_or_timeout(param_00)
{
self endon("trigger");
wait(param_00);
}
//Function Number: 352
wait_for_either_trigger(param_00,param_01)
{
var_02 = spawnstruct();
var_03 = [];
var_03 = common_scripts\utility::array_combine(var_03,getentarray(param_00,"targetname"));
var_03 = common_scripts\utility::array_combine(var_03,getentarray(param_01,"targetname"));
for(var_04 = 0;var_04 < var_03.size;var_04++)
{
var_02 thread maps\_utility_code::ent_waits_for_trigger(var_03[var_04]);
}
var_02 waittill("done");
}
//Function Number: 353
dronespawn_bodyonly(param_00)
{
var_01 = maps\_spawner::spawner_dronespawn(param_00);
return var_01;
}
//Function Number: 354
dronespawn(param_00)
{
if(!isdefined(param_00))
{
param_00 = self;
}
var_01 = maps\_spawner::spawner_dronespawn(param_00);
var_01 [[ level.drone_spawn_func ]]();
var_01.spawn_funcs = param_00.spawn_functions;
var_01 thread maps\_spawner::run_spawn_functions();
var_01.spawner = param_00;
return var_01;
}
//Function Number: 355
swap_ai_to_drone(param_00)
{
return maps\_spawner::spawner_swap_ai_to_drone(param_00);
}
//Function Number: 356
swap_drone_to_ai(param_00)
{
return maps\_spawner::spawner_swap_drone_to_ai(param_00);
}
//Function Number: 357
get_trigger_flag()
{
if(isdefined(self.script_flag))
{
return self.script_flag;
}
if(isdefined(self.script_noteworthy))
{
return self.script_noteworthy;
}
}
//Function Number: 358
set_default_pathenemy_settings()
{
self.pathenemylookahead = 192;
self.pathenemyfightdist = 192;
}
//Function Number: 359
cqb_walk(param_00)
{
if(param_00 == "on")
{
enable_cqbwalk();
return;
}
disable_cqbwalk();
}
//Function Number: 360
enable_cqbwalk(param_00)
{
if(self.type == "dog")
{
return;
}
if(!isdefined(param_00))
{
self.cqbenabled = 1;
}
self.cqbwalking = 1;
self.turnrate = 0.2;
level thread animscripts\cqb::findcqbpointsofinterest();
}
//Function Number: 361
disable_cqbwalk()
{
if(self.type == "dog")
{
return;
}
self.cqbwalking = undefined;
self.cqbenabled = undefined;
self.turnrate = 0.3;
self.cqb_point_of_interest = undefined;
}
//Function Number: 362
enable_readystand()
{
self.busereadyidle = 1;
}
//Function Number: 363
disable_readystand()
{
self.busereadyidle = undefined;
}
//Function Number: 364
cqb_aim(param_00)
{
if(!isdefined(param_00))
{
self.cqb_target = undefined;
return;
}
self.cqb_target = param_00;
if(!isdefined(param_00.origin))
{
}
}
//Function Number: 365
set_force_cover(param_00)
{
if(isdefined(param_00) && param_00)
{
self.forcesuppression = 1;
return;
}
self.forcesuppression = undefined;
}
//Function Number: 366
do_in_order(param_00,param_01,param_02,param_03)
{
if(isdefined(param_01))
{
[[ param_00 ]](param_01);
}
else
{
[[ param_00 ]]();
}
if(isdefined(param_03))
{
[[ param_02 ]](param_03);
return;
}
[[ param_02 ]]();
}
//Function Number: 367
send_notify(param_00,param_01)
{
if(isdefined(param_01))
{
self notify(param_00,param_01);
return;
}
self notify(param_00);
}
//Function Number: 368
waittill_match_or_timeout(param_00,param_01,param_02)
{
var_03 = spawnstruct();
var_03 endon("complete");
var_03 delaythread(param_02,::send_notify,"complete");
self waittillmatch(param_01,param_00);
}
//Function Number: 369
deleteent(param_00)
{
param_00 notify("deleted");
param_00 delete();
}
//Function Number: 370
first_touch(param_00)
{
if(!isdefined(self.touched))
{
self.touched = [];
}
if(isdefined(self.touched[param_00.unique_id]))
{
return 0;
}
self.touched[param_00.unique_id] = 1;
return 1;
}
//Function Number: 371
getanim(param_00)
{
return level.scr_anim[self.animname][param_00];
}
//Function Number: 372
hasanim(param_00)
{
return isdefined(level.scr_anim[self.animname][param_00]);
}
//Function Number: 373
getanim_from_animname(param_00,param_01)
{
return level.scr_anim[param_01][param_00];
}
//Function Number: 374
getanim_generic(param_00)
{
return level.scr_anim["generic"][param_00];
}
//Function Number: 375
add_hint_string(param_00,param_01,param_02)
{
if(!isdefined(level.trigger_hint_string))
{
level.trigger_hint_string = [];
level.trigger_hint_func = [];
}
level.trigger_hint_string[param_00] = param_01;
precachestring(param_01);
if(isdefined(param_02))
{
level.trigger_hint_func[param_00] = param_02;
}
}
//Function Number: 376
show_hint(param_00)
{
thread maps\_utility_code::showhintprint_struct(param_00);
}
//Function Number: 377
hide_hint(param_00)
{
param_00.timeout = 1;
}
//Function Number: 378
fire_radius(param_00,param_01)
{
var_02 = spawn("trigger_radius",param_00,0,param_01,48);
for(;;)
{
var_02 waittill("trigger",var_03);
level.player dodamage(5,param_00);
}
}
//Function Number: 379
clearthreatbias(param_00,param_01)
{
setthreatbias(param_00,param_01,0);
setthreatbias(param_01,param_00,0);
}
//Function Number: 380
throwgrenadeatplayerasap()
{
animscripts\combat_utility::throwgrenadeatplayerasap_combat_utility();
}
//Function Number: 381
array_combine_keys(param_00,param_01)
{
if(!param_00.size)
{
return param_01;
}
var_02 = getarraykeys(param_01);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
param_00[var_02[var_03]] = param_01[var_02[var_03]];
}
return param_00;
}
//Function Number: 382
set_ignoresuppression(param_00)
{
self.ignoresuppression = param_00;
}
//Function Number: 383
set_goalradius(param_00)
{
self.goalradius = param_00;
}
//Function Number: 384
try_forever_spawn()
{
var_00 = self.export;
for(;;)
{
var_01 = self dospawn();
if(spawn_failed(var_01))
{
wait(1);
continue;
}
return var_01;
}
}
//Function Number: 385
set_allowdeath(param_00)
{
self.allowdeath = param_00;
}
//Function Number: 386
set_run_anim(param_00,param_01)
{
if(isdefined(param_01))
{
self.alwaysrunforward = param_01;
}
else
{
self.alwaysrunforward = 1;
}
disable_turnanims();
self.run_overrideanim = level.scr_anim[self.animname][param_00];
self.walk_overrideanim = self.run_overrideanim;
}
//Function Number: 387
set_dog_walk_anim()
{
self.a.movement = "walk";
self.disablearrivals = 1;
self.disableexits = 1;
self.script_nobark = 1;
}
//Function Number: 388
set_combat_stand_animset(param_00,param_01,param_02,param_03)
{
animscripts\animset::init_animset_custom_stand(param_00,param_01,param_02,param_03);
}
//Function Number: 389
set_move_animset(param_00,param_01,param_02)
{
var_03 = animscripts\utility::lookupanimarray(param_00);
if(isarray(param_01))
{
var_03["straight"] = param_01[0];
var_03["move_f"] = param_01[0];
var_03["move_l"] = param_01[1];
var_03["move_r"] = param_01[2];
var_03["move_b"] = param_01[3];
}
else
{
var_03["straight"] = param_01;
var_03["move_f"] = param_01;
}
if(isdefined(param_02))
{
var_03["sprint"] = param_02;
}
self.custommoveanimset[param_00] = var_03;
}
//Function Number: 390
set_generic_idle_anim(param_00)
{
var_01 = level.scr_anim["generic"][param_00];
if(isarray(var_01))
{
self.specialidleanim = var_01;
return;
}
self.specialidleanim[0] = var_01;
}
//Function Number: 391
set_idle_anim(param_00)
{
var_01 = level.scr_anim[self.animname][param_00];
if(isarray(var_01))
{
self.specialidleanim = var_01;
return;
}
self.specialidleanim[0] = var_01;
}
//Function Number: 392
clear_generic_idle_anim()
{
self.specialidleanim = undefined;
self notify("stop_specialidle");
}
//Function Number: 393
set_generic_run_anim(param_00,param_01)
{
set_generic_run_anim_array(param_00,undefined,param_01);
}
//Function Number: 394
clear_generic_run_anim()
{
self notify("movemode");
enable_turnanims();
self.run_overrideanim = undefined;
self.walk_overrideanim = undefined;
}
//Function Number: 395
set_generic_run_anim_array(param_00,param_01,param_02)
{
self notify("movemode");
if(!isdefined(param_02) || param_02)
{
self.alwaysrunforward = 1;
}
else
{
self.alwaysrunforward = undefined;
}
disable_turnanims();
self.run_overrideanim = level.scr_anim["generic"][param_00];
self.walk_overrideanim = self.run_overrideanim;
if(isdefined(param_01))
{
self.run_override_weights = level.scr_anim["generic"][param_01];
self.walk_override_weights = self.run_override_weights;
return;
}
self.run_override_weights = undefined;
self.walk_override_weights = undefined;
}
//Function Number: 396
set_run_anim_array(param_00,param_01,param_02)
{
self notify("movemode");
if(!isdefined(param_02) || param_02)
{
self.alwaysrunforward = 1;
}
else
{
self.alwaysrunforward = undefined;
}
disable_turnanims();
self.run_overrideanim = level.scr_anim[self.animname][param_00];
self.walk_overrideanim = self.run_overrideanim;
if(isdefined(param_01))
{
self.run_override_weights = level.scr_anim[self.animname][param_01];
self.walk_override_weights = self.run_override_weights;
return;
}
self.run_override_weights = undefined;
self.walk_override_weights = undefined;
}
//Function Number: 397
clear_run_anim()
{
self notify("clear_run_anim");
self notify("movemode");
if(self.type == "dog")
{
self.a.movement = "run";
self.disablearrivals = 0;
self.disableexits = 0;
self.script_nobark = undefined;
return;
}
if(!isdefined(self.casual_killer))
{
enable_turnanims();
}
self.alwaysrunforward = undefined;
self.run_overrideanim = undefined;
self.walk_overrideanim = undefined;
self.run_override_weights = undefined;
self.walk_override_weights = undefined;
}
//Function Number: 398
debugvar(param_00,param_01)
{
setdvarifuninitialized(param_00,param_01);
return getdvarfloat(param_00);
}
//Function Number: 399
physicsjolt_proximity(param_00,param_01,param_02)
{
self endon("death");
self endon("stop_physicsjolt");
if(!isdefined(param_00) || !isdefined(param_01) || !isdefined(param_02))
{
param_00 = 400;
param_01 = 256;
param_02 = (0,0,0.075);
}
var_03 = param_00 * param_00;
var_04 = 3;
var_05 = param_02;
for(;;)
{
wait(0.1);
param_02 = var_05;
if(self.code_classname == "script_vehicle")
{
var_06 = self vehicle_getspeed();
if(var_06 < var_04)
{
var_07 = var_06 / var_04;
param_02 = var_05 * var_07;
}
}
var_08 = distancesquared(self.origin,level.player.origin);
var_07 = var_03 / var_08;
if(var_07 > 1)
{
var_07 = 1;
}
param_02 = param_02 * var_07;
var_09 = param_02[0] + param_02[1] + param_02[2];
if(var_09 > 0.025)
{
physicsjitter(self.origin,param_00,param_01,param_02[2],param_02[2] * 2);
}
}
}
//Function Number: 400
set_goal_entity(param_00)
{
self setgoalentity(param_00);
}
//Function Number: 401
activate_trigger(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
activate_trigger_process(param_02);
return;
}
common_scripts\utility::array_thread(getentarray(param_00,param_01),::activate_trigger_process,param_02);
}
//Function Number: 402
activate_trigger_process(param_00)
{
self notify("trigger",param_00);
}
//Function Number: 403
self_delete()
{
self delete();
}
//Function Number: 404
remove_nocolor_from_array(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
var_03 = param_00[var_02];
if(var_03 has_color())
{
var_01[var_01.size] = var_03;
}
}
return var_01;
}
//Function Number: 405
clear_colors()
{
clear_team_colors("axis");
clear_team_colors("allies");
}
//Function Number: 406
clear_team_colors(param_00)
{
level.currentcolorforced[param_00]["r"] = undefined;
level.currentcolorforced[param_00]["b"] = undefined;
level.currentcolorforced[param_00]["c"] = undefined;
level.currentcolorforced[param_00]["y"] = undefined;
level.currentcolorforced[param_00]["p"] = undefined;
level.currentcolorforced[param_00]["o"] = undefined;
level.currentcolorforced[param_00]["g"] = undefined;
}
//Function Number: 407
get_script_palette()
{
var_00 = [];
var_00["r"] = (1,0,0);
var_00["o"] = (1,0.5,0);
var_00["y"] = (1,1,0);
var_00["g"] = (0,1,0);
var_00["c"] = (0,1,1);
var_00["b"] = (0,0,1);
var_00["p"] = (1,0,1);
return var_00;
}
//Function Number: 408
notify_delay(param_00,param_01)
{
self endon("death");
if(param_01 > 0)
{
wait(param_01);
}
if(!isdefined(self))
{
return;
}
self notify(param_00);
}
//Function Number: 409
gun_remove()
{
if(isai(self))
{
animscripts\shared::placeweaponon(self.weapon,"none");
return;
}
detach_attachments_from_weapon_model(self.weapon);
self detach(getweaponmodel(self.weapon),"tag_weapon_right");
}
//Function Number: 410
gun_recall()
{
if(isai(self))
{
animscripts\shared::placeweaponon(self.weapon,"right");
return;
}
self attach(getweaponmodel(self.weapon),"tag_weapon_right");
update_weapon_tag_visibility(self.weapon);
}
//Function Number: 411
update_weapon_tag_visibility(param_00)
{
if(isdefined(param_00) && param_00 != "none")
{
var_01 = getweaponandattachmentmodels(param_00);
var_02 = array_remove_index(var_01,0);
foreach(var_04 in var_02)
{
self attach(var_04["worldModel"],var_04["attachTag"]);
}
self hideweapontags(param_00);
}
}
//Function Number: 412
detach_attachments_from_weapon_model(param_00)
{
if(isdefined(param_00) && param_00 != "none")
{
var_01 = getweaponandattachmentmodels(param_00);
var_02 = array_remove_index(var_01,0);
foreach(var_04 in var_02)
{
self detach(var_04["worldModel"],var_04["attachTag"],0);
}
}
}
//Function Number: 413
attach_player_current_weapon_to_rig(param_00)
{
var_01 = level.player getcurrentweapon();
var_02 = getweaponandattachmentmodels(var_01);
var_03 = var_02[0]["weapon"];
var_04 = array_remove_index(var_02,0);
param_00 attach(var_03,"TAG_WEAPON_RIGHT",1);
foreach(var_06 in var_04)
{
param_00 attach(var_06["attachment"],var_06["attachTag"]);
}
param_00 hideweapontags(var_01);
}
//Function Number: 414
place_weapon_on(param_00,param_01)
{
if(!animscripts\utility::aihasweapon(param_00))
{
animscripts\init::initweapon(param_00);
}
animscripts\shared::placeweaponon(param_00,param_01);
}
//Function Number: 415
forceuseweapon(param_00,param_01)
{
if(!animscripts\init::isweaponinitialized(param_00))
{
animscripts\init::initweapon(param_00);
}
var_02 = self.weapon != "none";
var_03 = animscripts\utility::usingsidearm();
var_04 = param_01 == "sidearm";
var_05 = param_01 == "secondary";
if(var_02 && var_03 != var_04)
{
if(var_03)
{
var_06 = "none";
}
else if(var_06)
{
var_06 = "back";
}
else
{
var_06 = "chest";
}
animscripts\shared::placeweaponon(self.weapon,var_06);
self.lastweapon = self.weapon;
}
else
{
self.lastweapon = param_00;
}
animscripts\shared::placeweaponon(param_00,"right");
if(var_04)
{
self.sidearm = param_00;
}
else if(var_05)
{
self.secondaryweapon = param_00;
}
else
{
self.primaryweapon = param_00;
}
self.weapon = param_00;
self.bulletsinclip = weaponclipsize(self.weapon);
self notify("weapon_switch_done");
}
//Function Number: 416
lerp_player_view_to_tag(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
maps\_utility_code::lerp_player_view_to_tag_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,0);
}
//Function Number: 417
lerp_player_view_to_tag_and_hit_geo(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
maps\_utility_code::lerp_player_view_to_tag_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,1);
}
//Function Number: 418
lerp_player_view_to_position(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
param_09 = get_player_from_self();
var_0A = spawn("script_origin",(0,0,0));
var_0A.origin = param_09.origin;
var_0A.angles = param_09 getplayerangles();
if(isdefined(param_08) && param_08)
{
param_09 playerlinkto(var_0A,"",param_03,param_04,param_05,param_06,param_07,param_08);
}
else if(isdefined(param_04))
{
param_09 playerlinkto(var_0A,"",param_03,param_04,param_05,param_06,param_07);
}
else if(isdefined(param_03))
{
param_09 playerlinkto(var_0A,"",param_03);
}
else
{
param_09 playerlinkto(var_0A);
}
var_0A moveto(param_00,param_02,param_02 * 0.25);
var_0A rotateto(param_01,param_02,param_02 * 0.25);
wait(param_02);
var_0A delete();
}
//Function Number: 419
lerp_player_view_to_tag_oldstyle(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
maps\_utility_code::lerp_player_view_to_tag_oldstyle_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,0);
}
//Function Number: 420
lerp_player_view_to_position_oldstyle(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
{
var_09 = get_player_from_self();
var_0A = spawn("script_origin",(0,0,0));
var_0A.origin = var_09 get_player_feet_from_view();
var_0A.angles = var_09 getplayerangles();
if(isdefined(param_08))
{
var_09 playerlinktodelta(var_0A,"",param_03,param_04,param_05,param_06,param_07,param_08);
}
else if(isdefined(param_04))
{
var_09 playerlinktodelta(var_0A,"",param_03,param_04,param_05,param_06,param_07);
}
else if(isdefined(param_03))
{
var_09 playerlinktodelta(var_0A,"",param_03);
}
else
{
var_09 playerlinktodelta(var_0A);
}
var_0A moveto(param_00,param_02,param_02 * 0.25);
var_0A rotateto(param_01,param_02,param_02 * 0.25);
wait(param_02);
var_0A delete();
}
//Function Number: 421
player_moves(param_00)
{
var_01 = level.player.origin;
for(;;)
{
if(distance(var_01,level.player.origin) > param_00)
{
break;
}
wait(0.05);
}
}
//Function Number: 422
waittill_either_function(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
thread maps\_utility_code::waittill_either_function_internal(var_04,param_00,param_01);
thread maps\_utility_code::waittill_either_function_internal(var_04,param_02,param_03);
var_04 waittill("done");
}
//Function Number: 423
waittill_msg(param_00)
{
self waittill(param_00);
}
//Function Number: 424
display_hint(param_00,param_01,param_02,param_03,param_04)
{
var_05 = get_player_from_self();
if(isdefined(level.trigger_hint_func[param_00]))
{
if(var_05 [[ level.trigger_hint_func[param_00] ]]())
{
return;
}
var_05 thread maps\_utility_code::hintprint(level.trigger_hint_string[param_00],level.trigger_hint_func[param_00],param_01,param_02,param_03,undefined,undefined,param_04);
return;
}
var_05 thread maps\_utility_code::hintprint(level.trigger_hint_string[param_00],undefined,undefined,undefined,undefined,undefined,undefined,param_04);
}
//Function Number: 425
hintdisplayhandler(param_00,param_01,param_02,param_03,param_04,param_05)
{
maps\_utility_code::hintdisplayhandlersetup(param_00);
if(!isdefined(param_01))
{
display_hint(param_00,param_02,param_03,param_04,param_05);
return;
}
display_hint_timeout(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 426
hintdisplaymintimehandler(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = get_player_from_self();
if(var_06 [[ level.trigger_hint_func[param_00] ]]())
{
return;
}
maps\_utility_code::hintdisplayhandlersetup(param_00);
var_06 thread maps\_utility_code::hintprint(level.trigger_hint_string[param_00],level.trigger_hint_func[param_00],param_03,param_04,param_05,param_01,param_02);
}
//Function Number: 427
add_control_based_hint_strings(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(level.trigger_hint_string))
{
level.trigger_hint_string = [];
level.trigger_hint_func = [];
}
level.trigger_hint_string[param_00] = param_01;
level.hint_list[param_00]["gamepad"] = param_01;
level.hint_list[param_00]["pc"] = param_03;
level.hint_list[param_00]["southpaw"] = param_04;
precachestring(param_01);
if(isdefined(param_03))
{
precachestring(param_03);
}
if(isdefined(param_04))
{
precachestring(param_04);
}
if(isdefined(param_02))
{
level.trigger_hint_func[param_00] = param_02;
}
}
//Function Number: 428
handletriggerhintinputtypetext()
{
if(!isdefined(level.hint_triggers))
{
level.hint_triggers = [];
}
for(;;)
{
level.hint_triggers = common_scripts\utility::array_removeundefined(level.hint_triggers);
if(isdefined(level.hint_triggers) && isdefined(level.player))
{
foreach(var_01 in level.hint_triggers)
{
if(level.player common_scripts\utility::is_player_gamepad_enabled())
{
var_01 sethintstring(var_01.gp_hint_text);
continue;
}
var_01 sethintstring(var_01.pc_hint_text);
}
}
wait(0.1);
}
}
//Function Number: 429
addhinttrigger(param_00,param_01)
{
if(!isdefined(level.hint_triggers))
{
thread handletriggerhintinputtypetext();
level.hint_triggers = [];
}
var_02 = 0;
foreach(var_04 in level.hint_triggers)
{
if(self == var_04)
{
var_04.gp_hint_text = param_00;
var_04.pc_hint_text = param_01;
var_02 = 1;
break;
}
}
if(!var_02)
{
self.gp_hint_text = param_00;
self.pc_hint_text = param_01;
level.hint_triggers = common_scripts\utility::array_add(level.hint_triggers,self);
}
}
//Function Number: 430
display_hint_timeout(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = get_player_from_self();
if(var_06 [[ level.trigger_hint_func[param_00] ]]())
{
return;
}
var_06 thread maps\_utility_code::hintprint(level.trigger_hint_string[param_00],level.trigger_hint_func[param_00],param_02,param_03,param_04,param_01,undefined,param_05);
}
//Function Number: 431
display_hint_timeout_mintime(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = get_player_from_self();
if(var_06 [[ level.trigger_hint_func[param_00] ]]())
{
return;
}
var_06 thread maps\_utility_code::hintprint(level.trigger_hint_string[param_00],level.trigger_hint_func[param_00],param_03,param_04,param_05,param_01,param_02);
}
//Function Number: 432
display_hint_stick(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(!isdefined(param_06))
{
param_06 = 0;
}
var_0A = maps\_utility_code::hint_stick_get_updated(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
thread display_hint(var_0A,param_07,param_08,param_09);
thread maps\_utility_code::hint_stick_update(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
}
//Function Number: 433
display_hint_stick_timeout(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_07))
{
param_07 = 0;
}
var_0B = maps\_utility_code::hint_stick_get_updated(param_00,param_02,param_03,param_04,param_05,param_06,param_07);
thread display_hint_timeout(var_0B,param_01,param_08,param_09,param_0A);
thread maps\_utility_code::hint_stick_update(param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 434
display_hint_stick_timeout_mintime(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_08))
{
param_08 = 0;
}
var_0C = maps\_utility_code::hint_stick_get_updated(param_00,param_03,param_04,param_05,param_06,param_07,param_08);
thread display_hint_timeout_mintime(var_0C,param_01,param_02,param_09,param_0A,param_0B);
thread maps\_utility_code::hint_stick_update(param_00,param_03,param_04,param_05,param_06,param_07,param_08);
}
//Function Number: 435
check_hint_condition(param_00,param_01,param_02,param_03)
{
if(isdefined(param_03))
{
return [[ level.trigger_hint_func[param_00] ]](param_01,param_02,param_03);
}
if(isdefined(param_02))
{
return [[ level.trigger_hint_func[param_00] ]](param_01,param_02);
}
if(isdefined(param_01))
{
return [[ level.trigger_hint_func[param_00] ]](param_01);
}
return [[ level.trigger_hint_func[param_00] ]]();
}
//Function Number: 436
getgenericanim(param_00)
{
return level.scr_anim["generic"][param_00];
}
//Function Number: 437
enable_careful()
{
self.script_careful = 1;
}
//Function Number: 438
disable_careful()
{
self.script_careful = 0;
self notify("stop_being_careful");
}
//Function Number: 439
enable_sprint()
{
self.sprint = 1;
}
//Function Number: 440
disable_sprint()
{
self.sprint = undefined;
}
//Function Number: 441
disable_bulletwhizbyreaction()
{
self.disablebulletwhizbyreaction = 1;
}
//Function Number: 442
enable_bulletwhizbyreaction()
{
self.disablebulletwhizbyreaction = undefined;
}
//Function Number: 443
clear_dvar(param_00)
{
setdvar(param_00,"");
}
//Function Number: 444
set_fixednode_true()
{
self.fixednode = 1;
}
//Function Number: 445
set_fixednode_false()
{
self.fixednode = 0;
}
//Function Number: 446
spawn_ai(param_00,param_01)
{
if(isdefined(self.script_delay_spawn))
{
self endon("death");
wait(self.script_delay_spawn);
}
var_02 = undefined;
var_03 = isdefined(self.script_stealth) && common_scripts\utility::flag("_stealth_enabled") && !common_scripts\utility::flag("_stealth_spotted");
if(isdefined(self.script_forcespawn) || isdefined(param_00))
{
if(!isdefined(self.script_drone))
{
var_02 = self stalingradspawn(var_03);
}
else
{
var_02 = dronespawn(self);
}
}
else if(!isdefined(self.script_drone))
{
var_02 = self dospawn(var_03);
}
else
{
var_02 = dronespawn(self);
}
if(isdefined(param_01) && param_01 && isalive(var_02))
{
var_02 magic_bullet_shield();
}
if(!isdefined(self.script_drone))
{
spawn_failed(var_02);
}
if(isdefined(self.script_spawn_once))
{
self delete();
}
if(isdefined(var_02))
{
var_02.spawner = self;
}
if(isdefined(var_02) && !isdefined(var_02.targetname))
{
if(isdefined(self.targetname))
{
var_02.targetname = self.targetname + "_AI";
}
}
return var_02;
}
//Function Number: 447
function_stack(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
var_06 thread maps\_utility_code::function_stack_proc(self,param_00,param_01,param_02,param_03,param_04,param_05);
return maps\_utility_code::function_stack_wait_finish(var_06);
}
//Function Number: 448
function_stack_timeout(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = spawnstruct();
var_07 thread maps\_utility_code::function_stack_proc(self,param_01,param_02,param_03,param_04,param_05,param_06);
if(isdefined(var_07.function_stack_func_begun) || var_07 common_scripts\utility::waittill_any_timeout(param_00,"function_stack_func_begun") != "timeout")
{
return maps\_utility_code::function_stack_wait_finish(var_07);
}
var_07 notify("death");
return 0;
}
//Function Number: 449
function_stack_clear()
{
var_00 = [];
if(isdefined(self.function_stack[0]) && isdefined(self.function_stack[0].function_stack_func_begun))
{
var_00[0] = self.function_stack[0];
}
self.function_stack = undefined;
self notify("clear_function_stack");
waittillframeend;
if(!var_00.size)
{
return;
}
if(!var_00[0].function_stack_func_begun)
{
return;
}
self.function_stack = var_00;
}
//Function Number: 450
geo_off()
{
if(isdefined(self.geo_off))
{
return;
}
self.realorigin = self getorigin();
self moveto(self.realorigin + (0,0,-10000),0.2);
self.geo_off = 1;
}
//Function Number: 451
geo_on()
{
if(!isdefined(self.geo_off))
{
return;
}
self moveto(self.realorigin,0.2);
self waittill("movedone");
self.geo_off = undefined;
}
//Function Number: 452
disable_exits()
{
self.disableexits = 1;
}
//Function Number: 453
enable_exits()
{
self.disableexits = undefined;
}
//Function Number: 454
disable_turnanims()
{
self.noturnanims = 1;
}
//Function Number: 455
enable_turnanims()
{
self.noturnanims = undefined;
}
//Function Number: 456
disable_arrivals()
{
self.disablearrivals = 1;
}
//Function Number: 457
enable_arrivals()
{
self endon("death");
waittillframeend;
self.disablearrivals = undefined;
}
//Function Number: 458
set_blur(param_00,param_01)
{
setblur(param_00,param_01);
}
//Function Number: 459
set_goal_radius(param_00)
{
self.goalradius = param_00;
}
//Function Number: 460
set_goal_node(param_00)
{
self.last_set_goalnode = param_00;
self.last_set_goalpos = undefined;
self.last_set_goalent = undefined;
self setgoalnode(param_00);
}
//Function Number: 461
set_goal_node_targetname(param_00)
{
var_01 = getnode(param_00,"targetname");
set_goal_node(var_01);
}
//Function Number: 462
set_goal_pos(param_00)
{
self.last_set_goalnode = undefined;
self.last_set_goalpos = param_00;
self.last_set_goalent = undefined;
self setgoalpos(param_00);
}
//Function Number: 463
set_goal_ent(param_00)
{
set_goal_pos(param_00.origin);
self.last_set_goalent = param_00;
}
//Function Number: 464
objective_complete(param_00)
{
maps\_utility_code::objective_recon(param_00);
objective_state(param_00,"done");
level notify("objective_complete" + param_00);
}
//Function Number: 465
handsignal(param_00,param_01,param_02,param_03)
{
var_04 = 1;
if(isdefined(param_01))
{
var_04 = !param_01;
}
if(isdefined(param_02))
{
level endon(param_02);
}
if(isdefined(param_03))
{
level waittill(param_03);
}
var_05 = "signal_" + param_00;
if(self.a.pose == "crouch")
{
var_05 = var_05 + "_crouch";
}
else if(self.script == "cover_right" || self.script == "cover_multi" && self.cover.state == "right")
{
var_05 = var_05 + "_coverR";
}
else if(animscripts\utility::iscqbwalking())
{
var_05 = var_05 + "_cqb";
}
if(var_04)
{
self setanimrestart(getgenericanim(var_05),1,0,1.1);
return;
}
maps\_anim::anim_generic(self,var_05);
}
//Function Number: 466
array_spawn(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
var_03 = [];
foreach(var_05 in param_00)
{
var_05.count = 1;
if(getsubstr(var_05.classname,7,10) == "veh")
{
var_06 = var_05 spawn_vehicle();
if(isdefined(var_06.target) && !isdefined(var_06.script_moveoverride))
{
var_06 thread maps\_vehicle::gopath();
}
var_03[var_03.size] = var_06;
continue;
}
var_06 = var_05 spawn_ai(param_01);
if(!param_02)
{
}
var_03[var_03.size] = var_06;
}
if(!param_02)
{
}
return var_03;
}
//Function Number: 467
array_spawn_cg(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
var_04 = [];
foreach(var_06 in param_00)
{
var_06.count = 1;
if(getsubstr(var_06.classname,7,10) == "veh")
{
var_07 = var_06 spawn_vehicle();
if(isdefined(var_07.target) && !isdefined(var_07.script_moveoverride))
{
var_07 thread maps\_vehicle::gopath();
}
var_04[var_04.size] = var_07;
continue;
}
var_07 = var_06 spawn_ai(1);
var_04 = common_scripts\utility::array_add(var_04,var_07);
if(isdefined(param_03))
{
wait(param_03);
continue;
}
wait 0.05;
}
if(!param_02)
{
}
return var_04;
}
//Function Number: 468
array_spawn_targetname(param_00,param_01,param_02,param_03)
{
var_04 = getentarray(param_00,"targetname");
if(isdefined(level.spawn_pool_enabled))
{
var_05 = common_scripts\utility::getstructarray(param_00,"targetname");
if(isdefined(param_03) && param_03)
{
deletestructarray_ref(var_05);
}
var_06 = maps\_spawner::get_pool_spawners_from_structarray(var_05);
var_04 = common_scripts\utility::array_combine(var_04,var_06);
}
return array_spawn(var_04,param_01,param_02);
}
//Function Number: 469
array_spawn_targetname_cg(param_00,param_01,param_02,param_03,param_04)
{
var_05 = getentarray(param_00,"targetname");
if(isdefined(level.spawn_pool_enabled))
{
var_06 = common_scripts\utility::getstructarray(param_00,"targetname");
if(isdefined(param_04) && param_04)
{
deletestructarray_ref(var_06);
}
var_07 = maps\_spawner::get_pool_spawners_from_structarray(var_06);
var_05 = common_scripts\utility::array_combine(var_05,var_07);
}
return array_spawn_cg(var_05,param_01,param_03,param_02);
}
//Function Number: 470
array_spawn_noteworthy(param_00,param_01,param_02,param_03)
{
var_04 = getentarray(param_00,"script_noteworthy");
if(isdefined(level.spawn_pool_enabled))
{
var_05 = common_scripts\utility::getstructarray(param_00,"script_noteworthy");
if(isdefined(param_03) && param_03)
{
deletestructarray_ref(var_05);
}
var_06 = maps\_spawner::get_pool_spawners_from_structarray(var_05);
var_04 = common_scripts\utility::array_combine(var_04,var_06);
}
return array_spawn(var_04,param_01,param_02);
}
//Function Number: 471
spawn_script_noteworthy(param_00,param_01)
{
var_02 = getent(param_00,"script_noteworthy");
var_03 = var_02 spawn_ai(param_01);
return var_03;
}
//Function Number: 472
spawn_targetname(param_00,param_01)
{
var_02 = getent(param_00,"targetname");
var_03 = var_02 spawn_ai(param_01);
return var_03;
}
//Function Number: 473
add_dialogue_line(param_00,param_01,param_02)
{
if(getdvarint("loc_warnings",0))
{
return;
}
if(!isdefined(level.dialogue_huds))
{
level.dialogue_huds = [];
}
var_03 = 0;
for(;;)
{
if(!isdefined(level.dialogue_huds[var_03]))
{
break;
}
var_03++;
}
var_04 = "^3";
if(isdefined(param_02))
{
switch(param_02)
{
case "red":
case "r":
break;
case "green":
case "g":
break;
case "yellow":
case "y":
break;
case "blue":
case "b":
break;
case "cyan":
case "c":
break;
case "purple":
case "p":
break;
case "white":
case "w":
break;
case "bl":
case "black":
break;
}
}
}
//Function Number: 474
destructible_disable_explosion()
{
common_scripts\_destructible::disable_explosion();
}
//Function Number: 475
destructible_force_explosion()
{
common_scripts\_destructible::force_explosion();
}
//Function Number: 476
set_grenadeammo(param_00)
{
self.grenadeammo = param_00;
}
//Function Number: 477
get_player_feet_from_view()
{
var_00 = self.origin;
var_01 = anglestoup(self getplayerangles());
var_02 = self getplayerviewheight();
var_03 = var_00 + (0,0,var_02);
var_04 = var_00 + var_01 * var_02;
var_05 = var_03 - var_04;
var_06 = var_00 + var_05;
return var_06;
}
//Function Number: 478
set_baseaccuracy(param_00)
{
self.baseaccuracy = param_00;
}
//Function Number: 479
set_console_status()
{
if(!isdefined(level.console))
{
level.console = getdvar("consoleGame") == "true";
}
else
{
}
if(!isdefined(level.xenon))
{
level.xenon = getdvar("xenonGame") == "true";
}
else
{
}
if(!isdefined(level.ps3))
{
level.ps3 = getdvar("ps3Game") == "true";
}
else
{
}
if(!isdefined(level.wiiugame))
{
level.wiiugame = getdvar("wiiuGame") == "true";
}
else
{
}
if(!isdefined(level.pccg))
{
level.pccg = getdvar("pccgGame") == "true";
}
else
{
}
if(!isdefined(level.xb3))
{
level.xb3 = getdvar("xb3Game") == "true";
}
else
{
}
if(!isdefined(level.ps4))
{
level.ps4 = getdvar("ps4Game") == "true";
}
else
{
}
if(!isdefined(level.pc))
{
level.pc = !level.console && !level.pccg;
}
else
{
}
if(!isdefined(level.currentgen))
{
level.currentgen = level.ps3 || level.pccg || level.xenon || level.wiiugame;
}
else
{
}
if(!isdefined(level.nextgen))
{
level.nextgen = level.pc || level.ps4 || level.xb3;
}
}
//Function Number: 480
is_gen4()
{
return level.nextgen;
}
//Function Number: 481
autosave_now(param_00)
{
return maps\_autosave::_autosave_game_now(param_00);
}
//Function Number: 482
autosave_now_silent()
{
return maps\_autosave::_autosave_game_now(1);
}
//Function Number: 483
set_generic_deathanim(param_00)
{
self.deathanim = getgenericanim(param_00);
}
//Function Number: 484
set_deathanim(param_00)
{
self.deathanim = getanim(param_00);
}
//Function Number: 485
clear_deathanim()
{
self.deathanim = undefined;
}
//Function Number: 486
hunted_style_door_open(param_00)
{
wait(1.75);
if(isdefined(param_00))
{
self playsound(param_00);
}
else
{
self playsound("door_wood_slow_open");
}
self rotateto(self.angles + (0,70,0),2,0.5,0);
self connectpaths();
self waittill("rotatedone");
self rotateto(self.angles + (0,40,0),2,0,2);
}
//Function Number: 487
palm_style_door_open(param_00)
{
wait(1.35);
if(isdefined(param_00))
{
self playsound(param_00);
}
else
{
self playsound("door_wood_slow_open");
}
self rotateto(self.angles + (0,70,0),2,0.5,0);
self connectpaths();
self waittill("rotatedone");
self rotateto(self.angles + (0,40,0),2,0,2);
}
//Function Number: 488
lerp_fov_overtime(param_00,param_01)
{
foreach(var_03 in level.players)
{
var_03 lerpfov(param_01,param_00);
}
wait(param_00);
}
//Function Number: 489
lerp_fovscale_overtime(param_00,param_01)
{
var_02 = getdvarfloat("cg_fovscale");
var_03 = int(param_00 / 0.05);
var_04 = param_01 - var_02 / var_03;
var_05 = var_02;
for(var_06 = 0;var_06 < var_03;var_06++)
{
var_05 = var_05 + var_04;
setsaveddvar("cg_fovscale",var_05);
wait(0.05);
}
setsaveddvar("cg_fovscale",param_01);
}
//Function Number: 490
putgunaway()
{
animscripts\shared::placeweaponon(self.weapon,"none");
self.weapon = "none";
}
//Function Number: 491
apply_fog()
{
maps\_art::set_fog_progress(0);
}
//Function Number: 492
apply_end_fog()
{
maps\_art::set_fog_progress(1);
}
//Function Number: 493
anim_stopanimscripted()
{
self stopanimscripted();
self notify("stop_loop");
self notify("single anim","end");
self notify("looping anim","end");
}
//Function Number: 494
disable_pain()
{
self.a.disablepain = 1;
self.allowpain = 0;
}
//Function Number: 495
enable_pain()
{
self.a.disablepain = 0;
self.allowpain = 1;
}
//Function Number: 496
_delete()
{
self delete();
}
//Function Number: 497
_kill()
{
self kill();
}
//Function Number: 498
kill_wrapper()
{
if(isplayer(self))
{
if(common_scripts\utility::flag_exist("special_op_terminated") && common_scripts\utility::flag("special_op_terminated"))
{
return 0;
}
if(is_player_down(self))
{
self disableinvulnerability();
}
}
self enabledeathshield(0);
self kill();
return 1;
}
//Function Number: 499
_setentitytarget(param_00)
{
self setentitytarget(param_00);
}
//Function Number: 500
_clearentitytarget()
{
self clearentitytarget();
}
//Function Number: 501
_unlink()
{
self unlink();
}
//Function Number: 502
disable_oneshotfx_with_noteworthy(param_00)
{
var_01 = getarraykeys(level._global_fx_ents[param_00]);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
level._global_fx_ents[param_00][var_01[var_02]].looper delete();
level._global_fx_ents[param_00][var_01[var_02]] = undefined;
}
}
//Function Number: 503
_setlightintensity(param_00)
{
self setlightintensity(param_00);
}
//Function Number: 504
_linkto(param_00,param_01,param_02,param_03)
{
if(isdefined(param_03))
{
self linkto(param_00,param_01,param_02,param_03);
return;
}
if(isdefined(param_02))
{
self linkto(param_00,param_01,param_02);
return;
}
if(isdefined(param_01))
{
self linkto(param_00,param_01);
return;
}
self linkto(param_00);
}
//Function Number: 505
array_wait(param_00,param_01,param_02)
{
var_03 = getarraykeys(param_00);
var_04 = [];
for(var_05 = 0;var_05 < var_03.size;var_05++)
{
var_06 = var_03[var_05];
}
for(var_05 = 0;var_05 < var_03.size;var_05++)
{
var_06 = var_03[var_05];
var_04[var_06] = spawnstruct();
var_04[var_06]._array_wait = 1;
var_04[var_06] thread maps\_utility_code::array_waitlogic1(param_00[var_06],param_01,param_02);
}
for(var_05 = 0;var_05 < var_03.size;var_05++)
{
var_06 = var_03[var_05];
if(isdefined(param_00[var_06]) && var_04[var_06]._array_wait)
{
var_04[var_06] waittill("_array_wait");
}
}
}
//Function Number: 506
die()
{
self kill((0,0,0));
}
//Function Number: 507
getmodel(param_00)
{
return level.scr_model[param_00];
}
//Function Number: 508
isads()
{
return self playerads() > 0.5;
}
//Function Number: 509
waittill_player_lookat(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_05))
{
param_05 = level.player;
}
var_06 = spawnstruct();
if(isdefined(param_03))
{
var_06 thread notify_delay("timeout",param_03);
}
var_06 endon("timeout");
if(!isdefined(param_00))
{
param_00 = 0.92;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
var_07 = int(param_01 * 20);
var_08 = var_07;
self endon("death");
var_09 = isai(self);
var_0A = undefined;
for(;;)
{
if(var_09)
{
var_0A = self geteye();
}
else
{
var_0A = self.origin;
}
if(param_05 player_looking_at(var_0A,param_00,param_02,param_04))
{
var_08--;
if(var_08 <= 0)
{
return 1;
}
}
else
{
var_08 = var_07;
}
wait(0.05);
}
}
//Function Number: 510
waittill_player_lookat_for_time(param_00,param_01,param_02,param_03)
{
waittill_player_lookat(param_01,param_00,param_02,undefined,param_03);
}
//Function Number: 511
player_looking_at(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_01))
{
param_01 = 0.8;
}
var_04 = get_player_from_self();
var_05 = var_04 geteye();
var_06 = vectortoangles(param_00 - var_05);
var_07 = anglestoforward(var_06);
var_08 = var_04 getplayerangles();
var_09 = anglestoforward(var_08);
var_0A = vectordot(var_07,var_09);
if(var_0A < param_01)
{
return 0;
}
if(isdefined(param_02))
{
return 1;
}
var_0B = bullettrace(param_00,var_05,0,param_03);
return var_0B["fraction"] == 1;
}
//Function Number: 512
either_player_looking_at(param_00,param_01,param_02,param_03)
{
for(var_04 = 0;var_04 < level.players.size;var_04++)
{
if(level.players[var_04] player_looking_at(param_00,param_01,param_02,param_03))
{
return 1;
}
}
return 0;
}
//Function Number: 513
player_can_see_ai(param_00,param_01)
{
var_02 = gettime();
if(!isdefined(param_01))
{
param_01 = 0;
}
if(isdefined(param_00.playerseesmetime) && param_00.playerseesmetime + param_01 >= var_02)
{
return param_00.playerseesme;
}
param_00.playerseesmetime = var_02;
if(!common_scripts\utility::within_fov(level.player.origin,level.player.angles,param_00.origin,0.766))
{
param_00.playerseesme = 0;
return 0;
}
var_03 = level.player geteye();
var_04 = param_00.origin;
if(sighttracepassed(var_03,var_04,1,level.player,param_00))
{
param_00.playerseesme = 1;
return 1;
}
var_05 = param_00 geteye();
if(sighttracepassed(var_03,var_05,1,level.player,param_00))
{
param_00.playerseesme = 1;
return 1;
}
var_06 = var_05 + var_04 * 0.5;
if(sighttracepassed(var_03,var_06,1,level.player,param_00))
{
param_00.playerseesme = 1;
return 1;
}
param_00.playerseesme = 0;
return 0;
}
//Function Number: 514
players_within_distance(param_00,param_01)
{
var_02 = param_00 * param_00;
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
if(distancesquared(param_01,level.players[var_03].origin) < var_02)
{
return 1;
}
}
return 0;
}
//Function Number: 515
ai_delete_when_out_of_sight(param_00,param_01)
{
if(!isdefined(param_00))
{
return;
}
var_02 = 0.75;
if(issplitscreen())
{
var_02 = 0.65;
}
while(param_00.size > 0)
{
wait(1);
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
if(!isdefined(param_00[var_03]) || !isalive(param_00[var_03]))
{
param_00 = common_scripts\utility::array_remove(param_00,param_00[var_03]);
continue;
}
if(players_within_distance(param_01,param_00[var_03].origin))
{
continue;
}
if(either_player_looking_at(param_00[var_03].origin + (0,0,48),var_02,1))
{
continue;
}
if(isdefined(param_00[var_03].magic_bullet_shield))
{
param_00[var_03] stop_magic_bullet_shield();
}
param_00[var_03] delete();
param_00 = common_scripts\utility::array_remove(param_00,param_00[var_03]);
}
}
}
//Function Number: 516
add_wait(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.caller = self;
var_04.func = param_00;
var_04.parms = [];
if(isdefined(param_01))
{
var_04.parms[var_04.parms.size] = param_01;
}
if(isdefined(param_02))
{
var_04.parms[var_04.parms.size] = param_02;
}
if(isdefined(param_03))
{
var_04.parms[var_04.parms.size] = param_03;
}
level.wait_any_func_array[level.wait_any_func_array.size] = var_04;
}
//Function Number: 517
add_abort(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04.caller = self;
var_04.func = param_00;
var_04.parms = [];
if(isdefined(param_01))
{
var_04.parms[var_04.parms.size] = param_01;
}
if(isdefined(param_02))
{
var_04.parms[var_04.parms.size] = param_02;
}
if(isdefined(param_03))
{
var_04.parms[var_04.parms.size] = param_03;
}
level.abort_wait_any_func_array[level.abort_wait_any_func_array.size] = var_04;
}
//Function Number: 518
add_func(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
var_06.caller = self;
var_06.func = param_00;
var_06.parms = [];
if(isdefined(param_01))
{
var_06.parms[var_06.parms.size] = param_01;
}
if(isdefined(param_02))
{
var_06.parms[var_06.parms.size] = param_02;
}
if(isdefined(param_03))
{
var_06.parms[var_06.parms.size] = param_03;
}
if(isdefined(param_04))
{
var_06.parms[var_06.parms.size] = param_04;
}
if(isdefined(param_05))
{
var_06.parms[var_06.parms.size] = param_05;
}
level.run_func_after_wait_array[level.run_func_after_wait_array.size] = var_06;
}
//Function Number: 519
add_call(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
var_06.caller = self;
var_06.func = param_00;
var_06.parms = [];
if(isdefined(param_01))
{
var_06.parms[var_06.parms.size] = param_01;
}
if(isdefined(param_02))
{
var_06.parms[var_06.parms.size] = param_02;
}
if(isdefined(param_03))
{
var_06.parms[var_06.parms.size] = param_03;
}
if(isdefined(param_04))
{
var_06.parms[var_06.parms.size] = param_04;
}
if(isdefined(param_05))
{
var_06.parms[var_06.parms.size] = param_05;
}
level.run_call_after_wait_array[level.run_call_after_wait_array.size] = var_06;
}
//Function Number: 520
add_noself_call(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = spawnstruct();
var_06.func = param_00;
var_06.parms = [];
if(isdefined(param_01))
{
var_06.parms[var_06.parms.size] = param_01;
}
if(isdefined(param_02))
{
var_06.parms[var_06.parms.size] = param_02;
}
if(isdefined(param_03))
{
var_06.parms[var_06.parms.size] = param_03;
}
if(isdefined(param_04))
{
var_06.parms[var_06.parms.size] = param_04;
}
if(isdefined(param_05))
{
var_06.parms[var_06.parms.size] = param_05;
}
level.run_noself_call_after_wait_array[level.run_noself_call_after_wait_array.size] = var_06;
}
//Function Number: 521
add_endon(param_00)
{
var_01 = spawnstruct();
var_01.caller = self;
var_01.ender = param_00;
level.do_wait_endons_array[level.do_wait_endons_array.size] = var_01;
}
//Function Number: 522
do_wait_any()
{
do_wait(level.wait_any_func_array.size - 1);
}
//Function Number: 523
do_wait(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
var_01 = spawnstruct();
var_02 = level.wait_any_func_array;
var_03 = level.do_wait_endons_array;
var_04 = level.run_func_after_wait_array;
var_05 = level.run_call_after_wait_array;
var_06 = level.run_noself_call_after_wait_array;
var_07 = level.abort_wait_any_func_array;
level.wait_any_func_array = [];
level.run_func_after_wait_array = [];
level.do_wait_endons_array = [];
level.abort_wait_any_func_array = [];
level.run_call_after_wait_array = [];
level.run_noself_call_after_wait_array = [];
var_01.count = var_02.size;
var_01 common_scripts\utility::array_levelthread(var_02,::maps\_utility_code::waittill_func_ends,var_03);
var_01 thread maps\_utility_code::do_abort(var_07);
var_01 endon("any_funcs_aborted");
for(;;)
{
if(var_01.count <= param_00)
{
break;
}
var_01 waittill("func_ended");
}
var_01 notify("all_funcs_ended");
common_scripts\utility::array_levelthread(var_04,::maps\_utility_code::exec_func,[]);
common_scripts\utility::array_levelthread(var_05,::maps\_utility_code::exec_call);
common_scripts\utility::array_levelthread(var_06,::maps\_utility_code::exec_call_noself);
}
//Function Number: 524
do_funcs()
{
var_00 = spawnstruct();
var_01 = level.run_func_after_wait_array;
level.run_func_after_wait_array = [];
foreach(var_03 in var_01)
{
level maps\_utility_code::exec_func(var_03,[]);
}
var_00 notify("all_funcs_ended");
}
//Function Number: 525
is_default_start()
{
if(isdefined(level.forced_start_catchup) && level.forced_start_catchup == 1)
{
return 0;
}
if(isdefined(level.default_start_override) && level.default_start_override == level.start_point)
{
return 1;
}
if(isdefined(level.default_start))
{
return level.start_point == "default";
}
if(level_has_start_points())
{
return level.start_point == level.start_functions[0]["name"];
}
return level.start_point == "default";
}
//Function Number: 526
force_start_catchup()
{
level.forced_start_catchup = 1;
}
//Function Number: 527
is_first_start()
{
if(!level_has_start_points())
{
return 1;
}
return level.start_point == level.start_functions[0]["name"];
}
//Function Number: 528
is_after_start(param_00)
{
var_01 = 0;
if(level.start_point == param_00)
{
return 0;
}
for(var_02 = 0;var_02 < level.start_functions.size;var_02++)
{
if(level.start_functions[var_02]["name"] == param_00)
{
var_01 = 1;
continue;
}
if(level.start_functions[var_02]["name"] == level.start_point)
{
return var_01;
}
}
}
//Function Number: 529
_earthquake(param_00,param_01,param_02,param_03)
{
earthquake(param_00,param_01,param_02,param_03);
}
//Function Number: 530
waterfx(param_00,param_01)
{
self endon("death");
var_02 = 0;
if(isdefined(param_01))
{
var_02 = 1;
}
if(isdefined(param_00))
{
common_scripts\utility::flag_assert(param_00);
level endon(param_00);
}
for(;;)
{
wait(randomfloatrange(0.15,0.3));
var_03 = self.origin + (0,0,150);
var_04 = self.origin - (0,0,150);
var_05 = bullettrace(var_03,var_04,0,undefined);
if(!issubstr(var_05["surfacetype"],"water"))
{
continue;
}
var_06 = "water_movement";
if(isplayer(self))
{
if(distance(self getvelocity(),(0,0,0)) < 5)
{
var_06 = "water_stop";
}
}
else if(isdefined(level._effect["water_" + self.a.movement]))
{
var_06 = "water_" + self.a.movement;
}
var_07 = common_scripts\utility::getfx(var_06);
var_03 = var_05["position"];
var_08 = (0,self.angles[1],0);
var_09 = anglestoforward(var_08);
var_0A = anglestoup(var_08);
playfx(var_07,var_03,var_0A,var_09);
if(var_06 != "water_stop" && var_02)
{
thread common_scripts\utility::play_sound_in_space(param_01,var_03);
}
}
}
//Function Number: 531
playersnowfootsteps(param_00)
{
if(isdefined(param_00))
{
common_scripts\utility::flag_assert(param_00);
level endon(param_00);
}
for(;;)
{
wait(randomfloatrange(0.25,0.5));
var_01 = self.origin + (0,0,0);
var_02 = self.origin - (0,0,5);
var_03 = bullettrace(var_01,var_02,0,undefined);
var_04 = anglestoforward(self.angles);
var_05 = distance(self getvelocity(),(0,0,0));
if(isdefined(self.vehicle))
{
continue;
}
if(var_03["surfacetype"] != "snow")
{
continue;
}
if(var_05 <= 10)
{
continue;
}
var_06 = "snow_movement";
if(distance(self getvelocity(),(0,0,0)) <= 154)
{
playfx(common_scripts\utility::getfx("footstep_snow_small"),var_03["position"],var_03["normal"],var_04);
}
if(distance(self getvelocity(),(0,0,0)) > 154)
{
playfx(common_scripts\utility::getfx("footstep_snow"),var_03["position"],var_03["normal"],var_04);
}
}
}
//Function Number: 532
mix_up(param_00)
{
var_01 = 60;
for(var_02 = 0;var_02 < var_01;var_02++)
{
self setsoundblend(param_00,param_00 + "_off",var_01 - var_02 / var_01);
wait(0.05);
}
}
//Function Number: 533
mix_down(param_00)
{
var_01 = 60;
for(var_02 = 0;var_02 < var_01;var_02++)
{
self setsoundblend(param_00,param_00 + "_off",var_02 / var_01);
wait(0.05);
}
}
//Function Number: 534
manual_linkto(param_00,param_01)
{
param_00 endon("death");
self endon("death");
if(!isdefined(param_01))
{
param_01 = (0,0,0);
}
for(;;)
{
self.origin = param_00.origin + param_01;
self.angles = param_00.angles;
wait(0.05);
}
}
//Function Number: 535
nextmission()
{
maps\_utility_code::mission_recon();
maps\_endmission::_nextmission();
}
//Function Number: 536
make_array(param_00,param_01,param_02,param_03,param_04)
{
var_05 = [];
var_05[var_05.size] = param_00;
if(isdefined(param_01))
{
var_05[var_05.size] = param_01;
}
if(isdefined(param_02))
{
var_05[var_05.size] = param_02;
}
if(isdefined(param_03))
{
var_05[var_05.size] = param_03;
}
if(isdefined(param_04))
{
var_05[var_05.size] = param_04;
}
return var_05;
}
//Function Number: 537
fail_on_friendly_fire()
{
level.failonfriendlyfire = 1;
}
//Function Number: 538
normal_friendly_fire_penalty()
{
level.failonfriendlyfire = 0;
}
//Function Number: 539
getplayerclaymores()
{
var_00 = self getweaponslistall();
var_01 = [];
for(var_02 = 0;var_02 < var_00.size;var_02++)
{
var_03 = var_00[var_02];
var_01[var_03] = self getweaponammoclip(var_03);
}
var_04 = 0;
if(isdefined(var_01["claymore"]) && var_01["claymore"] > 0)
{
var_04 = var_01["claymore"];
}
return var_04;
}
//Function Number: 540
_wait(param_00)
{
wait(param_00);
}
//Function Number: 541
_waittillmatch(param_00,param_01)
{
self waittillmatch(param_01,param_00);
}
//Function Number: 542
_setsaveddvar(param_00,param_01)
{
setsaveddvar(param_00,param_01);
}
//Function Number: 543
lerp_saveddvar(param_00,param_01,param_02)
{
var_03 = getdvarfloat(param_00);
level notify(param_00 + "_lerp_savedDvar");
level endon(param_00 + "_lerp_savedDvar");
var_04 = param_01 - var_03;
var_05 = 0.05;
var_06 = int(param_02 / var_05);
var_07 = var_04 / var_06;
while(var_06)
{
var_03 = var_03 + var_07;
setsaveddvar(param_00,var_03);
wait(var_05);
var_06--;
}
setsaveddvar(param_00,param_01);
}
//Function Number: 544
lerp_saveddvar_cg_ng(param_00,param_01,param_02,param_03)
{
if(is_gen4())
{
lerp_saveddvar(param_00,param_02,param_03);
return;
}
lerp_saveddvar(param_00,param_01,param_03);
}
//Function Number: 545
giveachievement_wrapper(param_00)
{
if(is_demo())
{
return;
}
foreach(var_02 in level.players)
{
var_02 giveachievement(param_00);
}
setspmatchdata("achievements_completed",param_00,1);
}
//Function Number: 546
player_giveachievement_wrapper(param_00)
{
if(is_demo())
{
return;
}
self giveachievement(param_00);
}
//Function Number: 547
add_jav_glow(param_00)
{
var_01 = spawn("script_model",(0,0,0));
var_01 setcontents(0);
var_01 setmodel("weapon_javelin_obj");
var_01.origin = self.origin;
var_01.angles = self.angles;
add_wait(::delete_on_not_defined);
if(isdefined(param_00))
{
common_scripts\utility::flag_assert(param_00);
add_wait(::common_scripts\utility::flag_wait,param_00);
}
do_wait_any();
var_01 delete();
}
//Function Number: 548
add_c4_glow(param_00)
{
var_01 = spawn("script_model",(0,0,0));
var_01 setcontents(0);
var_01 setmodel("weapon_c4_obj");
var_01.origin = self.origin;
var_01.angles = self.angles;
add_wait(::delete_on_not_defined);
if(isdefined(param_00))
{
common_scripts\utility::flag_assert(param_00);
add_wait(::common_scripts\utility::flag_wait,param_00);
}
do_wait_any();
var_01 delete();
}
//Function Number: 549
delete_on_not_defined()
{
for(;;)
{
if(!isdefined(self))
{
return;
}
wait(0.05);
}
}
//Function Number: 550
slowmo_start()
{
}
//Function Number: 551
slowmo_end()
{
}
//Function Number: 552
slowmo_setspeed_slow(param_00)
{
level.slowmo.speed_slow = param_00;
}
//Function Number: 553
slowmo_setspeed_norm(param_00)
{
level.slowmo.speed_norm = param_00;
}
//Function Number: 554
slowmo_setlerptime_in(param_00)
{
level.slowmo.lerp_time_in = param_00;
}
//Function Number: 555
slowmo_setlerptime_out(param_00)
{
level.slowmo.lerp_time_out = param_00;
}
//Function Number: 556
slowmo_lerp_in()
{
if(isdefined(level.no_slowmo) && level.no_slowmo)
{
return;
}
setslowmotion(level.slowmo.speed_norm,level.slowmo.speed_slow,level.slowmo.lerp_time_in);
}
//Function Number: 557
slowmo_lerp_out()
{
if(isdefined(level.no_slowmo) && level.no_slowmo)
{
return;
}
setslowmotion(level.slowmo.speed_slow,level.slowmo.speed_norm,level.slowmo.lerp_time_out);
}
//Function Number: 558
add_earthquake(param_00,param_01,param_02,param_03)
{
level.earthquake[param_00]["magnitude"] = param_01;
level.earthquake[param_00]["duration"] = param_02;
level.earthquake[param_00]["radius"] = param_03;
}
//Function Number: 559
arcademode()
{
return getdvar("arcademode") == "1";
}
//Function Number: 560
arcademode_stop_timer()
{
if(!isdefined(level.arcademode_hud_timer))
{
return;
}
level notify("arcadeMode_remove_timer");
level.arcademode_stoptime = gettime();
level.arcademode_hud_timer destroy();
level.arcademode_hud_timer = undefined;
}
//Function Number: 561
musicplaywrapper(param_00,param_01,param_02)
{
level._audio.last_song = param_00;
if(!isdefined(param_01))
{
param_01 = 1;
}
if(!isdefined(param_02))
{
param_02 = 0;
}
musicstop(0);
musicplay(param_00,0,1,1,param_02);
}
//Function Number: 562
music_loop(param_00,param_01,param_02,param_03,param_04)
{
thread maps\_utility_code::music_loop_internal(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 563
music_loop_stealth(param_00,param_01,param_02,param_03,param_04)
{
thread maps\_utility_code::music_loop_internal(param_00,param_01,param_02,param_03,param_04,1);
}
//Function Number: 564
music_play(param_00,param_01,param_02,param_03)
{
if(isdefined(param_01) && param_01 > 0)
{
thread maps\_utility_code::music_play_internal_stop_with_fade_then_call(param_00,param_01,param_02,param_03);
return;
}
music_stop();
musicplaywrapper(param_00,param_02,param_03);
}
//Function Number: 565
music_crossfade(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
if(!isdefined(param_03))
{
param_03 = 0;
}
if(isdefined(level._audio.last_song))
{
musicstop(param_01,level._audio.last_song,param_03);
}
else
{
iprintln("^3WARNING! script music_crossfade(): No previous song was played - no previous song to crossfade from - not fading out anything");
}
level._audio.last_song = param_00;
musicplay(param_00,param_01,param_02,0,param_03);
level endon("stop_music");
wait(param_01);
level notify("done_crossfading");
}
//Function Number: 566
music_stop(param_00)
{
if(!isdefined(param_00) || param_00 <= 0)
{
musicstop();
}
else
{
musicstop(param_00);
}
level notify("stop_music");
}
//Function Number: 567
player_is_near_live_grenade()
{
var_00 = getentarray("grenade","classname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_02 = var_00[var_01];
if(var_02.model == "weapon_claymore")
{
continue;
}
for(var_03 = 0;var_03 < level.players.size;var_03++)
{
var_04 = level.players[var_03];
if(distancesquared(var_02.origin,var_04.origin) < 75625)
{
return 1;
}
}
}
return 0;
}
//Function Number: 568
player_died_recently()
{
return getdvarint("player_died_recently","0") > 0;
}
//Function Number: 569
all_players_istouching(param_00)
{
foreach(var_02 in level.players)
{
if(!var_02 istouching(param_00))
{
return 0;
}
}
return 1;
}
//Function Number: 570
any_players_istouching(param_00)
{
foreach(var_02 in level.players)
{
if(var_02 istouching(param_00))
{
return 1;
}
}
return 0;
}
//Function Number: 571
getdifficulty()
{
if(level.gameskill < 1)
{
return "easy";
}
if(level.gameskill < 2)
{
return "medium";
}
if(level.gameskill < 3)
{
return "hard";
}
return "fu";
}
//Function Number: 572
getaverageplayerorigin()
{
var_00 = 0;
var_01 = 0;
var_02 = 0;
foreach(var_04 in level.players)
{
var_00 = var_00 + var_04.origin[0];
var_01 = var_01 + var_04.origin[1];
var_02 = var_02 + var_04.origin[2];
}
var_00 = var_00 / level.players.size;
var_01 = var_01 / level.players.size;
var_02 = var_02 / level.players.size;
return (var_00,var_01,var_02);
}
//Function Number: 573
get_average_origin(param_00)
{
var_01 = (0,0,0);
foreach(var_03 in param_00)
{
var_01 = var_01 + var_03.origin;
}
return var_01 * 1 / param_00.size;
}
//Function Number: 574
generic_damage_think()
{
self.damage_functions = [];
self endon("entitydeleted");
self endon("stop_generic_damage_think");
for(;;)
{
self waittill("damage",var_00,var_01,var_02,var_03,var_04,var_05,var_06);
foreach(var_08 in self.damage_functions)
{
thread [[ var_08 ]](var_00,var_01,var_02,var_03,var_04,var_05,var_06);
}
}
}
//Function Number: 575
add_damage_function(param_00)
{
self.damage_functions[self.damage_functions.size] = param_00;
}
//Function Number: 576
remove_damage_function(param_00)
{
var_01 = [];
foreach(var_03 in self.damage_functions)
{
if(var_03 == param_00)
{
continue;
}
var_01[var_01.size] = var_03;
}
self.damage_functions = var_01;
}
//Function Number: 577
givexp(param_00,param_01)
{
if(isdefined(level.xp_enable) && level.xp_enable && isdefined(level.xp_give_func))
{
self [[ level.xp_give_func ]](param_00,param_01);
}
}
//Function Number: 578
playlocalsoundwrapper(param_00)
{
self playlocalsound(param_00);
}
//Function Number: 579
enableplayerweapons(param_00)
{
if(level.players.size < 1)
{
return;
}
foreach(var_02 in level.players)
{
if(param_00 == 1)
{
var_02 enableweapons();
continue;
}
var_02 disableweapons();
}
}
//Function Number: 580
teleport_players(param_00)
{
var_01 = undefined;
var_02 = undefined;
var_03 = undefined;
foreach(var_05 in param_00)
{
if(isdefined(var_05.script_noteworthy) && var_05.script_noteworthy == "player1")
{
var_01 = var_05;
continue;
}
if(isdefined(var_05.script_noteworthy) && var_05.script_noteworthy == "player2")
{
var_02 = var_05;
continue;
}
if(!isdefined(var_01))
{
var_01 = var_05;
}
if(!isdefined(var_02))
{
var_02 = var_05;
}
}
foreach(var_08 in level.players)
{
if(var_08 == level.player)
{
var_03 = var_01;
}
else if(var_08 == level.player2)
{
var_03 = var_02;
}
var_08 setorigin(var_03.origin);
var_08 setplayerangles(var_03.angles);
}
}
//Function Number: 581
teleport_player(param_00)
{
level.player setorigin(param_00.origin);
if(isdefined(param_00.angles))
{
level.player setplayerangles(param_00.angles);
}
}
//Function Number: 582
translate_local()
{
var_00 = [];
if(isdefined(self.entities))
{
var_00 = self.entities;
}
if(isdefined(self.entity))
{
var_00[var_00.size] = self.entity;
}
common_scripts\utility::array_levelthread(var_00,::maps\_utility_code::translate_local_on_ent);
}
//Function Number: 583
open_up_fov(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
level.player endon("stop_opening_fov");
wait(param_00);
level.player playerlinktodelta(param_01,param_02,1,param_03,param_04,param_05,param_06,1);
}
//Function Number: 584
get_ai_touching_volume(param_00,param_01,param_02)
{
if(!isdefined(param_00))
{
param_00 = "all";
}
if(!isdefined(param_01))
{
param_01 = "all";
}
var_03 = getaispeciesarray(param_00,param_01);
var_04 = [];
foreach(var_06 in var_03)
{
if(var_06 istouching(self))
{
var_04[var_04.size] = var_06;
}
}
return var_04;
}
//Function Number: 585
get_drones_touching_volume(param_00)
{
if(!isdefined(param_00))
{
param_00 = "all";
}
var_01 = [];
if(param_00 == "all")
{
var_01 = array_merge(level.drones["allies"].array,level.drones["axis"].array);
var_01 = array_merge(var_01,level.drones["neutral"].array);
}
else
{
var_01 = level.drones[param_00].array;
}
var_02 = [];
foreach(var_04 in var_01)
{
if(!isdefined(var_04))
{
continue;
}
if(var_04 istouching(self))
{
var_02[var_02.size] = var_04;
}
}
return var_02;
}
//Function Number: 586
get_drones_with_targetname(param_00)
{
var_01 = array_merge(level.drones["allies"].array,level.drones["axis"].array);
var_01 = array_merge(var_01,level.drones["neutral"].array);
var_02 = [];
foreach(var_04 in var_01)
{
if(!isdefined(var_04))
{
continue;
}
if(isdefined(var_04.targetname) && var_04.targetname == param_00)
{
var_02[var_02.size] = var_04;
}
}
return var_02;
}
//Function Number: 587
get_other_player(param_00)
{
foreach(var_02 in level.players)
{
if(param_00 == var_02)
{
continue;
}
return var_02;
}
}
//Function Number: 588
set_count(param_00)
{
self.count = param_00;
}
//Function Number: 589
follow_path(param_00,param_01,param_02,param_03)
{
self notify("_utility::follow_path");
self endon("_utility::follow_path");
self endon("death");
var_04 = undefined;
if(!isdefined(param_00.classname))
{
if(!isdefined(param_00.type))
{
var_04 = "struct";
}
else
{
var_04 = "node";
}
}
else
{
var_04 = "entity";
}
if(!isdefined(param_01))
{
param_01 = 300;
}
var_05 = self.script_forcegoal;
self.script_forcegoal = 1;
maps\_spawner::go_to_node(param_00,var_04,param_02,param_01,param_03);
self.script_forcegoal = var_05;
}
//Function Number: 590
enable_dynamic_run_speed(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_00))
{
param_00 = 250;
}
if(!isdefined(param_01))
{
param_01 = 100;
}
if(!isdefined(param_02))
{
param_02 = param_00 * 2;
}
if(!isdefined(param_03))
{
param_03 = param_00 * 1.25;
}
if(!isdefined(param_05))
{
param_05 = 0;
}
self.dontchangemoveplaybackrate = param_05;
thread maps\_utility_code::dynamic_run_speed_proc(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 591
disable_dynamic_run_speed()
{
self notify("stop_dynamic_run_speed");
}
//Function Number: 592
player_seek_enable()
{
self endon("death");
self endon("stop_player_seek");
var_00 = 1200;
if(has_shotgun())
{
var_00 = 250;
}
var_01 = distance(self.origin,level.player.origin);
for(;;)
{
wait(2);
self.goalradius = var_01;
var_02 = get_closest_player(self.origin);
self setgoalentity(var_02);
var_01 = var_01 - 175;
if(var_01 < var_00)
{
var_01 = var_00;
return;
}
}
}
//Function Number: 593
player_seek_disable()
{
self notify("stop_player_seek");
}
//Function Number: 594
waittill_entity_in_range_or_timeout(param_00,param_01,param_02)
{
self endon("death");
param_00 endon("death");
if(!isdefined(param_02))
{
param_02 = 5;
}
var_03 = gettime() + param_02 * 1000;
while(isdefined(param_00))
{
if(distance(param_00.origin,self.origin) <= param_01)
{
break;
}
if(gettime() > var_03)
{
break;
}
wait(0.1);
}
}
//Function Number: 595
waittill_entity_in_range(param_00,param_01)
{
self endon("death");
param_00 endon("death");
while(isdefined(param_00))
{
if(distance(param_00.origin,self.origin) <= param_01)
{
break;
}
wait(0.1);
}
}
//Function Number: 596
waittill_entity_out_of_range(param_00,param_01)
{
self endon("death");
param_00 endon("death");
while(isdefined(param_00))
{
if(distance(param_00.origin,self.origin) > param_01)
{
break;
}
wait(0.1);
}
}
//Function Number: 597
has_shotgun()
{
self endon("death");
if(!isdefined(self.weapon))
{
return 0;
}
if(weaponclass(self.weapon) == "spread")
{
return 1;
}
return 0;
}
//Function Number: 598
isprimaryweapon(param_00)
{
if(param_00 == "none")
{
return 0;
}
if(weaponinventorytype(param_00) != "primary")
{
return 0;
}
switch(weaponclass(param_00))
{
case "rocketlauncher":
case "spread":
case "smg":
case "mg":
case "pistol":
case "rifle":
case "sniper":
break;
default:
break;
}
}
//Function Number: 599
player_has_thermal()
{
var_00 = self getweaponslistall();
if(!isdefined(var_00))
{
return 0;
}
foreach(var_02 in var_00)
{
if(issubstr(var_02,"thermal"))
{
return 1;
}
}
return 0;
}
//Function Number: 600
waittill_true_goal(param_00,param_01)
{
self endon("death");
if(!isdefined(param_01))
{
param_01 = self.goalradius;
}
for(;;)
{
self waittill("goal");
if(distance(self.origin,param_00) < param_01 + 10)
{
break;
}
}
}
//Function Number: 601
player_speed_percent(param_00,param_01)
{
var_02 = int(getdvar("g_speed"));
if(!isdefined(level.player.g_speed))
{
level.player.g_speed = var_02;
}
var_03 = int(level.player.g_speed * param_00 * 0.01);
level.player player_speed_set(var_03,param_01);
}
//Function Number: 602
blend_movespeedscale_percent(param_00,param_01)
{
var_02 = self;
if(!isplayer(var_02))
{
var_02 = level.player;
}
if(!isdefined(var_02.movespeedscale))
{
var_02.movespeedscale = 1;
}
var_03 = param_00 * 0.01;
var_02 blend_movespeedscale(var_03,param_01);
}
//Function Number: 603
player_speed_set(param_00,param_01)
{
var_02 = int(getdvar("g_speed"));
if(!isdefined(level.player.g_speed))
{
level.player.g_speed = var_02;
}
var_03 = ::maps\_utility_code::g_speed_get_func;
var_04 = ::maps\_utility_code::g_speed_set_func;
level.player thread player_speed_proc(param_00,param_01,var_03,var_04,"player_speed_set");
}
//Function Number: 604
player_bob_scale_set(param_00,param_01)
{
var_02 = ::maps\_utility_code::g_bob_scale_get_func;
var_03 = ::maps\_utility_code::g_bob_scale_set_func;
level.player thread player_speed_proc(param_00,param_01,var_02,var_03,"player_bob_scale_set");
}
//Function Number: 605
blend_movespeedscale(param_00,param_01)
{
var_02 = self;
if(!isplayer(var_02))
{
var_02 = level.player;
}
if(!isdefined(var_02.movespeedscale))
{
var_02.movespeedscale = 1;
}
var_03 = ::maps\_utility_code::movespeed_get_func;
var_04 = ::maps\_utility_code::movespeed_set_func;
var_02 thread player_speed_proc(param_00,param_01,var_03,var_04,"blend_movespeedscale");
}
//Function Number: 606
player_speed_proc(param_00,param_01,param_02,param_03,param_04)
{
self notify(param_04);
self endon(param_04);
var_05 = [[ param_02 ]]();
var_06 = param_00;
if(isdefined(param_01))
{
var_07 = var_06 - var_05;
var_08 = 0.05;
var_09 = param_01 / var_08;
var_0A = var_07 / var_09;
while(abs(var_06 - var_05) > abs(var_0A * 1.1))
{
var_05 = var_05 + var_0A;
[[ param_03 ]](var_05);
wait(var_08);
}
}
[[ param_03 ]](var_06);
}
//Function Number: 607
player_speed_default(param_00)
{
if(!isdefined(level.player.g_speed))
{
return;
}
level.player player_speed_set(level.player.g_speed,param_00);
waittillframeend;
level.player.g_speed = undefined;
}
//Function Number: 608
blend_movespeedscale_default(param_00)
{
var_01 = self;
if(!isplayer(var_01))
{
var_01 = level.player;
}
if(!isdefined(var_01.movespeedscale))
{
return;
}
var_01 blend_movespeedscale(1,param_00);
waittillframeend;
var_01.movespeedscale = undefined;
}
//Function Number: 609
teleport_ent(param_00)
{
if(isplayer(self))
{
self setorigin(param_00.origin);
self setplayerangles(param_00.angles);
return;
}
self forceteleport(param_00.origin,param_00.angles);
}
//Function Number: 610
teleport_to_ent_tag(param_00,param_01)
{
var_02 = param_00 gettagorigin(param_01);
var_03 = param_00 gettagangles(param_01);
self dontinterpolate();
if(isplayer(self))
{
self setorigin(var_02);
self setplayerangles(var_03);
return;
}
if(isai(self))
{
self forceteleport(var_02,var_03);
return;
}
self.origin = var_02;
self.angles = var_03;
}
//Function Number: 611
teleport_ai(param_00)
{
self forceteleport(param_00.origin,param_00.angles);
self setgoalpos(self.origin);
self setgoalnode(param_00);
}
//Function Number: 612
move_all_fx(param_00)
{
foreach(var_02 in level.createfxent)
{
var_02.v["origin"] = var_02.v["origin"] + param_00;
}
}
//Function Number: 613
issliding()
{
return isdefined(self.slidemodel);
}
//Function Number: 614
beginsliding(param_00,param_01,param_02)
{
var_03 = self;
var_03 thread play_sound_on_entity("foot_slide_plr_start");
if(soundexists("foot_slide_plr_loop"))
{
var_03 thread play_loop_sound_on_tag("foot_slide_plr_loop");
}
var_04 = isdefined(level.custom_linkto_slide);
if(!isdefined(param_00))
{
param_00 = var_03 getvelocity() + (0,0,-10);
}
if(!isdefined(param_01))
{
param_01 = 10;
}
if(!isdefined(param_02))
{
if(isdefined(level.slide_dampening))
{
param_02 = level.slide_dampening;
}
else
{
param_02 = 0.035;
}
}
var_05 = spawn("script_origin",var_03.origin);
var_05.angles = var_03.angles;
var_03.slidemodel = var_05;
var_05 moveslide((0,0,15),15,param_00);
if(var_04)
{
var_03 playerlinktoblend(var_05,undefined,1);
}
else
{
var_03 playerlinkto(var_05);
}
var_03 disableweapons();
var_03 allowprone(0);
var_03 allowcrouch(1);
var_03 allowstand(0);
var_03 thread maps\_utility_code::doslide(var_05,param_01,param_02);
}
//Function Number: 615
endsliding()
{
var_00 = self;
var_00 notify("stop soundfoot_slide_plr_loop");
var_00 thread play_sound_on_entity("foot_slide_plr_end");
var_00 unlink();
var_00 setvelocity(var_00.slidemodel.slidevelocity);
var_00.slidemodel delete();
var_00 enableweapons();
var_00 allowprone(1);
var_00 allowcrouch(1);
var_00 allowstand(1);
var_00 notify("stop_sliding");
}
//Function Number: 616
spawn_vehicle()
{
return maps\_vehicle::vehicle_spawn(self);
}
//Function Number: 617
getentwithflag(param_00)
{
var_01 = maps\_trigger::get_load_trigger_classes();
var_02 = [];
foreach(var_06, var_04 in var_01)
{
if(!issubstr(var_06,"flag"))
{
continue;
}
var_05 = getentarray(var_06,"classname");
var_02 = common_scripts\utility::array_combine(var_02,var_05);
}
var_07 = maps\_trigger::get_load_trigger_funcs();
foreach(var_09, var_04 in var_07)
{
if(!issubstr(var_09,"flag"))
{
continue;
}
var_05 = getentarray(var_09,"targetname");
var_02 = common_scripts\utility::array_combine(var_02,var_05);
}
var_0A = undefined;
foreach(var_0C in var_02)
{
if(var_0C.script_flag == param_00)
{
return var_0C;
}
}
}
//Function Number: 618
getentarraywithflag(param_00)
{
var_01 = maps\_trigger::get_load_trigger_classes();
var_02 = [];
foreach(var_06, var_04 in var_01)
{
if(!issubstr(var_06,"flag"))
{
continue;
}
var_05 = getentarray(var_06,"classname");
var_02 = common_scripts\utility::array_combine(var_02,var_05);
}
var_07 = maps\_trigger::get_load_trigger_funcs();
foreach(var_09, var_04 in var_07)
{
if(!issubstr(var_09,"flag"))
{
continue;
}
var_05 = getentarray(var_09,"targetname");
var_02 = common_scripts\utility::array_combine(var_02,var_05);
}
var_0A = [];
foreach(var_0C in var_02)
{
if(var_0C.script_flag == param_00)
{
var_0A[var_0A.size] = var_0C;
}
}
return var_0A;
}
//Function Number: 619
set_z(param_00,param_01)
{
return (param_00[0],param_00[1],param_01);
}
//Function Number: 620
add_z(param_00,param_01)
{
return (param_00[0],param_00[1],param_00[2] + param_01);
}
//Function Number: 621
set_y(param_00,param_01)
{
return (param_00[0],param_01,param_00[2]);
}
//Function Number: 622
set_x(param_00,param_01)
{
return (param_01,param_00[1],param_00[2]);
}
//Function Number: 623
player_using_missile()
{
var_00 = self getcurrentweapon();
if(!isdefined(var_00))
{
return 0;
}
if(issubstr(tolower(var_00),"rpg"))
{
return 1;
}
if(issubstr(tolower(var_00),"stinger"))
{
return 1;
}
if(issubstr(tolower(var_00),"at4"))
{
return 1;
}
if(issubstr(tolower(var_00),"javelin"))
{
return 1;
}
return 0;
}
//Function Number: 624
doinglongdeath()
{
return isdefined(self.a.doinglongdeath);
}
//Function Number: 625
get_rumble_ent(param_00,param_01)
{
if(is_coop())
{
}
var_02 = get_player_from_self();
if(!isdefined(param_00))
{
param_00 = "steady_rumble";
}
var_03 = spawn("script_origin",var_02 geteye());
if(!isdefined(param_01) || !isnumber(param_01))
{
var_03.intensity = 1;
}
else
{
var_03.intensity = param_01;
}
var_03 thread maps\_utility_code::update_rumble_intensity(var_02,param_00);
return var_03;
}
//Function Number: 626
set_rumble_intensity(param_00)
{
self.intensity = param_00;
}
//Function Number: 627
rumble_ramp_on(param_00)
{
thread rumble_ramp_to(1,param_00);
}
//Function Number: 628
rumble_ramp_off(param_00)
{
thread rumble_ramp_to(0,param_00);
}
//Function Number: 629
rumble_ramp_to(param_00,param_01)
{
self notify("new_ramp");
self endon("new_ramp");
self endon("death");
var_02 = param_01 * 20;
var_03 = param_00 - self.intensity;
var_04 = var_03 / var_02;
for(var_05 = 0;var_05 < var_02;var_05++)
{
self.intensity = self.intensity + var_04;
wait(0.05);
}
self.intensity = param_00;
}
//Function Number: 630
get_player_from_self()
{
if(isdefined(self))
{
if(!is_in_array(level.players,self))
{
return level.player;
}
return self;
}
return level.player;
}
//Function Number: 631
get_player_gameskill()
{
return int(self getplayersetting("gameskill"));
}
//Function Number: 632
glow(param_00)
{
if(isdefined(self.non_glow_model))
{
return;
}
self.non_glow_model = self.model;
if(!isdefined(param_00))
{
param_00 = self.model + "_obj";
}
self setmodel(param_00);
}
//Function Number: 633
stopglow(param_00)
{
if(!isdefined(self.non_glow_model))
{
return;
}
self setmodel(self.non_glow_model);
self.non_glow_model = undefined;
}
//Function Number: 634
array_delete_evenly(param_00,param_01,param_02)
{
var_03 = [];
param_01 = param_02 - param_01;
foreach(var_05 in param_00)
{
var_03[var_03.size] = var_05;
if(var_03.size == param_02)
{
var_03 = common_scripts\utility::array_randomize(var_03);
for(var_06 = param_01;var_06 < var_03.size;var_06++)
{
var_03[var_06] delete();
}
var_03 = [];
}
}
var_08 = [];
foreach(var_05 in param_00)
{
if(!isdefined(var_05))
{
continue;
}
var_08[var_08.size] = var_05;
}
return var_08;
}
//Function Number: 635
waittill_in_range(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 0.5;
}
self endon("death");
while(isdefined(self))
{
if(distance(param_00,self.origin) <= param_01)
{
break;
}
wait(param_02);
}
}
//Function Number: 636
add_trace_fx(param_00)
{
var_01 = spawnstruct();
var_01 thread maps\_utility_code::add_trace_fx_proc(param_00);
return var_01;
}
//Function Number: 637
tracefx_on_tag(param_00,param_01,param_02)
{
var_03 = self gettagorigin(param_01);
var_04 = self gettagangles(param_01);
tracefx(param_00,var_03,var_04,param_02);
}
//Function Number: 638
tracefx(param_00,param_01,param_02,param_03)
{
var_04 = anglestoforward(param_02);
var_05 = bullettrace(param_01,param_01 + var_04 * param_03,0,undefined);
if(var_05["fraction"] >= 1)
{
return;
}
var_06 = var_05["surfacetype"];
if(!isdefined(level.trace_fx[param_00][var_06]))
{
var_06 = "default";
}
var_07 = level.trace_fx[param_00][var_06];
if(isdefined(var_07["fx"]))
{
playfx(var_07["fx"],var_05["position"],var_05["normal"]);
}
if(isdefined(var_07["fx_array"]))
{
foreach(var_09 in var_07["fx_array"])
{
playfx(var_09,var_05["position"],var_05["normal"]);
}
}
if(isdefined(var_07["sound"]))
{
level thread common_scripts\utility::play_sound_in_space(var_07["sound"],var_05["position"]);
}
if(isdefined(var_07["rumble"]))
{
var_0B = get_player_from_self();
var_0B playrumbleonentity(var_07["rumble"]);
}
}
//Function Number: 639
disable_surprise()
{
self.newenemyreactiondistsq = 0;
}
//Function Number: 640
enable_surprise()
{
self.newenemyreactiondistsq = squared(512);
}
//Function Number: 641
enable_heat_behavior(param_00)
{
self.heat = 1;
self.no_pistol_switch = 1;
self.usecombatscriptatcover = 1;
if(!isdefined(param_00) || !param_00)
{
self.dontshootwhilemoving = 1;
self.maxfaceenemydist = 64;
self.pathenemylookahead = 2048;
disable_surprise();
}
self.specialreloadanimfunc = ::animscripts\animset::heat_reload_anim;
self.custommoveanimset["run"] = animscripts\utility::lookupanimarray("heat_run");
}
//Function Number: 642
disable_heat_behavior()
{
self.heat = undefined;
self.no_pistol_switch = undefined;
self.dontshootwhilemoving = undefined;
self.usecombatscriptatcover = 0;
self.maxfaceenemydist = 512;
self.specialreloadanimfunc = undefined;
self.custommoveanimset = undefined;
}
//Function Number: 643
getvehiclearray()
{
return vehicle_getarray();
}
//Function Number: 644
hint(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 0;
}
var_03 = 0.5;
level endon("clearing_hints");
if(isdefined(level.hintelement))
{
level.hintelement maps\_hud_util::destroyelem();
}
level.hintelement = maps\_hud_util::createfontstring("default",1.5);
level.hintelement maps\_hud_util::setpoint("MIDDLE",undefined,0,30 + param_02);
level.hintelement.color = (1,1,1);
level.hintelement settext(param_00);
level.hintelement.alpha = 0;
level.hintelement fadeovertime(0.5);
level.hintelement.alpha = 1;
wait(0.5);
level.hintelement endon("death");
if(isdefined(param_01))
{
wait(param_01);
}
else
{
return;
}
level.hintelement fadeovertime(var_03);
level.hintelement.alpha = 0;
wait(var_03);
level.hintelement maps\_hud_util::destroyelem();
}
//Function Number: 645
hint_fade()
{
var_00 = 1;
if(isdefined(level.hintelement))
{
level notify("clearing_hints");
level.hintelement fadeovertime(var_00);
level.hintelement.alpha = 0;
wait(var_00);
}
}
//Function Number: 646
kill_deathflag(param_00,param_01,param_02)
{
if(!isdefined(level.flag[param_00]))
{
return;
}
if(!isdefined(param_01))
{
param_01 = 0;
}
foreach(var_04 in level.deathflags[param_00])
{
foreach(var_06 in var_04)
{
if(isalive(var_06))
{
var_06 thread maps\_utility_code::kill_deathflag_proc(param_01,param_02);
continue;
}
var_06 delete();
}
}
}
//Function Number: 647
get_player_view_controller(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = "player_view_controller";
}
if(!isdefined(param_02))
{
param_02 = (0,0,0);
}
var_04 = param_00 gettagorigin(param_01);
var_05 = spawnturret("misc_turret",var_04,param_03);
var_05.angles = param_00 gettagangles(param_01);
var_05 setmodel("tag_turret");
var_05 linkto(param_00,param_01,param_02,(0,0,0));
var_05 makeunusable();
var_05 hide();
var_05 setmode("manual");
return var_05;
}
//Function Number: 648
create_blend(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04 childthread maps\_utility_code::process_blend(param_00,self,param_01,param_02,param_03);
return var_04;
}
//Function Number: 649
set_unstorable_weapon(param_00,param_01)
{
if(isdefined(self.unstorable_weapons))
{
self.unstorable_weapons = [];
}
if(!isdefined(param_01) || param_01)
{
self.unstorable_weapons[param_00] = 1;
return;
}
self.unstorable_weapons[param_00] = undefined;
}
//Function Number: 650
is_unstorable_weapon(param_00)
{
if(!isdefined(self.unstorable_weapons))
{
return 0;
}
return isdefined(self.unstorable_weapons[param_00]);
}
//Function Number: 651
store_players_weapons(param_00)
{
if(!isdefined(self.stored_weapons))
{
self.stored_weapons = [];
}
if(!isdefined(self.unstorable_weapons))
{
self.unstorable_weapons = [];
}
var_01 = [];
var_02 = self getweaponslistall();
var_03 = self getcurrentweapon();
foreach(var_05 in var_02)
{
if(isdefined(self.unstorable_weapons[var_05]))
{
continue;
}
var_01[var_05] = [];
var_01[var_05]["clip_left"] = self getweaponammoclip(var_05,"left");
var_01[var_05]["clip_right"] = self getweaponammoclip(var_05,"right");
var_01[var_05]["stock"] = self setweaponammostock(var_05);
}
if(!isdefined(param_00))
{
param_00 = "default";
}
self.stored_weapons[param_00] = [];
if(isdefined(self.unstorable_weapons[var_03]))
{
var_07 = self getweaponslistprimaries();
foreach(var_05 in var_07)
{
if(!isdefined(self.unstorable_weapons[var_05]))
{
var_03 = var_05;
break;
}
}
}
self.stored_weapons[param_00]["current_weapon"] = var_03;
self.stored_weapons[param_00]["inventory"] = var_01;
}
//Function Number: 652
restore_players_weapons(param_00)
{
if(!isdefined(param_00))
{
param_00 = "default";
}
if(!isdefined(self.stored_weapons) || !isdefined(self.stored_weapons[param_00]))
{
return;
}
self takeallweapons();
foreach(var_03, var_02 in self.stored_weapons[param_00]["inventory"])
{
if(weaponinventorytype(var_03) != "altmode")
{
self giveweapon(var_03);
}
self setweaponammoclip(var_03,var_02["clip_left"],"left");
self setweaponammoclip(var_03,var_02["clip_right"],"right");
self setweaponammostock(var_03,var_02["stock"]);
}
var_04 = self.stored_weapons[param_00]["current_weapon"];
if(var_04 != "none")
{
self switchtoweapon(var_04);
}
}
//Function Number: 653
get_storable_weapons_list_all()
{
var_00 = self getweaponslistall();
if(isdefined(self.unstorable_weapons))
{
foreach(var_02 in var_00)
{
if(isdefined(self.unstorable_weapons[var_02]))
{
var_00 = common_scripts\utility::array_remove(var_00,var_02);
}
}
}
return var_00;
}
//Function Number: 654
get_storable_weapons_list_primaries()
{
var_00 = self getweaponslistprimaries();
if(isdefined(self.unstorable_weapons))
{
foreach(var_02 in var_00)
{
if(isdefined(self.unstorable_weapons[var_02]))
{
var_00 = common_scripts\utility::array_remove(var_00,var_02);
}
}
}
return var_00;
}
//Function Number: 655
get_storable_current_weapon_primary()
{
var_00 = self getcurrentprimaryweapon();
if(isdefined(self.unstorable_weapons) && isdefined(self.unstorable_weapons[var_00]))
{
var_00 = get_first_storable_weapon();
}
return var_00;
}
//Function Number: 656
get_storable_current_weapon()
{
var_00 = self getcurrentweapon();
if(isdefined(self.unstorable_weapons) && isdefined(self.unstorable_weapons[var_00]))
{
var_00 = get_first_storable_weapon();
}
return var_00;
}
//Function Number: 657
get_first_storable_weapon()
{
var_00 = get_storable_weapons_list_primaries();
if(var_00.size > 0)
{
var_01 = var_00[0];
}
else
{
var_01 = "none";
}
return var_01;
}
//Function Number: 658
hide_entity()
{
switch(self.code_classname)
{
case "light_spot":
case "script_vehicle":
case "script_model":
break;
case "script_brushmodel":
break;
case "trigger_multiple_flag_looking":
case "trigger_multiple_flag_lookat":
case "trigger_multiple_breachIcon":
case "trigger_multiple_flag_set":
case "trigger_use_touch":
case "trigger_use":
case "trigger_multiple":
case "trigger_radius":
break;
default:
break;
}
}
//Function Number: 659
show_entity()
{
switch(self.code_classname)
{
case "light_spot":
case "script_vehicle":
case "script_model":
break;
case "script_brushmodel":
break;
case "trigger_multiple_flag_looking":
case "trigger_multiple_flag_lookat":
case "trigger_multiple_breachIcon":
case "trigger_multiple_flag_set":
case "trigger_use_touch":
case "trigger_use":
case "trigger_multiple":
case "trigger_radius":
break;
default:
break;
}
}
//Function Number: 660
_rotateyaw(param_00,param_01,param_02,param_03)
{
if(isdefined(param_03))
{
self rotateyaw(param_00,param_01,param_02,param_03);
return;
}
if(isdefined(param_02))
{
self rotateyaw(param_00,param_01,param_02);
return;
}
self rotateyaw(param_00,param_01);
}
//Function Number: 661
set_moveplaybackrate(param_00,param_01,param_02)
{
self notify("set_moveplaybackrate");
self endon("set_moveplaybackrate");
if(isdefined(param_02) && param_02)
{
thread set_movetransitionrate(param_00,param_01);
}
if(!isdefined(self.moveplaybackrate_orig))
{
self.moveplaybackrate_orig = self.moveplaybackrate;
}
if(isdefined(param_01))
{
var_03 = param_00 - self.moveplaybackrate;
var_04 = 0.05;
var_05 = param_01 / var_04;
var_06 = var_03 / var_05;
while(abs(param_00 - self.moveplaybackrate) > abs(var_06 * 1.1))
{
self.moveplaybackrate = self.moveplaybackrate + var_06;
wait(var_04);
}
}
self.moveplaybackrate = param_00;
}
//Function Number: 662
restore_moveplaybackrate(param_00,param_01)
{
self notify("set_moveplaybackrate");
self endon("set_moveplaybackrate");
if(isdefined(param_01) && param_01)
{
thread restore_movetransitionrate(param_00);
}
set_moveplaybackrate(self.moveplaybackrate_orig,param_00,0);
self.moveplaybackrate_orig = undefined;
}
//Function Number: 663
set_movetransitionrate(param_00,param_01)
{
self notify("set_moveplaybackrate");
self endon("set_moveplaybackrate");
if(!isdefined(self.movetransitionrate_orig))
{
self.movetransitionrate_orig = self.movetransitionrate;
}
if(isdefined(param_01))
{
var_02 = param_00 - self.movetransitionrate;
var_03 = 0.05;
var_04 = param_01 / var_03;
var_05 = var_02 / var_04;
while(abs(param_00 - self.movetransitionrate) > abs(var_05 * 1.1))
{
self.movetransitionrate = self.movetransitionrate + var_05;
wait(var_03);
}
}
self.movetransitionrate = param_00;
}
//Function Number: 664
restore_movetransitionrate(param_00)
{
self notify("set_moveplaybackrate");
self endon("set_moveplaybackrate");
set_movetransitionrate(self.movetransitionrate_orig,param_00);
self.movetransitionrate_orig = undefined;
}
//Function Number: 665
array_spawn_function(param_00,param_01,param_02,param_03,param_04,param_05)
{
foreach(var_07 in param_00)
{
var_07 thread add_spawn_function(param_01,param_02,param_03,param_04,param_05);
}
}
//Function Number: 666
array_spawn_function_targetname(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = getentarray(param_00,"targetname");
array_spawn_function(var_06,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 667
array_spawn_function_noteworthy(param_00,param_01,param_02,param_03,param_04,param_05)
{
var_06 = getentarray(param_00,"script_noteworthy");
array_spawn_function(var_06,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 668
enable_dontevershoot()
{
self.dontevershoot = 1;
}
//Function Number: 669
disable_dontevershoot()
{
self.dontevershoot = undefined;
}
//Function Number: 670
create_sunflare_setting(param_00)
{
if(!isdefined(level.sunflare_settings))
{
level.sunflare_settings = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
level.sunflare_settings[param_00] = var_01;
return var_01;
}
//Function Number: 671
create_vision_set_fog(param_00)
{
if(!isdefined(level.vision_set_fog))
{
level.vision_set_fog = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
var_01.skyfogintensity = 0;
var_01.skyfogminangle = 0;
var_01.skyfogmaxangle = 0;
var_01.heightfogenabled = 0;
var_01.heightfogbaseheight = 0;
var_01.heightfoghalfplanedistance = 1000;
level.vision_set_fog[tolower(param_00)] = var_01;
return var_01;
}
//Function Number: 672
get_vision_set_fog(param_00)
{
if(!isdefined(level.vision_set_fog))
{
level.vision_set_fog = [];
}
var_01 = level.vision_set_fog[tolower(param_00)];
if(using_hdr_fog() && isdefined(var_01) && isdefined(var_01.hdroverride))
{
var_01 = level.vision_set_fog[tolower(var_01.hdroverride)];
}
return var_01;
}
//Function Number: 673
create_fog(param_00)
{
if(!isdefined(level.fog_set))
{
level.fog_set = [];
}
var_01 = spawnstruct();
var_01.name = param_00;
level.fog_set[tolower(param_00)] = var_01;
return var_01;
}
//Function Number: 674
get_fog(param_00)
{
if(!isdefined(level.fog_set))
{
level.fog_set = [];
}
var_01 = level.fog_set[tolower(param_00)];
return var_01;
}
//Function Number: 675
init_self_fog_transition()
{
if(!isdefined(self.fog_transition_ent))
{
self.fog_transition_ent = spawnstruct();
self.fog_transition_ent.fogset = "";
self.fog_transition_ent.time = 0;
}
}
//Function Number: 676
using_hdr_fog()
{
if(!isdefined(level.console))
{
set_console_status();
}
return is_gen4();
}
//Function Number: 677
fog_set_changes(param_00,param_01)
{
if(!isplayer(self))
{
maps\_art::init_fog_transition();
}
else
{
init_self_fog_transition();
}
if(!isdefined(level.fog_set))
{
level.fog_set = [];
}
var_02 = level.fog_set[tolower(param_00)];
if(!isdefined(var_02))
{
var_02 = level.vision_set_fog[tolower(param_00)];
}
if(isdefined(var_02) && isdefined(var_02.hdroverride) && using_hdr_fog())
{
if(isdefined(level.fog_set[tolower(var_02.hdroverride)]))
{
var_02 = level.fog_set[tolower(var_02.hdroverride)];
}
else if(isdefined(level.vision_set_fog))
{
var_02 = level.vision_set_fog[tolower(var_02.hdroverride)];
}
}
if(!isdefined(param_01))
{
param_01 = var_02.transitiontime;
}
if(!isplayer(self))
{
common_scripts\utility::set_fog_to_ent_values(var_02,param_01);
level.fog_transition_ent.fogset = param_00;
level.fog_transition_ent.time = param_01;
return;
}
if(param_00 != "" && self.fog_transition_ent.fogset == param_00 && self.fog_transition_ent.time == param_01)
{
return;
}
common_scripts\utility::set_fog_to_ent_values(var_02,param_01);
self.fog_transition_ent.fogset = param_00;
self.fog_transition_ent.time = param_01;
}
//Function Number: 678
vision_set_fog_changes(param_00,param_01)
{
var_02 = vision_set_changes(param_00,param_01);
if(var_02)
{
if(level.currentgen && isdefined(get_vision_set_fog(param_00 + "_cg")))
{
fog_set_changes(param_00 + "_cg",param_01);
return;
}
if(isdefined(get_vision_set_fog(param_00)))
{
fog_set_changes(param_00,param_01);
return;
}
clearfog(param_01);
return;
}
}
//Function Number: 679
init_self_visionset()
{
if(!isdefined(self.vision_set_transition_ent))
{
self.vision_set_transition_ent = spawnstruct();
self.vision_set_transition_ent.vision_set = "";
self.vision_set_transition_ent.time = 0;
}
}
//Function Number: 680
vision_set_changes(param_00,param_01)
{
if(!isplayer(self))
{
var_02 = 1;
if(!isdefined(level.vision_set_transition_ent))
{
level.vision_set_transition_ent = spawnstruct();
level.vision_set_transition_ent.vision_set = "";
level.vision_set_transition_ent.time = 0;
var_02 = 0;
}
if(param_00 != "" && level.vision_set_transition_ent.vision_set == param_00 && level.vision_set_transition_ent.time == param_01)
{
return 0;
}
level.vision_set_transition_ent.vision_set = param_00;
level.vision_set_transition_ent.time = param_01;
if(var_02 && getdvarint("scr_art_tweak") != 0)
{
}
else
{
visionsetnaked(param_00,param_01);
}
level.lvl_visionset = param_00;
setdvar("vision_set_current",param_00);
}
else
{
init_self_visionset();
if(param_00 != "" && self.vision_set_transition_ent.vision_set == param_00 && self.vision_set_transition_ent.time == param_01)
{
return 0;
}
self.vision_set_transition_ent.vision_set = param_00;
self.vision_set_transition_ent.time = param_01;
self visionsetnakedforplayer(param_00,param_01);
}
return 1;
}
//Function Number: 681
enable_teamflashbangimmunity()
{
thread enable_teamflashbangimmunity_proc();
}
//Function Number: 682
enable_teamflashbangimmunity_proc()
{
self endon("death");
for(;;)
{
self.teamflashbangimmunity = 1;
wait(0.05);
}
}
//Function Number: 683
disable_teamflashbangimmunity()
{
self.teamflashbangimmunity = undefined;
}
//Function Number: 684
_radiusdamage(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_04))
{
radiusdamage(param_00,param_01,param_02,param_03);
return;
}
radiusdamage(param_00,param_01,param_02,param_03,param_04);
}
//Function Number: 685
mask_destructibles_in_volumes(param_00)
{
var_01 = getentarray("destructible_toy","targetname");
var_02 = getentarray("destructible_vehicle","targetname");
var_03 = common_scripts\utility::array_combine(var_01,var_02);
foreach(var_05 in param_00)
{
var_05.destructibles = [];
}
foreach(var_08 in var_03)
{
foreach(var_05 in param_00)
{
if(!var_05 istouching(var_08))
{
continue;
}
var_05 maps\_utility_code::put_toy_in_volume(var_08);
break;
}
}
}
//Function Number: 686
interactivekeypairs()
{
var_00 = [];
var_00[0] = ["interactive_birds","targetname"];
var_00[1] = ["interactive_vulture","targetname"];
var_00[2] = ["interactive_fish","script_noteworthy"];
return var_00;
}
//Function Number: 687
mask_interactives_in_volumes(param_00)
{
var_01 = interactivekeypairs();
var_02 = [];
foreach(var_04 in var_01)
{
var_05 = getentarray(var_04[0],var_04[1]);
var_02 = common_scripts\utility::array_combine(var_02,var_05);
}
foreach(var_08 in var_02)
{
if(!isdefined(level._interactive[var_08.interactive_type].savetostructfn))
{
continue;
}
foreach(var_0B in param_00)
{
if(!var_0B istouching(var_08))
{
continue;
}
if(!isdefined(var_0B.interactives))
{
var_0B.interactives = [];
}
var_0B.interactives[var_0B.interactives.size] = var_08 [[ level._interactive[var_08.interactive_type].savetostructfn ]]();
}
}
}
//Function Number: 688
activate_interactives_in_volume()
{
if(!isdefined(self.interactives))
{
return;
}
foreach(var_01 in self.interactives)
{
var_01 [[ level._interactive[var_01.interactive_type].loadfromstructfn ]]();
}
self.interactives = undefined;
}
//Function Number: 689
delete_interactives_in_volumes(param_00)
{
mask_interactives_in_volumes(param_00);
foreach(var_02 in param_00)
{
var_02.interactives = undefined;
}
}
//Function Number: 690
mask_exploders_in_volume(param_00)
{
if(getdvar("createfx") != "")
{
return;
}
var_01 = getentarray("script_brushmodel","classname");
var_02 = getentarray("script_model","classname");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_01[var_01.size] = var_02[var_03];
}
foreach(var_05 in param_00)
{
foreach(var_07 in var_01)
{
if(isdefined(var_07.script_prefab_exploder))
{
var_07.script_exploder = var_07.script_prefab_exploder;
}
if(!isdefined(var_07.script_exploder))
{
continue;
}
if(!isdefined(var_07.model))
{
continue;
}
if(var_07.code_classname != "script_model")
{
continue;
}
if(!var_07 istouching(var_05))
{
continue;
}
var_07.masked_exploder = 1;
}
}
}
//Function Number: 691
activate_exploders_in_volume()
{
var_00 = spawn("script_origin",(0,0,0));
foreach(var_02 in level.createfxent)
{
if(!isdefined(var_02.v["masked_exploder"]))
{
continue;
}
var_00.origin = var_02.v["origin"];
var_00.angles = var_02.v["angles"];
if(!var_00 istouching(self))
{
continue;
}
var_03 = var_02.v["masked_exploder"];
var_04 = var_02.v["masked_exploder_spawnflags"];
var_05 = var_02.v["masked_exploder_script_disconnectpaths"];
var_06 = spawn("script_model",(0,0,0),var_04);
var_06 setmodel(var_03);
var_06.origin = var_02.v["origin"];
var_06.angles = var_02.v["angles"];
var_02.v["masked_exploder"] = undefined;
var_02.v["masked_exploder_spawnflags"] = undefined;
var_02.v["masked_exploder_script_disconnectpaths"] = undefined;
var_06.disconnect_paths = var_05;
var_06.script_exploder = var_02.v["exploder"];
common_scripts\_exploder::setup_individual_exploder(var_06);
var_02.model = var_06;
}
var_00 delete();
}
//Function Number: 692
precache_destructible(param_00)
{
var_01 = common_scripts\_destructible::destructible_getinfoindex(param_00);
if(var_01 != -1)
{
return;
}
if(!isdefined(level.destructible_functions))
{
level.destructible_functions = [];
}
var_02 = spawnstruct();
var_02.destructibleinfo = common_scripts\_destructible::destructible_gettype(param_00);
var_02 thread common_scripts\_destructible::precache_destructibles();
var_02 thread common_scripts\_destructible::add_destructible_fx();
}
//Function Number: 693
delete_destructibles_in_volumes(param_00,param_01)
{
foreach(var_03 in param_00)
{
var_03.destructibles = [];
}
var_05 = ["destructible_toy","destructible_vehicle"];
var_06 = 0;
if(!isdefined(param_01))
{
param_01 = 0;
}
foreach(var_08 in var_05)
{
var_09 = getentarray(var_08,"targetname");
foreach(var_0B in var_09)
{
foreach(var_03 in param_00)
{
if(param_01)
{
var_06++;
var_06 = var_06 % 5;
if(var_06 == 1)
{
wait(0.05);
}
}
if(!var_03 istouching(var_0B))
{
continue;
}
var_0B delete();
break;
}
}
}
}
//Function Number: 694
delete_exploders_in_volumes(param_00,param_01)
{
var_02 = getentarray("script_brushmodel","classname");
var_03 = getentarray("script_model","classname");
for(var_04 = 0;var_04 < var_03.size;var_04++)
{
var_02[var_02.size] = var_03[var_04];
}
var_05 = [];
var_06 = spawn("script_origin",(0,0,0));
var_07 = 0;
if(!isdefined(param_01))
{
param_01 = 0;
}
foreach(var_09 in param_00)
{
foreach(var_0B in var_02)
{
if(!isdefined(var_0B.script_exploder))
{
continue;
}
var_06.origin = var_0B getorigin();
if(!var_09 istouching(var_06))
{
continue;
}
var_05[var_05.size] = var_0B;
}
}
array_delete(var_05);
var_06 delete();
}
//Function Number: 695
activate_destructibles_in_volume()
{
if(!isdefined(self.destructibles))
{
return;
}
foreach(var_01 in self.destructibles)
{
var_02 = spawn("script_model",(0,0,0));
var_02 setmodel(var_01.toy_model);
var_02.origin = var_01.origin;
var_02.angles = var_01.angles;
var_02.script_noteworthy = var_01.script_noteworthy;
var_02.targetname = var_01.targetname;
var_02.target = var_01.target;
var_02.script_linkto = var_01.script_linkto;
var_02.destructible_type = var_01.destructible_type;
var_02.script_noflip = var_01.script_noflip;
var_02 common_scripts\_destructible::setup_destructibles(1);
}
self.destructibles = [];
}
//Function Number: 696
setflashbangimmunity(param_00)
{
self.flashbangimmunity = param_00;
}
//Function Number: 697
flashbanggettimeleftsec()
{
var_00 = self.flashendtime - gettime();
if(var_00 < 0)
{
return 0;
}
return var_00 * 0.001;
}
//Function Number: 698
flashbangisactive()
{
return flashbanggettimeleftsec() > 0;
}
//Function Number: 699
flashbangstart(param_00)
{
if(isdefined(self.flashbangimmunity) && self.flashbangimmunity)
{
return;
}
var_01 = gettime() + param_00 * 1000;
if(isdefined(self.flashendtime))
{
self.flashendtime = max(self.flashendtime,var_01);
}
else
{
self.flashendtime = var_01;
}
self notify("flashed");
self setflashbanged(1);
}
//Function Number: 700
waittill_volume_dead()
{
for(;;)
{
var_00 = getaispeciesarray("axis","all");
var_01 = 0;
foreach(var_03 in var_00)
{
if(!isalive(var_03))
{
continue;
}
if(var_03 istouching(self))
{
var_01 = 1;
break;
}
wait(0.0125);
}
if(!var_01)
{
var_05 = get_ai_touching_volume("axis");
if(!var_05.size)
{
break;
}
}
wait(0.05);
}
}
//Function Number: 701
waittill_volume_dead_or_dying()
{
var_00 = 0;
for(;;)
{
var_01 = getaispeciesarray("axis","all");
var_02 = 0;
foreach(var_04 in var_01)
{
if(!isalive(var_04))
{
continue;
}
if(var_04 istouching(self))
{
if(var_04 doinglongdeath())
{
continue;
}
var_02 = 1;
var_00 = 1;
break;
}
wait(0.0125);
}
if(!var_02)
{
var_06 = get_ai_touching_volume("axis");
if(!var_06.size)
{
break;
}
else
{
var_00 = 1;
}
}
wait(0.05);
}
return var_00;
}
//Function Number: 702
waittill_volume_dead_then_set_flag(param_00)
{
waittill_volume_dead();
common_scripts\utility::flag_set(param_00);
}
//Function Number: 703
waittill_targetname_volume_dead_then_set_flag(param_00,param_01)
{
var_02 = getent(param_00,"targetname");
var_02 waittill_volume_dead_then_set_flag(param_01);
}
//Function Number: 704
player_can_be_shot()
{
level.player ent_flag_clear("player_zero_attacker_accuracy");
level.player.ignorerandombulletdamage = 0;
level.player maps\_gameskill::update_player_attacker_accuracy();
}
//Function Number: 705
player_cant_be_shot()
{
level.player ent_flag_set("player_zero_attacker_accuracy");
level.player.attackeraccuracy = 0;
level.player.ignorerandombulletdamage = 1;
}
//Function Number: 706
set_player_attacker_accuracy(param_00)
{
var_01 = get_player_from_self();
var_01.gs.player_attacker_accuracy = param_00;
var_01 maps\_gameskill::update_player_attacker_accuracy();
}
//Function Number: 707
array_index_by_parameters(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_01[var_03.script_parameters] = var_03;
}
return var_01;
}
//Function Number: 708
array_index_by_classname(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_01[var_03.classname] = var_03;
}
return var_01;
}
//Function Number: 709
array_index_by_script_index(param_00)
{
var_01 = [];
foreach(var_03 in param_00)
{
var_04 = var_03.script_index;
if(isdefined(var_04))
{
var_01[var_04] = var_03;
}
}
return var_01;
}
//Function Number: 710
add_target_pivot(param_00)
{
if(isdefined(param_00))
{
self.pivot = param_00;
}
else
{
self.pivot = getent(self.target,"targetname");
}
self linkto(self.pivot);
}
//Function Number: 711
flashbangstop()
{
self.flashendtime = undefined;
self setflashbanged(0);
}
//Function Number: 712
getent_or_struct(param_00,param_01)
{
var_02 = getent(param_00,param_01);
if(isdefined(var_02))
{
return var_02;
}
return common_scripts\utility::getstruct(param_00,param_01);
}
//Function Number: 713
grenade_earthquake()
{
thread endondeath();
self endon("end_explode");
self waittill("explode",var_00);
dirt_on_screen_from_position(var_00);
}
//Function Number: 714
endondeath()
{
self waittill("death");
waittillframeend;
self notify("end_explode");
}
//Function Number: 715
dirt_on_screen_from_position(param_00)
{
playrumbleonposition("grenade_rumble",param_00);
earthquake(0.3,0.5,param_00,400);
foreach(var_02 in level.players)
{
if(distance(param_00,var_02.origin) > 600)
{
continue;
}
if(var_02 damageconetrace(param_00))
{
var_02 thread dirteffect(param_00);
}
}
}
//Function Number: 716
player_rides_shotgun_in_humvee(param_00,param_01,param_02,param_03)
{
return player_rides_in_humvee("shotgun",level.player,param_00,param_01,param_02,param_03);
}
//Function Number: 717
player_rides_in_humvee(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_01))
{
param_01 = level.player;
}
param_01 allowcrouch(0);
param_01 allowprone(0);
param_01 disableweapons();
var_06 = common_scripts\utility::spawn_tag_origin();
var_06 linkto(self,"tag_passenger",player_rides_in_humvee_offset(param_00),(0,0,0));
var_06.player_dismount = common_scripts\utility::spawn_tag_origin();
var_06.player_dismount linkto(self,"tag_body",player_rides_humvee_offset_dismount(param_00),(0,0,0));
if(!isdefined(param_02))
{
param_02 = 90;
}
if(!isdefined(param_03))
{
param_03 = 90;
}
if(!isdefined(param_04))
{
param_04 = 40;
}
if(!isdefined(param_05))
{
param_05 = 40;
}
param_01 disableweapons();
param_01 playerlinkto(var_06,"tag_origin",0.8,param_02,param_03,param_04,param_05);
param_01.humvee_org = var_06;
return var_06;
}
//Function Number: 718
player_rides_in_humvee_offset(param_00)
{
switch(param_00)
{
case "shotgun":
break;
case "backleft":
break;
case "backright":
break;
}
}
//Function Number: 719
player_rides_humvee_offset_dismount(param_00)
{
switch(param_00)
{
case "shotgun":
break;
case "backleft":
break;
case "backright":
break;
}
}
//Function Number: 720
player_leaves_humvee(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0;
}
var_01 = self;
var_02 = level.player;
if(isplayer(self))
{
var_02 = self;
var_01 = var_02.humvee_org;
}
var_01 unlink();
if(!param_00)
{
var_03 = 0.6;
var_01 moveto(var_01.player_dismount.origin,var_03,var_03 * 0.5,var_03 * 0.5);
wait(var_03);
}
var_02 unlink();
var_02 enableweapons();
var_02 allowcrouch(1);
var_02 allowprone(1);
var_02.humvee_org = undefined;
var_01.player_dismount delete();
var_01 delete();
}
//Function Number: 721
dirteffect(param_00,param_01)
{
var_02 = screen_effect_sides(param_00);
foreach(var_05, var_04 in var_02)
{
thread maps\_gameskill::grenade_dirt_on_screen(var_05);
}
}
//Function Number: 722
bloodsplateffect(param_00)
{
if(!isdefined(self.damageattacker))
{
return;
}
var_01 = screen_effect_sides(self.damageattacker.origin);
foreach(var_04, var_03 in var_01)
{
thread maps\_gameskill::blood_splat_on_screen(var_04);
}
}
//Function Number: 723
screen_effect_sides(param_00)
{
var_01 = vectornormalize(anglestoforward(self.angles));
var_02 = vectornormalize(anglestoright(self.angles));
var_03 = vectornormalize(param_00 - self.origin);
var_04 = vectordot(var_03,var_01);
var_05 = vectordot(var_03,var_02);
var_06 = [];
var_07 = self getcurrentweapon();
if(var_04 > 0 && var_04 > 0.5 && weapontype(var_07) != "riotshield")
{
var_06["bottom"] = 1;
}
if(abs(var_04) < 0.866)
{
if(var_05 > 0)
{
var_06["right"] = 1;
}
else
{
var_06["left"] = 1;
}
}
return var_06;
}
//Function Number: 724
pathrandompercent_set(param_00)
{
if(!isdefined(self.old_pathrandompercent))
{
self.old_pathrandompercent = self.pathrandompercent;
}
self.pathrandompercent = param_00;
}
//Function Number: 725
pathrandompercent_zero()
{
if(isdefined(self.old_pathrandompercent))
{
return;
}
self.old_pathrandompercent = self.pathrandompercent;
self.pathrandompercent = 0;
}
//Function Number: 726
pathrandompercent_reset()
{
self.pathrandompercent = self.old_pathrandompercent;
self.old_pathrandompercent = undefined;
}
//Function Number: 727
walkdist_zero()
{
if(isdefined(self.old_walkdistfacingmotion))
{
return;
}
self.old_walkdist = self.walkdist;
self.old_walkdistfacingmotion = self.walkdistfacingmotion;
self.walkdist = 0;
self.walkdistfacingmotion = 0;
}
//Function Number: 728
walkdist_force_walk()
{
if(!isdefined(self.old_walkdistfacingmotion))
{
self.old_walkdist = self.walkdist;
self.old_walkdistfacingmotion = self.walkdistfacingmotion;
}
self.walkdist = 999999999;
self.walkdistfacingmotion = 999999999;
}
//Function Number: 729
is_walkdist_override()
{
return isdefined(self.old_walkdistfacingmotion) || isdefined(self.old_walkdist);
}
//Function Number: 730
walkdist_reset()
{
self.walkdist = self.old_walkdist;
self.walkdistfacingmotion = self.old_walkdistfacingmotion;
self.old_walkdist = undefined;
self.old_walkdistfacingmotion = undefined;
}
//Function Number: 731
enable_ignorerandombulletdamage_drone()
{
thread ignorerandombulletdamage_drone_proc();
}
//Function Number: 732
ignorerandombulletdamage_drone_proc()
{
self endon("disable_ignorerandombulletdamage_drone");
self endon("death");
self.ignorerandombulletdamage = 1;
self.fakehealth = self.health;
self.health = 1000000;
for(;;)
{
self waittill("damage",var_00,var_01);
if(!isplayer(var_01) && issentient(var_01))
{
if(isdefined(var_01.enemy) && var_01.enemy != self)
{
continue;
}
}
self.fakehealth = self.fakehealth - var_00;
if(self.fakehealth <= 0)
{
break;
}
}
self kill();
}
//Function Number: 733
set_brakes(param_00)
{
self.veh_brake = param_00;
}
//Function Number: 734
disable_ignorerandombulletdamage_drone()
{
if(!isalive(self))
{
return;
}
if(!isdefined(self.ignorerandombulletdamage))
{
return;
}
self notify("disable_ignorerandombulletdamage_drone");
self.ignorerandombulletdamage = undefined;
self.health = self.fakehealth;
}
//Function Number: 735
timeoutent(param_00)
{
var_01 = spawnstruct();
var_01 delaythread(param_00,::send_notify,"timeout");
return var_01;
}
//Function Number: 736
delaythread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
thread maps\_utility_code::delaythread_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 737
delaychildthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
childthread maps\_utility_code::delaychildthread_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 738
flagwaitthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("death");
if(!isarray(param_00))
{
param_00 = [param_00,0];
}
thread maps\_utility_code::flagwaitthread_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 739
waittillthread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
{
self endon("death");
if(!isarray(param_00))
{
param_00 = [param_00,0];
}
thread maps\_utility_code::waittillthread_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07);
}
//Function Number: 740
enable_danger_react(param_00)
{
param_00 = param_00 * 1000;
self.dodangerreact = 1;
self.dangerreactduration = param_00;
self.neversprintforvariation = undefined;
}
//Function Number: 741
disable_danger_react()
{
self.dodangerreact = 0;
self.neversprintforvariation = 1;
}
//Function Number: 742
set_group_advance_to_enemy_parameters(param_00,param_01)
{
level.advancetoenemyinterval = param_00;
level.advancetoenemygroupmax = param_01;
}
//Function Number: 743
reset_group_advance_to_enemy_timer(param_00)
{
level.lastadvancetoenemytime[param_00] = gettime();
}
//Function Number: 744
set_custom_gameskill_func(param_00)
{
level.custom_gameskill_func = param_00;
thread maps\_gameskill::resetskill();
}
//Function Number: 745
clear_custom_gameskill_func()
{
level.custom_gameskill_func = undefined;
thread maps\_gameskill::resetskill();
}
//Function Number: 746
set_wind(param_00,param_01,param_02)
{
maps\_animatedmodels::init_wind_if_uninitialized();
if(isdefined(param_02))
{
level.wind.variance = param_02;
}
level.wind.rate = param_01;
level.wind.weight = param_00;
level notify("windchange","strong");
}
//Function Number: 747
string_is_single_digit_integer(param_00)
{
if(param_00.size > 1)
{
return 0;
}
var_01 = [];
var_01["0"] = 1;
var_01["1"] = 1;
var_01["2"] = 1;
var_01["3"] = 1;
var_01["4"] = 1;
var_01["5"] = 1;
var_01["6"] = 1;
var_01["7"] = 1;
var_01["8"] = 1;
var_01["9"] = 1;
if(isdefined(var_01[param_00]))
{
return 1;
}
return 0;
}
//Function Number: 748
set_battlechatter_variable(param_00,param_01)
{
level.battlechatter[param_00] = param_01;
maps\_utility_code::update_battlechatter_hud();
}
//Function Number: 749
objective_clearadditionalpositions(param_00)
{
for(var_01 = 0;var_01 < 8;var_01++)
{
objective_additionalposition(param_00,var_01,(0,0,0));
}
}
//Function Number: 750
get_minutes_and_seconds(param_00)
{
var_01 = [];
var_01["minutes"] = 0;
for(var_01["seconds"] = int(param_00 / 1000);var_01["seconds"] >= 60;var_01["seconds"] = var_01["seconds"] - 60)
{
var_01["minutes"]++;
}
if(var_01["seconds"] < 10)
{
var_01["seconds"] = "0" + var_01["seconds"];
}
return var_01;
}
//Function Number: 751
player_has_weapon(param_00)
{
var_01 = level.player getweaponslistprimaries();
foreach(var_03 in var_01)
{
if(var_03 == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 752
obj(param_00)
{
if(!isdefined(level.obj_array))
{
level.obj_array = [];
}
if(!isdefined(level.obj_array[param_00]))
{
level.obj_array[param_00] = level.obj_array.size + 1;
}
return level.obj_array[param_00];
}
//Function Number: 753
obj_exists(param_00)
{
return isdefined(level.obj_array) && isdefined(level.obj_array[param_00]);
}
//Function Number: 754
player_mount_vehicle(param_00)
{
self mountvehicle(param_00);
self.drivingvehicle = param_00;
}
//Function Number: 755
player_dismount_vehicle()
{
self dismountvehicle();
self.drivingvehicle = undefined;
}
//Function Number: 756
graph_position(param_00,param_01,param_02,param_03,param_04)
{
var_05 = param_04 - param_02;
var_06 = param_03 - param_01;
var_07 = var_05 / var_06;
param_00 = param_00 - param_03;
param_00 = var_07 * param_00;
param_00 = param_00 + param_04;
return param_00;
}
//Function Number: 757
enable_achievement_harder_they_fall()
{
self.rappeller = 1;
}
//Function Number: 758
disable_achievement_harder_they_fall()
{
self.rappeller = undefined;
}
//Function Number: 759
enable_achievement_harder_they_fall_guy(param_00)
{
param_00 enable_achievement_harder_they_fall();
}
//Function Number: 760
disable_achievement_harder_they_fall_guy(param_00)
{
param_00 disable_achievement_harder_they_fall();
}
//Function Number: 761
musiclength(param_00)
{
var_01 = tablelookup("sound/soundlength.csv",0,param_00,1);
if(!isdefined(var_01) || var_01 == "")
{
return -1;
}
var_01 = int(var_01);
var_01 = var_01 * 0.001;
return var_01;
}
//Function Number: 762
is_command_bound(param_00)
{
var_01 = getkeybinding(param_00);
return var_01["count"];
}
//Function Number: 763
linear_interpolate(param_00,param_01,param_02)
{
var_03 = param_02 - param_01;
var_04 = param_00 * var_03;
var_05 = param_01 + var_04;
return var_05;
}
//Function Number: 764
define_loadout(param_00)
{
level.loadout = param_00;
}
//Function Number: 765
template_level(param_00)
{
define_loadout(param_00);
level.template_script = param_00;
}
//Function Number: 766
template_so_level(param_00)
{
level.audio_stringtable_mapname = param_00;
}
//Function Number: 767
fx_volume_pause_noteworthy(param_00,param_01)
{
thread fx_volume_pause_noteworthy_thread(param_00,param_01);
}
//Function Number: 768
fx_volume_pause_noteworthy_thread(param_00,param_01)
{
var_02 = getent(param_00,"script_noteworthy");
var_02 notify("new_volume_command");
var_02 endon("new_volume_command");
wait(0.05);
fx_volume_pause(var_02,param_01);
}
//Function Number: 769
fx_volume_pause(param_00,param_01)
{
param_00.fx_paused = 1;
if(!isdefined(param_01))
{
param_01 = 0;
}
if(param_01)
{
array_thread_mod_delayed(param_00.fx,::common_scripts\utility::pauseeffect);
return;
}
common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect);
}
//Function Number: 770
array_thread_mod_delayed(param_00,param_01,param_02)
{
var_03 = 0;
if(!isdefined(param_02))
{
param_02 = 5;
}
var_04 = [];
foreach(var_06 in param_00)
{
var_04[var_04.size] = var_06;
var_03++;
var_03 = var_03 % param_02;
if(param_02 == 0)
{
common_scripts\utility::array_thread(var_04,param_01);
wait(0.05);
var_04 = [];
}
}
}
//Function Number: 771
fx_volume_restart_noteworthy(param_00)
{
thread fx_volume_restart_noteworthy_thread(param_00);
}
//Function Number: 772
fx_volume_restart_noteworthy_thread(param_00)
{
var_01 = getent(param_00,"script_noteworthy");
var_01 notify("new_volume_command");
var_01 endon("new_volume_command");
wait(0.05);
if(!isdefined(var_01.fx_paused))
{
return;
}
var_01.fx_paused = undefined;
fx_volume_restart(var_01);
}
//Function Number: 773
fx_volume_restart(param_00)
{
common_scripts\utility::array_thread(param_00.fx,::restarteffect);
}
//Function Number: 774
flag_count_increment(param_00)
{
if(!isdefined(level.flag_count))
{
level.flag_count = [];
}
if(!isdefined(level.flag_count[param_00]))
{
level.flag_count[param_00] = 1;
return;
}
level.flag_count[param_00]++;
}
//Function Number: 775
flag_count_decrement(param_00)
{
level.flag_count[param_00]--;
level.flag_count[param_00] = int(max(0,level.flag_count[param_00]));
if(level.flag_count[param_00])
{
return;
}
common_scripts\utility::flag_set(param_00);
}
//Function Number: 776
flag_count_set(param_00,param_01)
{
level.flag_count[param_00] = param_01;
}
//Function Number: 777
add_cleanup_ent(param_00,param_01)
{
if(!isdefined(level.cleanup_ents))
{
level.cleanup_ents = [];
}
if(!isdefined(level.cleanup_ents[param_01]))
{
level.cleanup_ents[param_01] = [];
}
level.cleanup_ents[param_01][level.cleanup_ents[param_01].size] = param_00;
}
//Function Number: 778
cleanup_ents(param_00)
{
var_01 = level.cleanup_ents[param_00];
var_01 = common_scripts\utility::array_removeundefined(var_01);
array_delete(var_01);
level.cleanup_ents[param_00] = undefined;
}
//Function Number: 779
cleanup_ents_removing_bullet_shield(param_00)
{
if(!isdefined(level.cleanup_ents))
{
return;
}
if(!isdefined(level.cleanup_ents[param_00]))
{
return;
}
var_01 = level.cleanup_ents[param_00];
var_01 = common_scripts\utility::array_removeundefined(var_01);
foreach(var_03 in var_01)
{
if(!isai(var_03))
{
continue;
}
if(!isalive(var_03))
{
continue;
}
if(!isdefined(var_03.magic_bullet_shield))
{
continue;
}
if(!var_03.magic_bullet_shield)
{
continue;
}
var_03 stop_magic_bullet_shield();
}
array_delete(var_01);
level.cleanup_ents[param_00] = undefined;
}
//Function Number: 780
add_trigger_function(param_00)
{
if(!isdefined(self.trigger_functions))
{
thread maps\_utility_code::add_trigger_func_thread();
}
self.trigger_functions[self.trigger_functions.size] = param_00;
}
//Function Number: 781
getallweapons()
{
var_00 = [];
var_01 = getentarray();
foreach(var_03 in var_01)
{
if(!isdefined(var_03.classname))
{
continue;
}
if(issubstr(var_03.classname,"weapon_"))
{
var_00[var_00.size] = var_03;
}
}
return var_00;
}
//Function Number: 782
radio_add(param_00)
{
level.scr_radio[param_00] = param_00;
}
//Function Number: 783
move_with_rate(param_00,param_01,param_02)
{
self notify("newmove");
self endon("newmove");
if(!isdefined(param_02))
{
param_02 = 200;
}
var_03 = distance(self.origin,param_00);
var_04 = var_03 / param_02;
var_05 = vectornormalize(param_00 - self.origin);
self moveto(param_00,var_04,0,0);
self rotateto(param_01,var_04,0,0);
wait(var_04);
if(!isdefined(self))
{
return;
}
self.velocity = var_05 * var_03 / var_04;
}
//Function Number: 784
flag_on_death(param_00)
{
level endon(param_00);
self waittill("death");
common_scripts\utility::flag_set(param_00);
}
//Function Number: 785
enable_damagefeedback_hud()
{
level.damagefeedbackhud = 1;
}
//Function Number: 786
disable_damagefeedback_hud()
{
level.damagefeedbackhud = 0;
}
//Function Number: 787
is_damagefeedback_hud_enabled()
{
return isdefined(level.damagefeedbackhud) && level.damagefeedbackhud;
}
//Function Number: 788
enable_damagefeedback_snd()
{
level.damagefeedbacksnd = 1;
}
//Function Number: 789
disable_damagefeedback_snd()
{
level.damagefeedbacksnd = 0;
}
//Function Number: 790
is_damagefeedback_snd_enabled()
{
return isdefined(level.damagefeedbacksnd) && level.damagefeedbacksnd;
}
//Function Number: 791
add_damagefeedback()
{
maps\_damagefeedback::monitordamage();
}
//Function Number: 792
remove_damagefeedback()
{
maps\_damagefeedback::stopmonitordamage();
}
//Function Number: 793
is_demo()
{
if(getdvar("e3demo") == "1")
{
return 1;
}
return 0;
}
//Function Number: 794
deletestructarray(param_00,param_01,param_02)
{
var_03 = common_scripts\utility::getstructarray(param_00,param_01);
deletestructarray_ref(var_03,param_02);
}
//Function Number: 795
deletestruct_ref(param_00)
{
if(!isdefined(param_00))
{
return;
}
var_01 = param_00.script_linkname;
if(isdefined(var_01) && isdefined(level.struct_class_names["script_linkname"]) && isdefined(level.struct_class_names["script_linkname"][var_01]))
{
foreach(var_04, var_03 in level.struct_class_names["script_linkname"][var_01])
{
if(isdefined(var_03) && param_00 == var_03)
{
level.struct_class_names["script_linkname"][var_01][var_04] = undefined;
}
}
if(level.struct_class_names["script_linkname"][var_01].size == 0)
{
level.struct_class_names["script_linkname"][var_01] = undefined;
}
}
var_01 = param_00.script_noteworthy;
if(isdefined(var_01) && isdefined(level.struct_class_names["script_noteworthy"]) && isdefined(level.struct_class_names["script_noteworthy"][var_01]))
{
foreach(var_04, var_03 in level.struct_class_names["script_noteworthy"][var_01])
{
if(isdefined(var_03) && param_00 == var_03)
{
level.struct_class_names["script_noteworthy"][var_01][var_04] = undefined;
}
}
if(level.struct_class_names["script_noteworthy"][var_01].size == 0)
{
level.struct_class_names["script_noteworthy"][var_01] = undefined;
}
}
var_01 = param_00.target;
if(isdefined(var_01) && isdefined(level.struct_class_names["target"]) && isdefined(level.struct_class_names["target"][var_01]))
{
foreach(var_04, var_03 in level.struct_class_names["target"][var_01])
{
if(isdefined(var_03) && param_00 == var_03)
{
level.struct_class_names["target"][var_01][var_04] = undefined;
}
}
if(level.struct_class_names["target"][var_01].size == 0)
{
level.struct_class_names["target"][var_01] = undefined;
}
}
var_01 = param_00.targetname;
if(isdefined(var_01) && isdefined(level.struct_class_names["targetname"]) && isdefined(level.struct_class_names["targetname"][var_01]))
{
foreach(var_04, var_03 in level.struct_class_names["targetname"][var_01])
{
if(isdefined(var_03) && param_00 == var_03)
{
level.struct_class_names["targetname"][var_01][var_04] = undefined;
}
}
if(level.struct_class_names["targetname"][var_01].size == 0)
{
level.struct_class_names["targetname"][var_01] = undefined;
}
}
if(isdefined(level.struct))
{
foreach(var_04, var_03 in level.struct)
{
if(param_00 == var_03)
{
level.struct[var_04] = undefined;
}
}
}
}
//Function Number: 796
deletestructarray_ref(param_00,param_01)
{
if(!isdefined(param_00) || !isarray(param_00) || param_00.size == 0)
{
return;
}
param_01 = common_scripts\utility::ter_op(isdefined(param_01),param_01,0);
param_01 = common_scripts\utility::ter_op(param_01 > 0,param_01,0);
if(param_01 > 0)
{
foreach(var_03 in param_00)
{
deletestruct_ref(var_03);
wait(param_01);
}
return;
}
foreach(var_03 in param_01)
{
deletestruct_ref(var_03);
}
}
//Function Number: 797
getstruct_delete(param_00,param_01)
{
var_02 = common_scripts\utility::getstruct(param_00,param_01);
deletestruct_ref(var_02);
return var_02;
}
//Function Number: 798
getstructarray_delete(param_00,param_01,param_02)
{
var_03 = common_scripts\utility::getstructarray(param_00,param_01);
deletestructarray_ref(var_03,param_02);
return var_03;
}
//Function Number: 799
getent_or_struct_or_node(param_00,param_01)
{
var_02 = getent_or_struct(param_00,param_01);
if(!isdefined(var_02))
{
var_02 = getnode(param_00,param_01);
}
if(!isdefined(var_02))
{
var_02 = getvehiclenode(param_00,param_01);
}
return var_02;
}
//Function Number: 800
setentityheadicon(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_03))
{
self.entityheadiconoffset = param_03;
}
else
{
self.entityheadiconoffset = (0,0,0);
}
if(isdefined(param_04))
{
self.entityheadiconreferencefunc = param_04;
}
self notify("new_head_icon");
var_05 = newhudelem();
var_05.archived = 1;
var_05.alpha = 0.8;
var_05 setshader(param_00,param_01,param_02);
var_05 setwaypoint(0,0,0,1);
self.entityheadicon = var_05;
updateentityheadiconorigin();
thread updateentityheadicon();
thread destroyentityheadiconondeath();
}
//Function Number: 801
removeentityheadicon()
{
if(!isdefined(self.entityheadicon))
{
return;
}
self.entityheadicon destroy();
}
//Function Number: 802
updateentityheadicon()
{
self endon("new_head_icon");
self endon("death");
var_00 = self.origin;
for(;;)
{
if(var_00 != self.origin)
{
updateentityheadiconorigin();
var_00 = self.origin;
}
wait(0.05);
}
}
//Function Number: 803
updateentityheadiconorigin()
{
if(isdefined(self.entityheadiconreferencefunc))
{
var_00 = self [[ self.entityheadiconreferencefunc ]]();
if(isdefined(var_00))
{
self.entityheadicon.x = self.entityheadiconoffset[0] + var_00[0];
self.entityheadicon.y = self.entityheadiconoffset[1] + var_00[1];
self.entityheadicon.z = self.entityheadiconoffset[2] + var_00[2];
return;
}
}
self.entityheadicon.x = self.origin[0] + self.entityheadiconoffset[0];
self.entityheadicon.y = self.origin[1] + self.entityheadiconoffset[1];
self.entityheadicon.z = self.origin[2] + self.entityheadiconoffset[2];
}
//Function Number: 804
destroyentityheadiconondeath()
{
self endon("new_head_icon");
self waittill("death");
if(!isdefined(self.entityheadicon))
{
return;
}
self.entityheadicon destroy();
}
//Function Number: 805
worldtolocalcoords(param_00)
{
var_01 = param_00 - self.origin;
return (vectordot(var_01,anglestoforward(self.angles)),-1 * vectordot(var_01,anglestoright(self.angles)),vectordot(var_01,anglestoup(self.angles)));
}
//Function Number: 806
intro_screen_create(param_00,param_01,param_02,param_03,param_04)
{
level.introscreen = spawnstruct();
level.introscreen.completed_delay = 3;
level.introscreen.fade_out_time = 1.5;
level.introscreen.fade_in_time = undefined;
if(isdefined(param_03))
{
level.introscreen.lines = [param_00,param_01,param_02,param_03];
}
else
{
level.introscreen.lines = [param_00,param_01,param_02];
}
common_scripts\utility::noself_array_call(level.introscreen.lines,::precachestring);
}
//Function Number: 807
intro_screen_custom_func(param_00)
{
level.introscreen.customfunc = param_00;
}
//Function Number: 808
intro_screen_custom_timing(param_00,param_01,param_02)
{
level.introscreen.completed_delay = param_00;
level.introscreen.fade_out_time = param_01;
level.introscreen.fade_in_time = param_02;
}
//Function Number: 809
set_npc_anims(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
{
if(isdefined(param_01))
{
self.run_overrideanim = param_01;
}
if(isdefined(param_02))
{
self.walk_overrideanim = param_02;
}
if(isdefined(param_03))
{
self.specialidleanim = param_03;
}
self.animarchetype = param_00;
var_0A = [];
if(isdefined(param_04) && isdefined(param_05))
{
var_0B = [];
foreach(var_0D in param_06)
{
var_0B[var_0D] = param_04;
}
var_0A["cover_trans"] = var_0B;
var_0F = [];
foreach(var_0D in param_06)
{
var_0F[var_0D] = param_05;
}
var_0A["cover_exit"] = var_0F;
}
else if(isdefined(param_04) || isdefined(param_05))
{
}
if(isdefined(param_07))
{
if(isdefined(param_08))
{
}
var_0A["run_turn"] = param_07;
var_0A["walk_turn"] = param_08;
self.noturnanims = undefined;
}
else if(isdefined(param_08))
{
}
else
{
self.noturnanims = 1;
}
if(isdefined(param_09))
{
var_12 = [];
var_12["stairs_up"] = param_09["stairs_up"];
var_12["stairs_down"] = param_09["stairs_down"];
var_12["stairs_up_in"] = param_09["stairs_up_in"];
var_12["stairs_down_in"] = param_09["stairs_down_in"];
var_12["stairs_up_out"] = param_09["stairs_up_out"];
var_12["stairs_down_out"] = param_09["stairs_down_out"];
var_0A["walk"] = var_12;
var_0A["run"] = var_12;
self.run_overrideanim_hasstairanimarray = 1;
}
else
{
self.run_overrideanim_hasstairanimarray = undefined;
}
level.archetypes[param_00] = var_0A;
animscripts\init_move_transitions::inittransdistandanglesforarchetype(param_00);
}
//Function Number: 810
clear_npc_anims(param_00)
{
self.animarchetype = undefined;
level.archetypes[param_00] = undefined;
self.run_overrideanim = undefined;
self.run_overrideanim_hasstairanimarray = undefined;
self.walk_overrideanim = undefined;
self.specialidleanim = undefined;
}
//Function Number: 811
register_archetype(param_00,param_01,param_02)
{
animscripts\animset::registerarchetype(param_00,param_01,param_02);
}
//Function Number: 812
archetype_exists(param_00)
{
return animscripts\animset::archetypeexists(param_00);
}
//Function Number: 813
set_archetype(param_00)
{
self.animarchetype = param_00;
self notify("move_loop_restart");
if(param_00 == "creepwalk")
{
self.sharpturnlookaheaddist = 72;
}
}
//Function Number: 814
clear_archetype()
{
if(isdefined(self.animarchetype) && self.animarchetype == "creepwalk")
{
self.sharpturnlookaheaddist = 30;
}
self.animarchetype = undefined;
self notify("move_loop_restart");
}
//Function Number: 815
shot_endangers_any_player(param_00,param_01)
{
foreach(var_03 in level.players)
{
if(var_03 shot_endangers_player(param_00,param_01))
{
return 1;
}
}
return 0;
}
//Function Number: 816
shot_endangers_player(param_00,param_01)
{
var_02 = self getpointinbounds(0,0,0);
var_03 = var_02 - param_00;
var_04 = length(var_03);
var_05 = asin(clamp(60 / var_04,0,1));
if(vectordot(vectornormalize(var_03),vectornormalize(param_01 - param_00)) > cos(var_05))
{
return 1;
}
return 0;
}
//Function Number: 817
transient_load(param_00)
{
loadtransient(param_00);
while(!istransientloaded(param_00))
{
wait(0.1);
}
common_scripts\utility::flag_set(param_00 + "_loaded");
}
//Function Number: 818
transient_unload(param_00)
{
unloadtransient(param_00);
while(istransientloaded(param_00))
{
wait(0.1);
}
common_scripts\utility::flag_clear(param_00 + "_loaded");
}
//Function Number: 819
transient_init(param_00)
{
common_scripts\utility::flag_init(param_00 + "_loaded");
}
//Function Number: 820
transient_switch(param_00,param_01)
{
if(common_scripts\utility::flag(param_00 + "_loaded"))
{
transient_unload(param_00);
}
if(!common_scripts\utility::flag(param_01 + "_loaded"))
{
transient_load(param_01);
}
}
//Function Number: 821
transient_unloadall_and_load(param_00)
{
unloadalltransients();
transient_load(param_00);
}
//Function Number: 822
deep_array_call(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
foreach(var_04 in param_00)
{
if(isdefined(var_04))
{
if(isarray(var_04))
{
deep_array_call(var_04,param_01);
continue;
}
var_04 [[ param_01 ]]();
}
}
return;
}
switch(var_05.size)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
}
//Function Number: 823
deep_array_thread(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
foreach(var_04 in param_00)
{
if(isdefined(var_04))
{
if(isarray(var_04))
{
deep_array_thread(var_04,param_01,param_02);
continue;
}
var_04 thread [[ param_01 ]]();
}
}
return;
}
switch(var_05.size)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
}
//Function Number: 824
setdvar_cg_ng(param_00,param_01,param_02)
{
if(!isdefined(level.console))
{
set_console_status();
}
if(is_gen4())
{
setdvar(param_00,param_02);
return;
}
setdvar(param_00,param_01);
}
//Function Number: 825
setsaveddvar_cg_ng(param_00,param_01,param_02)
{
if(!isdefined(level.console))
{
set_console_status();
}
if(is_gen4())
{
setsaveddvar(param_00,param_02);
return;
}
setsaveddvar(param_00,param_01);
}
//Function Number: 826
follow_path_and_animate(param_00,param_01)
{
self endon("death");
self endon("stop_path");
self notify("stop_going_to_node");
self notify("follow_path");
self endon("follow_path");
wait(0.1);
var_02 = param_00;
var_03 = undefined;
var_04 = undefined;
if(!isdefined(param_01))
{
param_01 = 300;
}
self.current_follow_path = var_02;
var_02 script_delay();
if(isdefined(var_02))
{
self.current_follow_path = var_02;
if(isdefined(var_02.lookahead))
{
break;
}
if(isdefined(level.struct_class_names["targetname"][var_02.targetname]))
{
var_04 = ::follow_path_animate_set_struct;
}
else if(isdefined(var_02.classname))
{
var_04 = ::follow_path_animate_set_ent;
}
else
{
var_04 = ::follow_path_animate_set_node;
}
if(isdefined(var_02.radius) && var_02.radius != 0)
{
self.goalradius = var_02.radius;
}
if(self.goalradius < 16)
{
self.goalradius = 16;
}
if(isdefined(var_02.height) && var_02.height != 0)
{
self.goalheight = var_02.height;
}
var_05 = self.goalradius;
self childthread [[ var_04 ]](var_02);
if(isdefined(var_02.animation))
{
var_02 waittill(var_02.animation);
}
else
{
for(;;)
{
self waittill("goal");
if(distance(var_02.origin,self.origin) < var_05 + 10 || self.team != "allies")
{
break;
}
}
}
var_02 notify("trigger",self);
if(isdefined(var_02.script_flag_set))
{
common_scripts\utility::flag_set(var_02.script_flag_set);
}
if(isdefined(var_02.script_parameters))
{
var_06 = strtok(var_02.script_parameters," ");
var_07 = 0;
if(var_07 < var_06.size)
{
if(isdefined(level.custom_followpath_parameter_func))
{
self [[ level.custom_followpath_parameter_func ]](var_06[var_07],var_02);
}
if(self.type == "dog")
{
continue;
}
switch(var_06[var_07])
{
case "enable_cqb":
break;
case "disable_cqb":
break;
case "deleteme":
break;
}
}
}
}
}
//Function Number: 827
follow_path_wait_for_player(param_00,param_01)
{
if(distance(level.player.origin,param_00.origin) < distance(self.origin,param_00.origin))
{
return 1;
}
var_02 = undefined;
var_02 = anglestoforward(self.angles);
var_03 = vectornormalize(level.player.origin - self.origin);
if(isdefined(param_00.target))
{
var_04 = common_scripts\utility::get_target_ent(param_00.target);
var_02 = vectornormalize(var_04.origin - param_00.origin);
}
else if(isdefined(param_00.angles))
{
var_02 = anglestoforward(param_00.angles);
}
else
{
var_02 = anglestoforward(self.angles);
}
if(vectordot(var_02,var_03) > 0)
{
return 1;
}
if(distance(level.player.origin,self.origin) < param_01)
{
return 1;
}
return 0;
}
//Function Number: 828
follow_path_animate_set_node(param_00)
{
self notify("follow_path_new_goal");
if(isdefined(param_00.animation))
{
param_00 maps\_anim::anim_generic_reach(self,param_00.animation);
self notify("starting_anim",param_00.animation);
if(isdefined(param_00.script_parameters) && issubstr(param_00.script_parameters,"gravity"))
{
param_00 maps\_anim::anim_generic_gravity(self,param_00.animation);
}
else
{
param_00 maps\_anim::anim_generic_run(self,param_00.animation);
}
self setgoalpos(self.origin);
return;
}
set_goal_node(param_00);
}
//Function Number: 829
follow_path_animate_set_ent(param_00)
{
self notify("follow_path_new_goal");
if(isdefined(param_00.animation))
{
param_00 maps\_anim::anim_generic_reach(self,param_00.animation);
self notify("starting_anim",param_00.animation);
if(isdefined(param_00.script_parameters) && issubstr(param_00.script_parameters,"gravity"))
{
param_00 maps\_anim::anim_generic_gravity(self,param_00.animation);
}
else
{
param_00 maps\_anim::anim_generic_run(self,param_00.animation);
}
self setgoalpos(self.origin);
return;
}
set_goal_ent(param_00);
}
//Function Number: 830
follow_path_animate_set_struct(param_00)
{
self notify("follow_path_new_goal");
if(isdefined(param_00.animation))
{
param_00 maps\_anim::anim_generic_reach(self,param_00.animation);
self notify("starting_anim",param_00.animation);
disable_exits();
if(isdefined(param_00.script_parameters) && issubstr(param_00.script_parameters,"gravity"))
{
param_00 maps\_anim::anim_generic_gravity(self,param_00.animation);
}
else
{
param_00 maps\_anim::anim_generic_run(self,param_00.animation);
}
delaythread(0.05,::enable_exits);
self setgoalpos(self.origin);
return;
}
set_goal_pos(param_00.origin);
}
//Function Number: 831
post_load_precache(param_00)
{
if(!isdefined(level.post_load_funcs))
{
level.post_load_funcs = [];
}
level.post_load_funcs = common_scripts\utility::array_add(level.post_load_funcs,param_00);
}
//Function Number: 832
game_is_current_gen()
{
if(level.xenon)
{
return 1;
}
if(level.ps3)
{
return 1;
}
return 0;
}
//Function Number: 833
lerpfov_saved(param_00,param_01)
{
thread lerpfov_saved_thread(param_00,param_01);
}
//Function Number: 834
lerpfov_saved_thread(param_00,param_01)
{
self notify("new_lerp_Fov_Saved");
self endon("new_lerp_Fov_Saved");
self lerpfov(param_00,param_01);
wait(param_01);
setsaveddvar("cg_fov",param_00);
}
//Function Number: 835
getdvarfloatdefault(param_00,param_01)
{
var_02 = getdvar(param_00);
if(var_02 != "")
{
return float(var_02);
}
return param_01;
}
//Function Number: 836
getdvarintdefault(param_00,param_01)
{
var_02 = getdvar(param_00);
if(var_02 != "")
{
return int(var_02);
}
return param_01;
}
//Function Number: 837
ui_action_slot_force_active_on(param_00)
{
var_01 = "ui_actionslot_" + param_00 + "_forceActive";
setdvar(var_01,"on");
}
//Function Number: 838
ui_action_slot_force_active_off(param_00)
{
var_01 = "ui_actionslot_" + param_00 + "_forceActive";
setdvar(var_01,"turn_off");
}
//Function Number: 839
ui_action_slot_force_active_one_time(param_00)
{
var_01 = "ui_actionslot_" + param_00 + "_forceActive";
setdvar(var_01,"onetime");
}
//Function Number: 840
hastag(param_00,param_01)
{
var_02 = getnumparts(param_00);
for(var_03 = 0;var_03 < var_02;var_03++)
{
if(tolower(getpartname(param_00,var_03)) == tolower(param_01))
{
return 1;
}
}
return 0;
}
//Function Number: 841
stylized_center_text(param_00,param_01,param_02,param_03)
{
if(!isarray(param_00))
{
param_00 = [param_00];
}
var_04 = 320;
var_05 = 200;
var_06 = [];
foreach(var_0A, var_08 in param_00)
{
var_09 = maps\_introscreen::stylized_line(var_08,param_01,var_04,var_05 + var_0A * 20,"center",param_02,param_03);
var_06 = common_scripts\utility::array_combine(var_09,var_06);
}
wait(param_01);
maps\_introscreen::stylized_fadeout(var_06,var_04,var_05,param_00.size);
}
//Function Number: 842
center_screen_text(param_00)
{
thread maps\_introscreen::center_screen_lines(param_00);
}
//Function Number: 843
enable_s1_motionset(param_00)
{
if(!s1_motionset_avaliable())
{
return;
}
if(isdefined(self.mech) && self.mech)
{
return;
}
if(!level.nextgen)
{
return;
}
if(isdefined(param_00) && param_00)
{
if(!isdefined(self.animarchetype) || self.animarchetype == "soldier")
{
self.animarchetype = "s1_soldier";
return;
}
return;
}
if(!isdefined(self.animarchetype) || self.animarchetype == "s1_soldier")
{
self.animarchetype = "soldier";
}
}
//Function Number: 844
s1_motionset_avaliable()
{
if(level.nextgen)
{
return 1;
}
return 0;
}
//Function Number: 845
ai_ignore_everything()
{
if(isdefined(self.script_drone))
{
return;
}
if(isdefined(self._ignore_settings_old))
{
ai_unignore_everything();
}
self._ignore_settings_old = [];
self.disableplayeradsloscheck = maps\_utility_code::ai_save_ignore_setting(self.disableplayeradsloscheck,"disableplayeradsloscheck",1);
self.ignoreall = maps\_utility_code::ai_save_ignore_setting(self.ignoreall,"ignoreall",1);
self.ignoreme = maps\_utility_code::ai_save_ignore_setting(self.ignoreme,"ignoreme",1);
self.grenadeawareness = maps\_utility_code::ai_save_ignore_setting(self.grenadeawareness,"grenadeawareness",0);
self.badplaceawareness = maps\_utility_code::ai_save_ignore_setting(self.badplaceawareness,"badplaceawareness",0);
self.ignoreexplosionevents = maps\_utility_code::ai_save_ignore_setting(self.ignoreexplosionevents,"ignoreexplosionevents",1);
self.ignorerandombulletdamage = maps\_utility_code::ai_save_ignore_setting(self.ignorerandombulletdamage,"ignorerandombulletdamage",1);
self.ignoresuppression = maps\_utility_code::ai_save_ignore_setting(self.ignoresuppression,"ignoresuppression",1);
self.dontavoidplayer = maps\_utility_code::ai_save_ignore_setting(self.dontavoidplayer,"dontavoidplayer",1);
self.newenemyreactiondistsq = maps\_utility_code::ai_save_ignore_setting(self.newenemyreactiondistsq,"newEnemyReactionDistSq",0);
self.disablebulletwhizbyreaction = maps\_utility_code::ai_save_ignore_setting(self.disablebulletwhizbyreaction,"disableBulletWhizbyReaction",1);
self.disablefriendlyfirereaction = maps\_utility_code::ai_save_ignore_setting(self.disablefriendlyfirereaction,"disableFriendlyFireReaction",1);
self.dontmelee = maps\_utility_code::ai_save_ignore_setting(self.dontmelee,"dontMelee",1);
self.flashbangimmunity = maps\_utility_code::ai_save_ignore_setting(self.flashbangimmunity,"flashBangImmunity",1);
self.dodangerreact = maps\_utility_code::ai_save_ignore_setting(self.dodangerreact,"doDangerReact",0);
self.neversprintforvariation = maps\_utility_code::ai_save_ignore_setting(self.neversprintforvariation,"neverSprintForVariation",1);
self.a.disablepain = maps\_utility_code::ai_save_ignore_setting(self.a.disablepain,"a.disablePain",1);
self.allowpain = maps\_utility_code::ai_save_ignore_setting(self.allowpain,"allowPain",0);
self.fixednode = maps\_utility_code::ai_save_ignore_setting(self.fixednode,"fixedNode",1);
self.script_forcegoal = maps\_utility_code::ai_save_ignore_setting(self.script_forcegoal,"script_forcegoal",1);
self.goalradius = maps\_utility_code::ai_save_ignore_setting(self.goalradius,"goalradius",5);
disable_ai_color();
}
//Function Number: 846
ai_unignore_everything(param_00)
{
if(isdefined(self.script_drone))
{
return;
}
if(isdefined(param_00) && param_00)
{
if(isdefined(self._ignore_settings_old))
{
self._ignore_settings_old = undefined;
}
}
self.disableplayeradsloscheck = maps\_utility_code::ai_restore_ignore_setting("disableplayeradsloscheck",0);
self.ignoreall = maps\_utility_code::ai_restore_ignore_setting("ignoreall",0);
self.ignoreme = maps\_utility_code::ai_restore_ignore_setting("ignoreme",0);
self.grenadeawareness = maps\_utility_code::ai_restore_ignore_setting("grenadeawareness",1);
self.badplaceawareness = maps\_utility_code::ai_restore_ignore_setting("badplaceawareness",1);
self.ignoreexplosionevents = maps\_utility_code::ai_restore_ignore_setting("ignoreexplosionevents",0);
self.ignorerandombulletdamage = maps\_utility_code::ai_restore_ignore_setting("ignorerandombulletdamage",0);
self.ignoresuppression = maps\_utility_code::ai_restore_ignore_setting("ignoresuppression",0);
self.dontavoidplayer = maps\_utility_code::ai_restore_ignore_setting("dontavoidplayer",0);
self.newenemyreactiondistsq = maps\_utility_code::ai_restore_ignore_setting("newEnemyReactionDistSq",262144);
self.disablebulletwhizbyreaction = maps\_utility_code::ai_restore_ignore_setting("disableBulletWhizbyReaction",undefined);
self.disablefriendlyfirereaction = maps\_utility_code::ai_restore_ignore_setting("disableFriendlyFireReaction",undefined);
self.dontmelee = maps\_utility_code::ai_restore_ignore_setting("dontMelee",undefined);
self.flashbangimmunity = maps\_utility_code::ai_restore_ignore_setting("flashBangImmunity",undefined);
self.dodangerreact = maps\_utility_code::ai_restore_ignore_setting("doDangerReact",1);
self.neversprintforvariation = maps\_utility_code::ai_restore_ignore_setting("neverSprintForVariation",undefined);
self.a.disablepain = maps\_utility_code::ai_restore_ignore_setting("a.disablePain",0);
self.allowpain = maps\_utility_code::ai_restore_ignore_setting("allowPain",1);
self.fixednode = maps\_utility_code::ai_restore_ignore_setting("fixedNode",0);
self.script_forcegoal = maps\_utility_code::ai_restore_ignore_setting("script_forcegoal",0);
self.goalradius = maps\_utility_code::ai_restore_ignore_setting("goalradius",100);
enable_ai_color();
self._ignore_settings_old = undefined;
}
//Function Number: 847
attach_player_current_weapon_to_anim_tag(param_00)
{
var_01 = level.player getcurrentweapon();
var_02 = getweaponandattachmentmodels(var_01);
var_03 = var_02[0]["weapon"];
var_04 = array_remove_index(var_02,0);
self attach(var_03,param_00,1);
foreach(var_06 in var_04)
{
self attach(var_06["attachment"],var_06["attachTag"]);
}
self hideweapontags(var_01);
}
//Function Number: 848
playerallowalternatemelee(param_00,param_01)
{
_playerallow("altmelee",param_00,param_01,::_allowalternatemelee,0);
}
//Function Number: 849
_allowalternatemelee(param_00)
{
if(param_00)
{
self enablealternatemelee();
return;
}
self disablealternatemelee();
}
//Function Number: 850
playerallowweaponpickup(param_00,param_01)
{
_playerallow("weaponPickup",param_00,param_01,::_allowweaponpickup,0);
}
//Function Number: 851
_allowweaponpickup(param_00)
{
if(param_00)
{
self enableweaponpickup();
return;
}
self disableweaponpickup();
}
//Function Number: 852
_playerallow(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(self.playerdisableabilitytypes))
{
self.playerdisableabilitytypes = [];
}
if(!isdefined(self.playerdisableabilitytypes[param_00]))
{
self.playerdisableabilitytypes[param_00] = [];
}
if(!isdefined(param_02))
{
param_02 = "default";
}
if(param_01)
{
self.playerdisableabilitytypes[param_00] = common_scripts\utility::array_remove(self.playerdisableabilitytypes[param_00],param_02);
if(!self.playerdisableabilitytypes[param_00].size)
{
if(!isdefined(param_04) || param_04)
{
self [[ param_03 ]](1);
return;
}
self [[ param_03 ]](1);
return;
}
return;
}
if(!isdefined(common_scripts\utility::array_find(self.playerdisableabilitytypes[param_00],param_02)))
{
self.playerdisableabilitytypes[param_00] = common_scripts\utility::array_add(self.playerdisableabilitytypes[param_00],param_02);
}
if(!isdefined(param_04) || param_04)
{
self [[ param_03 ]](0);
return;
}
self [[ param_03 ]](0);
}
//Function Number: 853
pretend_to_be_dead()
{
if(!isalive(self))
{
return;
}
self.pretending_to_be_dead = 1;
self setthreatdetection("disable");
self disableaimassist();
self.ignoreme = 1;
self.ignoresonicaoe = 1;
}
//Function Number: 854
tff_sync_setup()
{
precacheshader("loading_animation");
common_scripts\utility::flag_init("tff_sync_complete");
maps\_utility_code::_tff_sync_triggers();
}
//Function Number: 855
tff_sync(param_00)
{
if(isdefined(param_00))
{
wait(param_00);
}
if(aretransientsbusy())
{
common_scripts\utility::flag_clear("tff_sync_complete");
synctransients();
while(aretransientsbusy())
{
wait(0.05);
}
common_scripts\utility::flag_set("tff_sync_complete");
}
}
//Function Number: 856
tff_sync_notetrack(param_00,param_01)
{
tff_sync(param_01);
}
//Function Number: 857
logbreadcrumbdatasp()
{
level.player endon("death");
for(;;)
{
var_00 = getspcheckpointdata();
var_01 = var_00[4];
var_02 = gettime();
recordbreadcrumbdataforplayersp(level.player,var_01,var_02);
wait(2);
}
}