/******************************************************************* * Decompiled By: Bog * Decompiled File: common_scripts\utility.gsc * Game: Call of Duty: Black Ops 2 * Platform: PC * Function Count: 124 * Decompile Time: 21 ms * Timestamp: 10/28/2023 12:10:20 AM *******************************************************************/ //Function Number: 1 init_session_mode_flags() { level.gamemode_public_match = 0; level.gamemode_private_match = 1; level.gamemode_local_splitscreen = 2; level.gamemode_wager_match = 3; level.gamemode_theater = 5; level.gamemode_league_match = 6; level.gamemode_rts = 7; level.language = GetDvar(#"5A6B41C9"); } //Function Number: 2 empty(a,b,c,d,e) { } //Function Number: 3 add_to_array(array,item,allow_dupes) { if(!(IsDefined(item))) { return array; } if(!(IsDefined(allow_dupes))) { allow_dupes = 1; } if(!(IsDefined(array))) { array[0] = item; } else if(allow_dupes || !isinarray(array,item)) { array[array.size] = item; } return array; } //Function Number: 4 array_copy(array) { a_copy = []; foreach(elem in array) { a_copy[a_copy.size] = elem; } return a_copy; } //Function Number: 5 array_delete(array,is_struct) { foreach(ent in array) { if(IsDefined(is_struct) && is_struct) { ent structdelete(); ent = undefined; } else if(IsDefined(ent)) { ent delete(); } } } //Function Number: 6 array_randomize(array) { for(i = 0;i < array.size;i++) { j = randomint(array.size); temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } //Function Number: 7 array_reverse(array) { array2 = []; for(i = array.size - 1;i >= 0;i--) { array2[array2.size] = array[i]; } return array2; } //Function Number: 8 array_exclude(array,arrayexclude) { newarray = array; if(isarray(arrayexclude)) { for(i = 0;i < arrayexclude.size;i++) { arrayremovevalue(newarray,arrayexclude[i]); } } else { arrayremovevalue(newarray,arrayexclude); } return newarray; } //Function Number: 9 array_notify(ents,notifier) { for(i = 0;i < ents.size;i++) { ents[i] notify(notifier); } } //Function Number: 10 array_wait(array,msg,timeout) { keys = getarraykeys(array); structs = []; for(i = 0;i < keys.size;i++) { key = keys[i]; structs[key] = spawnstruct(); structs[key]._array_wait = 1; structs[key] thread array_waitlogic1(array[key],msg,timeout); } for(i = 0;i < keys.size;i++) { key = keys[i]; if(IsDefined(array[key]) && structs[key]._array_wait) { structs[key] waittill("_array_wait"); } } } //Function Number: 11 array_wait_any(array,msg,timeout) { if(array.size == 0) { return undefined; } keys = getarraykeys(array); structs = []; internal_msg = msg + "array_wait"; for(i = 0;i < keys.size;i++) { key = keys[i]; structs[key] = spawnstruct(); structs[key]._array_wait = 1; structs[key] thread array_waitlogic3(array[key],msg,internal_msg,timeout); } level waittill(internal_msg,ent); return ent; } //Function Number: 12 array_waitlogic1(ent,msg,timeout) { self array_waitlogic2(ent,msg,timeout); self._array_wait = 0; self notify("_array_wait"); } //Function Number: 13 array_waitlogic2(ent,msg,timeout) { ent endon(msg); ent endon("death"); if(IsDefined(timeout)) { wait(timeout); } else { ent waittill(msg); } } //Function Number: 14 array_waitlogic3(ent,msg,internal_msg,timeout) { if(msg != "death") { ent endon("death"); } level endon(internal_msg); self array_waitlogic2(ent,msg,timeout); level notify(internal_msg,ent); } //Function Number: 15 array_check_for_dupes(array,single) { for(i = 0;i < array.size;i++) { if(array[i] == single) { return 0; } } return 1; } //Function Number: 16 array_swap(array,index1,index2) { /# assert(index1 < array.size,"index1 to swap out of range"); #/ /# assert(index2 < array.size,"index2 to swap out of range"); #/ temp = array[index1]; array[index1] = array[index2]; array[index2] = temp; return array; } //Function Number: 17 array_average(array) { /# assert(isarray(array)); #/ /# assert(array.size > 0); #/ total = 0; for(i = 0;i < array.size;i++) { total = total + array[i]; } return total / array.size; } //Function Number: 18 array_std_deviation(array,mean) { /# assert(isarray(array)); #/ /# assert(array.size > 0); #/ tmp = []; for(i = 0;i < array.size;i++) { tmp[i] = array[i] - mean * array[i] - mean; } total = 0; for(i = 0;i < tmp.size;i++) { total = total + tmp[i]; } return sqrt(total / array.size); } //Function Number: 19 random_normal_distribution(mean,std_deviation,lower_bound,upper_bound) { x1 = 0; x2 = 0; w = 1; y1 = 0; while(w >= 1) { x1 = 2 * randomfloatrange(0,1) - 1; x2 = 2 * randomfloatrange(0,1) - 1; w = x1 * x1 + x2 * x2; } w = sqrt(-2 * log(w) / w); y1 = x1 * w; number = mean + y1 * std_deviation; if(IsDefined(lower_bound) && number < lower_bound) { number = lower_bound; } if(IsDefined(upper_bound) && number > upper_bound) { number = upper_bound; } return number; } //Function Number: 20 random(array) { keys = getarraykeys(array); return array[keys[randomint(keys.size)]]; } //Function Number: 21 get_players(str_team) { if(IsDefined(str_team)) { return getplayers(str_team); } else { return getplayers(); } } //Function Number: 22 is_prefix(msg,prefix) { if(prefix.size > msg.size) { return 0; } for(i = 0;i < prefix.size;i++) { if(msg[i] != prefix[i]) { return 0; } } return 1; } //Function Number: 23 is_suffix(msg,suffix) { if(suffix.size > msg.size) { return 0; } for(i = 0;i < suffix.size;i++) { if(msg[msg.size - 1 - i] != suffix[suffix.size - 1 - i]) { return 0; } } return 1; } //Function Number: 24 vector_compare(vec1,vec2) { return Abs(vec1[0] - vec2[0]) < 0.001 && Abs(vec1[1] - vec2[1]) < 0.001 && Abs(vec1[2] - vec2[2]) < 0.001; } //Function Number: 25 draw_debug_line(start,end,timer) { /# for(i = 0;i < timer * 20;i++) { line(start,end,(1,1,0.5)); wait(0.05); } #/ } //Function Number: 26 waittillend(msg) { self waittillmatch return msg; } //Function Number: 27 random_vector(max_length) { return (randomfloatrange(-1 * max_length,max_length),randomfloatrange(-1 * max_length,max_length),randomfloatrange(-1 * max_length,max_length)); } //Function Number: 28 angle_dif(oldangle,newangle) { outvalue = oldangle - newangle % 360; if(outvalue < 0) { outvalue = outvalue + 360; } if(outvalue > 180) { outvalue = outvalue - 360 * -1; } return outvalue; } //Function Number: 29 sign(x) { if(x >= 0) { return 1; } return -1; } //Function Number: 30 track(spot_to_track) { if(IsDefined(self.current_target)) { if(spot_to_track == self.current_target) { return; } } self.current_target = spot_to_track; } //Function Number: 31 clear_exception(type) { /# assert(IsDefined(self.exception[type])); #/ self.exception[type] = anim.defaultexception; } //Function Number: 32 set_exception(type,func) { /# assert(IsDefined(self.exception[type])); #/ self.exception[type] = func; } //Function Number: 33 set_all_exceptions(exceptionfunc) { keys = getarraykeys(self.exception); for(i = 0;i < keys.size;i++) { self.exception[keys[i]] = exceptionfunc; } } //Function Number: 34 cointoss() { return randomint(100) >= 50; } //Function Number: 35 waittill_string(msg,ent) { if(msg != "death") { self endon("death"); } ent endon("die"); self waittill(msg); ent notify("returned",msg); } //Function Number: 36 waittill_multiple(string1,string2,string3,string4,string5) { self endon("death"); ent = spawnstruct(); ent.threads = 0; if(IsDefined(string1)) { self thread waittill_string(string1,ent); ent.threads++; } if(IsDefined(string2)) { self thread waittill_string(string2,ent); ent.threads++; } if(IsDefined(string3)) { self thread waittill_string(string3,ent); ent.threads++; } if(IsDefined(string4)) { self thread waittill_string(string4,ent); ent.threads++; } if(IsDefined(string5)) { self thread waittill_string(string5,ent); ent.threads++; } while(ent.threads) { ent waittill("returned"); ent.threads--; } ent notify("die"); } //Function Number: 37 waittill_multiple_ents(ent1,string1,ent2,string2,ent3,string3,ent4,string4) { self endon("death"); ent = spawnstruct(); ent.threads = 0; if(IsDefined(ent1)) { /# assert(IsDefined(string1)); #/ ent1 thread waittill_string(string1,ent); ent.threads++; } if(IsDefined(ent2)) { /# assert(IsDefined(string2)); #/ ent2 thread waittill_string(string2,ent); ent.threads++; } if(IsDefined(ent3)) { /# assert(IsDefined(string3)); #/ ent3 thread waittill_string(string3,ent); ent.threads++; } if(IsDefined(ent4)) { /# assert(IsDefined(string4)); #/ ent4 thread waittill_string(string4,ent); ent.threads++; } while(ent.threads) { ent waittill("returned"); ent.threads--; } ent notify("die"); } //Function Number: 38 waittill_any_return(string1,string2,string3,string4,string5,string6,string7) { if((!IsDefined(string1) || string1 != "death") && (!IsDefined(string2) || string2 != "death") && (!IsDefined(string3) || string3 != "death") && (!IsDefined(string4) || string4 != "death") && (!IsDefined(string5) || string5 != "death") && (!IsDefined(string6) || string6 != "death") && !IsDefined(string7) || string7 != "death") { self endon("death"); } ent = spawnstruct(); if(IsDefined(string1)) { self thread waittill_string(string1,ent); } if(IsDefined(string2)) { self thread waittill_string(string2,ent); } if(IsDefined(string3)) { self thread waittill_string(string3,ent); } if(IsDefined(string4)) { self thread waittill_string(string4,ent); } if(IsDefined(string5)) { self thread waittill_string(string5,ent); } if(IsDefined(string6)) { self thread waittill_string(string6,ent); } if(IsDefined(string7)) { self thread waittill_string(string7,ent); } ent waittill("returned",msg); ent notify("die"); return msg; } //Function Number: 39 waittill_any_array_return(a_notifies) { if(isinarray(a_notifies,"death")) { self endon("death"); } s_tracker = spawnstruct(); foreach(str_notify in a_notifies) { if(IsDefined(str_notify)) { self thread waittill_string(str_notify,s_tracker); } } s_tracker waittill(_k825,"returned",msg); s_tracker notify("die"); return msg; } //Function Number: 40 waittill_any(str_notify1,str_notify2,str_notify3,str_notify4,str_notify5) { /# assert(IsDefined(str_notify1)); #/ waittill_any_array(array(str_notify1,str_notify2,str_notify3,str_notify4,str_notify5)); } //Function Number: 41 waittill_any_array(a_notifies) { /# assert(IsDefined(a_notifies[0]),"At least the first element has to be defined for waittill_any_array."); #/ for(i = 1;i < a_notifies.size;i++) { if(IsDefined(a_notifies[i])) { self endon(a_notifies[i]); } } self waittill(a_notifies[0]); } //Function Number: 42 waittill_any_timeout(n_timeout,string1,string2,string3,string4,string5) { if((!IsDefined(string1) || string1 != "death") && (!IsDefined(string2) || string2 != "death") && (!IsDefined(string3) || string3 != "death") && (!IsDefined(string4) || string4 != "death") && !IsDefined(string5) || string5 != "death") { self endon("death"); } ent = spawnstruct(); if(IsDefined(string1)) { self thread waittill_string(string1,ent); } if(IsDefined(string2)) { self thread waittill_string(string2,ent); } if(IsDefined(string3)) { self thread waittill_string(string3,ent); } if(IsDefined(string4)) { self thread waittill_string(string4,ent); } if(IsDefined(string5)) { self thread waittill_string(string5,ent); } ent thread _timeout(n_timeout); ent waittill("returned",msg); ent notify("die"); return msg; } //Function Number: 43 _timeout(delay) { self endon("die"); wait(delay); self notify("returned","timeout"); } //Function Number: 44 waittill_any_ents(ent1,string1,ent2,string2,ent3,string3,ent4,string4,ent5,string5,ent6,string6,ent7,string7) { /# assert(IsDefined(ent1)); #/ /# assert(IsDefined(string1)); #/ if(IsDefined(ent2) && IsDefined(string2)) { ent2 endon(string2); } if(IsDefined(ent3) && IsDefined(string3)) { ent3 endon(string3); } if(IsDefined(ent4) && IsDefined(string4)) { ent4 endon(string4); } if(IsDefined(ent5) && IsDefined(string5)) { ent5 endon(string5); } if(IsDefined(ent6) && IsDefined(string6)) { ent6 endon(string6); } if(IsDefined(ent7) && IsDefined(string7)) { ent7 endon(string7); } ent1 waittill(string1); } //Function Number: 45 waittill_any_ents_two(ent1,string1,ent2,string2) { /# assert(IsDefined(ent1)); #/ /# assert(IsDefined(string1)); #/ if(IsDefined(ent2) && IsDefined(string2)) { ent2 endon(string2); } ent1 waittill(string1); } //Function Number: 46 waittill_flag_exists(msg) { while(!(flag_exists(msg))) { waittillframeend; if(flag_exists(msg)) { break; } wait(0.05); } } //Function Number: 47 isflashed() { if(!(IsDefined(self.flashendtime))) { return 0; } return GetTime() < self.flashendtime; } //Function Number: 48 isstunned() { if(!(IsDefined(self.flashendtime))) { return 0; } return GetTime() < self.flashendtime; } //Function Number: 49 flag(flagname) { /# assert(IsDefined(flagname),"Tried to check flag but the flag was not defined."); #/ /# assert(IsDefined(level.flag[flagname]),"Tried to check flag " + flagname + " but the flag was not initialized."); #/ if(!(level.flag[flagname])) { return 0; } return 1; } //Function Number: 50 flag_delete(flagname) { if(IsDefined(level.flag[flagname])) { level.flag[flagname] = undefined; } else { /# println("flag_delete() called on flag that does not exist: " + flagname); } #/ } //Function Number: 51 flag_init(flagname,val,b_is_trigger) { if(!(IsDefined(b_is_trigger))) { b_is_trigger = 0; } if(!(IsDefined(level.flag))) { level.flag = []; } if(!(IsDefined(level.sp_stat_tracking_func))) { level.sp_stat_tracking_func = ::empty; } if(!(IsDefined(level.first_frame))) { /# assert(!IsDefined(level.flag[flagname]),"Attempt to reinitialize existing flag: " + flagname); } #/ if(IsDefined(val) && val) { level.flag[flagname] = 1; } else { level.flag[flagname] = 0; } if(b_is_trigger) { if(!(IsDefined(level.trigger_flags))) { init_trigger_flags(); level.trigger_flags[flagname] = []; } else if(!(IsDefined(level.trigger_flags[flagname]))) { level.trigger_flags[flagname] = []; } } if(is_suffix(flagname,"aa_")) { thread [[ level.sp_stat_tracking_func ]](flagname); } } //Function Number: 52 flag_set(flagname) { /# /# assert(IsDefined(level.flag[flagname]),"Attempt to set a flag before calling flag_init: " + flagname); #/ #/ level.flag[flagname] = 1; level notify(flagname); set_trigger_flag_permissions(flagname); } //Function Number: 53 flag_set_for_time(n_time,str_flag) { level notify("set_flag_for_time:" + str_flag); flag_set(str_flag); level endon("set_flag_for_time:" + str_flag); wait(n_time); flag_clear(str_flag); } //Function Number: 54 flag_toggle(flagname) { if(flag(flagname)) { flag_clear(flagname); } else { flag_set(flagname); } } //Function Number: 55 flag_wait(flagname) { level waittill_flag_exists(flagname); while(!(level.flag[flagname])) { level waittill(flagname); } } //Function Number: 56 flag_wait_any(str_flag1,str_flag2,str_flag3,str_flag4,str_flag5) { level flag_wait_any_array(array(str_flag1,str_flag2,str_flag3,str_flag4,str_flag5)); } //Function Number: 57 flag_wait_any_array(a_flags) { while(1) { for(i = 0;i < a_flags.size;i++) { if(flag(a_flags[i])) { return a_flags[i]; } } level waittill_any_array(a_flags); } } //Function Number: 58 flag_clear(flagname) { /# /# assert(IsDefined(level.flag[flagname]),"Attempt to set a flag before calling flag_init: " + flagname); #/ #/ if(level.flag[flagname]) { level.flag[flagname] = 0; level notify(flagname); set_trigger_flag_permissions(flagname); } } //Function Number: 59 flag_waitopen(flagname) { while(level.flag[flagname]) { level waittill(flagname); } } //Function Number: 60 flag_waitopen_array(a_flags) { foreach(str_flag in a_flags) { if(flag(str_flag)) { flag_waitopen(str_flag); } else { } } } //Function Number: 61 flag_exists(flagname) { if(self == level) { if(!(IsDefined(level.flag))) { return 0; } if(IsDefined(level.flag[flagname])) { return 1; } } else { if(!(IsDefined(self.ent_flag))) { return 0; } if(IsDefined(self.ent_flag[flagname])) { return 1; } } return 0; } //Function Number: 62 script_gen_dump_addline(string,signature) { if(!(IsDefined(string))) { string = "nowrite"; } if(!(IsDefined(level._loadstarted))) { if(!(IsDefined(level.script_gen_dump_preload))) { level.script_gen_dump_preload = []; } struct = spawnstruct(); struct.string = string; struct.signature = signature; level.script_gen_dump_preload[level.script_gen_dump_preload.size] = struct; return; } if(!(IsDefined(level.script_gen_dump[signature]))) { level.script_gen_dump_reasons[level.script_gen_dump_reasons.size] = "Added: " + string; } level.script_gen_dump[signature] = string; level.script_gen_dump2[signature] = string; } //Function Number: 63 array_func(entities,func,arg1,arg2,arg3,arg4,arg5,arg6) { if(!(IsDefined(entities))) { return; } if(isarray(entities)) { if(entities.size) { keys = getarraykeys(entities); for(i = 0;i < keys.size;i++) { single_func(entities[keys[i]],func,arg1,arg2,arg3,arg4,arg5,arg6); } } } else { single_func(entities,func,arg1,arg2,arg3,arg4,arg5,arg6); } } //Function Number: 64 single_func(entity,func,arg1,arg2,arg3,arg4,arg5,arg6) { if(!(IsDefined(entity))) { entity = level; } if(IsDefined(arg6)) { return entity [[ func ]](arg1,arg2,arg3,arg4,arg5,arg6); } else if(IsDefined(arg5)) { return entity [[ func ]](arg1,arg2,arg3,arg4,arg5); } else if(IsDefined(arg4)) { return entity [[ func ]](arg1,arg2,arg3,arg4); } else if(IsDefined(arg3)) { return entity [[ func ]](arg1,arg2,arg3); } else if(IsDefined(arg2)) { return entity [[ func ]](arg1,arg2); } else if(IsDefined(arg1)) { return entity [[ func ]](arg1); } else { return entity [[ func ]](); } } //Function Number: 65 new_func(func,arg1,arg2,arg3,arg4,arg5,arg6) { s_func = spawnstruct(); s_func.func = func; s_func.arg1 = arg1; s_func.arg2 = arg2; s_func.arg3 = arg3; s_func.arg4 = arg4; s_func.arg5 = arg5; s_func.arg6 = arg6; return s_func; } //Function Number: 66 call_func(s_func) { return single_func(self,s_func.func,s_func.arg1,s_func.arg2,s_func.arg3,s_func.arg4,s_func.arg5,s_func.arg6); } //Function Number: 67 array_thread(entities,func,arg1,arg2,arg3,arg4,arg5,arg6) { /# assert(IsDefined(entities),"Undefined entity array passed to common_scriptsutility::array_thread"); #/ /# assert(IsDefined(func),"Undefined function passed to common_scriptsutility::array_thread"); #/ if(isarray(entities)) { if(IsDefined(arg6)) { foreach(ent in entities) { ent thread [[ func ]](arg1,arg2,arg3,arg4,arg5,arg6); } } else if(IsDefined(arg5)) { foreach(ent in entities) { ent thread [[ func ]](arg1,arg2,arg3,arg4,arg5); } } else if(IsDefined(arg4)) { foreach(ent in entities) { ent thread [[ func ]](arg1,arg2,arg3,arg4); } } else if(IsDefined(arg3)) { foreach(ent in entities) { ent thread [[ func ]](arg1,arg2,arg3); } } else if(IsDefined(arg2)) { foreach(ent in entities) { ent thread [[ func ]](arg1,arg2); } } else if(IsDefined(arg1)) { foreach(ent in entities) { ent thread [[ func ]](arg1); } } else { foreach(ent in entities) { ent thread [[ func ]](); } } } else { single_thread(entities,func,arg1,arg2,arg3,arg4,arg5,arg6); } } //Function Number: 68 array_ent_thread(entities,func,arg1,arg2,arg3,arg4,arg5) { /# assert(IsDefined(entities),"Undefined entity array passed to common_scriptsutility::array_ent_thread"); #/ /# assert(IsDefined(func),"Undefined function passed to common_scriptsutility::array_ent_thread"); #/ if(isarray(entities)) { if(entities.size) { keys = getarraykeys(entities); for(i = 0;i < keys.size;i++) { single_thread(self,func,entities[keys[i]],arg1,arg2,arg3,arg4,arg5); } } } else { single_thread(self,func,entities,arg1,arg2,arg3,arg4,arg5); } } //Function Number: 69 single_thread(entity,func,arg1,arg2,arg3,arg4,arg5,arg6) { /# assert(IsDefined(entity),"Undefined entity passed to common_scriptsutility::single_thread()"); #/ if(IsDefined(arg6)) { entity thread [[ func ]](arg1,arg2,arg3,arg4,arg5,arg6); } else if(IsDefined(arg5)) { entity thread [[ func ]](arg1,arg2,arg3,arg4,arg5); } else if(IsDefined(arg4)) { entity thread [[ func ]](arg1,arg2,arg3,arg4); } else if(IsDefined(arg3)) { entity thread [[ func ]](arg1,arg2,arg3); } else if(IsDefined(arg2)) { entity thread [[ func ]](arg1,arg2); } else if(IsDefined(arg1)) { entity thread [[ func ]](arg1); } else { entity thread [[ func ]](); } } //Function Number: 70 remove_undefined_from_array(array) { newarray = []; for(i = 0;i < array.size;i++) { if(!(IsDefined(array[i]))) { } else { newarray[newarray.size] = array[i]; } } return newarray; } //Function Number: 71 trigger_on(name,type) { if(IsDefined(name)) { if(!(IsDefined(type))) { type = "targetname"; } ents = getentarray(name,type); array_thread(ents,::trigger_on_proc); } else { self trigger_on_proc(); } } //Function Number: 72 trigger_on_proc() { if(IsDefined(self.realorigin)) { self.origin = self.realorigin; } self.trigger_off = undefined; } //Function Number: 73 trigger_off(name,type) { if(IsDefined(name)) { if(!(IsDefined(type))) { type = "targetname"; } ents = getentarray(name,type); array_thread(ents,::trigger_off_proc); } else { self trigger_off_proc(); } } //Function Number: 74 trigger_off_proc() { if(!IsDefined(self.trigger_off) || !self.trigger_off) { self.realorigin = self.origin; self.origin = 10000 + VectorScale((0,0,-1)); self.trigger_off = 1; } } //Function Number: 75 trigger_wait(str_name,str_key,e_entity) { if(!(IsDefined(str_key))) { str_key = "targetname"; } if(IsDefined(str_name)) { triggers = getentarray(str_name,str_key); /# assert(triggers.size > 0,"trigger not found: " + str_name + " key: " + str_key); #/ if(triggers.size == 1) { trigger_hit = triggers[0]; trigger_hit _trigger_wait(e_entity); } else { s_tracker = spawnstruct(); array_thread(triggers,::_trigger_wait_think,s_tracker,e_entity); s_tracker waittill("trigger",e_other,trigger_hit); trigger_hit.who = e_other; } level notify(str_name,trigger_hit.who); return trigger_hit; } else { return _trigger_wait(e_entity); } } //Function Number: 76 _trigger_wait(e_entity) { if(is_look_trigger(self)) { self waittill("trigger_look",e_other); } else { self waittill("trigger",e_other); } if(!(IsDefined(e_entity) && e_other != e_entity)) { } self.who = e_other; return self; } //Function Number: 77 _trigger_wait_think(s_tracker,e_entity) { self endon("death"); s_tracker endon("trigger"); e_other = _trigger_wait(e_entity); s_tracker notify("trigger",e_other,self); } //Function Number: 78 trigger_use(str_name,str_key,ent,b_assert) { if(!(IsDefined(str_key))) { str_key = "targetname"; } if(!(IsDefined(b_assert))) { b_assert = 1; } if(!(IsDefined(ent))) { ent = get_players()[0]; } if(IsDefined(str_name)) { e_trig = getent(str_name,str_key); if(!(IsDefined(e_trig))) { if(b_assert) { /# assertmsg("trigger not found: " + str_name + " key: " + str_key); } #/ return; } } else { e_trig = self; str_name = self.targetname; } e_trig useby(ent); level notify(str_name,ent); if(is_look_trigger(e_trig)) { e_trig notify("trigger_look"); } return e_trig; } //Function Number: 79 set_trigger_flag_permissions(msg) { if(!IsDefined(level.trigger_flags) || !IsDefined(level.trigger_flags[msg])) { return; } level.trigger_flags[msg] = remove_undefined_from_array(level.trigger_flags[msg]); array_thread(level.trigger_flags[msg],::update_trigger_based_on_flags); } //Function Number: 80 update_trigger_based_on_flags() { true_on = 1; if(IsDefined(self.script_flag_true)) { true_on = 0; tokens = create_flags_and_return_tokens(self.script_flag_true); for(i = 0;i < tokens.size;i++) { if(flag(tokens[i])) { true_on = 1; break; } } } false_on = 1; if(IsDefined(self.script_flag_false)) { tokens = create_flags_and_return_tokens(self.script_flag_false); for(i = 0;i < tokens.size;i++) { if(flag(tokens[i])) { false_on = 0; break; } } } [[ level.trigger_func[true_on && false_on] ]](); } //Function Number: 81 create_flags_and_return_tokens(flags) { tokens = strtok(flags," "); for(i = 0;i < tokens.size;i++) { if(!(IsDefined(level.flag[tokens[i]]))) { flag_init(tokens[i],undefined,1); } } return tokens; } //Function Number: 82 init_trigger_flags() { level.trigger_flags = []; level.trigger_func[1] = ::trigger_on; level.trigger_func[0] = ::trigger_off; } //Function Number: 83 is_look_trigger(trig) { if(IsDefined(trig)) { } else { } return 0; } //Function Number: 84 is_trigger_once(trig) { if(IsDefined(trig)) { } else { } return 0; } //Function Number: 85 getstruct(name,type) { if(!(IsDefined(type))) { type = "targetname"; } /# assert(IsDefined(level.struct_class_names),"Tried to getstruct before the structs were init"); #/ array = level.struct_class_names[type][name]; if(!(IsDefined(array))) { return undefined; } if(array.size > 1) { /# assertmsg("getstruct used for more than one struct of type " + type + " called " + name + "."); #/ return undefined; } return array[0]; } //Function Number: 86 getstructarray(name,type) { if(!(IsDefined(type))) { type = "targetname"; } /# assert(IsDefined(level.struct_class_names),"Tried to getstruct before the structs were init"); #/ array = level.struct_class_names[type][name]; if(!(IsDefined(array))) { return []; } } //Function Number: 87 structdelete() { if(IsDefined(self.target) && IsDefined(level.struct_class_names["target"][self.target])) { level.struct_class_names["target"][self.target] = undefined; } if(IsDefined(self.targetname) && IsDefined(level.struct_class_names["targetname"][self.targetname])) { level.struct_class_names["targetname"][self.targetname] = undefined; } if(IsDefined(self.script_noteworthy) && IsDefined(level.struct_class_names["script_noteworthy"][self.script_noteworthy])) { level.struct_class_names["script_noteworthy"][self.script_noteworthy] = undefined; } if(IsDefined(self.script_linkname) && IsDefined(level.struct_class_names["script_linkname"][self.script_linkname])) { level.struct_class_names["script_linkname"][self.script_linkname] = undefined; } } //Function Number: 88 struct_class_init() { /# assert(!IsDefined(level.struct_class_names),"level.struct_class_names is being initialized in the wrong place! It shouldn\'t be initialized yet."); #/ level.struct_class_names = []; level.struct_class_names["target"] = []; level.struct_class_names["targetname"] = []; level.struct_class_names["script_noteworthy"] = []; level.struct_class_names["script_linkname"] = []; level.struct_class_names["script_unitrigger_type"] = []; foreach(s_struct in level.struct) { if(IsDefined(s_struct.targetname)) { if(!(IsDefined(level.struct_class_names["targetname"][s_struct.targetname]))) { level.struct_class_names["targetname"][s_struct.targetname] = []; } size = level.struct_class_names["targetname"][s_struct.targetname].size; level.struct_class_names["targetname"][s_struct.targetname][size] = s_struct; } if(IsDefined(s_struct.target)) { if(!(IsDefined(level.struct_class_names["target"][s_struct.target]))) { level.struct_class_names["target"][s_struct.target] = []; } size = level.struct_class_names["target"][s_struct.target].size; level.struct_class_names["target"][s_struct.target][size] = s_struct; } if(IsDefined(s_struct.script_noteworthy)) { if(!(IsDefined(level.struct_class_names["script_noteworthy"][s_struct.script_noteworthy]))) { level.struct_class_names["script_noteworthy"][s_struct.script_noteworthy] = []; } size = level.struct_class_names["script_noteworthy"][s_struct.script_noteworthy].size; level.struct_class_names["script_noteworthy"][s_struct.script_noteworthy][size] = s_struct; } if(IsDefined(s_struct.script_linkname)) { /# assert(!IsDefined(level.struct_class_names["script_linkname"][s_struct.script_linkname]),"Two structs have the same linkname"); #/ level.struct_class_names["script_linkname"][s_struct.script_linkname][0] = s_struct; } if(IsDefined(s_struct.script_unitrigger_type)) { if(!(IsDefined(level.struct_class_names["script_unitrigger_type"][s_struct.script_unitrigger_type]))) { level.struct_class_names["script_unitrigger_type"][s_struct.script_unitrigger_type] = []; } size = level.struct_class_names["script_unitrigger_type"][s_struct.script_unitrigger_type].size; level.struct_class_names["script_unitrigger_type"][s_struct.script_unitrigger_type][size] = s_struct; } } } //Function Number: 89 fileprint_start(file) { /# filename = file; file = openfile(filename,"write"); level.fileprint = file; level.fileprintlinecount = 0; level.fileprint_filename = filename; #/ } //Function Number: 90 fileprint_map_start(file) { /# file = "map_source/" + file + ".map"; fileprint_start(file); level.fileprint_mapentcount = 0; fileprint_map_header(1); #/ } //Function Number: 91 fileprint_chk(file,str) { /# level.fileprintlinecount++; if(level.fileprintlinecount > 400) { wait(0.05); level.fileprintlinecount++; level.fileprintlinecount = 0; } fprintln(file,str); #/ } //Function Number: 92 fileprint_map_header(binclude_blank_worldspawn) { if(!(IsDefined(binclude_blank_worldspawn))) { binclude_blank_worldspawn = 0; } /# assert(IsDefined(level.fileprint)); #/ /# fileprint_chk(level.fileprint,"iwmap 4"); fileprint_chk(level.fileprint,"\"000_Global\" flags active"); fileprint_chk(level.fileprint,"\"The Map\" flags"); if(!(binclude_blank_worldspawn)) { return; } fileprint_map_entity_start(); fileprint_map_keypairprint("classname","worldspawn"); fileprint_map_entity_end(); #/ } //Function Number: 93 fileprint_map_keypairprint(key1,key2) { /# /# assert(IsDefined(level.fileprint)); #/ fileprint_chk(level.fileprint,"\" + key1 + "\" \" + key2 + "\"); #/ } //Function Number: 94 fileprint_map_entity_start() { /# /# assert(!IsDefined(level.fileprint_entitystart)); #/ level.fileprint_entitystart = 1; /# assert(IsDefined(level.fileprint)); #/ fileprint_chk(level.fileprint,"// entity " + level.fileprint_mapentcount); fileprint_chk(level.fileprint,"{"); level.fileprint_mapentcount++; #/ } //Function Number: 95 fileprint_map_entity_end() { /# /# assert(IsDefined(level.fileprint_entitystart)); #/ /# assert(IsDefined(level.fileprint)); #/ level.fileprint_entitystart = undefined; fileprint_chk(level.fileprint,"}"); #/ } //Function Number: 96 fileprint_end() { /# /# assert(!IsDefined(level.fileprint_entitystart)); #/ saved = closefile(level.fileprint); if(saved != 1) { println("-----------------------------------"); println(" "); println("file write failure"); println("file with name: " + level.fileprint_filename); println("make sure you checkout the file you are trying to save"); println("note: USE P4 Search to find the file and check that one out"); println(" Do not checkin files in from the xenonoutput folder, "); println(" this is junctioned to the proper directory where you need to go"); println("junctions looks like this"); println(" "); println("..\\xenonOutput\\scriptdata\\createfx ..\\share\\raw\\maps\\createfx"); println("..\\xenonOutput\\scriptdata\\createart ..\\share\\raw\\maps\\createart"); println("..\\xenonOutput\\scriptdata\\vision ..\\share\\raw\\vision"); println("..\\xenonOutput\\scriptdata\\scriptgen ..\\share\\raw\\maps\\scriptgen"); println("..\\xenonOutput\\scriptdata\\zone_source ..\\xenon\\zone_source"); println("..\\xenonOutput\\accuracy ..\\share\\raw\\accuracy"); println("..\\xenonOutput\\scriptdata\\map_source ..\\map_source\\xenon_export"); println(" "); println("-----------------------------------"); println("File not saved( see console.log for info ) "); } level.fileprint = undefined; level.fileprint_filename = undefined; #/ } //Function Number: 97 fileprint_radiant_vec(vector) { /# string = "" + vector[0] + " " + vector[1] + " " + vector[2] + ""; return string; #/ } //Function Number: 98 is_mature() { if(level.onlinegame) { return 1; } return getlocalprofileint("cg_mature"); } //Function Number: 99 is_german_build() { if(level.language == "german") { return 1; } } //Function Number: 100 is_gib_restricted_build() { if(GetDvar(#"5A6B41C9") == "japanese") { return 1; } return 0; } //Function Number: 101 is_true(check) { return IsDefined(check) && check; } //Function Number: 102 is_false(check) { return IsDefined(check) && !check; } //Function Number: 103 has_spawnflag(spawnflags) { if(IsDefined(self.spawnflags)) { return self.spawnflags & spawnflags == spawnflags; } return 0; } //Function Number: 104 clamp(val,val_min,val_max) { if(val < val_min) { val = val_min; } else if(val > val_max) { val = val_max; } return val; } //Function Number: 105 linear_map(num,min_a,max_a,min_b,max_b) { return clamp(num - min_a / max_a - min_a * max_b - min_b + min_b,min_b,max_b); } //Function Number: 106 lag(desired,curr,k,dt) { r = 0; if(k * dt >= 1 || k <= 0) { r = desired; } else { err = desired - curr; r = curr + k * err * dt; } return r; } //Function Number: 107 death_notify_wrapper(attacker,damagetype) { level notify("face","death",self); self notify("death",attacker,damagetype); } //Function Number: 108 damage_notify_wrapper(damage,attacker,direction_vec,point,type,modelname,tagname,partname,idflags) { level notify("face","damage",self); self notify("damage",damage,attacker,direction_vec,point,type,modelname,tagname,partname,idflags); } //Function Number: 109 explode_notify_wrapper() { level notify("face","explode",self); self notify("explode"); } //Function Number: 110 alert_notify_wrapper() { level notify("face","alert",self); self notify("alert"); } //Function Number: 111 shoot_notify_wrapper() { level notify("face","shoot",self); self notify("shoot"); } //Function Number: 112 melee_notify_wrapper() { level notify("face","melee",self); self notify("melee"); } //Function Number: 113 isusabilityenabled() { return !self.disabledusability; } //Function Number: 114 _disableusability() { self.disabledusability++; self disableusability(); } //Function Number: 115 _enableusability() { self.disabledusability--; /# assert(self.disabledusability >= 0); #/ if(!(self.disabledusability)) { self enableusability(); } } //Function Number: 116 resetusability() { self.disabledusability = 0; self enableusability(); } //Function Number: 117 _disableweapon() { if(!(IsDefined(self.disabledweapon))) { self.disabledweapon = 0; } self.disabledweapon++; self disableweapons(); } //Function Number: 118 _enableweapon() { self.disabledweapon--; /# assert(self.disabledweapon >= 0); #/ if(!(self.disabledweapon)) { self enableweapons(); } } //Function Number: 119 isweaponenabled() { return !self.disabledweapon; } //Function Number: 120 delay_thread(timer,func,param1,param2,param3,param4,param5,param6) { self thread _delay_thread_proc(func,timer,param1,param2,param3,param4,param5,param6); } //Function Number: 121 _delay_thread_proc(func,timer,param1,param2,param3,param4,param5,param6) { self endon("death"); self endon("disconnect"); wait(timer); single_thread(self,func,param1,param2,param3,param4,param5,param6); } //Function Number: 122 delay_notify(str_notify,n_delay,str_endon) { /# assert(IsDefined(str_notify)); #/ /# assert(IsDefined(n_delay)); #/ self thread _delay_notify_proc(str_notify,n_delay,str_endon); } //Function Number: 123 _delay_notify_proc(str_notify,n_delay,str_endon) { self endon("death"); if(IsDefined(str_endon)) { self endon(str_endon); } if(n_delay > 0) { wait(n_delay); } self notify(str_notify); } //Function Number: 124 notify_delay_with_ender(snotifystring,fdelay,ender) { if(IsDefined(ender)) { level endon(ender); } /# assert(IsDefined(self)); #/ /# assert(IsDefined(snotifystring)); #/ /# assert(IsDefined(fdelay)); #/ self endon("death"); if(fdelay > 0) { wait(fdelay); } if(!(IsDefined(self))) { return; } self notify(snotifystring); }