diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 4f56dd4d86..a66f12615f 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -127,6 +127,7 @@ PREP(numberToString); PREP(onAnswerRequest); PREP(owned); PREP(parseList); +PREP(playConfigSound3D); PREP(player); PREP(playerSide); PREP(positionToASL); diff --git a/addons/common/functions/fnc_playConfigSound3D.sqf b/addons/common/functions/fnc_playConfigSound3D.sqf new file mode 100644 index 0000000000..6253f75fb4 --- /dev/null +++ b/addons/common/functions/fnc_playConfigSound3D.sqf @@ -0,0 +1,35 @@ +/* + * Author: esteldunedain + * Plays a sound defined in CfgSounds using playSound3D, with global effect + * + * Arguments: + * 0: Sound class + * 1: Position ASL + * 2: Volume + * 3: Distance + * + * Return Value: + * None + * + * Public: Yes + */ +#define DEBUG_MODE_FULL +#include "script_component.hpp" + +params ["_soundClass", "_posASL", "_volume", "_distance"]; + +private _cfgSound = configFile >> "CfgSounds" >> _soundClass; + +if (!isClass _cfgSound) exitWith { + ACE_LOGERROR_1("CfgSounds class [%1] does not exist", _soundClass); +}; + +private _args = getArray (_cfgSound >> "sound"); +TRACE_1("playConfigSound3D args", _args); +private _pitch = (_args select 2); +// Strip the first \ from the filename +private _fileName = _args select 0; +_fileName = _fileName select [1, count _fileName - 1]; +TRACE_1("playConfigSound3D filename", _fileName); + +playSound3D [_fileName, objNull, false, _posASL, _volume, _pitch, _distance];