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

1843 lines
65 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: _cloak.gsc
* Game: Call of Duty: Advanced Warfare
* Platform: PC
* Function Count: 58
* Decompile Time: 1004 ms
* Timestamp: 4/22/2024 2:20:16 AM
*******************************************************************/
//Function Number: 1
main()
{
precachestring(&"cloaking_hud_update");
precacheshader("overlay_hunted_black");
precacheshader("overlay_static");
precacheshader("cinematic");
precacheshader("qr_noise");
precacheshader("dpad_icon_cloak");
precacheshader("dpad_icon_cloak_off");
precacheshader("nightvision_overlay_goggles");
precachemodel("viewhands_s1_pmc_cloak");
precachemodel("viewhands_player_sentinel_cloak");
if(isdefined(0) && 0)
{
precacheshader("hud_temperature_gauge");
}
level._cloaked_stealth_settings = spawnstruct();
level._cloaked_stealth_settings.cloak_on = 0;
level._cloaked_stealth_settings.visibility_range_version = 1;
init_cloaked_stealth_settings();
init_player_cloak_state();
init_cloak_view_model_anims();
maps\_utility::add_global_spawn_function("allies",::allies_check_cloak_state);
maps\_utility::add_global_spawn_function("allies",::clear_stencil_on_death);
thread cloak_hud();
do_player_cloak_update_threads();
if(isdefined(0) && 0)
{
thread temp_cloak_gauge();
}
createthreatbiasgroup("cloak_friendly_npcs");
createthreatbiasgroup("cloak_enemy_npcs");
setignoremegroup("cloak_friendly_npcs","cloak_enemy_npcs");
common_scripts\utility::flag_init("flag_player_cloak_enabled");
common_scripts\utility::flag_set("_cloaked_stealth_enabled");
maps\_stealth_utility::stealth_set_default_stealth_function("cloak_enemy_relaxed",::maps\_cloak_enemy_behavior::cloak_enemy_default_setup);
setomnvar("ui_cloak",1);
setomnvar("ui_meterhud_enable",1);
setomnvar("ui_meterhud_ar_and_2d",1);
}
//Function Number: 2
init_cloak_view_model_anims()
{
level.scr_animtree["cloak_view_model"] = #animtree;
level.scr_model["cloak_view_model"] = "viewhands_player_sentinel_cloak";
level.scr_anim["cloak_view_model"]["cloak_on"] = %vm_turn_on_cloak;
maps\_anim::addnotetrack_customfunction("cloak_view_model","cloak_on",::_cloak_toggle_internal,"cloak_on");
}
//Function Number: 3
allies_check_cloak_state()
{
if(level._cloaked_stealth_settings.cloak_on == 1)
{
setalertstencilstate();
}
}
//Function Number: 4
axis_check_cloak_state()
{
if(level._cloaked_stealth_settings.cloak_on == 1)
{
setalertstencilstate_axis();
}
}
//Function Number: 5
clear_stencil_on_death()
{
self waittill("death");
clearstencilstateondeath();
}
//Function Number: 6
cloaked_stealth_enable_lab_hud_cinematic()
{
level._cloaked_stealth_settings.playing_lab_cinematic = 1;
}
//Function Number: 7
cloaked_stealth_disable_lab_hud_cinematic()
{
level._cloaked_stealth_settings.playing_lab_cinematic = 0;
}
//Function Number: 8
cloaked_stealth_enable_battery_hud()
{
level._cloaked_stealth_settings.battery_hud_is_visible = 1;
}
//Function Number: 9
cloaked_stealth_disable_battery_hud()
{
level._cloaked_stealth_settings.battery_hud_is_visible = 0;
}
//Function Number: 10
cloaked_stealth_player_setup(param_00)
{
if(isdefined(param_00) && param_00)
{
common_scripts\utility::flag_set("flag_player_cloak_enabled");
}
maps\_stealth_utility::stealth_default();
}
//Function Number: 11
init_player_cloak_overlay()
{
level.cloak_overlay = newhudelem();
level.cloak_overlay.x = 0;
level.cloak_overlay.y = 0;
level.cloak_overlay.alignx = "left";
level.cloak_overlay.aligny = "top";
level.cloak_overlay.horzalign = "fullscreen";
level.cloak_overlay.vertalign = "fullscreen";
level.cloak_overlay.color = (1,0,0);
level.cloak_overlay setshader("overlay_static",640,480);
level.cloak_overlay.alpha = 0;
}
//Function Number: 12
_cloak_toggle_internal(param_00)
{
if(level._cloaked_stealth_settings.cloak_on == 1)
{
turn_off_the_cloak_effect();
level._cloaked_stealth_settings.penalty_timer = 1;
return;
}
turn_on_the_cloak_effect();
}
//Function Number: 13
_play_view_model_cloak_toggle_anim()
{
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 1;
level.player disableweapons();
level.player waittill("weapon_change");
var_00 = maps\_utility::spawn_anim_model("cloak_view_model");
level._cloaked_stealth_settings.player_rig = var_00;
var_00 linktoplayerview(level.player,"tag_origin",(0,0,0),(0,0,0),1);
var_00 drawpostresolve();
if(level._cloaked_stealth_settings.cloak_on == 1)
{
var_00 setmaterialscriptparam(0,0);
}
else
{
var_00 setmaterialscriptparam(1,0);
}
soundscripts\_snd::snd_message("exo_cloak_button_press");
level.player maps\_anim::anim_single_solo(var_00,"cloak_on");
level.player enableweapons();
var_00 unlink();
level._cloaked_stealth_settings.player_rig = undefined;
var_00 delete();
if(level._cloaked_stealth_settings.cloak_on == 0)
{
level.player overrideviewmodelmaterialreset();
}
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 0;
}
//Function Number: 14
set_cloak_material_for_vm_weapon()
{
if(level.player getcurrentweapon() != "iw5_unarmed")
{
level.player overrideviewmodelmaterialreset();
if(issubstr(level.player getcurrentweapon(),"iw5_ak12_sp"))
{
level.player overrideviewmodelmaterial("mtl_ak12_base_nocamo","mtl_ak12_base_nocamo_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_arx160_sp"))
{
level.player overrideviewmodelmaterial("mtl_arx160_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_arx160_iron_sights_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_arx160_strap_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_asm1_sp"))
{
level.player overrideviewmodelmaterial("mtl_asm1_base_nocamo","mtl_asm1_base_nocamo_cloak");
level.player overrideviewmodelmaterial("mtl_asm1_magazine_02_base","mtl_asm1_magazine_02_base_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_bal27_sp"))
{
level.player overrideviewmodelmaterial("_base_black","mtl_bal27_base_black_cloak");
level.player overrideviewmodelmaterial("mtl_bal27_screen_a_green","cloak_generic");
level.player overrideviewmodelmaterial("mtl_bal27_magazine_out","cloak_generic");
level.player overrideviewmodelmaterial("mtl_bal27_magazine_inside","cloak_generic");
level.player overrideviewmodelmaterial("mtl_bal27_iron_sights","mtl_bal27_base_black_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_em1_sp"))
{
level.player overrideviewmodelmaterial("mtl_em1_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_en_base_damage","cloak_generic");
level.player overrideviewmodelmaterial("mtl_em1_iron_sights_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_gm6_sp"))
{
level.player overrideviewmodelmaterial("mtl_gm6_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_gm6_scope_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_gm6_sight_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_hbra3_sp"))
{
level.player overrideviewmodelmaterial("mtl_hbra3_base_nocamo","mtl_hbra3_base_nocamo_cloak");
level.player overrideviewmodelmaterial("mtl_hbra3_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hbra3_sight","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hbra3_screen","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_himar_sp"))
{
level.player overrideviewmodelmaterial("mtl_himar_base","mtl_himar_base_cloak");
level.player overrideviewmodelmaterial("mtl_himar_glass_base","mtl_himar_glass_base_cloak");
level.player overrideviewmodelmaterial("mtl_ar_base_handling_01","mtl_ar_base_handling_01_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_hmr9_sp"))
{
level.player overrideviewmodelmaterial("mtl_hmr9_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hmr9_bungee_chord","cloak_generic");
level.player overrideviewmodelmaterial("mtl_mag_dual_clip_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hmr9_ironsights_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hmr9_screen","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hmr9_text_decals","cloak_generic");
level.player overrideviewmodelmaterial("mtl_hmr9_stock_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_kf5_sp"))
{
level.player overrideviewmodelmaterial("mtl_kf5_base","mtl_kf5_base_nocamo_cloak");
level.player overrideviewmodelmaterial("mtl_kf5_iron_sights_base","mtl_kf5_iron_sights_base_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_lsat_sp"))
{
level.player overrideviewmodelmaterial("mtl_lsat_base","mtl_lsat_base_cloak");
level.player overrideviewmodelmaterial("mtl_lsat_iron_sights_base","mtl_lsat_iron_sights_base_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_m990_sp"))
{
level.player overrideviewmodelmaterial("mtl_m990_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_m990_scope","cloak_generic");
level.player overrideviewmodelmaterial("mtl_m990_sight","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_maaws_sp"))
{
level.player overrideviewmodelmaterial("mtl_maaws_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_maaws_missile_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_maul_sp"))
{
level.player overrideviewmodelmaterial("mtl_maul_base_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_mdl_sp"))
{
level.player overrideviewmodelmaterial("mtl_mdl_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_mdl_optic","cloak_generic");
level.player overrideviewmodelmaterial("mtl_mdl_optic_glass","mtl_mdl_optic_glass");
level.player overrideviewmodelmaterial("mtl_mdl_optic_glow","mtl_mdl_optic_glow");
}
if(issubstr(level.player getcurrentweapon(),"iw5_mk14_sp"))
{
level.player overrideviewmodelmaterial("mtl_mk14_ebr_base_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_mors_sp"))
{
level.player overrideviewmodelmaterial("mtl_mors_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_mors_scope","cloak_generic");
level.player overrideviewmodelmaterial("mtl_mors_sights","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_mp11_sp"))
{
level.player overrideviewmodelmaterial("mtl_cbj_ms_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_mp443_sp"))
{
level.player overrideviewmodelmaterial("mtl_mp443_base_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_rhino_sp"))
{
level.player overrideviewmodelmaterial("mtl_rhino_base_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_rw1_sp"))
{
level.player overrideviewmodelmaterial("mtl_rw1_main_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_rw1_scope_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_sac3_sp"))
{
level.player overrideviewmodelmaterial("mtl_sac3_base","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_sn6_sp"))
{
level.player overrideviewmodelmaterial("mtl_sn6_base_black","mtl_sn6_base_black_nocamo_cloak");
level.player overrideviewmodelmaterial("mtl_sn6_iron_sights_black","mtl_sn6_iron_sights_black_nocamo_cloak");
}
if(issubstr(level.player getcurrentweapon(),"iw5_stinger_sp"))
{
level.player overrideviewmodelmaterial("mtl_npc_stingerm7_base_black_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_base_bottom_black_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_base_top_black_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_missile_01","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_screens_green","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_iron_sight_black","cloak_generic");
level.player overrideviewmodelmaterial("mtl_stingerm7_glass","mtl_stingerm7_glass");
}
if(issubstr(level.player getcurrentweapon(),"iw5_thor_sp"))
{
level.player overrideviewmodelmaterial("mtl_thor_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_thor_scope_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_thor_scope_lens","mtl_thor_scope_lens");
}
if(issubstr(level.player getcurrentweapon(),"iw5_titan45_sp"))
{
level.player overrideviewmodelmaterial("mtl_titan45_base_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_uts19_sp"))
{
level.player overrideviewmodelmaterial("mtl_uts_19_add_on_nocamo","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"iw5_vbr_sp"))
{
level.player overrideviewmodelmaterial("mtl_vbr_base_nocamo","cloak_generic");
level.player overrideviewmodelmaterial("mtl_vbr_siderail","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"opticsacog2"))
{
level.player overrideviewmodelmaterial("mtl_acog2_base","mtl_acog2_base_cloak");
level.player overrideviewmodelmaterial("mtl_mors_lens","mtl_mors_lens_cloak");
}
if(issubstr(level.player getcurrentweapon(),"himarscope"))
{
level.player overrideviewmodelmaterial("mtl_himar_computer_base","mtl_himar_computer_base_cloak");
level.player overrideviewmodelmaterial("mtl_himar_reddot_body","mtl_himar_reddot_body_cloak");
}
if(issubstr(level.player getcurrentweapon(),"opticsreddot"))
{
level.player overrideviewmodelmaterial("mtl_weapon_reddot_body","cloak_generic");
level.player overrideviewmodelmaterial("mtl_weapon_reddot_lens","mtl_weapon_reddot_lens");
level.player overrideviewmodelmaterial("mtl_optics_red_dot_small","mtl_optics_red_dot_small");
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
}
if(issubstr(level.player getcurrentweapon(),"silencer01") || issubstr(level.player getcurrentweapon(),"silencerpistol"))
{
level.player overrideviewmodelmaterial("mtl_weapon_silencer_01","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"opticstargetenhancer"))
{
level.player overrideviewmodelmaterial("mtl_optics_target_enhancer_body","mtl_optics_target_enhancer_body_cloak");
}
if(issubstr(level.player getcurrentweapon(),"variablereddot"))
{
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot","mtl_optics_variable_red_dot_cloak");
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_square","mtl_optics_variable_red_dot_square");
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_glass02","mtl_optics_variable_red_dot_glass02_nodraw");
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_reticle","mtl_optics_variable_red_dot_reticle");
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_cross_reticle","mtl_optics_variable_red_dot_cross_reticle");
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_small","mtl_optics_variable_red_dot_small");
}
if(issubstr(level.player getcurrentweapon(),"directhack"))
{
level.player overrideviewmodelmaterial("mtl_directhack","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"foregrip"))
{
level.player overrideviewmodelmaterial("mtl_foregrip","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"parabolicmicrophone"))
{
level.player overrideviewmodelmaterial("mtl_mic_parabolic","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"detech"))
{
level.player overrideviewmodelmaterial("mtl_optics_de_tech","cloak_generic");
level.player overrideviewmodelmaterial("mtl_optics_de_tech_led","mtl_optics_de_tech_led");
level.player overrideviewmodelmaterial("mtl_optics_de_tech_lens","mtl_optics_de_tech_lens");
level.player overrideviewmodelmaterial("mtl_optics_de_tech_reticle_base","mtl_optics_de_tech_reticle_base");
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
}
if(issubstr(level.player getcurrentweapon(),"lasersight"))
{
level.player overrideviewmodelmaterial("mtl_weapon_lasersight_01","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"ironsights"))
{
level.player overrideviewmodelmaterial("_iron_sights_black","cloak_generic");
level.player overrideviewmodelmaterial("_iron_sights_color","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"opticseotech"))
{
level.player overrideviewmodelmaterial("mtl_weapon_eotech_body","mtl_weapon_eotech_body_cloak");
level.player overrideviewmodelmaterial("mtl_weapon_eotech_lense","mtl_weapon_eotech_lense_nodraw");
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
}
if(issubstr(level.player getcurrentweapon(),"opticsthermal"))
{
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_iw5","cloak_generic");
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_iw5_lens","cloak_generic");
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_scanlines","mtl_weapon_thermal_scope_scanlines");
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_screen","mtl_weapon_thermal_scope_screen");
level.player overrideviewmodelmaterial("scope_overlay_m14_night","scope_overlay_m14_night");
level.player overrideviewmodelmaterial("scope_overlay_m14_night_low_res","scope_overlay_m14_night_low_res");
level.player overrideviewmodelmaterial("scope_overlay_m14_night_emp","scope_overlay_m14_night_emp");
level.player overrideviewmodelmaterial("scope_overlay_m14_night_emp_low_res","scope_overlay_m14_night_emp_low_res");
}
if(issubstr(level.player getcurrentoffhand(),"grenade"))
{
level.player overrideviewmodelmaterial("mtl_variable_grenade_lethal","cloak_generic");
level.player overrideviewmodelmaterial("mtl_variable_grenade_nonlethal","cloak_generic");
}
if(issubstr(level.player getcurrentweapon(),"exo_shield"))
{
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_base","cloak_generic");
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_canvas","cloak_generic");
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_mesh","cloak_generic");
}
}
}
//Function Number: 15
set_cloak_material_for_npc_weapon()
{
if(self.weapon != "iw5_unarmed")
{
if(issubstr(self.weapon,"iw5_ak12_sp"))
{
self overridematerial("mtl_ak12_base_nocamo","mtl_ak12_base_nocamo_cloak");
}
if(issubstr(self.weapon,"iw5_arx160_sp"))
{
level.player overridematerial("mtl_arx160_base_nocamo","cloak_generic");
self overridematerial("mtl_arx160_iron_sights_base","cloak_generic");
self overridematerial("mtl_arx160_strap_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_asm1_sp"))
{
self overridematerial("mtl_asm1_base_nocamo","mtl_asm1_base_nocamo_cloak");
self overridematerial("mtl_asm1_magazine_02_base","mtl_asm1_magazine_02_base_cloak");
}
if(issubstr(self.weapon,"iw5_bal27_sp"))
{
self overridematerial("_base_black","mtl_bal27_base_black_cloak");
self overridematerial("mtl_bal27_screen_a_green","cloak_generic");
self overridematerial("mtl_bal27_magazine_out","cloak_generic");
self overridematerial("mtl_bal27_magazine_inside","cloak_generic");
self overridematerial("mtl_bal27_iron_sights","mtl_bal27_base_black_cloak");
}
if(issubstr(self.weapon,"iw5_em1_sp"))
{
self overridematerial("mtl_em1_base_nocamo","cloak_generic");
self overridematerial("mtl_en_base_damage","cloak_generic");
self overridematerial("mtl_em1_iron_sights_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_gm6_sp"))
{
self overridematerial("mtl_gm6_base_nocamo","cloak_generic");
self overridematerial("mtl_gm6_scope_base","cloak_generic");
self overridematerial("mtl_gm6_sight_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_hbra3_sp"))
{
self overridematerial("mtl_hbra3_base_nocamo","mtl_hbra3_base_nocamo_cloak");
self overridematerial("mtl_hbra3_base","mtl_hbra3_base_cloak");
self overridematerial("mtl_hbra3_sight","mtl_hbra3_sight_cloak");
self overridematerial("mtl_hbra3_screen","cloak_generic");
}
if(issubstr(self.weapon,"iw5_himar_sp"))
{
self overridematerial("mtl_himar_base","mtl_himar_base_cloak");
self overridematerial("mtl_himar_glass_base","mtl_himar_glass_base_cloak");
self overridematerial("mtl_ar_base_handling_01","mtl_ar_base_handling_01_cloak");
self overridematerial("mtl_himar_iron_sights_base","mtl_himar_iron_sights_base_cloak");
}
if(issubstr(self.weapon,"iw5_hmr9_sp"))
{
self overridematerial("mtl_hmr9_base_nocamo","cloak_generic");
self overridematerial("mtl_hmr9_ironsights_base","cloak_generic");
self overridematerial("mtl_hmr9_screen","cloak_generic");
self overridematerial("mtl_hmr9_text_decals","cloak_generic");
self overridematerial("mtl_hmr9_stock_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_kf5_sp"))
{
self overridematerial("mtl_kf5_base","mtl_kf5_base_nocamo_cloak");
self overridematerial("mtl_kf5_iron_sights_base","mtl_kf5_iron_sights_base_cloak");
}
if(issubstr(self.weapon,"iw5_lsat_sp"))
{
self overridematerial("mtl_lsat_base_nocamo","mtl_lsat_base_nocamo_cloak");
self overridematerial("mtl_lsat_iron_sights_base","mtl_lsat_iron_sights_base_cloak");
}
if(issubstr(self.weapon,"iw5_m990_sp"))
{
self overridematerial("mtl_m990_base_nocamo","cloak_generic");
self overridematerial("mtl_m990_scope","cloak_generic");
self overridematerial("mtl_m990_sight","cloak_generic");
}
if(issubstr(self.weapon,"iw5_maaws_sp"))
{
self overridematerial("mtl_maaws_base_nocamo","cloak_generic");
self overridematerial("mtl_maaws_missile_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_maul_sp"))
{
self overridematerial("mtl_maul_base_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_mdl_sp"))
{
self overridematerial("mtl_mdl_base","cloak_generic");
self overridematerial("mtl_mdl_optic","cloak_generic");
}
if(issubstr(self.weapon,"iw5_mk14_sp"))
{
self overridematerial("mtl_mk14_ebr_base_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_mors_sp"))
{
self overridematerial("mtl_mors_base_nocamo","cloak_generic");
self overridematerial("mtl_mors_scope","cloak_generic");
self overridematerial("mtl_mors_sights","cloak_generic");
}
if(issubstr(self.weapon,"iw5_mp11_sp"))
{
self overridematerial("mtl_cbj_ms_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_mp443_sp"))
{
self overridematerial("mtl_mp443_base_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_rhino_sp"))
{
self overridematerial("mtl_rhino_base_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_rw1_sp"))
{
self overridematerial("mtl_rw1_main_base_nocamo","cloak_generic");
self overridematerial("mtl_rw1_scope_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_sac3_sp"))
{
self overridematerial("mtl_sac3_base","cloak_generic");
}
if(issubstr(self.weapon,"iw5_sn6_sp"))
{
self overridematerial("mtl_sn6_base_black","mtl_sn6_base_black_nocamo_cloak");
self overridematerial("mtl_sn6_iron_sights_black","mtl_sn6_iron_sights_black_nocamo_cloak");
}
if(issubstr(self.weapon,"iw5_stinger_sp"))
{
self overridematerial("mtl_npc_stingerm7_base_black_nocamo","cloak_generic");
self overridematerial("mtl_stingerm7_base_bottom_black_nocamo","cloak_generic");
self overridematerial("mtl_stingerm7_base_top_black_nocamo","cloak_generic");
self overridematerial("mtl_stingerm7_missile_01","cloak_generic");
self overridematerial("mtl_stingerm7_screens_green","cloak_generic");
self overridematerial("mtl_stingerm7_iron_sight_black","cloak_generic");
self overridematerial("mtl_stingerm7_glass","mtl_stingerm7_glass");
}
if(issubstr(self.weapon,"iw5_thor_sp"))
{
self overridematerial("mtl_thor_base_nocamo","cloak_generic");
self overridematerial("mtl_thor_scope_base","cloak_generic");
self overridematerial("mtl_thor_scope_lens","mtl_thor_scope_lens");
}
if(issubstr(self.weapon,"iw5_titan45_sp"))
{
self overridematerial("mtl_titan45_base_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_uts19_sp"))
{
self overridematerial("mtl_uts_19_add_on_nocamo","cloak_generic");
}
if(issubstr(self.weapon,"iw5_vbr_sp"))
{
self overridematerial("mtl_vbr_base_nocamo","cloak_generic");
self overridematerial("mtl_vbr_siderail","cloak_generic");
}
if(issubstr(self.weapon,"opticsacog2"))
{
self overridematerial("mtl_acog2_base","mtl_acog2_base_cloak");
}
if(issubstr(self.weapon,"himarscope"))
{
self overridematerial("mtl_himar_computer_base","mtl_himar_computer_base_cloak");
self overridematerial("mtl_himar_reddot_body","mtl_himar_reddot_body_cloak");
}
if(issubstr(self.weapon,"opticsreddot"))
{
self overridematerial("mtl_weapon_reddot_body","mtl_weapon_reddot_body_cloak");
}
if(issubstr(self.weapon,"silencer01"))
{
self overridematerial("mtl_weapon_silencer_01","mtl_weapon_silencer_01_cloak");
}
if(issubstr(self.weapon,"opticstargetenhancer"))
{
self overridematerial("mtl_optics_target_enhancer_body","mtl_optics_target_enhancer_body_cloak");
}
if(issubstr(self.weapon,"variablereddot"))
{
self overridematerial("mtl_optics_variable_red_dot","mtl_optics_variable_red_dot_cloak");
self overridematerial("mtl_optics_variable_red_dot_glass02","mtl_optics_variable_red_dot_glass02_nodraw");
}
if(issubstr(self.weapon,"directhack"))
{
self overridematerial("mtl_directhack","cloak_generic");
}
if(issubstr(self.weapon,"foregrip"))
{
self overridematerial("mtl_foregrip","cloak_generic");
}
if(issubstr(self.weapon,"parabolicmicrophone"))
{
self overridematerial("mtl_mic_parabolic","cloak_generic");
}
if(issubstr(self.weapon,"detech"))
{
self overridematerial("mtl_optics_de_tech","cloak_generic");
}
if(issubstr(self.weapon,"lasersight"))
{
self overridematerial("mtl_weapon_lasersight_01","cloak_generic");
}
if(issubstr(self.weapon,"ironsights"))
{
self overridematerial("_iron_sights_black","cloak_generic");
self overridematerial("_iron_sights_color","cloak_generic");
}
if(issubstr(self.weapon,"opticseotech"))
{
self overridematerial("mtl_weapon_eotech_body","mtl_weapon_eotech_body_cloak");
}
if(issubstr(self.weapon,"opticsthermal"))
{
self overridematerial("mtl_weapon_thermal_scope","mtl_weapon_thermal_scope_cloak");
}
}
}
//Function Number: 16
cloak_vm_weapon_instantaneous()
{
set_cloak_material_for_vm_weapon();
level.player setviewmodelmaterialscriptparam(0,0);
}
//Function Number: 17
cloak_vm_weapon_blend()
{
wait(0.1);
set_cloak_material_for_vm_weapon();
level.player setviewmodelmaterialscriptparam(1,0);
wait(0.05);
level.player setviewmodelmaterialscriptparam(0,0.75);
}
//Function Number: 18
cloak_npc_weapon_instantaneous()
{
set_cloak_material_for_npc_weapon();
self setmaterialscriptparam(0,0);
}
//Function Number: 19
monitor_player_weapon_for_cloak()
{
var_00 = level.player getcurrentweapon();
for(;;)
{
var_01 = level.player getcurrentweapon();
if(var_01 != var_00)
{
if(level._cloaked_stealth_settings.cloak_on)
{
wait(0.1);
cloak_vm_weapon_instantaneous();
}
var_00 = var_01;
}
if(level.player ismeleeing())
{
if(level._cloaked_stealth_settings.cloak_on)
{
wait(0.1);
cloak_vm_weapon_instantaneous();
}
}
wait(0.05);
}
}
//Function Number: 20
check_for_npc_weapon_cloak_status_update()
{
self endon("death");
self notify("check_for_npc_weapon_cloak_status_update");
self endon("check_for_npc_weapon_cloak_status_update");
var_00 = self.weapon;
for(;;)
{
if(isdefined(self.cloak))
{
var_01 = self.weapon;
if(var_01 != var_00)
{
if(self.cloak == "on")
{
wait(0.1);
cloak_npc_weapon_instantaneous();
}
var_00 = var_01;
}
}
wait(0.05);
}
}
//Function Number: 21
turn_on_the_cloak_effect_when_able()
{
while(isdefined(level._cloaked_stealth_settings.cloaking_visual_effect_in_progress))
{
wait(0.05);
}
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = 1;
var_00 = 0;
level.player setviewmodel("viewhands_s1_pmc_cloak");
thread cloak_vm_weapon_blend();
level.player drawpostresolve();
level.player hudoutlineenable(0);
if(isdefined(level._cloaked_stealth_settings.player_rig))
{
level._cloaked_stealth_settings.player_rig setmaterialscriptparam(0,0.3);
var_00 = 0.3;
level._cloaked_stealth_settings.player_rig hudoutlineenable(0);
}
if(isdefined(level.scr_model["player_rig"]))
{
level.scr_model["player_rig"] = "viewbody_sentinel_covert_cloak";
}
if(isdefined(level.player_rig))
{
level.player_rig setmodel(level.scr_model["player_rig"]);
level.player_rig drawpostresolve();
level.player_rig setmaterialscriptparam(0,0.3);
var_00 = 0.3;
level.player_rig hudoutlineenable(0);
}
wait(var_00);
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = undefined;
}
//Function Number: 22
turn_on_the_cloak_effect()
{
level._cloaked_stealth_settings.cloak_on = 1;
soundscripts\_snd::snd_message("exo_cloak_enable");
if(level._cloaked_stealth_settings.visibility_range_version == 1)
{
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_on_hidden"],level._cloaked_stealth_settings.ranges["cloak_on_spotted"]);
}
thread turn_on_the_cloak_effect_when_able();
}
//Function Number: 23
turn_off_the_cloak_effect_when_able()
{
while(level.player ismeleeing() || isdefined(level._cloaked_stealth_settings.cloaking_visual_effect_in_progress))
{
wait(0.05);
}
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = 1;
var_00 = 0;
level.player setviewmodel("viewhands_player_sentinel");
level.player drawpostresolveoff();
level.player hudoutlinedisable();
if(isdefined(level._cloaked_stealth_settings.player_rig))
{
level._cloaked_stealth_settings.player_rig setmaterialscriptparam(1,0.2);
var_00 = 0.2;
level._cloaked_stealth_settings.player_rig hudoutlinedisable();
soundscripts\_snd::snd_message("exo_cloak_disable");
}
level.player overrideviewmodelmaterialreset();
if(isdefined(level.scr_model["player_rig"]))
{
level.scr_model["player_rig"] = "viewbody_sentinel_covert";
}
if(isdefined(level.player_rig))
{
level.player_rig drawpostresolveoff();
level.player_rig setmaterialscriptparam(1,0.3);
var_00 = 0.3;
level.player_rig setmodel(level.scr_model["player_rig"]);
level.player_rig hudoutlinedisable();
}
wait(var_00);
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = undefined;
}
//Function Number: 24
turn_off_the_cloak_effect()
{
level._cloaked_stealth_settings.cloak_on = 0;
if(level._cloaked_stealth_settings.visibility_range_version == 1)
{
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_off_hidden"],level._cloaked_stealth_settings.ranges["cloak_off_spotted"]);
}
thread turn_off_the_cloak_effect_when_able();
}
//Function Number: 25
set_player_detection_distance_for_speed(param_00)
{
if(!isdefined(level._cloaked_stealth_settings.current_speed))
{
level._cloaked_stealth_settings.current_speed = -1;
}
if(level._cloaked_stealth_settings.current_speed != param_00)
{
level._cloaked_stealth_settings.current_speed = param_00;
if(isdefined(level.player._stealth) && level.player [[ level.player._stealth.logic.getinshadow_func ]]())
{
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.visibility_distance["shadow"][param_00],level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]);
}
else
{
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.visibility_distance[param_00],level._cloaked_stealth_settings.visibility_distance[param_00]);
}
if(param_00 == 1000)
{
maps\_stealth_visibility_system::system_default_event_distances();
var_01 = level._stealth.logic.detection_level;
maps\_stealth_visibility_system::system_event_change(var_01);
}
else if(isdefined(level.player._stealth) && level.player [[ level.player._stealth.logic.getinshadow_func ]]())
{
maps\_stealth_utility::stealth_ai_event_dist_custom(level._cloaked_stealth_settings.event_distance["shadow"][param_00]);
}
else
{
maps\_stealth_utility::stealth_ai_event_dist_custom(level._cloaked_stealth_settings.event_distance[param_00]);
}
}
if(level.player maps\_utility::ent_flag_exist("_stealth_in_mute_radius") && level.player maps\_utility::ent_flag("_stealth_in_mute_radius"))
{
override_event_distances_for_mute_volume();
}
}
//Function Number: 26
do_player_cloak_update_threads()
{
if(level._cloaked_stealth_settings.visibility_range_version == 2)
{
thread monitor_player_speed_for_cloak();
}
thread monitor_player_weapon_for_cloak();
thread monitor_player_damage_for_cloak();
thread monitor_player_fire_for_cloak();
}
//Function Number: 27
monitor_player_damage_for_cloak()
{
while(!isdefined(level.player))
{
wait(0.1);
}
for(;;)
{
level.player waittill("damage");
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
{
cloak_device_hit_by_electro_magnetic_pulse();
}
}
}
//Function Number: 28
monitor_player_fire_for_cloak()
{
while(!isdefined(level.player))
{
wait(0.1);
}
for(;;)
{
level.player waittill("weapon_fired",var_00);
if(!common_scripts\utility::flag("flag_player_cloak_enabled"))
{
return;
}
if(issubstr(var_00,"silence"))
{
continue;
}
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
{
cloak_device_hit_by_electro_magnetic_pulse();
}
}
}
//Function Number: 29
monitor_player_speed_for_cloak()
{
for(;;)
{
if(isdefined(level.player) && isdefined(level._cloaked_stealth_settings))
{
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
{
var_00 = level.player maps\_shg_utility::get_differentiated_speed();
if(var_00 < 50)
{
set_player_detection_distance_for_speed(0);
}
else if(var_00 < 100)
{
set_player_detection_distance_for_speed(50);
}
else if(var_00 < 150)
{
set_player_detection_distance_for_speed(100);
}
else if(var_00 < 200)
{
set_player_detection_distance_for_speed(150);
}
else if(var_00 < 250)
{
set_player_detection_distance_for_speed(200);
}
else if(var_00 < 300)
{
set_player_detection_distance_for_speed(250);
}
else if(var_00 < 350)
{
set_player_detection_distance_for_speed(300);
}
else if(var_00 < 400)
{
set_player_detection_distance_for_speed(350);
}
else
{
set_player_detection_distance_for_speed(400);
}
}
else
{
set_player_detection_distance_for_speed(1000);
}
}
wait(0.05);
}
}
//Function Number: 30
cloak_device_hit_by_electro_magnetic_pulse()
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
turn_off_the_cloak_effect();
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
level._cloaked_stealth_settings.penalty_timer = 5;
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
}
//Function Number: 31
cloak_battery_hud()
{
self endon("death");
var_00 = 0.05;
var_01 = var_00 / 120;
var_02 = var_00 / 22;
var_03 = var_00 / 2.5;
var_04 = var_00 / 90;
level._cloaked_stealth_settings.battery_min = 0.01;
level._cloaked_stealth_settings.cloak_battery_level = 1;
level._cloaked_stealth_settings.penalty_timer = 0;
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
level._cloaked_stealth_settings.auto_recloak = 0;
var_05 = 0;
for(;;)
{
if(level._cloaked_stealth_settings.cloak_on == 1)
{
if(1)
{
var_06 = level.player maps\_shg_utility::get_differentiated_speed();
if(var_06 < 10)
{
if(var_05 > 0)
{
var_05 = var_05 - var_00;
}
else
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_04;
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
{
level._cloaked_stealth_settings.cloak_battery_level = 1;
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
}
}
}
else
{
var_05 = 1;
var_07 = var_06 / 500;
if(var_07 < 0)
{
var_07 = 0;
}
else if(var_07 > 1)
{
var_07 = 1;
}
var_08 = 40 * var_07 * var_07 * var_07;
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level - var_08 * var_02;
if(level._cloaked_stealth_settings.cloak_battery_level <= level._cloaked_stealth_settings.battery_min)
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
turn_off_the_cloak_effect();
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
level._cloaked_stealth_settings.penalty_timer = 1;
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
if(0)
{
level._cloaked_stealth_settings.auto_recloak = 1;
}
}
}
}
else
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level - var_02;
if(level._cloaked_stealth_settings.cloak_battery_level <= level._cloaked_stealth_settings.battery_min)
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
turn_off_the_cloak_effect();
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
level._cloaked_stealth_settings.penalty_timer = 1;
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
}
}
}
else if(1)
{
if(var_05 > 0 || level._cloaked_stealth_settings.penalty_timer > 0)
{
var_05 = var_05 - var_00;
level._cloaked_stealth_settings.penalty_timer = level._cloaked_stealth_settings.penalty_timer - var_00;
}
else
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_03;
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
{
level._cloaked_stealth_settings.cloak_battery_level = 1;
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
if(0 && level._cloaked_stealth_settings.auto_recloak)
{
level._cloaked_stealth_settings.auto_recloak = 0;
turn_on_the_cloak_effect();
}
}
}
}
else if(level._cloaked_stealth_settings.penalty_timer > 0)
{
level._cloaked_stealth_settings.penalty_timer = level._cloaked_stealth_settings.penalty_timer - var_00;
}
else
{
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_03;
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
{
level._cloaked_stealth_settings.cloak_battery_level = 1;
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
if(0 && level._cloaked_stealth_settings.auto_recloak)
{
level._cloaked_stealth_settings.auto_recloak = 0;
turn_on_the_cloak_effect();
}
}
}
var_09 = int(100 * level._cloaked_stealth_settings.cloak_battery_level);
if(isdefined(level._cloaked_stealth_settings.battery_hud_is_visible) && level._cloaked_stealth_settings.battery_hud_is_visible == 1)
{
level.player setclientomnvar("ui_cloak",common_scripts\utility::flag("flag_player_cloak_enabled"));
level.player setclientomnvar("ui_cloak_cinematic",0);
level.player setclientomnvar("ui_cloak_on",level._cloaked_stealth_settings.cloak_on);
level.player setclientomnvar("ui_cloak_health",var_09);
level.player setclientomnvar("ui_meterhud_toggle",common_scripts\utility::flag("flag_player_cloak_enabled"));
level.player setclientomnvar("ui_meterhud_text",level._cloaked_stealth_settings.cloak_on);
level.player setclientomnvar("ui_meterhud_level",level._cloaked_stealth_settings.cloak_battery_level);
}
else
{
level.player setclientomnvar("ui_cloak",0);
level.player setclientomnvar("ui_meterhud_toggle",0);
level.player setclientomnvar("ui_meterhud_text",level._cloaked_stealth_settings.cloak_on);
}
wait(var_00);
}
}
//Function Number: 32
cloak_hud()
{
level.player endon("death");
level.player notifyonplayercommand("cloak_button_pressed","+actionslot 4");
level.player setweaponhudiconoverride("actionslot4","dpad_icon_cloak");
thread cloak_battery_hud();
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 0;
if(level._cloaked_stealth_settings.cloak_on == 1)
{
turn_on_the_cloak_effect();
}
else
{
turn_off_the_cloak_effect();
}
for(;;)
{
level.player waittill("cloak_button_pressed");
if(common_scripts\utility::flag("flag_player_cloak_enabled"))
{
if(!common_scripts\utility::flag("flag_player_cloak_on_pressed"))
{
common_scripts\utility::flag_set("flag_player_cloak_on_pressed");
}
if(!level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim)
{
if(level._cloaked_stealth_settings.cloak_on == 1)
{
if(!isdefined(level.player_rig))
{
thread _play_view_model_cloak_toggle_anim();
}
continue;
}
if(level._cloaked_stealth_settings.cloak_battery_level > level._cloaked_stealth_settings.battery_min)
{
if(level._cloaked_stealth_settings.must_wait_for_full_charge == 0)
{
if(!isdefined(level.player_rig))
{
thread _play_view_model_cloak_toggle_anim();
}
}
}
}
}
}
}
//Function Number: 33
_ensure_player_is_decloaked()
{
while(level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim)
{
wait(0.05);
}
if(level._cloaked_stealth_settings.cloak_on == 1)
{
_play_view_model_cloak_toggle_anim();
}
}
//Function Number: 34
disable_cloak_system(param_00)
{
common_scripts\utility::flag_clear("flag_player_cloak_enabled");
cloaked_stealth_disable_battery_hud();
level.player setweaponhudiconoverride("actionslot4","dpad_icon_cloak_off");
if(isdefined(param_00) && param_00)
{
thread _ensure_player_is_decloaked();
return;
}
if(level._cloaked_stealth_settings.cloak_on == 1)
{
turn_off_the_cloak_effect();
}
}
//Function Number: 35
init_cloaked_stealth_settings()
{
if(level._cloaked_stealth_settings.visibility_range_version == 1)
{
init_cloaked_stealth_visibility_range_v1();
}
else
{
init_cloaked_stealth_detection_range();
}
set_corpse_detection_ranges_for_cloak_system();
soundscripts\_snd::snd_message("snd_cloak_init");
}
//Function Number: 36
init_player_cloak_state()
{
if(level._cloaked_stealth_settings.visibility_range_version == 1)
{
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_off_hidden"],level._cloaked_stealth_settings.ranges["cloak_off_spotted"]);
return;
}
set_player_detection_distance_for_speed(0);
}
//Function Number: 37
init_cloaked_stealth_visibility_range_v1()
{
level._cloaked_stealth_settings.ranges = [];
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["prone"] = 70;
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["crouch"] = 90;
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["stand"] = 150;
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["prone"] = 150;
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["crouch"] = 400;
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["stand"] = 512;
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["prone"] = 70;
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["crouch"] = 600;
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["stand"] = 1024;
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["prone"] = 512;
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["crouch"] = 5000;
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["stand"] = 8000;
}
//Function Number: 38
get_detection_distance_for_player_speed(param_00)
{
var_01 = 92;
var_02 = 200;
var_03 = 400;
return var_02 - var_01 * param_00 / var_03 + var_01;
}
//Function Number: 39
init_uncloaked_detection_distance_setting(param_00)
{
var_01 = 450;
level._cloaked_stealth_settings.visibility_distance[param_00]["prone"] = var_01 * 0.6;
level._cloaked_stealth_settings.visibility_distance[param_00]["crouch"] = var_01 * 0.8;
level._cloaked_stealth_settings.visibility_distance[param_00]["stand"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
}
//Function Number: 40
init_detection_distance_setting(param_00,param_01)
{
level._cloaked_stealth_settings.visibility_distance[param_00]["prone"] = param_01;
level._cloaked_stealth_settings.visibility_distance[param_00]["crouch"] = param_01;
level._cloaked_stealth_settings.visibility_distance[param_00]["stand"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"] = [];
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
}
//Function Number: 41
init_uncloaked_detection_distance_setting_for_shadow(param_00)
{
var_01 = 225;
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["prone"] = var_01 * 0.6;
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["crouch"] = var_01 * 0.8;
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["stand"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["spotted"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["hidden"] = var_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
}
//Function Number: 42
init_detection_distance_setting_for_shadow(param_00,param_01)
{
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["prone"] = param_01;
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["crouch"] = param_01;
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["stand"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"] = [];
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["spotted"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["hidden"] = param_01;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
}
//Function Number: 43
init_computed_detection_distance_setting(param_00)
{
var_01 = get_detection_distance_for_player_speed(param_00);
init_detection_distance_setting(param_00,var_01);
init_detection_distance_setting_for_shadow(param_00,var_01 * 0.5);
}
//Function Number: 44
init_cloaked_stealth_detection_range()
{
level._cloaked_stealth_settings.visibility_distance = [];
level._cloaked_stealth_settings.event_distance = [];
init_computed_detection_distance_setting(0);
init_computed_detection_distance_setting(50);
init_computed_detection_distance_setting(100);
init_computed_detection_distance_setting(150);
init_computed_detection_distance_setting(200);
init_computed_detection_distance_setting(250);
init_computed_detection_distance_setting(300);
init_computed_detection_distance_setting(350);
init_computed_detection_distance_setting(400);
init_uncloaked_detection_distance_setting(1000);
init_uncloaked_detection_distance_setting_for_shadow(1000);
}
//Function Number: 45
set_corpse_detection_ranges_for_cloak_system()
{
var_00["player_dist"] = 0;
var_00["sight_dist"] = 0;
var_00["detect_dist"] = 0;
maps\_stealth_utility::stealth_corpse_ranges_custom(var_00);
}
//Function Number: 46
debug_monitor_for_all_cloaked_stealth_enemies(param_00,param_01)
{
var_02 = 1;
for(;;)
{
if(isdefined(level._cloak_enemy_array))
{
level._cloak_enemy_array = maps\_utility::array_removedead(level._cloak_enemy_array);
foreach(var_04 in level._cloak_enemy_array)
{
var_04 thread maps\_stealth_debug::stealth_enemy_minimal_debug_monitor();
if(isdefined(param_01) && param_01 == 1)
{
var_04 thread show_detailed_cloak_enemy_state();
}
if(isdefined(param_00) && param_00 == 1)
{
var_04 thread maps\_stealth_debug::last_known_position_monitor();
}
}
}
wait(var_02);
}
}
//Function Number: 47
show_detailed_cloak_enemy_state()
{
self notify("show_detailed_cloak_enemy_state");
self endon("show_detailed_cloak_enemy_state");
self endon("death");
for(;;)
{
if(isdefined(self._cloak_enemy_state))
{
var_00 = "";
if(self._cloak_enemy_state == "default_stealth_state")
{
if(isdefined(self._stealth.debug_state))
{
var_00 = self._stealth.debug_state;
}
else
{
var_00 = "unknown state";
}
}
else
{
var_00 = self._cloak_enemy_state;
}
}
wait(0.05);
}
}
//Function Number: 48
is_player_cloaked()
{
return level._cloaked_stealth_settings.cloak_on;
}
//Function Number: 49
set_cloak_on_model()
{
self drawpostresolve();
self setmaterialscriptparam(0,0.3);
}
//Function Number: 50
set_event_distance(param_00,param_01)
{
setsaveddvar(param_00,param_01);
var_02 = "ai_busyEvent" + getsubstr(param_00,8);
setsaveddvar(var_02,param_01);
}
//Function Number: 51
override_event_distances_for_mute_volume()
{
set_event_distance("ai_eventDistDeath",1);
set_event_distance("ai_eventDistPain",1);
set_event_distance("ai_eventDistBullet",1);
set_event_distance("ai_eventDistFootstep",1);
set_event_distance("ai_eventDistFootstepWalk",1);
set_event_distance("ai_eventDistFootstepSprint",1);
set_event_distance("ai_eventDistNewEnemy",1);
set_event_distance("ai_eventDistGunShot",1);
set_event_distance("ai_eventDistExplosion",1);
}
//Function Number: 52
activate_mute_volume(param_00,param_01)
{
if(!level.player maps\_utility::ent_flag_exist("_stealth_in_mute_radius"))
{
level.player maps\_utility::ent_flag_init("_stealth_in_mute_radius");
}
var_02 = 0.05;
var_03 = self;
var_04 = param_00 * param_00;
var_05 = param_01;
for(;;)
{
var_05 = var_05 - var_02;
if(var_05 < 0)
{
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
maps\_stealth_visibility_system::system_default_event_distances();
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
return;
}
if(!isdefined(var_03))
{
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
maps\_stealth_visibility_system::system_default_event_distances();
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
return;
}
var_06 = distancesquared(var_03.origin,level.player.origin);
if(var_06 < var_04)
{
mute_event_distances();
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
level.player maps\_utility::ent_flag_set("_stealth_in_mute_radius");
}
else
{
maps\_stealth_visibility_system::system_default_event_distances();
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
}
wait(var_02);
}
}
//Function Number: 53
mute_event_distances()
{
var_00["ai_eventDistDeath"] = [];
var_00["ai_eventDistPain"] = [];
var_00["ai_eventDistExplosion"] = [];
var_00["ai_eventDistBullet"] = [];
var_00["ai_eventDistFootstep"] = [];
var_00["ai_eventDistFootstepWalk"] = [];
var_00["ai_eventDistFootstepSprint"] = [];
var_00["ai_eventDistGunShot"] = [];
var_00["ai_eventDistGunShotTeam"] = [];
var_00["ai_eventDistNewEnemy"] = [];
var_00["ai_eventDistDeath"]["spotted"] = getdvar("ai_eventDistDeath");
var_00["ai_eventDistDeath"]["hidden"] = 1;
var_00["ai_eventDistPain"]["spotted"] = getdvar("ai_eventDistPain");
var_00["ai_eventDistPain"]["hidden"] = 1;
var_00["ai_eventDistExplosion"]["spotted"] = 4000;
var_00["ai_eventDistExplosion"]["hidden"] = 1;
var_00["ai_eventDistBullet"]["spotted"] = 96;
var_00["ai_eventDistBullet"]["hidden"] = 1;
var_00["ai_eventDistFootstep"]["spotted"] = 1;
var_00["ai_eventDistFootstep"]["hidden"] = 1;
var_00["ai_eventDistFootstepWalk"]["spotted"] = 256;
var_00["ai_eventDistFootstepWalk"]["hidden"] = 1;
var_00["ai_eventDistFootstepSprint"]["spotted"] = 400;
var_00["ai_eventDistFootstepSprint"]["hidden"] = 1;
var_00["ai_eventDistGunShot"]["spotted"] = 2048;
var_00["ai_eventDistGunShot"]["hidden"] = 1;
var_00["ai_eventDistGunShotTeam"]["spotted"] = 750;
var_00["ai_eventDistGunShotTeam"]["hidden"] = 1;
var_00["ai_eventDistNewEnemy"]["spotted"] = 750;
var_00["ai_eventDistNewEnemy"]["hidden"] = 1;
maps\_stealth_visibility_system::system_set_event_distances(var_00);
}
//Function Number: 54
setalertstencilstate(param_00)
{
if(isdefined(param_00))
{
setsaveddvar("r_hudoutlinecloaklumscale",0);
thread maps\_utility::lerp_saveddvar("r_hudoutlinecloaklumscale",0.75,param_00);
}
else
{
setsaveddvar("r_hudoutlinecloaklumscale",0.75);
}
setsaveddvar("r_hudoutlinewidth",1);
setsaveddvar("r_hudoutlinepostmode",4);
setsaveddvar("r_hudoutlinecloakblurradius",0.35);
self hudoutlineenable(6,1);
}
//Function Number: 55
clearalertstencilstate()
{
if(isdefined(self))
{
self hudoutlinedisable();
self hudoutlineenable(0,0);
self hudoutlinedisable();
setsaveddvar("r_hudoutlinewidth",1);
}
}
//Function Number: 56
clearstencilstateondeath()
{
if(isdefined(self))
{
self hudoutlinedisable();
self hudoutlineenable(0,0);
}
}
//Function Number: 57
setalertstencilstate_axis()
{
self endon("death");
setsaveddvar("r_hudoutlinewidth",1);
self hudoutlineenable(4,1);
}
//Function Number: 58
temp_cloak_gauge()
{
var_00 = 620;
var_01 = 240;
var_02 = 156;
var_03 = int(10);
var_04 = newhudelem();
var_04.x = var_00 - 0.5 * 20 - var_03;
var_04.y = var_01 - int(40);
var_04.alignx = "right";
var_04.aligny = "bottom";
var_04.horzalign = "fullscreen";
var_04.vertalign = "fullscreen";
var_04.color = (0.1,0.6,0.1);
var_04 setshader("white",var_03,int(var_02 * level._cloaked_stealth_settings.cloak_battery_level));
var_05 = newhudelem();
var_05.x = var_00;
var_05.y = var_01;
var_05.alignx = var_04.alignx;
var_05.aligny = var_04.aligny;
var_05.horzalign = var_04.horzalign;
var_05.vertalign = var_04.vertalign;
var_05.color = (1,1,1);
var_05 setshader("hud_temperature_gauge",20,200);
var_06 = 0.05;
for(;;)
{
if(isdefined(level._cloaked_stealth_settings.battery_hud_is_visible) && level._cloaked_stealth_settings.battery_hud_is_visible == 1)
{
var_04.alpha = 1;
var_05.alpha = 1;
var_07 = level._cloaked_stealth_settings.cloak_battery_level;
var_04 scaleovertime(var_06,var_03,int(var_02 * var_07));
if(var_07 > 0.5)
{
var_04.color = (0.1,0.6,0.1);
}
else if(var_07 > 0.2)
{
var_04.color = (1,1,0.1);
}
else
{
var_04.color = (1,0.1,0.1);
}
}
else
{
var_04.alpha = 0;
var_05.alpha = 0;
}
wait(var_06);
}
}