/******************************************************************* * Decompiled By: Bog * Decompiled File: _shg_utility.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 57 * Decompile Time: 877 ms * Timestamp: 4/22/2024 2:22:40 AM *******************************************************************/ //Function Number: 1 move_player_to_start(param_00) { if(!isdefined(param_00)) { param_00 = level.start_point + "_playerstart"; } var_01 = common_scripts\utility::getstruct(param_00,"targetname"); if(isdefined(var_01)) { maps\_utility::teleport_player(var_01); } } //Function Number: 2 spawn_friendlies(param_00,param_01,param_02,param_03) { if(!isdefined(param_02)) { param_02 = 1; } var_04 = getentarray(param_01,"script_noteworthy"); var_05 = []; var_06 = 0; var_07 = []; foreach(var_09 in var_04) { if(isspawner(var_09)) { var_05[var_05.size] = var_09; } } var_0B = common_scripts\utility::getstruct(param_00,"targetname"); var_0C = 0; foreach(var_0E in var_05) { var_0F = var_0E maps\_utility::spawn_ai(1); if(param_02) { var_0F thread maps\_utility::replace_on_death(); } var_0F forceteleport(var_0B.origin,var_0B.angles); var_0F setgoalpos(var_0F.origin); var_07 = common_scripts\utility::array_add(var_07,var_0F); var_0C++; if(isdefined(param_03) && var_0C >= param_03) { return var_07; } } return var_07; } //Function Number: 3 setup_player_for_scene(param_00,param_01) { self allowmelee(0); self disableweapons(); self disableoffhandweapons(); self allowstand(1); self allowcrouch(0); self allowprone(0); self allowsprint(0); setsaveddvar("ammoCounterHide",1); if(isdefined(param_00) && param_00) { var_02 = 0; if(isdefined(level.player.exclusive)) { var_02 = maps\_player_exo::player_exo_is_active_single("boost_dash"); if(var_02) { maps\_player_exo::player_exo_remove_single("boost_dash"); } } var_03 = 0; while(self getstance() != "stand") { self setstance("stand"); wait 0.05; var_03 = var_03 + 0.05; } while(self isthrowinggrenade() || self isreloading() || self getcurrentweapon(0) != "none") { wait 0.05; var_03 = var_03 + 0.05; } if(isdefined(param_01) && param_01 > var_03) { wait(param_01 - var_03); } if(var_02) { maps\_player_exo::player_exo_add_single("boost_dash"); } } } //Function Number: 4 setup_player_for_gameplay() { setsaveddvar("ammoCounterHide",0); self allowsprint(1); self allowprone(1); self allowcrouch(1); self allowstand(1); self enableoffhandweapons(); self enableweapons(); self allowmelee(1); } //Function Number: 5 monitorscopechange() { foreach(var_01 in level.players) { if(!isdefined(var_01.sniper_zoom_hint_hud)) { var_01.sniper_zoom_hint_hud = var_01 maps\_hud_util::createclientfontstring("default",1.75); var_01.sniper_zoom_hint_hud.horzalign = "center"; var_01.sniper_zoom_hint_hud.vertalign = "top"; var_01.sniper_zoom_hint_hud.alignx = "center"; var_01.sniper_zoom_hint_hud.aligny = "top"; var_01.sniper_zoom_hint_hud.x = 0; var_01.sniper_zoom_hint_hud.y = 20; var_01.sniper_zoom_hint_hud settext(&"VARIABLE_SCOPE_SNIPER_ZOOM"); var_01.sniper_zoom_hint_hud.alpha = 0; var_01.sniper_zoom_hint_hud.sort = 0.5; var_01.sniper_zoom_hint_hud.foreground = 1; } var_01.fov_snipe = 1; } var_03 = 0; level.players[0].sniper_dvar = "cg_playerFovScale0"; if(level.players.size == 2) { level.players[1].sniper_dvar = "cg_playerFovScale1"; } foreach(var_01 in level.players) { var_01 thread monitormagcycle(); var_01 thread disablevariablescopehudondeath(); } if(!isdefined(level.variable_scope_weapons)) { level.variable_scope_weapons = []; } var_06 = undefined; var_07 = undefined; for(;;) { var_08 = 0; var_07 = var_06; var_06 = undefined; foreach(var_0A in level.variable_scope_weapons) { foreach(var_01 in level.players) { if(var_01 getcurrentweapon() == var_0A && isalive(var_01)) { var_08 = 1; var_06 = var_01; break; } } if(var_08) { break; } } if(var_08 && !var_06 isreloading() && !var_06 isreloading()) { if(var_06 maps\_utility::isads() && var_06 adsbuttonpressed()) { var_06 turnonvariablescopehud(var_03); var_03 = 1; if(isdefined(level.variable_scope_shadow_center)) { var_0E = undefined; var_0F = undefined; var_10 = anglestoforward(var_06 getplayerangles()); var_11 = var_06.origin; foreach(var_13 in level.variable_scope_shadow_center) { var_14 = anglestoforward(vectortoangles(var_13 - var_11)); var_15 = vectordot(var_10,var_14); if(!isdefined(var_0E) || var_15 > var_0F) { var_0E = var_13; var_0F = var_15; } } if(isdefined(var_0E)) { setsaveddvar("sm_sunShadowCenter",var_0E); } } } else if(var_03) { var_03 = 0; if(isdefined(var_06)) { var_06 turnoffvariablescopehud(); } setsaveddvar("sm_sunShadowCenter","0 0 0"); } } else if(var_03) { var_03 = 0; if(isdefined(var_07)) { var_07 turnoffvariablescopehud(); } setsaveddvar("sm_sunShadowCenter","0 0 0"); } wait(0.05); } } //Function Number: 6 turnonvariablescopehud(param_00) { self disableoffhandweapons(); setsaveddvar(self.sniper_dvar,self.fov_snipe); self.sniper_zoom_hint_hud.alpha = 1; if(!param_00) { level notify("variable_sniper_hud_enter"); } } //Function Number: 7 turnoffvariablescopehud() { level notify("variable_sniper_hud_exit"); self enableoffhandweapons(); setsaveddvar(self.sniper_dvar,1); self.sniper_zoom_hint_hud.alpha = 0; } //Function Number: 8 monitormagcycle() { notifyoncommand("mag_cycle","+melee_zoom"); notifyoncommand("mag_cycle","+sprint_zoom"); for(;;) { self waittill("mag_cycle"); if(self.sniper_zoom_hint_hud.alpha) { if(self.fov_snipe == 0.5) { self.fov_snipe = 1; continue; } self.fov_snipe = 0.5; } } } //Function Number: 9 disablevariablescopehudondeath() { self waittill("death"); turnoffvariablescopehud(); } //Function Number: 10 dialogue_reminder(param_00,param_01,param_02,param_03,param_04) { level endon("stop_reminders"); level endon("missionfailed"); var_05 = undefined; if(!isdefined(param_03)) { param_03 = 10; } if(!isdefined(param_04)) { param_04 = 20; } while(!common_scripts\utility::flag(param_01)) { var_06 = randomfloatrange(param_03,param_04); var_07 = common_scripts\utility::random(param_02); if(isdefined(var_05) && var_07 == var_05) { continue; } else { var_05 = var_07; wait(var_06); if(!common_scripts\utility::flag(param_01)) { if(isstring(param_00) && param_00 == "radio") { conversation_start(); maps\_utility::radio_dialogue(var_07); conversation_stop(); continue; } conversation_start(); param_00 maps\_utility::dialogue_queue(var_07); conversation_stop(); } } } } //Function Number: 11 conversation_start() { if(!common_scripts\utility::flag_exist("flag_conversation_in_progress")) { common_scripts\utility::flag_init("flag_conversation_in_progress"); } common_scripts\utility::flag_waitopen("flag_conversation_in_progress"); common_scripts\utility::flag_set("flag_conversation_in_progress"); } //Function Number: 12 conversation_stop() { common_scripts\utility::flag_clear("flag_conversation_in_progress"); } //Function Number: 13 array_combine_unique(param_00,param_01) { var_02 = []; foreach(var_04 in param_00) { if(!isdefined(common_scripts\utility::array_find(var_02,var_04))) { var_02[var_02.size] = var_04; } } foreach(var_04 in param_01) { if(!isdefined(common_scripts\utility::array_find(var_02,var_04))) { var_02[var_02.size] = var_04; } } return var_02; } //Function Number: 14 laser_targeting_device(param_00) { param_00 endon("remove_laser_targeting_device"); param_00.lastusedweapon = undefined; param_00.laserforceon = 0; param_00 setweaponhudiconoverride("actionslot4","dpad_laser_designator"); param_00 thread cleanuplasertargetingdevice(); param_00 notifyonplayercommand("use_laser","+actionslot 4"); param_00 notifyonplayercommand("fired_laser","+attack"); param_00 notifyonplayercommand("fired_laser","+attack_akimbo_accessible"); param_00.laserallowed = 1; param_00.lasercooldownafterhit = 20; param_00 childthread monitorlaseroff(); for(;;) { param_00 waittill("use_laser"); if(param_00.laserforceon || !param_00.laserallowed || param_00 shouldforcedisablelaser()) { param_00 notify("cancel_laser"); param_00 laseroff(); param_00.laserforceon = 0; param_00 allowads(1); wait(0.2); param_00 allowfire(1); continue; } param_00 laseron(); param_00 allowfire(0); param_00.laserforceon = 1; param_00 allowads(0); param_00 thread laser_designate_target(); } } //Function Number: 15 shouldforcedisablelaser() { var_00 = self getcurrentweapon(); if(var_00 == "rpg") { return 1; } if(common_scripts\utility::string_starts_with(var_00,"gl")) { return 1; } if(isdefined(level.laser_designator_disable_list) && isarray(level.laser_designator_disable_list)) { foreach(var_02 in level.laser_designator_disable_list) { if(var_00 == var_02) { return 1; } } } if(self isreloading()) { return 1; } if(self isthrowinggrenade()) { return 1; } return 0; } //Function Number: 16 cleanuplasertargetingdevice() { self waittill("remove_laser_targeting_device"); self setweaponhudiconoverride("actionslot4","none"); self notify("cancel_laser"); self laseroff(); self.laserforceon = undefined; self allowfire(1); self allowads(1); } //Function Number: 17 monitorlaseroff() { for(;;) { if(shouldforcedisablelaser() && isdefined(self.laserforceon) && self.laserforceon) { self notify("use_laser"); wait(2); } wait(0.05); } } //Function Number: 18 laser_designate_target() { self endon("cancel_laser"); for(;;) { self waittill("fired_laser"); var_00 = get_laser_designated_trace(); var_01 = var_00["position"]; var_02 = var_00["entity"]; level notify("laser_coordinates_received"); var_03 = undefined; if(isdefined(level.laser_targets) && isdefined(var_02) && common_scripts\utility::array_contains(level.laser_targets,var_02)) { var_03 = var_02; level.laser_targets = common_scripts\utility::array_remove(level.laser_targets,var_02); } else { var_03 = gettargettriggerhit(var_01); } if(isdefined(var_03)) { thread laser_artillery(var_03); level notify("laser_target_painted"); wait(0.5); self notify("use_laser"); } } } //Function Number: 19 gettargettriggerhit(param_00) { if(!isdefined(level.laser_triggers) || level.laser_triggers.size == 0) { return undefined; } foreach(var_02 in level.laser_triggers) { var_03 = distance2d(param_00,var_02.origin); var_04 = param_00[2] - var_02.origin[2]; if(!isdefined(var_02.radius)) { continue; } if(!isdefined(var_02.height)) { continue; } if(var_03 <= var_02.radius && var_04 <= var_02.height && var_04 >= 0) { level.laser_triggers = common_scripts\utility::array_remove(level.laser_triggers,var_02); return getent(var_02.target,"script_noteworthy"); } } return undefined; } //Function Number: 20 get_laser_designated_trace() { var_00 = self geteye(); var_01 = self getplayerangles(); var_02 = anglestoforward(var_01); var_03 = var_00 + var_02 * 7000; var_04 = bullettrace(var_00,var_03,1,self); var_05 = var_04["entity"]; if(isdefined(var_05)) { var_04["position"] = var_05.origin; } return var_04; } //Function Number: 21 laser_artillery(param_00) { level.player endon("remove_laser_targeting_device"); level.player.laserallowed = 0; self setweaponhudiconoverride("actionslot4","dpad_killstreak_hellfire_missile_inactive"); maps\_utility::flavorbursts_off("allies"); var_01 = level.player; wait(2.5); if(!isdefined(param_00.script_index)) { param_00.script_index = 99; } wait(1); if(isdefined(param_00.script_group)) { var_02 = get_geo_group("geo_before",param_00.script_group); if(var_02.size > 0) { common_scripts\utility::array_call(var_02,::hide); } var_03 = get_geo_group("geo_after",param_00.script_group); if(var_03.size > 0) { common_scripts\utility::array_call(var_03,::show); } } wait(level.player.lasercooldownafterhit); level.player.laserallowed = 1; self setweaponhudiconoverride("actionslot4","dpad_laser_designator"); } //Function Number: 22 get_geo_group(param_00,param_01) { var_02 = getentarray(param_00,"targetname"); var_03 = []; foreach(var_05 in var_02) { if(isdefined(var_05.script_group) && var_05.script_group == param_01) { var_03[var_03.size] = var_05; } } return var_03; } //Function Number: 23 linear_map(param_00,param_01,param_02,param_03,param_04) { return param_03 + param_00 - param_01 * param_04 - param_03 / param_02 - param_01; } //Function Number: 24 linear_map_clamp(param_00,param_01,param_02,param_03,param_04) { return clamp(linear_map(param_00,param_01,param_02,param_03,param_04),min(param_03,param_04),max(param_03,param_04)); } //Function Number: 25 differentiate_motion() { var_00 = gettime() * 0.001; if(!isdefined(self.differentiated_last_update)) { self.differentiated_last_update = var_00; self.differentiated_last_origin = self.origin; self.differentiated_last_velocity = (0,0,0); self.differentiated_last_acceleration = (0,0,0); self.differentiated_jerk = (0,0,0); self.differentiated_acceleration = (0,0,0); self.differentiated_velocity = (0,0,0); self.differentiated_speed = 0; return; } if(self.differentiated_last_update != var_00) { var_01 = var_00 - self.differentiated_last_update; self.differentiated_last_update = var_00; self.differentiated_jerk = self.differentiated_acceleration - self.differentiated_last_acceleration / var_01; self.differentiated_last_acceleration = self.differentiated_acceleration; self.differentiated_acceleration = self.differentiated_velocity - self.differentiated_last_velocity / var_01; self.differentiated_last_velocity = self.differentiated_velocity; self.differentiated_velocity = self.origin - self.differentiated_last_origin / var_01; self.differentiated_last_origin = self.origin; self.differentiated_speed = length(self.differentiated_velocity); } } //Function Number: 26 get_differentiated_speed() { differentiate_motion(); return self.differentiated_speed; } //Function Number: 27 get_differentiated_velocity() { differentiate_motion(); return self.differentiated_velocity; } //Function Number: 28 get_differentiated_acceleration() { differentiate_motion(); return self.differentiated_acceleration; } //Function Number: 29 get_differentiated_jerk() { differentiate_motion(); return self.differentiated_jerk; } //Function Number: 30 show_player_hud(param_00,param_01,param_02,param_03,param_04) { if(isdefined(param_00)) { setsaveddvar("g_friendlyNameDist",param_00); } else { setsaveddvar("g_friendlyNameDist",15000); } if(isdefined(param_01)) { setsaveddvar("compass",param_01); } else { setsaveddvar("compass","1"); } if(isdefined(param_02)) { setsaveddvar("ammoCounterHide",param_02); } else { setsaveddvar("ammoCounterHide","0"); } if(isdefined(param_03)) { setsaveddvar("actionSlotsHide",param_03); } else { setsaveddvar("actionSlotsHide","0"); } if(isdefined(param_04)) { setsaveddvar("hud_showStance",param_04); return; } setsaveddvar("hud_showStance","1"); } //Function Number: 31 hide_player_hud(param_00,param_01,param_02,param_03,param_04) { if(isdefined(param_00)) { setsaveddvar("g_friendlyNameDist",param_00); } else { setsaveddvar("g_friendlyNameDist",0); } if(isdefined(param_01)) { setsaveddvar("compass",param_01); } else { setsaveddvar("compass","0"); } if(isdefined(param_02)) { setsaveddvar("ammoCounterHide",param_02); } else { setsaveddvar("ammoCounterHide","1"); } if(isdefined(param_03)) { setsaveddvar("actionSlotsHide",param_03); } else { setsaveddvar("actionSlotsHide","1"); } if(isdefined(param_04)) { setsaveddvar("hud_showStance",param_04); return; } setsaveddvar("hud_showStance","0"); } //Function Number: 32 disable_features_entering_cinema(param_00) { if(isdefined(param_00) && param_00 == 1) { level.player thread maps\_player_exo::player_exo_deactivate(); level.exo_cinema_disabled = 1; } hide_player_hud(); } //Function Number: 33 enable_features_exiting_cinema(param_00) { if(!isdefined(param_00) && isdefined(level.exo_cinema_disabled)) { param_00 = level.exo_cinema_disabled; level.exo_cinema_disabled = undefined; } if(isdefined(param_00) && param_00 == 1) { level.player thread maps\_player_exo::player_exo_activate(); } show_player_hud(); } //Function Number: 34 handle_portal_group(param_00,param_01,param_02) { level.player endon("death"); level endon("missionfailed"); if(isdefined(param_02) && isstring(param_02)) { level endon(param_02); } if(!isdefined(param_00) || !isstring(param_00)) { return; } if(!isdefined(param_01) || !isstring(param_01) || !common_scripts\utility::flag_exist(param_00)) { return; } var_03 = getent(param_01,"targetname"); if(!isdefined(var_03)) { var_03 = getent(param_01,"script_noteworthy"); } if(!isdefined(var_03)) { return; } var_03 enableportalgroup(0); for(;;) { common_scripts\utility::flag_wait(param_00); var_03 enableportalgroup(1); common_scripts\utility::flag_waitopen(param_00); var_03 enableportalgroup(0); wait(0.05); } } //Function Number: 35 portal_group_on(param_00,param_01) { level.player endon("death"); level endon("missionfailed"); if(!isdefined(param_00) || !isstring(param_00)) { return; } if(!isdefined(param_01) || !isstring(param_01) || !common_scripts\utility::flag_exist(param_00)) { return; } var_02 = getent(param_01,"targetname"); if(!isdefined(var_02)) { var_02 = getent(param_01,"script_noteworthy"); } if(!isdefined(var_02)) { return; } var_02 enableportalgroup(0); common_scripts\utility::flag_wait(param_00); var_02 enableportalgroup(1); } //Function Number: 36 portal_group_off(param_00,param_01) { level.player endon("death"); level endon("missionfailed"); if(!isdefined(param_00) || !isstring(param_00)) { return; } if(!isdefined(param_01) || !isstring(param_01) || !common_scripts\utility::flag_exist(param_00)) { return; } var_02 = getent(param_01,"targetname"); if(!isdefined(var_02)) { var_02 = getent(param_01,"script_noteworthy"); } if(!isdefined(var_02)) { return; } common_scripts\utility::flag_wait(param_00); var_02 enableportalgroup(0); } //Function Number: 37 make_emp_vulnerable() { if(!isdefined(level.emp_vulnerable_list)) { level.emp_vulnerable_list = []; } level.emp_vulnerable_list = common_scripts\utility::array_add(level.emp_vulnerable_list,self); self waittill("death"); level.emp_vulnerable_list = common_scripts\utility::array_remove(level.emp_vulnerable_list,self); } //Function Number: 38 play_fx_with_handle(param_00,param_01,param_02,param_03) { var_04 = spawnstruct(); var_04.fx_id = common_scripts\utility::getfx(param_00); var_04.entity = param_01; var_04.tag = param_02; if(isdefined(param_03) && param_03) { var_04.tag_origin = common_scripts\utility::spawn_tag_origin(); var_04.tag_origin linkto(param_01,var_04.tag,(0,0,0),(0,0,0)); playfxontag(var_04.fx_id,var_04.tag_origin,"tag_origin"); kill_fx_with_handle_on_death(var_04); } else { playfxontag(var_04.fx_id,var_04.entity,var_04.tag); } return var_04; } //Function Number: 39 kill_fx_with_handle_on_death(param_00) { thread kill_fx_with_handle_on_death_internal(param_00); } //Function Number: 40 kill_fx_with_handle_on_death_internal(param_00) { param_00.entity waittill("death"); kill_fx_with_handle(param_00); } //Function Number: 41 kill_fx_with_handle(param_00) { if(isdefined(param_00.tag_origin)) { killfxontag(param_00.fx_id,param_00.tag_origin,"tag_origin"); param_00.tag_origin common_scripts\utility::delaycall(0.05,::delete); param_00.tag_origin = undefined; param_00.entity = undefined; return; } if(isdefined(param_00.entity)) { killfxontag(param_00.fx_id,param_00.entity,param_00.tag); param_00.entity = undefined; } } //Function Number: 42 hint_button_trigger(param_00,param_01) { if(!isdefined(param_01)) { param_01 = 200; } return hint_button_position(param_00,self.origin,undefined,param_01,undefined,self); } //Function Number: 43 hint_button_tag(param_00,param_01,param_02,param_03,param_04,param_05) { return hint_button_create(param_00,param_01,param_02,param_03,0,param_04,param_05); } //Function Number: 44 hint_button_position(param_00,param_01,param_02,param_03,param_04,param_05) { var_06 = common_scripts\utility::spawn_tag_origin(); if(!isdefined(param_01)) { if(isdefined(param_05)) { param_01 = param_05.origin; } else { param_01 = self.origin; } } var_06.origin = param_01; return var_06 hint_button_create(param_00,"tag_origin",param_02,param_03,1,param_04,param_05); } //Function Number: 45 hint_button_create(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { var_07 = newclienthudelem(level.player); var_07.alignx = "center"; var_07.aligny = "middle"; var_07.fontscale = 3; var_07.font = "buttonprompt"; var_07.positioninworld = 1; if(isdefined(self)) { if(isdefined(param_01)) { var_07 settargetent(self,param_01); } else { var_07 settargetent(self); } } var_08 = hint_button_string_lookup(param_00); var_07 settext(var_08); var_07.hidewheninmenu = 1; var_07.sort = -1; var_07.alpha = 1; if(!isdefined(param_05) || !param_05) { var_07 thread scale_3d_hint_button(self,param_01,level.player,param_02,param_03,param_06); } var_07.object = self; if(isdefined(param_04) && param_04) { var_07.deleteobjectwhendone = 1; } return var_07; } //Function Number: 46 scale_3d_hint_button(param_00,param_01,param_02,param_03,param_04,param_05) { self endon("death"); param_00 endon("death"); if(!isdefined(param_03)) { param_03 = getdvarint("player_useradius"); } if(!isdefined(param_04)) { param_04 = 0; } var_06 = 0; self.fontscale = 2; self.font = "buttonprompt"; for(;;) { if(isdefined(param_01)) { var_06 = distance(param_00 gettagorigin(param_01),param_02 geteye()); } else { var_06 = distance(param_00,param_02 geteye()); } if(param_04 != 0 && var_06 > param_04) { self.alpha = 0; } else if(param_03 != 0 && var_06 > param_03) { if(param_04 - param_03 > 0) { self.alpha = 1 - var_06 - param_03 / param_04 - param_03 * 0.3; } else { self.alpha = 0.3; } } else if(isdefined(param_05) && isdefined(param_05.classname) && issubstr(param_05.classname,"trigger")) { var_07 = param_02 getusableentity(); if(isdefined(var_07) && var_07 == param_05) { self.alpha = 1; } else { self.alpha = 0.3; } } else { self.alpha = 1; } wait 0.05; } } //Function Number: 47 hint_button_string_lookup(param_00) { switch(param_00) { case "activate": case "usereload": case "use": case "x": case "reload": return "^3[{+activate}]^7"; case "gostand": case "jump": case "a": return "^3[{+gostand}]^7"; case "weapnext": case "y": return "^3[{weapnext}]^7"; case "stance": case "b": case "crouch": return "^3[{+stance}]^7"; case "rs": case "melee": return "^3[{+melee}]^7"; case "breath": case "ls": case "sprint": return "^3[{+sprint}]^7"; case "r1": case "rt": case "attack": return "^3[{+attack}]^7"; case "frag": case "r2": case "rb": case "grenade": return "^3[{+frag}]^7"; case "ads": case "l1": case "lt": return "^3[{+ads}]^7"; case "flash": case "smoke": case "l2": case "lb": case "flashbang": return "^3[{+smoke}]^7"; case "pause": case "start": return "^3[{pause}]^7"; case "up": return "^3[{+actionslot 1}]^7"; case "down": return "^3[{+actionslot 2}]^7"; case "left": return "^3[{+actionslot 3}]^7"; case "right": return "^3[{+actionslot 4}]^7"; default: break; } } //Function Number: 48 hint_button_clear() { if(isdefined(self.deleteobjectwhendone) && self.deleteobjectwhendone) { self.object delete(); } if(isdefined(self)) { self destroy(); } } //Function Number: 49 hint_button_flash(param_00,param_01) { while(isdefined(self)) { var_02 = self.alpha; self fadeovertime(param_00 / 3); self.alpha = param_01; wait(param_00); if(!isdefined(self)) { return; } self fadeovertime(param_00 / 3); self.alpha = var_02; wait(param_00); } } //Function Number: 50 button_mash_dynamic_hint(param_00,param_01,param_02,param_03) { self endon(param_02); level.player endon(param_02); self endon("death"); thread maps\_utility::hint(param_00); var_04 = param_01 + "_button_mash_dynamic_hint"; thread buttonmash_hint_cleanup(param_02,var_04,param_01,param_03); level.player notifyonplayercommand(var_04,param_01); if(isdefined(param_03)) { level.player notifyonplayercommand(var_04,param_03); } for(;;) { self waittill(var_04); level.hintelement.alpha = 0.2; level.hintelement fadeovertime(0.3); level.hintelement.alpha = 1; wait 0.05; } } //Function Number: 51 buttonmash_hint_cleanup(param_00,param_01,param_02,param_03) { self endon("death"); common_scripts\utility::waittill_any_ents(self,param_00,level.player,param_00); thread maps\_utility::hint_fade(); level.player notifyonplayercommandremove(param_01,param_02); if(isdefined(param_03)) { level.player notifyonplayercommandremove(param_01,param_03); } } //Function Number: 52 hint_button_create_flashing(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { if(!isdefined(param_03)) { param_03 = (0,0,0); } self endon("death"); var_07 = common_scripts\utility::spawn_tag_origin(); var_07.origin = self gettagorigin(param_00); var_07.origin = var_07.origin + param_03; var_07 linkto(self,param_00); param_01 = var_07 hint_button_create(param_01,"TAG_ORIGIN",param_04,param_05,1,1); if(isdefined(param_06)) { param_01.fontscale = param_06; } param_01 thread hint_button_flash(0.15,0.1); common_scripts\utility::waittill_any_ents(self,param_02,level.player,param_02); param_01 hint_button_clear(); } //Function Number: 53 play_videolog(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { if(!isdefined(param_06)) { param_06 = 1; } var_08 = undefined; if(isdefined(param_02) || isdefined(param_03) || isdefined(param_04) || isdefined(param_05)) { var_08 = []; var_08["top"] = param_02; var_08["left"] = param_03; var_08["bottom"] = param_04; var_08["right"] = param_05; } var_09 = []; var_09["add"] = 0; var_09["blend"] = 1; var_09["blend_add"] = 2; var_09["screen_add"] = 3; var_09["multiply"] = 4; var_09["replace"] = 5; if(!isdefined(param_01)) { param_01 = 0; } var_0A = var_09[param_01]; var_0B = getdvarint("cg_cinematicfullscreen"); setsaveddvar("cg_cinematicfullscreen",0); var_0C = []; if(isdefined(var_08)) { var_0C["top"] = getomnvar("ui_videolog_pos_top"); var_0C["left"] = getomnvar("ui_videolog_pos_left"); var_0C["bottom"] = getomnvar("ui_videolog_pos_bottom"); var_0C["right"] = getomnvar("ui_videolog_pos_right"); setomnvar("ui_videolog_pos_top",var_08["top"]); setomnvar("ui_videolog_pos_left",var_08["left"]); setomnvar("ui_videolog_pos_bottom",var_08["bottom"]); setomnvar("ui_videolog_pos_right",var_08["right"]); } setomnvar("ui_videolog",1); var_0D = getomnvar("ui_videolog_blendfunc"); setomnvar("ui_videolog_blendfunc",var_0A); setomnvar("ui_videolog_blur_bkgrnd",param_06); if(!isdefined(param_07)) { param_07 = level._snd.default_vid_log_vol; } cinematicingame(param_00,0,param_07,1); while(!iscinematicplaying()) { wait 0.05; } while(iscinematicplaying()) { wait 0.05; } setomnvar("ui_videolog",0); setomnvar("ui_videolog_blendfunc",var_0D); setsaveddvar("cg_cinematicfullscreen",var_0B); if(isdefined(var_08)) { setomnvar("ui_videolog_pos_top",var_0C["top"]); setomnvar("ui_videolog_pos_left",var_0C["left"]); setomnvar("ui_videolog_pos_bottom",var_0C["bottom"]); setomnvar("ui_videolog_pos_right",var_0C["right"]); } } //Function Number: 54 stop_videolog() { if(iscinematicplaying()) { stopcinematicingame(); } } //Function Number: 55 play_chyron_video(param_00,param_01,param_02) { common_scripts\utility::flag_init("chyron_video_done"); var_03 = newclienthudelem(level.player); var_03 setshader("black",1280,720); var_03.horzalign = "fullscreen"; var_03.vertalign = "fullscreen"; var_03.alpha = 1; var_03.foreground = 0; cinematicingame(param_00); var_04 = getdvarint("cg_cinematicCanPause",0); setsaveddvar("cg_cinematicCanPause",1); while(!iscinematicplaying()) { wait 0.05; } while(iscinematicplaying()) { wait 0.05; } common_scripts\utility::flag_set("chyron_video_done"); if(isdefined(param_01)) { wait(param_01); } if(isdefined(param_02)) { var_03 fadeovertime(param_02); var_03.alpha = 0; wait(param_02); } setsaveddvar("cg_cinematicCanPause",var_04); var_03 destroy(); } //Function Number: 56 point_in_angle_of_crosshairs(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = level.player; } return vectordot(vectornormalize(param_00 - param_02 geteye()),anglestoforward(param_02 getplayerangles())) > cos(param_01); } //Function Number: 57 entity_is_in_circle(param_00,param_01,param_02,param_03) { return point_in_angle_of_crosshairs(param_00.origin,atan(tan(0.5 * param_02) * param_03 / 320),param_01); }