/******************************************************************* * Decompiled By: Bog * Decompiled File: _shg_design_tools.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 54 * Decompile Time: 848 ms * Timestamp: 4/22/2024 2:22:34 AM *******************************************************************/ //Function Number: 1 anim_simple(param_00,param_01) { if(!isdefined(param_00)) { return; } if(isarray(param_00)) { foreach(var_03 in param_00) { param_01 = var_03.animation; var_03 thread identify_and_play_anim(param_01,self); } return; } if(!isdefined(param_01)) { param_01 = param_00.animation; } param_00 identify_and_play_anim(param_01,self); } //Function Number: 2 identify_and_play_anim(param_00,param_01) { self endon("death"); if(!isdefined(self)) { return; } if(isanimloop(param_00)) { if(isalive(self) && self.var_567D == "generic") { param_01 maps\_anim::anim_generic_loop(self,param_00,"stop_loop"); } else if(isalive(self)) { param_01 maps\_anim::anim_loop_solo(self,param_00,"stop_loop"); } } else if(isalive(self) && isdefined(self.animname) && self.animname != "generic") { param_01 maps\_anim::anim_single_solo(self,param_00); } else if(isalive(self)) { param_01 maps\_anim::anim_generic(self,param_00); } self notify("anim_simple_done",param_00); } //Function Number: 3 isanimloop(param_00) { if(isanimloop_animname(param_00,"generic")) { return 1; } else if(isdefined(self.animname) && isanimloop_animname(param_00,self.animname)) { return 1; } return 0; } //Function Number: 4 isanimloop_animname(param_00,param_01) { if(isarray(level.scr_anim[param_01])) { if(isarray(level.scr_anim[param_01][param_00])) { if(isdefined(level.scr_anim[param_01][param_00][0])) { self.var_567D = param_01; return 1; } } } return 0; } //Function Number: 5 notify_on_death(param_00,param_01) { if(!isdefined(param_00)) { level notify(param_01); return; } if(isarray(param_00)) { while(isdefined(param_00) && param_00.size > 0) { param_00 = maps\_utility::array_removedead_or_dying(param_00); param_00 = common_scripts\utility::array_removeundefined(param_00); wait 0.05; } } else { param_00 waittill("death"); } level notify(param_01); } //Function Number: 6 gravity_drop(param_00,param_01,param_02) { var_03 = gettime() * 0.001; while(self.origin[2] > param_01[2]) { var_04 = param_02 * 0.5; var_05 = 1 * var_04 / 2; var_06 = gettime() * 0.001 - var_03; self.origin = self.origin + (0,0,var_05 * var_06 - 0.5 * var_04 * squared(var_06)); wait 0.05; } } //Function Number: 7 gravity_point(param_00,param_01,param_02) { var_03 = param_02 * 0.5; var_04 = 1; var_05 = gettime() * 0.001 - param_00; var_06 = var_04 * var_05 - 0.5 * var_03 * squared(var_05); return (0,0,var_06); } //Function Number: 8 gravity_arc(param_00,param_01,param_02,param_03,param_04) { self endon("death"); var_05 = gettime() * 0.001; if(isdefined(self) && !isdefined(self.apex)) { self.apex = 0; } while(isdefined(self) && gettime() * 0.001 <= var_05 + param_02) { self.last_z = self.origin[2]; self.origin = arc_point(var_05,param_00,param_01,param_02,param_03,param_04); if(self.origin[2] < self.last_z) { self.apex = 1; } wait(0.05); } self notify("item_landed"); } //Function Number: 9 arc_point(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { if(!isdefined(param_04)) { param_04 = 386; } if(!isdefined(param_05)) { param_05 = 386; } var_07 = param_04; if(self.apex) { var_07 = param_05; } var_08 = var_07 * 0.5; param_06 = param_03 * var_08 / 2; var_09 = gettime() * 0.001 - param_00; var_0A = param_06 * var_09 - 0.5 * var_08 * squared(var_09); var_0B = maps\_utility::linear_interpolate(var_09 / param_03,param_01,param_02) + (0,0,var_0A); return var_0B; } //Function Number: 10 anim_stop(param_00,param_01,param_02) { if(isdefined(param_00)) { param_00 maps\_utility::anim_stopanimscripted(); } maps\_utility::anim_stopanimscripted(); if(isdefined(param_00)) { param_00 notify("stop_first_frame"); } self notify("stop_first_frame"); if(isdefined(param_02) && param_02 && isdefined(param_00)) { param_00 delete(); } } //Function Number: 11 end_anim_loop(param_00) { if(!isdefined(param_00)) { param_00 = [self]; } foreach(var_02 in param_00) { if(isdefined(var_02.loops) && var_02.loops > 0) { var_02.loops = 0; } if(isdefined(var_02.loopanims) && var_02.loopanims.size > 0) { var_02.loopanims = []; } } } //Function Number: 12 remove_hint() { if(isdefined(level.current_hint)) { level.current_hint destroy(); } } //Function Number: 13 hide_display_hint() { if(isdefined(level.current_hint)) { level.current_hint.alpha = 0; } } //Function Number: 14 anim_simple_notify(param_00,param_01,param_02) { level waittill(param_02); if(isdefined(param_00.animname) && param_00.animname != "generic") { param_00 maps\_anim::setanimtree(); } anim_simple(param_00,param_01); } //Function Number: 15 isvehiclealive(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00.health < 1) { return 0; } return 1; } //Function Number: 16 white_out(param_00,param_01,param_02) { var_03 = self; if(!isplayer(var_03)) { var_03 = level.player; } if(!isdefined(param_02)) { param_02 = 1; } var_04 = newclienthudelem(var_03); var_04 setshader("white",1280,720); var_04.horzalign = "fullscreen"; var_04.vertalign = "fullscreen"; var_04.alpha = param_02; wait(param_00); var_04 fadeovertime(param_01); var_04.alpha = 0; } //Function Number: 17 fade_to_black(param_00,param_01,param_02,param_03) { var_04 = self; if(!isplayer(var_04)) { var_04 = level.player; } var_04.auxillary_hud = newclienthudelem(var_04); var_04.auxillary_hud setshader("black",1280,720); var_04.auxillary_hud.horzalign = "fullscreen"; var_04.auxillary_hud.vertalign = "fullscreen"; var_04.auxillary_hud.alpha = param_02; wait(param_00); var_04.auxillary_hud fadeovertime(param_01); var_04.auxillary_hud.alpha = param_03; } //Function Number: 18 create_pulsing_text(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { if(issplitscreen()) { param_00 = param_00 + 2; } var_07 = undefined; if(isdefined(param_03)) { var_07 = get_pulsing_hud(-60,undefined,param_03,1,param_04,param_05); } else { var_07 = get_pulsing_hud(-60,undefined,undefined,1,param_04,param_05); } var_08 = var_07 huddata(param_00,param_01); var_08.label = param_02; return var_08; } //Function Number: 19 get_pulsing_hud(param_00,param_01,param_02,param_03,param_04,param_05) { if(!isdefined(param_03)) { param_03 = 0; } var_06 = undefined; if(!level.console) { var_06 = -250; } else if(!isdefined(param_00)) { var_06 = -225; } else { var_06 = param_00; } if(param_03) { var_06 = param_00; } if(!isdefined(param_01)) { var_07 = 100; } else { var_07 = param_02; } if(isdefined(param_02)) { var_08 = newclienthudelem(param_02); } else { var_08 = newhudelem(); } if(!isdefined(param_04)) { param_04 = (0.8,1,0.8); } if(!isdefined(param_05)) { param_05 = (0.3,0.6,0.3); } var_08.alignx = "left"; var_08.aligny = "middle"; var_08.horzalign = "right"; var_08.vertalign = "top"; var_08.x = var_06; var_08.y = var_07; var_08.fontscale = 1.6; var_08.color = param_04; var_08.font = "objective"; var_08.glowcolor = param_05; var_08.glowalpha = 1; var_08.foreground = 1; var_08.hidewheninmenu = 0; var_08.hidewhendead = 1; return var_08; } //Function Number: 20 huddata(param_00,param_01) { self.alignx = "center"; self.aligny = "top"; self.horzalign = "center"; self.vertalign = "middle"; self.x = param_01; self.y = -160 + 15 * param_00; self.font = "objective"; self.foreground = 1; self.hidewheninmenu = 1; self.hidewhendead = 1; self.sort = 2; self.fontscale = 1.15; return self; } //Function Number: 21 spawn_tag_origin_monitor(param_00) { if(!isdefined(level.monitored_tag_origins)) { level.monitored_tag_origins = []; } var_01 = common_scripts\utility::spawn_tag_origin(); var_01 angles_and_origin(self); if(isdefined(param_00)) { var_01.tag_idx = param_00; } level.monitored_tag_origins[level.monitored_tag_origins.size] = var_01; level.monitored_tag_origins = common_scripts\utility::array_removeundefined(level.monitored_tag_origins); iprintln(level.monitored_tag_origins.size); return var_01; } //Function Number: 22 remove_monitored_tags(param_00) { if(isdefined(level.monitored_tag_origins)) { var_01 = 0; foreach(var_03 in level.monitored_tag_origins) { if(isdefined(var_03.tag_idx) && var_03.tag_idx == param_00) { var_03 delete(); var_01++; } } iprintln(var_01); } } //Function Number: 23 angles_and_origin(param_00) { if(isdefined(param_00.origin)) { self.origin = param_00.origin; } if(isdefined(param_00.angles)) { self.angles = param_00.angles; } } //Function Number: 24 array_combine_multiple(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08) { var_09 = common_scripts\utility::array_combine(param_00,param_01); if(isdefined(param_02)) { var_09 = common_scripts\utility::array_combine(var_09,param_02); } if(isdefined(param_03)) { var_09 = common_scripts\utility::array_combine(var_09,param_03); } if(isdefined(param_04)) { var_09 = common_scripts\utility::array_combine(var_09,param_04); } if(isdefined(param_05)) { var_09 = common_scripts\utility::array_combine(var_09,param_05); } if(isdefined(param_06)) { var_09 = common_scripts\utility::array_combine(var_09,param_06); } if(isdefined(param_07)) { var_09 = common_scripts\utility::array_combine(var_09,param_07); } if(isdefined(param_08)) { var_09 = common_scripts\utility::array_combine(var_09,param_08); } return var_09; } //Function Number: 25 lerp_to_position(param_00,param_01,param_02,param_03) { self endon("death"); var_04 = distance(param_00,self.origin); var_05 = 0; var_06 = self.origin; while(var_05 < var_04) { var_07 = getlerpfraction(self.origin,param_00,param_01,param_02); if(var_07 == 0) { break; } self.origin = vectorlerp(self.origin,param_00,var_07); if(isdefined(param_03)) { self.angles = self.angles + param_03; } var_05 = distance(self.origin,var_06); wait 0.05; } self notify("lerp_complete"); } //Function Number: 26 getlerpfraction(param_00,param_01,param_02,param_03) { var_04 = distance(param_00,param_01); if(param_02 == 0 || var_04 == 0) { return 0; } var_05 = param_02 / var_04 * 0.05; if(var_05 > 0) { return var_05; } return 0; } //Function Number: 27 getperlinovertime(param_00,param_01,param_02,param_03,param_04) { if(!isdefined(param_03)) { param_03 = 1; } if(!isdefined(param_04)) { var_05 = 10; var_06 = 20; var_07 = 30; } else { var_05 = var_07; var_06 = var_06 + 10; var_07 = var_05 + 20; } var_08 = (perlinnoise2d(gettime() * 0.001 * 0.05,var_05,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,var_06,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,var_07,param_00,param_01,param_02) * param_03); return var_08; } //Function Number: 28 angles_origin(param_00) { if(isdefined(param_00.origin)) { self.origin = param_00.origin; } if(isdefined(param_00.angles)) { self.angles = param_00.angles; } } //Function Number: 29 delete_at_goal() { self waittill("goal"); self delete(); } //Function Number: 30 delete_auto() { if(!isdefined(self)) { return; } self delete(); } //Function Number: 31 percentchance(param_00) { if(randomint(100) <= param_00) { return 1; } return 0; } //Function Number: 32 actual_spawn(param_00) { if(!isdefined(self.count) || self.count < 1) { self.count = 1; } var_01 = maps\_utility::spawn_ai(1); maps\_utility::spawn_failed(var_01); if(isdefined(param_00)) { while(!isdefined(var_01)) { self.count = 1; var_01 = maps\_utility::spawn_ai(1); maps\_utility::spawn_failed(var_01); wait 0.05; } } return var_01; } //Function Number: 33 spawn_enemy_group(param_00,param_01,param_02) { if(isarray(param_01)) { var_03 = param_01; } else { param_00[0] = param_02; } var_04 = []; for(var_05 = 0;var_05 < param_00;var_05++) { var_06 = common_scripts\utility::random(var_03); var_07 = var_06 actual_spawn(); if(!isdefined(var_07)) { continue; } if(isdefined(param_02)) { var_07 setgoalvolumeauto(param_02); } var_04[var_04.size] = var_07; wait(0.1); } return var_04; } //Function Number: 34 trigger_to_notify(param_00,param_01) { waittill_trigger_with_name(param_00); if(!isdefined(param_01)) { param_01 = param_00; } level notify(param_01); } //Function Number: 35 stopfxonnotify(param_00,param_01,param_02,param_03) { self waittill(param_03); if(isdefined(param_01)) { stopfxontag(param_00,param_01,param_02); } } //Function Number: 36 stopfxontagdelay(param_00,param_01,param_02,param_03) { wait(param_03); if(isdefined(param_01)) { stopfxontag(param_00,param_01,param_02); } } //Function Number: 37 waittill_trigger_with_name(param_00) { var_01 = getent(param_00,"targetname"); if(!isdefined(var_01)) { var_01 = getent(param_00,"script_noteworthy"); } if(!isdefined(var_01)) { return; } var_01 waittill("trigger"); } //Function Number: 38 impulse_wave(param_00,param_01,param_02,param_03) { if(!isdefined(param_03)) { param_03 = 300; } var_04 = []; foreach(var_06 in param_00) { if(distance(var_06.origin,param_02) < param_01) { var_04[var_04.size] = var_06; } } if(var_04.size <= 0) { return; } var_04 = sortbydistance(var_04,param_02); var_08 = param_02; foreach(var_06 in var_04) { if(!isdefined(var_06)) { continue; } if(var_06 maps\_vehicle::isvehicle()) { var_06 dodamage(var_06.health * 2,param_02); continue; } var_0A = distance(var_08,var_06.origin); var_0B = var_0A / param_03 * 0.05; wait(var_0B); var_08 = var_06.origin; var_0C = vectornormalize(var_06 gettagorigin("tag_eye") - param_02); var_0C = vectornormalize(var_0C + (0,0,0.2)); var_06 startragdollfromimpact("torso_lower",var_0C * 7000); var_06 thread common_scripts\utility::delaycall(2,::kill); } } //Function Number: 39 sortbydistanceauto(param_00,param_01) { return sortbydistance(param_00,param_01,0,1); } //Function Number: 40 set_entflag_on_notify(param_00) { if(!maps\_utility::ent_flag_exist(param_00)) { maps\_utility::ent_flag_init(param_00); } self waittill(param_00); maps\_utility::ent_flag(param_00); } //Function Number: 41 trigger_to_flag(param_00,param_01) { if(!common_scripts\utility::flag_exist(param_01)) { common_scripts\utility::flag_init(param_01); } var_02 = getentarray(param_00,"targetname"); var_02[0] waittill("trigger"); common_scripts\utility::flag_set(param_01); } //Function Number: 42 flag_wait_either_timeout(param_00,param_01) { var_02 = randomfloat(1000); var_03 = "flag_or_timeout" + var_02; level endon(var_03); level thread maps\_utility::notify_delay(var_03,param_01); common_scripts\utility::flag_wait(param_00); } //Function Number: 43 killonbadpath() { self endon("death"); self waittill("bad_path"); if(!isdefined(self.deletable_magic_bullet_shield) || !self.deletable_magic_bullet_shield) { self kill(); } } //Function Number: 44 offset_position_from_tag(param_00,param_01,param_02) { var_03 = self gettagangles(param_01); var_04 = self gettagorigin(param_01); if(param_00 == "up") { return var_04 + anglestoup(var_03) * param_02; } if(param_00 == "down") { return var_04 + anglestoup(var_03) * param_02 * -1; } if(param_00 == "right") { return var_04 + anglestoright(var_03) * param_02; } if(param_00 == "left") { return var_04 + anglestoright(var_03) * param_02 * -1; } if(param_00 == "forward") { return var_04 + anglestoforward(var_03) * param_02; } if(param_00 == "backward") { return var_04 + anglestoforward(var_03) * param_02 * -1; } if(param_00 == "backwardright") { var_04 = var_04 + anglestoright(var_03) * param_02; return var_04 + anglestoforward(var_03) * param_02 * -1; } if(param_00 == "backwardleft") { var_04 = var_04 + anglestoright(var_03) * param_02 * -1; return var_04 + anglestoforward(var_03) * param_02 * -1; } if(param_00 == "forwardright") { var_04 = var_04 + anglestoright(var_03) * param_02 * 1; return var_04 + anglestoforward(var_03) * param_02; } if(param_00 == "forwardleft") { var_04 = var_04 + anglestoright(var_03) * param_02 * -1; return var_04 + anglestoforward(var_03) * param_02; } } //Function Number: 45 getclosestauto(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = 500000; } var_03 = undefined; foreach(var_05 in param_01) { if(!isdefined(var_05)) { continue; } var_06 = distance(var_05.origin,param_00); if(var_06 >= param_02) { continue; } param_02 = var_06; var_03 = var_05; } return var_03; } //Function Number: 46 getthing(param_00,param_01) { var_02 = getent(param_00,param_01); if(isdefined(var_02)) { return var_02; } var_02 = common_scripts\utility::getstruct(param_00,param_01); if(isdefined(var_02)) { return var_02; } var_02 = getnode(param_00,param_01); if(isdefined(var_02)) { return var_02; } var_02 = getvehiclenode(param_00,param_01); if(isdefined(var_02)) { return var_02; } } //Function Number: 47 getthingarray(param_00,param_01) { var_02 = getentarray(param_00,param_01); if(var_02.size > 0) { return var_02; } var_02 = common_scripts\utility::getstructarray(param_00,param_01); if(var_02.size > 0) { return var_02; } var_02 = getnodearray(param_00,param_01); if(var_02.size > 0) { return var_02; } var_02 = getvehiclenodearray(param_00,param_01); if(var_02.size > 0) { return var_02; } } //Function Number: 48 make_deaddrone(param_00) { var_01 = maps\_spawner::spawner_dronespawn(param_00); var_01.animname = "generic"; var_01 maps\_utility::gun_remove(); return var_01; } //Function Number: 49 iprintlnsubtitles(param_00,param_01) { if(!isdefined(level.player.subtitles)) { level.player.subtitles = []; level.subtitle_entry_num = 0; } var_02 = newclienthudelem(level.player); var_02.x = 320; var_02.y = 325; var_02.alignx = "center"; var_02.aligny = "middle"; var_02.fontscale = 1.5; var_02 settext(param_00); var_02.alpha = 0; var_02.color = (1,1,1); var_02.glowcolor = (0.6,0.6,0.9); var_02.glowalpha = 0.4; var_02.sort = -10; var_02.font = "objective"; level.player.subtitles[level.player.subtitles.size] = var_02; level notify("new_subtitle_created"); level.player thread delete_subtitle_in(10,var_02,level.subtitle_entry_num); level.player thread show_subtitles(var_02,level.subtitle_entry_num); level.subtitle_entry_num = level.subtitle_entry_num + 1 % 10; if(isdefined(param_01)) { wait(param_01); } } //Function Number: 50 show_subtitles(param_00,param_01) { var_02 = "delete_subtitle_hud" + param_01; var_03 = 0; var_04 = 19; param_00 fadeovertime(0.5); param_00.alpha = 1; level endon(var_02); while(isdefined(param_00)) { level waittill("new_subtitle_created"); var_03++; if(!isdefined(param_00)) { break; } param_00 moveovertime(0.35); param_00.y = 325 + var_03 * var_04; param_00.color = (1,1,1); param_00.glowalpha = 0; param_00.alpha = 0.9 - var_03 / 5; wait 0.05; } } //Function Number: 51 delete_subtitle_in(param_00,param_01,param_02) { var_03 = "delete_subtitle_hud" + param_02; level thread maps\_utility::notify_delay(var_03,param_00); level waittill(var_03); self.subtitles = common_scripts\utility::array_remove(self.subtitles,param_01); param_01 destroy(); } //Function Number: 52 convert_8bit_color(param_00) { return param_00 / 255; } //Function Number: 53 get_standard_glow_text(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { var_08 = param_00; var_09 = param_05 * param_02 + param_01; if(!isdefined(param_06)) { param_06 = (0.8,1,0.8); } if(!isdefined(param_07)) { param_07 = (param_06[0] / 2,param_06[1] / 2,param_06[2] / 2); } if(!isdefined(param_03)) { param_03 = "center"; } if(!isdefined(param_04)) { param_04 = "middle"; } var_0A = newclienthudelem(level.player); var_0A.alignx = param_03; var_0A.aligny = param_04; var_0A.horzalign = "center"; var_0A.vertalign = "middle"; var_0A.x = var_08; var_0A.y = var_09; var_0A.fontscale = 1.6; var_0A.color = param_06; var_0A.font = "objective"; var_0A.glowcolor = param_07; var_0A.glowalpha = 1; var_0A.foreground = 1; var_0A.hidewheninmenu = 1; var_0A.hidewhendead = 1; return var_0A; } //Function Number: 54 notify_relay(param_00,param_01,param_02,param_03) { param_00 waittill(param_01); param_02 notify(param_03); }