From 82ed59c466c722014e3d05c73c7a7792ad9b0974 Mon Sep 17 00:00:00 2001 From: DartRuffian Date: Wed, 18 Dec 2024 11:27:19 -0600 Subject: [PATCH 1/3] Update global say/say3D to use CBA events --- addons/network/CfgEventHandlers.hpp | 6 ++++++ addons/network/CfgFunctions.hpp | 2 +- addons/network/XEH_postInit.sqf | 18 ++++++++++++++++++ addons/network/fnc_globalSay.sqf | 6 ++---- addons/network/fnc_globalSay3d.sqf | 13 ++++++------- 5 files changed, 33 insertions(+), 12 deletions(-) create mode 100644 addons/network/XEH_postInit.sqf diff --git a/addons/network/CfgEventHandlers.hpp b/addons/network/CfgEventHandlers.hpp index 9b160c1600..4300a157b9 100644 --- a/addons/network/CfgEventHandlers.hpp +++ b/addons/network/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreInit_EventHandlers { init = QUOTE(call COMPILE_SCRIPT(XEH_preInit)); }; }; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_postInit)); + }; +}; diff --git a/addons/network/CfgFunctions.hpp b/addons/network/CfgFunctions.hpp index 6c500858c3..d2de830ae4 100644 --- a/addons/network/CfgFunctions.hpp +++ b/addons/network/CfgFunctions.hpp @@ -3,7 +3,7 @@ class CfgFunctions { class Network { PATHTO_FNC(globalExecute); PATHTO_FNC(globalSay); - PATHTO_FNC(globalSay3d); + PATHTO_FNC(globalSay3D); PATHTO_FNC(publicVariable); PATHTO_FNC(setVarNet); }; diff --git a/addons/network/XEH_postInit.sqf b/addons/network/XEH_postInit.sqf new file mode 100644 index 0000000000..54b27b79b4 --- /dev/null +++ b/addons/network/XEH_postInit.sqf @@ -0,0 +1,18 @@ +#include "script_component.hpp" + +if (hasInterface) then { + [QGVAR(say3D), { + params ["_object", "_params", "_attach"]; + + // Attaching is mainly meant for vehicles in motion + private _source = _object say3D _params; + if (_attach) then { + _source attachTo [_object]; + }; + }] call CBA_fnc_addEventHandler; + + [QGVAR(say), { + params ["_object", "_params"]; + _object say _params; + }] call CBA_fnc_addEventHandler; +}; diff --git a/addons/network/fnc_globalSay.sqf b/addons/network/fnc_globalSay.sqf index a6b44d31cc..42a4602328 100644 --- a/addons/network/fnc_globalSay.sqf +++ b/addons/network/fnc_globalSay.sqf @@ -5,8 +5,6 @@ Function: CBA_fnc_globalSay Description: Says sound on all clients. - DEPRECATED. Use ["say"] instead. - Parameters: _objects - Object or array of objects that perform Say _params - [sound, maxTitlesDistance,speed] or "sound" @@ -20,7 +18,7 @@ Example: (end) Author: - Sickboy, commy2 + Sickboy, commy2, DartRuffian ---------------------------------------------------------------------------- */ params [["_objects", [], [[], objNull]], ["_params", "", ["", []]]]; @@ -30,7 +28,7 @@ if (_objects isEqualType objNull) then { }; { - [_x, _params] remoteExecCall ["say"]; + [QGVAR(say), [_x, _params]] call CBA_fnc_globalEvent; } forEach _objects; nil diff --git a/addons/network/fnc_globalSay3d.sqf b/addons/network/fnc_globalSay3d.sqf index febe02519c..6901b0678d 100644 --- a/addons/network/fnc_globalSay3d.sqf +++ b/addons/network/fnc_globalSay3d.sqf @@ -1,30 +1,29 @@ #include "script_component.hpp" /* ---------------------------------------------------------------------------- -Function: CBA_fnc_globalSay3d +Function: CBA_fnc_globalSay3D Description: Says sound on all clients in 3D. - DEPRECATED. Use ["say3D"] instead. - Parameters: _objects - Object or array of objects that perform Say _params - [sound, maxTitlesDistance,speed] or "sound" _range - Maximum distance from camera to execute command (optional) + _attach - Attach created sound to _object (optional, default: false) Returns: Nothing Example: (begin example) - [player, "Alarm", 500] call CBA_fnc_globalSay3d; + [player, "Alarm", 500] call CBA_fnc_globalSay3D; (end) Author: - Sickboy, commy2 + Sickboy, commy2, DartRuffian ---------------------------------------------------------------------------- */ -params [["_objects", [], [[], objNull]], ["_params", "", ["", []]], ["_distance", nil, [0]]]; +params [["_objects", [], [[], objNull]], ["_params", "", ["", []]], ["_distance", nil, [0]], ["_attach", false, [false]]]; if (_objects isEqualType objNull) then { _objects = [_objects]; @@ -35,7 +34,7 @@ if (!isNil "_distance") then { }; { - [_x, _params] remoteExecCall ["say3D"]; + [QGVAR(say3D), [_x, _params, _attach]] call CBA_fnc_globalEvent; } forEach _objects; nil From 6203ee8fdde94ba96df073b4bcf1682495345844 Mon Sep 17 00:00:00 2001 From: DartRuffian Date: Wed, 18 Dec 2024 11:27:32 -0600 Subject: [PATCH 2/3] Rename --- addons/network/{fnc_globalSay3d.sqf => fnc_globalSay3D_.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/network/{fnc_globalSay3d.sqf => fnc_globalSay3D_.sqf} (100%) diff --git a/addons/network/fnc_globalSay3d.sqf b/addons/network/fnc_globalSay3D_.sqf similarity index 100% rename from addons/network/fnc_globalSay3d.sqf rename to addons/network/fnc_globalSay3D_.sqf From 7384a8c182d98a449e82a20a1eba30e682e499b3 Mon Sep 17 00:00:00 2001 From: DartRuffian Date: Wed, 18 Dec 2024 11:27:39 -0600 Subject: [PATCH 3/3] Fix case in file name --- addons/network/{fnc_globalSay3D_.sqf => fnc_globalSay3D.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/network/{fnc_globalSay3D_.sqf => fnc_globalSay3D.sqf} (100%) diff --git a/addons/network/fnc_globalSay3D_.sqf b/addons/network/fnc_globalSay3D.sqf similarity index 100% rename from addons/network/fnc_globalSay3D_.sqf rename to addons/network/fnc_globalSay3D.sqf