diff --git a/addons/assets/CfgEventHandlers.hpp b/addons/assets/CfgEventHandlers.hpp deleted file mode 100644 index 9b160c16..00000000 --- a/addons/assets/CfgEventHandlers.hpp +++ /dev/null @@ -1,5 +0,0 @@ -class Extended_PreInit_EventHandlers { - class ADDON { - init = QUOTE(call COMPILE_SCRIPT(XEH_preInit)); - }; -}; diff --git a/addons/assets/CfgVehicles.hpp b/addons/assets/CfgVehicles.hpp index 936d4d51..103a2a77 100644 --- a/addons/assets/CfgVehicles.hpp +++ b/addons/assets/CfgVehicles.hpp @@ -7,6 +7,7 @@ class CfgVehicles { author = "Model credits: RBG_illustrations - Reworked by TenuredCLOUD"; displayName = CSTRING(Forge_DisplayName); MACRO_THING_COMMON; + XEH_ENABLED; mapSize = 3; model = QPATHTOF(data\models\forge.p3d); textSingular = "Forge"; diff --git a/addons/assets/XEH_preInit.sqf b/addons/assets/XEH_preInit.sqf deleted file mode 100644 index 1c5b5347..00000000 --- a/addons/assets/XEH_preInit.sqf +++ /dev/null @@ -1,8 +0,0 @@ -#include "script_component.hpp" - -if (isServer) then { - [QCLASS(forge), "init", { - params ["_forge"]; - _forge call EFUNC(audio,forgeAudio); - }, true, [], true] call CBA_fnc_addClassEventHandler; -}; diff --git a/addons/audio/CfgSFX.hpp b/addons/audio/CfgSFX.hpp index da47815b..a20d93ba 100644 --- a/addons/audio/CfgSFX.hpp +++ b/addons/audio/CfgSFX.hpp @@ -1,7 +1,7 @@ class CfgSFX { class GVAR(sfx_furnace) { name = "Forge Ambience"; - sound0[] = {QPATHTOF(sounds\mining\furnaceFire.ogg), 3, 1, 40, 1, 0, 0.1, 0.2}; + sound0[] = {QPATHTOF(sounds\mining\FurnaceFire.ogg), 3, 1, 40, 1, 0, 0, 0}; sounds[] = {"sound0"}; empty[] = {"", 0, 0, 0, 0, 0, 0, 0}; }; diff --git a/addons/audio/XEH_PREP.hpp b/addons/audio/XEH_PREP.hpp index b5e660d4..3c8214fc 100644 --- a/addons/audio/XEH_PREP.hpp +++ b/addons/audio/XEH_PREP.hpp @@ -1,4 +1,3 @@ PREP(ambientMusic); PREP(ambientSoundScape); -PREP(forgeAudio); PREP(playRandomMusic); diff --git a/addons/audio/XEH_postInit.sqf b/addons/audio/XEH_postInit.sqf index f9a223e4..9a35ccff 100644 --- a/addons/audio/XEH_postInit.sqf +++ b/addons/audio/XEH_postInit.sqf @@ -1,22 +1,7 @@ #include "script_component.hpp" -// CBA Events [QGVAR(say3D), {(_this select 0) say3D [(_this select 1), (_this select 2)]}] call CBA_fnc_addEventHandler; -// TODO. -/* -if (isServer) then { - if (count GVAR(ambientMusicExtras) > 0) then { - [] call FUNC(playRandomMusic); - [] call FUNC(ambientMusic); - }; - - if (GVAR(forgeAmbience)) then { - call FUNC(forgeAudio); - }; -}; -*/ - if (hasInterface) then { if (GVAR(ambientSoundScape)) then { [] call FUNC(ambientSoundScape); @@ -31,9 +16,6 @@ if (hasInterface) then { call FUNC(ambientMusic); }; - // Forge Master List - GVAR(forgeAudioList) = []; - if (GVAR(enhancedInventorySounds)) then { // Inventory Sounds player addEventHandler ["InventoryClosed", { diff --git a/addons/audio/functions/fnc_forgeAudio.sqf b/addons/audio/functions/fnc_forgeAudio.sqf deleted file mode 100644 index c3e56d21..00000000 --- a/addons/audio/functions/fnc_forgeAudio.sqf +++ /dev/null @@ -1,28 +0,0 @@ -#include "..\script_component.hpp" -/* - * Author: MikeMF - * Adds Ambient Forge Audio - * - * Arguments: - * 0: Forge - * - * Return Value: - * None - * - * Example: - * [] call misery_fnc_audio_forgeAudio -*/ - -params ["_forge"]; - -if (!GVAR(forgeAmbience)) exitWith {}; - -private _soundSource = createSoundSource [QGVAR(sfx_v_furnace), getPosATL _forge, [], 0]; -_forge setVariable [QGVAR(forgeSoundSource), _soundSource]; - -// Delete Sound Source if Forge disappears -_forge addEventHandler ["Deleted", { - params ["_forge"]; - private _soundSource = _forge getVariable [QGVAR(forgeSoundSource), objNull]; - deleteVehicle _soundSource; -}]; diff --git a/addons/forge/XEH_PREP.hpp b/addons/forge/XEH_PREP.hpp index 91f86ec2..f56e26eb 100644 --- a/addons/forge/XEH_PREP.hpp +++ b/addons/forge/XEH_PREP.hpp @@ -1,5 +1,6 @@ PREP(burnFuel); PREP(canSmeltCheck); +PREP(initAudio); PREP(outputsListed); PREP(parseData); PREP(processSmelt); diff --git a/addons/forge/XEH_postInit.sqf b/addons/forge/XEH_postInit.sqf index 1374c435..d38e26c5 100644 --- a/addons/forge/XEH_postInit.sqf +++ b/addons/forge/XEH_postInit.sqf @@ -21,12 +21,19 @@ if (isClass (missionConfigFile >> "CfgMisery_ForgeData")) then { {true}, {}, ["_target", "_player"], - [0, 0, 0], + [0, 1, -1.3], 3 ] call ACEFUNC(interact_menu,createAction); - [QCLASS(forge), 0, [QUOTE(ACE_MainActions)], _forgeAction] call ACEFUNC(interact_menu,addActionToClass); + [QCLASS(forge), 0, [], _forgeAction] call ACEFUNC(interact_menu,addActionToClass); } else { [QUOTE(COMPONENT_BEAUTIFIED), "CfgMisery_ForgeData class not found in description.ext, skipping data parser..."] call EFUNC(common,debugMessage); }; + +[{CBA_missionTime > 5}, { + + if (EGVAR(audio,forgeAmbience)) then { + call FUNC(initAudio); + }; +}, []] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/forge/functions/fnc_initAudio.sqf b/addons/forge/functions/fnc_initAudio.sqf new file mode 100644 index 00000000..62be082c --- /dev/null +++ b/addons/forge/functions/fnc_initAudio.sqf @@ -0,0 +1,34 @@ +#include "..\script_component.hpp" +/* + * Author: TenuredCLOUD + * Initializes Forge objects audio loops + * + * Arguments: + * None + * + * Return Value: + * None + * + * Example: + * [] call misery_forge_fnc_initAudio; + * + * Public: No +*/ + +[QCLASS(forge), "Init", { + params ["_forge"]; + [{ + params ["_forge"]; + + private _soundSource = createSoundSource [QEGVAR(audio,sfx_v_furnace), getPosATL _forge, [], 0]; + _forge setVariable [QGVAR(forgeSoundSource), _soundSource]; + + // Delete Sound Source if Forge disappears + _forge addEventHandler ["Deleted", { + params ["_forge"]; + private _soundSource = _forge getVariable [QGVAR(forgeSoundSource), objNull]; + deleteVehicle _soundSource; + }]; + }, [_forge], 1] call CBA_fnc_waitAndExecute; +}, true, [], true] call CBA_fnc_addClassEventHandler; +