diff --git a/platform/base_scripts.pk3dir/efx/abandoned.efx b/platform/base_scripts.pk3dir/efx/abandoned.efx new file mode 100644 index 00000000..39b120e8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/abandoned.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.690000" +gain "0.316200" +gain_hf "0.794300" +gain_lf "0.891300" +decay_time "3.280000" +decay_hf_ratio "1.170000" +decay_lf_ratio "0.910000" +reflections_gain "0.446700" +reflections_delay "0.044000" +reflections_pan "0 0 0" +late_reverb_gain "0.281800" +late_reverb_delay "0.024000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.200000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.996600" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/alley.efx b/platform/base_scripts.pk3dir/efx/alley.efx new file mode 100644 index 00000000..02be878e --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/alley.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.300000" +gain "0.316200" +gain_hf "0.732800" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.860000" +decay_lf_ratio "1.000000" +reflections_gain "0.250000" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "0.995400" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.950000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/arena.efx b/platform/base_scripts.pk3dir/efx/arena.efx new file mode 100644 index 00000000..7c6e53d8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/arena.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.447700" +gain_lf "1.000000" +decay_time "7.240000" +decay_hf_ratio "0.330000" +decay_lf_ratio "1.000000" +reflections_gain "0.261200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.018600" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/auditorium.efx b/platform/base_scripts.pk3dir/efx/auditorium.efx new file mode 100644 index 00000000..be6f9e5c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/auditorium.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.578100" +gain_lf "1.000000" +decay_time "4.320000" +decay_hf_ratio "0.590000" +decay_lf_ratio "1.000000" +reflections_gain "0.403200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.717000" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/bathroom.efx b/platform/base_scripts.pk3dir/efx/bathroom.efx new file mode 100644 index 00000000..af860d8f --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/bathroom.efx @@ -0,0 +1,23 @@ +density "0.171500" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.251200" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.540000" +decay_lf_ratio "1.000000" +reflections_gain "0.653100" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "3.273400" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/carpetedhallway.efx b/platform/base_scripts.pk3dir/efx/carpetedhallway.efx new file mode 100644 index 00000000..bd22e825 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/carpetedhallway.efx @@ -0,0 +1,23 @@ +density "0.428700" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.010000" +gain_lf "1.000000" +decay_time "0.300000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.121500" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "0.153100" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/cave.efx b/platform/base_scripts.pk3dir/efx/cave.efx new file mode 100644 index 00000000..d0306ed0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/cave.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "2.910000" +decay_hf_ratio "1.300000" +decay_lf_ratio "1.000000" +reflections_gain "0.500000" +reflections_delay "0.015000" +reflections_pan "0 0 0" +late_reverb_gain "0.706300" +late_reverb_delay "0.022000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/chapel.efx b/platform/base_scripts.pk3dir/efx/chapel.efx new file mode 100644 index 00000000..dd87450e --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/chapel.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.840000" +gain "0.316200" +gain_hf "0.562300" +gain_lf "1.000000" +decay_time "4.620000" +decay_hf_ratio "0.640000" +decay_lf_ratio "1.230000" +reflections_gain "0.446700" +reflections_delay "0.032000" +reflections_pan "0 0 0" +late_reverb_gain "0.794300" +late_reverb_delay "0.049000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.110000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/city.efx b/platform/base_scripts.pk3dir/efx/city.efx new file mode 100644 index 00000000..89009ae7 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/city.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.500000" +gain "0.316200" +gain_hf "0.398100" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.670000" +decay_lf_ratio "1.000000" +reflections_gain "0.073000" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "0.142700" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/citystreets.efx b/platform/base_scripts.pk3dir/efx/citystreets.efx new file mode 100644 index 00000000..a4d2f829 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/citystreets.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.780000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "0.891300" +decay_time "1.790000" +decay_hf_ratio "1.120000" +decay_lf_ratio "0.910000" +reflections_gain "0.281800" +reflections_delay "0.046000" +reflections_pan "0 0 0" +late_reverb_gain "0.199500" +late_reverb_delay "0.028000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.200000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/concerthall.efx b/platform/base_scripts.pk3dir/efx/concerthall.efx new file mode 100644 index 00000000..59986e57 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/concerthall.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.562300" +gain_lf "1.000000" +decay_time "3.920000" +decay_hf_ratio "0.700000" +decay_lf_ratio "1.000000" +reflections_gain "0.242700" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.997700" +late_reverb_delay "0.029000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/default.efx b/platform/base_scripts.pk3dir/efx/default.efx new file mode 100644 index 00000000..bb15833b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/default.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.000000" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "1.000000" +decay_hf_ratio "1.000000" +decay_lf_ratio "1.000000" +reflections_gain "0.000000" +reflections_delay "0.000000" +reflections_pan "0 0 0" +late_reverb_gain "1.000000" +late_reverb_delay "0.000000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "1.000000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/default.efx.efx b/platform/base_scripts.pk3dir/efx/default.efx.efx new file mode 100644 index 00000000..bb15833b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/default.efx.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.000000" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "1.000000" +decay_hf_ratio "1.000000" +decay_lf_ratio "1.000000" +reflections_gain "0.000000" +reflections_delay "0.000000" +reflections_pan "0 0 0" +late_reverb_gain "1.000000" +late_reverb_delay "0.000000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "1.000000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/dizzy.efx b/platform/base_scripts.pk3dir/efx/dizzy.efx new file mode 100644 index 00000000..0f066b31 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/dizzy.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "0.600000" +gain "0.316200" +gain_hf "0.631000" +gain_lf "1.000000" +decay_time "17.230000" +decay_hf_ratio "0.560000" +decay_lf_ratio "1.000000" +reflections_gain "0.139200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.493700" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "1.000000" +modulation_time "0.810000" +modulation_depth "0.310000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/drugged.efx b/platform/base_scripts.pk3dir/efx/drugged.efx new file mode 100644 index 00000000..aaa7da8c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/drugged.efx @@ -0,0 +1,23 @@ +density "0.428700" +diffusion "0.500000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "8.390000" +decay_hf_ratio "1.390000" +decay_lf_ratio "1.000000" +reflections_gain "0.876000" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "3.108100" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "1.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/dustyroom.efx b/platform/base_scripts.pk3dir/efx/dustyroom.efx new file mode 100644 index 00000000..cc97c36a --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/dustyroom.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "0.560000" +gain "0.316200" +gain_hf "0.794300" +gain_lf "0.707900" +decay_time "1.790000" +decay_hf_ratio "0.380000" +decay_lf_ratio "0.210000" +reflections_gain "0.501200" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "1.258900" +late_reverb_delay "0.006000" +late_reverb_pan "0 0 0" +echo_time "0.202000" +echo_depth "0.050000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.988600" +hf_reference "13046.000000" +lf_reference "163.300003" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/forest.efx b/platform/base_scripts.pk3dir/efx/forest.efx new file mode 100644 index 00000000..15addb02 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/forest.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.300000" +gain "0.316200" +gain_hf "0.022400" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.540000" +decay_lf_ratio "1.000000" +reflections_gain "0.052500" +reflections_delay "0.162000" +reflections_pan "0 0 0" +late_reverb_gain "0.768200" +late_reverb_delay "0.088000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "1.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_big1.efx b/platform/base_scripts.pk3dir/efx/gs_big1.efx new file mode 100644 index 00000000..89009ae7 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_big1.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.500000" +gain "0.316200" +gain_hf "0.398100" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.670000" +decay_lf_ratio "1.000000" +reflections_gain "0.073000" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "0.142700" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_big2.efx b/platform/base_scripts.pk3dir/efx/gs_big2.efx new file mode 100644 index 00000000..a4d2f829 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_big2.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.780000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "0.891300" +decay_time "1.790000" +decay_hf_ratio "1.120000" +decay_lf_ratio "0.910000" +reflections_gain "0.281800" +reflections_delay "0.046000" +reflections_pan "0 0 0" +late_reverb_gain "0.199500" +late_reverb_delay "0.028000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.200000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_big3.efx b/platform/base_scripts.pk3dir/efx/gs_big3.efx new file mode 100644 index 00000000..59986e57 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_big3.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.562300" +gain_lf "1.000000" +decay_time "3.920000" +decay_hf_ratio "0.700000" +decay_lf_ratio "1.000000" +reflections_gain "0.242700" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.997700" +late_reverb_delay "0.029000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_bright_l.efx b/platform/base_scripts.pk3dir/efx/gs_bright_l.efx new file mode 100644 index 00000000..cc97c36a --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_bright_l.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "0.560000" +gain "0.316200" +gain_hf "0.794300" +gain_lf "0.707900" +decay_time "1.790000" +decay_hf_ratio "0.380000" +decay_lf_ratio "0.210000" +reflections_gain "0.501200" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "1.258900" +late_reverb_delay "0.006000" +late_reverb_pan "0 0 0" +echo_time "0.202000" +echo_depth "0.050000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.988600" +hf_reference "13046.000000" +lf_reference "163.300003" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_bright_m.efx b/platform/base_scripts.pk3dir/efx/gs_bright_m.efx new file mode 100644 index 00000000..253b179c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_bright_m.efx @@ -0,0 +1,23 @@ +density "0.976600" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.001000" +gain_lf "1.000000" +decay_time "0.500000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.205100" +reflections_delay "0.003000" +reflections_pan "0 0 0" +late_reverb_gain "0.280500" +late_reverb_delay "0.004000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_bright_s.efx b/platform/base_scripts.pk3dir/efx/gs_bright_s.efx new file mode 100644 index 00000000..df69ec58 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_bright_s.efx @@ -0,0 +1,23 @@ +density "0.171500" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.001000" +gain_lf "1.000000" +decay_time "0.170000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.250000" +reflections_delay "0.001000" +reflections_pan "0 0 0" +late_reverb_gain "1.269100" +late_reverb_delay "0.002000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_cavern_l.efx b/platform/base_scripts.pk3dir/efx/gs_cavern_l.efx new file mode 100644 index 00000000..d0306ed0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_cavern_l.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "2.910000" +decay_hf_ratio "1.300000" +decay_lf_ratio "1.000000" +reflections_gain "0.500000" +reflections_delay "0.015000" +reflections_pan "0 0 0" +late_reverb_gain "0.706300" +late_reverb_delay "0.022000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_cavern_m.efx b/platform/base_scripts.pk3dir/efx/gs_cavern_m.efx new file mode 100644 index 00000000..d0306ed0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_cavern_m.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "2.910000" +decay_hf_ratio "1.300000" +decay_lf_ratio "1.000000" +reflections_gain "0.500000" +reflections_delay "0.015000" +reflections_pan "0 0 0" +late_reverb_gain "0.706300" +late_reverb_delay "0.022000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_cavern_s.efx b/platform/base_scripts.pk3dir/efx/gs_cavern_s.efx new file mode 100644 index 00000000..d0306ed0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_cavern_s.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "2.910000" +decay_hf_ratio "1.300000" +decay_lf_ratio "1.000000" +reflections_gain "0.500000" +reflections_delay "0.015000" +reflections_pan "0 0 0" +late_reverb_gain "0.706300" +late_reverb_delay "0.022000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_chamber_l.efx b/platform/base_scripts.pk3dir/efx/gs_chamber_l.efx new file mode 100644 index 00000000..7c6e53d8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_chamber_l.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.447700" +gain_lf "1.000000" +decay_time "7.240000" +decay_hf_ratio "0.330000" +decay_lf_ratio "1.000000" +reflections_gain "0.261200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.018600" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_chamber_m.efx b/platform/base_scripts.pk3dir/efx/gs_chamber_m.efx new file mode 100644 index 00000000..59986e57 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_chamber_m.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.562300" +gain_lf "1.000000" +decay_time "3.920000" +decay_hf_ratio "0.700000" +decay_lf_ratio "1.000000" +reflections_gain "0.242700" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.997700" +late_reverb_delay "0.029000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_chamber_s.efx b/platform/base_scripts.pk3dir/efx/gs_chamber_s.efx new file mode 100644 index 00000000..be6f9e5c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_chamber_s.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.578100" +gain_lf "1.000000" +decay_time "4.320000" +decay_hf_ratio "0.590000" +decay_lf_ratio "1.000000" +reflections_gain "0.403200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.717000" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_concrete_l.efx b/platform/base_scripts.pk3dir/efx/gs_concrete_l.efx new file mode 100644 index 00000000..82e44d7a --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_concrete_l.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.316200" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.830000" +decay_lf_ratio "1.000000" +reflections_gain "0.000000" +reflections_delay "0.061000" +reflections_pan "0 0 0" +late_reverb_gain "1.778300" +late_reverb_delay "0.025000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.700000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_concrete_m.efx b/platform/base_scripts.pk3dir/efx/gs_concrete_m.efx new file mode 100644 index 00000000..dec39a1b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_concrete_m.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "1.650000" +decay_hf_ratio "1.500000" +decay_lf_ratio "1.000000" +reflections_gain "0.208200" +reflections_delay "0.008000" +reflections_pan "0 0 0" +late_reverb_gain "0.265200" +late_reverb_delay "0.012000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_concrete_s.efx b/platform/base_scripts.pk3dir/efx/gs_concrete_s.efx new file mode 100644 index 00000000..064219a8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_concrete_s.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.761200" +gain_lf "1.000000" +decay_time "2.700000" +decay_hf_ratio "0.790000" +decay_lf_ratio "1.000000" +reflections_gain "0.247200" +reflections_delay "0.013000" +reflections_pan "0 0 0" +late_reverb_gain "1.575800" +late_reverb_delay "0.020000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_generic.efx b/platform/base_scripts.pk3dir/efx/gs_generic.efx new file mode 100644 index 00000000..8372680b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_generic.efx @@ -0,0 +1,23 @@ +density "0.428700" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.592900" +gain_lf "1.000000" +decay_time "0.400000" +decay_hf_ratio "0.830000" +decay_lf_ratio "1.000000" +reflections_gain "0.150300" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "1.062900" +late_reverb_delay "0.003000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_metal_l.efx b/platform/base_scripts.pk3dir/efx/gs_metal_l.efx new file mode 100644 index 00000000..ca2c94cd --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_metal_l.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.740000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "0.891300" +decay_time "3.010000" +decay_hf_ratio "1.230000" +decay_lf_ratio "0.910000" +reflections_gain "0.707900" +reflections_delay "0.046000" +reflections_pan "0 0 0" +late_reverb_gain "1.258900" +late_reverb_delay "0.028000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.210000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_metal_m.efx b/platform/base_scripts.pk3dir/efx/gs_metal_m.efx new file mode 100644 index 00000000..90f95ade --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_metal_m.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.700000" +gain "0.316200" +gain_hf "0.447700" +gain_lf "1.000000" +decay_time "1.510000" +decay_hf_ratio "1.250000" +decay_lf_ratio "1.140000" +reflections_gain "0.891300" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.412500" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.179000" +echo_depth "0.150000" +modulation_time "0.895000" +modulation_depth "0.190000" +air_absorbtion_hf "0.992000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_metal_s.efx b/platform/base_scripts.pk3dir/efx/gs_metal_s.efx new file mode 100644 index 00000000..90f95ade --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_metal_s.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.700000" +gain "0.316200" +gain_hf "0.447700" +gain_lf "1.000000" +decay_time "1.510000" +decay_hf_ratio "1.250000" +decay_lf_ratio "1.140000" +reflections_gain "0.891300" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.412500" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.179000" +echo_depth "0.150000" +modulation_time "0.895000" +modulation_depth "0.190000" +air_absorbtion_hf "0.992000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_tunnel_l.efx b/platform/base_scripts.pk3dir/efx/gs_tunnel_l.efx new file mode 100644 index 00000000..16a3efb5 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_tunnel_l.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.820000" +gain "0.316200" +gain_hf "0.446700" +gain_lf "0.891300" +decay_time "3.570000" +decay_hf_ratio "1.120000" +decay_lf_ratio "0.910000" +reflections_gain "0.398100" +reflections_delay "0.059000" +reflections_pan "0 0 0" +late_reverb_gain "0.891300" +late_reverb_delay "0.037000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.140000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.992000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_tunnel_m.efx b/platform/base_scripts.pk3dir/efx/gs_tunnel_m.efx new file mode 100644 index 00000000..02be878e --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_tunnel_m.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.300000" +gain "0.316200" +gain_hf "0.732800" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.860000" +decay_lf_ratio "1.000000" +reflections_gain "0.250000" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "0.995400" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.950000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_tunnel_s.efx b/platform/base_scripts.pk3dir/efx/gs_tunnel_s.efx new file mode 100644 index 00000000..39b120e8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_tunnel_s.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.690000" +gain "0.316200" +gain_hf "0.794300" +gain_lf "0.891300" +decay_time "3.280000" +decay_hf_ratio "1.170000" +decay_lf_ratio "0.910000" +reflections_gain "0.446700" +reflections_delay "0.044000" +reflections_pan "0 0 0" +late_reverb_gain "0.281800" +late_reverb_delay "0.024000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.200000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.996600" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_water1.efx b/platform/base_scripts.pk3dir/efx/gs_water1.efx new file mode 100644 index 00000000..dd0cba56 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_water1.efx @@ -0,0 +1,23 @@ +density "0.25" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.010000" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.596300" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "7.079500" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "1.180000" +modulation_depth "0.348000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_water2.efx b/platform/base_scripts.pk3dir/efx/gs_water2.efx new file mode 100644 index 00000000..c3b845fd --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_water2.efx @@ -0,0 +1,23 @@ +density "0.5" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.010000" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.596300" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "7.079500" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "1.180000" +modulation_depth "0.348000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_water3.efx b/platform/base_scripts.pk3dir/efx/gs_water3.efx new file mode 100644 index 00000000..e732cfd3 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_water3.efx @@ -0,0 +1,23 @@ +density "1.0" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.010000" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.596300" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "7.079500" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "1.180000" +modulation_depth "0.348000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/gs_weirdo1.efx b/platform/base_scripts.pk3dir/efx/gs_weirdo1.efx new file mode 100644 index 00000000..0f066b31 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_weirdo1.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "0.600000" +gain "0.316200" +gain_hf "0.631000" +gain_lf "1.000000" +decay_time "17.230000" +decay_hf_ratio "0.560000" +decay_lf_ratio "1.000000" +reflections_gain "0.139200" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "0.493700" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "1.000000" +modulation_time "0.810000" +modulation_depth "0.310000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_weirdo2.efx b/platform/base_scripts.pk3dir/efx/gs_weirdo2.efx new file mode 100644 index 00000000..aaa7da8c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_weirdo2.efx @@ -0,0 +1,23 @@ +density "0.428700" +diffusion "0.500000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "8.390000" +decay_hf_ratio "1.390000" +decay_lf_ratio "1.000000" +reflections_gain "0.876000" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "3.108100" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "1.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/gs_weirdo3.efx b/platform/base_scripts.pk3dir/efx/gs_weirdo3.efx new file mode 100644 index 00000000..41fd09b0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/gs_weirdo3.efx @@ -0,0 +1,23 @@ +density "0.062500" +diffusion "0.500000" +gain "0.316200" +gain_hf "0.840400" +gain_lf "1.000000" +decay_time "7.560000" +decay_hf_ratio "0.910000" +decay_lf_ratio "1.000000" +reflections_gain "0.486400" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "2.437800" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "4.000000" +modulation_depth "1.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/hallway.efx b/platform/base_scripts.pk3dir/efx/hallway.efx new file mode 100644 index 00000000..04a35791 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/hallway.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.590000" +decay_lf_ratio "1.000000" +reflections_gain "0.245800" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "1.661500" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/hangar.efx b/platform/base_scripts.pk3dir/efx/hangar.efx new file mode 100644 index 00000000..35a6b2c9 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/hangar.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.316200" +gain_lf "1.000000" +decay_time "10.050000" +decay_hf_ratio "0.230000" +decay_lf_ratio "1.000000" +reflections_gain "0.500000" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.256000" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/library.efx b/platform/base_scripts.pk3dir/efx/library.efx new file mode 100644 index 00000000..1cf049e1 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/library.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.820000" +gain "0.316200" +gain_hf "0.281800" +gain_lf "0.089100" +decay_time "2.760000" +decay_hf_ratio "0.890000" +decay_lf_ratio "0.410000" +reflections_gain "0.354800" +reflections_delay "0.029000" +reflections_pan "0 0 0" +late_reverb_gain "0.891300" +late_reverb_delay "0.020000" +late_reverb_pan "0 0 0" +echo_time "0.130000" +echo_depth "0.170000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "2854.399902" +lf_reference "107.500000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/livingroom.efx b/platform/base_scripts.pk3dir/efx/livingroom.efx new file mode 100644 index 00000000..253b179c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/livingroom.efx @@ -0,0 +1,23 @@ +density "0.976600" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.001000" +gain_lf "1.000000" +decay_time "0.500000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.205100" +reflections_delay "0.003000" +reflections_pan "0 0 0" +late_reverb_gain "0.280500" +late_reverb_delay "0.004000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/mountains.efx b/platform/base_scripts.pk3dir/efx/mountains.efx new file mode 100644 index 00000000..b442b32b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/mountains.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.270000" +gain "0.316200" +gain_hf "0.056200" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.210000" +decay_lf_ratio "1.000000" +reflections_gain "0.040700" +reflections_delay "0.300000" +reflections_pan "0 0 0" +late_reverb_gain "0.191900" +late_reverb_delay "0.100000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "1.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/museum.efx b/platform/base_scripts.pk3dir/efx/museum.efx new file mode 100644 index 00000000..120cbd63 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/museum.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.820000" +gain "0.316200" +gain_hf "0.177800" +gain_lf "0.177800" +decay_time "3.280000" +decay_hf_ratio "1.400000" +decay_lf_ratio "0.570000" +reflections_gain "0.251200" +reflections_delay "0.039000" +reflections_pan "0 0 0" +late_reverb_gain "0.891300" +late_reverb_delay "0.034000" +late_reverb_pan "0 0 0" +echo_time "0.130000" +echo_depth "0.170000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "2854.399902" +lf_reference "107.500000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/paddedcell.efx b/platform/base_scripts.pk3dir/efx/paddedcell.efx new file mode 100644 index 00000000..df69ec58 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/paddedcell.efx @@ -0,0 +1,23 @@ +density "0.171500" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.001000" +gain_lf "1.000000" +decay_time "0.170000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.250000" +reflections_delay "0.001000" +reflections_pan "0 0 0" +late_reverb_gain "1.269100" +late_reverb_delay "0.002000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/parkinglot.efx b/platform/base_scripts.pk3dir/efx/parkinglot.efx new file mode 100644 index 00000000..dec39a1b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/parkinglot.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "1.000000" +gain_lf "1.000000" +decay_time "1.650000" +decay_hf_ratio "1.500000" +decay_lf_ratio "1.000000" +reflections_gain "0.208200" +reflections_delay "0.008000" +reflections_pan "0 0 0" +late_reverb_gain "0.265200" +late_reverb_delay "0.012000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/plain.efx b/platform/base_scripts.pk3dir/efx/plain.efx new file mode 100644 index 00000000..d0ce1b4c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/plain.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.210000" +gain "0.316200" +gain_hf "0.100000" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.500000" +decay_lf_ratio "1.000000" +reflections_gain "0.058500" +reflections_delay "0.179000" +reflections_pan "0 0 0" +late_reverb_gain "0.108900" +late_reverb_delay "0.100000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "1.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/psychotic.efx b/platform/base_scripts.pk3dir/efx/psychotic.efx new file mode 100644 index 00000000..41fd09b0 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/psychotic.efx @@ -0,0 +1,23 @@ +density "0.062500" +diffusion "0.500000" +gain "0.316200" +gain_hf "0.840400" +gain_lf "1.000000" +decay_time "7.560000" +decay_hf_ratio "0.910000" +decay_lf_ratio "1.000000" +reflections_gain "0.486400" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "2.437800" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "4.000000" +modulation_depth "1.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/quarry.efx b/platform/base_scripts.pk3dir/efx/quarry.efx new file mode 100644 index 00000000..82e44d7a --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/quarry.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.316200" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.830000" +decay_lf_ratio "1.000000" +reflections_gain "0.000000" +reflections_delay "0.061000" +reflections_pan "0 0 0" +late_reverb_gain "1.778300" +late_reverb_delay "0.025000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.700000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/room.efx b/platform/base_scripts.pk3dir/efx/room.efx new file mode 100644 index 00000000..8372680b --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/room.efx @@ -0,0 +1,23 @@ +density "0.428700" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.592900" +gain_lf "1.000000" +decay_time "0.400000" +decay_hf_ratio "0.830000" +decay_lf_ratio "1.000000" +reflections_gain "0.150300" +reflections_delay "0.002000" +reflections_pan "0 0 0" +late_reverb_gain "1.062900" +late_reverb_delay "0.003000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/sewerpipe.efx b/platform/base_scripts.pk3dir/efx/sewerpipe.efx new file mode 100644 index 00000000..8683abe7 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/sewerpipe.efx @@ -0,0 +1,23 @@ +density "0.307100" +diffusion "0.800000" +gain "0.316200" +gain_hf "0.316200" +gain_lf "1.000000" +decay_time "2.810000" +decay_hf_ratio "0.140000" +decay_lf_ratio "1.000000" +reflections_gain "1.638700" +reflections_delay "0.014000" +reflections_pan "0 0 0" +late_reverb_gain "3.247100" +late_reverb_delay "0.021000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/smallwaterroom.efx b/platform/base_scripts.pk3dir/efx/smallwaterroom.efx new file mode 100644 index 00000000..90f95ade --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/smallwaterroom.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.700000" +gain "0.316200" +gain_hf "0.447700" +gain_lf "1.000000" +decay_time "1.510000" +decay_hf_ratio "1.250000" +decay_lf_ratio "1.140000" +reflections_gain "0.891300" +reflections_delay "0.020000" +reflections_pan "0 0 0" +late_reverb_gain "1.412500" +late_reverb_delay "0.030000" +late_reverb_pan "0 0 0" +echo_time "0.179000" +echo_depth "0.150000" +modulation_time "0.895000" +modulation_depth "0.190000" +air_absorbtion_hf "0.992000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "0" diff --git a/platform/base_scripts.pk3dir/efx/stonecorridor.efx b/platform/base_scripts.pk3dir/efx/stonecorridor.efx new file mode 100644 index 00000000..064219a8 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/stonecorridor.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.761200" +gain_lf "1.000000" +decay_time "2.700000" +decay_hf_ratio "0.790000" +decay_lf_ratio "1.000000" +reflections_gain "0.247200" +reflections_delay "0.013000" +reflections_pan "0 0 0" +late_reverb_gain "1.575800" +late_reverb_delay "0.020000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/stoneroom.efx b/platform/base_scripts.pk3dir/efx/stoneroom.efx new file mode 100644 index 00000000..519410ff --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/stoneroom.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "1.000000" +decay_time "2.310000" +decay_hf_ratio "0.640000" +decay_lf_ratio "1.000000" +reflections_gain "0.441100" +reflections_delay "0.012000" +reflections_pan "0 0 0" +late_reverb_gain "1.100300" +late_reverb_delay "0.017000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/subway.efx b/platform/base_scripts.pk3dir/efx/subway.efx new file mode 100644 index 00000000..ca2c94cd --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/subway.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.740000" +gain "0.316200" +gain_hf "0.707900" +gain_lf "0.891300" +decay_time "3.010000" +decay_hf_ratio "1.230000" +decay_lf_ratio "0.910000" +reflections_gain "0.707900" +reflections_delay "0.046000" +reflections_pan "0 0 0" +late_reverb_gain "1.258900" +late_reverb_delay "0.028000" +late_reverb_pan "0 0 0" +echo_time "0.125000" +echo_depth "0.210000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/underpass.efx b/platform/base_scripts.pk3dir/efx/underpass.efx new file mode 100644 index 00000000..16a3efb5 --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/underpass.efx @@ -0,0 +1,23 @@ +density "1.000000" +diffusion "0.820000" +gain "0.316200" +gain_hf "0.446700" +gain_lf "0.891300" +decay_time "3.570000" +decay_hf_ratio "1.120000" +decay_lf_ratio "0.910000" +reflections_gain "0.398100" +reflections_delay "0.059000" +reflections_pan "0 0 0" +late_reverb_gain "0.891300" +late_reverb_delay "0.037000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.140000" +modulation_time "0.250000" +modulation_depth "0.000000" +air_absorbtion_hf "0.992000" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/platform/base_scripts.pk3dir/efx/underwater.efx b/platform/base_scripts.pk3dir/efx/underwater.efx new file mode 100644 index 00000000..31d1c78c --- /dev/null +++ b/platform/base_scripts.pk3dir/efx/underwater.efx @@ -0,0 +1,23 @@ +density "0.364500" +diffusion "1.000000" +gain "0.316200" +gain_hf "0.010000" +gain_lf "1.000000" +decay_time "1.490000" +decay_hf_ratio "0.100000" +decay_lf_ratio "1.000000" +reflections_gain "0.596300" +reflections_delay "0.007000" +reflections_pan "0 0 0" +late_reverb_gain "7.079500" +late_reverb_delay "0.011000" +late_reverb_pan "0 0 0" +echo_time "0.250000" +echo_depth "0.000000" +modulation_time "1.180000" +modulation_depth "0.348000" +air_absorbtion_hf "0.994300" +hf_reference "5000.000000" +lf_reference "250.000000" +room_rolloff_factor "0.000000" +decay_limit "1" diff --git a/src/client/defs.h b/src/client/defs.h index 28b322af..cf6e9eda 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -15,6 +15,7 @@ */ #include "textmenu.h" +#include "efx.h" /* flags for 2d drawing */ #define DRAWFLAG_NORMAL 0 diff --git a/src/client/efx.h b/src/client/efx.h new file mode 100644 index 00000000..3859eaaa --- /dev/null +++ b/src/client/efx.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016-2020 Marco Hladik + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +reverbinfo_t *g_efx; +string *g_efx_name; +int g_efx_count; + +var int autocvar_s_al_use_reverb = TRUE; +reverbinfo_t mix; + +int g_iEFX; +int g_iEFXold; +float g_flEFXTime; + +int EFX_Load(string efx_file); diff --git a/src/client/efx.qc b/src/client/efx.qc new file mode 100644 index 00000000..0ddc7e05 --- /dev/null +++ b/src/client/efx.qc @@ -0,0 +1,281 @@ +/* + * Copyright (c) 2016-2020 Marco Hladik + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +int +EFX_Load(string efx_file) +{ + filestream fh; + string line; + int i; + + if (!efx_file) { + return; + } + + i = g_efx_count; + efx_file = strtolower(efx_file); + + /* check if it's already cached */ + for (int x = 0; x < g_efx_count; x++) { + if (efx_file == g_efx_name[x]) { + return x; + } + } + + g_efx_count++; + g_efx = (reverbinfo_t *)memrealloc(g_efx, sizeof(reverbinfo_t), i, g_efx_count); + g_efx_name = (string *)memrealloc(g_efx_name, sizeof(string), i, g_efx_count); + + fh = fopen(strcat("efx/", efx_file, ".efx"), FILE_READ); + + if (fh < 0) { + return 0; + } + + /* cache the name */ + g_efx_name[i] = efx_file; + + /* add some default values */ + g_efx[i].flDensity = 1.000000; + g_efx[i].flDiffusion = 1.000000; + g_efx[i].flGain = 0.000000; + g_efx[i].flGainHF = 1.000000; + g_efx[i].flGainLF = 1.000000; + g_efx[i].flDecayTime = 1.000000; + g_efx[i].flDecayHFRatio = 1.000000; + g_efx[i].flDecayLFRatio = 1.000000; + g_efx[i].flReflectionsGain = 0.000000; + g_efx[i].flReflectionsDelay = 0.000000; + g_efx[i].flLateReverbPan = [0,0,0]; + g_efx[i].flLateReverbGain = 1.000000; + g_efx[i].flLateReverbDelay = 0.000000; + g_efx[i].flLateReverbPan = [0,0,0]; + g_efx[i].flEchoTime = 0.250000; + g_efx[i].flEchoDepth = 0.000000; + g_efx[i].flModulationTime = 0.250000; + g_efx[i].flModulationDepth = 0.000000; + g_efx[i].flAirAbsorptionGainHF = 1.000000; + g_efx[i].flHFReference = 5000.000000; + g_efx[i].flLFReference = 250.000000; + g_efx[i].flRoomRolloffFactor = 0.000000; + g_efx[i].iDecayHFLimit = 1i; + + while ((line = fgets(fh))) { + int c = tokenize_console(line); + + switch (argv(0)) { + case "density": + g_efx[i].flDensity = stof(argv(1)); + break; + case "diffusion": + g_efx[i].flDiffusion = stof(argv(1)); + break; + case "gain": + g_efx[i].flGain = stof(argv(1)); + break; + case "gain_hf": + g_efx[i].flGainHF = stof(argv(1)); + break; + case "gain_lf": + g_efx[i].flGainLF = stof(argv(1)); + break; + case "decay_time": + g_efx[i].flDecayTime = stof(argv(1)); + break; + case "decay_hf_ratio": + g_efx[i].flDecayHFRatio = stof(argv(1)); + break; + case "decay_lf_ratio": + g_efx[i].flDecayLFRatio = stof(argv(1)); + break; + case "reflections_gain": + g_efx[i].flReflectionsGain = stof(argv(1)); + break; + case "reflections_delay": + g_efx[i].flReflectionsDelay = stof(argv(1)); + break; + case "reflections_pan": /* VECTOR! */ + g_efx[i].flReflectionsPan = stov(argv(1)); + break; + case "late_reverb_gain": + g_efx[i].flLateReverbGain = stof(argv(1)); + break; + case "late_reverb_delay": + g_efx[i].flLateReverbDelay = stof(argv(1)); + break; + case "late_reverb_pan": + g_efx[i].flLateReverbPan = stov(argv(1)); + break; + case "echo_time": + g_efx[i].flEchoTime = stof(argv(1)); + break; + case "echo_depth": + g_efx[i].flEchoDepth = stof(argv(1)); + break; + case "modulation_time": + g_efx[i].flModulationTime = stof(argv(1)); + break; + case "modulation_depth": + g_efx[i].flModulationDepth = stof(argv(1)); + break; + case "air_absorbtion_hf": + g_efx[i].flAirAbsorptionGainHF = stof(argv(1)); + break; + case "hf_reference": + g_efx[i].flHFReference = stof(argv(1)); + break; + case "lf_reference": + g_efx[i].flLFReference = stof(argv(1)); + break; + case "room_rolloff_factor": + g_efx[i].flRoomRolloffFactor = stof(argv(1)); + break; + case "decay_limit": + g_efx[i].iDecayHFLimit = stoi(argv(1)); + break; + } + } + + fclose(fh); + return i; +} + +void +EFX_SetEnvironment(int id) +{ + if (g_iEFX == id) { + return; + } + + g_iEFXold = g_iEFX; + g_iEFX = id; + g_flEFXTime = 0.0f; +} + +void +EFX_Interpolate(int id) +{ + mix.flDensity = Math_Lerp(mix.flDensity, g_efx[id].flDensity, g_flEFXTime); + mix.flDiffusion = Math_Lerp(mix.flDiffusion, g_efx[id].flDiffusion, g_flEFXTime); + mix.flGain = Math_Lerp(mix.flGain, g_efx[id].flGain, g_flEFXTime); + mix.flGainHF = Math_Lerp(mix.flGainHF, g_efx[id].flGainHF, g_flEFXTime); + mix.flGainLF = Math_Lerp(mix.flGainLF, g_efx[id].flGainLF, g_flEFXTime); + mix.flDecayTime = Math_Lerp(mix.flDecayTime, g_efx[id].flDecayTime, g_flEFXTime); + mix.flDecayHFRatio = Math_Lerp(mix.flDecayHFRatio, g_efx[id].flDecayHFRatio, g_flEFXTime); + mix.flDecayLFRatio = Math_Lerp(mix.flDecayLFRatio, g_efx[id].flDecayLFRatio, g_flEFXTime); + mix.flReflectionsGain = Math_Lerp(mix.flReflectionsGain, g_efx[id].flReflectionsGain, g_flEFXTime); + mix.flReflectionsDelay = Math_Lerp(mix.flReflectionsDelay, g_efx[id].flReflectionsDelay, g_flEFXTime); + mix.flReflectionsPan[0] = Math_Lerp(mix.flReflectionsPan[0], g_efx[id].flReflectionsPan[0], g_flEFXTime); + mix.flReflectionsPan[1] = Math_Lerp(mix.flReflectionsPan[1], g_efx[id].flReflectionsPan[1], g_flEFXTime); + mix.flReflectionsPan[1] = Math_Lerp(mix.flReflectionsPan[2], g_efx[id].flReflectionsPan[2], g_flEFXTime); + mix.flLateReverbGain = Math_Lerp(mix.flLateReverbGain, g_efx[id].flLateReverbGain, g_flEFXTime); + mix.flLateReverbDelay = Math_Lerp(mix.flLateReverbDelay, g_efx[id].flLateReverbDelay, g_flEFXTime); + mix.flLateReverbPan[0] = Math_Lerp(mix.flLateReverbPan[0], g_efx[id].flLateReverbPan[0], g_flEFXTime); + mix.flLateReverbPan[1] = Math_Lerp(mix.flLateReverbPan[1], g_efx[id].flLateReverbPan[1], g_flEFXTime); + mix.flLateReverbPan[2] = Math_Lerp(mix.flLateReverbPan[2], g_efx[id].flLateReverbPan[2], g_flEFXTime); + mix.flEchoTime = Math_Lerp(mix.flEchoTime, g_efx[id].flEchoTime, g_flEFXTime); + mix.flEchoDepth = Math_Lerp(mix.flEchoDepth, g_efx[id].flEchoDepth, g_flEFXTime); + mix.flModulationTime = Math_Lerp(mix.flModulationTime, g_efx[id].flModulationTime, g_flEFXTime); + mix.flModulationDepth = Math_Lerp(mix.flModulationDepth, g_efx[id].flModulationDepth, g_flEFXTime); + mix.flAirAbsorptionGainHF = Math_Lerp(mix.flAirAbsorptionGainHF, g_efx[id].flAirAbsorptionGainHF, g_flEFXTime); + mix.flHFReference = Math_Lerp(mix.flHFReference, g_efx[id].flHFReference, g_flEFXTime); + mix.flLFReference = Math_Lerp(mix.flLFReference, g_efx[id].flLFReference, g_flEFXTime); + mix.flRoomRolloffFactor = Math_Lerp(mix.flRoomRolloffFactor, g_efx[id].flRoomRolloffFactor, g_flEFXTime); + mix.iDecayHFLimit = Math_Lerp(mix.iDecayHFLimit, g_efx[id].iDecayHFLimit, g_flEFXTime); +} + +void +EFX_UpdateListener(void) +{ + static int old_dsp; + + vector vecPlayer; + + if (autocvar_s_al_use_reverb == FALSE) { + return; + } + + int s = (float)getproperty(VF_ACTIVESEAT); + pSeat = &g_seats[s]; + vecPlayer = pSeat->m_vecPredictedOrigin; + + float bestdist = 999999; + for (entity e = world; (e = find(e, classname, "env_sound"));) { + env_sound scape = (env_sound)e; + + other = world; + traceline(scape.origin, vecPlayer, MOVE_OTHERONLY, scape); + if (trace_fraction < 1.0f) { + continue; + } + + float dist = vlen(e.origin - vecPlayer); + if (dist > scape.m_iRadius) { + continue; + } + + if (dist > bestdist) { + continue; + } + + bestdist = dist; + EFX_SetEnvironment(scape.m_iRoomType); + } + + makevectors(getproperty(VF_CL_VIEWANGLES)); + SetListener(getproperty(VF_ORIGIN), v_forward, v_right, v_up, 12); + + if (old_dsp == g_iEFX) { + return; + } + +#ifdef EFX_LERP + if (g_flEFXTime < 1.0) + { + EFX_Interpolate(g_iEFX); + setup_reverb(12, &mix, sizeof(reverbinfo_t)); + } else { + old_dsp = g_iEFX; + } + g_flEFXTime += clframetime; +#else + dprint(sprintf("EFX_UpdateListener: Changed style to %s (%i)\n", + g_efx_name[g_iEFX], g_iEFX)); + + old_dsp = g_iEFX; + setup_reverb(12, &g_efx[g_iEFX], sizeof(reverbinfo_t)); +#endif +} + +void +EFX_Init(void) +{ + int efx_default; + int efx_underwater; + + efx_default = EFX_Load("default"); + efx_underwater = EFX_Load("underwater"); + EFX_SetEnvironment(efx_default); + + /* mix the final value immediately */ +#ifdef EFX_LERP + g_flEFXTime = 1.0f; + EFX_Interpolate(g_iEFX); +#endif + + setup_reverb(12, &g_efx[g_iEFX], sizeof(reverbinfo_t)); + setup_reverb(10, &g_efx[efx_underwater], sizeof(reverbinfo_t)); +} diff --git a/src/client/entry.qc b/src/client/entry.qc index 4ab892f5..a1a98022 100644 --- a/src/client/entry.qc +++ b/src/client/entry.qc @@ -93,7 +93,7 @@ CSQC_Init(float apilevel, string enginename, float engineversion) /* Game specific inits */ ClientGame_Init(apilevel, enginename, engineversion); - DSP_Init(); + EFX_Init(); CSQC_RendererRestarted("init"); Titles_Init(); Sentences_Init(); @@ -414,7 +414,7 @@ CSQC_UpdateView(float w, float h, float focus) Predict_SpectatorPostFrame((spectator)self); } - DSP_UpdateListener(); + EFX_UpdateListener(); pSeat = (void*)0x70000000i; pSeatLocal = (void*)0x70000000i; diff --git a/src/client/include.src b/src/client/include.src index ac8f463b..4c0507ee 100644 --- a/src/client/include.src +++ b/src/client/include.src @@ -22,5 +22,6 @@ vgui.qc vox.qc way.qc in_saturn.qc +efx.qc entry.qc #endlist diff --git a/src/gs-entbase/client/env_sound.qc b/src/gs-entbase/client/env_sound.qc index a3e85857..de14f375 100644 --- a/src/gs-entbase/client/env_sound.qc +++ b/src/gs-entbase/client/env_sound.qc @@ -19,42 +19,9 @@ /*QUAKED env_sound (0 1 0.5) (-8 -8 -8) (8 8 8) "radius" Radius in units. -"roomtype" Roomtype value: - 0 = DEFAULT - 1 = PADDEDCELL - 2 = ROOM - 3 = BATHROOM - 4 = LIVINGROOM - 5 = STONEROOM - 6 = AUDITORIUM - 7 = CONCERTHALL - 8 = CAVE - 9 = ARENA - 10 = HANGAR - 11 = CARPETEDHALLWAY - 12 = HALLWAY - 13 = STONECORRIDOR - 14 = ALLEY - 15 = FOREST - 16 = CITY - 17 = MOUNTAINS - 18 = QUARRY - 19 = PLAIN - 20 = PARKINGLOT - 21 = SEWERPIPE - 22 = UNDERWATER - 23 = DRUGGED - 24 = DIZZY - 25 = PSYCHOTIC - 26 = CITYSTREETS - 27 = SUBWAY - 28 = MUSEUM - 29 = LIBRARY - 30 = UNDERPASS - 31 = ABANDONED - 32 = DUSTYROOM - 33 = CHAPEL - 34 = SMALLWATERROOM +"efx_file" Name of the OpenAL EFX definiton to use. +"roomtype" Legacy enumeration for GoldSrc support. + Please don't use this. Client-side environmental reverb modifier. This works only with the OpenAL sound backend. @@ -63,91 +30,38 @@ Trivia: This entity was introduced in Half-Life (1998). */ -var int autocvar_dsp_environments = TRUE; - -reverbinfo_t mix; - -enum -{ - DSP_DEFAULT, - DSP_PADDEDCELL, - DSP_ROOM, - DSP_BATHROOM, - DSP_LIVINGROOM, - DSP_STONEROOM, - DSP_AUDITORIUM, - DSP_CONCERTHALL, - DSP_CAVE, - DSP_ARENA, - DSP_HANGAR, - DSP_CARPETEDHALLWAY, - DSP_HALLWAY, - DSP_STONECORRIDOR, - DSP_ALLEY, - DSP_FOREST, - DSP_CITY, - DSP_MOUNTAINS, - DSP_QUARRY, - DSP_PLAIN, - DSP_PARKINGLOT, - DSP_SEWERPIPE, - DSP_UNDERWATER, - DSP_DRUGGED, - DSP_DIZZY, - DSP_PSYCHOTIC, - DSP_CITYSTREETS, - DSP_SUBWAY, - DSP_MUSEUM, - DSP_LIBRARY, - DSP_UNDERPASS, - DSP_ABANDONED, - DSP_DUSTYROOM, - DSP_CHAPEL, - DSP_SMALLWATERROOM +string g_hlefx[] = { + "default", + "gs_generic", + "gs_metal_s", + "gs_metal_m", + "gs_metal_l", + "gs_tunnel_s", + "gs_tunnel_m", + "gs_tunnel_l", + "gs_chamber_s", + "gs_chamber_m", + "gs_chamber_l", + "gs_bright_s", + "gs_bright_m", + "gs_bright_l", + "gs_water1", + "gs_water2", + "gs_water3", + "gs_concrete_s", + "gs_concrete_m", + "gs_concrete_l", + "gs_big1", + "gs_big2", + "gs_big3", + "gs_cavern_s", + "gs_cavern_m", + "gs_cavern_l", + "gs_weirdo1", + "gs_weirdo2", + "gs_weirdo3" }; -reverbinfo_t reverbPresets [35] = { - { 1.0000f, 1.0000f, 0.0000f, 1.0000f, 1.0000f, 1.0000f, 1.0000f, 1.0000f, 0.0000f, 0.0000f, [0,0,0], 1.0000f, 0.0000f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 1.0000f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.1715f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.1700f, 0.1000f, 1.0000f, 0.2500f, 0.0010f, [0,0,0], 1.2691f, 0.0020f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.4287f, 1.0000f, 0.3162f, 0.5929f, 1.0000f, 0.4000f, 0.8300f, 1.0000f, 0.1503f, 0.0020f, [0,0,0], 1.0629f, 0.0030f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.1715f, 1.0000f, 0.3162f, 0.2512f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.6531f, 0.0070f, [0,0,0], 3.2734f, 0.0110f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.9766f, 1.0000f, 0.3162f, 0.0010f, 1.0000f, 0.5000f, 0.1000f, 1.0000f, 0.2051f, 0.0030f, [0,0,0], 0.2805f, 0.0040f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 2.3100f, 0.6400f, 1.0000f, 0.4411f, 0.0120f, [0,0,0], 1.1003f, 0.0170f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 0.5781f, 1.0000f, 4.3200f, 0.5900f, 1.0000f, 0.4032f, 0.0200f, [0,0,0], 0.7170f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 0.5623f, 1.0000f, 3.9200f, 0.7000f, 1.0000f, 0.2427f, 0.0200f, [0,0,0], 0.9977f, 0.0290f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 2.9100f, 1.3000f, 1.0000f, 0.5000f, 0.0150f, [0,0,0], 0.7063f, 0.0220f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 1.0000f, 1.0000f, 0.3162f, 0.4477f, 1.0000f, 7.2400f, 0.3300f, 1.0000f, 0.2612f, 0.0200f, [0,0,0], 1.0186f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 10.0500f, 0.2300f, 1.0000f, 0.5000f, 0.0200f, [0,0,0], 1.2560f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.4287f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 0.3000f, 0.1000f, 1.0000f, 0.1215f, 0.0020f, [0,0,0], 0.1531f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.3645f, 1.0000f, 0.3162f, 0.7079f, 1.0000f, 1.4900f, 0.5900f, 1.0000f, 0.2458f, 0.0070f, [0,0,0], 1.6615f, 0.0110f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 0.7612f, 1.0000f, 2.7000f, 0.7900f, 1.0000f, 0.2472f, 0.0130f, [0,0,0], 1.5758f, 0.0200f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.3000f, 0.3162f, 0.7328f, 1.0000f, 1.4900f, 0.8600f, 1.0000f, 0.2500f, 0.0070f, [0,0,0], 0.9954f, 0.0110f, [0,0,0], 0.1250f, 0.9500f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.3000f, 0.3162f, 0.0224f, 1.0000f, 1.4900f, 0.5400f, 1.0000f, 0.0525f, 0.1620f, [0,0,0], 0.7682f, 0.0880f, [0,0,0], 0.1250f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.5000f, 0.3162f, 0.3981f, 1.0000f, 1.4900f, 0.6700f, 1.0000f, 0.0730f, 0.0070f, [0,0,0], 0.1427f, 0.0110f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.2700f, 0.3162f, 0.0562f, 1.0000f, 1.4900f, 0.2100f, 1.0000f, 0.0407f, 0.3000f, [0,0,0], 0.1919f, 0.1000f, [0,0,0], 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 1.0000f, 1.0000f, 0.3162f, 0.3162f, 1.0000f, 1.4900f, 0.8300f, 1.0000f, 0.0000f, 0.0610f, [0,0,0], 1.7783f, 0.0250f, [0,0,0], 0.1250f, 0.7000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.2100f, 0.3162f, 0.1000f, 1.0000f, 1.4900f, 0.5000f, 1.0000f, 0.0585f, 0.1790f, [0,0,0], 0.1089f, 0.1000f, [0,0,0], 0.2500f, 1.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 1.0000f, 0.3162f, 1.0000f, 1.0000f, 1.6500f, 1.5000f, 1.0000f, 0.2082f, 0.0080f, [0,0,0], 0.2652f, 0.0120f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 0.3071f, 0.8000f, 0.3162f, 0.3162f, 1.0000f, 2.8100f, 0.1400f, 1.0000f, 1.6387f, 0.0140f, [0,0,0], 3.2471f, 0.0210f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.3645f, 1.0000f, 0.3162f, 0.0100f, 1.0000f, 1.4900f, 0.1000f, 1.0000f, 0.5963f, 0.0070f, [0,0,0], 7.0795f, 0.0110f, [0,0,0], 0.2500f, 0.0000f, 1.1800f, 0.3480f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.4287f, 0.5000f, 0.3162f, 1.0000f, 1.0000f, 8.3900f, 1.3900f, 1.0000f, 0.8760f, 0.0020f, [0,0,0], 3.1081f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 0.3645f, 0.6000f, 0.3162f, 0.6310f, 1.0000f, 17.2300f, 0.5600f, 1.0000f, 0.1392f, 0.0200f, [0,0,0], 0.4937f, 0.0300f, [0,0,0], 0.2500f, 1.0000f, 0.8100f, 0.3100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 0.0625f, 0.5000f, 0.3162f, 0.8404f, 1.0000f, 7.5600f, 0.9100f, 1.0000f, 0.4864f, 0.0200f, [0,0,0], 2.4378f, 0.0300f, [0,0,0], 0.2500f, 0.0000f, 4.0000f, 1.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x0 }, - { 1.0000f, 0.7800f, 0.3162f, 0.7079f, 0.8913f, 1.7900f, 1.1200f, 0.9100f, 0.2818f, 0.0460f, [0,0,0], 0.1995f, 0.0280f, [0,0,0], 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.7400f, 0.3162f, 0.7079f, 0.8913f, 3.0100f, 1.2300f, 0.9100f, 0.7079f, 0.0460f, [0,0,0], 1.2589f, 0.0280f, [0,0,0], 0.1250f, 0.2100f, 0.2500f, 0.0000f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.8200f, 0.3162f, 0.1778f, 0.1778f, 3.2800f, 1.4000f, 0.5700f, 0.2512f, 0.0390f, [0,0,0], 0.8913f, 0.0340f, [0,0,0], 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 }, - { 1.0000f, 0.8200f, 0.3162f, 0.2818f, 0.0891f, 2.7600f, 0.8900f, 0.4100f, 0.3548f, 0.0290f, [0,0,0], 0.8913f, 0.0200f, [0,0,0], 0.1300f, 0.1700f, 0.2500f, 0.0000f, 0.9943f, 2854.3999f, 107.5000f, 0.0000f, 0x0 }, - { 1.0000f, 0.8200f, 0.3162f, 0.4467f, 0.8913f, 3.5700f, 1.1200f, 0.9100f, 0.3981f, 0.0590f, [0,0,0], 0.8913f, 0.0370f, [0,0,0], 0.2500f, 0.1400f, 0.2500f, 0.0000f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.6900f, 0.3162f, 0.7943f, 0.8913f, 3.2800f, 1.1700f, 0.9100f, 0.4467f, 0.0440f, [0,0,0], 0.2818f, 0.0240f, [0,0,0], 0.2500f, 0.2000f, 0.2500f, 0.0000f, 0.9966f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 0.3645f, 0.5600f, 0.3162f, 0.7943f, 0.7079f, 1.7900f, 0.3800f, 0.2100f, 0.5012f, 0.0020f, [0,0,0], 1.2589f, 0.0060f, [0,0,0], 0.2020f, 0.0500f, 0.2500f, 0.0000f, 0.9886f, 13046.0000f, 163.3000f, 0.0000f, 0x1 }, - { 1.0000f, 0.8400f, 0.3162f, 0.5623f, 1.0000f, 4.6200f, 0.6400f, 1.2300f, 0.4467f, 0.0320f, [0,0,0], 0.7943f, 0.0490f, [0,0,0], 0.2500f, 0.0000f, 0.2500f, 0.1100f, 0.9943f, 5000.0000f, 250.0000f, 0.0000f, 0x1 }, - { 1.0000f, 0.7000f, 0.3162f, 0.4477f, 1.0000f, 1.5100f, 1.2500f, 1.1400f, 0.8913f, 0.0200f, [0,0,0], 1.4125f, 0.0300f, [0,0,0], 0.1790f, 0.1500f, 0.8950f, 0.1900f, 0.9920f, 5000.0000f, 250.0000f, 0.0000f, 0x0 } -}; - -int g_iDSP; -int g_iDSPold; -float g_flDSPTime; - class env_sound:CBaseEntity { int m_iRoomType; @@ -165,231 +79,24 @@ env_sound::env_sound(void) setsize(this, [0,0,0], [0,0,0]); setorigin(this, origin); - - /* Valve BSP, convert their env_sound */ - if (serverkeyfloat("*bspversion") != BSPVER_HL) { - return; - } - - switch(m_iRoomType) { - case 0: - case 1: - m_iRoomType = DSP_DEFAULT; - break; - case 2: - m_iRoomType = DSP_SEWERPIPE; - break; - case 3: - m_iRoomType = DSP_SEWERPIPE; - break; - case 4: - m_iRoomType = DSP_SEWERPIPE; - break; - case 5: - m_iRoomType = DSP_HALLWAY; - break; - case 6: - m_iRoomType = DSP_UNDERPASS; - break; - case 7: - m_iRoomType = DSP_SUBWAY; - break; - case 8: - m_iRoomType = DSP_BATHROOM; - break; - case 9: - m_iRoomType = DSP_LIVINGROOM; - break; - case 10: - m_iRoomType = DSP_AUDITORIUM; - break; - case 11: - m_iRoomType = DSP_QUARRY; - break; - case 12: - m_iRoomType = DSP_FOREST; - break; - case 13: - m_iRoomType = DSP_MOUNTAINS; - break; - case 14: - m_iRoomType = DSP_UNDERWATER; - break; - case 15: - m_iRoomType = DSP_UNDERWATER; - break; - case 16: - m_iRoomType = DSP_UNDERWATER; - break; - case 17: - m_iRoomType = DSP_PARKINGLOT; - break; - case 18: - m_iRoomType = DSP_CAVE; - break; - case 19: - m_iRoomType = DSP_ABANDONED; - break; - case 20: - m_iRoomType = DSP_CHAPEL; - break; - case 21: - m_iRoomType = DSP_CONCERTHALL; - break; - case 22: - m_iRoomType = DSP_MUSEUM; - break; - case 23: - m_iRoomType = DSP_CAVE; - break; - case 24: - m_iRoomType = DSP_CAVE; - break; - case 25: - m_iRoomType = DSP_CAVE; - break; - case 26: - m_iRoomType = DSP_DRUGGED; - break; - case 27: - m_iRoomType = DSP_DIZZY; - break; - case 28: - m_iRoomType = DSP_PSYCHOTIC; - break; - } } void env_sound::SpawnKey(string strField, string strKey) { switch (strField) { - case "roomtype": - m_iRoomType = stoi(strKey); + case "efx_file": + m_iRoomType = EFX_Load(strKey); break; case "radius": m_iRadius = stoi(strKey); break; + /* GoldSrc, legacy */ + case "roomtype": + int efx_alias = stoi(strKey); + m_iRoomType = EFX_Load(g_hlefx[efx_alias]); + break; default: CBaseEntity::SpawnKey(strField, strKey); } } - -void -DSP_SetEnvironment(int id) -{ - if (g_iDSP == id) { - return; - } - - g_iDSPold = g_iDSP; - g_iDSP = id; - g_flDSPTime = 0.0f; -} - -void -DSP_Interpolate(int id) -{ - mix.flDensity = Math_Lerp(mix.flDensity, reverbPresets[id].flDensity, g_flDSPTime); - mix.flDiffusion = Math_Lerp(mix.flDiffusion, reverbPresets[id].flDiffusion, g_flDSPTime); - mix.flGain = Math_Lerp(mix.flGain, reverbPresets[id].flGain, g_flDSPTime); - mix.flGainHF = Math_Lerp(mix.flGainHF, reverbPresets[id].flGainHF, g_flDSPTime); - mix.flGainLF = Math_Lerp(mix.flGainLF, reverbPresets[id].flGainLF, g_flDSPTime); - mix.flDecayTime = Math_Lerp(mix.flDecayTime, reverbPresets[id].flDecayTime, g_flDSPTime); - mix.flDecayHFRatio = Math_Lerp(mix.flDecayHFRatio, reverbPresets[id].flDecayHFRatio, g_flDSPTime); - mix.flDecayLFRatio = Math_Lerp(mix.flDecayLFRatio, reverbPresets[id].flDecayLFRatio, g_flDSPTime); - mix.flReflectionsGain = Math_Lerp(mix.flReflectionsGain, reverbPresets[id].flReflectionsGain, g_flDSPTime); - mix.flReflectionsDelay = Math_Lerp(mix.flReflectionsDelay, reverbPresets[id].flReflectionsDelay, g_flDSPTime); - mix.flReflectionsPan[0] = Math_Lerp(mix.flReflectionsPan[0], reverbPresets[id].flReflectionsPan[0], g_flDSPTime); - mix.flReflectionsPan[1] = Math_Lerp(mix.flReflectionsPan[1], reverbPresets[id].flReflectionsPan[1], g_flDSPTime); - mix.flReflectionsPan[1] = Math_Lerp(mix.flReflectionsPan[2], reverbPresets[id].flReflectionsPan[2], g_flDSPTime); - mix.flLateReverbGain = Math_Lerp(mix.flLateReverbGain, reverbPresets[id].flLateReverbGain, g_flDSPTime); - mix.flLateReverbDelay = Math_Lerp(mix.flLateReverbDelay, reverbPresets[id].flLateReverbDelay, g_flDSPTime); - mix.flLateReverbPan[0] = Math_Lerp(mix.flLateReverbPan[0], reverbPresets[id].flLateReverbPan[0], g_flDSPTime); - mix.flLateReverbPan[1] = Math_Lerp(mix.flLateReverbPan[1], reverbPresets[id].flLateReverbPan[1], g_flDSPTime); - mix.flLateReverbPan[2] = Math_Lerp(mix.flLateReverbPan[2], reverbPresets[id].flLateReverbPan[2], g_flDSPTime); - mix.flEchoTime = Math_Lerp(mix.flEchoTime, reverbPresets[id].flEchoTime, g_flDSPTime); - mix.flEchoDepth = Math_Lerp(mix.flEchoDepth, reverbPresets[id].flEchoDepth, g_flDSPTime); - mix.flModulationTime = Math_Lerp(mix.flModulationTime, reverbPresets[id].flModulationTime, g_flDSPTime); - mix.flModulationDepth = Math_Lerp(mix.flModulationDepth, reverbPresets[id].flModulationDepth, g_flDSPTime); - mix.flAirAbsorptionGainHF = Math_Lerp(mix.flAirAbsorptionGainHF, reverbPresets[id].flAirAbsorptionGainHF, g_flDSPTime); - mix.flHFReference = Math_Lerp(mix.flHFReference, reverbPresets[id].flHFReference, g_flDSPTime); - mix.flLFReference = Math_Lerp(mix.flLFReference, reverbPresets[id].flLFReference, g_flDSPTime); - mix.flRoomRolloffFactor = Math_Lerp(mix.flRoomRolloffFactor, reverbPresets[id].flRoomRolloffFactor, g_flDSPTime); - mix.iDecayHFLimit = Math_Lerp(mix.iDecayHFLimit, reverbPresets[id].iDecayHFLimit, g_flDSPTime); -} - -void -DSP_UpdateListener(void) -{ - static int old_dsp; - - vector vecPlayer; - - if (autocvar_dsp_environments == FALSE) { - return; - } - - int s = (float)getproperty(VF_ACTIVESEAT); - pSeat = &g_seats[s]; - vecPlayer = pSeat->m_vecPredictedOrigin; - - float bestdist = 999999; - for (entity e = world; (e = find(e, classname, "env_sound"));) { - env_sound scape = (env_sound)e; - - other = world; - traceline(scape.origin, vecPlayer, MOVE_OTHERONLY, scape); - if (trace_fraction < 1.0f) { - continue; - } - - float dist = vlen(e.origin - vecPlayer); - if (dist > scape.m_iRadius) { - continue; - } - - if (dist > bestdist) { - continue; - } - - bestdist = dist; - DSP_SetEnvironment(scape.m_iRoomType); - } - - makevectors(getproperty(VF_CL_VIEWANGLES)); - SetListener(getproperty(VF_ORIGIN), v_forward, v_right, v_up, 12); - - if (old_dsp == g_iDSP) { - return; - } - -#ifdef DSP_LERP - if (g_flDSPTime < 1.0) - { - DSP_Interpolate(g_iDSP); - setup_reverb(12, &mix, sizeof(reverbinfo_t)); - } else { - old_dsp = g_iDSP; - } - g_flDSPTime += clframetime; -#else - - dprint(sprintf("DSP_UpdateListener: Changed style to %i\n", - g_iDSP)); - - old_dsp = g_iDSP; - setup_reverb(12, &reverbPresets[g_iDSP], sizeof(reverbinfo_t)); -#endif -} - -void -DSP_Init(void) -{ - g_iDSP = 0; - g_flDSPTime = 1.0f; - DSP_Interpolate(g_iDSP); - - setup_reverb(12, &reverbPresets[g_iDSP], sizeof(reverbinfo_t)); - setup_reverb(10, &reverbPresets[DSP_UNDERWATER], sizeof(reverbinfo_t)); -}