IL-GSC/AW/PC/maps/_trigger.gsc
InfinityLoader b2389dbcb9 Full AW Dump
2024-04-22 02:38:24 -04:00

2382 lines
53 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: _trigger.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 86
* Decompile Time: 1248 ms
* Timestamp: 4/22/2024 2:23:32 AM
*******************************************************************/
//Function Number: 1
get_load_trigger_classes()
{
var_00 = [];
var_00["trigger_multiple_nobloodpool"] = ::trigger_nobloodpool;
var_00["trigger_multiple_flag_set"] = ::trigger_flag_set;
var_00["trigger_multiple_flag_clear"] = ::trigger_flag_clear;
var_00["trigger_multiple_sun_off"] = ::trigger_sun_off;
var_00["trigger_multiple_sun_on"] = ::trigger_sun_on;
var_00["trigger_use_flag_set"] = ::trigger_flag_set;
var_00["trigger_use_flag_clear"] = ::trigger_flag_clear;
var_00["trigger_multiple_flag_set_touching"] = ::trigger_flag_set_touching;
var_00["trigger_multiple_flag_lookat"] = ::trigger_lookat;
var_00["trigger_multiple_flag_looking"] = ::trigger_looking;
var_00["trigger_multiple_no_prone"] = ::trigger_no_prone;
var_00["trigger_multiple_no_crouch_or_prone"] = ::trigger_no_crouch_or_prone;
var_00["trigger_multiple_compass"] = ::trigger_multiple_compass;
var_00["trigger_multiple_specialops_flag_set"] = ::trigger_flag_set_specialops;
var_00["trigger_multiple_fx_volume"] = ::trigger_multiple_fx_volume;
var_00["trigger_multiple_fx_fxzone"] = ::trigger_flag_set_touching;
var_00["trigger_multiple_light_sunshadow"] = ::maps\_lights::sun_shadow_trigger;
if(!maps\_utility::is_no_game_start())
{
var_00["trigger_multiple_autosave"] = ::maps\_autosave::trigger_autosave;
var_00["trigger_multiple_spawn"] = ::maps\_spawner::trigger_spawner;
var_00["trigger_multiple_spawn_reinforcement"] = ::maps\_spawner::trigger_spawner_reinforcement;
}
var_00["trigger_multiple_slide"] = ::trigger_slide;
var_00["trigger_multiple_statscheckpoint"] = ::trigger_stats;
var_00["trigger_multiple_fog"] = ::trigger_fog;
var_00["trigger_multiple_depthoffield"] = ::trigger_multiple_depthoffield;
var_00["trigger_multiple_tessellationcutoff"] = ::trigger_multiple_tessellationcutoff;
var_00["trigger_damage_player_flag_set"] = ::trigger_damage_player_flag_set;
var_00["trigger_multiple_visionset"] = ::trigger_multiple_visionset;
var_00["trigger_multiple_sunflare"] = ::trigger_multiple_sunflare;
var_00["trigger_multiple_glass_break"] = ::trigger_glass_break;
var_00["trigger_radius_glass_break"] = ::trigger_glass_break;
var_00["trigger_multiple_friendly_respawn"] = ::trigger_friendly_respawn;
var_00["trigger_multiple_enemy_respawn"] = ::trigger_enemy_respawn;
var_00["trigger_multiple_friendly_stop_respawn"] = ::trigger_friendly_stop_respawn;
var_00["trigger_multiple_enemy_stop_respawn"] = ::trigger_enemy_stop_respawn;
var_00["trigger_multiple_physics"] = ::trigger_physics;
var_00["trigger_multiple_fx_watersheeting"] = ::trigger_multiple_fx_watersheeting;
var_00["trigger_multiple_fx_wakevolume"] = ::trigger_wakevolume_think;
var_00["trigger_multiple_fx_fallingwatervolume"] = ::trigger_fallingwatervolume_think;
return var_00;
}
//Function Number: 2
trigger_multiple_fx_watersheeting(param_00)
{
var_01 = 3;
if(isdefined(param_00.script_duration))
{
var_01 = param_00.script_duration;
}
for(;;)
{
param_00 waittill("trigger",var_02);
if(isplayer(var_02))
{
var_02 setwatersheeting(1,var_01);
wait(var_01 * 0.2);
}
}
}
//Function Number: 3
get_load_trigger_funcs()
{
var_00 = [];
var_00["friendly_wave"] = ::maps\_spawner::friendly_wave;
var_00["friendly_wave_off"] = ::maps\_spawner::friendly_wave;
var_00["friendly_mgTurret"] = ::maps\_spawner::friendly_mgturret;
if(!maps\_utility::is_no_game_start())
{
var_00["camper_spawner"] = ::maps\_spawner::camper_trigger_think;
var_00["flood_spawner"] = ::maps\_spawner::flood_trigger_think;
var_00["trigger_spawner"] = ::maps\_spawner::trigger_spawner;
var_00["trigger_autosave"] = ::maps\_autosave::trigger_autosave;
var_00["trigger_spawngroup"] = ::trigger_spawngroup;
var_00["two_stage_spawner"] = ::maps\_spawner::two_stage_spawner_think;
var_00["trigger_vehicle_spline_spawn"] = ::trigger_vehicle_spline_spawn;
var_00["trigger_vehicle_spawn"] = ::trigger_vehicle_spawn;
var_00["trigger_vehicle_getin_spawn"] = ::trigger_vehicle_getin_spawn;
var_00["random_spawn"] = ::maps\_spawner::random_spawn;
}
var_00["autosave_now"] = ::maps\_autosave::autosave_now_trigger;
var_00["trigger_autosave_tactical"] = ::maps\_autosave::trigger_autosave_tactical;
var_00["trigger_autosave_stealth"] = ::maps\_autosave::trigger_autosave_stealth;
var_00["trigger_unlock"] = ::trigger_unlock;
var_00["trigger_lookat"] = ::trigger_lookat;
var_00["trigger_looking"] = ::trigger_looking;
var_00["trigger_cansee"] = ::trigger_cansee;
var_00["autosave_immediate"] = ::maps\_autosave::trigger_autosave_immediate;
var_00["flag_set"] = ::trigger_flag_set;
if(maps\_utility::is_coop())
{
var_00["flag_set_coop"] = ::trigger_flag_set_coop;
}
var_00["flag_set_player"] = ::trigger_flag_set_player;
var_00["flag_unset"] = ::trigger_flag_clear;
var_00["flag_clear"] = ::trigger_flag_clear;
var_00["objective_event"] = ::maps\_spawner::objective_event_init;
var_00["friendly_respawn_trigger"] = ::trigger_friendly_respawn;
var_00["enemy_respawn_trigger"] = ::trigger_enemy_respawn;
var_00["radio_trigger"] = ::trigger_radio;
var_00["trigger_ignore"] = ::trigger_ignore;
var_00["trigger_pacifist"] = ::trigger_pacifist;
var_00["trigger_delete"] = ::trigger_turns_off;
var_00["trigger_delete_on_touch"] = ::trigger_delete_on_touch;
var_00["trigger_off"] = ::trigger_turns_off;
var_00["trigger_outdoor"] = ::maps\_spawner::outdoor_think;
var_00["trigger_indoor"] = ::maps\_spawner::indoor_think;
var_00["trigger_hint"] = ::trigger_hint;
var_00["trigger_grenade_at_player"] = ::trigger_throw_grenade_at_player;
var_00["flag_on_cleared"] = ::trigger_flag_on_cleared;
var_00["flag_set_touching"] = ::trigger_flag_set_touching;
var_00["delete_link_chain"] = ::trigger_delete_link_chain;
var_00["trigger_fog"] = ::trigger_fog;
var_00["trigger_slide"] = ::trigger_slide;
var_00["trigger_stats"] = ::trigger_stats;
var_00["trigger_dooropen"] = ::trigger_dooropen;
var_00["no_crouch_or_prone"] = ::trigger_no_crouch_or_prone;
var_00["no_prone"] = ::trigger_no_prone;
return var_00;
}
//Function Number: 4
init_script_triggers()
{
var_00 = get_load_trigger_classes();
var_01 = get_load_trigger_funcs();
foreach(var_05, var_03 in var_00)
{
var_04 = getentarray(var_05,"classname");
common_scripts\utility::array_levelthread(var_04,var_03);
}
var_06 = getentarray("trigger_multiple","classname");
var_07 = getentarray("trigger_radius","classname");
var_04 = maps\_utility::array_merge(var_06,var_07);
var_08 = getentarray("trigger_disk","classname");
var_04 = maps\_utility::array_merge(var_04,var_08);
var_09 = getentarray("trigger_once","classname");
var_04 = maps\_utility::array_merge(var_04,var_09);
if(!maps\_utility::is_no_game_start())
{
for(var_0A = 0;var_0A < var_04.size;var_0A++)
{
if(var_04[var_0A].spawnflags & 32)
{
thread maps\_spawner::trigger_spawner(var_04[var_0A]);
}
}
}
for(var_0B = 0;var_0B < 7;var_0B++)
{
switch(var_0B)
{
case 0:
var_0C = "trigger_multiple";
break;
case 1:
var_0C = "trigger_once";
break;
case 2:
var_0C = "trigger_use";
break;
case 3:
var_0C = "trigger_radius";
break;
case 4:
var_0C = "trigger_lookat";
break;
case 5:
var_0C = "trigger_disk";
break;
default:
var_0C = "trigger_damage";
break;
}
var_04 = getentarray(var_0C,"code_classname");
for(var_0A = 0;var_0A < var_04.size;var_0A++)
{
if(isdefined(var_04[var_0A].script_flag_true))
{
level thread trigger_script_flag_true(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_flag_false))
{
level thread trigger_script_flag_false(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_autosavename) || isdefined(var_04[var_0A].script_autosave))
{
level thread maps\_autosave::autosavenamethink(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_fallback))
{
level thread maps\_spawner::fallback_think(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_mgturretauto))
{
level thread maps\_mgturret::mgturret_auto(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_killspawner))
{
level thread maps\_spawner::kill_spawner(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_kill_vehicle_spawner))
{
level thread maps\_vehicle_code::kill_vehicle_spawner(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_emptyspawner))
{
level thread maps\_spawner::empty_spawner(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_prefab_exploder))
{
var_04[var_0A].script_exploder = var_04[var_0A].script_prefab_exploder;
}
if(isdefined(var_04[var_0A].script_exploder))
{
level thread maps\_load::exploder_load(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].ambient))
{
var_04[var_0A] thread soundscripts\_audio::trigger_multiple_audio_trigger(1);
}
if(isdefined(var_04[var_0A].script_audio_zones) || isdefined(var_04[var_0A].script_audio_enter_msg) || isdefined(var_04[var_0A].script_audio_exit_msg) || isdefined(var_04[var_0A].script_audio_progress_msg) || isdefined(var_04[var_0A].script_audio_enter_func) || isdefined(var_04[var_0A].script_audio_exit_func) || isdefined(var_04[var_0A].script_audio_progress_func) || isdefined(var_04[var_0A].script_audio_point_func))
{
var_04[var_0A] thread soundscripts\_audio::trigger_multiple_audio_trigger();
}
if(isdefined(var_04[var_0A].script_triggered_playerseek))
{
level thread trigger_playerseek(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_bctrigger))
{
level thread trigger_battlechatter(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_trigger_group))
{
var_04[var_0A] thread trigger_group();
}
if(isdefined(var_04[var_0A].script_random_killspawner))
{
level thread maps\_spawner::random_killspawner(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].targetname))
{
var_0D = var_04[var_0A].targetname;
if(isdefined(var_01[var_0D]))
{
level thread [[ var_01[var_0D] ]](var_04[var_0A]);
}
}
}
}
}
//Function Number: 5
trigger_createart_transient(param_00)
{
var_01 = 1;
if(var_01)
{
param_00 delete();
}
}
//Function Number: 6
createart_transient_thread()
{
}
//Function Number: 7
trigger_damage_player_flag_set(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger",var_02);
if(!isalive(var_02))
{
continue;
}
if(!isplayer(var_02))
{
continue;
}
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_01,var_02);
}
}
//Function Number: 8
trigger_flag_clear(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger");
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_clear(var_01);
}
}
//Function Number: 9
trigger_flag_on_cleared(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger");
wait(1);
if(param_00 found_toucher())
{
continue;
}
break;
}
common_scripts\utility::flag_set(var_01);
}
//Function Number: 10
found_toucher()
{
var_00 = getaiarray("bad_guys");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_02 = var_00[var_01];
if(!isalive(var_02))
{
continue;
}
if(var_02 istouching(self))
{
return 1;
}
wait(0.1);
}
var_00 = getaiarray("bad_guys");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_02 = var_00[var_01];
if(var_02 istouching(self))
{
return 1;
}
}
return 0;
}
//Function Number: 11
trigger_flag_set(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger",var_02);
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_01,var_02);
}
}
//Function Number: 12
trigger_flag_set_coop(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
var_02 = [];
for(;;)
{
param_00 waittill("trigger",var_03);
if(!isplayer(var_03))
{
continue;
}
var_04 = [];
var_04[var_04.size] = var_03;
var_02 = maps\_utility::array_merge(var_02,var_04);
if(var_02.size == level.players.size)
{
break;
}
}
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_01);
}
//Function Number: 13
trigger_flag_set_specialops(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
param_00.player_touched_arr = level.players;
param_00 thread trigger_flag_set_specialops_clear(var_01);
for(;;)
{
param_00 waittill("trigger",var_02);
param_00.player_touched_arr = common_scripts\utility::array_remove(param_00.player_touched_arr,var_02);
if(param_00.player_touched_arr.size)
{
continue;
}
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_01,var_02);
}
}
//Function Number: 14
trigger_flag_set_specialops_clear(param_00)
{
for(;;)
{
level waittill(param_00);
if(common_scripts\utility::flag(param_00))
{
self.player_touched_arr = [];
continue;
}
self.player_touched_arr = level.players;
}
}
//Function Number: 15
trigger_friendly_respawn(param_00)
{
param_00 endon("death");
var_01 = getent(param_00.target,"targetname");
var_02 = undefined;
if(isdefined(var_01))
{
var_02 = var_01.origin;
var_01 delete();
}
else
{
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
var_02 = var_01.origin;
}
for(;;)
{
param_00 waittill("trigger");
maps\_colors::colornode_set_respawn_point(var_02,"allies");
common_scripts\utility::flag_set("respawn_friendlies");
wait(0.5);
}
}
//Function Number: 16
trigger_friendly_stop_respawn(param_00)
{
for(;;)
{
param_00 waittill("trigger");
common_scripts\utility::flag_clear("respawn_friendlies");
}
}
//Function Number: 17
trigger_enemy_respawn(param_00)
{
param_00 endon("death");
var_01 = getent(param_00.target,"targetname");
var_02 = undefined;
if(isdefined(var_01))
{
var_02 = var_01.origin;
var_01 delete();
}
else
{
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
var_02 = var_01.origin;
}
for(;;)
{
param_00 waittill("trigger");
maps\_colors::colornode_set_respawn_point(var_02,"axis");
common_scripts\utility::flag_set("respawn_enemies");
wait(0.5);
}
}
//Function Number: 18
trigger_enemy_stop_respawn(param_00)
{
for(;;)
{
param_00 waittill("trigger");
common_scripts\utility::flag_clear("respawn_enemies");
}
}
//Function Number: 19
trigger_flag_set_touching(param_00)
{
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger",var_02);
param_00 maps\_utility::script_delay();
if(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00))
{
common_scripts\utility::flag_set(var_01);
}
while(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00))
{
wait(0.25);
}
common_scripts\utility::flag_clear(var_01);
}
}
//Function Number: 20
trigger_group()
{
thread trigger_group_remove();
level endon("trigger_group_" + self.script_trigger_group);
self waittill("trigger");
level notify("trigger_group_" + self.script_trigger_group,self);
}
//Function Number: 21
trigger_group_remove()
{
level waittill("trigger_group_" + self.script_trigger_group,var_00);
if(self != var_00)
{
self delete();
}
}
//Function Number: 22
trigger_nobloodpool(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(!isalive(var_01))
{
continue;
}
var_01.skipbloodpool = 1;
var_01 thread set_wait_then_clear_skipbloodpool();
}
}
//Function Number: 23
set_wait_then_clear_skipbloodpool()
{
self notify("notify_wait_then_clear_skipBloodPool");
self endon("notify_wait_then_clear_skipBloodPool");
self endon("death");
wait(2);
self.skipbloodpool = undefined;
}
//Function Number: 24
trigger_physics(param_00)
{
var_01 = [];
var_02 = common_scripts\utility::getstructarray(param_00.target,"targetname");
var_03 = getentarray(param_00.target,"targetname");
foreach(var_05 in var_03)
{
var_06 = spawnstruct();
var_06.origin = var_05.origin;
var_06.script_parameters = var_05.script_parameters;
var_06.script_damage = var_05.script_damage;
var_06.radius = var_05.radius;
var_02[var_02.size] = var_06;
var_05 delete();
}
param_00.org = var_02[0].origin;
param_00 waittill("trigger");
param_00 maps\_utility::script_delay();
foreach(var_06 in var_02)
{
var_09 = var_06.radius;
var_0A = var_06.script_parameters;
var_0B = var_06.script_damage;
if(!isdefined(var_09))
{
var_09 = 350;
}
if(!isdefined(var_0A))
{
var_0A = 0.25;
}
setdvar("tempdvar",var_0A);
var_0A = getdvarfloat("tempdvar");
if(isdefined(var_0B))
{
radiusdamage(var_06.origin,var_09,var_0B,var_0B * 0.5);
}
physicsexplosionsphere(var_06.origin,var_09,var_09 * 0.5,var_0A);
}
}
//Function Number: 25
trigger_playerseek(param_00)
{
var_01 = param_00.script_triggered_playerseek;
param_00 waittill("trigger");
var_02 = getaiarray();
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(!isalive(var_02[var_03]))
{
continue;
}
if(isdefined(var_02[var_03].script_triggered_playerseek) && var_02[var_03].script_triggered_playerseek == var_01)
{
var_02[var_03].goalradius = 800;
var_02[var_03] setgoalentity(level.player);
level thread maps\_spawner::delayed_player_seek_think(var_02[var_03]);
}
}
}
//Function Number: 26
trigger_script_flag_false(param_00)
{
var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_false);
param_00 add_tokens_to_trigger_flags(var_01);
param_00 common_scripts\utility::update_trigger_based_on_flags();
}
//Function Number: 27
trigger_script_flag_true(param_00)
{
var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_true);
param_00 add_tokens_to_trigger_flags(var_01);
param_00 common_scripts\utility::update_trigger_based_on_flags();
}
//Function Number: 28
add_tokens_to_trigger_flags(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
var_02 = param_00[var_01];
if(!isdefined(level.trigger_flags[var_02]))
{
level.trigger_flags[var_02] = [];
}
level.trigger_flags[var_02][level.trigger_flags[var_02].size] = self;
}
}
//Function Number: 29
trigger_spawngroup(param_00)
{
waittillframeend;
var_01 = param_00.script_spawngroup;
if(!isdefined(level.spawn_groups[var_01]))
{
return;
}
param_00 waittill("trigger");
var_02 = common_scripts\utility::random(level.spawn_groups[var_01]);
foreach(var_04 in var_02)
{
var_04 maps\_utility::spawn_ai();
}
}
//Function Number: 30
trigger_sun_off(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(getdvarint("sm_sunenable") == 0)
{
continue;
}
setsaveddvar("sm_sunenable",0);
}
}
//Function Number: 31
trigger_sun_on(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(getdvarint("sm_sunenable") == 1)
{
continue;
}
setsaveddvar("sm_sunenable",1);
}
}
//Function Number: 32
trigger_vehicle_getin_spawn(param_00)
{
var_01 = getentarray(param_00.target,"targetname");
foreach(var_03 in var_01)
{
var_04 = getentarray(var_03.target,"targetname");
foreach(var_06 in var_04)
{
if(!issubstr(var_06.code_classname,"actor"))
{
continue;
}
if(!var_06.spawnflags & 1)
{
continue;
}
var_06.dont_auto_ride = 1;
}
}
param_00 waittill("trigger");
var_01 = getentarray(param_00.target,"targetname");
common_scripts\utility::array_thread(var_01,maps\_vehicle_free_drive::spawn_vehicle_and_attach_to_free_path(undefined,0,1));
}
//Function Number: 33
trigger_vehicle_spline_spawn(param_00)
{
param_00 waittill("trigger");
var_01 = getentarray(param_00.target,"targetname");
foreach(var_03 in var_01)
{
var_03 thread maps\_vehicle_free_drive::spawn_vehicle_and_attach_to_free_path(70);
wait(0.05);
}
}
//Function Number: 34
get_trigger_targs()
{
var_00 = [];
var_01 = undefined;
if(isdefined(self.target))
{
var_02 = getentarray(self.target,"targetname");
var_03 = [];
foreach(var_05 in var_02)
{
if(var_05.classname == "script_origin")
{
var_03[var_03.size] = var_05;
}
if(issubstr(var_05.classname,"trigger"))
{
var_00[var_00.size] = var_05;
}
}
var_02 = common_scripts\utility::getstructarray(self.target,"targetname");
foreach(var_05 in var_02)
{
var_03[var_03.size] = var_05;
}
if(var_03.size == 1)
{
var_09 = var_03[0];
var_01 = var_09.origin;
if(isdefined(var_09.code_classname))
{
var_09 delete();
}
}
}
var_0A = [];
var_0A["triggers"] = var_00;
var_0A["target_origin"] = var_01;
return var_0A;
}
//Function Number: 35
trigger_lookat(param_00)
{
trigger_lookat_think(param_00,1);
}
//Function Number: 36
trigger_looking(param_00)
{
trigger_lookat_think(param_00,0);
}
//Function Number: 37
trigger_lookat_think(param_00,param_01)
{
var_02 = 0.78;
if(isdefined(param_00.script_dot))
{
var_02 = param_00.script_dot;
}
var_03 = param_00 get_trigger_targs();
var_04 = var_03["triggers"];
var_05 = var_03["target_origin"];
var_06 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy);
var_07 = undefined;
if(var_06)
{
var_07 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_07]))
{
common_scripts\utility::flag_init(var_07);
}
}
else if(!var_04.size)
{
}
if(param_01 && var_06)
{
level endon(var_07);
}
param_00 endon("death");
var_08 = 0;
if(isdefined(param_00.script_parameters))
{
var_08 = !issubstr("no_sight",param_00.script_parameters);
}
for(;;)
{
if(var_06)
{
common_scripts\utility::flag_clear(var_07);
}
param_00 waittill("trigger",var_09);
var_0A = [];
while(var_09 istouching(param_00))
{
if(var_08 && !sighttracepassed(var_09 geteye(),var_05,0,undefined))
{
if(var_06)
{
common_scripts\utility::flag_clear(var_07);
}
wait(0.5);
continue;
}
var_0B = vectornormalize(var_05 - var_09.origin);
var_0C = var_09 getplayerangles();
var_0D = anglestoforward(var_0C);
var_0E = vectordot(var_0D,var_0B);
if(var_0E >= var_02)
{
common_scripts\utility::array_thread(var_04,::maps\_utility::send_notify,"trigger");
if(var_06)
{
common_scripts\utility::flag_set(var_07,var_09);
}
if(param_01)
{
return;
}
wait(2);
}
else if(var_06)
{
common_scripts\utility::flag_clear(var_07);
}
if(var_08)
{
wait(0.5);
continue;
}
wait(0.05);
}
}
}
//Function Number: 38
trigger_cansee(param_00)
{
var_01 = [];
var_02 = undefined;
var_03 = param_00 get_trigger_targs();
var_01 = var_03["triggers"];
var_02 = var_03["target_origin"];
var_04 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy);
var_05 = undefined;
if(var_04)
{
var_05 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_05]))
{
common_scripts\utility::flag_init(var_05);
}
}
else if(!var_01.size)
{
}
param_00 endon("death");
var_06 = 12;
var_07 = [];
var_07[var_07.size] = (0,0,0);
var_07[var_07.size] = (var_06,0,0);
var_07[var_07.size] = (var_06 * -1,0,0);
var_07[var_07.size] = (0,var_06,0);
var_07[var_07.size] = (0,var_06 * -1,0);
var_07[var_07.size] = (0,0,var_06);
for(;;)
{
if(var_04)
{
common_scripts\utility::flag_clear(var_05);
}
param_00 waittill("trigger",var_08);
while(level.player istouching(param_00))
{
if(!var_08 cantraceto(var_02,var_07))
{
if(var_04)
{
common_scripts\utility::flag_clear(var_05);
}
wait(0.1);
continue;
}
if(var_04)
{
common_scripts\utility::flag_set(var_05);
}
common_scripts\utility::array_thread(var_01,::maps\_utility::send_notify,"trigger");
wait(0.5);
}
}
}
//Function Number: 39
cantraceto(param_00,param_01)
{
for(var_02 = 0;var_02 < param_01.size;var_02++)
{
if(sighttracepassed(self geteye(),param_00 + param_01[var_02],1,self))
{
return 1;
}
}
return 0;
}
//Function Number: 40
trigger_unlock(param_00)
{
var_01 = "not_set";
if(isdefined(param_00.script_noteworthy))
{
var_01 = param_00.script_noteworthy;
}
var_02 = getentarray(param_00.target,"targetname");
param_00 thread trigger_unlock_death(param_00.target);
for(;;)
{
common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_off);
param_00 waittill("trigger");
common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_on);
wait_for_an_unlocked_trigger(var_02,var_01);
maps\_utility::array_notify(var_02,"relock");
}
}
//Function Number: 41
trigger_unlock_death(param_00)
{
self waittill("death");
var_01 = getentarray(param_00,"targetname");
common_scripts\utility::array_thread(var_01,::common_scripts\utility::trigger_off);
}
//Function Number: 42
wait_for_an_unlocked_trigger(param_00,param_01)
{
level endon("unlocked_trigger_hit" + param_01);
var_02 = spawnstruct();
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
param_00[var_03] thread report_trigger(var_02,param_01);
}
var_02 waittill("trigger");
level notify("unlocked_trigger_hit" + param_01);
}
//Function Number: 43
report_trigger(param_00,param_01)
{
self endon("relock");
level endon("unlocked_trigger_hit" + param_01);
self waittill("trigger");
param_00 notify("trigger");
}
//Function Number: 44
trigger_battlechatter(param_00)
{
var_01 = undefined;
if(isdefined(param_00.target))
{
var_02 = getentarray(param_00.target,"targetname");
if(issubstr(var_02[0].classname,"trigger"))
{
var_01 = var_02[0];
}
}
if(isdefined(var_01))
{
var_01 waittill("trigger",var_03);
}
else
{
var_01 waittill("trigger",var_03);
}
var_04 = undefined;
if(isdefined(var_01))
{
if(var_03.team != level.player.team && level.player istouching(param_00))
{
var_04 = level.player animscripts\battlechatter::getclosestfriendlyspeaker("custom");
}
else if(var_03.team == level.player.team)
{
var_05 = "axis";
if(level.player.team == "axis")
{
var_05 = "allies";
}
var_06 = animscripts\battlechatter::getspeakers("custom",var_05);
var_06 = common_scripts\utility::get_array_of_farthest(level.player.origin,var_06);
foreach(var_08 in var_06)
{
if(var_08 istouching(param_00))
{
var_04 = var_08;
if(battlechatter_dist_check(var_08.origin))
{
break;
}
}
}
}
}
else if(isplayer(var_03))
{
var_04 = var_03 animscripts\battlechatter::getclosestfriendlyspeaker("custom");
}
else
{
var_04 = var_03;
}
if(!isdefined(var_04))
{
return;
}
if(battlechatter_dist_check())
{
return;
}
var_0A = var_04 maps\_utility::custom_battlechatter(param_00.script_bctrigger);
if(!var_0A)
{
level maps\_utility::delaythread(0.25,::trigger_battlechatter,param_00);
return;
}
param_00 notify("custom_battlechatter_done");
}
//Function Number: 45
battlechatter_dist_check(param_00)
{
return distancesquared(param_00,level.player getorigin()) <= 262144;
}
//Function Number: 46
trigger_vehicle_spawn(param_00)
{
param_00 waittill("trigger");
var_01 = getentarray(param_00.target,"targetname");
foreach(var_03 in var_01)
{
var_03 thread maps\_vehicle::spawn_vehicle_and_gopath();
wait(0.05);
}
}
//Function Number: 47
trigger_dooropen(param_00)
{
param_00 waittill("trigger");
var_01 = getentarray(param_00.target,"targetname");
var_02 = [];
var_02["left_door"] = -170;
var_02["right_door"] = 170;
foreach(var_04 in var_01)
{
var_05 = var_02[var_04.script_noteworthy];
var_04 connectpaths();
var_04 rotateyaw(var_05,1,0,0.5);
}
}
//Function Number: 48
trigger_glass_break(param_00)
{
var_01 = getglassarray(param_00.target);
if(!isdefined(var_01) || var_01.size == 0)
{
return;
}
for(;;)
{
level waittill("glass_break",var_02);
if(var_02 istouching(param_00))
{
var_03 = var_02.origin;
wait(0.05);
var_04 = var_02.origin;
var_05 = undefined;
if(var_03 != var_04)
{
var_05 = var_04 - var_03;
}
if(isdefined(var_05))
{
foreach(var_07 in var_01)
{
destroyglass(var_07,var_05);
}
break;
}
else
{
foreach(var_07 in var_01)
{
destroyglass(var_07);
}
break;
}
}
}
param_00 delete();
}
//Function Number: 49
trigger_delete_link_chain(param_00)
{
param_00 waittill("trigger");
var_01 = param_00 get_script_linkto_targets();
common_scripts\utility::array_thread(var_01,::delete_links_then_self);
}
//Function Number: 50
get_script_linkto_targets()
{
var_00 = [];
if(!isdefined(self.script_linkto))
{
return var_00;
}
var_01 = strtok(self.script_linkto," ");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_03 = var_01[var_02];
var_04 = getent(var_03,"script_linkname");
if(isdefined(var_04))
{
var_00[var_00.size] = var_04;
}
}
return var_00;
}
//Function Number: 51
delete_links_then_self()
{
var_00 = get_script_linkto_targets();
common_scripts\utility::array_thread(var_00,::delete_links_then_self);
self delete();
}
//Function Number: 52
trigger_throw_grenade_at_player(param_00)
{
param_00 endon("death");
param_00 waittill("trigger");
maps\_utility::throwgrenadeatplayerasap();
}
//Function Number: 53
trigger_hint(param_00)
{
if(!isdefined(level.displayed_hints))
{
level.displayed_hints = [];
}
waittillframeend;
var_01 = param_00.script_hint;
param_00 waittill("trigger",var_02);
if(isdefined(level.displayed_hints[var_01]))
{
return;
}
level.displayed_hints[var_01] = 1;
var_02 maps\_utility::display_hint(var_01);
}
//Function Number: 54
trigger_delete_on_touch(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(isdefined(var_01))
{
var_01 delete();
}
}
}
//Function Number: 55
trigger_turns_off(param_00)
{
param_00 waittill("trigger");
param_00 common_scripts\utility::trigger_off();
if(!isdefined(param_00.script_linkto))
{
return;
}
var_01 = strtok(param_00.script_linkto," ");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
common_scripts\utility::array_thread(getentarray(var_01[var_02],"script_linkname"),::common_scripts\utility::trigger_off);
}
}
//Function Number: 56
trigger_ignore(param_00)
{
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_ignoreme,::maps\_utility::get_ignoreme);
}
//Function Number: 57
trigger_pacifist(param_00)
{
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_pacifist,::maps\_utility::get_pacifist);
}
//Function Number: 58
trigger_runs_function_on_touch(param_00,param_01,param_02)
{
for(;;)
{
param_00 waittill("trigger",var_03);
if(!isalive(var_03))
{
continue;
}
if(var_03 [[ param_02 ]]())
{
continue;
}
var_03 thread touched_trigger_runs_func(param_00,param_01);
}
}
//Function Number: 59
touched_trigger_runs_func(param_00,param_01)
{
self endon("death");
self.ignoreme = 1;
[[ param_01 ]](1);
self.ignoretriggers = 1;
wait(1);
self.ignoretriggers = 0;
while(self istouching(param_00))
{
wait(1);
}
[[ param_01 ]](0);
}
//Function Number: 60
trigger_radio(param_00)
{
param_00 waittill("trigger");
maps\_utility::radio_dialogue(param_00.script_noteworthy);
}
//Function Number: 61
trigger_flag_set_player(param_00)
{
if(maps\_utility::is_coop())
{
thread trigger_flag_set_coop(param_00);
return;
}
var_01 = param_00 maps\_utility::get_trigger_flag();
if(!isdefined(level.flag[var_01]))
{
common_scripts\utility::flag_init(var_01);
}
for(;;)
{
param_00 waittill("trigger",var_02);
if(!isplayer(var_02))
{
continue;
}
param_00 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_01);
}
}
//Function Number: 62
trigger_multiple_sunflare(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
var_01 maps\_art::sunflare_changes(param_00.script_visionset,param_00.script_delay);
wait 0.05;
}
}
//Function Number: 63
trigger_multiple_visionset(param_00)
{
var_01 = 0;
var_02 = undefined;
var_03 = undefined;
var_04 = undefined;
if(isdefined(param_00.script_visionset_start) && isdefined(param_00.script_visionset_end))
{
var_01 = 1;
var_03 = getent(param_00.target,"targetname");
if(!isdefined(var_03))
{
var_03 = common_scripts\utility::getstruct(param_00.target,"targetname");
}
var_04 = getent(var_03.target,"targetname");
if(!isdefined(var_04))
{
var_04 = common_scripts\utility::getstruct(var_03.target,"targetname");
}
var_03 = var_03.origin;
var_04 = var_04.origin;
var_02 = distance(var_03,var_04);
param_00 init_visionset_progress_trigger();
}
var_05 = -1;
for(;;)
{
param_00 waittill("trigger",var_06);
if(isplayer(var_06))
{
if(var_01)
{
var_07 = 0;
while(var_06 istouching(param_00))
{
var_07 = maps\_utility::get_progress(var_03,var_04,var_06.origin,var_02);
var_07 = clamp(var_07,0,1);
if(var_07 != var_05)
{
var_05 = var_07;
var_06 vision_set_fog_progress(param_00,var_07);
}
wait(0.05);
}
if(var_07 < 0.5)
{
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_start,param_00.script_delay);
}
else
{
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_end,param_00.script_delay);
}
continue;
}
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset,param_00.script_delay);
}
}
}
//Function Number: 64
init_visionset_progress_trigger()
{
if(!isdefined(self.script_delay))
{
self.script_delay = 2;
}
var_00 = maps\_utility::get_vision_set_fog(self.script_visionset_start);
var_01 = maps\_utility::get_vision_set_fog(self.script_visionset_end);
if(!isdefined(var_00) || !isdefined(var_01))
{
return;
}
var_02 = spawnstruct();
var_02.startdist = var_01.startdist - var_00.startdist;
var_02.halfwaydist = var_01.halfwaydist - var_00.halfwaydist;
var_02.red = var_01.red - var_00.red;
var_02.blue = var_01.blue - var_00.blue;
var_02.green = var_01.green - var_00.green;
var_02.hdrcolorintensity = var_01.hdrcolorintensity - var_00.hdrcolorintensity;
var_02.maxopacity = var_01.maxopacity - var_00.maxopacity;
var_02.sunfogenabled = isdefined(var_00.sunfogenabled) || isdefined(var_01.sunfogenabled);
var_02.hdrsuncolorintensity = var_01.hdrsuncolorintensity - var_00.hdrsuncolorintensity;
var_02.skyfogintensity = var_01.skyfogintensity - var_00.skyfogintensity;
var_02.skyfogminangle = var_01.skyfogminangle - var_00.skyfogminangle;
var_02.skyfogmaxangle = var_01.skyfogmaxangle - var_00.skyfogmaxangle;
var_03 = 0;
if(isdefined(var_00.sunred))
{
var_03 = var_00.sunred;
}
var_04 = 0;
if(isdefined(var_01.sunred))
{
var_04 = var_01.sunred;
}
var_02.sunred_start = var_03;
var_02.sunred = var_04 - var_03;
var_05 = 0;
if(isdefined(var_00.sungreen))
{
var_05 = var_00.sungreen;
}
var_06 = 0;
if(isdefined(var_01.sungreen))
{
var_06 = var_01.sungreen;
}
var_02.sungreen_start = var_05;
var_02.sungreen = var_06 - var_05;
var_07 = 0;
if(isdefined(var_00.sunblue))
{
var_07 = var_00.sunblue;
}
var_08 = 0;
if(isdefined(var_01.sunblue))
{
var_08 = var_01.sunblue;
}
var_02.sunblue_start = var_07;
var_02.sunblue = var_08 - var_07;
var_09 = (0,0,0);
if(isdefined(var_00.sundir))
{
var_09 = var_00.sundir;
}
var_0A = (0,0,0);
if(isdefined(var_01.sundir))
{
var_0A = var_01.sundir;
}
var_02.sundir_start = var_09;
var_02.sundir = var_0A - var_09;
var_0B = 0;
if(isdefined(var_00.sunbeginfadeangle))
{
var_0B = var_00.sunbeginfadeangle;
}
var_0C = 0;
if(isdefined(var_01.sunbeginfadeangle))
{
var_0C = var_01.sunbeginfadeangle;
}
var_02.sunbeginfadeangle_start = var_0B;
var_02.sunbeginfadeangle = var_0C - var_0B;
var_0D = 0;
if(isdefined(var_00.sunendfadeangle))
{
var_0D = var_00.sunendfadeangle;
}
var_0E = 0;
if(isdefined(var_01.sunendfadeangle))
{
var_0E = var_01.sunendfadeangle;
}
var_02.sunendfadeangle_start = var_0D;
var_02.sunendfadeangle = var_0E - var_0D;
var_0F = 0;
if(isdefined(var_00.normalfogscale))
{
var_0F = var_00.normalfogscale;
}
var_10 = 0;
if(isdefined(var_01.normalfogscale))
{
var_10 = var_01.normalfogscale;
}
var_02.normalfogscale_start = var_0F;
var_02.normalfogscale = var_10 - var_0F;
self.visionset_diff = var_02;
}
//Function Number: 65
vision_set_fog_progress(param_00,param_01)
{
maps\_utility::init_self_visionset();
if(param_01 < 0.5)
{
self.vision_set_transition_ent.vision_set = param_00.script_visionset_start;
}
else
{
self.vision_set_transition_ent.vision_set = param_00.script_visionset_end;
}
self.vision_set_transition_ent.time = 0;
if(param_00.script_visionset_start == param_00.script_visionset_end)
{
return;
}
self visionsetnakedforplayer_lerp(param_00.script_visionset_start,param_00.script_visionset_end,param_01);
var_02 = maps\_utility::get_vision_set_fog(param_00.script_visionset_start);
var_03 = maps\_utility::get_vision_set_fog(param_00.script_visionset_end);
var_04 = param_00.visionset_diff;
var_05 = spawnstruct();
var_05.startdist = var_02.startdist + var_04.startdist * param_01;
var_05.halfwaydist = var_02.halfwaydist + var_04.halfwaydist * param_01;
var_05.halfwaydist = max(1,var_05.halfwaydist);
var_05.red = var_02.red + var_04.red * param_01;
var_05.green = var_02.green + var_04.green * param_01;
var_05.blue = var_02.blue + var_04.blue * param_01;
var_05.hdrcolorintensity = var_02.hdrcolorintensity + var_04.hdrcolorintensity * param_01;
var_05.maxopacity = var_02.maxopacity + var_04.maxopacity * param_01;
var_05.skyfogintensity = var_02.skyfogintensity + var_04.skyfogintensity * param_01;
var_05.skyfogminangle = var_02.skyfogminangle + var_04.skyfogminangle * param_01;
var_05.skyfogmaxangle = var_02.skyfogmaxangle + var_04.skyfogmaxangle * param_01;
if(var_04.sunfogenabled)
{
var_05.sunfogenabled = 1;
var_05.sunred = var_04.sunred_start + var_04.sunred * param_01;
var_05.sungreen = var_04.sungreen_start + var_04.sungreen * param_01;
var_05.sunblue = var_04.sunblue_start + var_04.sunblue * param_01;
var_05.hdrsuncolorintensity = var_02.hdrsuncolorintensity + var_04.hdrsuncolorintensity * param_01;
var_05.sundir = var_04.sundir_start + var_04.sundir * param_01;
var_05.sunbeginfadeangle = var_04.sunbeginfadeangle_start + var_04.sunbeginfadeangle * param_01;
var_05.sunendfadeangle = var_04.sunendfadeangle_start + var_04.sunendfadeangle * param_01;
var_05.normalfogscale = var_04.normalfogscale_start + var_04.normalfogscale * param_01;
}
common_scripts\utility::set_fog_to_ent_values(var_05,0.05);
}
//Function Number: 66
trigger_fog(param_00)
{
waittillframeend;
var_01 = param_00.script_fogset_start;
var_02 = param_00.script_fogset_end;
param_00.sunfog_enabled = 0;
if(isdefined(var_01) && isdefined(var_02))
{
var_03 = maps\_utility::get_fog(var_01);
var_04 = maps\_utility::get_fog(var_02);
param_00.sunfog_enabled = isdefined(var_03.sunred) || isdefined(var_04.sunred);
param_00.start_neardist = var_03.startdist;
param_00.start_fardist = var_03.halfwaydist;
param_00.start_color = (var_03.red,var_03.green,var_03.blue);
param_00.start_hdrcolorintensity = var_03.hdrcolorintensity;
param_00.start_opacity = var_03.maxopacity;
param_00.start_skyfogintensity = var_03.skyfogintensity;
param_00.start_skyfogminangle = var_03.skyfogminangle;
param_00.start_skyfogmaxangle = var_03.skyfogmaxangle;
if(isdefined(var_03.sunred))
{
param_00.start_suncolor = (var_03.sunred,var_03.sungreen,var_03.sunblue);
param_00.start_hdrsuncolorintensity = var_03.hdrsuncolorintensity;
param_00.start_sundir = var_03.sundir;
param_00.start_sunbeginfadeangle = var_03.sunbeginfadeangle;
param_00.start_sunendfadeangle = var_03.sunendfadeangle;
param_00.start_sunfogscale = var_03.normalfogscale;
}
else if(param_00.sunfog_enabled)
{
param_00.start_suncolor = param_00.start_color;
param_00.start_hdrsuncolorintensity = 1;
param_00.start_sundir = (0,0,0);
param_00.start_sunbeginfadeangle = 0;
param_00.start_sunendfadeangle = 90;
param_00.start_sunfogscale = 1;
}
param_00.end_neardist = var_04.startdist;
param_00.end_fardist = var_04.halfwaydist;
param_00.end_color = (var_04.red,var_04.green,var_04.blue);
param_00.end_hdrcolorintensity = var_04.hdrcolorintensity;
param_00.end_opacity = var_04.maxopacity;
param_00.end_skyfogintensity = var_04.skyfogintensity;
param_00.end_skyfogminangle = var_04.skyfogminangle;
param_00.end_skyfogmaxangle = var_04.skyfogmaxangle;
if(isdefined(var_04.sunred))
{
param_00.end_suncolor = (var_04.sunred,var_04.sungreen,var_04.sunblue);
param_00.end_hdrsuncolorintensity = var_04.hdrsuncolorintensity;
param_00.end_sundir = var_04.sundir;
param_00.end_sunbeginfadeangle = var_04.sunbeginfadeangle;
param_00.end_sunendfadeangle = var_04.sunendfadeangle;
param_00.end_sunfogscale = var_04.normalfogscale;
}
else if(param_00.sunfog_enabled)
{
param_00.end_suncolor = param_00.end_color;
param_00.end_hdrsuncolorintensity = 1;
param_00.end_sundir = (0,0,0);
param_00.end_sunbeginfadeangle = 0;
param_00.end_sunendfadeangle = 90;
param_00.end_sunfogscale = 1;
}
}
var_05 = getent(param_00.target,"targetname");
var_06 = var_05.origin;
var_07 = undefined;
if(isdefined(var_05.target))
{
var_08 = getent(var_05.target,"targetname");
var_07 = var_08.origin;
}
else
{
var_07 = var_06 + param_00.origin - var_06 * 2;
}
var_09 = distance(var_06,var_07);
for(;;)
{
param_00 waittill("trigger",var_0A);
var_0B = 0;
while(var_0A istouching(param_00))
{
var_0B = maps\_utility::get_progress(var_06,var_07,var_0A.origin,var_09);
var_0B = clamp(var_0B,0,1);
param_00 maps\_art::set_fog_progress(var_0B);
wait(0.05);
}
if(var_0B > 0.5)
{
var_0B = 1;
}
else
{
var_0B = 0;
}
param_00 maps\_art::set_fog_progress(var_0B);
}
}
//Function Number: 67
trigger_multiple_depthoffield(param_00)
{
waittillframeend;
for(;;)
{
param_00 waittill("trigger",var_01);
var_02 = param_00.script_dof_near_start;
var_03 = param_00.script_dof_near_end;
var_04 = param_00.script_dof_near_blur;
var_05 = param_00.script_dof_far_start;
var_06 = param_00.script_dof_far_end;
var_07 = param_00.script_dof_far_blur;
var_08 = param_00.script_delay;
if(var_02 != level.dof["base"]["goal"]["nearStart"] || var_03 != level.dof["base"]["goal"]["nearEnd"] || var_04 != level.dof["base"]["goal"]["nearBlur"] || var_05 != level.dof["base"]["goal"]["farStart"] || var_06 != level.dof["base"]["goal"]["farEnd"] || var_07 != level.dof["base"]["goal"]["farBlur"])
{
maps\_art::dof_set_base(var_02,var_03,var_04,var_05,var_06,var_07,var_08);
wait(var_08);
continue;
}
wait 0.05;
}
}
//Function Number: 68
trigger_multiple_tessellationcutoff(param_00)
{
if(level.xenon || level.ps3)
{
return;
}
waittillframeend;
for(;;)
{
param_00 waittill("trigger",var_01);
var_02 = param_00.script_tess_distance;
var_03 = param_00.script_tess_falloff;
var_04 = param_00.script_delay;
if(var_02 != level.tess.cutoff_distance_goal || var_03 != level.tess.cutoff_falloff_goal)
{
var_02 = max(0,var_02);
var_02 = min(10000,var_02);
var_03 = max(0,var_03);
var_03 = min(10000,var_03);
maps\_art::tess_set_goal(var_02,var_03,var_04);
continue;
}
wait 0.05;
}
}
//Function Number: 69
trigger_slide(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
var_01 thread slidetriggerplayerthink(param_00);
}
}
//Function Number: 70
slidetriggerplayerthink(param_00)
{
if(isdefined(self.vehicle))
{
return;
}
if(maps\_utility::issliding())
{
return;
}
if(isdefined(self.player_view))
{
return;
}
self endon("death");
if(soundexists("SCN_cliffhanger_player_hillslide"))
{
self playsound("SCN_cliffhanger_player_hillslide");
}
var_01 = undefined;
if(isdefined(param_00.script_accel))
{
var_01 = param_00.script_accel;
}
self endon("cancel_sliding");
maps\_utility::beginsliding(undefined,var_01);
for(;;)
{
if(!self istouching(param_00))
{
break;
}
wait(0.05);
}
if(isdefined(level.end_slide_delay))
{
wait(level.end_slide_delay);
}
maps\_utility::endsliding();
}
//Function Number: 71
trigger_stats(param_00)
{
param_00 waittill("trigger",var_01);
}
//Function Number: 72
trigger_multiple_fx_volume(param_00)
{
var_01 = spawn("script_origin",(0,0,0));
param_00.fx = [];
foreach(var_03 in level.createfxent)
{
assign_fx_to_trigger(var_03,param_00,var_01);
}
var_01 delete();
if(!isdefined(param_00.target))
{
return;
}
var_05 = getentarray(param_00.target,"targetname");
param_00.fx_on = 1;
foreach(var_07 in var_05)
{
switch(var_07.classname)
{
case "trigger_multiple_fx_volume_on":
var_07 thread trigger_multiple_fx_trigger_on_think(param_00);
break;
case "trigger_multiple_fx_volume_off":
var_07 thread trigger_multiple_fx_trigger_off_think(param_00);
break;
default:
break;
}
}
}
//Function Number: 73
trigger_multiple_fx_trigger_on_think(param_00)
{
for(;;)
{
self waittill("trigger");
if(!param_00.fx_on)
{
common_scripts\utility::array_thread(param_00.fx,::maps\_utility::restarteffect);
}
wait(1);
}
}
//Function Number: 74
trigger_multiple_fx_trigger_off_think(param_00)
{
for(;;)
{
self waittill("trigger");
if(param_00.fx_on)
{
common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect);
}
wait(1);
}
}
//Function Number: 75
assign_fx_to_trigger(param_00,param_01,param_02)
{
if(isdefined(param_00.v["soundalias"]) && param_00.v["soundalias"] != "nil")
{
if(!isdefined(param_00.v["stopable"]) || !param_00.v["stopable"])
{
return;
}
}
param_02.origin = param_00.v["origin"];
if(param_02 istouching(param_01))
{
param_01.fx[param_01.fx.size] = param_00;
}
}
//Function Number: 76
trigger_multiple_compass(param_00)
{
var_01 = param_00.script_parameters;
if(!isdefined(level.minimap_image))
{
level.minimap_image = "";
}
for(;;)
{
param_00 waittill("trigger");
if(level.minimap_image != var_01)
{
maps\_compass::setupminimap(var_01);
}
}
}
//Function Number: 77
trigger_no_crouch_or_prone(param_00)
{
common_scripts\utility::array_thread(level.players,::no_crouch_or_prone_think_for_player,param_00);
}
//Function Number: 78
no_crouch_or_prone_think_for_player(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(!isdefined(var_01))
{
continue;
}
if(var_01 != self)
{
continue;
}
while(var_01 istouching(param_00))
{
var_01 allowprone(0);
var_01 allowcrouch(0);
wait(0.05);
}
var_01 allowprone(1);
var_01 allowcrouch(1);
}
}
//Function Number: 79
trigger_no_prone(param_00)
{
common_scripts\utility::array_thread(level.players,::no_prone_for_player,param_00);
}
//Function Number: 80
no_prone_for_player(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(!isdefined(var_01))
{
continue;
}
if(var_01 != self)
{
continue;
}
while(var_01 istouching(param_00))
{
var_01 allowprone(0);
wait(0.05);
}
var_01 allowprone(1);
}
}
//Function Number: 81
trigger_wakevolume_think(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(!isdefined(var_01))
{
continue;
}
if(var_01 maps\_utility::ent_flag_exist("in_wake_volume"))
{
}
else
{
var_01 maps\_utility::ent_flag_init("in_wake_volume");
}
if(distancesquared(var_01.origin,level.player.origin) < 9250000)
{
if(var_01 maps\_utility::ent_flag("in_wake_volume"))
{
continue;
}
var_01 thread volume_wakefx(param_00);
var_01 maps\_utility::ent_flag_set("in_wake_volume");
}
}
}
//Function Number: 82
volume_wakefx(param_00)
{
self endon("death");
var_01 = 200;
for(;;)
{
if(self istouching(param_00))
{
if(var_01 > 0)
{
wait(max(1 - var_01 / 120,0.1));
}
else
{
wait(0.15);
}
var_02 = param_00.script_fxid;
var_03 = (0,0,0);
if(isplayer(self))
{
var_03 = self getvelocity();
}
if(isai(self))
{
var_03 = self.velocity;
}
var_01 = distance(var_03,(0,0,0));
if(var_01 < 5)
{
var_02 = "null";
}
if(var_02 != "null")
{
var_04 = vectornormalize((var_03[0],var_03[1],0));
var_05 = anglestoforward(vectortoangles(var_04) + (270,180,0));
var_06 = self.origin + (0,0,64);
var_07 = self.origin - (0,0,150);
var_08 = bullettrace(var_06,var_07,0,undefined);
if(isdefined(param_00.script_surfacetype))
{
if(var_08["surfacetype"] != param_00.script_surfacetype)
{
continue;
}
}
var_09 = common_scripts\utility::getfx(var_02);
var_06 = var_08["position"] + var_01 / 4 * var_04;
if(isdefined(param_00.script_usenormals) && param_00.script_usenormals == 1)
{
var_0A = vectornormalize(vectorcross(var_08["normal"],vectorcross(var_04,var_08["normal"])));
if(var_08["normal"] != (0,0,0) && var_0A != (0,0,0))
{
playfx(var_09,var_06,var_08["normal"],var_0A);
}
}
else
{
playfx(var_09,var_06,var_05);
}
}
continue;
}
maps\_utility::ent_flag_clear("in_wake_volume");
}
}
//Function Number: 83
trigger_fallingwatervolume_think(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(!isdefined(var_01))
{
continue;
}
if(var_01 maps\_utility::ent_flag_exist("in_fallingwater_volume"))
{
}
else
{
var_01 maps\_utility::ent_flag_init("in_fallingwater_volume");
}
if(distancesquared(var_01.origin,level.player.origin) < 6250000)
{
if(var_01 maps\_utility::ent_flag("in_fallingwater_volume"))
{
continue;
}
var_01 thread volume_fallingwaterfx(param_00);
var_01 maps\_utility::ent_flag_set("in_fallingwater_volume");
}
}
}
//Function Number: 84
volume_fallingwaterfx(param_00)
{
self endon("death");
var_01 = param_00 getpointinbounds(1,1,0);
var_02 = param_00 getpointinbounds(-1,-1,0);
var_03 = var_01[0] - var_02[0] * var_01[1] - var_02[1];
var_04 = 3;
if(isdefined(param_00.script_duration))
{
var_04 = param_00.script_duration;
}
var_05 = 1;
if(isdefined(param_00.script_flowrate))
{
var_05 = param_00.script_flowrate;
}
var_06 = int(var_05 * var_03 / 50);
var_07 = "null";
if(isdefined(param_00.script_fxid))
{
var_07 = param_00.script_fxid;
}
var_08 = "null";
if(isdefined(param_00.script_screen_fxid))
{
var_08 = param_00.script_screen_fxid;
}
var_09 = -1;
for(;;)
{
if(self istouching(param_00))
{
if(isai(self))
{
wait(0.05);
for(var_0A = 0;var_0A < var_06;var_0A++)
{
if(var_07 != "null")
{
var_0B = param_00 getpointinbounds(randomfloat(2) - 1,randomfloat(2) - 1,1);
var_0C = (var_0B[0],var_0B[1],self.origin[2]);
if(distance2dsquared(var_0C,self.origin) < 900)
{
var_0D = bullettrace(var_0B,var_0C,1,undefined,0,1);
if(isdefined(var_0D["entity"]) && var_0D["entity"] == self)
{
var_0E = common_scripts\utility::getfx(var_07);
var_0B = var_0D["position"];
var_0F = vectortoangles(var_0D["normal"] + (90,0,0));
var_10 = anglestoforward(var_0F);
var_11 = anglestoup(var_0F);
playfx(var_0E,var_0B,var_11,var_10);
}
}
}
}
}
if(isplayer(self))
{
wait(0.05);
var_09 = var_09 + 0.05;
if(var_09 > var_04 * 0.2 || var_09 < 0)
{
self setwatersheeting(1,var_04);
var_09 = 0;
}
if(!isdefined(level.effectonplayerviewent))
{
if(var_08 != "null")
{
spawneffectonplayerview(var_08,(500,0,0),(180,0,0));
}
}
}
continue;
}
maps\_utility::ent_flag_clear("in_fallingwater_volume");
if(var_08 != "null")
{
stopeffectonplayerview(var_08);
}
}
}
//Function Number: 85
spawneffectonplayerview(param_00,param_01,param_02)
{
if(!isdefined(param_01))
{
param_01 = (0,0,0);
}
if(!isdefined(param_02))
{
param_02 = (0,0,0);
}
var_03 = common_scripts\utility::getfx(param_00);
level.effectonplayerviewent = common_scripts\utility::spawn_tag_origin();
level.effectonplayerviewent linktoplayerview(level.player,"tag_origin",param_01,param_02,1);
level.effectonplayerview = playfxontag(var_03,level.effectonplayerviewent,"tag_origin");
}
//Function Number: 86
stopeffectonplayerview(param_00,param_01)
{
if(isdefined(level.effectonplayerviewent))
{
if(isdefined(level.effectonplayerview))
{
if(param_01)
{
killfxontag(common_scripts\utility::getfx(param_00),level.effectonplayerviewent,"tag_origin");
}
else
{
stopfxontag(common_scripts\utility::getfx(param_00),level.effectonplayerviewent,"tag_origin");
}
}
level.effectonplayerviewent delete();
}
}