From b4d2faa578e44374a3732f9e904852ab66d6d546 Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 16 Jun 2016 17:47:27 +0200 Subject: [PATCH 1/2] add parameter to 'createNamespace' to create a public namespace --- addons/common/CfgVehicles.hpp | 8 ++++++++ addons/common/config.cpp | 2 ++ addons/common/fnc_createNamespace.sqf | 17 ++++++++++++++--- addons/common/fnc_deleteNamespace.sqf | 4 ++-- addons/events/XEH_preInit.sqf | 2 +- 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 addons/common/CfgVehicles.hpp diff --git a/addons/common/CfgVehicles.hpp b/addons/common/CfgVehicles.hpp new file mode 100644 index 000000000..67ce56ba7 --- /dev/null +++ b/addons/common/CfgVehicles.hpp @@ -0,0 +1,8 @@ + +class CfgVehicles { + class Static; + class CBA_NamespaceDummy: Static { + scope = 1; + displayName = ""; + }; +}; diff --git a/addons/common/config.cpp b/addons/common/config.cpp index 5038272c5..4396f291e 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -16,6 +16,8 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgFunctions.hpp" + +#include "CfgVehicles.hpp" #include "CfgLocationTypes.hpp" class CBA_DirectCall { diff --git a/addons/common/fnc_createNamespace.sqf b/addons/common/fnc_createNamespace.sqf index 9c5ca7863..dfcc8dc61 100644 --- a/addons/common/fnc_createNamespace.sqf +++ b/addons/common/fnc_createNamespace.sqf @@ -7,14 +7,17 @@ Description: The Namespace is destroyed after the mission ends. getVariable ARRAY is not supported. Parameters: - None + _isGlobal - create a global namespace (optional, default: false) Returns: - _namespace - a namespace + _namespace - a namespace Examples: (begin example) _namespace = call CBA_fnc_createNamespace; + + My_GlobalNamespace = true call CBA_fnc_createNamespace; + publicVariable "My_GlobalNamespace"; (end) Author: @@ -23,4 +26,12 @@ Author: #include "script_component.hpp" SCRIPT(createNamespace); -createLocation ["CBA_NamespaceDummy", [-1000, -1000, 0], 0, 0] +#define DUMMY_POSITION [-1000, -1000, 0] + +params [["_isGlobal", false]]; + +if (_isGlobal isEqualTo true) then { + createVehicle ["CBA_NamespaceDummy", DUMMY_POSITION, [], 0, "NONE"] +} else { + createLocation ["CBA_NamespaceDummy", DUMMY_POSITION, 0, 0] +}; diff --git a/addons/common/fnc_deleteNamespace.sqf b/addons/common/fnc_deleteNamespace.sqf index 8ed1d53b3..6308f8e25 100644 --- a/addons/common/fnc_deleteNamespace.sqf +++ b/addons/common/fnc_deleteNamespace.sqf @@ -21,6 +21,6 @@ Author: #include "script_component.hpp" SCRIPT(deleteNamespace); -params [["_namespace", locationNull, [locationNull]]]; +params [["_namespace", locationNull, [locationNull, objNull]]]; -deleteLocation _namespace; +_namespace call CBA_fnc_deleteEntity; diff --git a/addons/events/XEH_preInit.sqf b/addons/events/XEH_preInit.sqf index a645580e3..0faf704eb 100644 --- a/addons/events/XEH_preInit.sqf +++ b/addons/events/XEH_preInit.sqf @@ -11,7 +11,7 @@ GVAR(eventNamespace) = call CBA_fnc_createNamespace; GVAR(eventHashes) = call CBA_fnc_createNamespace; if (isServer) then { - GVAR(eventNamespaceJIP) = (sideLogic call CBA_fnc_getSharedGroup) createUnit ["Logic", [0,0,0], [], 0, "NONE"]; // createVehicle fails on game logics. Have to use createUnit instead. + GVAR(eventNamespaceJIP) = true call CBA_fnc_createNamespace; // createVehicle fails on game logics. Have to use createUnit instead. publicVariable QGVAR(eventNamespaceJIP); }; From a25de21e96cea0c3247b9462123dd6c3c9fbdd1d Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 16 Jun 2016 17:53:50 +0200 Subject: [PATCH 2/2] delete outdated comment --- addons/events/XEH_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/XEH_preInit.sqf b/addons/events/XEH_preInit.sqf index 0faf704eb..0500a7843 100644 --- a/addons/events/XEH_preInit.sqf +++ b/addons/events/XEH_preInit.sqf @@ -11,7 +11,7 @@ GVAR(eventNamespace) = call CBA_fnc_createNamespace; GVAR(eventHashes) = call CBA_fnc_createNamespace; if (isServer) then { - GVAR(eventNamespaceJIP) = true call CBA_fnc_createNamespace; // createVehicle fails on game logics. Have to use createUnit instead. + GVAR(eventNamespaceJIP) = true call CBA_fnc_createNamespace; publicVariable QGVAR(eventNamespaceJIP); };