From 84eca899a9e5373d6e2f1fc10dba60b7eb2a56e5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 22 May 2016 23:13:58 -0500 Subject: [PATCH] Add event renaming system Allows us to switch event names such that anyone currently using our old event framework and names won't have their code broken until it is deprecated in version 3.8.0 --- addons/common/config.cpp | 5 +++++ addons/common/functions/fnc_addEventHandler.sqf | 11 ++++++++++- addons/common/functions/fnc_globalEvent.sqf | 11 ++++++++++- addons/common/functions/fnc_localEvent.sqf | 10 +++++++++- addons/common/functions/fnc_objectEvent.sqf | 6 ++++++ .../common/functions/fnc_removeAllEventHandlers.sqf | 6 ++++++ addons/common/functions/fnc_removeEventHandler.sqf | 10 +++++++++- addons/common/functions/fnc_serverEvent.sqf | 10 +++++++++- addons/common/functions/fnc_targetEvent.sqf | 6 ++++++ 9 files changed, 70 insertions(+), 5 deletions(-) diff --git a/addons/common/config.cpp b/addons/common/config.cpp index cbe5c5df6a..83e2d8a2a1 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -12,6 +12,11 @@ class CfgPatches { }; }; +// This class will be deprecated in version 3.8.0 +class ACE_newEvents { + playMoveNow = QGVAR(playMoveNow); +}; + #include "CfgEventHandlers.hpp" #include "CfgLocationTypes.hpp" diff --git a/addons/common/functions/fnc_addEventHandler.sqf b/addons/common/functions/fnc_addEventHandler.sqf index 4f285dd449..c7d641b509 100644 --- a/addons/common/functions/fnc_addEventHandler.sqf +++ b/addons/common/functions/fnc_addEventHandler.sqf @@ -1,5 +1,14 @@ +#define DEBUG_MODE_FULL #include "script_component.hpp" -_this call CBA_fnc_addEventHandler; +params ["_eventName", "_eventCode"]; + +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + +[_eventName, _eventCode] call CBA_fnc_addEventHandler; ACE_DEPRECATED("ace_common_fnc_addEventHandler","3.8.0","CBA_fnc_addEventHandler"); diff --git a/addons/common/functions/fnc_globalEvent.sqf b/addons/common/functions/fnc_globalEvent.sqf index cbd586c39c..88de2eadf7 100644 --- a/addons/common/functions/fnc_globalEvent.sqf +++ b/addons/common/functions/fnc_globalEvent.sqf @@ -1,5 +1,14 @@ +#define DEBUG_MODE_FULL #include "script_component.hpp" -_this call CBA_fnc_globalEvent; +params ["_eventName", "_eventArgs"]; + +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + +[_eventName, _eventArgs] call CBA_fnc_globalEvent; ACE_DEPRECATED("ace_common_fnc_globalEvent","3.8.0","CBA_fnc_globalEvent"); diff --git a/addons/common/functions/fnc_localEvent.sqf b/addons/common/functions/fnc_localEvent.sqf index 84b0aa4898..87672015e2 100644 --- a/addons/common/functions/fnc_localEvent.sqf +++ b/addons/common/functions/fnc_localEvent.sqf @@ -1,5 +1,13 @@ #include "script_component.hpp" -_this call CBA_fnc_localEvent; +params ["_eventName", "_eventArgs"]; + +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + +[_eventName, _eventArgs] call CBA_fnc_localEvent; ACE_DEPRECATED("ace_common_fnc_localEvent","3.8.0","CBA_fnc_localEvent"); diff --git a/addons/common/functions/fnc_objectEvent.sqf b/addons/common/functions/fnc_objectEvent.sqf index ed9029df65..21ba60b802 100644 --- a/addons/common/functions/fnc_objectEvent.sqf +++ b/addons/common/functions/fnc_objectEvent.sqf @@ -2,6 +2,12 @@ params ["_eventName", "_eventTarget", "_eventArgs"]; +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + [_eventName, _eventArgs, _eventTargets] call CBA_fnc_targetEvent; ACE_DEPRECATED("ace_common_fnc_objectEvent","3.8.0","CBA_fnc_targetEvent"); diff --git a/addons/common/functions/fnc_removeAllEventHandlers.sqf b/addons/common/functions/fnc_removeAllEventHandlers.sqf index ca4db8db0a..8e24e52a7f 100644 --- a/addons/common/functions/fnc_removeAllEventHandlers.sqf +++ b/addons/common/functions/fnc_removeAllEventHandlers.sqf @@ -2,6 +2,12 @@ params ["_eventName"]; +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + CBA_events_eventNamespace setVariable [_eventName,nil]; CBA_events_eventHashes setVariable [_eventName,nil]; diff --git a/addons/common/functions/fnc_removeEventHandler.sqf b/addons/common/functions/fnc_removeEventHandler.sqf index b241aae833..003eb1c6d4 100644 --- a/addons/common/functions/fnc_removeEventHandler.sqf +++ b/addons/common/functions/fnc_removeEventHandler.sqf @@ -1,5 +1,13 @@ #include "script_component.hpp" -_this call CBA_fnc_removeEventHandler; +params ["_eventName", "_eventCode"]; + +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + +[_eventName, _eventCode] call CBA_fnc_removeEventHandler; ACE_DEPRECATED("ace_common_fnc_removeEventHandler","3.8.0","CBA_fnc_removeEventHandler"); diff --git a/addons/common/functions/fnc_serverEvent.sqf b/addons/common/functions/fnc_serverEvent.sqf index 7fbb3d21a6..a9d82f1638 100644 --- a/addons/common/functions/fnc_serverEvent.sqf +++ b/addons/common/functions/fnc_serverEvent.sqf @@ -1,5 +1,13 @@ #include "script_component.hpp" -_this call CBA_fnc_serverEvent; +params ["_eventName", "_eventArgs"]; + +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + +[_eventName, _eventArgs] call CBA_fnc_serverEvent; ACE_DEPRECATED("ace_common_fnc_serverEvent","3.8.0","CBA_fnc_serverEvent"); diff --git a/addons/common/functions/fnc_targetEvent.sqf b/addons/common/functions/fnc_targetEvent.sqf index e78f193370..fcc8e37775 100644 --- a/addons/common/functions/fnc_targetEvent.sqf +++ b/addons/common/functions/fnc_targetEvent.sqf @@ -2,6 +2,12 @@ params ["_eventName", "_eventTargets", "_eventArgs"]; +private _newName = getText (configFile >> "ACE_newEvents" >> _eventName); +if (_newName != "") then { + TRACE_2("Switching Names",_eventName,_newName); + _eventName = _newName; +}; + [_eventName,_eventArgs,_eventTargets] call CBA_fnc_targetEvent; ACE_DEPRECATED("ace_common_fnc_targetEvent","3.8.0","CBA_fnc_targetEvent");