mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
2187 lines
46 KiB
Plaintext
2187 lines
46 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _audio.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 123
|
|
* Decompile Time: 1402 ms
|
|
* Timestamp: 4/22/2024 2:03:38 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
aud_init(param_00)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
aud_set_level_fade_time(param_00);
|
|
}
|
|
|
|
soundscripts\_snd::snd_init();
|
|
if(!isdefined(level.aud))
|
|
{
|
|
level.aud = spawnstruct();
|
|
}
|
|
|
|
if(!isdefined(level.script))
|
|
{
|
|
level.script = tolower(getdvar("mapname"));
|
|
}
|
|
|
|
if(!isdefined(level._audio))
|
|
{
|
|
level._audio = spawnstruct();
|
|
}
|
|
|
|
level._audio.using_string_tables = 0;
|
|
level._audio.stringtables = [];
|
|
level._audio.message_handlers = [];
|
|
level._audio.progress_trigger_callbacks = [];
|
|
level._audio.progress_maps = [];
|
|
level._audio.vo_duck_active = 0;
|
|
level._audio.sticky_threat = undefined;
|
|
level._audio.player_state = spawnstruct();
|
|
level._audio.player_state.locamote = "idle";
|
|
level._audio.player_state.locamote_prev = "idle";
|
|
level.ambient_reverb = [];
|
|
level.ambient_track = [];
|
|
level.fxfireloopmod = 1;
|
|
level.reverb_track = "";
|
|
level.eq_main_track = 0;
|
|
level.eq_mix_track = 1;
|
|
level.eq_track[level.eq_main_track] = "";
|
|
level.eq_track[level.eq_mix_track] = "";
|
|
soundscripts\_audio_stream_manager::sm_init();
|
|
soundscripts\_audio_dynamic_ambi::damb_init();
|
|
soundscripts\_audio_zone_manager::azm_init();
|
|
thread soundscripts\_audio_mix_manager::mm_init();
|
|
soundscripts\_audio_reverb::rvb_init();
|
|
soundscripts\_audio_whizby::whiz_init();
|
|
soundscripts\_audio_vehicle_manager::avm_init();
|
|
soundscripts\_audio_music::mus_init();
|
|
thread aud_level_fadein();
|
|
deprecated_aud_register_msg_handler(::deprecated__audio_msg_handler);
|
|
}
|
|
|
|
//Function Number: 2
|
|
aud_set_level_fade_time(param_00)
|
|
{
|
|
if(!isdefined(level._audio))
|
|
{
|
|
level._audio = spawnstruct();
|
|
}
|
|
|
|
level._audio.level_fade_time = param_00;
|
|
}
|
|
|
|
//Function Number: 3
|
|
aud_level_fadein()
|
|
{
|
|
if(!isdefined(level._audio.level_fade_time))
|
|
{
|
|
level._audio.level_fade_time = 1;
|
|
}
|
|
|
|
wait(0.05);
|
|
if(common_scripts\utility::flag_exist("chyron_video_done"))
|
|
{
|
|
common_scripts\utility::flag_wait("chyron_video_done");
|
|
}
|
|
|
|
levelsoundfade(1,level._audio.level_fade_time);
|
|
}
|
|
|
|
//Function Number: 4
|
|
aud_is_specops()
|
|
{
|
|
return isdefined(level._audio.specops);
|
|
}
|
|
|
|
//Function Number: 5
|
|
audx_set_spec_ops()
|
|
{
|
|
if(!isdefined(level._audio))
|
|
{
|
|
level._audio = spawnstruct();
|
|
}
|
|
|
|
level._audio.specops = 1;
|
|
}
|
|
|
|
//Function Number: 6
|
|
aud_set_spec_ops()
|
|
{
|
|
thread audx_set_spec_ops();
|
|
}
|
|
|
|
//Function Number: 7
|
|
aud_stop_line_emitter(param_00)
|
|
{
|
|
level notify(param_00 + "_line_emitter_stop");
|
|
}
|
|
|
|
//Function Number: 8
|
|
aud_play_line_emitter(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = 0.1;
|
|
var_07 = 0.1;
|
|
if(isdefined(param_04))
|
|
{
|
|
var_06 = max(param_04,0);
|
|
var_07 = max(param_04,0);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
var_07 = max(param_05,0);
|
|
}
|
|
|
|
var_08 = spawn("script_origin",(0,0,0));
|
|
var_08.alias = param_01;
|
|
var_08.is_playing = 0;
|
|
var_08.point1 = param_02;
|
|
var_08.point2 = param_03;
|
|
var_08.fade_in = var_06;
|
|
var_08.label = param_00;
|
|
var_08 thread audx_play_line_emitter_internal();
|
|
level waittill(param_00 + "_line_emitter_stop");
|
|
var_08 scalevolume(0,var_07);
|
|
wait(var_07);
|
|
var_08 soundscripts\_snd_playsound::snd_stop_sound();
|
|
wait(0.05);
|
|
var_08 delete();
|
|
}
|
|
|
|
//Function Number: 9
|
|
audx_play_line_emitter_internal()
|
|
{
|
|
level endon(self.label + "_line_emitter_stop");
|
|
var_00 = self.point2 - self.point1;
|
|
var_01 = vectornormalize(var_00);
|
|
var_02 = distance(self.point1,self.point2);
|
|
var_03 = 0.1;
|
|
for(;;)
|
|
{
|
|
var_04 = level.player.origin - self.point1;
|
|
var_05 = vectordot(var_04,var_01);
|
|
var_05 = clamp(var_05,0,var_02);
|
|
var_06 = self.point1 + var_01 * var_05;
|
|
if(!self.is_playing)
|
|
{
|
|
self.origin = var_06;
|
|
soundscripts\_snd_playsound::snd_play_loop(self.alias);
|
|
self scalevolume(0);
|
|
wait(0.05);
|
|
self scalevolume(1,self.fade_in);
|
|
self.is_playing = 1;
|
|
}
|
|
else
|
|
{
|
|
self moveto(var_06,var_03);
|
|
}
|
|
|
|
wait(var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
aud_play_point_source_loop(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = aud_get_optional_param(1,param_02);
|
|
var_05 = aud_get_optional_param(1,param_03);
|
|
var_06 = spawn("script_origin",param_01);
|
|
deprecated_aud_fade_sound_in(var_06,param_00,var_04,var_05,1);
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 11
|
|
aud_stop_point_source_loop(param_00,param_01)
|
|
{
|
|
var_02 = aud_get_optional_param(1,param_01);
|
|
aud_fade_out_and_delete(param_00,var_02);
|
|
}
|
|
|
|
//Function Number: 12
|
|
aud_set_point_source_loop_volume(param_00,param_01,param_02)
|
|
{
|
|
param_01 = clamp(param_01,0,1);
|
|
var_03 = aud_get_optional_param(1,param_02);
|
|
param_00 scalevolume(param_01,var_03);
|
|
}
|
|
|
|
//Function Number: 13
|
|
aud_set_music_submix(param_00,param_01)
|
|
{
|
|
if(param_00 == 1)
|
|
{
|
|
soundscripts\_audio_mix_manager::mm_make_submix_unsticky("music");
|
|
soundscripts\_audio_mix_manager::mm_clear_submix("music",param_01);
|
|
}
|
|
else
|
|
{
|
|
soundscripts\_audio_mix_manager::mm_scale_submix("music",param_00,param_01);
|
|
soundscripts\_audio_mix_manager::mm_make_submix_sticky("music");
|
|
}
|
|
|
|
level._audio.curr_music_submix = param_00;
|
|
}
|
|
|
|
//Function Number: 14
|
|
aud_set_ambi_submix(param_00,param_01)
|
|
{
|
|
if(param_00 == 1)
|
|
{
|
|
soundscripts\_audio_mix_manager::mm_make_submix_unsticky("ambi");
|
|
soundscripts\_audio_mix_manager::mm_clear_submix("ambi",param_01);
|
|
}
|
|
else
|
|
{
|
|
soundscripts\_audio_mix_manager::mm_scale_submix("ambi",param_00,param_01);
|
|
soundscripts\_audio_mix_manager::mm_make_submix_sticky("ambi");
|
|
}
|
|
|
|
level._audio.curr_ambi_submix = param_00;
|
|
}
|
|
|
|
//Function Number: 15
|
|
aud_get_music_submix()
|
|
{
|
|
var_00 = 1;
|
|
if(isdefined(level._audio.curr_music_submix))
|
|
{
|
|
var_00 = level._audio.curr_music_submix;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 16
|
|
aud_get_ambi_submix()
|
|
{
|
|
var_00 = 1;
|
|
if(isdefined(level._audio.curr_ambi_submix))
|
|
{
|
|
var_00 = level._audio.curr_ambi_submix;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 17
|
|
trigger_multiple_audio_trigger(param_00)
|
|
{
|
|
if(!isdefined(level._audio))
|
|
{
|
|
level._audio = spawnstruct();
|
|
}
|
|
|
|
if(!isdefined(level._audio.trigger_functions))
|
|
{
|
|
level._audio.trigger_functions = [];
|
|
}
|
|
|
|
var_01 = undefined;
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
if(isdefined(self.ambient))
|
|
{
|
|
var_01 = strtok(self.ambient," ");
|
|
}
|
|
}
|
|
else if(isdefined(self.script_audio_zones))
|
|
{
|
|
var_01 = strtok(self.script_audio_zones," ");
|
|
}
|
|
else if(isdefined(self.audio_zones))
|
|
{
|
|
var_01 = strtok(self.audio_zones," ");
|
|
}
|
|
|
|
if(isdefined(var_01) && var_01.size == 2)
|
|
{
|
|
}
|
|
else if(isdefined(var_01) && var_01.size == 1)
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_02);
|
|
soundscripts\_audio_zone_manager::azm_start_zone(var_01[0],self.script_duration);
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.script_audio_progress_map))
|
|
{
|
|
if(!isdefined(level._audio.progress_maps[self.script_audio_progress_map]))
|
|
{
|
|
aud_print_error("Trying to set a progress_map_function without defining the envelope in the level.aud.envs array.");
|
|
self.script_audio_progress_map = undefined;
|
|
}
|
|
}
|
|
|
|
if(!isdefined(level._audio.trigger_function_keys))
|
|
{
|
|
level._audio.trigger_function_keys = [];
|
|
}
|
|
|
|
if(isdefined(self.script_audio_enter_func))
|
|
{
|
|
level._audio.trigger_function_keys[level._audio.trigger_function_keys.size] = self.script_audio_enter_func;
|
|
}
|
|
|
|
if(isdefined(self.script_audio_exit_func))
|
|
{
|
|
level._audio.trigger_function_keys[level._audio.trigger_function_keys.size] = self.script_audio_exit_func;
|
|
}
|
|
|
|
if(isdefined(self.script_audio_progress_func))
|
|
{
|
|
level._audio.trigger_function_keys[level._audio.trigger_function_keys.size] = self.script_audio_progress_func;
|
|
}
|
|
|
|
if(isdefined(self.script_audio_point_func))
|
|
{
|
|
level._audio.trigger_function_keys[level._audio.trigger_function_keys.size] = self.script_audio_point_func;
|
|
}
|
|
|
|
if(!isdefined(self.script_audio_blend_mode))
|
|
{
|
|
self.script_audio_blend_mode = "blend";
|
|
}
|
|
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
var_05 = undefined;
|
|
if(isdefined(self.target))
|
|
{
|
|
if(!isdefined(common_scripts\utility::get_target_ent()))
|
|
{
|
|
aud_print_error("Audo Zone Trigger at " + self.origin + " has defined a target, " + self.target + ", but that target doesn\'t exist.");
|
|
return;
|
|
}
|
|
|
|
if(isdefined(trigger_multiple_audio_get_target_ent_target()))
|
|
{
|
|
var_03 = trigger_multiple_audio_get_target_ent_origin();
|
|
if(!isdefined(trigger_multiple_audio_get_target_ent_target_ent()))
|
|
{
|
|
aud_print_error("Audo Zone Trigger at " + self.origin + " has defined a target, " + trigger_multiple_audio_get_target_ent_target() + ", but that target doesn\'t exist.");
|
|
return;
|
|
}
|
|
|
|
var_04 = trigger_multiple_audio_get_target_ent_target_ent_origin();
|
|
}
|
|
else
|
|
{
|
|
var_06 = common_scripts\utility::get_target_ent();
|
|
var_07 = 2 * self.origin - var_06.origin;
|
|
var_08 = vectortoangles(var_07);
|
|
var_03 = trigger_multiple_audio_get_target_ent_origin();
|
|
var_04 = var_03 + var_07;
|
|
if(angleclamp180(var_08[0]) < 45)
|
|
{
|
|
var_03 = (var_03[0],var_03[1],0);
|
|
var_04 = (var_04[0],var_04[1],0);
|
|
}
|
|
}
|
|
|
|
var_05 = distance(var_03,var_04);
|
|
}
|
|
|
|
var_09 = 0;
|
|
for(;;)
|
|
{
|
|
self waittill("trigger",var_02);
|
|
if(aud_is_specops() && var_02 != level.player)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03) && isdefined(var_04))
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[0]) && isdefined(var_01[1]))
|
|
{
|
|
var_0A = soundscripts\_audio_zone_manager::azm_get_current_zone();
|
|
if(var_0A == var_01[0])
|
|
{
|
|
var_09 = 0;
|
|
}
|
|
else if(var_0A == var_01[1])
|
|
{
|
|
var_09 = 1;
|
|
}
|
|
else if(var_0A != "")
|
|
{
|
|
var_0B = trigger_multiple_audio_progress(var_03,var_04,var_05,var_02.origin);
|
|
if(var_0B < 0.5)
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_start_zone(var_01[0]);
|
|
var_09 = 0;
|
|
}
|
|
else
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_start_zone(var_01[1]);
|
|
var_09 = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_0B = trigger_multiple_audio_progress(var_03,var_04,var_05,var_02.origin);
|
|
if(var_0B < 0.5)
|
|
{
|
|
var_09 = 0;
|
|
}
|
|
else
|
|
{
|
|
var_09 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_09)
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[0]))
|
|
{
|
|
if(isdefined(level._snd) && isdefined(var_01[1]))
|
|
{
|
|
var_0C = "enter_" + var_01[1];
|
|
soundscripts\_snd::snd_message("snd_zone_handler",var_0C,var_01[0]);
|
|
}
|
|
else if(isdefined(self.script_audio_enter_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_enter_msg,var_01[0]);
|
|
}
|
|
}
|
|
else if(isdefined(self.script_audio_enter_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_enter_msg,"front");
|
|
}
|
|
|
|
if(isdefined(self.script_audio_enter_func))
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[0]))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_enter_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_enter_func] ]](var_01[0]);
|
|
}
|
|
}
|
|
else if(isdefined(level._audio.trigger_functions[self.script_audio_enter_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_enter_func] ]]("front");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[1]))
|
|
{
|
|
if(isdefined(level._snd))
|
|
{
|
|
var_0C = "enter_" + var_01[1];
|
|
soundscripts\_snd::snd_message("snd_zone_handler",var_0C,var_01[1]);
|
|
}
|
|
else if(isdefined(self.script_audio_enter_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_enter_msg,var_01[1]);
|
|
}
|
|
}
|
|
else if(isdefined(self.script_audio_enter_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_enter_msg,"back");
|
|
}
|
|
|
|
if(isdefined(self.script_audio_enter_func))
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[1]))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_enter_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_enter_func] ]](var_01[1]);
|
|
}
|
|
}
|
|
else if(isdefined(level._audio.trigger_functions[self.script_audio_enter_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_enter_func] ]]("back");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(self.script_audio_enter_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_enter_msg);
|
|
}
|
|
|
|
if(isdefined(self.script_audio_enter_func))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_enter_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_enter_func] ]]();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0D = undefined;
|
|
if(isdefined(trigger_multiple_audio_get_zone_from(var_01,var_09)) && isdefined(trigger_multiple_audio_get_zone_to(var_01,var_09)))
|
|
{
|
|
var_0D = soundscripts\_audio_zone_manager::azmx_get_blend_args(trigger_multiple_audio_get_zone_from(var_01,var_09),trigger_multiple_audio_get_zone_to(var_01,var_09));
|
|
if(isdefined(var_0D))
|
|
{
|
|
var_0D.mode = self.script_audio_blend_mode;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_0D))
|
|
{
|
|
if(isdefined(var_0D.filter1) || isdefined(var_0D.filter2))
|
|
{
|
|
if(!level._audio.zone_mgr.overrides.filter_bypass)
|
|
{
|
|
soundscripts\_snd_filters::snd_clear_filter(0);
|
|
soundscripts\_snd_filters::snd_clear_filter(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0E = -1;
|
|
var_0B = -1;
|
|
while(var_02 istouching(self))
|
|
{
|
|
if(isdefined(self.script_audio_point_func))
|
|
{
|
|
var_0F = trigger_multiple_audio_progress_point(var_03,var_04,var_02.origin);
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_point_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_point_func] ]](var_0F);
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_03) && isdefined(var_04))
|
|
{
|
|
var_0B = trigger_multiple_audio_progress(var_03,var_04,var_05,var_02.origin);
|
|
if(isdefined(self.script_audio_progress_map))
|
|
{
|
|
var_0B = deprecated_aud_map(var_0B,level._audio.progress_maps[self.script_audio_progress_map]);
|
|
}
|
|
|
|
if(var_0B != var_0E)
|
|
{
|
|
if(isdefined(trigger_multiple_audio_get_zone_from(var_01,var_09)) && isdefined(trigger_multiple_audio_get_zone_to(var_01,var_09)))
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_print_enter_blend(trigger_multiple_audio_get_zone_from(var_01,var_09),trigger_multiple_audio_get_zone_to(var_01,var_09),var_0B);
|
|
}
|
|
|
|
if(isdefined(self.script_audio_progress_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_progress_msg,var_0B);
|
|
}
|
|
|
|
if(isdefined(self.script_audio_progress_func))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_progress_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_progress_func] ]](var_0B);
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_0D))
|
|
{
|
|
trigger_multiple_audio_blend(var_0B,var_0D,var_09);
|
|
}
|
|
|
|
var_0E = var_0B;
|
|
soundscripts\_audio_zone_manager::azm_print_progress(var_0B);
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.script_audio_update_rate))
|
|
{
|
|
wait(self.script_audio_update_rate);
|
|
continue;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
if(isdefined(var_03) && isdefined(var_04))
|
|
{
|
|
if(var_0B > 0.5)
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[1]))
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_set_current_zone(var_01[1]);
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_01[1]))
|
|
{
|
|
if(isdefined(level._snd))
|
|
{
|
|
var_10 = "exit_" + var_01[1];
|
|
soundscripts\_snd::snd_message("snd_zone_handler",var_10,var_01[1]);
|
|
}
|
|
else if(isdefined(self.script_audio_exit_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_exit_msg,var_01[1]);
|
|
}
|
|
}
|
|
else if(isdefined(self.script_audio_exit_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_exit_msg,"back");
|
|
}
|
|
|
|
if(isdefined(self.script_audio_exit_func))
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[1]))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_exit_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_exit_func] ]](var_01[1]);
|
|
}
|
|
}
|
|
else if(isdefined(level._audio.trigger_functions[self.script_audio_exit_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_exit_func] ]]("back");
|
|
}
|
|
}
|
|
|
|
var_0B = 1;
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[0]))
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_set_current_zone(var_01[0]);
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_01[0]))
|
|
{
|
|
if(isdefined(level._snd))
|
|
{
|
|
var_10 = "exit_" + var_01[1];
|
|
soundscripts\_snd::snd_message("snd_zone_handler",var_10,var_01[0]);
|
|
}
|
|
else if(isdefined(self.script_audio_exit_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_exit_msg,var_01[0]);
|
|
}
|
|
}
|
|
else if(isdefined(self.script_audio_exit_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_exit_msg,"front");
|
|
}
|
|
|
|
if(isdefined(self.script_audio_exit_func))
|
|
{
|
|
if(isdefined(var_01) && isdefined(var_01[0]))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_exit_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_exit_func] ]](var_01[0]);
|
|
}
|
|
}
|
|
else if(isdefined(level._audio.trigger_functions[self.script_audio_exit_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_exit_func] ]]("front");
|
|
}
|
|
}
|
|
|
|
var_0B = 0;
|
|
}
|
|
|
|
if(isdefined(var_0D))
|
|
{
|
|
trigger_multiple_audio_blend(var_0B,var_0D,var_09);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.script_audio_exit_msg))
|
|
{
|
|
deprecated_aud_send_msg(self.script_audio_exit_msg);
|
|
}
|
|
|
|
if(isdefined(self.script_audio_exit_func))
|
|
{
|
|
if(isdefined(level._audio.trigger_functions[self.script_audio_exit_func]))
|
|
{
|
|
[[ level._audio.trigger_functions[self.script_audio_exit_func] ]]();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
trigger_multiple_audio_progress(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = vectornormalize(param_01 - param_00);
|
|
var_05 = param_03 - param_00;
|
|
var_06 = vectordot(var_05,var_04);
|
|
var_06 = var_06 / param_02;
|
|
return clamp(var_06,0,1);
|
|
}
|
|
|
|
//Function Number: 19
|
|
trigger_multiple_audio_progress_point(param_00,param_01,param_02)
|
|
{
|
|
var_03 = vectornormalize(param_01 - param_00);
|
|
var_04 = param_02 - param_00;
|
|
var_05 = vectordot(var_04,var_03);
|
|
return var_03 * var_05 + param_00;
|
|
}
|
|
|
|
//Function Number: 20
|
|
trigger_multiple_audio_blend(param_00,param_01,param_02)
|
|
{
|
|
param_00 = clamp(param_00,0,1);
|
|
if(param_02)
|
|
{
|
|
param_00 = 1 - param_00;
|
|
}
|
|
|
|
var_03 = param_01.mode;
|
|
if(var_03 == "blend")
|
|
{
|
|
var_04 = 1 - param_00;
|
|
var_05 = param_00;
|
|
soundscripts\_audio_zone_manager::azmx_blend_zones(var_04,var_05,param_01);
|
|
return;
|
|
}
|
|
|
|
if(param_00 < 0.33)
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_start_zone(param_01.zone_from_name);
|
|
return;
|
|
}
|
|
|
|
if(param_00 > 0.66)
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_start_zone(param_01.zone_to_name);
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
trigger_multiple_audio_register_callback(param_00)
|
|
{
|
|
if(!isdefined(level._audio.trigger_functions))
|
|
{
|
|
level._audio.trigger_functions = [];
|
|
}
|
|
|
|
for(var_01 = 0;var_01 < param_00.size;var_01++)
|
|
{
|
|
var_02 = param_00[var_01];
|
|
var_03 = var_02[0];
|
|
var_04 = var_02[1];
|
|
level._audio.trigger_functions[var_03] = var_04;
|
|
}
|
|
|
|
if(isdefined(level._audio.trigger_function_keys))
|
|
{
|
|
foreach(var_03 in level._audio.trigger_function_keys)
|
|
{
|
|
}
|
|
|
|
level._audio.trigger_function_keys = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
trigger_multiple_audio_get_target_ent_target()
|
|
{
|
|
var_00 = common_scripts\utility::get_target_ent();
|
|
return var_00.target;
|
|
}
|
|
|
|
//Function Number: 23
|
|
trigger_multiple_audio_get_target_ent_origin()
|
|
{
|
|
var_00 = common_scripts\utility::get_target_ent();
|
|
return var_00.origin;
|
|
}
|
|
|
|
//Function Number: 24
|
|
trigger_multiple_audio_get_target_ent_target_ent()
|
|
{
|
|
var_00 = common_scripts\utility::get_target_ent();
|
|
return var_00 common_scripts\utility::get_target_ent();
|
|
}
|
|
|
|
//Function Number: 25
|
|
trigger_multiple_audio_get_target_ent_target_ent_origin()
|
|
{
|
|
var_00 = trigger_multiple_audio_get_target_ent_target_ent();
|
|
return var_00.origin;
|
|
}
|
|
|
|
//Function Number: 26
|
|
trigger_multiple_audio_get_zone_from(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00) || !isdefined(param_01))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
return param_00[1];
|
|
}
|
|
|
|
return param_00[0];
|
|
}
|
|
|
|
//Function Number: 27
|
|
trigger_multiple_audio_get_zone_to(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00) || !isdefined(param_01))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
return param_00[0];
|
|
}
|
|
|
|
return param_00[1];
|
|
}
|
|
|
|
//Function Number: 28
|
|
aud_play_dynamic_explosion(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = spawn("script_origin",level.player.origin);
|
|
var_07 = spawn("script_origin",param_00);
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = distance(var_07.origin,var_06.origin);
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
var_08 = 30;
|
|
param_04 = 36 * var_08;
|
|
}
|
|
|
|
var_09 = audx_do_dynamic_explosion_math(var_07.origin,var_06.origin,param_03,param_04);
|
|
var_09[0] = (var_09[0][0],var_09[0][1],var_06.origin[2]);
|
|
var_09[1] = (var_09[1][0],var_09[1][1],var_06.origin[2]);
|
|
var_0A = distance(var_07.origin,var_09[0]);
|
|
if(!isdefined(param_05))
|
|
{
|
|
param_05 = 1800;
|
|
}
|
|
|
|
var_0B = var_0A / param_05;
|
|
if(isdefined(var_09) && var_09.size == 2)
|
|
{
|
|
var_0C = spawn("script_origin",var_07.origin);
|
|
var_0D = spawn("script_origin",var_07.origin);
|
|
var_0C soundscripts\_snd_playsound::snd_play(param_01);
|
|
var_0D soundscripts\_snd_playsound::snd_play(param_02);
|
|
var_0C moveto(var_09[0],var_0B,0,0);
|
|
var_0D moveto(var_09[1],var_0B,0,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
audx_do_dynamic_explosion_math(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = param_01 - param_00;
|
|
var_05 = aud_copy_vector(var_04);
|
|
var_06 = aud_copy_vector(var_04);
|
|
var_07 = aud_vector_magnitude_2d(var_05);
|
|
var_08 = 0.5 * param_02 / var_07;
|
|
var_05 = aud_scale_vector_2d(var_05,var_08);
|
|
var_06 = aud_scale_vector_2d(var_06,var_08);
|
|
var_05 = aud_rotate_vector_yaw(var_05,90);
|
|
var_06 = aud_rotate_vector_yaw(var_06,-90);
|
|
var_09 = aud_vector_magnitude_2d(var_04);
|
|
var_0A = param_03 / var_09;
|
|
var_0B = aud_scale_vector_2d(var_04,var_0A);
|
|
var_0B = var_0B + var_04;
|
|
var_0B = var_0B + var_04;
|
|
var_05 = var_05 + var_0B;
|
|
var_06 = var_06 + var_0B;
|
|
var_0C = [];
|
|
var_0C[0] = var_05;
|
|
var_0C[1] = var_06;
|
|
return var_0C;
|
|
}
|
|
|
|
//Function Number: 30
|
|
aud_get_optional_param(param_00,param_01)
|
|
{
|
|
var_02 = param_00;
|
|
if(isdefined(param_01))
|
|
{
|
|
var_02 = param_01;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 31
|
|
aud_scale_vector_2d(param_00,param_01)
|
|
{
|
|
return (param_00[0] * param_01,param_00[1] * param_01,param_00[2]);
|
|
}
|
|
|
|
//Function Number: 32
|
|
aud_scale_vector(param_00,param_01)
|
|
{
|
|
return (param_00[0] * param_01,param_00[1] * param_01,param_00[2] * param_01);
|
|
}
|
|
|
|
//Function Number: 33
|
|
aud_rotate_vector_yaw(param_00,param_01)
|
|
{
|
|
var_02 = param_00[0] * cos(param_01) - param_00[1] * sin(param_01);
|
|
var_03 = param_00[0] * sin(param_01) + param_00[1] * cos(param_01);
|
|
return (var_02,var_03,param_00[2]);
|
|
}
|
|
|
|
//Function Number: 34
|
|
aud_copy_vector(param_00)
|
|
{
|
|
var_01 = (0,0,0);
|
|
var_01 = var_01 + param_00;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 35
|
|
aud_vector_magnitude_2d(param_00)
|
|
{
|
|
return sqrt(param_00[0] * param_00[0] + param_00[1] * param_00[1]);
|
|
}
|
|
|
|
//Function Number: 36
|
|
aud_print_synch(param_00)
|
|
{
|
|
aud_print(param_00,"synch_frame");
|
|
}
|
|
|
|
//Function Number: 37
|
|
aud_print(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 38
|
|
aud_print_warning(param_00)
|
|
{
|
|
aud_print(param_00,"warning");
|
|
}
|
|
|
|
//Function Number: 39
|
|
aud_print_error(param_00)
|
|
{
|
|
aud_print(param_00,"error");
|
|
}
|
|
|
|
//Function Number: 40
|
|
aud_print_debug(param_00)
|
|
{
|
|
aud_print(param_00);
|
|
}
|
|
|
|
//Function Number: 41
|
|
aud_print_zone(param_00)
|
|
{
|
|
aud_print(param_00,"zone");
|
|
}
|
|
|
|
//Function Number: 42
|
|
aud_print_zone_small(param_00)
|
|
{
|
|
aud_print(param_00,"zone_small");
|
|
}
|
|
|
|
//Function Number: 43
|
|
equal_strings(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01))
|
|
{
|
|
return param_00 == param_01;
|
|
}
|
|
|
|
return !isdefined(param_00) && !isdefined(param_01);
|
|
}
|
|
|
|
//Function Number: 44
|
|
isundefined(param_00)
|
|
{
|
|
return !isdefined(param_00);
|
|
}
|
|
|
|
//Function Number: 45
|
|
aud_fade_out_and_delete(param_00,param_01)
|
|
{
|
|
param_00 scalevolume(0,param_01);
|
|
param_00 common_scripts\utility::delaycall(param_01 + 0.05,::stopsounds);
|
|
param_00 common_scripts\utility::delaycall(param_01 + 0.1,::delete);
|
|
}
|
|
|
|
//Function Number: 46
|
|
aud_fade_loop_out_and_delete(param_00,param_01)
|
|
{
|
|
param_00 scalevolume(0,param_01);
|
|
wait(param_01 + 0.05);
|
|
param_00 stoploopsound();
|
|
wait(0.05);
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 47
|
|
aud_min(param_00,param_01)
|
|
{
|
|
if(param_00 <= param_01)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
return param_01;
|
|
}
|
|
|
|
//Function Number: 48
|
|
aud_max(param_00,param_01)
|
|
{
|
|
if(param_00 >= param_01)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
return param_01;
|
|
}
|
|
|
|
//Function Number: 49
|
|
aud_clamp(param_00,param_01,param_02)
|
|
{
|
|
if(param_00 < param_01)
|
|
{
|
|
param_00 = param_01;
|
|
}
|
|
else if(param_00 > param_02)
|
|
{
|
|
param_00 = param_02;
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 50
|
|
aud_get_envelope_domain(param_00)
|
|
{
|
|
if(isarray(param_00))
|
|
{
|
|
return [param_00[0][0],param_00[param_00.size - 1][0]];
|
|
}
|
|
|
|
return [param_00.env_array[0][0],param_00.env_array[param_00.env_array.size - 1][0]];
|
|
}
|
|
|
|
//Function Number: 51
|
|
aud_scale_envelope(param_00,param_01,param_02)
|
|
{
|
|
param_01 = aud_get_optional_param(1,param_01);
|
|
param_02 = aud_get_optional_param(1,param_02);
|
|
for(var_03 = 0;var_03 < param_00.size;var_03++)
|
|
{
|
|
param_00[var_03][0] = param_00[var_03][0] * param_01;
|
|
param_00[var_03][1] = param_00[var_03][1] * param_02;
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 52
|
|
aud_smooth(param_00,param_01,param_02)
|
|
{
|
|
return param_00 + param_02 * param_01 - param_00;
|
|
}
|
|
|
|
//Function Number: 53
|
|
aud_is_even(param_00)
|
|
{
|
|
return param_00 == int(param_00 / 2) * 2;
|
|
}
|
|
|
|
//Function Number: 54
|
|
aud_fade_in_music(param_00)
|
|
{
|
|
var_01 = 10;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_01 = param_00;
|
|
}
|
|
|
|
soundscripts\_audio_mix_manager::mm_add_submix("mute_music",0.1);
|
|
wait(0.05);
|
|
soundscripts\_audio_mix_manager::mm_clear_submix("mute_music",var_01);
|
|
}
|
|
|
|
//Function Number: 55
|
|
aud_check_sound_done()
|
|
{
|
|
self endon("cleanup");
|
|
if(!isdefined(self.sounddone))
|
|
{
|
|
self.sounddone = 0;
|
|
}
|
|
|
|
self waittill("sounddone");
|
|
if(isdefined(self))
|
|
{
|
|
self.sounddone = 1;
|
|
self notify("cleanup");
|
|
}
|
|
}
|
|
|
|
//Function Number: 56
|
|
aud_in_zone(param_00)
|
|
{
|
|
return equal_strings(soundscripts\_audio_zone_manager::azm_get_current_zone(),param_00);
|
|
}
|
|
|
|
//Function Number: 57
|
|
aud_find_exploder(param_00)
|
|
{
|
|
if(isdefined(level.createfxexploders))
|
|
{
|
|
var_01 = level.createfxexploders["" + param_00];
|
|
if(isdefined(var_01))
|
|
{
|
|
return var_01[0];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for(var_02 = 0;var_02 < level.createfxent.size;var_02++)
|
|
{
|
|
var_03 = level.createfxent[var_02];
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03.v["type"] != "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_03.v["exploder"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(int(var_03.v["exploder"]) != param_00)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 58
|
|
aud_duck(param_00,param_01,param_02,param_03)
|
|
{
|
|
thread audx_duck(param_00,param_01,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 59
|
|
audx_duck(param_00,param_01,param_02,param_03)
|
|
{
|
|
param_01 = clamp(param_01,0,10);
|
|
var_04 = 1;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04 = param_02;
|
|
}
|
|
|
|
var_05 = var_04;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_05 = param_03;
|
|
}
|
|
|
|
soundscripts\_audio_mix_manager::mm_add_submix(param_00,var_04);
|
|
wait(param_01);
|
|
soundscripts\_audio_mix_manager::mm_clear_submix(param_00,var_05);
|
|
}
|
|
|
|
//Function Number: 60
|
|
aud_percent_chance(param_00)
|
|
{
|
|
return randomintrange(1,100) <= param_00;
|
|
}
|
|
|
|
//Function Number: 61
|
|
aud_start_slow_mo_gunshot_callback(param_00,param_01)
|
|
{
|
|
level endon("aud_stop_slow_mo_gunshot");
|
|
var_02 = getaiarray("axis");
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_04 thread aud_impact_monitor(param_01);
|
|
}
|
|
|
|
var_06 = 0;
|
|
var_07 = level.player getcurrentweapon();
|
|
for(;;)
|
|
{
|
|
if(level.player attackbuttonpressed())
|
|
{
|
|
if(!var_06)
|
|
{
|
|
var_06 = 1;
|
|
[[ param_00 ]](var_07);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_06 = 0;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
aud_impact_monitor(param_00)
|
|
{
|
|
level endon("aud_stop_slow_mo_gunshot");
|
|
var_01 = level.player getcurrentweapon();
|
|
for(;;)
|
|
{
|
|
self waittill("damage",var_02,var_03,var_04,var_05,var_06);
|
|
if(isdefined(var_05))
|
|
{
|
|
[[ param_00 ]](var_01,var_02,var_03,var_05,var_06);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 63
|
|
aud_stop_slow_mo_gunshot_callback()
|
|
{
|
|
level notify("aud_stop_slow_mo_gunshot");
|
|
}
|
|
|
|
//Function Number: 64
|
|
aud_wait_delay(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
var_04 = 60;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_04 = param_03;
|
|
}
|
|
|
|
var_05 = floor(param_00);
|
|
var_06 = param_00 - var_05 * 100;
|
|
param_00 = var_05 + var_06 * 1 / var_04;
|
|
}
|
|
|
|
var_07 = param_00;
|
|
if(isdefined(param_01) && param_01)
|
|
{
|
|
aud_slomo_wait(var_07);
|
|
return;
|
|
}
|
|
|
|
wait(var_07);
|
|
}
|
|
|
|
//Function Number: 65
|
|
aud_slomo_wait(param_00)
|
|
{
|
|
var_01 = spawn("script_origin",(0,0,0));
|
|
var_01 thread audx_slomo_wait(param_00);
|
|
var_01 waittill("slo_mo_wait_done");
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 66
|
|
audx_slomo_wait(param_00)
|
|
{
|
|
var_01 = 0;
|
|
while(var_01 < param_00)
|
|
{
|
|
var_02 = getdvarfloat("com_timescale");
|
|
var_01 = var_01 + 0.05 / var_02;
|
|
wait(0.05);
|
|
}
|
|
|
|
self notify("slo_mo_wait_done");
|
|
}
|
|
|
|
//Function Number: 67
|
|
aud_print_3d_on_ent(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(self))
|
|
{
|
|
var_05 = (1,1,1);
|
|
var_06 = (1,0,0);
|
|
var_07 = (0,1,0);
|
|
var_08 = (0,1,1);
|
|
var_09 = 5;
|
|
var_0A = var_05;
|
|
if(isdefined(param_01))
|
|
{
|
|
var_09 = param_01;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
var_0A = param_02;
|
|
switch(var_0A)
|
|
{
|
|
case "red":
|
|
var_0A = var_06;
|
|
break;
|
|
|
|
case "white":
|
|
var_0A = var_05;
|
|
break;
|
|
|
|
case "blue":
|
|
var_0A = var_08;
|
|
break;
|
|
|
|
case "green":
|
|
var_0A = var_07;
|
|
break;
|
|
|
|
default:
|
|
var_0A = var_05;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
thread audx_print_3d_timer(param_04);
|
|
}
|
|
|
|
self endon("death");
|
|
self endon("aud_stop_3D_print");
|
|
while(isdefined(self))
|
|
{
|
|
var_0B = param_00;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_0B = var_0B + self [[ param_03 ]]();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
audx_print_3d_timer(param_00)
|
|
{
|
|
self endon("death");
|
|
wait(param_00);
|
|
if(isdefined(self))
|
|
{
|
|
self notify("aud_stop_3D_print");
|
|
}
|
|
}
|
|
|
|
//Function Number: 69
|
|
aud_add_progress_map(param_00,param_01)
|
|
{
|
|
level._audio.progress_maps[param_00] = param_01;
|
|
}
|
|
|
|
//Function Number: 70
|
|
aud_get_progress_map(param_00)
|
|
{
|
|
if(isdefined(level._audio.progress_maps[param_00]))
|
|
{
|
|
return level._audio.progress_maps[param_00];
|
|
}
|
|
}
|
|
|
|
//Function Number: 71
|
|
is_deathsdoor_audio_enabled()
|
|
{
|
|
if(!isdefined(level._audio.deathsdoor_enabled))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return level._audio.deathsdoor_enabled;
|
|
}
|
|
|
|
//Function Number: 72
|
|
aud_enable_deathsdoor_audio()
|
|
{
|
|
level.player.disable_breathing_sound = 0;
|
|
level._audio.deathsdoor_enabled = 1;
|
|
}
|
|
|
|
//Function Number: 73
|
|
aud_disable_deathsdoor_audio()
|
|
{
|
|
level.player.disable_breathing_sound = 1;
|
|
level._audio.deathsdoor_enabled = 0;
|
|
}
|
|
|
|
//Function Number: 74
|
|
restore_after_deathsdoor()
|
|
{
|
|
if(is_deathsdoor_audio_enabled() || isdefined(level._audio.in_deathsdoor))
|
|
{
|
|
level._audio.in_deathsdoor = undefined;
|
|
soundscripts\_audio_mix_manager::mm_clear_submix("deaths_door",2);
|
|
soundscripts\_snd_filters::snd_fade_out_filter(2);
|
|
soundscripts\_audio_zone_manager::azm_set_filter_bypass(0);
|
|
soundscripts\_snd_common::snd_disable_soundcontextoverride("deathsdoor");
|
|
level notify("kill_deaths_door_audio");
|
|
level.player setpainvisioneq(0);
|
|
level.player deactivatereverb("snd_enveffectsprio_level",1);
|
|
soundscripts\_audio_zone_manager::azm_set_reverb_bypass(0);
|
|
soundscripts\_snd_playsound::snd_play_2d("deaths_door_exit");
|
|
}
|
|
}
|
|
|
|
//Function Number: 75
|
|
set_deathsdoor()
|
|
{
|
|
level._audio.in_deathsdoor = 1;
|
|
if(!isdefined(level._audio.deathsdoor))
|
|
{
|
|
level._audio.deathsdoor = spawnstruct();
|
|
}
|
|
|
|
level._audio.deathsdoor.reverb = undefined;
|
|
level._audio.deathsdoor.reverb = level._audio.current_reverb;
|
|
if(is_deathsdoor_audio_enabled())
|
|
{
|
|
soundscripts\_audio_zone_manager::azm_set_filter_bypass(1);
|
|
soundscripts\_audio_zone_manager::azm_set_reverb_bypass(1);
|
|
level.player setreverb("snd_enveffectsprio_level","sewer",1,0.7,1);
|
|
soundscripts\_audio_mix_manager::mm_add_submix("deaths_door",0.05);
|
|
soundscripts\_snd_filters::snd_fade_in_filter("deathsdoor",0.5);
|
|
soundscripts\_snd_common::snd_enable_soundcontextoverride("deathsdoor");
|
|
soundscripts\_snd_playsound::snd_play_2d("deaths_door_breaths","kill_deaths_door_audio",undefined,0.25);
|
|
soundscripts\_snd_playsound::snd_play_loop_2d("deaths_door_loop","kill_deaths_door_audio",0.05,1);
|
|
level.player setpainvisioneq(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 76
|
|
aud_set_mission_failed_music(param_00)
|
|
{
|
|
level._audio.failed_music_alias = param_00;
|
|
}
|
|
|
|
//Function Number: 77
|
|
aud_wait_for_mission_fail_music()
|
|
{
|
|
wait(0.05);
|
|
while(!common_scripts\utility::flag_exist("missionfailed"))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_00 = "shg_mission_failed_stinger";
|
|
common_scripts\utility::flag_wait("missionfailed");
|
|
if(isdefined(level._audio.failed_music_alias))
|
|
{
|
|
var_00 = level._audio.failed_music_alias;
|
|
}
|
|
|
|
if(soundexists(var_00))
|
|
{
|
|
soundscripts\_audio_music::mus_play(var_00,2,4);
|
|
}
|
|
}
|
|
|
|
//Function Number: 78
|
|
aud_use_string_tables()
|
|
{
|
|
level._audio.using_string_tables = 1;
|
|
soundscripts\_audio_zone_manager::azm_use_string_table();
|
|
soundscripts\_audio_reverb::rvb_use_string_table();
|
|
soundscripts\_audio_dynamic_ambi::damb_use_string_table();
|
|
soundscripts\_audio_whizby::whiz_use_string_table();
|
|
soundscripts\_audio_whizby::whiz_set_preset("default");
|
|
}
|
|
|
|
//Function Number: 79
|
|
set_stringtable_mapname(param_00)
|
|
{
|
|
soundscripts\_snd::snd_set_soundtable_name(param_00);
|
|
aud_use_string_tables();
|
|
level._audio.stringtables["map"] = param_00;
|
|
}
|
|
|
|
//Function Number: 80
|
|
get_stringtable_mapname()
|
|
{
|
|
return soundscripts\_snd::snd_get_soundtable_name();
|
|
}
|
|
|
|
//Function Number: 81
|
|
set_damb_stringtable(param_00)
|
|
{
|
|
level._audio.stringtables["damb"] = param_00;
|
|
}
|
|
|
|
//Function Number: 82
|
|
get_damb_stringtable()
|
|
{
|
|
if(!isdefined(level._audio.stringtables["damb"]))
|
|
{
|
|
return "soundtables/" + level.script + ".csv";
|
|
}
|
|
|
|
return "soundtables/" + level._audio.stringtables["damb"];
|
|
}
|
|
|
|
//Function Number: 83
|
|
set_damb_component_stringtable(param_00)
|
|
{
|
|
level._audio.stringtables["damb_comp"] = param_00;
|
|
}
|
|
|
|
//Function Number: 84
|
|
get_damb_component_stringtable(param_00)
|
|
{
|
|
if(!isdefined(level._audio.stringtables["damb_comp"]))
|
|
{
|
|
return "soundtables/" + level.script + ".csv";
|
|
}
|
|
|
|
return "soundtables/" + level._audio.stringtables["damb_comp"];
|
|
}
|
|
|
|
//Function Number: 85
|
|
set_damb_loops_stringtable(param_00)
|
|
{
|
|
level._audio.stringtables["damb_loops"] = param_00;
|
|
}
|
|
|
|
//Function Number: 86
|
|
get_damb_loops_stringtable(param_00)
|
|
{
|
|
if(!isdefined(level._audio.stringtables["damb_loops"]))
|
|
{
|
|
return "soundtables/" + level.script + ".csv";
|
|
}
|
|
|
|
return "soundtables/" + level._audio.stringtables["damb_loops"];
|
|
}
|
|
|
|
//Function Number: 87
|
|
set_reverb_stringtable(param_00)
|
|
{
|
|
level._audio.stringtables["reverb"] = param_00;
|
|
}
|
|
|
|
//Function Number: 88
|
|
get_reverb_stringtable()
|
|
{
|
|
if(!isdefined(level._audio.stringtables["reverb"]))
|
|
{
|
|
return "soundtables/" + level.script + ".csv";
|
|
}
|
|
|
|
return "soundtables/" + level._audio.stringtables["reverb"];
|
|
}
|
|
|
|
//Function Number: 89
|
|
set_zone_stringtable(param_00)
|
|
{
|
|
level._audio.stringtables["zone"] = param_00;
|
|
}
|
|
|
|
//Function Number: 90
|
|
get_zone_stringtable()
|
|
{
|
|
if(!isdefined(level._audio.stringtables["zone"]))
|
|
{
|
|
return "soundtables/" + level.script + ".csv";
|
|
}
|
|
|
|
return "soundtables/" + level._audio.stringtables["zone"];
|
|
}
|
|
|
|
//Function Number: 91
|
|
aud_get_player_locamote_state()
|
|
{
|
|
return level._audio.player_state.locamote;
|
|
}
|
|
|
|
//Function Number: 92
|
|
aud_get_threat_level(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 0;
|
|
var_04 = aud_get_sticky_threat();
|
|
if(isdefined(var_04))
|
|
{
|
|
var_03 = var_04;
|
|
}
|
|
else
|
|
{
|
|
var_05 = 3;
|
|
var_06 = 10;
|
|
var_07 = 100;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_05 = param_00;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
var_07 = param_02;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
var_06 = param_01;
|
|
}
|
|
|
|
var_08 = 36 * var_07;
|
|
var_09 = 36 * var_06;
|
|
var_0A = getaiarray("bad_guys");
|
|
var_0B = 0;
|
|
var_0C = 0;
|
|
foreach(var_0E in var_0A)
|
|
{
|
|
if(isdefined(var_0E.alertlevelint) && var_0E.alertlevelint >= var_05)
|
|
{
|
|
var_0F = distance(level.player.origin,var_0E.origin);
|
|
if(var_0F < var_08)
|
|
{
|
|
var_0B++;
|
|
if(var_0F < var_09)
|
|
{
|
|
var_10 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_10 = 1 - var_10 - var_0A / var_09 - var_0A;
|
|
}
|
|
|
|
var_0C = var_0C + var_10;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_0B > 0)
|
|
{
|
|
var_03 = var_0C / var_0B;
|
|
}
|
|
else
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 93
|
|
aud_get_sticky_threat()
|
|
{
|
|
return level._audio.sticky_threat;
|
|
}
|
|
|
|
//Function Number: 94
|
|
aud_set_sticky_threat(param_00)
|
|
{
|
|
level._audio.sticky_threat = param_00;
|
|
}
|
|
|
|
//Function Number: 95
|
|
aud_clear_sticky_threat()
|
|
{
|
|
level._audio.sticky_threat = undefined;
|
|
}
|
|
|
|
//Function Number: 96
|
|
aud_num_alive_enemies(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = 3600;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_02 = 36 * param_00;
|
|
}
|
|
|
|
var_03 = getaiarray("bad_guys");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(isalive(var_05))
|
|
{
|
|
var_06 = distance(level.player.origin,var_05.origin);
|
|
if(var_06 < var_02)
|
|
{
|
|
var_01++;
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 97
|
|
deprecated_aud_fade_sound_in(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
param_02 = aud_clamp(param_02,0,1);
|
|
param_03 = aud_max(0.05,param_03);
|
|
var_05 = 0;
|
|
if(isdefined(param_04))
|
|
{
|
|
var_05 = param_04;
|
|
}
|
|
|
|
if(var_05)
|
|
{
|
|
param_00 soundscripts\_snd_playsound::snd_play_loop(param_01);
|
|
}
|
|
else
|
|
{
|
|
param_00 soundscripts\_snd_playsound::snd_play(param_01);
|
|
}
|
|
|
|
param_00 scalevolume(0);
|
|
param_00 common_scripts\utility::delaycall(0.05,::scalevolume,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 98
|
|
deprecated_aud_map2(param_00,param_01)
|
|
{
|
|
return piecewiselinearlookup(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 99
|
|
deprecated_aud_map(param_00,param_01)
|
|
{
|
|
return piecewiselinearlookup(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 100
|
|
deprecated_aud_map_range(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = param_00 - param_01 / param_02 - param_01;
|
|
var_04 = clamp(var_04,0,1);
|
|
return piecewiselinearlookup(var_04,param_03);
|
|
}
|
|
|
|
//Function Number: 101
|
|
deprecated_aud_register_msg_handler(param_00)
|
|
{
|
|
level._audio.message_handlers[level._audio.message_handlers.size] = param_00;
|
|
}
|
|
|
|
//Function Number: 102
|
|
deprecated_audio_message(param_00,param_01,param_02)
|
|
{
|
|
thread deprecated_audx_dispatch_msg(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 103
|
|
deprecated_aud_send_msg(param_00,param_01,param_02)
|
|
{
|
|
deprecated_audio_message(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 104
|
|
deprecated_audx_dispatch_msg(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 0;
|
|
var_04 = 0;
|
|
foreach(var_06 in level._audio.message_handlers)
|
|
{
|
|
var_04 = self [[ var_06 ]](param_00,param_01);
|
|
if(!var_03 && isdefined(var_04) && var_04 == 1)
|
|
{
|
|
var_03 = var_04;
|
|
continue;
|
|
}
|
|
|
|
if(!var_03 && !isdefined(var_04))
|
|
{
|
|
var_03 = 1;
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
self notify(param_02);
|
|
}
|
|
|
|
if(!var_03)
|
|
{
|
|
aud_print_warning("\tAUDIO MESSAGE NOT HANDLED: " + param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 105
|
|
aud_play_pcap_vo(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 0;
|
|
var_04 = 1;
|
|
var_05 = self;
|
|
if(isdefined(param_02))
|
|
{
|
|
deprecated_aud_delay_play_2d_sound(param_00,param_01,var_03,var_04);
|
|
return;
|
|
}
|
|
|
|
deprecated_aud_delay_play_linked_sound(param_00,var_05,param_01,var_03,var_04);
|
|
}
|
|
|
|
//Function Number: 106
|
|
deprecated_play_2d_sound_internal(param_00)
|
|
{
|
|
soundscripts\_snd_playsound::snd_play(param_00,"sounddone");
|
|
self waittill("sounddone");
|
|
wait(0.05);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 107
|
|
deprecated_aud_delay_play_2d_sound_internal(param_00,param_01,param_02,param_03)
|
|
{
|
|
aud_wait_delay(param_01,param_02,param_03);
|
|
var_04 = spawn("script_origin",level.player.origin);
|
|
var_04 thread deprecated_play_2d_sound_internal(param_00);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 108
|
|
deprecated_aud_play_2d_sound(param_00)
|
|
{
|
|
var_01 = spawn("script_origin",level.player.origin);
|
|
var_01 thread deprecated_play_2d_sound_internal(param_00);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 109
|
|
deprecated_aud_delay_play_2d_sound(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = thread deprecated_aud_delay_play_2d_sound_internal(param_00,param_01,param_02,param_03);
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 110
|
|
deprecated_aud_delay_play_linked_sound(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
thread deprecated_aud_delay_play_linked_sound_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
}
|
|
|
|
//Function Number: 111
|
|
deprecated_aud_delay_play_linked_sound_internal(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
aud_wait_delay(param_02,param_03,param_04,param_05);
|
|
thread deprecated_aud_play_linked_sound(param_00,param_01,param_06,param_07,param_08,param_09);
|
|
}
|
|
|
|
//Function Number: 112
|
|
deprecated_audx_play_linked_sound_internal(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(param_00 == "loop")
|
|
{
|
|
level endon(param_02 + "internal");
|
|
soundscripts\_snd_playsound::snd_play_loop(param_01);
|
|
level waittill(param_02);
|
|
if(isdefined(self))
|
|
{
|
|
if(isdefined(param_04))
|
|
{
|
|
self scalevolume(0,param_04);
|
|
wait(param_04);
|
|
}
|
|
|
|
soundscripts\_snd_playsound::snd_stop_sound();
|
|
wait(0.05);
|
|
self delete();
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 == "oneshot")
|
|
{
|
|
soundscripts\_snd_playsound::snd_play(param_01,"sounddone");
|
|
if(isdefined(param_03))
|
|
{
|
|
self scalevolume(param_03,0);
|
|
}
|
|
|
|
self waittill("sounddone");
|
|
if(isdefined(self))
|
|
{
|
|
self delete();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 113
|
|
deprecated_audx_monitor_linked_entity_health(param_00,param_01,param_02)
|
|
{
|
|
level endon(param_01);
|
|
while(isdefined(self))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
level notify(param_01 + "internal");
|
|
if(isdefined(param_00))
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
param_00 scalevolume(0,param_02);
|
|
wait(param_02);
|
|
}
|
|
|
|
param_00 soundscripts\_snd_playsound::snd_stop_sound();
|
|
wait(0.05);
|
|
param_00 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 114
|
|
deprecated_aud_play_linked_sound(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
var_08 = "oneshot";
|
|
if(isdefined(param_02))
|
|
{
|
|
var_08 = param_02;
|
|
}
|
|
|
|
var_09 = param_01.origin;
|
|
if(isdefined(param_06))
|
|
{
|
|
var_09 = param_06;
|
|
}
|
|
|
|
var_0A = spawn("script_origin",var_09);
|
|
if(isdefined(param_04))
|
|
{
|
|
var_0A linkto(param_01,"tag_origin",param_04,(0,0,0));
|
|
}
|
|
else
|
|
{
|
|
var_0A linkto(param_01);
|
|
}
|
|
|
|
if(var_08 == "loop")
|
|
{
|
|
param_01 thread deprecated_audx_monitor_linked_entity_health(var_0A,param_03,param_07);
|
|
}
|
|
|
|
var_0A thread deprecated_audx_play_linked_sound_internal(var_08,param_00,param_03,param_05,param_07);
|
|
return var_0A;
|
|
}
|
|
|
|
//Function Number: 115
|
|
deprecated_aud_play_sound_at_internal(param_00,param_01,param_02)
|
|
{
|
|
soundscripts\_snd_playsound::snd_play(param_00,"sounddone");
|
|
if(isdefined(param_02))
|
|
{
|
|
wait(param_02);
|
|
self stopsounds();
|
|
}
|
|
else
|
|
{
|
|
self waittill("sounddone");
|
|
}
|
|
|
|
wait(0.05);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 116
|
|
deprecated_aud_play_sound_at(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawn("script_origin",param_01);
|
|
var_03 thread deprecated_aud_play_sound_at_internal(param_00,param_01,param_02);
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 117
|
|
deprecated_aud_set_occlusion(param_00)
|
|
{
|
|
soundscripts\_snd_filters::snd_set_occlusion(param_00);
|
|
}
|
|
|
|
//Function Number: 118
|
|
deprecated_aud_set_filter(param_00,param_01,param_02,param_03)
|
|
{
|
|
soundscripts\_snd_filters::snd_set_filter(param_00,param_01,param_03);
|
|
}
|
|
|
|
//Function Number: 119
|
|
deprecated_aud_delete_on_sounddone()
|
|
{
|
|
self waittill("sounddone");
|
|
deprecated_delete_sound_entity();
|
|
}
|
|
|
|
//Function Number: 120
|
|
deprecated_delete_sound_entity()
|
|
{
|
|
common_scripts\utility::delaycall(0.05,::delete);
|
|
}
|
|
|
|
//Function Number: 121
|
|
deprecated__audio_msg_handler(param_00,param_01)
|
|
{
|
|
var_02 = 1;
|
|
switch(param_00)
|
|
{
|
|
case "level_fade_to_black":
|
|
var_03 = param_01[0];
|
|
var_04 = param_01[1];
|
|
wait(var_03);
|
|
soundscripts\_audio_mix_manager::mm_start_preset("mute_all",var_04);
|
|
break;
|
|
|
|
case "generic_building_bomb_shake":
|
|
level.player soundscripts\_snd_playsound::snd_play("sewer_bombs");
|
|
break;
|
|
|
|
case "start_player_slide_trigger":
|
|
break;
|
|
|
|
case "end_player_slide_trigger":
|
|
break;
|
|
|
|
case "missile_fired":
|
|
break;
|
|
|
|
case "msg_audio_fx_ambientExp":
|
|
break;
|
|
|
|
case "DEPRECATED_aud_play_sound_at":
|
|
deprecated_aud_play_sound_at(param_01.alias,param_01.pos);
|
|
break;
|
|
|
|
case "aud_play_dynamic_explosion":
|
|
if(isdefined(param_01.spread_width))
|
|
{
|
|
var_05 = param_01.spread_width;
|
|
}
|
|
else
|
|
{
|
|
var_05 = undefined;
|
|
}
|
|
|
|
if(isdefined(param_01.rear_dist))
|
|
{
|
|
var_06 = param_01.rear_dist;
|
|
}
|
|
else
|
|
{
|
|
var_06 = undefined;
|
|
}
|
|
|
|
if(isdefined(param_01.velocity))
|
|
{
|
|
var_07 = param_01.velocity;
|
|
}
|
|
else
|
|
{
|
|
var_07 = undefined;
|
|
}
|
|
|
|
aud_play_dynamic_explosion(param_01.explosion_pos,param_01.left_alias,param_01.right_alias,var_05,var_06,var_07);
|
|
break;
|
|
|
|
case "DEPRECATED_aud_play_conversation":
|
|
deprecated_aud_play_conversation(param_00,param_01);
|
|
break;
|
|
|
|
case "xm25_contact_explode":
|
|
if(soundexists("xm25_proj_explo"))
|
|
{
|
|
var_08 = param_01;
|
|
thread common_scripts\utility::play_sound_in_space("xm25_proj_explo",var_08);
|
|
}
|
|
break;
|
|
|
|
case "light_flicker_on":
|
|
var_09 = param_01;
|
|
deprecated_aud_handle_flickering_light(var_09);
|
|
break;
|
|
|
|
default:
|
|
var_02 = 0;
|
|
break;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 122
|
|
deprecated_aud_handle_flickering_light(param_00)
|
|
{
|
|
var_01 = 0;
|
|
switch(param_00.model)
|
|
{
|
|
case "furniture_lamp_table1":
|
|
case "com_cafe_light_part1_off":
|
|
case "furniture_lamp_floor1_off":
|
|
var_01 = 1;
|
|
if(soundexists("paris_lamplight_flicker"))
|
|
{
|
|
thread common_scripts\utility::play_sound_in_space("paris_lamplight_flicker",param_00.origin);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
var_01 = 0;
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 123
|
|
deprecated_aud_play_conversation(param_00,param_01)
|
|
{
|
|
var_02 = param_01;
|
|
var_03 = [];
|
|
for(var_04 = 0;var_04 < var_02.size;var_04++)
|
|
{
|
|
var_03[var_04] = var_02[var_04].ent.battlechatter;
|
|
var_02[var_04].ent.battlechatter = 0;
|
|
}
|
|
|
|
foreach(var_06 in var_02)
|
|
{
|
|
if(isdefined(var_06.delay))
|
|
{
|
|
wait(var_06.delay);
|
|
}
|
|
|
|
var_07 = spawn("script_origin",(0,0,0));
|
|
var_07 linkto(var_06.ent,"",(0,0,0),(0,0,0));
|
|
var_07 soundscripts\_snd_playsound::snd_play(var_06.sound,"sounddone");
|
|
var_07 waittill("sounddone");
|
|
wait(0.05);
|
|
var_07 delete();
|
|
}
|
|
|
|
for(var_04 = 0;var_04 < var_02.size;var_04++)
|
|
{
|
|
var_02[var_04].ent.battlechatter = var_03[var_04];
|
|
}
|
|
} |