Files
IL-GSC/MW3/PC/SP/maps/_load.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

5046 lines
104 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_load.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 171
* Decompile Time: 3257 ms
* Timestamp: 10/27/2023 2:21:58 AM
*******************************************************************/
//Function Number: 1
main()
{
if(!isdefined(level.func))
{
level.func = [];
}
level.func["setsaveddvar"] = ::setsaveddvar;
level.func["useanimtree"] = ::useanimtree;
level.func["setanim"] = ::setanim;
level.func["setanimknob"] = ::setanimknob;
level.func["clearanim"] = ::clearanim;
level.func["kill"] = ::kill;
set_early_level();
level.global_callbacks = [];
level.global_callbacks["_autosave_stealthcheck"] = ::global_empty_callback;
level.global_callbacks["_patrol_endon_spotted_flag"] = ::global_empty_callback;
level.global_callbacks["_spawner_stealth_default"] = ::global_empty_callback;
level.global_callbacks["_idle_call_idle_func"] = ::global_empty_callback;
if(!isdefined(level.visionthermaldefault))
{
level.visionthermaldefault = "cheat_bw";
}
visionsetthermal(level.visionthermaldefault);
visionsetpain("near_death");
level.func["damagefeedback"] = ::maps\_damagefeedback::updatedamagefeedback;
common_scripts\utility::array_thread(getentarray("script_model_pickup_claymore","classname"),::claymore_pickup_think_global);
common_scripts\utility::array_thread(getentarray("ammo_cache","targetname"),::ammo_cache_think_global);
maps\_utility::array_delete(getentarray("trigger_multiple_softlanding","classname"));
if(getdvar("debug") == "")
{
setdvar("debug","0");
}
if(getdvar("fallback") == "")
{
setdvar("fallback","0");
}
if(getdvar("angles") == "")
{
setdvar("angles","0");
}
if(getdvar("noai") == "")
{
setdvar("noai","off");
}
if(getdvar("scr_RequiredMapAspectratio") == "")
{
setdvar("scr_RequiredMapAspectratio","1");
}
setdvar("ac130_player_num",-1);
maps\_utility::clear_custom_eog_summary();
setdvar("ui_remotemissile_playernum",0);
setdvar("ui_pmc_won",0);
if(!isdefined(level.notetracks))
{
anim.notetracks = [];
animscripts/notetracks::func_1E73();
}
maps\_utility::add_start("no_game",::start_nogame);
add_no_game_starts();
level._loadstarted = 1;
level.first_frame = 1;
level.level_specific_dof = 0;
thread remove_level_first_frame();
level.wait_any_func_array = [];
level.run_func_after_wait_array = [];
level.run_call_after_wait_array = [];
level.run_noself_call_after_wait_array = [];
level.do_wait_endons_array = [];
level.abort_wait_any_func_array = [];
if(!isdefined(level.script))
{
level.script = tolower(getdvar("mapname"));
}
maps\_specialops::specialops_remove_unused();
if(maps\_utility::is_specialop() && issplitscreen() || getdvar("coop") == "1")
{
setdvar("solo_play","");
}
if(issubstr(level.script,"so_survival_"))
{
}
else
{
}
level.xp_enable = 0;
if(maps\_utility::is_specialop())
{
level.xp_enable = 1;
if(maps\_utility::is_survival())
{
level.laststand_type = 2;
}
else
{
level.laststand_type = 1;
}
}
else
{
level.laststand_type = 0;
}
level.dirteffectmenu["center"] = "dirt_effect_center";
level.dirteffectmenu["left"] = "dirt_effect_left";
level.dirteffectmenu["right"] = "dirt_effect_right";
precachemenu(level.dirteffectmenu["center"]);
precachemenu(level.dirteffectmenu["left"]);
precachemenu(level.dirteffectmenu["right"]);
precacheshader("fullscreen_dirt_bottom_b");
precacheshader("fullscreen_dirt_bottom");
precacheshader("fullscreen_dirt_left");
precacheshader("fullscreen_dirt_right");
precacheshader("fullscreen_bloodsplat_bottom");
precacheshader("fullscreen_bloodsplat_left");
precacheshader("fullscreen_bloodsplat_right");
level.ai_number = 0;
if(!isdefined(level.flag))
{
common_scripts\utility::init_flags();
}
else
{
var_00 = getarraykeys(level.flag);
common_scripts\utility::array_levelthread(var_00,::check_flag_for_stat_tracking);
}
init_level_players();
if(maps\_utility::is_coop())
{
maps\_coop::main();
}
if(maps\_utility::laststand_enabled())
{
maps\_laststand::main();
}
if(issplitscreen())
{
setsaveddvar("cg_fovScale","0.75");
}
else
{
setsaveddvar("cg_fovScale","1");
}
level.radiation_totalpercent = 0;
common_scripts\utility::flag_init("missionfailed");
common_scripts\utility::flag_init("auto_adjust_initialized");
common_scripts\utility::flag_init("_radiation_poisoning");
common_scripts\utility::flag_init("gameskill_selected");
common_scripts\utility::flag_init("battlechatter_on_thread_waiting");
thread maps\_gameskill::aa_init_stats();
thread player_death_detection();
level.default_run_speed = 190;
setsaveddvar("g_speed",level.default_run_speed);
if(maps\_utility::is_specialop())
{
setsaveddvar("sv_saveOnStartMap",0);
}
else if(maps\_utility::arcademode())
{
setsaveddvar("sv_saveOnStartMap",0);
thread arcademode_save();
}
else if(isdefined(level.credits_active))
{
setsaveddvar("sv_saveOnStartMap",0);
}
else
{
setsaveddvar("sv_saveOnStartMap",1);
}
common_scripts\utility::create_lock("mg42_drones");
common_scripts\utility::create_lock("mg42_drones_target_trace");
level.var_1B45 = [];
foreach(var_03, var_02 in level.struct)
{
if(!isdefined(var_02.targetname))
{
continue;
}
if(var_02.targetname == "delete_on_load")
{
level.struct[var_03] = undefined;
}
}
common_scripts\utility::struct_class_init();
common_scripts\utility::flag_init("respawn_friendlies");
common_scripts\utility::flag_init("player_flashed");
level.arcademode_kill_func = ::maps\_utility::arcademode_kill;
level.connectpathsfunction = ::connectpaths;
level.disconnectpathsfunction = ::disconnectpaths;
level.badplace_cylinder_func = ::badplace_cylinder;
level.badplace_delete_func = ::badplace_delete;
level.isaifunc = ::isai;
level.createclientfontstring_func = ::maps\_hud_util::createclientfontstring;
level.hudsetpoint_func = ::maps\_hud_util::setpoint;
level.makeentitysentient_func = ::makeentitysentient;
level.freeentitysentient_func = ::freeentitysentient;
level.laseron_func = ::laserforceon;
level.laseroff_func = ::laserforceoff;
level.stat_track_kill_func = ::maps\_player_stats::register_kill;
level.stat_track_damage_func = ::maps\_player_stats::register_shot_hit;
level.dopickyautosavechecks = 1;
level.autosave_threat_check_enabled = 1;
level.getnodefunction = ::getnode;
level.getnodearrayfunction = ::getnodearray;
if(!isdefined(level._notetrackfx))
{
level._notetrackfx = [];
}
foreach(var_05 in level.players)
{
var_05.maxhealth = level.player.health;
var_05.shellshocked = 0;
var_05.inwater = 0;
var_05 thread watchweaponchange();
}
level.last_mission_sound_time = -5000;
level.hero_list = [];
thread precache_script_models();
for(var_07 = 0;var_07 < level.players.size;var_07++)
{
var_05 = level.players[var_07];
var_05 thread maps\_utility::flashmonitor();
var_05 thread maps\_utility::shock_ondeath();
}
precachemodel("fx");
precachemodel("tag_origin");
precacheshellshock("victoryscreen");
precacheshellshock("default");
precacheshellshock("flashbang");
precacheshellshock("dog_bite");
precacherumble("damage_heavy");
precacherumble("damage_light");
precacherumble("grenade_rumble");
precacherumble("artillery_rumble");
precachestring(&"GAME_GET_TO_COVER");
precachestring(&"GAME_LAST_STAND_GET_BACK_UP");
precachestring(&"SCRIPT_GRENADE_DEATH");
precachestring(&"SCRIPT_GRENADE_SUICIDE_LINE1");
precachestring(&"SCRIPT_GRENADE_SUICIDE_LINE2");
precachestring(&"SCRIPT_EXPLODING_VEHICLE_DEATH");
precachestring(&"SCRIPT_EXPLODING_DESTRUCTIBLE_DEATH");
precachestring(&"SCRIPT_EXPLODING_BARREL_DEATH");
precacheshader("hud_grenadeicon");
precacheshader("hud_grenadepointer");
precacheshader("hud_burningcaricon");
precacheshader("death_juggernaut");
precacheshader("death_friendly_fire");
precacheshader("hud_destructibledeathicon");
precacheshader("hud_burningbarrelicon");
precacheshader("waypoint_ammo");
level._effect["deathfx_bloodpool_generic"] = loadfx("impacts/deathfx_bloodpool_generic");
animscripts/pain::func_D1A();
animscripts/melee::func_1006();
level.createfx_enabled = getdvar("createfx") != "";
slowmo_system_init();
maps\_mgturret::main();
setupexploders();
maps\_art::main();
maps\_noder::main();
common_scripts\_painter::main();
maps\_gameskill::setskill();
maps\_anim::init();
thread common_scripts\_fx::initfx();
if(level.createfx_enabled)
{
level.stop_load = 1;
maps\_createfx::createfx();
}
maps\_global_fx::main();
maps\_detonategrenades::init();
thread setup_simple_primary_lights();
maps\_names::setup_names();
if(isdefined(level.handle_starts_endons))
{
thread [[ level.handle_starts_endons ]]();
}
else
{
thread handle_starts();
}
if(!isdefined(level.trigger_flags))
{
common_scripts\utility::init_trigger_flags();
}
level.killspawn_groups = [];
init_script_triggers();
setsaveddvar("ufoHitsTriggers","0");
do_no_game_start();
if(getdvar("g_connectpaths") == "2")
{
level waittill("eternity");
}
maps\_autosave::main();
if(!isdefined(level.animsounds))
{
thread maps\_debug::init_animsounds();
}
maps\_anim::init();
maps\_audio::aud_init();
if(isdefined(level.audio_stringtable_mapname))
{
maps\_audio::set_stringtable_mapname(level.audio_stringtable_mapname);
}
anim.usefacialanims = 0;
if(!isdefined(level.missionfailed))
{
level.missionfailed = 0;
}
maps\_loadout::init_loadout();
common_scripts\_destructible::init();
thread common_scripts\_elevator::init();
thread common_scripts\_pipes::main();
thread maps\_vehicle::init_vehicles();
setobjectivetextcolors();
common_scripts\_dynamic_world::init();
setsaveddvar("ui_campaign",level.campaign);
thread maps\_introscreen::main();
thread maps\_quotes::main();
thread maps\_shutter::main();
thread maps\_endmission::main();
thread maps\_damagefeedback::init();
thread maps\_escalator::init();
maps\_friendlyfire::main();
common_scripts\utility::array_levelthread(getentarray("badplace","targetname"),::badplace_think);
common_scripts\utility::array_levelthread(getentarray("delete_on_load","targetname"),::maps\_utility::deleteent);
common_scripts\utility::array_thread(getnodearray("traverse","targetname"),::traversethink);
common_scripts\utility::array_thread(getentarray("piano_key","targetname"),::pianothink);
common_scripts\utility::array_thread(getentarray("piano_damage","targetname"),::pianodamagethink);
common_scripts\utility::array_thread(getentarray("water","targetname"),::waterthink);
common_scripts\utility::array_thread(getentarray("kill_all_players","targetname"),::kill_all_players_trigger);
common_scripts\utility::flag_init("allow_ammo_pickups");
common_scripts\utility::flag_set("allow_ammo_pickups");
common_scripts\utility::array_thread(getentarray("ammo_pickup_grenade_launcher","targetname"),::ammo_pickup,"grenade_launcher");
common_scripts\utility::array_thread(getentarray("ammo_pickup_rpg","targetname"),::ammo_pickup,"rpg");
common_scripts\utility::array_thread(getentarray("ammo_pickup_c4","targetname"),::ammo_pickup,"c4");
common_scripts\utility::array_thread(getentarray("ammo_pickup_claymore","targetname"),::ammo_pickup,"claymore");
common_scripts\utility::array_thread(getentarray("ammo_pickup_556","targetname"),::ammo_pickup,"556");
common_scripts\utility::array_thread(getentarray("ammo_pickup_762","targetname"),::ammo_pickup,"762");
common_scripts\utility::array_thread(getentarray("ammo_pickup_45","targetname"),::ammo_pickup,"45");
common_scripts\utility::array_thread(getentarray("ammo_pickup_pistol","targetname"),::ammo_pickup,"pistol");
thread maps\_interactive_objects::main();
thread maps\_intelligence::main();
thread maps\_gameskill::playerhealthregeninit();
for(var_07 = 0;var_07 < level.players.size;var_07++)
{
var_05 = level.players[var_07];
var_05 thread maps\_gameskill::playerhealthregen();
var_05 thread playerdamagerumble();
}
thread player_special_death_hint();
thread massnodeinitfunctions();
common_scripts\utility::flag_init("spawning_friendlies");
common_scripts\utility::flag_init("friendly_wave_spawn_enabled");
common_scripts\utility::flag_clear("spawning_friendlies");
level.friendly_spawner["rifleguy"] = getentarray("rifle_spawner","script_noteworthy");
level.friendly_spawner["smgguy"] = getentarray("smg_spawner","script_noteworthy");
level.spawn_funcs = [];
level.spawn_funcs["allies"] = [];
level.spawn_funcs["axis"] = [];
level.spawn_funcs["team3"] = [];
level.spawn_funcs["neutral"] = [];
thread maps\_spawner::goalvolumes();
thread maps\_spawner::friendlychains();
thread maps\_spawner::friendlychain_ondeath();
common_scripts\utility::array_thread(getentarray("friendly_spawn","targetname"),::maps\_spawner::friendlyspawnwave);
common_scripts\utility::array_thread(getentarray("flood_and_secure","targetname"),::maps\_spawner::flood_and_secure);
common_scripts\utility::array_thread(getentarray("window_poster","targetname"),::window_destroy);
if(!isdefined(level.trigger_hint_string))
{
level.trigger_hint_string = [];
level.trigger_hint_func = [];
}
level.shared_portable_turrets = [];
level.spawn_groups = [];
maps\_spawner::main();
common_scripts\utility::array_thread(getentarray("background_block","targetname"),::background_block);
maps\_hud::init();
thread load_friendlies();
thread maps\_animatedmodels::main();
if(maps\_utility::is_coop())
{
thread maps\_loadout::coop_gamesetup_menu();
}
thread weapon_ammo();
if(maps\_utility::is_specialop())
{
maps\_specialops::specialops_init();
}
if(level.script == level.missionsettings.levels[0].name && !level.player getlocalplayerprofiledata("hasEverPlayed_SP"))
{
level.player setlocalplayerprofiledata("hasEverPlayed_SP",1);
updategamerprofile();
}
level notify("load_finished");
}
//Function Number: 2
get_load_trigger_classes()
{
var_00 = [];
if(!maps\_utility::is_no_game_start())
{
}
return var_7B;
}
//Function Number: 3
get_load_trigger_funcs()
{
var_00 = [];
if(!maps\_utility::is_no_game_start())
{
}
if(maps\_utility::is_coop())
{
}
return var_7B;
}
//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 script_flag_true_trigger(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_flag_false))
{
level thread script_flag_false_trigger(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::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 exploder_load(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].ambient))
{
var_04[var_0A] thread maps\_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 maps\_audio::trigger_multiple_audio_trigger();
}
if(isdefined(var_04[var_0A].script_triggered_playerseek))
{
level thread triggered_playerseek(var_04[var_0A]);
}
if(isdefined(var_04[var_0A].script_bctrigger))
{
level thread bctrigger(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
set_early_level()
{
level.early_level = [];
level.early_level["intro"] = 1;
level.early_level["sp_ny_harbor"] = 1;
level.early_level["sp_ny_manhattan"] = 1;
level.early_level["warlord"] = 1;
level.early_level["london"] = 1;
}
//Function Number: 6
trigger_slide(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
var_01 thread slidetriggerplayerthink(param_00);
}
}
//Function Number: 7
slidetriggerplayerthink(param_00)
{
if(isdefined(self.vehicle))
{
return;
}
if(maps\_utility::issliding())
{
return;
}
thread maps\_audio::aud_send_msg("start_player_slide_trigger",self);
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;
}
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();
thread maps\_audio::aud_send_msg("end_player_slide_trigger",self);
}
//Function Number: 8
setup_simple_primary_lights()
{
var_00 = getentarray("generic_flickering","targetname");
var_01 = getentarray("generic_pulsing","targetname");
var_02 = getentarray("generic_double_strobe","targetname");
common_scripts\utility::array_thread(var_00,::maps\_lights::generic_flickering);
common_scripts\utility::array_thread(var_01,::maps\_lights::generic_pulsing);
common_scripts\utility::array_thread(var_02,::maps\_lights::generic_double_strobe);
}
//Function Number: 9
weapon_ammo()
{
var_00 = getentarray();
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(isdefined(var_00[var_01].classname) && getsubstr(var_00[var_01].classname,0,7) == "weapon_")
{
var_02 = var_00[var_01];
var_03 = getsubstr(var_02.classname,7);
if(isdefined(var_02.script_ammo_max))
{
var_04 = weaponclipsize(var_03);
var_05 = weaponmaxammo(var_03);
var_02 itemweaponsetammo(var_04,var_05,var_04,0);
var_06 = weaponaltweaponname(var_03);
if(var_06 != "none")
{
var_07 = weaponclipsize(var_06);
var_08 = weaponmaxammo(var_06);
var_02 itemweaponsetammo(var_07,var_08,var_07,1);
}
continue;
}
var_09 = 0;
var_04 = undefined;
var_0A = undefined;
var_0B = 0;
var_0C = undefined;
var_0D = undefined;
if(isdefined(var_02.script_ammo_clip))
{
var_04 = var_02.script_ammo_clip;
var_09 = 1;
}
if(isdefined(var_02.script_ammo_extra))
{
var_0A = var_02.script_ammo_extra;
var_09 = 1;
}
if(isdefined(var_02.script_ammo_alt_clip))
{
var_0C = var_02.script_ammo_alt_clip;
var_0B = 1;
}
if(isdefined(var_02.script_ammo_alt_extra))
{
var_0D = var_02.script_ammo_alt_extra;
var_0B = 1;
}
if(var_09)
{
if(!isdefined(var_04))
{
}
if(!isdefined(var_0A))
{
}
var_02 itemweaponsetammo(var_04,var_0A);
}
if(var_0B)
{
if(!isdefined(var_0C))
{
}
if(!isdefined(var_0D))
{
}
var_02 itemweaponsetammo(var_0C,var_0D,0,1);
}
}
}
}
//Function Number: 10
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: 11
trigger_group_remove()
{
level waittill("trigger_group_" + self.script_trigger_group,var_00);
if(self != var_00)
{
self delete();
}
}
//Function Number: 12
exploder_load(param_00)
{
level endon("killexplodertridgers" + param_00.script_exploder);
param_00 waittill("trigger");
if(isdefined(param_00.script_chance) && randomfloat(1) > param_00.script_chance)
{
if(!param_00 maps\_utility::script_delay())
{
wait 4;
}
level thread exploder_load(param_00);
return;
}
if(!param_00 maps\_utility::script_delay() && isdefined(param_00.script_exploder_delay))
{
wait param_00.script_exploder_delay;
}
common_scripts\utility::exploder(param_00.script_exploder);
level notify("killexplodertridgers" + param_00.script_exploder);
}
//Function Number: 13
shock_onpain()
{
precacheshellshock("pain");
precacheshellshock("default");
level.player endon("death");
setdvarifuninitialized("blurpain","on");
for(;;)
{
var_00 = level.player.health;
level.player waittill("damage");
if(getdvar("blurpain") == "on")
{
if(var_00 - level.player.health < 129)
{
continue;
}
level.player shellshock("default",5);
}
}
}
//Function Number: 14
usedanimations()
{
setdvar("usedanim","");
for(;;)
{
if(getdvar("usedanim") == "")
{
wait 2;
continue;
}
var_00 = getdvar("usedanim");
setdvar("usedanim","");
if(!isdefined(level.completedanims[var_00]))
{
continue;
}
for(var_01 = 0;var_01 < level.completedanims[var_00].size;var_01++)
{
}
}
}
//Function Number: 15
badplace_think(param_00)
{
if(!isdefined(level.badplaces))
{
level.badplaces = 0;
}
level.badplaces++;
badplace_cylinder("badplace" + level.badplaces,-1,param_00.origin,param_00.radius,1024);
}
//Function Number: 16
setup_individual_exploder(param_00)
{
var_01 = param_00.script_exploder;
if(!isdefined(level.exploders[var_01]))
{
level.exploders[var_01] = [];
}
var_02 = param_00.targetname;
if(!isdefined(var_02))
{
var_02 = "";
}
level.exploders[var_01][level.exploders[var_01].size] = param_00;
if(maps\_utility::exploder_model_starts_hidden(param_00))
{
param_00 hide();
return;
}
if(maps\_utility::exploder_model_is_damaged_model(param_00))
{
param_00 hide();
param_00 notsolid();
if(isdefined(param_00.spawnflags) && param_00.spawnflags & 1)
{
if(isdefined(param_00.script_disconnectpaths))
{
param_00 connectpaths();
}
}
return;
}
if(maps\_utility::exploder_model_is_chunk(param_00))
{
param_00 hide();
param_00 notsolid();
if(isdefined(param_00.spawnflags) && param_00.spawnflags & 1)
{
param_00 connectpaths();
}
}
}
//Function Number: 17
setupexploders()
{
level.exploders = [];
var_00 = getentarray("script_brushmodel","classname");
var_01 = getentarray("script_model","classname");
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
var_00[var_00.size] = var_01[var_02];
}
foreach(var_04 in var_00)
{
if(isdefined(var_04.script_prefab_exploder))
{
var_04.script_exploder = var_04.script_prefab_exploder;
}
if(isdefined(var_04.masked_exploder))
{
continue;
}
if(isdefined(var_04.script_exploder))
{
setup_individual_exploder(var_04);
}
}
var_06 = [];
var_07 = getentarray("script_brushmodel","classname");
for(var_02 = 0;var_02 < var_07.size;var_02++)
{
if(isdefined(var_07[var_02].script_prefab_exploder))
{
var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder;
}
if(isdefined(var_07[var_02].script_exploder))
{
var_06[var_06.size] = var_07[var_02];
}
}
var_07 = getentarray("script_model","classname");
for(var_02 = 0;var_02 < var_07.size;var_02++)
{
if(isdefined(var_07[var_02].script_prefab_exploder))
{
var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder;
}
if(isdefined(var_07[var_02].script_exploder))
{
var_06[var_06.size] = var_07[var_02];
}
}
var_07 = getentarray("item_health","classname");
for(var_02 = 0;var_02 < var_07.size;var_02++)
{
if(isdefined(var_07[var_02].script_prefab_exploder))
{
var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder;
}
if(isdefined(var_07[var_02].script_exploder))
{
var_06[var_06.size] = var_07[var_02];
}
}
if(isdefined(level.enable_struct_exploders))
{
var_07 = level.struct;
for(var_02 = 0;var_02 < var_07.size;var_02++)
{
if(!isdefined(var_07[var_02]))
{
continue;
}
if(isdefined(var_07[var_02].script_prefab_exploder))
{
var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder;
}
if(isdefined(var_07[var_02].script_exploder))
{
if(!isdefined(var_07[var_02].angles))
{
var_07[var_02].angles = (0,0,0);
}
var_06[var_06.size] = var_07[var_02];
}
}
}
if(!isdefined(level.createfxent))
{
level.createfxent = [];
}
var_08 = [];
thread setup_flag_exploders();
var_03 = 0;
while(var_03 < var_07.size)
{
var_09 = var_07[var_03];
var_05 = common_scripts\utility::createexploder(var_09.script_fxid);
var_05.v = [];
var_05.v["origin"] = var_09.origin;
var_05.v["angles"] = var_09.angles;
var_05.v["delay"] = var_09.script_delay;
var_05.v["delay_post"] = var_09.script_delay_post;
var_05.v["firefx"] = var_09.script_firefx;
var_05.v["firefxdelay"] = var_09.script_firefxdelay;
var_05.v["firefxsound"] = var_09.script_firefxsound;
var_05.v["firefxtimeout"] = var_09.script_firefxtimeout;
var_05.v["earthquake"] = var_09.script_earthquake;
var_05.v["rumble"] = var_09.script_rumble;
var_05.v["damage"] = var_09.script_damage;
var_05.v["damage_radius"] = var_09.script_radius;
var_05.v["soundalias"] = var_09.script_soundalias;
var_05.v["repeat"] = var_09.script_repeat;
var_05.v["delay_min"] = var_09.script_delay_min;
var_05.v["delay_max"] = var_09.var_7E6;
var_05.v["target"] = var_09.target;
var_05.v["ender"] = var_09.script_ender;
var_05.v["physics"] = var_09.script_physics;
var_05.v["type"] = "exploder";
if(!isdefined(var_09.script_fxid))
{
var_05.v["fxid"] = "No FX";
}
else
{
var_05.v["fxid"] = var_09.script_fxid;
}
var_05.v["exploder"] = var_09.script_exploder;
if(isdefined(level.createfxexploders))
{
var_0A = level.createfxexploders[var_05.v["exploder"]];
if(!isdefined(var_0A))
{
var_0A = [];
}
level.createfxexploders[var_05.v["exploder"]] = var_0A;
}
if(!isdefined(var_05.v["delay"]))
{
var_05.v["delay"] = 0;
}
if(isdefined(var_09.target))
{
var_0B = getentarray(var_05.v["target"],"targetname")[0];
if(isdefined(var_0B))
{
var_0C = var_0B.origin;
var_05.v["angles"] = vectortoangles(var_0C - var_05.v["origin"]);
}
else
{
var_0B = common_scripts\utility::get_target_ent(var_05.v["target"]);
if(isdefined(var_0B))
{
var_0C = var_0B.origin;
var_05.v["angles"] = vectortoangles(var_0C - var_05.v["origin"]);
}
}
}
if(!isdefined(level.enable_struct_exploders))
{
if(var_09.code_classname == "script_brushmodel" || isdefined(var_09.model))
{
var_05.model = var_09;
var_05.model.disconnect_paths = var_09.script_disconnectpaths;
}
}
else
{
var_05.model = var_09;
if(isdefined(var_05.model.script_modelname))
{
precachemodel(var_05.model.script_modelname);
}
}
if(isdefined(var_09.targetname) && isdefined(var_7B[var_09.targetname]))
{
var_05.v["exploder_type"] = var_09.targetname;
}
else
{
var_05.v["exploder_type"] = "normal";
}
if(isdefined(var_09.masked_exploder))
{
var_05.v["masked_exploder"] = var_09.model;
var_05.v["masked_exploder_spawnflags"] = var_09.spawnflags;
var_05.v["masked_exploder_script_disconnectpaths"] = var_09.script_disconnectpaths;
var_09 delete();
}
var_05 common_scripts\_createfx::post_entity_creation_function();
var_03++ = var_7B[var_0A.size];
}
}
//Function Number: 18
setup_flag_exploders()
{
waittillframeend;
waittillframeend;
waittillframeend;
var_00 = [];
foreach(var_02 in level.createfxent)
{
if(var_02.v["type"] != "exploder")
{
continue;
}
var_03 = var_02.v["flag"];
if(!isdefined(var_03))
{
continue;
}
if(var_03 == "nil")
{
var_02.v["flag"] = undefined;
}
var_00[var_03] = 1;
}
foreach(var_07, var_06 in var_00)
{
thread exploder_flag_wait(var_07);
}
}
//Function Number: 19
exploder_flag_wait(param_00)
{
if(!common_scripts\utility::flag_exist(param_00))
{
common_scripts\utility::flag_init(param_00);
}
common_scripts\utility::flag_wait(param_00);
foreach(var_02 in level.createfxent)
{
if(var_02.v["type"] != "exploder")
{
continue;
}
var_03 = var_02.v["flag"];
if(!isdefined(var_03))
{
continue;
}
if(var_03 != param_00)
{
continue;
}
var_02 common_scripts\utility::activate_individual_exploder();
}
}
//Function Number: 20
nearairushesplayer()
{
if(isalive(level.enemyseekingplayer))
{
return;
}
var_00 = maps\_utility::get_closest_ai(level.player.origin,"bad_guys");
if(!isdefined(var_00))
{
return;
}
if(distance(var_00.origin,level.player.origin) > 400)
{
return;
}
level.enemyseekingplayer = var_00;
var_00 setgoalentity(level.player);
var_00.goalradius = 512;
}
//Function Number: 21
playerdamagerumble()
{
for(;;)
{
self waittill("damage",var_00);
if(isdefined(self.specialdamage))
{
continue;
}
self playrumbleonentity("damage_heavy");
}
}
//Function Number: 22
playerdamageshellshock()
{
for(;;)
{
level.player waittill("damage",var_00,var_01,var_02,var_03,var_04);
if(var_04 == "MOD_EXPLOSIVE" || var_04 == "MOD_GRENADE" || var_04 == "MOD_GRENADE_SPLASH" || var_04 == "MOD_PROJECTILE" || var_04 == "MOD_PROJECTILE_SPLASH")
{
var_05 = 0;
var_06 = level.player.maxhealth / 100;
var_07 = var_00 * var_06;
if(var_07 >= 90)
{
var_05 = 4;
}
else if(var_07 >= 50)
{
var_05 = 3;
}
else if(var_07 >= 25)
{
var_05 = 2;
}
else if(var_07 > 10)
{
var_05 = 1;
}
if(var_05)
{
level.player shellshock("default",var_05);
}
}
}
}
//Function Number: 23
map_is_early_in_the_game()
{
if(isdefined(level.early_level[level.script]))
{
return level.early_level[level.script];
}
return 0;
}
//Function Number: 24
player_throwgrenade_timer()
{
self endon("death");
self.lastgrenadetime = 0;
for(;;)
{
while(!self isthrowinggrenade())
{
wait 0.05;
}
self.lastgrenadetime = gettime();
while(self isthrowinggrenade())
{
wait 0.05;
}
}
}
//Function Number: 25
player_special_death_hint()
{
if(maps\_utility::is_specialop())
{
return;
}
if(isalive(level.player))
{
thread maps\_quotes::setdeadquote();
}
level.player thread player_throwgrenade_timer();
level.player waittill("death",var_00,var_01,var_02);
if(var_01 != "MOD_GRENADE" && var_01 != "MOD_GRENADE_SPLASH" && var_01 != "MOD_SUICIDE" && var_01 != "MOD_EXPLOSIVE")
{
return;
}
if(level.gameskill >= 2)
{
if(!map_is_early_in_the_game())
{
return;
}
}
if(var_01 == "MOD_SUICIDE")
{
if(level.player.lastgrenadetime - gettime() > 3500)
{
return;
}
level notify("new_quote_string");
thread grenade_death_text_hudelement(&"SCRIPT_GRENADE_SUICIDE_LINE1",&"SCRIPT_GRENADE_SUICIDE_LINE2");
return;
}
if(var_01 == "MOD_EXPLOSIVE")
{
if(level.player destructible_death(var_00))
{
return;
}
if(level.player exploding_barrel_death_af_chase(var_00))
{
return;
}
if(level.player vehicle_death(var_00))
{
return;
}
if(level.player exploding_barrel_death(var_00))
{
return;
}
}
if(var_01 == "MOD_GRENADE" || var_01 == "MOD_GRENADE_SPLASH")
{
if(isdefined(var_02) && !isweapondetonationtimed(var_02))
{
return;
}
level notify("new_quote_string");
setdvar("ui_deadquote","@SCRIPT_GRENADE_DEATH");
thread grenade_death_indicator_hudelement();
}
}
//Function Number: 26
vehicle_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00.code_classname != "script_vehicle")
{
return 0;
}
level notify("new_quote_string");
setdvar("ui_deadquote","@SCRIPT_EXPLODING_VEHICLE_DEATH");
thread special_death_indicator_hudelement("hud_burningcaricon",96,96);
return 1;
}
//Function Number: 27
destructible_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(!isdefined(param_00.destructible_type))
{
return 0;
}
level notify("new_quote_string");
if(issubstr(param_00.destructible_type,"vehicle"))
{
setdvar("ui_deadquote","@SCRIPT_EXPLODING_VEHICLE_DEATH");
thread special_death_indicator_hudelement("hud_burningcaricon",96,96);
}
else
{
setdvar("ui_deadquote","@SCRIPT_EXPLODING_DESTRUCTIBLE_DEATH");
thread special_death_indicator_hudelement("hud_destructibledeathicon",96,96);
}
return 1;
}
//Function Number: 28
exploding_barrel_death_af_chase(param_00)
{
if(level.script != "af_chase")
{
return 0;
}
return exploding_barrel_death(param_00);
}
//Function Number: 29
exploding_barrel_death(param_00)
{
if(isdefined(level.lastexplodingbarrel))
{
if(gettime() != level.lastexplodingbarrel["time"])
{
return 0;
}
var_01 = distance(self.origin,level.lastexplodingbarrel["origin"]);
if(var_01 > level.lastexplodingbarrel["radius"])
{
return 0;
}
level notify("new_quote_string");
setdvar("ui_deadquote","@SCRIPT_EXPLODING_BARREL_DEATH");
thread special_death_indicator_hudelement("hud_burningbarrelicon",64,64);
return 1;
}
return 0;
}
//Function Number: 30
grenade_death_text_hudelement(param_00,param_01)
{
level.player.failingmission = 1;
setdvar("ui_deadquote","");
wait 1.5;
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = "default";
var_02.fontscale = 1.5;
var_02.x = 0;
var_02.y = -30;
var_02.alignx = "center";
var_02.aligny = "middle";
var_02.horzalign = "center";
var_02.vertalign = "middle";
var_02 settext(param_00);
var_02.foreground = 1;
var_02.alpha = 0;
var_02 fadeovertime(1);
var_02.alpha = 1;
if(isdefined(param_01))
{
var_02 = newhudelem();
var_02.elemtype = "font";
var_02.font = "default";
var_02.fontscale = 1.5;
var_02.x = 0;
var_02.y = -25 + level.fontheight * var_02.fontscale;
var_02.alignx = "center";
var_02.aligny = "middle";
var_02.horzalign = "center";
var_02.vertalign = "middle";
var_02 settext(param_01);
var_02.foreground = 1;
var_02.alpha = 0;
var_02 fadeovertime(1);
var_02.alpha = 1;
}
}
//Function Number: 31
grenade_death_indicator_hudelement()
{
wait 1.5;
var_00 = newhudelem();
var_00.x = 0;
var_00.y = 68;
var_00 setshader("hud_grenadeicon",50,50);
var_00.alignx = "center";
var_00.aligny = "middle";
var_00.horzalign = "center";
var_00.vertalign = "middle";
var_00.foreground = 1;
var_00.alpha = 0;
var_00 fadeovertime(1);
var_00.alpha = 1;
var_00 = newhudelem();
var_00.x = 0;
var_00.y = 25;
var_00 setshader("hud_grenadepointer",50,25);
var_00.alignx = "center";
var_00.aligny = "middle";
var_00.horzalign = "center";
var_00.vertalign = "middle";
var_00.foreground = 1;
var_00.alpha = 0;
var_00 fadeovertime(1);
var_00.alpha = 1;
}
//Function Number: 32
special_death_indicator_hudelement(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 1.5;
}
wait param_03;
var_04 = newhudelem();
var_04.x = 0;
var_04.y = 40;
var_04 setshader(param_00,param_01,param_02);
var_04.alignx = "center";
var_04.aligny = "middle";
var_04.horzalign = "center";
var_04.vertalign = "middle";
var_04.foreground = 1;
var_04.alpha = 0;
var_04 fadeovertime(1);
var_04.alpha = 1;
}
//Function Number: 33
triggered_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: 34
traversethink()
{
var_00 = getent(self.target,"targetname");
self.traverse_height = var_00.origin[2];
var_00 delete();
}
//Function Number: 35
pianodamagethink()
{
var_00 = self getorigin();
var_01[0] = "large";
for(;;)
{
self waittill("small",var_7B[1],"trigger");
thread common_scripts\utility::play_sound_in_space("bullet_" + common_scripts\utility::random(var_7B) + "_piano",var_01);
}
}
//Function Number: 36
pianothink()
{
var_00 = self getorigin();
var_01 = "piano_" + self.script_noteworthy;
self sethintstring(&"SCRIPT_PLATFORM_PIANO");
for(;;)
{
self waittill("trigger");
thread common_scripts\utility::play_sound_in_space(var_01,var_00);
}
}
//Function Number: 37
bctrigger(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::func_BF2("custom");
}
else if(var_03.team == level.player.team)
{
var_05 = "axis";
if(level.player.team == "axis")
{
var_05 = "allies";
}
var_06 = animscripts/battlechatter::func_BF3("custom",var_05);
var_06 = maps\_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(bctrigger_validate_distance(var_08.origin))
{
break;
}
}
}
}
}
else if(isplayer(var_03))
{
var_04 = var_03 animscripts/battlechatter::func_BF2("custom");
}
else
{
var_04 = var_03;
}
if(!isdefined(var_04))
{
return;
}
if(!bctrigger_validate_distance(var_04.origin))
{
return;
}
var_0A = var_04 maps\_utility::custom_battlechatter(param_00.script_bctrigger);
if(!var_0A)
{
level maps\_utility::delaythread(0.25,::bctrigger,param_00);
return;
}
param_00 notify("custom_battlechatter_done");
}
//Function Number: 38
bctrigger_validate_distance(param_00)
{
if(distance(param_00,level.player getorigin()) <= 512)
{
return 1;
}
return 0;
}
//Function Number: 39
waterthink()
{
var_00 = getent(self.target,"targetname");
var_01 = var_00.origin[2];
var_00 = undefined;
level.depth_allow_prone = 8;
level.depth_allow_crouch = 33;
level.depth_allow_stand = 50;
var_02 = 0;
for(;;)
{
wait 0.05;
if(!level.player.inwater && var_02)
{
var_02 = 0;
level.player allowprone(1);
level.player allowcrouch(1);
level.player allowstand(1);
thread waterthink_rampspeed(level.default_run_speed);
}
self waittill("trigger");
level.player.inwater = 1;
var_02 = 1;
while(level.player istouching(self))
{
level.player.inwater = 1;
var_03 = level.player getorigin();
var_04 = var_03[2] - var_01;
if(var_04 > 0)
{
break;
}
var_05 = int(level.default_run_speed - abs(var_04 * 5));
if(var_05 < 50)
{
var_05 = 50;
}
thread waterthink_rampspeed(var_05);
if(abs(var_04) > level.depth_allow_crouch)
{
level.player allowcrouch(0);
}
else
{
level.player allowcrouch(1);
}
if(abs(var_04) > level.depth_allow_prone)
{
level.player allowprone(0);
continue;
}
level.player allowprone(1);
wait 0.5;
}
level.player.inwater = 0;
wait 0.05;
}
}
//Function Number: 40
waterthink_rampspeed(param_00)
{
level notify("ramping_water_movement_speed");
level endon("ramping_water_movement_speed");
var_01 = 0.5;
var_02 = int(var_01 * 20);
var_03 = getdvarint("g_speed");
var_04 = 0;
if(param_00 < var_03)
{
var_04 = 1;
}
var_05 = int(abs(var_03 - param_00));
var_06 = int(var_05 / var_02);
for(var_07 = 0;var_07 < var_02;var_07++)
{
var_03 = getdvarint("g_speed");
if(var_04)
{
setsaveddvar("g_speed",var_03 - var_06);
}
else
{
setsaveddvar("g_speed",var_03 + var_06);
}
wait 0.05;
}
setsaveddvar("g_speed",param_00);
}
//Function Number: 41
massnodeinitfunctions()
{
var_00 = getallnodes();
thread maps\_mgturret::auto_mgturretlink(var_00);
thread maps\_mgturret::saw_mgturretlink(var_00);
thread maps\_colors::init_color_grouping(var_00);
}
//Function Number: 42
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: 43
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: 44
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: 45
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: 46
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 = [];
return var_7B;
}
//Function Number: 47
trigger_lookat(param_00)
{
trigger_lookat_think(param_00,1);
}
//Function Number: 48
trigger_looking(param_00)
{
trigger_lookat_think(param_00,0);
}
//Function Number: 49
trigger_visionset_change(param_00)
{
var_01 = 3;
if(isdefined(param_00.script_delay))
{
var_01 = param_00.script_delay;
}
for(;;)
{
param_00 waittill("trigger");
maps\_utility::set_vision_set(param_00.script_visionset,var_01);
wait var_01;
}
}
//Function Number: 50
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: 51
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 = [];
for(;;)
{
if(var_05)
{
common_scripts\utility::flag_clear(var_06);
}
var_01 waittill((0,0,0),var_7B[var_07.size],(var_07,0,0),var_7B[var_7B.size],(var_07 * -1,0,0),var_7B[var_7B.size],(0,var_07,0),var_7B[var_7B.size],(0,var_07 * -1,0),var_7B[var_7B.size],(0,0,var_07),var_7B[var_7B.size],"trigger",var_08);
while(level.player istouching(var_01))
{
if(!var_08 cantraceto(var_03,var_7B))
{
if(var_05)
{
common_scripts\utility::flag_clear(var_06);
}
wait 0.1;
continue;
}
if(var_05)
{
common_scripts\utility::flag_set(var_06);
}
common_scripts\utility::array_thread(var_02,::maps\_utility::send_notify,"trigger");
wait 0.5;
}
}
}
//Function Number: 52
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: 53
indicate_start(param_00)
{
var_01 = newhudelem();
var_01.alignx = "left";
var_01.aligny = "middle";
var_01.x = 10;
var_01.y = 400;
var_01 settext(param_00);
var_01.alpha = 0;
var_01.fontscale = 3;
wait 1;
var_01 fadeovertime(1);
var_01.alpha = 1;
wait 5;
var_01 fadeovertime(1);
var_01.alpha = 0;
wait 1;
var_01 destroy();
}
//Function Number: 54
handle_starts()
{
common_scripts\utility::create_dvar("start","");
if(getdvar("scr_generateClipModels") != "" && getdvar("scr_generateClipModels") != "0")
{
return;
}
if(!isdefined(level.start_functions))
{
level.start_functions = [];
}
var_00 = tolower(getdvar("start"));
var_01 = get_start_dvars();
if(isdefined(level.start_point))
{
var_00 = level.start_point;
}
var_02 = 0;
for(var_03 = 0;var_03 < var_01.size;var_03++)
{
if(var_00 == var_01[var_03])
{
var_02 = var_03;
level.start_point = var_01[var_03];
break;
}
}
if(isdefined(level.default_start_override) && !isdefined(level.start_point))
{
foreach(var_06, var_05 in var_01)
{
if(level.default_start_override == var_05)
{
var_02 = var_06;
level.start_point = var_05;
break;
}
}
}
if(!isdefined(level.start_point))
{
if(isdefined(level.default_start))
{
level.start_point = "default";
}
else if(maps\_utility::level_has_start_points())
{
level.start_point = level.start_functions[0]["name"];
}
else
{
level.start_point = "default";
}
}
waittillframeend;
thread start_menu();
if(level.start_point == "default")
{
if(isdefined(level.default_start))
{
level thread [[ level.default_start ]]();
}
}
else
{
var_07 = level.start_arrays[level.start_point];
thread [[ var_07["start_func"] ]]();
}
if(maps\_utility::is_default_start())
{
var_08 = get_string_for_starts(var_01);
setdvar("start",var_08);
}
waittillframeend;
var_09 = [];
for(var_03 = var_02;var_03 < level.start_functions.size;var_03++)
{
var_07 = level.start_functions[var_03];
if(!isdefined(var_07["logic_func"]))
{
continue;
}
if(already_ran_function(var_07["logic_func"],var_09))
{
continue;
}
[[ var_07["logic_func"] ]]();
var_09[var_09.size] = var_07["logic_func"];
}
}
//Function Number: 55
already_ran_function(param_00,param_01)
{
foreach(var_03 in param_01)
{
if(var_03 == param_00)
{
return 1;
}
}
return 0;
}
//Function Number: 56
get_string_for_starts(param_00)
{
var_01 = " ** No starts have been set up for this map with maps_utility::add_start().";
if(param_00.size)
{
var_01 = " ** ";
for(var_02 = param_00.size - 1;var_02 >= 0;var_02--)
{
var_01 = var_01 + param_00[var_02] + " ";
}
}
setdvar("start",var_01);
return var_01;
}
//Function Number: 57
create_start(param_00,param_01)
{
var_02 = 1;
var_03 = (0.9,0.9,0.9);
if(param_01 != -1)
{
var_04 = 5;
if(param_01 != var_04)
{
var_02 = 1 - abs(var_04 - param_01) / var_04;
}
else
{
var_03 = (1,1,0);
}
}
if(var_02 == 0)
{
var_02 = 0.05;
}
var_05 = newhudelem();
var_05.alignx = "left";
var_05.aligny = "middle";
var_05.x = 80;
var_05.y = 80 + param_01 * 18;
var_05 settext(param_00);
var_05.alpha = 0;
var_05.foreground = 1;
var_05.color = var_03;
var_05.fontscale = 1.75;
var_05 fadeovertime(0.5);
var_05.alpha = var_02;
return var_05;
}
//Function Number: 58
start_menu()
{
}
//Function Number: 59
start_nogame()
{
common_scripts\utility::array_call(getaiarray(),::delete);
common_scripts\utility::array_call(getspawnerarray(),::delete);
}
//Function Number: 60
get_start_dvars()
{
var_00 = [];
for(var_01 = 0;var_01 < level.start_functions.size;var_01++)
{
var_00[var_00.size] = level.start_functions[var_01]["name"];
}
return var_00;
}
//Function Number: 61
display_starts()
{
level.display_starts_pressed = 1;
if(level.start_functions.size <= 0)
{
return;
}
var_00 = get_start_dvars();
var_01 = start_list_menu();
var_02 = create_start("Selected Start:",-1);
var_02.color = (1,1,1);
var_03 = [];
var_04 = 0;
while(var_04 < var_7B.size)
{
var_05 = var_7B[var_04];
var_06 = "[" + var_7B[var_04] + "]";
if(var_05 != "cancel" && var_05 != "default")
{
if(isdefined(level.start_arrays[var_05]["start_loc_string"]))
{
var_06 = var_06 + " -> ";
var_06 = var_06 + level.start_arrays[var_05]["start_loc_string"];
}
}
var_03[var_03.size] = var_06;
var_04++ = var_7B[var_7B.size];
}
var_07 = var_7B.size - 1;
var_08 = 0;
var_09 = 0;
var_0A = 0;
while(var_07 > 0)
{
if(var_7B[var_07] == level.start_point)
{
var_0A = 1;
break;
}
var_07-- = "cancel";
}
if(!var_0A)
{
var_07 = var_7B.size - 1;
}
start_list_settext(var_01,var_03,var_07);
var_0B = var_07;
for(;;)
{
if(!level.player buttonpressed("F10"))
{
level.display_starts_pressed = 0;
}
if(var_0B != var_07)
{
start_list_settext(var_01,var_03,var_07);
var_0B = var_07;
}
if(!var_08)
{
if(level.player buttonpressed("UPARROW") || level.player buttonpressed("DPAD_UP") || level.player buttonpressed("APAD_UP"))
{
var_08 = 1;
var_07-- = var_7B[var_00.size];
}
}
else if(!level.player buttonpressed("UPARROW") && !level.player buttonpressed("DPAD_UP") && !level.player buttonpressed("APAD_UP"))
{
var_08 = 0;
}
if(!var_09)
{
if(level.player buttonpressed("DOWNARROW") || level.player buttonpressed("DPAD_DOWN") || level.player buttonpressed("APAD_DOWN"))
{
var_09 = 1;
var_07++ = "default";
}
}
else if(!level.player buttonpressed("DOWNARROW") && !level.player buttonpressed("DPAD_DOWN") && !level.player buttonpressed("APAD_DOWN"))
{
var_09 = 0;
}
if(var_07 < 0)
{
var_07 = var_7B.size - 1;
}
if(var_07 >= var_7B.size)
{
var_07 = 0;
}
if(level.player buttonpressed("BUTTON_B"))
{
start_display_cleanup(var_01,var_02);
break;
}
if(level.player buttonpressed("kp_enter") || level.player buttonpressed("BUTTON_A") || level.player buttonpressed("enter"))
{
if(var_7B[var_07] == "cancel")
{
start_display_cleanup(var_01,var_02);
break;
}
setdvar("start",var_7B[var_07]);
level.player openpopupmenu("start");
}
wait 0.05;
}
}
//Function Number: 62
start_list_menu()
{
var_00 = [];
for(var_01 = 0;var_01 < 11;var_01++)
{
var_02 = create_start("",var_01);
var_00[var_00.size] = var_02;
}
return var_00;
}
//Function Number: 63
start_list_settext(param_00,param_01,param_02)
{
for(var_03 = 0;var_03 < param_00.size;var_03++)
{
var_04 = var_03 + param_02 - 5;
if(isdefined(param_01[var_04]))
{
var_05 = param_01[var_04];
}
else
{
var_05 = "";
}
param_00[var_03] settext(var_05);
}
}
//Function Number: 64
start_display_cleanup(param_00,param_01)
{
param_01 destroy();
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
param_00[var_02] destroy();
}
}
//Function Number: 65
devhelp_hudelements(param_00,param_01)
{
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
for(var_03 = 0;var_03 < 5;var_03++)
{
param_00[var_02][var_03].alpha = param_01;
}
}
}
//Function Number: 66
devhelp()
{
}
//Function Number: 67
flag_set_player_trigger(param_00)
{
if(maps\_utility::is_coop())
{
thread flag_set_coop_trigger(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: 68
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: 69
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: 70
sun_on(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(getdvarint("sm_sunenable") == 1)
{
continue;
}
setsaveddvar("sm_sunenable",1);
}
}
//Function Number: 71
sun_off(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(getdvarint("sm_sunenable") == 0)
{
continue;
}
setsaveddvar("sm_sunenable",0);
}
}
//Function Number: 72
flag_set_trigger(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: 73
flag_set_trigger_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 flag_set_trigger_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: 74
flag_set_trigger_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: 75
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: 76
flag_set_coop_trigger(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_03 = maps\_utility::array_merge(var_03,var_7B);
if(var_03.size == level.players.size)
{
break;
}
}
var_01 maps\_utility::script_delay();
common_scripts\utility::flag_set(var_02);
}
//Function Number: 77
flag_unset_trigger(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: 78
eq_trigger(param_00)
{
level.set_eq_func[1] = ::set_eq_on;
level.set_eq_func[0] = ::set_eq_off;
var_01 = getent(param_00.target,"targetname");
for(;;)
{
param_00 waittill("trigger");
var_02 = getaiarray("allies");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03] [[ level.set_eq_func[var_02[var_03] istouching(var_01)] ]]();
}
while(level.player istouching(param_00))
{
wait 0.05;
}
var_02 = getaiarray("allies");
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
var_02[var_03] [[ level.set_eq_func[0] ]]();
}
}
}
//Function Number: 79
player_ignores_triggers()
{
self endon("death");
self.ignoretriggers = 1;
wait 1;
self.ignoretriggers = 0;
}
//Function Number: 80
get_trigger_eq_nums(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < level.eq_trigger_table[var_01].size;var_02++ = var_7B[0])
{
var_7B[var_7B.size] = level.eq_trigger_table[var_01][var_02];
}
return var_7B;
}
//Function Number: 81
player_touched_eq_trigger(param_00,param_01)
{
self endon("death");
var_02 = get_trigger_eq_nums(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
self.eq_table[var_02[var_03]] = 1;
self.eq_touching[var_02[var_03]] = 1;
}
thread player_ignores_triggers();
var_04 = getaiarray();
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
var_06 = var_04[var_05];
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(var_06.eq_table[var_02[var_03]])
{
var_06 eqoff();
break;
}
}
}
while(self istouching(param_01))
{
wait 0.05;
}
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
self.eq_table[var_02[var_03]] = 0;
self.eq_touching[var_02[var_03]] = undefined;
}
var_04 = getaiarray();
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
var_06 = var_04[var_05];
var_07 = 0;
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(var_06.eq_table[var_02[var_03]])
{
var_07 = 1;
}
}
if(!var_07)
{
continue;
}
var_08 = getarraykeys(self.eq_touching);
var_09 = 0;
for(var_0A = 0;var_0A < var_08.size;var_0A++)
{
if(!var_06.eq_table[var_08[var_0A]])
{
continue;
}
var_09 = 1;
break;
}
if(!var_09)
{
var_06 eqon();
}
}
}
//Function Number: 82
ai_touched_eq_trigger(param_00,param_01)
{
self endon("death");
var_02 = get_trigger_eq_nums(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
self.eq_table[var_02[var_03]] = 1;
self.eq_touching[var_02[var_03]] = 1;
}
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(level.player.eq_table[var_02[var_03]])
{
self eqoff();
break;
}
}
self.ignoretriggers = 1;
wait 1;
self.ignoretriggers = 0;
while(self istouching(param_01))
{
wait 0.5;
}
var_02 = get_trigger_eq_nums(param_00);
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
self.eq_table[var_02[var_03]] = 0;
self.eq_touching[var_02[var_03]] = undefined;
}
var_04 = getarraykeys(self.eq_touching);
for(var_05 = 0;var_05 < var_04.size;var_05++)
{
if(level.player.eq_table[var_04[var_05]])
{
return;
}
}
self eqon();
}
//Function Number: 83
ai_eq()
{
level.set_eq_func[0] = ::set_eq_on;
level.set_eq_func[1] = ::set_eq_off;
var_00 = 0;
for(;;)
{
while(!level.ai_array.size)
{
wait 0.05;
}
waittillframeend;
waittillframeend;
var_01 = getarraykeys(level.ai_array);
var_00++;
if(var_00 >= var_01.size)
{
var_00 = 0;
}
var_02 = level.ai_array[var_01[var_00]];
var_02 [[ level.set_eq_func[sighttracepassed(level.player geteye(),var_02 geteye(),0,undefined)] ]]();
wait 0.05;
}
}
//Function Number: 84
set_eq_on()
{
self eqon();
}
//Function Number: 85
set_eq_off()
{
self eqoff();
}
//Function Number: 86
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: 87
script_flag_false_trigger(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: 88
script_flag_true_trigger(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: 89
wait_for_flag(param_00)
{
for(var_01 = 0;var_01 < param_00.size;var_01++)
{
level endon(param_00[var_01]);
}
level waittill("foreverrr");
}
//Function Number: 90
trigger_multiple_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: 91
trigger_multiple_friendly_stop_respawn(param_00)
{
for(;;)
{
param_00 waittill("trigger");
common_scripts\utility::flag_clear("respawn_friendlies");
}
}
//Function Number: 92
trigger_multiple_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");
level.respawn_spawner_org = var_02;
common_scripts\utility::flag_set("respawn_friendlies");
wait 0.5;
}
}
//Function Number: 93
friendly_respawn_clear(param_00)
{
for(;;)
{
param_00 waittill("trigger");
common_scripts\utility::flag_clear("respawn_friendlies");
wait 0.5;
}
}
//Function Number: 94
trigger_multiple_do_radius_damage(param_00)
{
param_00 waittill("trigger");
param_00 do_radius_damage_from_target();
}
//Function Number: 95
do_radius_damage_from_target()
{
var_00 = 80;
if(isdefined(self.radius))
{
var_00 = self.radius;
}
var_01 = maps\_utility::get_all_target_ents();
foreach(var_03 in var_01)
{
radiusdamage(var_03.origin,var_00,5000,5000);
}
self delete();
}
//Function Number: 96
trigger_damage_do_radius_damage(param_00)
{
for(;;)
{
param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07);
if(!isalive(var_02))
{
continue;
}
if(distance(var_02.origin,param_00.origin) > 940)
{
continue;
}
break;
}
param_00 do_radius_damage_from_target();
}
//Function Number: 97
radio_trigger(param_00)
{
param_00 waittill("trigger");
maps\_utility::radio_dialogue(param_00.script_noteworthy);
}
//Function Number: 98
background_block()
{
self.origin = self.origin - self.script_bg_offset;
}
//Function Number: 99
trigger_ignore(param_00)
{
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_ignoreme,::maps\_utility::get_ignoreme);
}
//Function Number: 100
trigger_pacifist(param_00)
{
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_pacifist,::maps\_utility::get_pacifist);
}
//Function Number: 101
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: 102
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: 103
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: 104
set_player_viewhand_model(param_00)
{
level.player_viewhand_model = param_00;
precachemodel(level.player_viewhand_model);
}
//Function Number: 105
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: 106
stun_test()
{
if(getdvar("stuntime") == "")
{
setdvar("stuntime","1");
}
level.player.allowads = 1;
for(;;)
{
self waittill("damage");
if(getdvarint("stuntime") == 0)
{
continue;
}
thread stun_player(self playerads());
}
}
//Function Number: 107
stun_player(param_00)
{
self notify("stun_player");
self endon("stun_player");
if(param_00 > 0.3)
{
if(level.player.allowads == 1)
{
level.player playsound("player_hit_while_ads");
}
level.player.allowads = 0;
level.player allowads(0);
}
level.player setspreadoverride(20);
wait getdvarint("stuntime");
level.player allowads(1);
level.player.allowads = 1;
level.player resetspreadoverride();
}
//Function Number: 108
throw_grenade_at_player_trigger(param_00)
{
param_00 endon("death");
param_00 waittill("trigger");
maps\_utility::throwgrenadeatplayerasap();
}
//Function Number: 109
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: 110
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: 111
trigger_delete_on_touch(param_00)
{
for(;;)
{
param_00 waittill("trigger",var_01);
if(isdefined(var_01))
{
var_01 delete();
}
}
}
//Function Number: 112
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: 113
setobjectivetextcolors()
{
var_00 = "1.0 1.0 1.0";
var_01 = "0.9 0.9 0.9";
var_02 = "0.85 0.85 0.85";
if(level.script == "armada")
{
setsaveddvar("con_typewriterColorBase",var_01);
return;
}
setsaveddvar("con_typewriterColorBase",var_00);
}
//Function Number: 114
ammo_pickup(param_00)
{
var_01 = [];
if(param_00 == "grenade_launcher")
{
}
else if(var_01 == "rpg")
{
}
else if(var_01 == "c4")
{
}
else if(var_01 == "claymore")
{
}
else if(var_01 == "556")
{
}
else if(var_01 == "762")
{
}
else if(var_01 == "45")
{
}
else if(var_01 == "pistol")
{
}
var_02 = spawn("trigger_radius",self.origin,0,25,32);
for(;;)
{
common_scripts\utility::flag_wait("allow_ammo_pickups");
var_02 waittill("alt_m4_grenadier",var_7B[var_01.size],"alt_m4m203_acog",var_7B[var_7B.size],"alt_m4m203_acog_payback",var_7B[var_7B.size],"alt_m4m203_eotech",var_7B[var_7B.size],"alt_m4m203_motion_tracker",var_7B[var_7B.size],"alt_m4m203_reflex",var_7B[var_7B.size],"alt_m4m203_reflex_arctic",var_7B[var_7B.size],"alt_m4m203_silencer",var_7B[var_7B.size],"alt_m4m203_silencer_reflex",var_7B[var_7B.size],"alt_m16_grenadier",var_7B[var_7B.size],"alt_ak47_grenadier",var_7B[var_7B.size],"alt_ak47_desert_grenadier",var_7B[var_7B.size],"alt_ak47_digital_grenadier",var_7B[var_7B.size],"alt_ak47_fall_grenadier",var_7B[var_7B.size],"alt_ak47_woodland_grenadier",var_7B[var_7B.size],"rpg",var_7B[var_7B.size],"rpg_player",var_7B[var_7B.size],"rpg_straight",var_7B[var_7B.size],"c4",var_7B[var_7B.size],"claymore",var_7B[var_7B.size],"m4_grenadier",var_7B[var_7B.size],"m4_grunt",var_7B[var_7B.size],"m4_sd_cloth",var_7B[var_7B.size],"m4_shotgun",var_7B[var_7B.size],"m4_silencer",var_7B[var_7B.size],"m4_silencer_acog",var_7B[var_7B.size],"m4m203_acog",var_7B[var_7B.size],"m4m203_acog_payback",var_7B[var_7B.size],"m4m203_eotech",var_7B[var_7B.size],"m4m203_motion_tracker",var_7B[var_7B.size],"m4m203_reflex",var_7B[var_7B.size],"m4m203_reflex_arctic",var_7B[var_7B.size],"m4m203_silencer",var_7B[var_7B.size],"m4m203_silencer_reflex",var_7B[var_7B.size],"m4m203_silencer",var_7B[var_7B.size],"ak47",var_7B[var_7B.size],"ak47_acog",var_7B[var_7B.size],"ak47_eotech",var_7B[var_7B.size],"ak47_grenadier",var_7B[var_7B.size],"ak47_reflex",var_7B[var_7B.size],"ak47_shotgun",var_7B[var_7B.size],"ak47_silencer",var_7B[var_7B.size],"ak47_thermal",var_7B[var_7B.size],"ak47_desert",var_7B[var_7B.size],"ak47_desert_acog",var_7B[var_7B.size],"ak47_desert_eotech",var_7B[var_7B.size],"ak47_desert_grenadier",var_7B[var_7B.size],"ak47_desert_reflex",var_7B[var_7B.size],"ak47_digital",var_7B[var_7B.size],"ak47_digital_acog",var_7B[var_7B.size],"ak47_digital_eotech",var_7B[var_7B.size],"ak47_digital_grenadier",var_7B[var_7B.size],"ak47_digital_reflex",var_7B[var_7B.size],"ak47_fall",var_7B[var_7B.size],"ak47_fall_acog",var_7B[var_7B.size],"ak47_fall_eotech",var_7B[var_7B.size],"ak47_fall_grenadier",var_7B[var_7B.size],"ak47_fall_reflex",var_7B[var_7B.size],"ak47_woodland",var_7B[var_7B.size],"ak47_woodland_acog",var_7B[var_7B.size],"ak47_woodland_eotech",var_7B[var_7B.size],"ak47_woodland_grenadier",var_7B[var_7B.size],"ak47_woodland_reflex",var_7B[var_7B.size],"ump45",var_7B[var_7B.size],"ump45_acog",var_7B[var_7B.size],"ump45_eotech",var_7B[var_7B.size],"ump45_reflex",var_7B[var_7B.size],"ump45_silencer",var_7B[var_7B.size],"ump45_arctic",var_7B[var_7B.size],"ump45_arctic_acog",var_7B[var_7B.size],"ump45_arctic_eotech",var_7B[var_7B.size],"ump45_arctic_reflex",var_7B[var_7B.size],"ump45_digital",var_7B[var_7B.size],"ump45_digital_acog",var_7B[var_7B.size],"ump45_digital_eotech",var_7B[var_7B.size],"ump45_digital_reflex",var_7B[var_7B.size],"beretta",var_7B[var_7B.size],"beretta393",var_7B[var_7B.size],"usp",var_7B[var_7B.size],"usp_scripted",var_7B[var_7B.size],"usp_silencer",var_7B[var_7B.size],"glock",var_7B[var_7B.size],"trigger",var_03);
if(!common_scripts\utility::flag("allow_ammo_pickups"))
{
continue;
}
if(!isdefined(var_03))
{
continue;
}
if(!isplayer(var_03))
{
continue;
}
var_04 = undefined;
var_05 = undefined;
var_06 = var_03 getweaponslistall();
for(var_07 = 0;var_07 < var_06.size;var_07++)
{
for(var_08 = 0;var_08 < var_7B.size;var_08++)
{
if(var_06[var_07] == var_7B[var_08])
{
var_04 = var_06[var_07];
}
}
}
if(!isdefined(var_04) && var_01 == "claymore")
{
var_05 = 1;
var_04 = "claymore";
break;
}
if(!isdefined(var_04) && var_01 == "c4")
{
var_05 = 1;
var_04 = "c4";
break;
}
if(!isdefined(var_04))
{
continue;
}
if(var_03 getfractionmaxammo(var_04) >= 1)
{
continue;
}
break;
}
if(isdefined(var_05))
{
var_03 giveweapon(var_04);
}
else
{
var_09 = 1;
if(var_01 == "556" || var_01 == "762")
{
var_09 = 30;
}
else if(var_01 == "45")
{
var_09 = 25;
}
else if(var_01 == "pistol")
{
var_09 = 15;
}
var_03 setweaponammostock(var_04,var_03 getweaponammostock(var_04) + var_09);
}
var_03 playlocalsound("grenade_pickup");
var_02 delete();
if(isdefined(self))
{
self delete();
}
}
//Function Number: 115
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: 116
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: 117
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: 118
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.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_opacity = var_03.maxopacity;
param_00.sunfog_enabled = isdefined(var_03.sunred) || isdefined(var_04.sunred);
if(isdefined(var_03.sunred))
{
param_00.start_suncolor = (var_03.sunred,var_03.sungreen,var_03.sunblue);
param_00.start_sundir = var_03.sundir;
param_00.start_sunbeginfadeangle = var_03.sunbeginfadeangle;
param_00.start_sunendfadeangle = var_03.var_1AF5;
param_00.start_sunfogscale = var_03.normalfogscale;
}
else if(param_00.sunfog_enabled)
{
param_00.start_suncolor = param_00.start_color;
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_03.red,var_03.green,var_03.blue);
param_00.end_opacity = var_04.maxopacity;
if(isdefined(var_04.sunred))
{
param_00.end_suncolor = (var_04.sunred,var_04.sungreen,var_04.sunblue);
param_00.end_sundir = var_04.sundir;
param_00.end_sunbeginfadeangle = var_04.sunbeginfadeangle;
param_00.end_sunendfadeangle = var_04.var_1AF5;
param_00.end_sunfogscale = var_04.normalfogscale;
}
else if(param_00.sunfog_enabled)
{
param_00.end_suncolor = param_00.end_color;
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 set_fog_progress(var_0B);
wait 0.05;
}
if(var_0B > 0.5)
{
var_0B = 1;
}
else
{
var_0B = 0;
}
param_00 set_fog_progress(var_0B);
}
}
//Function Number: 119
set_fog_progress(param_00)
{
var_01 = 1 - param_00;
var_02 = self.start_neardist * var_01 + self.end_neardist * param_00;
var_03 = self.start_fardist * var_01 + self.end_fardist * param_00;
var_04 = self.start_color * var_01 + self.end_color * param_00;
var_05 = self.start_opacity;
var_06 = self.end_opacity;
if(!isdefined(var_05))
{
var_05 = 1;
}
if(!isdefined(var_06))
{
var_06 = 1;
}
var_07 = var_05 * var_01 + var_06 * param_00;
if(self.sunfog_enabled)
{
var_08 = self.start_suncolor * var_01 + self.end_suncolor * param_00;
var_09 = self.start_sundir * var_01 + self.end_sundir * param_00;
var_0A = self.start_sunbeginfadeangle * var_01 + self.end_sunbeginfadeangle * param_00;
var_0B = self.start_sunendfadeangle * var_01 + self.end_sunendfadeangle * param_00;
var_0C = self.start_sunfogscale * var_01 + self.end_sunfogscale * param_00;
setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_07,0.4,var_08[0],var_08[1],var_08[2],var_09,var_0A,var_0B,var_0C);
return;
}
setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_07,0.4);
}
//Function Number: 120
remove_level_first_frame()
{
wait 0.05;
level.first_frame = -1;
}
//Function Number: 121
no_crouch_or_prone_think(param_00)
{
common_scripts\utility::array_thread(level.players,::no_crouch_or_prone_think_for_player,param_00);
}
//Function Number: 122
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: 123
no_prone_think(param_00)
{
common_scripts\utility::array_thread(level.players,::no_prone_think_for_player,param_00);
}
//Function Number: 124
no_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);
wait 0.05;
}
var_01 allowprone(1);
}
}
//Function Number: 125
load_friendlies()
{
if(isdefined(game["total characters"]))
{
var_00 = game["total characters"];
}
else
{
return;
}
var_01 = getaiarray("allies");
var_02 = var_01.size;
var_03 = 0;
var_04 = getspawnerteamarray("allies");
var_05 = var_04.size;
var_06 = 0;
for(;;)
{
if((var_02 <= 0 && var_05 <= 0) || var_00 <= 0)
{
return;
}
if(var_02 > 0)
{
if(isdefined(var_01[var_03].script_friendname))
{
var_02--;
var_03++;
continue;
}
var_01[var_03] lib_0144::func_1E5D();
var_01[var_03] thread lib_0144::func_1E62(game["character" + var_00 - 1]);
var_02--;
var_03++;
var_00--;
continue;
}
if(var_05 > 0)
{
if(isdefined(var_04[var_06].script_friendname))
{
var_05--;
var_06++;
continue;
}
var_07 = game["character" + var_00 - 1];
maps\_utility::precache(var_07["model"]);
maps\_utility::precache(var_07["model"]);
var_04[var_06] thread maps\_utility::spawn_setcharacter(game["character" + var_00 - 1]);
var_05--;
var_06++;
var_00--;
continue;
}
}
}
//Function Number: 126
check_flag_for_stat_tracking(param_00)
{
if(!common_scripts\utility::issuffix(param_00,"aa_"))
{
return;
}
[[ level.sp_stat_tracking_func ]](param_00);
}
//Function Number: 127
precache_script_models()
{
waittillframeend;
if(!isdefined(level.scr_model))
{
return;
}
var_00 = getarraykeys(level.scr_model);
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
if(isarray(level.scr_model[var_00[var_01]]))
{
for(var_02 = 0;var_02 < level.scr_model[var_00[var_01]].size;var_02++)
{
precachemodel(level.scr_model[var_00[var_01]][var_02]);
}
continue;
}
precachemodel(level.scr_model[var_00[var_01]]);
}
}
//Function Number: 128
arcademode_save()
{
var_00 = [];
if(var_7B[level.script])
{
return;
}
wait 2.5;
var_01 = "levelshots / autosave / autosave_" + level.script + "start";
savegame("levelstart",&"AUTOSAVE_LEVELSTART",var_01,1);
}
//Function Number: 129
player_death_detection()
{
setdvar("player_died_recently","0");
thread player_died_recently_degrades();
level maps\_utility::add_wait(::common_scripts\utility::flag_wait,"missionfailed");
level.player maps\_utility::add_wait(::maps\_utility::waittill_msg,"death");
maps\_utility::do_wait_any();
var_00 = [];
setdvar("player_died_recently",var_7B[level.gameskill]);
}
//Function Number: 130
player_died_recently_degrades()
{
for(;;)
{
var_00 = getdvarint("player_died_recently",0);
if(var_00 > 0)
{
var_00 = var_00 - 5;
setdvar("player_died_recently",var_00);
}
wait 5;
}
}
//Function Number: 131
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: 132
recon_player()
{
self notify("new_recon_player");
self endon("new_recon_player");
self waittill("death",var_00,var_01,var_02);
if(!isdefined(var_02))
{
var_02 = "script_kill";
}
var_03 = 0;
var_04 = "none";
var_05 = (0,0,0);
if(isdefined(var_00))
{
var_04 = var_00.classname;
var_05 = var_00.origin;
var_06 = vectornormalize(var_05 - self.origin);
var_07 = anglestoforward(self getplayerangles());
var_03 = vectordot(var_06,var_07);
}
reconspatialevent(self.origin,"script_player_death: playerid %s, enemy %s, enemyposition %v, enemydotproduct %f, cause %s, weapon %s",self.unique_id,var_04,var_05,var_03,var_01,var_02);
if(isdefined(var_00))
{
reconspatialevent(var_00.origin,"script_player_killer: playerid %s, enemy %s, playerposition %v, enemydotproduct %f, cause %s, weapon %s",self.unique_id,var_04,self.origin,var_03,var_01,var_02);
}
}
//Function Number: 133
recon_player_downed()
{
self notify("new_player_downed_recon");
self endon("new_player_downed_recon");
self endon("death");
for(;;)
{
self waittill("player_downed");
var_00 = getlevelticks() * 0.05;
var_01 = var_00;
if(isdefined(self.last_downed_time))
{
var_00 = var_01 - self.last_downed_time;
}
self.last_downed_time = var_01;
reconspatialevent(self.origin,"script_player_downed: playerid %s, leveltime %d, deltatime %d",self.unique_id,var_01,var_00);
}
}
//Function Number: 134
init_level_players()
{
level.players = getentarray("player","classname");
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
level.players[var_00].unique_id = "player" + var_00;
}
level.player = level.players[0];
if(level.players.size > 1)
{
level.player2 = level.players[1];
}
level notify("level.players initialized");
foreach(var_02 in level.players)
{
var_02 thread recon_player();
if(maps\_utility::is_specialop())
{
var_02 thread recon_player_downed();
}
}
}
//Function Number: 135
kill_all_players_trigger()
{
self waittill("trigger",var_00);
maps\_utility::kill_wrapper();
}
//Function Number: 136
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::spawn_vehicle_and_attach_to_spline_path(70);
wait 0.05;
}
}
//Function Number: 137
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: 138
trigger_dooropen(param_00)
{
param_00 waittill("trigger");
var_01 = getentarray(param_00.target,"targetname");
var_02 = [];
foreach(var_04 in var_02)
{
var_05 = var_7B[var_04.script_noteworthy];
var_04 connectpaths();
var_04 rotateyaw(var_05,1,0,0.5);
}
}
//Function Number: 139
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: 140
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\_utility::add_spawn_function,::vehicle_spawns_targets_and_rides);
common_scripts\utility::array_thread(var_01,::maps\_utility::spawn_vehicle);
}
//Function Number: 141
vehicle_spawns_targets_and_rides()
{
var_00 = getentarray(self.target,"targetname");
var_01 = [];
foreach(var_03 in var_00)
{
if(var_03.code_classname == "info_vehicle_node")
{
continue;
}
var_01[var_01.size] = var_03;
}
var_01 = maps\_utility::get_array_of_closest(self.origin,var_01);
foreach(var_07, var_06 in var_01)
{
var_06 thread maps\_utility::add_spawn_function(::guy_spawns_and_gets_in_vehicle,self,var_07);
}
common_scripts\utility::array_thread(var_01,::maps\_utility::spawn_ai);
self waittill("guy_entered");
wait 3;
thread maps\_vehicle::vehicle_becomes_crashable();
if(!self.riders.size)
{
return;
}
maps\_vehicle::gopath();
maps\_vehicle::leave_path_for_spline_path();
}
//Function Number: 142
guy_spawns_and_gets_in_vehicle(param_00,param_01)
{
maps\_vehicle::mount_snowmobile(param_00,param_01);
}
//Function Number: 143
watchweaponchange()
{
if(!isdefined(level.friendly_thermal_reflector_effect))
{
level.friendly_thermal_reflector_effect = loadfx("misc/thermal_tapereflect_inverted");
}
self endon("death");
var_00 = self getcurrentweapon();
if(weap_has_thermal(var_00))
{
thread thermal_tracker();
}
for(;;)
{
self waittill("weapon_change",var_01);
if(weap_has_thermal(var_01))
{
thread thermal_tracker();
continue;
}
self notify("acogThermalTracker");
}
}
//Function Number: 144
weap_has_thermal(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 == "none")
{
return 0;
}
if(weaponhasthermalscope(param_00))
{
return 1;
}
return 0;
}
//Function Number: 145
thermal_tracker()
{
self endon("death");
self notify("acogThermalTracker");
self endon("acogThermalTracker");
var_00 = 0;
for(;;)
{
var_01 = var_00;
var_00 = self playerads();
if(turn_thermal_on(var_00,var_01))
{
thermal_effectson();
}
else if(turn_thermal_off(var_00,var_01))
{
thermal_effectsoff();
}
wait 0.05;
}
}
//Function Number: 146
turn_thermal_on(param_00,param_01)
{
if(param_00 <= param_01)
{
return 0;
}
if(param_00 <= 0.65)
{
return 0;
}
return !isdefined(self.is_in_thermal_vision);
}
//Function Number: 147
turn_thermal_off(param_00,param_01)
{
if(param_00 >= param_01)
{
return 0;
}
if(param_00 >= 0.8)
{
return 0;
}
return isdefined(self.is_in_thermal_vision);
}
//Function Number: 148
thermal_effectson()
{
self.is_in_thermal_vision = 1;
var_00 = getaiarray("allies");
foreach(var_02 in var_00)
{
if(isdefined(var_02.has_thermal_fx))
{
continue;
}
var_02.has_thermal_fx = 1;
var_02 thread loop_friendly_thermal_reflector_effect(self.unique_id);
}
if(maps\_utility::is_coop())
{
var_04 = maps\_utility::get_other_player(self);
if(!isdefined(var_04.has_thermal_fx))
{
var_04.has_thermal_fx = 1;
var_04 thread loop_friendly_thermal_reflector_effect(self.unique_id,self);
}
}
}
//Function Number: 149
thermal_effectsoff()
{
self.is_in_thermal_vision = undefined;
level notify("thermal_fx_off" + self.unique_id);
var_00 = getaiarray("allies");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
var_00[var_01].has_thermal_fx = undefined;
}
if(maps\_utility::is_coop())
{
var_02 = maps\_utility::get_other_player(self);
var_02.has_thermal_fx = undefined;
}
}
//Function Number: 150
loop_friendly_thermal_reflector_effect(param_00,param_01)
{
if(isdefined(self.has_no_ir))
{
return;
}
level endon("thermal_fx_off" + param_00);
self endon("death");
for(;;)
{
if(isdefined(param_01))
{
playfxontagforclients(level.friendly_thermal_reflector_effect,self,"J_Spine4",param_01);
}
else
{
playfxontag(level.friendly_thermal_reflector_effect,self,"J_Spine4");
}
wait 0.2;
}
}
//Function Number: 151
claymore_pickup_think_global()
{
precacheitem("claymore");
self endon("deleted");
self setcursorhint("HINT_NOICON");
self sethintstring(&"WEAPON_CLAYMORE_PICKUP");
self makeusable();
var_00 = weaponmaxammo("claymore") + weaponclipsize("claymore");
if(isdefined(self.script_ammo_clip))
{
var_00 = self.script_ammo_clip;
}
while(var_00 > 0)
{
self waittill("trigger",var_01);
var_01 playsound("weap_pickup");
var_02 = 0;
if(!var_01 hasweapon("claymore"))
{
var_01 giveweapon("claymore");
}
else
{
var_02 = var_01 getammocount("claymore");
}
if(isdefined(var_00) && var_00 > 0)
{
var_00 = var_02 + var_00;
var_03 = weaponmaxammo("claymore");
var_04 = weaponclipsize("claymore");
if(var_00 >= var_04)
{
var_00 = var_00 - var_04;
var_01 setweaponammoclip("claymore",var_04);
}
if(var_00 >= var_03)
{
var_00 = var_00 - var_03;
var_01 setweaponammostock("claymore",var_03);
}
else if(var_00 > 0)
{
var_01 setweaponammostock("claymore",var_00);
var_00 = 0;
}
}
else
{
var_01 givemaxammo("claymore");
}
var_05 = 4;
if(isdefined(var_01.remotemissile_actionslot) && var_01.remotemissile_actionslot == 4)
{
var_05 = 2;
}
var_01 setactionslot(var_05,"weapon","claymore");
var_01 switchtoweapon("claymore");
}
if(isdefined(self.target))
{
var_06 = getentarray(self.target,"targetname");
foreach(var_08 in var_06)
{
var_08 delete();
}
}
self makeunusable();
self delete();
}
//Function Number: 152
ammo_cache_think_global()
{
self.use_trigger = spawn("script_model",self.origin + (0,0,28));
self.use_trigger setmodel("tag_origin");
self.use_trigger makeusable();
self.use_trigger setcursorhint("HINT_NOICON");
self.use_trigger sethintstring(&"WEAPON_CACHE_USE_HINT");
thread ammo_icon_think();
for(;;)
{
self.use_trigger waittill("trigger",var_00);
self.use_trigger makeunusable();
var_00 playsound("player_refill_all_ammo");
var_00 disableweapons();
var_01 = var_00 getweaponslistall();
foreach(var_03 in var_01)
{
if(var_03 == "claymore")
{
continue;
}
if(var_03 == "c4")
{
continue;
}
var_00 givemaxammo(var_03);
var_04 = weaponclipsize(var_03);
if(isdefined(var_04))
{
if(var_00 getweaponammoclip(var_03) < var_04)
{
var_00 setweaponammoclip(var_03,var_04);
}
}
}
wait 1.5;
var_00 enableweapons();
self.use_trigger makeusable();
}
}
//Function Number: 153
ammo_icon_think()
{
var_00 = spawn("trigger_radius",self.origin,0,320,72);
var_01 = newhudelem();
var_01 setshader("waypoint_ammo",1,1);
var_01.alpha = 0;
var_01.color = (1,1,1);
var_01.x = self.origin[0];
var_01.y = self.origin[1];
var_01.z = self.origin[2] + 16;
var_01 setwaypoint(1,1);
self.ammo_icon = var_01;
self.ammo_icon_trig = var_00;
if(isdefined(self.icon_always_show) && self.icon_always_show)
{
ammo_icon_fade_in(var_01);
return;
}
wait 0.05;
for(;;)
{
var_00 waittill("trigger",var_02);
if(!isplayer(var_02))
{
continue;
}
while(var_02 istouching(var_00))
{
var_03 = 1;
var_04 = var_02 getcurrentweapon();
if(var_04 == "none")
{
var_03 = 0;
}
else if(var_02 getfractionmaxammo(var_04) > 0.9)
{
var_03 = 0;
}
if(maps\_utility::player_looking_at(self.origin,0.8,1) && var_03)
{
ammo_icon_fade_in(var_01);
continue;
}
ammo_icon_fade_out(var_01);
wait 0.25;
}
ammo_icon_fade_out(var_01);
}
}
//Function Number: 154
ammo_icon_fade_in(param_00)
{
if(param_00.alpha != 0)
{
return;
}
param_00 fadeovertime(0.2);
param_00.alpha = 0.3;
wait 0.2;
}
//Function Number: 155
ammo_icon_fade_out(param_00)
{
if(param_00.alpha == 0)
{
return;
}
param_00 fadeovertime(0.2);
param_00.alpha = 0;
wait 0.2;
}
//Function Number: 156
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: 157
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.maxopacity = var_01.maxopacity - var_00.maxopacity;
var_02.sunfogenabled = isdefined(var_00.sunfogenabled) || isdefined(var_01.sunfogenabled);
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.var_1AF5))
{
var_0D = var_00.var_1AF5;
}
var_0E = 0;
if(isdefined(var_01.var_1AF5))
{
var_0E = var_01.var_1AF5;
}
var_02.sunendfadeangle_start = var_0D;
var_02.var_1AF5 = 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: 158
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.maxopacity = var_02.maxopacity + var_04.maxopacity * 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.sundir = var_04.sundir_start + var_04.sundir * param_01;
var_05.sunbeginfadeangle = var_04.sunbeginfadeangle_start + var_04.sunbeginfadeangle * param_01;
var_05.var_1AF5 = var_04.sunendfadeangle_start + var_04.var_1AF5 * param_01;
var_05.normalfogscale = var_04.normalfogscale_start + var_04.normalfogscale * param_01;
}
maps\_utility::set_fog_to_ent_values(var_05,0.05);
}
//Function Number: 159
window_destroy()
{
var_00 = getglass(self.target);
if(!isdefined(var_00))
{
return;
}
level waittillmatch(var_00,"glass_destroyed");
self delete();
}
//Function Number: 160
global_empty_callback(param_00,param_01,param_02,param_03,param_04)
{
}
//Function Number: 161
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: 162
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: 163
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");
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: 164
trigger_multiple_fx_trigger_on_think(param_00)
{
for(;;)
{
self waittill("trigger");
common_scripts\utility::array_thread(param_00.fx,::maps\_utility::restarteffect);
wait 1;
}
}
//Function Number: 165
trigger_multiple_fx_trigger_off_think(param_00)
{
wait 1;
common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect);
for(;;)
{
self waittill("trigger");
common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect);
wait 1;
}
}
//Function Number: 166
weapon_list_debug()
{
common_scripts\utility::create_dvar("weaponlist","0");
if(!getdvarint("weaponlist"))
{
return;
}
var_00 = getentarray();
var_01 = [];
foreach(var_03 in var_00)
{
if(!isdefined(var_03.code_classname))
{
continue;
}
if(issubstr(var_03.code_classname,"weapon"))
{
var_01[var_03.classname] = 1;
}
}
foreach(var_06 in var_01)
{
}
var_08 = getspawnerarray();
var_09 = [];
foreach(var_0B in var_08)
{
var_09[var_0B.code_classname] = 1;
}
foreach(var_06 in var_09)
{
}
}
//Function Number: 167
slowmo_system_init()
{
level.slowmo = spawnstruct();
slowmo_system_defaults();
notifyoncommand("_cheat_player_press_slowmo","+melee");
notifyoncommand("_cheat_player_press_slowmo","+melee_breath");
notifyoncommand("_cheat_player_press_slowmo","+melee_zoom");
}
//Function Number: 168
slowmo_system_defaults()
{
level.slowmo.lerp_time_in = 0;
level.slowmo.lerp_time_out = 0.25;
level.slowmo.speed_slow = 0.4;
level.slowmo.speed_norm = 1;
}
//Function Number: 169
add_no_game_starts()
{
var_00 = getentarray("script_origin_start_nogame","classname");
if(!var_00.size)
{
return;
}
foreach(var_02 in var_00)
{
if(!isdefined(var_02.script_startname))
{
continue;
}
maps\_utility::add_start("no_game_" + var_02.script_startname,::start_nogame);
}
}
//Function Number: 170
do_no_game_start()
{
if(!maps\_utility::is_no_game_start())
{
return;
}
setsaveddvar("ufoHitsTriggers","1");
level.stop_load = 1;
if(isdefined(level.custom_no_game_setupfunc))
{
level [[ level.custom_no_game_setupfunc ]]();
}
maps\_loadout::init_loadout();
thread maps\_audio::aud_init();
maps\_global_fx::main();
do_no_game_start_teleport();
common_scripts\utility::array_call(getentarray("truckjunk","targetname"),::delete);
common_scripts\utility::array_call(getentarray("truckjunk","script_noteworthy"),::delete);
level waittill("eternity");
}
//Function Number: 171
do_no_game_start_teleport()
{
var_00 = getentarray("script_origin_start_nogame","classname");
if(!var_00.size)
{
return;
}
var_00 = sortbydistance(var_00,level.player.origin);
if(level.start_point == "no_game")
{
level.player maps\_utility::teleport_player(var_00[0]);
return;
}
var_01 = getsubstr(level.start_point,8);
var_02 = 0;
foreach(var_04 in var_00)
{
if(!isdefined(var_04.script_startname))
{
continue;
}
if(var_01 != var_04.script_startname)
{
continue;
}
if(isdefined(var_04.script_visionset))
{
maps\_utility::vision_set_fog_changes(var_04.script_visionset,0);
}
level.player maps\_utility::teleport_player(var_04);
var_02 = 1;
break;
}
if(!var_02)
{
level.player maps\_utility::teleport_player(var_00[0]);
}
}