mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
1869 lines
40 KiB
Plaintext
1869 lines
40 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _audio_dynamic_ambi.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 54
|
|
* Decompile Time: 647 ms
|
|
* Timestamp: 4/22/2024 2:03:40 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
damb_init()
|
|
{
|
|
if(!isdefined(level._audio))
|
|
{
|
|
level._audio = spawnstruct();
|
|
}
|
|
|
|
if(!isdefined(level._audio.damb))
|
|
{
|
|
level._audio.damb = spawnstruct();
|
|
level._audio.damb.loop_handle_index = 0;
|
|
level._audio.damb.single_loop_handle_index = 0;
|
|
level._audio.damb.oneshot_handle_index = 0;
|
|
level._audio.damb.serial_playback_lock = 1;
|
|
level._audio.damb.playing = [];
|
|
level._audio.damb.playing["zone"] = [];
|
|
level._audio.damb.playing["free"] = [];
|
|
level._audio.damb.component_weights = [];
|
|
level._audio.damb.callbacks = [];
|
|
level._audio.damb.preset_cache = [];
|
|
level._audio.damb.component_cache = [];
|
|
level._audio.damb.loop_cache = [];
|
|
level._audio.damb.use_string_table_presets = 0;
|
|
level._audio.damb.entity_ref_count = 0;
|
|
level._audio.damb.loop_entity_ref_count = 0;
|
|
level._audio.damb.max_entities = 15;
|
|
}
|
|
}
|
|
|
|
//Function Number: 2
|
|
damb_set_max_entities(param_00)
|
|
{
|
|
level._audio.damb.max_entities = param_00;
|
|
}
|
|
|
|
//Function Number: 3
|
|
damb_use_string_table()
|
|
{
|
|
level._audio.damb.use_string_table_presets = 1;
|
|
}
|
|
|
|
//Function Number: 4
|
|
damb_zone_start_preset(param_00,param_01)
|
|
{
|
|
dambx_start_preset("zone",param_00,undefined,param_01);
|
|
}
|
|
|
|
//Function Number: 5
|
|
damb_start_preset(param_00,param_01,param_02,param_03)
|
|
{
|
|
dambx_start_preset("free",param_00,param_01,param_02,undefined,undefined,undefined,param_03);
|
|
}
|
|
|
|
//Function Number: 6
|
|
damb_start_preset_at_point(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(isdefined(param_03))
|
|
{
|
|
thread dambx_monitor_damb_point_distance(param_00,param_01,param_02,param_03,param_04,param_05);
|
|
return;
|
|
}
|
|
|
|
dambx_start_preset("free",param_00,param_02,undefined,param_01,undefined,undefined,param_05);
|
|
}
|
|
|
|
//Function Number: 7
|
|
damb_stop_preset_at_point(param_00,param_01,param_02)
|
|
{
|
|
if(isstring(param_01))
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
else
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
level notify(var_03 + "dist_monitor_stop");
|
|
damb_stop_preset(var_03,param_02);
|
|
}
|
|
|
|
//Function Number: 8
|
|
damb_make_linked_damb(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = spawnstruct();
|
|
var_05.name = param_00;
|
|
var_05.point = param_01;
|
|
var_05.label = param_02;
|
|
var_05.min_delay = param_03;
|
|
var_05.max_delay = param_04;
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 9
|
|
dambx_monitor_damb_point_distance(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(isstring(param_02))
|
|
{
|
|
level endon(param_02 + "dist_monitor_stop");
|
|
}
|
|
else
|
|
{
|
|
level endon(param_00 + "dist_monitor_stop");
|
|
}
|
|
|
|
var_06 = 1;
|
|
if(isdefined(param_04))
|
|
{
|
|
var_06 = param_04;
|
|
}
|
|
|
|
var_07 = 1;
|
|
for(;;)
|
|
{
|
|
var_08 = distance(level.player.origin,param_01);
|
|
if(var_08 < param_03)
|
|
{
|
|
if(var_07)
|
|
{
|
|
var_07 = 0;
|
|
dambx_start_preset("free",param_00,param_02,undefined,param_01,undefined,undefined,param_05);
|
|
}
|
|
}
|
|
else if(!var_07)
|
|
{
|
|
var_07 = 1;
|
|
if(isdefined(param_02))
|
|
{
|
|
dambx_stop_preset("free",param_02,var_06);
|
|
}
|
|
else
|
|
{
|
|
dambx_stop_preset("free",param_00,var_06);
|
|
}
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
damb_start_preset_on_entity(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = "attach";
|
|
if(isdefined(param_03))
|
|
{
|
|
var_05 = param_03;
|
|
}
|
|
|
|
dambx_start_preset("free",param_00,param_02,param_04,undefined,param_01,var_05);
|
|
}
|
|
|
|
//Function Number: 11
|
|
damb_stop(param_00,param_01)
|
|
{
|
|
var_02 = 2;
|
|
if(isdefined(param_00))
|
|
{
|
|
var_02 = param_00;
|
|
}
|
|
|
|
var_03 = "all";
|
|
if(isdefined(param_01))
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
if(var_03 == "free" || var_03 == "all")
|
|
{
|
|
foreach(var_06, var_05 in level._audio.damb.playing["free"])
|
|
{
|
|
damb_stop_preset(var_06,var_02);
|
|
}
|
|
}
|
|
|
|
if(var_03 == "zone" || var_03 == "all")
|
|
{
|
|
foreach(var_06, var_05 in level._audio.damb.playing["zone"])
|
|
{
|
|
damb_zone_stop_preset(var_06,var_02);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
damb_stop_zone(param_00)
|
|
{
|
|
dambx_stop_preset("zone",undefined,param_00);
|
|
}
|
|
|
|
//Function Number: 13
|
|
damb_zone_stop_preset(param_00,param_01)
|
|
{
|
|
dambx_stop_preset("zone",param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 14
|
|
damb_stop_preset(param_00,param_01)
|
|
{
|
|
dambx_stop_preset("free",param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 15
|
|
damb_prob_mix_damb_presets(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00) && param_00 != "none")
|
|
{
|
|
if(param_01 == 0)
|
|
{
|
|
damb_zone_stop_preset(param_00,2);
|
|
}
|
|
else
|
|
{
|
|
damb_zone_start_preset(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_02) && param_02 != "none")
|
|
{
|
|
if(param_03 == 0)
|
|
{
|
|
damb_zone_stop_preset(param_02,2);
|
|
return;
|
|
}
|
|
|
|
damb_zone_start_preset(param_02,param_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
damb_set_oneshot_callback_for_component(param_00,param_01)
|
|
{
|
|
if(!isdefined(level._audio.damb.callback))
|
|
{
|
|
level._audio.damb.callback = [];
|
|
}
|
|
|
|
level._audio.damb.callback[param_00] = param_01;
|
|
}
|
|
|
|
//Function Number: 17
|
|
damb_set_oneshot_callback_for_dynamic_ambience(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
if(isdefined(level._audio.damb.preset_cache[param_00]))
|
|
{
|
|
var_02 = level._audio.damb.preset_cache[param_00];
|
|
}
|
|
else if(level._audio.damb.use_string_table_presets)
|
|
{
|
|
var_02 = dambx_get_preset_from_string_table(param_00,1);
|
|
level._audio.damb.preset_cache[param_00] = var_02;
|
|
}
|
|
else
|
|
{
|
|
var_02 = dambx_get_preset_from_string_table(param_00,0);
|
|
level._audio.damb.preset_cache[param_00] = var_02;
|
|
}
|
|
|
|
foreach(var_04 in var_02["components"])
|
|
{
|
|
damb_set_oneshot_callback_for_component(var_04,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
damb_pause_damb(param_00,param_01)
|
|
{
|
|
var_02 = "free";
|
|
if(isdefined(param_01))
|
|
{
|
|
var_02 = param_01;
|
|
}
|
|
|
|
if(isdefined(level._audio.damb.playing[var_02][param_00]))
|
|
{
|
|
level._audio.damb.playing[var_02][param_00]["paused"] = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
damb_unpause_damb(param_00,param_01)
|
|
{
|
|
var_02 = "free";
|
|
if(isdefined(param_01))
|
|
{
|
|
var_02 = param_01;
|
|
}
|
|
|
|
if(isdefined(level._audio.damb.playing[var_02][param_00]))
|
|
{
|
|
level._audio.damb.playing[var_02][param_00]["paused"] = 0;
|
|
level notify(var_02 + "_" + param_00 + "_event");
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
damb_manual_trigger(param_00,param_01)
|
|
{
|
|
var_02 = "free";
|
|
if(isdefined(param_01))
|
|
{
|
|
var_02 = param_01;
|
|
}
|
|
|
|
if(isdefined(level._audio.damb.playing[var_02][param_00]))
|
|
{
|
|
level notify(var_02 + "_" + param_00 + "_event");
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
damb_link_to_damb(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = "free";
|
|
if(isdefined(level._audio.damb.playing[var_04][param_00]) && isdefined(level._audio.damb.playing[var_04][param_01]))
|
|
{
|
|
param_02 = min(param_02,param_03);
|
|
param_03 = max(param_02,param_03);
|
|
if(!isdefined(level._audio.damb.playing[var_04][param_00]["linked_dambs"]))
|
|
{
|
|
level._audio.damb.playing[var_04][param_00]["linked_dambs"] = [];
|
|
}
|
|
|
|
var_05 = level._audio.damb.playing[var_04][param_00]["linked_dambs"].size;
|
|
level._audio.damb.playing[var_04][param_00]["linked_dambs"][var_05] = spawnstruct();
|
|
level._audio.damb.playing[var_04][param_00]["linked_dambs"][var_05].name = param_01;
|
|
level._audio.damb.playing[var_04][param_00]["linked_dambs"][var_05].min_delay = max(param_02,0);
|
|
level._audio.damb.playing[var_04][param_00]["linked_dambs"][var_05].max_delay = max(param_03,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
dambx_start_preset(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
var_08 = 1;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_08 = param_03;
|
|
}
|
|
|
|
var_09 = param_01;
|
|
if(isstring(param_02))
|
|
{
|
|
var_09 = param_02;
|
|
}
|
|
|
|
if(!isdefined(level._audio.damb.playing[param_00][var_09]))
|
|
{
|
|
var_0A = dambx_get_damb_preset(param_01);
|
|
if(!isdefined(var_0A))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level._audio.damb.playing[param_00][var_09] = var_0A;
|
|
level._audio.damb.playing[param_00][var_09]["prob_scale"] = var_08;
|
|
level._audio.damb.playing[param_00][var_09]["paused"] = 0;
|
|
if(isdefined(param_07))
|
|
{
|
|
dambx_start_linked_dambs(var_09,param_07);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
level._audio.damb.playing[param_00][var_09]["entity"] = param_05;
|
|
level._audio.damb.playing[param_00][var_09]["mode"] = param_06;
|
|
}
|
|
|
|
thread dambx_play(param_00,var_09,param_04);
|
|
return;
|
|
}
|
|
|
|
if(level._audio.damb.playing[param_00][var_09]["prob_scale"] != var_08)
|
|
{
|
|
level._audio.damb.playing[param_00][var_09]["prob_scale"] = var_08;
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
dambx_start_linked_dambs(param_00,param_01)
|
|
{
|
|
if(isarray(param_01))
|
|
{
|
|
foreach(var_03 in param_01)
|
|
{
|
|
dambx_start_preset("free",var_03.name,var_03.label,undefined,var_03.point);
|
|
damb_pause_damb(var_03.label);
|
|
damb_link_to_damb(param_00,var_03.label,var_03.min_delay,var_03.max_delay);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
dambx_start_preset("free",param_01.name,param_01.label,undefined,param_01.point);
|
|
damb_pause_damb(param_01.label);
|
|
damb_link_to_damb(param_00,param_01.label,param_01.min_delay,param_01.max_delay);
|
|
}
|
|
|
|
//Function Number: 24
|
|
dambx_stop_preset(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 2;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_03 = param_02;
|
|
}
|
|
|
|
if(param_00 == "zone" && !isdefined(param_01))
|
|
{
|
|
if(isdefined(level._audio.damb.playing[param_00]))
|
|
{
|
|
foreach(param_01, var_05 in level._audio.damb.playing[param_00])
|
|
{
|
|
level._audio.damb.playing[param_00][param_01]["fade"] = var_03;
|
|
level notify(param_00 + "_" + param_01 + "_stop");
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(level._audio.damb.playing[param_02][var_03]))
|
|
{
|
|
level._audio.damb.playing[param_02][var_03]["fade"] = var_05;
|
|
level notify(param_02 + "_" + var_03 + "_stop");
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
dambx_update_serially(param_00,param_01,param_02)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
var_03 = level._audio.damb.playing[param_00][param_01]["event_time"];
|
|
var_04 = min(var_03[0],var_03[1]);
|
|
var_05 = max(var_03[0],var_03[1]);
|
|
var_06 = undefined;
|
|
var_07 = undefined;
|
|
if(isdefined(level._audio.damb.playing[param_00][param_01]["first_event"]))
|
|
{
|
|
var_03 = level._audio.damb.playing[param_00][param_01]["first_event"];
|
|
var_06 = min(var_03[0],var_03[1]);
|
|
var_07 = max(var_03[0],var_03[1]);
|
|
}
|
|
|
|
var_08 = undefined;
|
|
if(isdefined(var_06))
|
|
{
|
|
var_08 = randomfloatrange(var_06,var_07);
|
|
}
|
|
else
|
|
{
|
|
var_08 = randomfloatrange(var_04,var_05);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(!level._audio.damb.playing[param_00][param_01]["paused"])
|
|
{
|
|
wait(var_08);
|
|
}
|
|
|
|
if(level._audio.damb.playing[param_00][param_01]["paused"])
|
|
{
|
|
level waittill(param_00 + "_" + param_01 + "_event");
|
|
}
|
|
|
|
var_09 = dambx_pick_random_component(param_00,param_01);
|
|
if(!isdefined(var_09))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A = dambx_get_component_data(param_00,param_01,var_09,param_01);
|
|
if(var_0A.using_oneshots_or_loops)
|
|
{
|
|
if(var_0A.using_entity && !isdefined(var_0A.ent))
|
|
{
|
|
level notify(param_00 + "_" + param_01 + "_stop");
|
|
break;
|
|
}
|
|
|
|
var_0B = dambx_create_damb_event(var_0A,param_01,var_09);
|
|
if(var_0B.success)
|
|
{
|
|
if(level._audio.damb.serial_playback_lock)
|
|
{
|
|
dambx_perform_play_event(param_00,param_01,var_0B);
|
|
}
|
|
else
|
|
{
|
|
thread dambx_perform_play_event(param_00,param_01,var_0B);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
soundscripts\_audio::aud_print_warning("Dynamic ambience is playing back serially and using components which do not define oneshots or loops");
|
|
}
|
|
|
|
var_08 = randomfloatrange(var_04,var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
dambx_play_component_loops(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_02["single_loops"]))
|
|
{
|
|
foreach(var_06 in param_02["single_loops"])
|
|
{
|
|
var_07 = undefined;
|
|
if(isdefined(param_04))
|
|
{
|
|
var_07 = spawn("script_origin",param_04.origin);
|
|
}
|
|
else if(isdefined(param_03))
|
|
{
|
|
var_07 = spawn("script_origin",param_03);
|
|
}
|
|
else
|
|
{
|
|
var_07 = spawn("script_origin",level.player.origin);
|
|
}
|
|
|
|
level._audio.damb.loop_entity_ref_count++;
|
|
var_07 playloopsound(var_06);
|
|
if(isdefined(param_04))
|
|
{
|
|
var_07 linkto(param_04);
|
|
}
|
|
|
|
var_08 = level._audio.damb.single_loop_handle_index;
|
|
level._audio.damb.playing[param_00][param_01]["single_loops"][var_08] = var_07;
|
|
level._audio.damb.single_loop_handle_index++;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
dambx_get_component_data(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawnstruct();
|
|
var_03.using_oneshots_or_loops = 0;
|
|
if(!isdefined(param_02["single_loops"]))
|
|
{
|
|
var_03.single_loops = 0;
|
|
}
|
|
else
|
|
{
|
|
var_03.single_loops = 1;
|
|
}
|
|
|
|
if(isdefined(param_02["oneshots"]) || isdefined(param_02["loops"]))
|
|
{
|
|
var_03.using_oneshots_or_loops = 1;
|
|
if(!isdefined(param_02["radius"]))
|
|
{
|
|
param_02["radius"] = [0,0.01];
|
|
}
|
|
|
|
var_03.min_radius = min(param_02["radius"][0],param_02["radius"][1]);
|
|
var_03.max_radius = max(param_02["radius"][0],param_02["radius"][1]);
|
|
if(isarray(param_02["event_time"]))
|
|
{
|
|
var_03.min_time = min(param_02["event_time"][0],param_02["event_time"][1]);
|
|
var_03.max_time = max(param_02["event_time"][0],param_02["event_time"][1]);
|
|
}
|
|
|
|
if(isarray(param_02["first_event"]))
|
|
{
|
|
var_03.first_event = 1;
|
|
var_03.first_event_min = min(param_02["first_event"][0],param_02["first_event"][1]);
|
|
var_03.first_event_max = max(param_02["first_event"][0],param_02["first_event"][1]);
|
|
}
|
|
|
|
if(isarray(param_02["pitch"]))
|
|
{
|
|
var_03.min_pitch = min(param_02["pitch"][0],param_02["pitch"][1]);
|
|
var_03.max_pitch = max(param_02["pitch"][0],param_02["pitch"][1]);
|
|
}
|
|
|
|
if(isarray(param_02["travel_time"]))
|
|
{
|
|
var_03.min_trav_time = min(param_02["travel_time"][0],param_02["travel_time"][1]);
|
|
var_03.max_trav_time = max(param_02["travel_time"][0],param_02["travel_time"][1]);
|
|
if(isarray(param_02["delta"]))
|
|
{
|
|
var_03.min_delta = min(param_02["delta"][0],param_02["delta"][1]);
|
|
var_03.max_delta = max(param_02["delta"][0],param_02["delta"][1]);
|
|
}
|
|
else
|
|
{
|
|
var_03.min_delta_angle = min(param_02["delta_angle"][0],param_02["delta_angle"][1]);
|
|
var_03.max_delta_angle = max(param_02["delta_angle"][0],param_02["delta_angle"][1]);
|
|
}
|
|
}
|
|
|
|
if(isarray(param_02["pitch_time"]))
|
|
{
|
|
var_03.min_pitch_time = min(param_02["pitch_time"][0],param_02["pitch_time"][1]);
|
|
var_03.max_pitch_time = max(param_02["pitch_time"][0],param_02["pitch_time"][1]);
|
|
}
|
|
|
|
if(isdefined(param_02["cone"]))
|
|
{
|
|
var_03.min_start_angle = min(param_02["cone"][0],param_02["cone"][1]);
|
|
var_03.max_start_angle = max(param_02["cone"][0],param_02["cone"][1]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_03.using_oneshots_or_loops = 0;
|
|
}
|
|
|
|
var_03.using_entity = 0;
|
|
if(isdefined(level._audio.damb.playing[param_00][param_01]["entity"]))
|
|
{
|
|
var_03.using_entity = 1;
|
|
var_03.ent = level._audio.damb.playing[param_00][param_01]["entity"];
|
|
var_03.mode = level._audio.damb.playing[param_00][param_01]["mode"];
|
|
}
|
|
|
|
var_03.prob_scale = level._audio.damb.playing[param_00][param_01]["prob_scale"];
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 28
|
|
dambx_monitor_single_loops_on_ent(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
level notify(param_00 + "_" + param_01 + "_stop");
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
dambx_create_damb_event(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = spawnstruct();
|
|
if(randomfloat(1) < param_00.prob_scale)
|
|
{
|
|
var_04.success = 1;
|
|
if(isdefined(level._audio.damb.callbacks[param_01]))
|
|
{
|
|
thread [[ level._audio.damb.callback[param_01] ]]();
|
|
}
|
|
else
|
|
{
|
|
var_04.alias = dambx_pick_random_alias(param_02);
|
|
var_04.point = param_03;
|
|
var_04.ent = param_00.ent;
|
|
var_04.mode = param_00.mode;
|
|
var_05 = randomfloatrange(param_00.min_radius,param_00.max_radius);
|
|
var_06 = undefined;
|
|
if(isdefined(param_00.min_start_angle))
|
|
{
|
|
var_06 = randomfloatrange(param_00.min_start_angle,param_00.max_start_angle);
|
|
}
|
|
else
|
|
{
|
|
var_06 = randomfloatrange(0,360);
|
|
}
|
|
|
|
var_07 = var_05 * cos(var_06);
|
|
var_08 = var_05 * sin(var_06);
|
|
var_04.start_position = (var_07,var_08,0);
|
|
if(isdefined(param_00.min_trav_time))
|
|
{
|
|
var_04.travel_time = randomfloatrange(param_00.min_trav_time,param_00.max_trav_time);
|
|
if(isdefined(param_00.min_delta))
|
|
{
|
|
var_05 = randomfloatrange(param_00.min_delta,param_00.max_delta);
|
|
var_06 = randomfloatrange(0,360);
|
|
var_07 = var_05 * cos(var_06);
|
|
var_08 = var_05 * sin(var_06);
|
|
var_04.end_position = var_04.start_position + (var_07,var_08,0);
|
|
}
|
|
else
|
|
{
|
|
var_09 = randomfloatrange(param_00.min_delta_angle,param_00.max_delta_angle);
|
|
var_09 = var_09 * 0.5;
|
|
var_0A = level.player.origin;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_0A = param_03;
|
|
}
|
|
|
|
var_0B = var_04.start_position - var_0A;
|
|
var_07 = var_0B[0] * cos(var_09) - var_0B[1] * sin(var_09);
|
|
var_08 = var_0B[0] * sin(var_09) + var_0B[1] * cos(var_09);
|
|
var_04.end_position = var_04.start_position + (var_07,var_08,0);
|
|
}
|
|
}
|
|
|
|
if(isdefined(param_00.min_pitch))
|
|
{
|
|
var_04.start_pitch = randomfloatrange(param_00.min_pitch,param_00.max_pitch);
|
|
}
|
|
|
|
if(isdefined(param_00.min_pitch_time))
|
|
{
|
|
var_04.end_pitch = randomfloatrange(param_00.min_pitch,param_00.max_pitch);
|
|
var_04.pitch_time = randomfloatrange(param_00.min_pitch_time,param_00.max_pitch_time);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_04.success = 0;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 30
|
|
dambx_trigger_linked_damb(param_00,param_01)
|
|
{
|
|
wait(param_01);
|
|
damb_manual_trigger(param_00);
|
|
}
|
|
|
|
//Function Number: 31
|
|
dambx_make_first_wait(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
if(isdefined(param_00.first_event))
|
|
{
|
|
var_01 = randomfloatrange(param_00.first_event_min,param_00.first_event_max);
|
|
}
|
|
else
|
|
{
|
|
var_01 = randomfloatrange(param_00.min_time,param_00.max_time);
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 32
|
|
dambx_update(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
var_04 = dambx_get_component_data(param_00,param_01,param_02,param_01);
|
|
if(var_04.single_loops)
|
|
{
|
|
dambx_play_component_loops(param_00,param_01,param_02,param_03,var_04.ent);
|
|
if(var_04.using_entity && !var_04.using_oneshots_or_loops)
|
|
{
|
|
thread dambx_monitor_single_loops_on_ent(param_00,param_01,var_04.ent);
|
|
}
|
|
}
|
|
|
|
if(var_04.using_oneshots_or_loops)
|
|
{
|
|
var_05 = dambx_make_first_wait(var_04);
|
|
for(;;)
|
|
{
|
|
if(!level._audio.damb.playing[param_00][param_01]["paused"])
|
|
{
|
|
wait(var_05);
|
|
}
|
|
|
|
if(level._audio.damb.playing[param_00][param_01]["paused"])
|
|
{
|
|
level waittill(param_00 + "_" + param_01 + "_event");
|
|
}
|
|
|
|
if(var_04.using_entity && !isdefined(var_04.ent))
|
|
{
|
|
level notify(param_00 + "_" + param_01 + "_stop");
|
|
break;
|
|
}
|
|
|
|
if(isdefined(level._audio.damb.playing[param_00][param_01]["linked_dambs"]))
|
|
{
|
|
foreach(var_07 in level._audio.damb.playing[param_00][param_01]["linked_dambs"])
|
|
{
|
|
var_08 = randomfloatrange(var_07.min_delay,var_07.max_delay);
|
|
thread dambx_trigger_linked_damb(var_07.name,var_08);
|
|
}
|
|
}
|
|
|
|
var_04.prob_scale = level._audio.damb.playing[param_00][param_01]["prob_scale"];
|
|
var_0A = dambx_create_damb_event(var_04,param_01,param_02,param_03);
|
|
if(var_0A.success)
|
|
{
|
|
thread dambx_perform_play_event(param_00,param_01,var_0A);
|
|
}
|
|
|
|
var_05 = randomfloatrange(var_04.min_time,var_04.max_time);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
dambx_wait_till_sound_done_and_remove_handle(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
param_03 waittill("sounddone");
|
|
if(isdefined(level._audio.damb.playing[param_00][param_01]["oneshots"][param_02]))
|
|
{
|
|
param_03 delete();
|
|
decrement_ref_count();
|
|
level._audio.damb.playing[param_00][param_01]["oneshots"][param_02] = undefined;
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
dambx_perform_play_event(param_00,param_01,param_02)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
if(param_02.alias["type"] == "loop")
|
|
{
|
|
dambx_perform_loop_event(param_00,param_01,param_02);
|
|
return;
|
|
}
|
|
|
|
dambx_perform_oneshot_event(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 35
|
|
dambx_perform_oneshot_event(param_00,param_01,param_02)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
var_03 = level.player.origin;
|
|
if(isdefined(param_02.ent))
|
|
{
|
|
var_03 = param_02.ent.origin;
|
|
}
|
|
else if(isdefined(param_02.point))
|
|
{
|
|
var_03 = param_02.point;
|
|
}
|
|
|
|
if(level._audio.damb.entity_ref_count < level._audio.damb.max_entities)
|
|
{
|
|
var_04 = spawn("script_origin",var_03 + param_02.start_position);
|
|
if(isdefined(param_02.ent) && param_02.mode == "attach")
|
|
{
|
|
var_04 linkto(param_02.ent);
|
|
}
|
|
|
|
var_04 playsound(param_02.alias["name"],"sounddone");
|
|
var_04 thread soundscripts\_audio::aud_check_sound_done();
|
|
if(!var_04.sounddone)
|
|
{
|
|
var_05 = level._audio.damb.oneshot_handle_index;
|
|
level._audio.damb.playing[param_00][param_01]["oneshots"][var_05] = var_04;
|
|
level._audio.damb.oneshot_handle_index++;
|
|
increment_ref_count();
|
|
if(isdefined(param_02.end_position) && !isdefined(param_02.entity))
|
|
{
|
|
var_06 = 0.1 * param_02.travel_time;
|
|
var_04 moveto(var_03 + param_02.end_position,param_02.travel_time,var_06,var_06);
|
|
}
|
|
|
|
if(isdefined(param_02.start_pitch))
|
|
{
|
|
var_04 scalepitch(param_02.start_pitch);
|
|
}
|
|
|
|
if(isdefined(param_02.pitch_time))
|
|
{
|
|
wait(0.05);
|
|
if(isdefined(var_04) && !var_04.sounddone)
|
|
{
|
|
var_04 scalepitch(param_02.end_pitch,param_02.pitch_time);
|
|
}
|
|
}
|
|
|
|
thread dambx_wait_till_sound_done_and_remove_handle(param_00,param_01,var_05,var_04);
|
|
var_04 waittill("sounddone");
|
|
return;
|
|
}
|
|
|
|
var_04 delete();
|
|
return;
|
|
}
|
|
|
|
soundscripts\_audio::aud_print_warning("TRYING TO PLAY ONESHOT WITH DAMB REF COUNT AT MAXIMUM!");
|
|
}
|
|
|
|
//Function Number: 36
|
|
dambx_perform_loop_event(param_00,param_01,param_02)
|
|
{
|
|
level endon(param_00 + "_" + param_01 + "_stop");
|
|
if(level._audio.damb.entity_ref_count < level._audio.damb.max_entities)
|
|
{
|
|
var_03 = level.player.origin;
|
|
if(isdefined(param_02.ent))
|
|
{
|
|
var_03 = param_02.ent.origin;
|
|
}
|
|
else if(isdefined(param_02.point))
|
|
{
|
|
var_03 = param_02.point;
|
|
}
|
|
|
|
var_04 = param_02.alias["name"];
|
|
var_05 = dambx_get_loop_preset(var_04);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_06 = min(var_05["duration"][0],var_05["duration"][1]);
|
|
var_07 = max(var_05["duration"][0],var_05["duration"][1]);
|
|
var_08 = randomfloatrange(var_06,var_07);
|
|
var_09 = var_05["loop_alias"];
|
|
var_0A = var_05["fade_in"];
|
|
var_0B = var_05["fade_out"];
|
|
var_0C = undefined;
|
|
if(isdefined(var_05["end_alias"]))
|
|
{
|
|
var_0C = var_05["end_alias"];
|
|
}
|
|
|
|
var_0D = spawn("script_origin",var_03 + param_02.start_position);
|
|
if(isdefined(param_02.ent) && param_02.mode == "attach")
|
|
{
|
|
var_0D linkto(param_02.ent);
|
|
}
|
|
|
|
var_0D playloopsound(var_09);
|
|
if(isdefined(var_0A))
|
|
{
|
|
var_0D scalevolume(0);
|
|
wait(0.05);
|
|
var_0D scalevolume(1,var_0A);
|
|
}
|
|
|
|
var_0D thread soundscripts\_audio::aud_check_sound_done();
|
|
if(!var_0D.sounddone)
|
|
{
|
|
var_0E = level._audio.damb.loop_handle_index;
|
|
level._audio.damb.playing[param_00][param_01]["loops"][var_0E] = var_0D;
|
|
increment_ref_count();
|
|
level._audio.damb.loop_handle_index++;
|
|
var_0F = 0;
|
|
if(isdefined(param_02.mode) && param_02.mode == "free" && isdefined(param_02.end_position))
|
|
{
|
|
var_0F = 1;
|
|
}
|
|
else if(!isdefined(param_02.mode) && isdefined(param_02.end_position))
|
|
{
|
|
var_0F = 1;
|
|
}
|
|
|
|
if(var_0F)
|
|
{
|
|
var_10 = 0.1 * param_02.travel_time;
|
|
var_0D moveto(var_03 + param_02.end_position,param_02.travel_time,var_10,var_10);
|
|
}
|
|
|
|
if(isdefined(param_02.start_pitch))
|
|
{
|
|
var_0D setpitch(param_02.start_pitch);
|
|
}
|
|
|
|
if(isdefined(param_02.pitch_time))
|
|
{
|
|
wait(0.05);
|
|
if(isdefined(var_0D) && !var_0D.sounddone)
|
|
{
|
|
var_0D setpitch(param_02.end_pitch,param_02.pitch_time);
|
|
}
|
|
}
|
|
|
|
wait(var_08);
|
|
if(!var_0D.sounddone)
|
|
{
|
|
if(isdefined(level._audio.damb.playing[param_00][param_01]["loops"][var_0E]))
|
|
{
|
|
if(isdefined(var_0C))
|
|
{
|
|
var_11 = spawn("script_origin",var_0D.origin);
|
|
var_11 playsound(var_0C,"sounddone");
|
|
var_12 = level._audio.damb.oneshot_handle_index;
|
|
level._audio.damb.oneshot_handle_index++;
|
|
level._audio.damb.playing[param_00][param_01]["oneshots"][var_12] = var_11;
|
|
increment_ref_count();
|
|
thread dambx_wait_till_sound_done_and_remove_handle(param_00,param_01,var_12,var_11);
|
|
}
|
|
|
|
if(isdefined(var_0B))
|
|
{
|
|
thread soundscripts\_audio::aud_fade_loop_out_and_delete(var_0D,var_0B);
|
|
}
|
|
else
|
|
{
|
|
var_0D stoploopsound();
|
|
wait(0.05);
|
|
var_0D delete();
|
|
}
|
|
|
|
decrement_ref_count();
|
|
level._audio.damb.playing[param_00][param_01]["loops"][var_0E] = undefined;
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_0D stoploopsound();
|
|
var_0D delete();
|
|
decrement_ref_count();
|
|
level._audio.damb.playing[param_00][param_01]["loops"][var_0E] = undefined;
|
|
return;
|
|
}
|
|
|
|
var_0D delete();
|
|
return;
|
|
}
|
|
|
|
soundscripts\_audio::aud_print_warning("TRYING TO PLAY LOOP WITH DAMB REF COUNT AT MAXIMUM!");
|
|
}
|
|
|
|
//Function Number: 37
|
|
dambx_pick_random_component(param_00,param_01)
|
|
{
|
|
var_02 = 0;
|
|
foreach(var_04 in level._audio.damb.playing[param_00][param_01]["components"])
|
|
{
|
|
var_05 = var_04[1];
|
|
var_02 = var_02 + var_05;
|
|
}
|
|
|
|
var_07 = randomfloat(var_02);
|
|
var_08 = 0;
|
|
var_09 = undefined;
|
|
foreach(var_04 in level._audio.damb.playing[param_00][param_01]["components"])
|
|
{
|
|
var_0B = var_08 + var_04[1];
|
|
if(var_07 >= var_08 && var_07 < var_0B)
|
|
{
|
|
var_09 = var_04[0];
|
|
break;
|
|
}
|
|
|
|
var_08 = var_0B;
|
|
}
|
|
|
|
var_0D = dambx_get_component_preset(var_09);
|
|
if(!isdefined(var_0D))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0D["name"] = var_09;
|
|
return var_0D;
|
|
}
|
|
|
|
//Function Number: 38
|
|
dambx_pick_random_alias(param_00)
|
|
{
|
|
var_01 = param_00["loops"];
|
|
var_02 = param_00["oneshots"];
|
|
var_03 = undefined;
|
|
if(!isdefined(level._audio.damb.component_weights[param_00["name"]]))
|
|
{
|
|
var_03 = 0;
|
|
if(isdefined(var_01))
|
|
{
|
|
if(isstring(var_01[0]))
|
|
{
|
|
var_03 = var_03 + var_01[1];
|
|
}
|
|
else
|
|
{
|
|
foreach(var_05 in var_01)
|
|
{
|
|
var_03 = var_03 + var_05[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_02))
|
|
{
|
|
if(isstring(var_02[0]))
|
|
{
|
|
var_03 = var_03 + var_02[1];
|
|
}
|
|
else
|
|
{
|
|
foreach(var_05 in var_02)
|
|
{
|
|
var_03 = var_03 + var_05[1];
|
|
}
|
|
}
|
|
}
|
|
|
|
level._audio.damb.component_weights[param_00["name"]] = var_03;
|
|
}
|
|
else
|
|
{
|
|
var_03 = level._audio.damb.component_weights[param_00["name"]];
|
|
}
|
|
|
|
var_09 = randomfloatrange(0,var_03);
|
|
var_0A = undefined;
|
|
var_0B = undefined;
|
|
var_0C = 0;
|
|
if(isdefined(var_01))
|
|
{
|
|
if(isstring(var_01[0]))
|
|
{
|
|
var_0D = var_0C + var_01[1];
|
|
if(var_09 >= var_0C && var_09 < var_0D)
|
|
{
|
|
var_0A = var_01[0];
|
|
var_0B = "loop";
|
|
}
|
|
else
|
|
{
|
|
var_0C = var_0D;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach(var_05 in var_02)
|
|
{
|
|
var_0D = var_0C + var_05[1];
|
|
if(var_09 >= var_0C && var_09 < var_0D)
|
|
{
|
|
var_0A = var_05[0];
|
|
var_0B = "loop";
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
var_0C = var_0D;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_0A) && isdefined(var_02))
|
|
{
|
|
if(isarray(var_02))
|
|
{
|
|
foreach(var_05 in var_02)
|
|
{
|
|
var_0D = var_0C + var_05[1];
|
|
if(var_09 >= var_0C && var_09 < var_0D)
|
|
{
|
|
var_0A = var_05[0];
|
|
var_0B = "oneshot";
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
var_0C = var_0D;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_0D = var_0D + var_03[1];
|
|
if(var_09 >= var_0C && var_09 < var_0D)
|
|
{
|
|
var_0A = var_02[0];
|
|
var_0B = "oneshot";
|
|
}
|
|
else
|
|
{
|
|
var_0C = var_0D;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_12 = [];
|
|
var_12["name"] = var_0A;
|
|
var_12["type"] = var_0B;
|
|
return var_12;
|
|
}
|
|
|
|
//Function Number: 39
|
|
dambx_get_loop_preset(param_00)
|
|
{
|
|
var_01 = [];
|
|
if(isdefined(level._audio.damb.loop_cache[param_00]))
|
|
{
|
|
var_01 = level._audio.damb.loop_cache[param_00];
|
|
}
|
|
else
|
|
{
|
|
var_01 = dambx_get_loop_def_from_string_table(param_00,1);
|
|
}
|
|
|
|
if(!isdefined(var_01) || var_01.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level._audio.damb.loop_cache[param_00] = var_01;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 40
|
|
dambx_get_component_preset(param_00)
|
|
{
|
|
if(!isdefined(level._audio.damb.component_cache))
|
|
{
|
|
level._audio.damb.component_cache = [];
|
|
}
|
|
|
|
var_01 = [];
|
|
if(isdefined(level._audio.damb.component_cache[param_00]))
|
|
{
|
|
var_01 = level._audio.damb.component_cache[param_00];
|
|
}
|
|
|
|
var_01 = dambx_get_component_from_string_table(param_00,1);
|
|
if(!isdefined(var_01) || var_01.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level._audio.damb.component_cache[param_00] = var_01;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 41
|
|
dambx_play(param_00,param_01,param_02)
|
|
{
|
|
level._audio.damb.playing[param_00][param_01]["loops"] = [];
|
|
level._audio.damb.playing[param_00][param_01]["single_loops"] = [];
|
|
level._audio.damb.playing[param_00][param_01]["oneshots"] = [];
|
|
if(!isdefined(level._audio.damb.playing[param_00][param_01]["event_time"]))
|
|
{
|
|
foreach(var_04 in level._audio.damb.playing[param_00][param_01]["components"])
|
|
{
|
|
var_05 = dambx_get_component_preset(var_04);
|
|
if(!isdefined(var_05))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05["name"] = var_04;
|
|
thread dambx_update(param_00,param_01,var_05,param_02);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
thread dambx_update_serially(param_00,param_01,param_02);
|
|
}
|
|
|
|
level waittill(param_00 + "_" + param_01 + "_stop");
|
|
wait(0.1);
|
|
foreach(var_08 in level._audio.damb.playing[param_00][param_01]["loops"])
|
|
{
|
|
thread dambx_fade_out_playing_loop(var_08,level._audio.damb.playing[param_00][param_01]["fade"],0);
|
|
}
|
|
|
|
foreach(var_08 in level._audio.damb.playing[param_00][param_01]["single_loops"])
|
|
{
|
|
thread dambx_fade_out_playing_loop(var_08,level._audio.damb.playing[param_00][param_01]["fade"],1);
|
|
}
|
|
|
|
foreach(var_08 in level._audio.damb.playing[param_00][param_01]["oneshots"])
|
|
{
|
|
thread dambx_fade_out_playing_sound(var_08,level._audio.damb.playing[param_00][param_01]["fade"]);
|
|
}
|
|
|
|
level._audio.damb.playing[param_00][param_01] = undefined;
|
|
}
|
|
|
|
//Function Number: 42
|
|
dambx_fade_out_playing_sound(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 scalevolume(0,param_01);
|
|
wait(param_01);
|
|
param_00 stopsounds();
|
|
wait(0.05);
|
|
param_00 delete();
|
|
decrement_ref_count();
|
|
}
|
|
}
|
|
|
|
//Function Number: 43
|
|
dambx_fade_out_playing_loop(param_00,param_01,param_02)
|
|
{
|
|
param_00 scalevolume(0,param_01);
|
|
wait(param_01);
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 stoploopsound();
|
|
wait(0.05);
|
|
param_00 delete();
|
|
}
|
|
|
|
if(param_02)
|
|
{
|
|
level._audio.damb.loop_entity_ref_count--;
|
|
return;
|
|
}
|
|
|
|
decrement_ref_count();
|
|
}
|
|
|
|
//Function Number: 44
|
|
dambx_get_list_value_from_string_table(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = 0;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_04 = param_03;
|
|
}
|
|
|
|
var_05 = [];
|
|
var_06 = 0;
|
|
var_07 = strtok(param_00,"+");
|
|
var_08 = 0;
|
|
for(var_09 = 0;var_09 < var_07.size;var_09++)
|
|
{
|
|
var_0A = strtok(var_07[var_09]," ");
|
|
if(var_0A.size == 1 && var_0A[0] != "")
|
|
{
|
|
var_05[var_05.size] = var_0A[0];
|
|
continue;
|
|
}
|
|
|
|
var_0B = var_05.size;
|
|
var_05[var_0B] = [];
|
|
var_05[var_0B][0] = var_0A[0];
|
|
var_05[var_0B][1] = float(var_0A[1]);
|
|
}
|
|
|
|
if(!var_06 && var_04)
|
|
{
|
|
var_0C = [];
|
|
for(var_09 = 0;var_09 < var_05.size;var_09++)
|
|
{
|
|
var_0D = var_0C.size;
|
|
var_0C[var_0D] = [];
|
|
var_0C[var_0D][0] = var_05[var_09];
|
|
var_0C[var_0D][1] = 1;
|
|
}
|
|
|
|
var_05 = var_0C;
|
|
}
|
|
|
|
return var_05;
|
|
}
|
|
|
|
//Function Number: 45
|
|
dambx_get_loop_def_from_string_table(param_00,param_01)
|
|
{
|
|
var_02 = "soundtables/sp_defaults.csv";
|
|
var_03 = soundscripts\_audio::get_damb_loops_stringtable();
|
|
var_04 = [];
|
|
if(param_01)
|
|
{
|
|
var_04 = dambx_get_loop_def_from_string_table_internal(var_03,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
var_04 = dambx_get_loop_def_from_string_table_internal(var_02,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 46
|
|
dambx_get_loop_def_from_string_table_internal(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
var_03 = 8;
|
|
var_04 = undefined;
|
|
var_05 = undefined;
|
|
var_06 = undefined;
|
|
var_07 = undefined;
|
|
var_08 = [];
|
|
var_09 = packedtablesectionlookup(param_00,"loop_defs","zone_names;reverb_names;filter_names;occlusion_names;timescale_names;dynamic_ambience_names;components;loop_defs;whizby_preset_names;mix_names;healthfx_params");
|
|
if(isdefined(var_09))
|
|
{
|
|
for(var_0A = 0;var_0A < var_03;var_0A++)
|
|
{
|
|
var_0B = packedtablelookupwithrange(param_00,0,"loop_defs",var_0A,var_09[0],var_09[1]);
|
|
if(!isdefined(var_0B) || var_0B == "")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0C = packedtablelookupwithrange(param_00,0,param_01,var_0A,var_09[0],var_09[1]);
|
|
if(var_0C != "" && var_0B != "comments")
|
|
{
|
|
switch(var_0B)
|
|
{
|
|
case "loop_alias":
|
|
var_04 = var_0C;
|
|
break;
|
|
|
|
case "fade_in":
|
|
if(isdefined(var_0C) && var_0C != "")
|
|
{
|
|
var_06 = max(float(var_0C),0);
|
|
}
|
|
break;
|
|
|
|
case "fade_out":
|
|
if(isdefined(var_0C) && var_0C != "")
|
|
{
|
|
var_07 = max(float(var_0C),0);
|
|
}
|
|
break;
|
|
|
|
case "end_alias":
|
|
if(isdefined(var_0C) && var_0C != "")
|
|
{
|
|
var_05 = var_0C;
|
|
}
|
|
break;
|
|
|
|
case "duration_min":
|
|
if(isdefined(var_0C) && var_0C != "")
|
|
{
|
|
var_08[0] = float(var_0C);
|
|
}
|
|
break;
|
|
|
|
case "duration_max":
|
|
if(isdefined(var_0C) && var_0C != "")
|
|
{
|
|
var_08[1] = float(var_0C);
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_02["loop_alias"] = var_04;
|
|
if(isdefined(var_06))
|
|
{
|
|
var_02["fade_in"] = var_06;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
var_02["fade_out"] = var_07;
|
|
}
|
|
|
|
if(isdefined(var_05))
|
|
{
|
|
var_02["end_alias"] = var_05;
|
|
}
|
|
|
|
if(isdefined(var_08[0]))
|
|
{
|
|
var_02["duration"] = dambx_get_two_value_float_array(var_08);
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
dambx_get_two_value_float_array(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_01[0] = float(param_00[0]);
|
|
var_01[1] = float(param_00[1]);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 48
|
|
dambx_get_component_from_string_table_internal(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
var_03 = 21;
|
|
var_04 = 8;
|
|
var_05 = [];
|
|
var_06 = [];
|
|
var_07 = [];
|
|
var_08 = [];
|
|
var_09 = [];
|
|
var_0A = [];
|
|
var_0B = [];
|
|
var_0C = [];
|
|
var_0D = [];
|
|
var_0E = [];
|
|
var_0F = [];
|
|
var_10 = 0;
|
|
var_11 = packedtablesectionlookup(param_00,"components","zone_names;reverb_names;filter_names;occlusion_names;timescale_names;dynamic_ambience_names;components;loop_defs;whizby_preset_names;mix_names;healthfx_params");
|
|
if(isdefined(var_11))
|
|
{
|
|
for(var_12 = 1;var_12 < var_03;var_12++)
|
|
{
|
|
var_13 = packedtablelookupwithrange(param_00,0,"components",var_12,var_11[0],var_11[1]);
|
|
if(!isdefined(var_13))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_14 = packedtablelookupwithrange(param_00,0,param_01,var_12,var_11[0],var_11[1]);
|
|
if(var_14 != "" && var_13 != "comments")
|
|
{
|
|
var_10++;
|
|
switch(var_13)
|
|
{
|
|
case "oneshots":
|
|
var_05 = dambx_get_list_value_from_string_table(var_14,"component definition","oneshots",1);
|
|
break;
|
|
|
|
case "loops":
|
|
var_06 = dambx_get_list_value_from_string_table(var_14,"component definition","loops",1);
|
|
break;
|
|
|
|
case "single_loops":
|
|
var_07 = dambx_get_list_value_from_string_table(var_14,"component definition","single_loops",0);
|
|
break;
|
|
|
|
case "first_event_min":
|
|
var_08[0] = float(var_14);
|
|
break;
|
|
|
|
case "first_event_max":
|
|
var_08[1] = float(var_14);
|
|
break;
|
|
|
|
case "event_time_min":
|
|
var_09[0] = float(var_14);
|
|
break;
|
|
|
|
case "event_time_max":
|
|
var_09[1] = float(var_14);
|
|
break;
|
|
|
|
case "dist_min":
|
|
var_0A[0] = float(var_14);
|
|
break;
|
|
|
|
case "dist_max":
|
|
var_0A[1] = float(var_14);
|
|
break;
|
|
|
|
case "cone_min":
|
|
var_0B[0] = float(var_14);
|
|
break;
|
|
|
|
case "cone_max":
|
|
var_0B[1] = float(var_14);
|
|
break;
|
|
|
|
case "travel_min":
|
|
var_0C[0] = float(var_14);
|
|
break;
|
|
|
|
case "travel_max":
|
|
var_0C[1] = float(var_14);
|
|
break;
|
|
|
|
case "travel_time_min":
|
|
var_0D[0] = float(var_14);
|
|
break;
|
|
|
|
case "travel_time_max":
|
|
var_0D[1] = float(var_14);
|
|
break;
|
|
|
|
case "pitch_min":
|
|
var_0E[0] = float(var_14);
|
|
break;
|
|
|
|
case "pitch_max":
|
|
var_0E[1] = float(var_14);
|
|
break;
|
|
|
|
case "pitch_time_min":
|
|
var_0F[0] = float(var_14);
|
|
break;
|
|
|
|
case "pitch_time_max":
|
|
var_0F[1] = float(var_14);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_10 > 0)
|
|
{
|
|
if(isdefined(var_05[0]))
|
|
{
|
|
if(isstring(var_05[0]))
|
|
{
|
|
var_05[1] = 1;
|
|
}
|
|
|
|
var_02["oneshots"] = var_05;
|
|
}
|
|
|
|
if(isdefined(var_06[0]))
|
|
{
|
|
var_02["loops"] = var_06;
|
|
}
|
|
|
|
if(isdefined(var_07[0]))
|
|
{
|
|
var_02["single_loops"] = var_07;
|
|
}
|
|
|
|
if(isdefined(var_08[0]))
|
|
{
|
|
var_02["first_event"] = dambx_get_two_value_float_array(var_08);
|
|
}
|
|
|
|
if(isdefined(var_09[0]))
|
|
{
|
|
var_02["event_time"] = dambx_get_two_value_float_array(var_09);
|
|
}
|
|
|
|
if(isdefined(var_0A[0]))
|
|
{
|
|
var_02["radius"] = dambx_get_two_value_float_array(var_0A);
|
|
}
|
|
|
|
if(isdefined(var_0B[0]))
|
|
{
|
|
var_02["cone"] = dambx_get_two_value_float_array(var_0B);
|
|
}
|
|
|
|
if(isdefined(var_0C[0]))
|
|
{
|
|
var_02["delta"] = dambx_get_two_value_float_array(var_0C);
|
|
}
|
|
|
|
if(isdefined(var_0D[0]))
|
|
{
|
|
var_02["travel_time"] = dambx_get_two_value_float_array(var_0D);
|
|
}
|
|
|
|
if(isdefined(var_0E[0]))
|
|
{
|
|
var_02["pitch"] = dambx_get_two_value_float_array(var_0E);
|
|
}
|
|
|
|
if(isdefined(var_0F[0]))
|
|
{
|
|
var_02["pitch_time"] = dambx_get_two_value_float_array(var_0F);
|
|
}
|
|
|
|
if(!isdefined(var_02["radius"]))
|
|
{
|
|
var_02["radius"] = [0,0.01];
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
dambx_get_component_from_string_table(param_00,param_01)
|
|
{
|
|
var_02 = soundscripts\_audio::get_damb_component_stringtable();
|
|
var_03 = "soundtables/sp_defaults.csv";
|
|
var_04 = [];
|
|
if(param_01)
|
|
{
|
|
var_04 = dambx_get_component_from_string_table_internal(var_02,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
var_04 = dambx_get_component_from_string_table_internal(var_03,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 50
|
|
dambx_get_preset_from_stringtable_internal(param_00,param_01)
|
|
{
|
|
var_02 = 7;
|
|
var_03 = [];
|
|
var_04 = [];
|
|
var_05 = [];
|
|
var_06 = [];
|
|
var_07 = packedtablesectionlookup(param_00,"dynamic_ambience_names","zone_names;reverb_names;filter_names;occlusion_names;timescale_names;dynamic_ambience_names;components;loop_defs;whizby_preset_names;mix_names;healthfx_params");
|
|
if(isdefined(var_07))
|
|
{
|
|
for(var_08 = 1;var_08 < var_02;var_08++)
|
|
{
|
|
var_09 = packedtablelookupwithrange(param_00,0,"dynamic_ambience_names",var_08,var_07[0],var_07[1]);
|
|
var_0A = packedtablelookupwithrange(param_00,0,param_01,var_08,var_07[0],var_07[1]);
|
|
var_0B = 0;
|
|
if(var_0A != "" && var_09 != "comments")
|
|
{
|
|
switch(var_09)
|
|
{
|
|
case "components":
|
|
var_04 = dambx_get_list_value_from_string_table(var_0A,"preset definition","components");
|
|
break;
|
|
|
|
case "first_event_min":
|
|
if(isdefined(var_0A) && var_0A != "")
|
|
{
|
|
var_05[0] = float(var_0A);
|
|
}
|
|
break;
|
|
|
|
case "first_event_max":
|
|
if(isdefined(var_0A) && var_0A != "")
|
|
{
|
|
var_05[1] = float(var_0A);
|
|
}
|
|
break;
|
|
|
|
case "event_time_min":
|
|
if(isdefined(var_0A) && var_0A != "")
|
|
{
|
|
var_06[0] = float(var_0A);
|
|
}
|
|
break;
|
|
|
|
case "event_time_max":
|
|
if(isdefined(var_0A) && var_0A != "")
|
|
{
|
|
var_06[1] = float(var_0A);
|
|
}
|
|
|
|
break;
|
|
|
|
case "comment":
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0B = 0;
|
|
if(isdefined(var_05[0]))
|
|
{
|
|
var_0B = 1;
|
|
var_03["first_event"] = var_05;
|
|
}
|
|
|
|
if(isdefined(var_06[0]))
|
|
{
|
|
var_0B = 1;
|
|
var_03["event_time"] = var_06;
|
|
}
|
|
|
|
if(var_0B)
|
|
{
|
|
if(isdefined(var_04[0][1]))
|
|
{
|
|
var_03["components"] = var_04;
|
|
}
|
|
else
|
|
{
|
|
var_03["components"] = [];
|
|
for(var_08 = 0;var_08 < var_04.size;var_08++)
|
|
{
|
|
var_03["components"][var_03["components"].size] = [var_04[0],1];
|
|
}
|
|
|
|
if(var_03["components"].size == 0)
|
|
{
|
|
var_03["components"] = undefined;
|
|
}
|
|
}
|
|
}
|
|
else if(var_04.size != 0)
|
|
{
|
|
var_03["components"] = var_04;
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
dambx_get_preset_from_string_table(param_00,param_01)
|
|
{
|
|
var_02 = soundscripts\_audio::get_damb_stringtable();
|
|
var_03 = "soundtables/sp_defaults.csv";
|
|
var_04 = [];
|
|
if(param_01)
|
|
{
|
|
var_04 = dambx_get_preset_from_stringtable_internal(var_02,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
var_04 = dambx_get_preset_from_stringtable_internal(var_03,param_00);
|
|
}
|
|
|
|
if(!isdefined(var_04) || var_04.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 52
|
|
dambx_get_damb_preset(param_00)
|
|
{
|
|
var_01 = [];
|
|
if(isdefined(level._audio.damb.preset_cache[param_00]))
|
|
{
|
|
var_01 = level._audio.damb.preset_cache[param_00];
|
|
}
|
|
else
|
|
{
|
|
var_01 = dambx_get_preset_from_string_table(param_00,1);
|
|
}
|
|
|
|
if(!isdefined(var_01) || var_01.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
level._audio.damb.preset_cache[param_00] = var_01;
|
|
var_01["name"] = param_00;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 53
|
|
increment_ref_count()
|
|
{
|
|
level._audio.damb.entity_ref_count++;
|
|
}
|
|
|
|
//Function Number: 54
|
|
decrement_ref_count()
|
|
{
|
|
level._audio.damb.entity_ref_count--;
|
|
} |