/******************************************************************* * Decompiled By: Bog * Decompiled File: _utility_code.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 93 * Decompile Time: 1383 ms * Timestamp: 4/22/2024 2:24:19 AM *******************************************************************/ //Function Number: 1 linetime_proc(param_00,param_01,param_02,param_03) { for(var_04 = 0;var_04 < param_03 * 20;var_04++) { wait(0.05); } } //Function Number: 2 structarray_swap(param_00,param_01) { var_02 = param_00.struct_array_index; var_03 = param_01.struct_array_index; self.array[var_03] = param_00; self.array[var_02] = param_01; self.array[var_02].struct_array_index = var_02; self.array[var_03].struct_array_index = var_03; } //Function Number: 3 waitspread_code(param_00,param_01) { waittillframeend; var_02 = []; if(level.wait_spreaders == 1) { var_02[0] = randomfloatrange(param_00,param_01); level.wait_spreader_allotment = var_02; level.active_wait_spread = undefined; return; } var_02[0] = param_00; var_02[var_02.size] = param_01; for(var_03 = 1;var_03 < level.wait_spreaders - 1;var_03++) { var_02 = waitspread_insert(var_02); } level.wait_spreader_allotment = common_scripts\utility::array_randomize(var_02); level.active_wait_spread = undefined; } //Function Number: 4 waitspread_insert(param_00) { var_01 = -1; var_02 = 0; for(var_03 = 0;var_03 < param_00.size - 1;var_03++) { var_04 = param_00[var_03 + 1] - param_00[var_03]; if(var_04 <= var_02) { continue; } var_02 = var_04; var_01 = var_03; } var_05 = []; for(var_06 = 0;var_06 < param_00.size;var_06++) { if(var_01 == var_06 - 1) { var_05[var_05.size] = randomfloatrange(param_00[var_01],param_00[var_01 + 1]); } var_05[var_05.size] = param_00[var_06]; } return var_05; } //Function Number: 5 waittill_objective_event_proc(param_00) { while(level.deathspawner[self.script_deathchain] > 0) { level waittill("spawner_expired" + self.script_deathchain); } if(param_00) { self waittill("trigger"); } var_01 = maps\_utility::get_trigger_flag(); common_scripts\utility::flag_set(var_01); } //Function Number: 6 wait_until_done_speaking() { self endon("death"); self endon("removed from battleChatter"); while(self.isspeaking) { wait(0.05); } } //Function Number: 7 wait_for_trigger_think(param_00) { self endon("death"); param_00 endon("trigger"); self waittill("trigger"); param_00 notify("trigger"); } //Function Number: 8 wait_for_trigger(param_00,param_01) { var_02 = getentarray(param_00,param_01); var_03 = spawnstruct(); common_scripts\utility::array_thread(var_02,::wait_for_trigger_think,var_03); var_03 waittill("trigger"); } //Function Number: 9 ent_waits_for_trigger(param_00) { self endon("done"); param_00 waittill("trigger"); self notify("done"); } //Function Number: 10 update_debug_friendlycolor_on_death() { self notify("debug_color_update"); self endon("debug_color_update"); var_00 = self.unique_id; self waittill("death"); level.debug_color_friendlies[var_00] = undefined; level notify("updated_color_friendlies"); } //Function Number: 11 update_debug_friendlycolor(param_00) { thread update_debug_friendlycolor_on_death(); if(isdefined(self.script_forcecolor)) { level.debug_color_friendlies[param_00] = self.script_forcecolor; } else { level.debug_color_friendlies[param_00] = undefined; } level notify("updated_color_friendlies"); } //Function Number: 12 radio_queue_thread(param_00) { var_01 = gettime(); for(;;) { if(!isdefined(self._radio_queue)) { break; } self waittill("finished_radio"); if(gettime() > var_01 + 7500) { return; } } self._radio_queue = 1; maps\_utility::wait_for_buffer_time_to_pass(level.last_mission_sound_time,0.5); level.player maps\_utility::play_sound_on_entity(level.scr_radio[param_00]); self._radio_queue = undefined; level.last_mission_sound_time = gettime(); self notify("finished_radio"); } //Function Number: 13 ent_wait_for_flag_or_time_elapses(param_00,param_01) { self endon(param_00); wait(param_01); } //Function Number: 14 waittill_either_function_internal(param_00,param_01,param_02) { param_00 endon("done"); [[ param_01 ]](param_02); param_00 notify("done"); } //Function Number: 15 hintprintwait(param_00,param_01) { if(!isdefined(param_01)) { wait(param_00); return; } var_02 = param_00 * 20; for(var_03 = 0;var_03 < var_02;var_03++) { if([[ param_01 ]]()) { break; } wait(0.05); } } //Function Number: 16 hint_timeout(param_00) { wait(param_00); self.timed_out = 1; } //Function Number: 17 hint_stick_get_updated(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { return param_00 + _hint_stick_get_config_suffix(param_01,param_02,param_03,param_04,param_05,param_06); } //Function Number: 18 _hint_stick_get_config_suffix(param_00,param_01,param_02,param_03,param_04,param_05) { var_06 = getsticksconfig(); if(level.player common_scripts\utility::is_player_gamepad_enabled()) { if((isdefined(level.ps3) && level.ps3) || isdefined(level.ps4) && level.ps4) { if(issubstr(var_06,"southpaw") || param_05 && issubstr(var_06,"legacy")) { return param_04; } return param_03; } if(issubstr(var_06,"southpaw") || param_05 && issubstr(var_06,"legacy")) { return param_02; } return param_01; } return param_00; } //Function Number: 19 _hint_stick_update_string(param_00,param_01) { var_02 = param_01 + param_00; var_03 = level.trigger_hint_func[var_02]; level.hint_breakfunc = var_03; } //Function Number: 20 _hint_stick_update_breakfunc(param_00,param_01) { var_02 = param_01 + param_00; var_03 = level.trigger_hint_string[var_02]; level.current_hint settext(var_03); } //Function Number: 21 hint_stick_update(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { level notify("hint_change_config"); level endon("hint_change_config"); var_07 = _hint_stick_get_config_suffix(param_01,param_02,param_03,param_04,param_05,param_06); _hint_stick_update_string(var_07,param_00); _hint_stick_update_breakfunc(var_07,param_00); while(isdefined(level.current_hint)) { var_08 = _hint_stick_get_config_suffix(param_01,param_02,param_03,param_04,param_05,param_06); if(var_08 != var_07) { var_07 = var_08; _hint_stick_update_string(var_07,param_00); _hint_stick_update_breakfunc(var_07,param_00); } wait 0.05; } } //Function Number: 22 hintprint(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { var_08 = gettime(); if(!isdefined(param_06)) { param_06 = 0; } if(!isalive(self)) { return; } if(!isdefined(param_07)) { param_07 = 0; } var_09 = 1; var_0A = 0.75; var_0B = 0.95; var_0C = 0.4; var_0D = 2; if(isdefined(level.hint_fontscale)) { var_0D = level.hint_fontscale; } if(isdefined(self.current_global_hint)) { if(self.current_global_hint == param_00) { return; } } maps\_utility::ent_flag_waitopen("global_hint_in_use"); if(isdefined(self.current_global_hint)) { if(self.current_global_hint == param_00) { return; } } maps\_utility::ent_flag_set("global_hint_in_use"); self.current_global_hint = param_00; var_0E = maps\_hud_util::createclientfontstring("default",var_0D); level.current_hint = var_0E; level.hint_breakfunc = param_01; thread destroy_hint_on_friendlyfire(var_0E); level endon("friendlyfire_mission_fail"); var_0E.alpha = 0.9; var_0E.x = 0; var_0E.y = -68 + param_07; var_0E.alignx = "center"; var_0E.aligny = "middle"; var_0E.horzalign = "center"; var_0E.vertalign = "middle"; var_0E.foreground = 0; var_0E.hidewhendead = 1; var_0E.hidewheninmenu = 1; var_0E settext(param_00); if((isdefined(level.hint_nofadein) && level.hint_nofadein) || isdefined(level.slowmo.speed_slow) && level.slowmo.speed_slow < 0.1) { var_0E.alpha = var_0B; hintprintwait(0,level.hint_breakfunc); } else { var_0E.alpha = 0; var_0E fadeovertime(var_09); var_0E.alpha = var_0B; hintprintwait(var_09,level.hint_breakfunc); } var_0F = 0; if(isdefined(param_04)) { var_0F = 3; } else if(isdefined(param_03)) { var_0F = 2; } else if(isdefined(param_02)) { var_0F = 1; } var_10 = spawnstruct(); var_10.timed_out = 0; if(isdefined(param_05)) { var_10 thread hint_timeout(param_05); } if(isdefined(level.hint_breakfunc)) { for(;;) { var_0E fadeovertime(var_0A); var_0E.alpha = var_0C; hintprintwait(var_0A,level.hint_breakfunc); if(var_0F == 3) { if([[ level.hint_breakfunc ]](param_02,param_03,param_04)) { break; } } else if(var_0F == 2) { if([[ level.hint_breakfunc ]](param_02,param_03)) { break; } } else if(var_0F == 1) { if([[ level.hint_breakfunc ]](param_02)) { break; } } else if([[ level.hint_breakfunc ]]()) { break; } var_0E fadeovertime(var_0A); var_0E.alpha = var_0B; hintprintwait(var_0A,level.hint_breakfunc); if(var_10.timed_out) { break; } if(var_0F == 3) { if([[ level.hint_breakfunc ]](param_02,param_03,param_04)) { break; } continue; } if(var_0F == 2) { if([[ level.hint_breakfunc ]](param_02,param_03)) { break; } continue; } if(var_0F == 1) { if([[ level.hint_breakfunc ]](param_02)) { break; } continue; } if([[ level.hint_breakfunc ]]()) { break; } } } else { for(var_11 = 0;var_11 < 1;var_11++) { var_0E fadeovertime(var_0A); var_0E.alpha = var_0C; hintprintwait(var_0A,level.hint_breakfunc); var_0E fadeovertime(var_0A); var_0E.alpha = var_0B; hintprintwait(var_0A,level.hint_breakfunc); } } maps\_utility::wait_for_buffer_time_to_pass(var_08,param_06); var_0E notify("destroying"); self.current_global_hint = undefined; var_0E destroy(); level.current_hint = undefined; maps\_utility::ent_flag_clear("global_hint_in_use"); } //Function Number: 23 hintdisplayhandlerupdate(param_00) { level.player notify("HintDisplayHandlerEnd"); level.player endon("HintDisplayHandlerEnd"); level.player maps\_utility::ent_flag_waitopen("global_hint_in_use"); level.player maps\_utility::ent_flag_wait("global_hint_in_use"); while(level.player maps\_utility::ent_flag("global_hint_in_use")) { if(!level.player common_scripts\utility::is_player_gamepad_enabled() && isdefined(level.hint_list[param_00]["pc"])) { level.current_hint settext(level.hint_list[param_00]["pc"]); continue; } var_01 = getsticksconfig(); if(issubstr(var_01,"southpaw") && isdefined(level.hint_list[param_00]["southpaw"])) { level.current_hint settext(level.hint_list[param_00]["southpaw"]); } else { level.current_hint settext(level.hint_list[param_00]["gamepad"]); } wait(0.05); } } //Function Number: 24 hintdisplayhandlersetup(param_00) { if(!level.player common_scripts\utility::is_player_gamepad_enabled() && isdefined(level.hint_list[param_00]["pc"])) { level.trigger_hint_string[param_00] = level.hint_list[param_00]["pc"]; } else { var_01 = getsticksconfig(); if(issubstr(var_01,"southpaw") && isdefined(level.hint_list[param_00]["southpaw"])) { level.trigger_hint_string[param_00] = level.hint_list[param_00]["southpaw"]; } else { level.trigger_hint_string[param_00] = level.hint_list[param_00]["gamepad"]; } } if((isdefined(level.hint_list[param_00]["pc"]) || isdefined(level.hint_list[param_00]["southpaw"])) && ![[ level.trigger_hint_func[param_00] ]]()) { thread hintdisplayhandlerupdate(param_00); return; } level.player notify("HintDisplayHandlerEnd"); } //Function Number: 25 destroy_hint_on_friendlyfire(param_00) { param_00 endon("destroying"); level waittill("friendlyfire_mission_fail"); if(!isdefined(param_00)) { return; } self.current_global_hint = undefined; param_00 destroy(); maps\_utility::ent_flag_clear("global_hint_in_use"); } //Function Number: 26 showhintprint_struct(param_00) { param_00.timed_out = 0; if(!isalive(self)) { return; } var_01 = 1; var_02 = 0.75; var_03 = 0.95; var_04 = 0.4; maps\_utility::ent_flag_waitopen("global_hint_in_use"); maps\_utility::ent_flag_set("global_hint_in_use"); if(param_00.timed_out) { return; } if(isdefined(param_00.timeout)) { param_00 thread hint_timeout(param_00.timeout); } var_05 = maps\_hud_util::createclientfontstring("objective",2); var_05.alpha = 0.9; var_05.x = 0; var_05.y = -38; var_05.alignx = "center"; var_05.aligny = "middle"; var_05.horzalign = "center"; var_05.vertalign = "middle"; var_05.foreground = 0; var_05.hidewhendead = 1; var_05 settext(param_00.string); var_05.alpha = 0; var_05 fadeovertime(var_01); var_05.alpha = var_03; hintprintwait(var_01); for(;;) { var_05 fadeovertime(var_02); var_05.alpha = var_04; hintprintwait(var_02); if(param_00.timed_out) { break; } var_05 fadeovertime(var_02); var_05.alpha = var_03; hintprintwait(var_02); if(param_00.timed_out) { break; } } var_05 destroy(); maps\_utility::ent_flag_clear("global_hint_in_use"); } //Function Number: 27 lerp_player_view_to_tag_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08) { if(isdefined(self.first_frame_time) && self.first_frame_time == gettime()) { wait(0.1); } var_09 = self gettagorigin(param_01); var_0A = self gettagangles(param_01); param_00 maps\_utility::lerp_player_view_to_position(var_09,var_0A,param_02,param_03,param_04,param_05,param_06,param_07,param_08); if(param_08) { return; } param_00 playerlinkto(self,param_01,param_03,param_04,param_05,param_06,param_07,0); } //Function Number: 28 lerp_player_view_to_tag_oldstyle_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08) { if(isdefined(self.first_frame_time) && self.first_frame_time == gettime()) { wait(0.1); } var_09 = self gettagorigin(param_01); var_0A = self gettagangles(param_01); param_00 maps\_utility::lerp_player_view_to_position_oldstyle(var_09,var_0A,param_02,param_03,param_04,param_05,param_06,param_07,1); if(param_08) { return; } param_00 playerlinktodelta(self,param_01,param_03,param_04,param_05,param_06,param_07,0); } //Function Number: 29 function_stack_wait(param_00) { self endon("death"); param_00 common_scripts\utility::waittill_either("function_done","death"); } //Function Number: 30 function_stack_wait_finish(param_00) { function_stack_wait(param_00); if(!isdefined(self)) { return 0; } if(!issentient(self)) { return 1; } if(isalive(self)) { return 1; } return 0; } //Function Number: 31 function_stack_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { self endon("death"); if(!isdefined(param_00.function_stack)) { param_00.function_stack = []; } param_00.function_stack[param_00.function_stack.size] = self; thread function_stack_self_death(param_00); self.param1 = param_02; function_stack_caller_waits_for_turn(param_00); if(isdefined(param_00) && isdefined(param_00.function_stack)) { self.function_stack_func_begun = 1; self notify("function_stack_func_begun"); var_07 = gettime(); if(isdefined(param_06)) { param_00 [[ param_01 ]](param_02,param_03,param_04,param_05,param_06); } else if(isdefined(param_05)) { param_00 [[ param_01 ]](param_02,param_03,param_04,param_05); } else if(isdefined(param_04)) { param_00 [[ param_01 ]](param_02,param_03,param_04); } else if(isdefined(param_03)) { param_00 [[ param_01 ]](param_02,param_03); } else if(isdefined(param_02)) { param_00 [[ param_01 ]](param_02); } else { param_00 [[ param_01 ]](); } if(gettime() == var_07) { waittillframeend; } if(isdefined(param_00) && isdefined(param_00.function_stack)) { param_00.function_stack = common_scripts\utility::array_remove(param_00.function_stack,self); param_00 notify("level_function_stack_ready"); } } if(isdefined(self)) { self.function_stack_func_begun = 0; self notify("function_done"); } } //Function Number: 32 function_stack_self_death(param_00) { self endon("function_done"); self waittill("death"); if(isdefined(param_00)) { param_00.function_stack = common_scripts\utility::array_remove(param_00.function_stack,self); param_00 notify("level_function_stack_ready"); } } //Function Number: 33 function_stack_caller_waits_for_turn(param_00) { param_00 endon("death"); self endon("death"); param_00 endon("clear_function_stack"); while(isdefined(param_00.function_stack) && param_00.function_stack[0] != self) { param_00 waittill("level_function_stack_ready"); } } //Function Number: 34 unflash_flag(param_00) { level endon("player_flashed"); wait(param_00); common_scripts\utility::flag_clear("player_flashed"); } //Function Number: 35 wait_for_sounddone_or_death(param_00) { self endon("death"); param_00 waittill("sounddone"); return 1; } //Function Number: 36 init_vision_set(param_00) { level.lvl_visionset = param_00; if(!isdefined(level.vision_cheat_enabled)) { level.vision_cheat_enabled = 0; } return level.vision_cheat_enabled; } //Function Number: 37 array_waitlogic1(param_00,param_01,param_02) { array_waitlogic2(param_00,param_01,param_02); self._array_wait = 0; self notify("_array_wait"); } //Function Number: 38 array_waitlogic2(param_00,param_01,param_02) { param_00 endon(param_01); param_00 endon("death"); if(isdefined(param_02)) { wait(param_02); return; } param_00 waittill(param_01); } //Function Number: 39 exec_call(param_00) { if(param_00.parms.size == 0) { param_00.caller [[ param_00.func ]](); } else if(param_00.parms.size == 1) { param_00.caller [[ param_00.func ]](param_00.parms[0]); } else if(param_00.parms.size == 2) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1]); } else if(param_00.parms.size == 3) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2]); } if(param_00.parms.size == 4) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3]); } if(param_00.parms.size == 5) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3],param_00.parms[4]); } } //Function Number: 40 exec_call_noself(param_00) { if(param_00.parms.size == 0) { [[ param_00.func ]](); } else if(param_00.parms.size == 1) { [[ param_00.func ]](param_00.parms[0]); } else if(param_00.parms.size == 2) { [[ param_00.func ]](param_00.parms[0],param_00.parms[1]); } else if(param_00.parms.size == 3) { [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2]); } if(param_00.parms.size == 4) { [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3]); } if(param_00.parms.size == 5) { [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3],param_00.parms[4]); } } //Function Number: 41 exec_func(param_00,param_01) { if(!isdefined(param_00.caller)) { return; } for(var_02 = 0;var_02 < param_01.size;var_02++) { param_01[var_02].caller endon(param_01[var_02].ender); } if(param_00.parms.size == 0) { param_00.caller [[ param_00.func ]](); } else if(param_00.parms.size == 1) { param_00.caller [[ param_00.func ]](param_00.parms[0]); } else if(param_00.parms.size == 2) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1]); } else if(param_00.parms.size == 3) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2]); } if(param_00.parms.size == 4) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3]); } if(param_00.parms.size == 5) { param_00.caller [[ param_00.func ]](param_00.parms[0],param_00.parms[1],param_00.parms[2],param_00.parms[3],param_00.parms[4]); } } //Function Number: 42 waittill_func_ends(param_00,param_01) { self endon("all_funcs_ended"); self endon("any_funcs_aborted"); exec_func(param_00,param_01); self.count--; self notify("func_ended"); } //Function Number: 43 waittill_abort_func_ends(param_00,param_01) { self endon("all_funcs_ended"); self endon("any_funcs_aborted"); exec_func(param_00,param_01); self.abort_count--; self notify("abort_func_ended"); } //Function Number: 44 do_abort(param_00) { self endon("all_funcs_ended"); if(!param_00.size) { return; } var_01 = 0; self.abort_count = param_00.size; var_02 = []; common_scripts\utility::array_levelthread(param_00,::waittill_abort_func_ends,var_02); for(;;) { if(self.abort_count <= var_01) { break; } self waittill("abort_func_ended"); } self notify("any_funcs_aborted"); } //Function Number: 45 translate_local_on_ent(param_00) { if(isdefined(self.forward)) { var_01 = anglestoforward(param_00.angles); param_00.origin = param_00.origin + var_01 * self.forward; } if(isdefined(self.right)) { var_02 = anglestoright(param_00.angles); param_00.origin = param_00.origin + var_02 * self.right; } if(isdefined(self.up)) { var_03 = anglestoup(param_00.angles); param_00.origin = param_00.origin + var_03 * self.up; } if(isdefined(self.yaw)) { param_00 addyaw(self.yaw); } if(isdefined(self.pitch)) { param_00 addpitch(self.pitch); } if(isdefined(self.roll)) { param_00 addroll(self.roll); } } //Function Number: 46 dynamic_run_speed_proc(param_00,param_01,param_02,param_03,param_04) { self notify("start_dynamic_run_speed"); self endon("death"); self endon("stop_dynamic_run_speed"); self endon("start_dynamic_run_speed"); level endon("_stealth_spotted"); if(maps\_utility::ent_flag_exist("_stealth_custom_anim")) { maps\_utility::ent_flag_waitopen("_stealth_custom_anim"); } if(!maps\_utility::ent_flag_exist("dynamic_run_speed_stopped")) { maps\_utility::ent_flag_init("dynamic_run_speed_stopped"); maps\_utility::ent_flag_init("dynamic_run_speed_stopping"); } else { maps\_utility::ent_flag_clear("dynamic_run_speed_stopping"); maps\_utility::ent_flag_clear("dynamic_run_speed_stopped"); } self.run_speed_state = ""; self.old_moveplaybackrate = self.moveplaybackrate; thread stop_dynamic_run_speed(); var_05 = param_00 * param_00; var_06 = param_01 * param_01; var_07 = param_02 * param_02; var_08 = param_03 * param_03; for(;;) { wait(0.05); var_09 = level.players[0]; foreach(var_0B in level.players) { if(distancesquared(var_09.origin,self.origin) > distancesquared(var_0B.origin,self.origin)) { var_09 = var_0B; } } var_0D = anglestoforward(self.angles); var_0E = vectornormalize(var_09.origin - self.origin); var_0F = vectordot(var_0D,var_0E); var_10 = distancesquared(self.origin,var_09.origin); var_11 = var_10; if(isdefined(param_04)) { var_12 = common_scripts\utility::getclosest(var_09.origin,param_04); var_11 = distancesquared(var_12.origin,var_09.origin); } var_13 = 0; if(isdefined(self.last_set_goalent)) { var_13 = [[ level.drs_ahead_test ]](self.last_set_goalent,param_01); } else if(isdefined(self.last_set_goalnode)) { var_13 = [[ level.drs_ahead_test ]](self.last_set_goalnode,param_01); } if(isdefined(self.cqbwalking) && self.cqbwalking && !self.dontchangemoveplaybackrate) { self.moveplaybackrate = 1; } if(var_10 < var_06 || var_0F > -0.25 || var_13) { dynamic_run_set("sprint"); wait(0.5); continue; } else if(var_10 < var_05 || var_0F > -0.25) { dynamic_run_set("run"); wait(0.5); continue; } else if(var_11 > var_07) { if(self.a.movement != "stop") { dynamic_run_set("stop"); wait(0.5); } continue; } else if(var_10 > var_08) { dynamic_run_set("jog"); wait(0.5); continue; } } } //Function Number: 47 stop_dynamic_run_speed() { self endon("start_dynamic_run_speed"); self endon("death"); stop_dynamic_run_speed_wait(); if(!self.dontchangemoveplaybackrate) { self.moveplaybackrate = self.old_moveplaybackrate; } if(isdefined(level.scr_anim["generic"]["DRS_run"])) { if(isarray(level.scr_anim["generic"]["DRS_run"])) { maps\_utility::set_generic_run_anim_array("DRS_run"); } else { maps\_utility::set_generic_run_anim("DRS_run"); } } else { maps\_utility::clear_run_anim(); } self notify("stop_loop"); maps\_utility::ent_flag_clear("dynamic_run_speed_stopping"); maps\_utility::ent_flag_clear("dynamic_run_speed_stopped"); } //Function Number: 48 stop_dynamic_run_speed_wait() { level endon("_stealth_spotted"); self waittill("stop_dynamic_run_speed"); } //Function Number: 49 dynamic_run_ahead_test(param_00,param_01) { if(!isdefined(param_00.classname)) { if(!isdefined(param_00.type)) { var_02 = ::maps\_spawner::get_target_structs; } else { var_02 = ::maps\_spawner::get_target_nodes; } } else { var_02 = ::maps\_spawner::get_target_ents; } return maps\_spawner::go_to_node_wait_for_player(param_00,var_02,param_01); } //Function Number: 50 dynamic_run_set(param_00) { if(self.run_speed_state == param_00) { return; } self.run_speed_state = param_00; switch(param_00) { case "sprint": if(isdefined(self.cqbwalking) && self.cqbwalking && !self.dontchangemoveplaybackrate) { self.moveplaybackrate = 1; } else if(!self.dontchangemoveplaybackrate) { self.moveplaybackrate = 1.15; } if(isarray(level.scr_anim["generic"]["DRS_sprint"])) { maps\_utility::set_generic_run_anim_array("DRS_sprint"); } else { maps\_utility::set_generic_run_anim("DRS_sprint"); } self notify("stop_loop"); maps\_utility::anim_stopanimscripted(); maps\_utility::ent_flag_clear("dynamic_run_speed_stopped"); break; case "run": if(!self.dontchangemoveplaybackrate) { self.moveplaybackrate = self.old_moveplaybackrate; } if(isdefined(level.scr_anim["generic"]["DRS_run"])) { if(isarray(level.scr_anim["generic"]["DRS_run"])) { maps\_utility::set_generic_run_anim_array("DRS_run"); } else { maps\_utility::set_generic_run_anim("DRS_run"); } } else { maps\_utility::clear_run_anim(); } self notify("stop_loop"); maps\_utility::anim_stopanimscripted(); maps\_utility::ent_flag_clear("dynamic_run_speed_stopped"); break; case "stop": thread dynamic_run_speed_stopped(); break; case "jog": if(!self.dontchangemoveplaybackrate) { self.moveplaybackrate = self.old_moveplaybackrate; } if(isdefined(level.scr_anim["generic"]["DRS_combat_jog"])) { if(isarray(level.scr_anim["generic"]["DRS_combat_jog"])) { maps\_utility::set_generic_run_anim_array("DRS_combat_jog"); } else { maps\_utility::set_generic_run_anim("DRS_combat_jog"); } } else { maps\_utility::clear_run_anim(); } self notify("stop_loop"); maps\_utility::anim_stopanimscripted(); maps\_utility::ent_flag_clear("dynamic_run_speed_stopped"); break; case "crouch": break; } } //Function Number: 51 dynamic_run_speed_stopped() { self endon("death"); if(maps\_utility::ent_flag("dynamic_run_speed_stopped")) { return; } if(maps\_utility::ent_flag("dynamic_run_speed_stopping")) { return; } self endon("stop_dynamic_run_speed"); maps\_utility::ent_flag_set("dynamic_run_speed_stopping"); maps\_utility::ent_flag_set("dynamic_run_speed_stopped"); self endon("dynamic_run_speed_stopped"); var_00 = "DRS_run_2_stop"; maps\_anim::anim_generic_custom_animmode(self,"gravity",var_00); maps\_utility::ent_flag_clear("dynamic_run_speed_stopping"); while(maps\_utility::ent_flag("dynamic_run_speed_stopped")) { var_01 = "DRS_stop_idle"; thread maps\_anim::anim_generic_loop(self,var_01); if(isdefined(level.scr_anim["generic"]["signal_go"])) { maps\_utility::handsignal("go"); } wait(randomfloatrange(12,20)); if(maps\_utility::ent_flag_exist("_stealth_stance_handler")) { maps\_utility::ent_flag_waitopen("_stealth_stance_handler"); } self notify("stop_loop"); if(!maps\_utility::ent_flag("dynamic_run_speed_stopped")) { return; } if(isdefined(level.dynamic_run_speed_dialogue)) { var_02 = common_scripts\utility::random(level.dynamic_run_speed_dialogue); level thread maps\_utility::radio_dialogue_queue(var_02); } if(isdefined(level.scr_anim["generic"]["signal_go"])) { maps\_utility::handsignal("go"); } } } //Function Number: 52 g_speed_get_func() { return int(getdvar("g_speed")); } //Function Number: 53 g_speed_set_func(param_00) { setsaveddvar("g_speed",int(param_00)); } //Function Number: 54 g_bob_scale_get_func() { return level.player getbobrate(); } //Function Number: 55 g_bob_scale_set_func(param_00) { level.player setbobrate(param_00); } //Function Number: 56 movespeed_get_func() { return self.movespeedscale; } //Function Number: 57 movespeed_set_func(param_00) { self.movespeedscale = param_00; self setmovespeedscale(param_00); } //Function Number: 58 movespeed_ramp_over_time(param_00,param_01,param_02,param_03,param_04) { param_00 notify("movespeed_ramp_over_time"); param_00 endon("movespeed_ramp_over_time"); var_05 = param_01; var_06 = param_02 - param_01 * 0.05 / param_03; var_07 = 0; while(var_07 < param_03) { var_05 = var_05 + var_06; if(isai(param_00)) { param_00 maps\_utility::set_moveplaybackrate(var_05,undefined,param_04); } else { param_00 setmovespeedscale(var_05); } wait 0.05; var_07 = var_07 + 0.05; } if(isai(param_00)) { param_00 maps\_utility::set_moveplaybackrate(param_02,undefined,param_04); return; } param_00 setmovespeedscale(param_02); } //Function Number: 59 autosave_tactical_setup() { if(common_scripts\utility::flag_exist("autosave_tactical_player_nade")) { return; } common_scripts\utility::flag_init("autosave_tactical_player_nade"); level.autosave_tactical_player_nades = 0; notifyoncommand("autosave_player_nade","+frag"); notifyoncommand("autosave_player_nade","-smoke"); notifyoncommand("autosave_player_nade","+smoke"); common_scripts\utility::array_thread(level.players,::autosave_tactical_grenade_check); } //Function Number: 60 autosave_tactical_grenade_check() { for(;;) { self waittill("autosave_player_nade"); common_scripts\utility::flag_set("autosave_tactical_player_nade"); self waittill("grenade_fire",var_00); thread autosave_tactical_grenade_check_dieout(var_00); } } //Function Number: 61 autosave_tactical_grenade_check_dieout(param_00) { level.autosave_tactical_player_nades++; param_00 common_scripts\utility::waittill_notify_or_timeout("death",10); level.autosave_tactical_player_nades--; waittillframeend; if(!level.autosave_tactical_player_nades) { common_scripts\utility::flag_clear("autosave_tactical_player_nade"); } } //Function Number: 62 autosave_tactical_proc() { level notify("autosave_tactical_proc"); level endon("autosave_tactical_proc"); level thread maps\_utility::notify_delay("kill_save",5); level endon("kill_save"); level endon("autosave_tactical_player_nade"); if(common_scripts\utility::flag("autosave_tactical_player_nade")) { common_scripts\utility::flag_waitopen_or_timeout("autosave_tactical_player_nade",4); if(common_scripts\utility::flag("autosave_tactical_player_nade")) { return; } } var_00 = getaiarray("axis"); foreach(var_02 in var_00) { if(isdefined(var_02.enemy) && isplayer(var_02.enemy)) { return; } } waittillframeend; maps\_utility::autosave_by_name(); } //Function Number: 63 music_play_internal_stop_with_fade_then_call(param_00,param_01,param_02,param_03) { maps\_utility::music_stop(param_01); level endon("stop_music"); wait(param_01); thread maps\_utility::music_play(param_00,undefined,param_02,param_03); } //Function Number: 64 music_loop_internal_stop_with_fade_then_call(param_00,param_01,param_02,param_03,param_04,param_05) { maps\_utility::music_stop(param_02); level endon("stop_music"); wait(param_02); thread music_loop_internal(param_00,param_01,undefined,param_03,param_04,param_05); } //Function Number: 65 music_loop_internal(param_00,param_01,param_02,param_03,param_04,param_05) { if(isdefined(param_02) && param_02 > 0) { thread music_loop_internal_stop_with_fade_then_call(param_00,param_01,param_02,param_03,param_04,param_05); return; } maps\_utility::music_stop(); level endon("stop_music"); maps\_utility::musicplaywrapper(param_00,param_03,param_04); if(isdefined(param_05) && param_05 == 1 && common_scripts\utility::flag_exist("_stealth_spotted")) { level endon("_stealth_spotted"); thread music_loop_stealth_pause(param_00,param_01,param_02); } var_06 = maps\_utility::musiclength(param_00); if(!isdefined(param_01)) { param_01 = 1; } if(param_01 <= 10) { var_06 = var_06 + param_01; } wait(var_06); maps\_utility::music_loop(param_00,param_01,param_02,param_03,param_04); } //Function Number: 66 music_loop_stealth_pause(param_00,param_01,param_02) { level endon("stop_music"); common_scripts\utility::flag_wait("_stealth_spotted"); musicstop(0.5); while(common_scripts\utility::flag("_stealth_spotted")) { common_scripts\utility::flag_waitopen("_stealth_spotted"); wait(1); } thread maps\_utility::music_loop(param_00,param_01,param_02); } //Function Number: 67 doslide(param_00,param_01,param_02) { self endon("death"); self endon("stop_sliding"); var_03 = self; var_04 = undefined; for(;;) { var_05 = var_03 getnormalizedmovement(); var_06 = anglestoforward(var_03.angles); var_07 = anglestoright(var_03.angles); var_05 = (var_05[1] * var_07[0] + var_05[0] * var_06[0],var_05[1] * var_07[1] + var_05[0] * var_06[1],0); param_00.slidevelocity = param_00.slidevelocity + var_05 * param_01; wait(0.05); param_00.slidevelocity = param_00.slidevelocity * 1 - param_02; } } //Function Number: 68 kill_deathflag_proc(param_00,param_01) { self endon("death"); if(isdefined(param_00)) { wait(randomfloat(param_00)); } if(isdefined(param_01) && param_01 && maps\_utility::player_can_see_ai(self)) { return; } playfxontag(common_scripts\utility::getfx("flesh_hit"),self,"tag_eye"); self kill(level.player.origin); } //Function Number: 69 update_rumble_intensity(param_00,param_01) { self endon("death"); var_02 = 0; for(;;) { if(self.intensity > 0.0001 && gettime() > 300) { if(!var_02) { self playrumblelooponentity(param_01); var_02 = 1; } } else if(var_02) { self stoprumble(param_01); var_02 = 0; } var_03 = 1 - self.intensity; var_03 = var_03 * 1000; if(isdefined(self.rumble_base_entity)) { self.origin = self.rumble_base_entity.origin + (0,0,var_03); } else { self.origin = param_00 geteye() + (0,0,var_03); } wait(0.05); } } //Function Number: 70 start_glow(param_00) { var_01 = spawn("script_model",self.origin); self.glow_model = var_01; var_01.angles = self.angles; var_01 setmodel(param_00); var_01 endon("death"); self waittill("death"); var_01 delete(); } //Function Number: 71 process_blend(param_00,param_01,param_02,param_03,param_04) { waittillframeend; if(!isdefined(self.start)) { self.start = 0; } if(!isdefined(self.end)) { self.end = 1; } if(!isdefined(self.base)) { self.base = 0; } var_05 = self.time * 20; var_06 = self.end - self.start; self.stop_blend = 0; if(isdefined(param_04)) { for(var_07 = 0;var_07 <= var_05 && !self.stop_blend;var_07++) { var_08 = self.base + var_07 * var_06 / var_05; param_01 thread [[ param_00 ]](var_08,param_02,param_03,param_04); wait(0.05); } return; } if(isdefined(var_05)) { for(var_07 = 0;var_07 <= var_05 && !self.stop_blend;var_07++) { var_08 = self.base + var_07 * var_06 / var_05; param_01 thread [[ param_00 ]](var_08,param_02,param_03); wait(0.05); } return; } if(isdefined(param_04)) { for(var_07 = 0;var_07 <= var_05 && !self.stop_blend;var_07++) { var_08 = self.base + var_07 * var_06 / var_05; param_01 thread [[ param_00 ]](var_08,param_02); wait(0.05); } return; } for(var_07 = 0;var_07 <= var_05 && !self.stop_blend;var_07++) { var_08 = self.base + var_07 * var_06 / var_05; param_01 thread [[ param_00 ]](var_08); wait(0.05); } } //Function Number: 72 add_trace_fx_proc(param_00) { waittillframeend; if(!isdefined(level.trace_fx)) { level.trace_fx = []; } if(!isdefined(level.trace_fx)) { level.trace_fx[param_00] = []; } if(isdefined(self.fx)) { level.trace_fx[param_00][self.surface]["fx"] = self.fx; } if(isdefined(self.fx_array)) { level.trace_fx[param_00][self.surface]["fx_array"] = self.fx_array; } if(isdefined(self.sound)) { level.trace_fx[param_00][self.surface]["sound"] = self.sound; } if(isdefined(self.rumble)) { level.trace_fx[param_00][self.surface]["rumble"] = self.rumble; } if(!isdefined(level.trace_fx[param_00]["default"])) { level.trace_fx[param_00]["default"] = level.trace_fx[param_00][self.surface]; } } //Function Number: 73 put_toy_in_volume(param_00) { var_01 = spawnstruct(); precachemodel(param_00.model); var_01.toy_model = param_00.model; var_01.origin = param_00.origin; var_01.angles = param_00.angles; var_01.script_noteworthy = param_00.script_noteworthy; var_01.script_linkto = param_00.script_linkto; var_01.targetname = param_00.targetname; var_01.target = param_00.target; var_01.destructible_type = param_00.destructible_type; var_01.script_noflip = param_00.script_noflip; param_00 maps\_utility::precache_destructible(param_00.destructible_type); self.destructibles[self.destructibles.size] = var_01; param_00 notify("masking_destructible"); param_00 delete(); } //Function Number: 74 delaythread_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { self endon("death"); self endon("stop_delay_thread"); wait(param_01); if(isdefined(param_07)) { thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07); return; } if(isdefined(param_06)) { thread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06); return; } if(isdefined(param_05)) { thread [[ param_00 ]](param_02,param_03,param_04,param_05); return; } if(isdefined(param_04)) { thread [[ param_00 ]](param_02,param_03,param_04); return; } if(isdefined(param_03)) { thread [[ param_00 ]](param_02,param_03); return; } if(isdefined(param_02)) { thread [[ param_00 ]](param_02); return; } thread [[ param_00 ]](); } //Function Number: 75 delaychildthread_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { self endon("death"); self endon("stop_delay_thread"); wait(param_01); if(isdefined(param_07)) { childthread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07); return; } if(isdefined(param_06)) { childthread [[ param_00 ]](param_02,param_03,param_04,param_05,param_06); return; } if(isdefined(param_05)) { childthread [[ param_00 ]](param_02,param_03,param_04,param_05); return; } if(isdefined(param_04)) { childthread [[ param_00 ]](param_02,param_03,param_04); return; } if(isdefined(param_03)) { childthread [[ param_00 ]](param_02,param_03); return; } if(isdefined(param_02)) { childthread [[ param_00 ]](param_02); return; } childthread [[ param_00 ]](); } //Function Number: 76 flagwaitthread_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { self endon("death"); self endon(maps\_utility::string(param_01[0] + "_stop_flagWaitThread")); common_scripts\utility::flag_wait(param_01[0]); delaythread_proc(param_00,param_01[1],param_02,param_03,param_04,param_05,param_06,param_07); } //Function Number: 77 waittillthread_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { self endon("death"); self endon(maps\_utility::string(param_01[0] + "_stop_waittillThread")); self waittill(param_01[0]); delaythread_proc(param_00,param_01[1],param_02,param_03,param_04,param_05,param_06,param_07); } //Function Number: 78 add_wait_asserter() { level notify("kill_add_wait_asserter"); level endon("kill_add_wait_asserter"); for(var_00 = 0;var_00 < 20;var_00++) { waittillframeend; } } //Function Number: 79 update_battlechatter_hud() { } //Function Number: 80 comparesizesfx(param_00,param_01,param_02,param_03) { if(!param_01.size) { return undefined; } if(isdefined(param_02)) { var_04 = undefined; var_05 = getarraykeys(param_01); for(var_06 = 0;var_06 < var_05.size;var_06++) { var_07 = distance(param_01[var_05[var_06]].v["origin"],param_00); if([[ param_03 ]](var_07,param_02)) { continue; } param_02 = var_07; var_04 = param_01[var_05[var_06]]; } return var_04; } var_05 = getarraykeys(var_05); var_04 = var_04[var_07[0]]; var_04 = distance(var_07.v["origin"],param_02); for(var_06 = 1;var_06 < var_04.size;var_06++) { var_07 = distance(param_01[var_04[var_06]].v["origin"],param_00); if([[ param_03 ]](var_07,param_02)) { continue; } param_02 = var_07; var_05 = param_01[var_04[var_06]]; } return var_05; } //Function Number: 81 waittill_triggered_current() { for(;;) { self waittill("trigger",var_00); waittillframeend; if(var_00.currentnode == self) { return var_00; } } } //Function Number: 82 add_trigger_func_thread() { self.trigger_functions = []; self waittill("trigger",var_00); var_01 = self.trigger_functions; self.trigger_functions = undefined; foreach(var_03 in var_01) { thread [[ var_03 ]](var_00); } } //Function Number: 83 add_to_radio(param_00) { if(!isdefined(level.scr_radio[param_00])) { level.scr_radio[param_00] = param_00; } } //Function Number: 84 add_to_dialogue(param_00) { if(!isdefined(level.scr_anim[self.animname])) { level.scr_anim[self.animname] = []; } if(!isdefined(level.scr_sound[self.animname])) { level.scr_sound[self.animname] = []; } if(!isdefined(level.scr_sound[self.animname][param_00])) { level.scr_sound[self.animname][param_00] = param_00; } } //Function Number: 85 add_to_dialogue_generic(param_00) { if(!isdefined(level.scr_sound["generic"])) { level.scr_sound["generic"] = []; } if(!isdefined(level.scr_sound["generic"][param_00])) { level.scr_sound["generic"][param_00] = param_00; } } //Function Number: 86 objective_recon(param_00) { if(!maps\_utility::is_default_start()) { return; } var_01 = get_leveltime(); var_02 = var_01; if(isdefined(level.recon_objective_lasttime)) { var_02 = var_01 - level.recon_objective_lasttime; } level.recon_objective_lasttime = var_01; reconevent("script_objective: objective %d, leveltime %d, deltatime %d",param_00,var_01,var_02); } //Function Number: 87 mission_recon(param_00) { if(maps\_utility::is_default_start()) { if(!isdefined(param_00)) { param_00 = 1; } var_01 = get_leveltime(); var_02 = var_01; reconevent("script_level: leveltime %d, deltatime %d, success %d",var_02,var_01,param_00); } } //Function Number: 88 get_leveltime() { return getlevelticks() * 0.05; } //Function Number: 89 _flag_wait_trigger(param_00,param_01) { self endon("death"); for(;;) { self waittill("trigger",var_02); common_scripts\utility::flag_set(param_00); if(!param_01) { return; } while(var_02 istouching(self)) { wait(0.05); } common_scripts\utility::flag_clear(param_00); } } //Function Number: 90 ai_save_ignore_setting(param_00,param_01,param_02) { if(isdefined(param_00)) { self._ignore_settings_old[param_01] = param_00; } else { self._ignore_settings_old[param_01] = "none"; } return param_02; } //Function Number: 91 ai_restore_ignore_setting(param_00,param_01) { if(isdefined(self._ignore_settings_old)) { if(isstring(self._ignore_settings_old[param_00]) && self._ignore_settings_old[param_00] == "none") { return param_01; } else { return self._ignore_settings_old[param_00]; } } return param_01; } //Function Number: 92 _tff_sync_triggers() { var_00 = getentarray("tff_sync_trigger","targetname"); if(!isdefined(var_00)) { return; } foreach(var_02 in var_00) { var_02 thread _tff_sync_trigger_think(); } } //Function Number: 93 _tff_sync_trigger_think() { self waittill("trigger"); maps\_utility::tff_sync(); }