From 00d5b36904d44d2099ec4fb99dc0daf006007f4e Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 18:29:39 +0200 Subject: [PATCH 01/33] accessory move CfgFunctions to PREPMAIN --- addons/accessory/CfgFunctions.hpp | 7 ---- addons/accessory/XEH_PREP.sqf | 5 ++- addons/accessory/XEH_preInit.sqf | 64 +++++++++++++++---------------- addons/accessory/config.cpp | 1 - 4 files changed, 36 insertions(+), 41 deletions(-) delete mode 100644 addons/accessory/CfgFunctions.hpp diff --git a/addons/accessory/CfgFunctions.hpp b/addons/accessory/CfgFunctions.hpp deleted file mode 100644 index 0554973a9..000000000 --- a/addons/accessory/CfgFunctions.hpp +++ /dev/null @@ -1,7 +0,0 @@ -class CfgFunctions { - class CBA { - class Inventory { - PATHTO_FNC(switchableAttachments); - }; - }; -}; diff --git a/addons/accessory/XEH_PREP.sqf b/addons/accessory/XEH_PREP.sqf index 653b03f2f..7f797e4de 100644 --- a/addons/accessory/XEH_PREP.sqf +++ b/addons/accessory/XEH_PREP.sqf @@ -1,2 +1,5 @@ +PREPMAIN(switchableAttachments); -PREP(switchAttachment); +if (hasInterface) then { + PREP(switchAttachment); +}; diff --git a/addons/accessory/XEH_preInit.sqf b/addons/accessory/XEH_preInit.sqf index 68f1c5d1c..696162022 100644 --- a/addons/accessory/XEH_preInit.sqf +++ b/addons/accessory/XEH_preInit.sqf @@ -1,39 +1,39 @@ #include "script_component.hpp" -if (!hasInterface) exitWith {}; - #include "XEH_PREP.sqf" -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { - [1, "next"] call FUNC(switchAttachment) // return -}, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; - -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { - [1, "prev"] call FUNC(switchAttachment) // return -}, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; - -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { - [2, "next"] call FUNC(switchAttachment) // return -}, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; - -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { - [2, "prev"] call FUNC(switchAttachment) // return -}, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; - -[ - "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { +if (hasInterface) then { + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { [1, "next"] call FUNC(switchAttachment) // return - } -] call CBA_fnc_addItemContextMenuOption; + }, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; + + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { + [1, "prev"] call FUNC(switchAttachment) // return + }, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; -[ - "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { [2, "next"] call FUNC(switchAttachment) // return - } -] call CBA_fnc_addItemContextMenuOption; + }, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; + + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { + [2, "prev"] call FUNC(switchAttachment) // return + }, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; + + [ + "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { + [1, "next"] call FUNC(switchAttachment) // return + } + ] call CBA_fnc_addItemContextMenuOption; + + [ + "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { + [2, "next"] call FUNC(switchAttachment) // return + } + ] call CBA_fnc_addItemContextMenuOption; +}; diff --git a/addons/accessory/config.cpp b/addons/accessory/config.cpp index 2aa6e15d2..a909ea991 100644 --- a/addons/accessory/config.cpp +++ b/addons/accessory/config.cpp @@ -15,4 +15,3 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" From 8615ab385d66473d0487295fea2f0acb6f6d1773 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 18:32:11 +0200 Subject: [PATCH 02/33] accessory move CfgFunctions to PREPMAIN --- addons/accessory/XEH_preInit.sqf | 64 ++++++++++++++++---------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/addons/accessory/XEH_preInit.sqf b/addons/accessory/XEH_preInit.sqf index 696162022..1060039c5 100644 --- a/addons/accessory/XEH_preInit.sqf +++ b/addons/accessory/XEH_preInit.sqf @@ -2,38 +2,38 @@ #include "XEH_PREP.sqf" -if (hasInterface) then { - [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { - [1, "next"] call FUNC(switchAttachment) // return - }, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; +if (!hasInterface) then {}; + +[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { + [1, "next"] call FUNC(switchAttachment) // return +}, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; + +[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { + [1, "prev"] call FUNC(switchAttachment) // return +}, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; - [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { - [1, "prev"] call FUNC(switchAttachment) // return - }, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; +[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { + [2, "next"] call FUNC(switchAttachment) // return +}, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; + +[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { + [2, "prev"] call FUNC(switchAttachment) // return +}, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; + +[ + "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { + [1, "next"] call FUNC(switchAttachment) // return + } +] call CBA_fnc_addItemContextMenuOption; - [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { +[ + "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { [2, "next"] call FUNC(switchAttachment) // return - }, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; - - [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { - [2, "prev"] call FUNC(switchAttachment) // return - }, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; - - [ - "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { - [1, "next"] call FUNC(switchAttachment) // return - } - ] call CBA_fnc_addItemContextMenuOption; - - [ - "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { - [2, "next"] call FUNC(switchAttachment) // return - } - ] call CBA_fnc_addItemContextMenuOption; -}; + } +] call CBA_fnc_addItemContextMenuOption; From 868594798c1a22f67e5ddcf65aefc77921483b57 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 18:32:25 +0200 Subject: [PATCH 03/33] accessory move CfgFunctions to PREPMAIN --- addons/accessory/XEH_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/accessory/XEH_preInit.sqf b/addons/accessory/XEH_preInit.sqf index 1060039c5..2b5a2a733 100644 --- a/addons/accessory/XEH_preInit.sqf +++ b/addons/accessory/XEH_preInit.sqf @@ -2,7 +2,7 @@ #include "XEH_PREP.sqf" -if (!hasInterface) then {}; +if (!hasInterface) exitWith {}; [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { [1, "next"] call FUNC(switchAttachment) // return From 67435b39da760283b77137f9c4136e596e92c8a0 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 18:36:10 +0200 Subject: [PATCH 04/33] ai and arrays move CfgFunctions to PREPMAIN --- addons/ai/CfgEventHandlers.hpp | 5 +++++ addons/ai/CfgFunctions.hpp | 14 -------------- addons/ai/XEH_PREP.sqf | 8 ++++++++ addons/ai/XEH_preInit.sqf | 3 +++ addons/ai/config.cpp | 2 +- addons/arrays/CfgEventHandlers.hpp | 5 +++++ addons/arrays/CfgFunctions.hpp | 24 ------------------------ addons/arrays/XEH_PREP.sqf | 18 ++++++++++++++++++ addons/arrays/XEH_preInit.sqf | 3 +++ addons/arrays/config.cpp | 2 +- 10 files changed, 44 insertions(+), 40 deletions(-) create mode 100644 addons/ai/CfgEventHandlers.hpp delete mode 100644 addons/ai/CfgFunctions.hpp create mode 100644 addons/ai/XEH_PREP.sqf create mode 100644 addons/ai/XEH_preInit.sqf create mode 100644 addons/arrays/CfgEventHandlers.hpp delete mode 100644 addons/arrays/CfgFunctions.hpp create mode 100644 addons/arrays/XEH_PREP.sqf create mode 100644 addons/arrays/XEH_preInit.sqf diff --git a/addons/ai/CfgEventHandlers.hpp b/addons/ai/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/ai/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/ai/CfgFunctions.hpp b/addons/ai/CfgFunctions.hpp deleted file mode 100644 index fbc73b02c..000000000 --- a/addons/ai/CfgFunctions.hpp +++ /dev/null @@ -1,14 +0,0 @@ -class CfgFunctions { - class CBA { - class Ai { - PATHTO_FNC(addWaypoint); - PATHTO_FNC(clearWaypoints); - PATHTO_FNC(searchNearby); - PATHTO_FNC(taskAttack); - PATHTO_FNC(taskDefend); - PATHTO_FNC(taskPatrol); - PATHTO_FNC(taskSearchArea); - PATHTO_FNC(buildingPositions); - }; - }; -}; diff --git a/addons/ai/XEH_PREP.sqf b/addons/ai/XEH_PREP.sqf new file mode 100644 index 000000000..c411b9ea2 --- /dev/null +++ b/addons/ai/XEH_PREP.sqf @@ -0,0 +1,8 @@ +PREPMAIN(addWaypoint); +PREPMAIN(clearWaypoints); +PREPMAIN(searchNearby); +PREPMAIN(taskAttack); +PREPMAIN(taskDefend); +PREPMAIN(taskPatrol); +PREPMAIN(taskSearchArea); +PREPMAIN(buildingPositions); diff --git a/addons/ai/XEH_preInit.sqf b/addons/ai/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/ai/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp index 3b4768ac1..5ec9f3fd9 100644 --- a/addons/ai/config.cpp +++ b/addons/ai/config.cpp @@ -14,7 +14,7 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "CfgVehicleIcons.hpp" #include "CfgWaypoints.hpp" diff --git a/addons/arrays/CfgEventHandlers.hpp b/addons/arrays/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/arrays/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/arrays/CfgFunctions.hpp b/addons/arrays/CfgFunctions.hpp deleted file mode 100644 index 69ce3dc72..000000000 --- a/addons/arrays/CfgFunctions.hpp +++ /dev/null @@ -1,24 +0,0 @@ -class CfgFunctions { - class CBA { - class Arrays { - PATHTO_FNC(filter); - PATHTO_FNC(findMax); - PATHTO_FNC(findMin); - PATHTO_FNC(findNil); - PATHTO_FNC(findTypeName); - PATHTO_FNC(findTypeOf); - PATHTO_FNC(findNull); - PATHTO_FNC(getArrayDiff); - PATHTO_FNC(getArrayElements); - PATHTO_FNC(inject); - PATHTO_FNC(insert); - PATHTO_FNC(join); - PATHTO_FNC(reject); - PATHTO_FNC(select); - PATHTO_FNC(selectBest); - PATHTO_FNC(selectRandomArray); - PATHTO_FNC(shuffle); - PATHTO_FNC(sortNestedArray); - }; - }; -}; diff --git a/addons/arrays/XEH_PREP.sqf b/addons/arrays/XEH_PREP.sqf new file mode 100644 index 000000000..48f9ace71 --- /dev/null +++ b/addons/arrays/XEH_PREP.sqf @@ -0,0 +1,18 @@ +PREPMAIN(filter); +PREPMAIN(findMax); +PREPMAIN(findMin); +PREPMAIN(findNil); +PREPMAIN(findTypeName); +PREPMAIN(findTypeOf); +PREPMAIN(findNull); +PREPMAIN(getArrayDiff); +PREPMAIN(getArrayElements); +PREPMAIN(inject); +PREPMAIN(insert); +PREPMAIN(join); +PREPMAIN(reject); +PREPMAIN(select); +PREPMAIN(selectBest); +PREPMAIN(selectRandomArray); +PREPMAIN(shuffle); +PREPMAIN(sortNestedArray); diff --git a/addons/arrays/XEH_preInit.sqf b/addons/arrays/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/arrays/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/arrays/config.cpp b/addons/arrays/config.cpp index 9b733422f..7ddac7059 100644 --- a/addons/arrays/config.cpp +++ b/addons/arrays/config.cpp @@ -14,4 +14,4 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" From 0e6844b7d52d768fb634956dd325cba52bfcad9a Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 18:59:00 +0200 Subject: [PATCH 05/33] common move CfgFunctions to PREPMAIN --- addons/common/CfgEventHandlers.hpp | 1 - addons/common/CfgFunctions.hpp | 138 ----------------------------- addons/common/XEH_PREP.sqf | 122 +++++++++++++++++++++++++ addons/common/XEH_preInit.sqf | 2 + addons/common/config.cpp | 1 - 5 files changed, 124 insertions(+), 140 deletions(-) delete mode 100644 addons/common/CfgFunctions.hpp create mode 100644 addons/common/XEH_PREP.sqf diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp index e53a38deb..a95e641f2 100644 --- a/addons/common/CfgEventHandlers.hpp +++ b/addons/common/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); diff --git a/addons/common/CfgFunctions.hpp b/addons/common/CfgFunctions.hpp deleted file mode 100644 index fde194db6..000000000 --- a/addons/common/CfgFunctions.hpp +++ /dev/null @@ -1,138 +0,0 @@ - -class CfgFunctions { - class CBA { - class Config { - PATHTO_FNC(getConfigEntry); - PATHTO_FNC(getObjectConfig); - PATHTO_FNC(getItemConfig); - PATHTO_FNC(getMuzzles); - PATHTO_FNC(getWeaponModes); - PATHTO_FNC(inheritsFrom); - PATHTO_FNC(getTurret); - PATHTO_FNC(getNonPresetClass); - }; - - class Entities { - PATHTO_FNC(findEntity); - PATHTO_FNC(deleteEntity); - PATHTO_FNC(isAlive); - PATHTO_FNC(getAlive); - PATHTO_FNC(getGroup); - PATHTO_FNC(getSharedGroup); - PATHTO_FNC(nearPlayer); - PATHTO_FNC(getArg); - PATHTO_FNC(createMarker); - PATHTO_FNC(createTrigger); - PATHTO_FNC(getGroupIndex); - PATHTO_FNC(getMagazineIndex); - PATHTO_FNC(currentMagazineIndex); - PATHTO_FNC(setCallsign); - PATHTO_FNC(getActiveFeatureCamera); - PATHTO_FNC(registerFeatureCamera); - }; - - class Soldiers { - PATHTO_FNC(isPerson); - PATHTO_FNC(canUseWeapon); - PATHTO_FNC(selectWeapon); - PATHTO_FNC(switchPlayer); - PATHTO_FNC(currentUnit); - PATHTO_FNC(players); - }; - - class Vehicles { - PATHTO_FNC(getFirer); - PATHTO_FNC(isTurnedOut); - PATHTO_FNC(getVolume); - PATHTO_FNC(vehicleRole); - PATHTO_FNC(turretPath); - PATHTO_FNC(turretPathWeapon); - PATHTO_FNC(viewDir); - PATHTO_FNC(turretDir); - }; - - class Anims { - PATHTO_FNC(getAnimType); - PATHTO_FNC(getUnitAnim); - PATHTO_FNC(getUnitDeathAnim); - PATHTO_FNC(isUnitGetOutAnim); - PATHTO_FNC(headDir); - PATHTO_FNC(modelHeadDir); - }; - - class Inventory { - PATHTO_FNC(addWeapon); - PATHTO_FNC(addWeaponWithoutItems); - PATHTO_FNC(addMagazine); - PATHTO_FNC(addItem); - PATHTO_FNC(compatibleMagazines); - PATHTO_FNC(removeWeapon); - PATHTO_FNC(removeMagazine); - PATHTO_FNC(removeItem); - PATHTO_FNC(uniqueUnitItems); - PATHTO_FNC(weaponComponents); - PATHTO_FNC(dropWeapon); - PATHTO_FNC(dropMagazine); - PATHTO_FNC(dropItem); - PATHTO_FNC(binocularMagazine); - PATHTO_FNC(addBinocularMagazine); - PATHTO_FNC(removeBinocularMagazine); - PATHTO_FNC(randomizeFacewear); - }; - - class Cargo { - PATHTO_FNC(addWeaponCargo); - PATHTO_FNC(addMagazineCargo); - PATHTO_FNC(addItemCargo); - PATHTO_FNC(addBackpackCargo); - PATHTO_FNC(removeWeaponCargo); - PATHTO_FNC(removeMagazineCargo); - PATHTO_FNC(removeItemCargo); - PATHTO_FNC(removeBackpackCargo); - }; - - class Maps { - PATHTO_FNC(northingReversed); - PATHTO_FNC(mapGridToPos); - PATHTO_FNC(mapRelPos); - PATHTO_FNC(mapDirTo); - PATHTO_FNC(getTerrainProfile); - PATHTO_FNC(isTerrainObject); - }; - - class Positions { - PATHTO_FNC(getArea); - PATHTO_FNC(getDistance); - PATHTO_FNC(getPos); - PATHTO_FNC(setPos); - PATHTO_FNC(realHeight); - PATHTO_FNC(setHeight); - PATHTO_FNC(randPos); - PATHTO_FNC(randPosArea); - PATHTO_FNC(getNearest); - PATHTO_FNC(getNearestBuilding); - }; - - class Misc { - PATHTO_FNC(addPerFrameHandler); - PATHTO_FNC(removePerFrameHandler); - PATHTO_FNC(createPerFrameHandlerObject); - PATHTO_FNC(deletePerFrameHandlerObject); - PATHTO_FNC(addPlayerAction); - PATHTO_FNC(removePlayerAction); - PATHTO_FNC(createNamespace); - PATHTO_FNC(deleteNamespace); - PATHTO_FNC(allNamespaces); - PATHTO_FNC(directCall); - PATHTO_FNC(objectRandom); - PATHTO_FNC(execNextFrame); - PATHTO_FNC(waitAndExecute); - PATHTO_FNC(waitUntilAndExecute); - PATHTO_FNC(compileFinal); - }; - - class Broken { - PATHTO_FNC(actionArgument); - }; - }; -}; diff --git a/addons/common/XEH_PREP.sqf b/addons/common/XEH_PREP.sqf new file mode 100644 index 000000000..488615e5c --- /dev/null +++ b/addons/common/XEH_PREP.sqf @@ -0,0 +1,122 @@ +// Config +PREPMAIN(getConfigEntry); +PREPMAIN(getObjectConfig); +PREPMAIN(getItemConfig); +PREPMAIN(getMuzzles); +PREPMAIN(getWeaponModes); +PREPMAIN(inheritsFrom); +PREPMAIN(getTurret); +PREPMAIN(getNonPresetClass); + +// Entities +PREPMAIN(findEntity); +PREPMAIN(deleteEntity); +PREPMAIN(isAlive); +PREPMAIN(getAlive); +PREPMAIN(getGroup); +PREPMAIN(getSharedGroup); +PREPMAIN(nearPlayer); +PREPMAIN(getArg); +PREPMAIN(createMarker); +PREPMAIN(createTrigger); +PREPMAIN(getGroupIndex); +PREPMAIN(getMagazineIndex); +PREPMAIN(currentMagazineIndex); +PREPMAIN(setCallsign); +PREPMAIN(getActiveFeatureCamera); +PREPMAIN(registerFeatureCamera); + +// Soldiers +PREPMAIN(isPerson); +PREPMAIN(canUseWeapon); +PREPMAIN(selectWeapon); +PREPMAIN(switchPlayer); +PREPMAIN(currentUnit); +PREPMAIN(players); + +// Vehicles +PREPMAIN(getFirer); +PREPMAIN(isTurnedOut); +PREPMAIN(getVolume); +PREPMAIN(vehicleRole); +PREPMAIN(turretPath); +PREPMAIN(turretPathWeapon); +PREPMAIN(viewDir); +PREPMAIN(turretDir); + +// Animations +PREPMAIN(getAnimType); +PREPMAIN(getUnitAnim); +PREPMAIN(getUnitDeathAnim); +PREPMAIN(isUnitGetOutAnim); +PREPMAIN(headDir); +PREPMAIN(modelHeadDir); + +// Inventory +PREPMAIN(addWeapon); +PREPMAIN(addWeaponWithoutItems); +PREPMAIN(addMagazine); +PREPMAIN(addItem); +PREPMAIN(compatibleMagazines); +PREPMAIN(removeWeapon); +PREPMAIN(removeMagazine); +PREPMAIN(removeItem); +PREPMAIN(uniqueUnitItems); +PREPMAIN(weaponComponents); +PREPMAIN(dropWeapon); +PREPMAIN(dropMagazine); +PREPMAIN(dropItem); +PREPMAIN(binocularMagazine); +PREPMAIN(addBinocularMagazine); +PREPMAIN(removeBinocularMagazine); +PREPMAIN(randomizeFacewear); + +// Cargo +PREPMAIN(addWeaponCargo); +PREPMAIN(addMagazineCargo); +PREPMAIN(addItemCargo); +PREPMAIN(addBackpackCargo); +PREPMAIN(removeWeaponCargo); +PREPMAIN(removeMagazineCargo); +PREPMAIN(removeItemCargo); +PREPMAIN(removeBackpackCargo); + +// Map +PREPMAIN(northingReversed); +PREPMAIN(mapGridToPos); +PREPMAIN(mapRelPos); +PREPMAIN(mapDirTo); +PREPMAIN(getTerrainProfile); +PREPMAIN(isTerrainObject); + +// Position +PREPMAIN(getArea); +PREPMAIN(getDistance); +PREPMAIN(getPos); +PREPMAIN(setPos); +PREPMAIN(realHeight); +PREPMAIN(setHeight); +PREPMAIN(randPos); +PREPMAIN(randPosArea); +PREPMAIN(getNearest); +PREPMAIN(getNearestBuilding); + +// Miscellaneous +PREPMAIN(addPerFrameHandler); +PREPMAIN(removePerFrameHandler); +PREPMAIN(createPerFrameHandlerObject); +PREPMAIN(deletePerFrameHandlerObject); +PREPMAIN(addPlayerAction); +PREPMAIN(removePlayerAction); +PREPMAIN(createNamespace); +PREPMAIN(deleteNamespace); +PREPMAIN(allNamespaces); +PREPMAIN(directCall); +PREPMAIN(objectRandom); +PREPMAIN(execNextFrame); +PREPMAIN(waitAndExecute); +PREPMAIN(waitUntilAndExecute); +PREPMAIN(compileFinal); + +// Broken / Legacy +PREPMAIN(actionArgument); diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index b9e762ed3..380462a29 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -6,6 +6,8 @@ LOG(MSG_INIT); ADDON = false; +#include "XEH_PREP.sqf" + CBA_logic = objNull; [QFUNC(log), { diff --git a/addons/common/config.cpp b/addons/common/config.cpp index c5357cda6..b733e0a95 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -16,7 +16,6 @@ class CfgPatches { #include "Cfg3DEN.hpp" #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" #include "CfgVehicles.hpp" #include "CfgLocationTypes.hpp" From 7a6ad43aa605ce5420d2d1a846a74615260b79dc Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:01:39 +0200 Subject: [PATCH 06/33] =?UTF-8?q?=C2=B4diagnostic=20move=20CfgFunctions=20?= =?UTF-8?q?to=20PREPMAIN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/diagnostic/CfgFunctions.hpp | 17 ----------------- addons/diagnostic/XEH_PREP.sqf | 10 ++++++++++ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/addons/diagnostic/CfgFunctions.hpp b/addons/diagnostic/CfgFunctions.hpp index 3a6fa3d83..b6b468bbf 100644 --- a/addons/diagnostic/CfgFunctions.hpp +++ b/addons/diagnostic/CfgFunctions.hpp @@ -1,21 +1,4 @@ -// ----------------------------------------------------------------------------- -// Automatically generated by 'functions_config.rb' -// DO NOT MANUALLY EDIT THIS FILE! ok -// ----------------------------------------------------------------------------- - class CfgFunctions { - class CBA { - class Diagnostic { - PATHTO_FNC(debug); - PATHTO_FNC(error); - PATHTO_FNC(log); - PATHTO_FNC(test); - }; - class ProjectileTracking { - PATHTO_FNC(addUnitTrackProjectiles); - PATHTO_FNC(removeUnitTrackProjectiles); - }; - }; class A3 { class Debug { class isDebugConsoleAllowed { diff --git a/addons/diagnostic/XEH_PREP.sqf b/addons/diagnostic/XEH_PREP.sqf index 94485d195..26a92dfb9 100644 --- a/addons/diagnostic/XEH_PREP.sqf +++ b/addons/diagnostic/XEH_PREP.sqf @@ -1,3 +1,13 @@ +// Diagnostic +PREPMAIN(debug); +PREPMAIN(error); +PREPMAIN(log); +PREPMAIN(test); + +// ProjectileTracking +PREPMAIN(addUnitTrackProjectiles); +PREPMAIN(removeUnitTrackProjectiles); + PREP(projectileTracking_drawProjectilePaths); PREP(projectileTracking_handleFired); PREP(projectileTracking_trackProjectile); From 9c4eec5fcdd27477fe3aa0c42fcb59ce209cb68a Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:02:53 +0200 Subject: [PATCH 07/33] disposable move CfgFunctions to PREPMAIN --- addons/disposable/CfgFunctions.hpp | 7 ------- addons/disposable/XEH_PREP.sqf | 2 ++ addons/disposable/config.cpp | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 addons/disposable/CfgFunctions.hpp diff --git a/addons/disposable/CfgFunctions.hpp b/addons/disposable/CfgFunctions.hpp deleted file mode 100644 index e8b842eda..000000000 --- a/addons/disposable/CfgFunctions.hpp +++ /dev/null @@ -1,7 +0,0 @@ -class CfgFunctions { - class CBA { - class Weapons { - PATHTO_FNC(firedDisposable); - }; - }; -}; diff --git a/addons/disposable/XEH_PREP.sqf b/addons/disposable/XEH_PREP.sqf index 6904997ca..ec9157c02 100644 --- a/addons/disposable/XEH_PREP.sqf +++ b/addons/disposable/XEH_PREP.sqf @@ -1,2 +1,4 @@ +PREPMAIN(firedDisposable), + PREP(replaceMagazineCargo); PREP(changeDisposableLauncherClass); diff --git a/addons/disposable/config.cpp b/addons/disposable/config.cpp index 4f9e69495..e93865da3 100644 --- a/addons/disposable/config.cpp +++ b/addons/disposable/config.cpp @@ -15,6 +15,5 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" #include "CfgDisposableLaunchers.hpp" #include "CfgMagazines.hpp" From cb3656ae427e14b44903c8d36ae6ad4b49274334 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:05:20 +0200 Subject: [PATCH 08/33] events move CfgFunctions to PREPMAIN --- addons/events/CfgFunctions.hpp | 32 ---------------------------- addons/events/XEH_PREP.sqf | 39 ++++++++++++++++++++++++++++++++++ addons/events/XEH_preInit.sqf | 11 ++-------- addons/events/config.cpp | 1 - 4 files changed, 41 insertions(+), 42 deletions(-) delete mode 100644 addons/events/CfgFunctions.hpp create mode 100644 addons/events/XEH_PREP.sqf diff --git a/addons/events/CfgFunctions.hpp b/addons/events/CfgFunctions.hpp deleted file mode 100644 index 8b83e7d7c..000000000 --- a/addons/events/CfgFunctions.hpp +++ /dev/null @@ -1,32 +0,0 @@ -class CfgFunctions { - class CBA { - class Events { - PATHTO_FNC(addBISEventHandler); - PATHTO_FNC(addPlayerEventHandler); - PATHTO_FNC(removePlayerEventHandler); - PATHTO_FNC(addDisplayHandler); - PATHTO_FNC(removeDisplayHandler); - PATHTO_FNC(addKeyHandler); - PATHTO_FNC(addKeyHandlerFromConfig); - PATHTO_FNC(readKeyFromConfig); - PATHTO_FNC(changeKeyHandler); - PATHTO_FNC(removeKeyHandler); - PATHTO_FNC(addEventHandler); - PATHTO_FNC(addEventHandlerArgs); - PATHTO_FNC(removeEventHandler); - PATHTO_FNC(localEvent); - PATHTO_FNC(globalEvent); - PATHTO_FNC(globalEventJIP); - PATHTO_FNC(removeGlobalEventJIP); - PATHTO_FNC(serverEvent); - PATHTO_FNC(remoteEvent); - PATHTO_FNC(targetEvent); - PATHTO_FNC(turretEvent); - PATHTO_FNC(ownerEvent); - PATHTO_FNC(addMarkerEventHandler); - PATHTO_FNC(removeMarkerEventHandler); - PATHTO_FNC(registerChatCommand); - PATHTO_FNC(weaponEvents); - }; - }; -}; diff --git a/addons/events/XEH_PREP.sqf b/addons/events/XEH_PREP.sqf new file mode 100644 index 000000000..c275f0ed4 --- /dev/null +++ b/addons/events/XEH_PREP.sqf @@ -0,0 +1,39 @@ +PREPMAIN(addBISEventHandler); +PREPMAIN(addPlayerEventHandler); +PREPMAIN(removePlayerEventHandler); +PREPMAIN(addDisplayHandler); +PREPMAIN(removeDisplayHandler); +PREPMAIN(addKeyHandler); +PREPMAIN(addKeyHandlerFromConfig); +PREPMAIN(readKeyFromConfig); +PREPMAIN(changeKeyHandler); +PREPMAIN(removeKeyHandler); +PREPMAIN(addEventHandler); +PREPMAIN(addEventHandlerArgs); +PREPMAIN(removeEventHandler); +PREPMAIN(localEvent); +PREPMAIN(globalEvent); +PREPMAIN(globalEventJIP); +PREPMAIN(removeGlobalEventJIP); +PREPMAIN(serverEvent); +PREPMAIN(remoteEvent); +PREPMAIN(targetEvent); +PREPMAIN(turretEvent); +PREPMAIN(ownerEvent); +PREPMAIN(addMarkerEventHandler); +PREPMAIN(removeMarkerEventHandler); +PREPMAIN(registerChatCommand); +PREPMAIN(weaponEvents); + +if (hasInterface) then { + PREP(playerEvent); + + // Key Handlers + PREP(keyHandler); + PREP(keyHandlerDown); + PREP(keyHandlerUp); + PREP(mouseHandlerDown); + PREP(mouseHandlerUp); + PREP(mouseWheelHandler); + PREP(userKeyHandler); +}; diff --git a/addons/events/XEH_preInit.sqf b/addons/events/XEH_preInit.sqf index 456f78e24..75a4b5170 100644 --- a/addons/events/XEH_preInit.sqf +++ b/addons/events/XEH_preInit.sqf @@ -2,6 +2,8 @@ ADDON = false; +#include "XEH_PREP.sqf" + //ClientOwner command is unreliable in saved games //CBA_clientID will hold the correct value for the client's owner (needed for publicVariableClient and remoteExec) CBA_clientID = -1; //Will be -1 until real value recieved from server @@ -33,7 +35,6 @@ if (isServer) then { ADDON = true; if (!hasInterface) exitWith {}; -PREP(playerEvent); GVAR(skipCheckingUserActions) = true; @@ -57,14 +58,6 @@ if (!isNull (uiNamespace getVariable ["CBA_missionDisplay", displayNull])) then }; // Key Handlers -PREP(keyHandler); -PREP(keyHandlerDown); -PREP(keyHandlerUp); -PREP(mouseHandlerDown); -PREP(mouseHandlerUp); -PREP(mouseWheelHandler); -PREP(userKeyHandler); - private _keyHandlers = []; _keyHandlers resize 270; diff --git a/addons/events/config.cpp b/addons/events/config.cpp index fe6fbd100..278a9c0bc 100644 --- a/addons/events/config.cpp +++ b/addons/events/config.cpp @@ -15,7 +15,6 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" class RscDisplayChat { onKeyDown = QUOTE(\ From aefdefc8b67134cc822163ec0eb340804be94aea Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:07:57 +0200 Subject: [PATCH 09/33] hashes move CfgFunctions to PREPMAIN --- addons/hashes/CfgEventHandlers.hpp | 5 +++++ addons/hashes/CfgFunctions.hpp | 21 --------------------- addons/hashes/XEH_PREP.sqf | 15 +++++++++++++++ addons/hashes/XEH_preInit.sqf | 3 +++ addons/hashes/config.cpp | 2 +- 5 files changed, 24 insertions(+), 22 deletions(-) create mode 100644 addons/hashes/CfgEventHandlers.hpp delete mode 100644 addons/hashes/CfgFunctions.hpp create mode 100644 addons/hashes/XEH_PREP.sqf create mode 100644 addons/hashes/XEH_preInit.sqf diff --git a/addons/hashes/CfgEventHandlers.hpp b/addons/hashes/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/hashes/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/hashes/CfgFunctions.hpp b/addons/hashes/CfgFunctions.hpp deleted file mode 100644 index 111fd3c53..000000000 --- a/addons/hashes/CfgFunctions.hpp +++ /dev/null @@ -1,21 +0,0 @@ -class CfgFunctions { - class CBA { - class Hashes { - PATHTO_FNC(hashCreate); - PATHTO_FNC(hashEachPair); - PATHTO_FNC(hashFilter); - PATHTO_FNC(hashKeys); - PATHTO_FNC(hashGet); - PATHTO_FNC(hashHasKey); - PATHTO_FNC(hashRem); - PATHTO_FNC(hashSet); - PATHTO_FNC(hashSize); - PATHTO_FNC(isHash); - PATHTO_FNC(parseYAML); - PATHTO_FNC(serializeNamespace); - PATHTO_FNC(deserializeNamespace); - PATHTO_FNC(encodeJSON); - PATHTO_FNC(parseJSON); - }; - }; -}; diff --git a/addons/hashes/XEH_PREP.sqf b/addons/hashes/XEH_PREP.sqf new file mode 100644 index 000000000..5bf5cbb7f --- /dev/null +++ b/addons/hashes/XEH_PREP.sqf @@ -0,0 +1,15 @@ +PREPMAIN(hashCreate); +PREPMAIN(hashEachPair); +PREPMAIN(hashFilter); +PREPMAIN(hashKeys); +PREPMAIN(hashGet); +PREPMAIN(hashHasKey); +PREPMAIN(hashRem); +PREPMAIN(hashSet); +PREPMAIN(hashSize); +PREPMAIN(isHash); +PREPMAIN(parseYAML); +PREPMAIN(serializeNamespace); +PREPMAIN(deserializeNamespace); +PREPMAIN(encodeJSON); +PREPMAIN(parseJSON); diff --git a/addons/hashes/XEH_preInit.sqf b/addons/hashes/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/hashes/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/hashes/config.cpp b/addons/hashes/config.cpp index 9b733422f..7ddac7059 100644 --- a/addons/hashes/config.cpp +++ b/addons/hashes/config.cpp @@ -14,4 +14,4 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" From 31b9ed15f0644a26d6203e4d3304b097ec76c14d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:11:37 +0200 Subject: [PATCH 10/33] jr move CfgFunctions to PREPMAIN --- addons/jr/CfgEventHandlers.hpp | 5 +++++ addons/jr/CfgFunctions.hpp | 8 -------- addons/jr/XEH_PREP.sqf | 1 + addons/jr/XEH_preInit.sqf | 3 +++ addons/jr/config.cpp | 4 +++- 5 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 addons/jr/CfgEventHandlers.hpp create mode 100644 addons/jr/XEH_PREP.sqf create mode 100644 addons/jr/XEH_preInit.sqf diff --git a/addons/jr/CfgEventHandlers.hpp b/addons/jr/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/jr/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/jr/CfgFunctions.hpp b/addons/jr/CfgFunctions.hpp index a7a2f5d0b..b70ccc32a 100644 --- a/addons/jr/CfgFunctions.hpp +++ b/addons/jr/CfgFunctions.hpp @@ -7,12 +7,4 @@ class CfgFunctions { }; }; }; - class CBA { - class Inventory { - class compatibleItems { - description = "Get list of compatible attachments for a weapon"; - file = QPATHTOF(fnc_compatibleItems.sqf); - }; - }; - }; }; diff --git a/addons/jr/XEH_PREP.sqf b/addons/jr/XEH_PREP.sqf new file mode 100644 index 000000000..7337617a4 --- /dev/null +++ b/addons/jr/XEH_PREP.sqf @@ -0,0 +1 @@ +PREPMAIN(compatibleItems); diff --git a/addons/jr/XEH_preInit.sqf b/addons/jr/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/jr/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/jr/config.cpp b/addons/jr/config.cpp index 11c2e00ed..bba6ddbdb 100644 --- a/addons/jr/config.cpp +++ b/addons/jr/config.cpp @@ -23,6 +23,8 @@ class CfgPatches { }; }; +#include "CfgEventHandlers.hpp" +#include "CfgFunctions.hpp" + #include "jr_classes.hpp" #include "CfgWeapons.hpp" -#include "CfgFunctions.hpp" From 4bb8a7a45a50f9084b86813299ed6d1d54379b92 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:13:50 +0200 Subject: [PATCH 11/33] keybinding move CfgFunctions to PREPMAIN --- addons/keybinding/CfgFunctions.hpp | 13 ------------- addons/keybinding/XEH_PREP.sqf | 18 ++++++++++++++---- addons/keybinding/XEH_preInit.sqf | 4 ++-- addons/keybinding/config.cpp | 1 - 4 files changed, 16 insertions(+), 20 deletions(-) delete mode 100644 addons/keybinding/CfgFunctions.hpp diff --git a/addons/keybinding/CfgFunctions.hpp b/addons/keybinding/CfgFunctions.hpp deleted file mode 100644 index 5723bc8f3..000000000 --- a/addons/keybinding/CfgFunctions.hpp +++ /dev/null @@ -1,13 +0,0 @@ -class CfgFunctions { - class CBA { - class Keybinding { - PATHTO_FNC(getKeybind); - PATHTO_FNC(registerKeybind); - PATHTO_FNC(addKeybind); - PATHTO_FNC(registerKeybindToFleximenu); - PATHTO_FNC(addKeybindToFleximenu); - PATHTO_FNC(registerKeybindModPrettyName); - PATHTO_FNC(localizeKey); - }; - }; -}; diff --git a/addons/keybinding/XEH_PREP.sqf b/addons/keybinding/XEH_PREP.sqf index 515d77e75..97c5a6f8e 100644 --- a/addons/keybinding/XEH_PREP.sqf +++ b/addons/keybinding/XEH_PREP.sqf @@ -1,5 +1,15 @@ -PREP(initDisplayConfigure); +PREPMAIN(getKeybind); +PREPMAIN(registerKeybind); +PREPMAIN(addKeybind); +PREPMAIN(registerKeybindToFleximenu); +PREPMAIN(addKeybindToFleximenu); +PREPMAIN(registerKeybindModPrettyName); +PREPMAIN(localizeKey); -PREP(gui_configure); -PREP(gui_update); -PREP(gui_editKey); +if (hasInterface) then { + PREP(initDisplayConfigure); + + PREP(gui_configure); + PREP(gui_update); + PREP(gui_editKey); +}; diff --git a/addons/keybinding/XEH_preInit.sqf b/addons/keybinding/XEH_preInit.sqf index 0b060d509..2321fbfb1 100644 --- a/addons/keybinding/XEH_preInit.sqf +++ b/addons/keybinding/XEH_preInit.sqf @@ -1,10 +1,10 @@ #include "script_component.hpp" SCRIPT(XEH_preInit); -if (!hasInterface) exitWith {}; - #include "XEH_PREP.sqf" +if (!hasInterface) exitWith {}; + ADDON = false; // Load DIK to string conversion table. diff --git a/addons/keybinding/config.cpp b/addons/keybinding/config.cpp index f642a097f..0cbe5ef41 100644 --- a/addons/keybinding/config.cpp +++ b/addons/keybinding/config.cpp @@ -14,5 +14,4 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" #include "gui.hpp" From 02a54a2e45840ad217631b4d46e02027298b2b1d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:15:31 +0200 Subject: [PATCH 12/33] modules move CfgFunctions to PREPMAIN --- addons/modules/CfgEventHandlers.hpp | 5 +++++ addons/modules/CfgFunctions.hpp | 10 ---------- addons/modules/XEH_PREP.sqf | 4 ++++ addons/modules/XEH_preInit.sqf | 3 +++ addons/modules/config.cpp | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 addons/modules/CfgEventHandlers.hpp delete mode 100644 addons/modules/CfgFunctions.hpp create mode 100644 addons/modules/XEH_PREP.sqf create mode 100644 addons/modules/XEH_preInit.sqf diff --git a/addons/modules/CfgEventHandlers.hpp b/addons/modules/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/modules/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/modules/CfgFunctions.hpp b/addons/modules/CfgFunctions.hpp deleted file mode 100644 index 3070f99f7..000000000 --- a/addons/modules/CfgFunctions.hpp +++ /dev/null @@ -1,10 +0,0 @@ -class CfgFunctions { - class CBA { - class Modules { - PATHTO_FNC(getPosFromString); - PATHTO_FNC(moduleAttack); - PATHTO_FNC(moduleDefend); - PATHTO_FNC(modulePatrol); - }; - }; -}; diff --git a/addons/modules/XEH_PREP.sqf b/addons/modules/XEH_PREP.sqf new file mode 100644 index 000000000..3f55914db --- /dev/null +++ b/addons/modules/XEH_PREP.sqf @@ -0,0 +1,4 @@ +PREPMAIN(getPosFromString); +PREPMAIN(moduleAttack); +PREPMAIN(moduleDefend); +PREPMAIN(modulePatrol); diff --git a/addons/modules/XEH_preInit.sqf b/addons/modules/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/modules/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index 3b3b2cd36..70e752f88 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -14,6 +14,6 @@ class CfgPatches { }; }; +#include "CfgEventHandlers.hpp" #include "CfgFactionClasses.hpp" #include "CfgVehicles.hpp" -#include "CfgFunctions.hpp" From f807932710e00de622e7a4bcfcbeb7d8ce6eff6e Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:16:24 +0200 Subject: [PATCH 13/33] music move CfgFunctions to PREPMAIN --- addons/music/CfgEventHandlers.hpp | 5 +++++ addons/music/CfgFunctions.hpp | 14 -------------- addons/music/XEH_PREP.sqf | 8 ++++++++ addons/music/XEH_preInit.sqf | 3 +++ addons/music/config.cpp | 2 +- 5 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 addons/music/CfgEventHandlers.hpp delete mode 100644 addons/music/CfgFunctions.hpp create mode 100644 addons/music/XEH_PREP.sqf create mode 100644 addons/music/XEH_preInit.sqf diff --git a/addons/music/CfgEventHandlers.hpp b/addons/music/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/music/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/music/CfgFunctions.hpp b/addons/music/CfgFunctions.hpp deleted file mode 100644 index a1f349783..000000000 --- a/addons/music/CfgFunctions.hpp +++ /dev/null @@ -1,14 +0,0 @@ -class CfgFunctions { - class CBA { - class Music { - PATHTO_FNC(getMusicPath); - PATHTO_FNC(getMusicData); - PATHTO_FNC(findMusic); - PATHTO_FNC(compileMusic); - PATHTO_FNC(getMusicPlaying); - PATHTO_FNC(isMusicPlaying); - PATHTO_FNC(playMusic); - PATHTO_FNC(stopMusic); - }; - }; -}; diff --git a/addons/music/XEH_PREP.sqf b/addons/music/XEH_PREP.sqf new file mode 100644 index 000000000..a4082ee38 --- /dev/null +++ b/addons/music/XEH_PREP.sqf @@ -0,0 +1,8 @@ +PREPMAIN(getMusicPath); +PREPMAIN(getMusicData); +PREPMAIN(findMusic); +PREPMAIN(compileMusic); +PREPMAIN(getMusicPlaying); +PREPMAIN(isMusicPlaying); +PREPMAIN(playMusic); +PREPMAIN(stopMusic); diff --git a/addons/music/XEH_preInit.sqf b/addons/music/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/music/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/music/config.cpp b/addons/music/config.cpp index c4fd98c0b..181829ce5 100644 --- a/addons/music/config.cpp +++ b/addons/music/config.cpp @@ -14,5 +14,5 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" #include "CfgMusic.hpp" From 2346c6a4b94ad61a52bd26bccad19b703a6d5bea Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:17:41 +0200 Subject: [PATCH 14/33] network move CfgFunctions to PREPMAIN --- addons/network/CfgEventHandlers.hpp | 5 +++++ addons/network/CfgFunctions.hpp | 11 ----------- addons/network/XEH_PREP.sqf | 5 +++++ addons/network/XEH_preInit.sqf | 3 +++ addons/network/config.cpp | 2 +- 5 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 addons/network/CfgEventHandlers.hpp delete mode 100644 addons/network/CfgFunctions.hpp create mode 100644 addons/network/XEH_PREP.sqf create mode 100644 addons/network/XEH_preInit.sqf diff --git a/addons/network/CfgEventHandlers.hpp b/addons/network/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/network/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/network/CfgFunctions.hpp b/addons/network/CfgFunctions.hpp deleted file mode 100644 index 6c500858c..000000000 --- a/addons/network/CfgFunctions.hpp +++ /dev/null @@ -1,11 +0,0 @@ -class CfgFunctions { - class CBA { - class Network { - PATHTO_FNC(globalExecute); - PATHTO_FNC(globalSay); - PATHTO_FNC(globalSay3d); - PATHTO_FNC(publicVariable); - PATHTO_FNC(setVarNet); - }; - }; -}; diff --git a/addons/network/XEH_PREP.sqf b/addons/network/XEH_PREP.sqf new file mode 100644 index 000000000..c768afa1b --- /dev/null +++ b/addons/network/XEH_PREP.sqf @@ -0,0 +1,5 @@ +PREPMAIN(globalExecute); +PREPMAIN(globalSay); +PREPMAIN(globalSay3d); +PREPMAIN(publicVariable); +PREPMAIN(setVarNet); diff --git a/addons/network/XEH_preInit.sqf b/addons/network/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/network/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/network/config.cpp b/addons/network/config.cpp index f971555e9..3ca451e95 100644 --- a/addons/network/config.cpp +++ b/addons/network/config.cpp @@ -14,4 +14,4 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" From 12b0b59be44b2c2ac0f6306e23c7472687ac683d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 19:18:40 +0200 Subject: [PATCH 15/33] settings move CfgFunctions to PREPMAIN --- addons/settings/CfgFunctions.hpp | 7 ------- addons/settings/XEH_PREP.sqf | 2 ++ addons/settings/config.cpp | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 addons/settings/CfgFunctions.hpp diff --git a/addons/settings/CfgFunctions.hpp b/addons/settings/CfgFunctions.hpp deleted file mode 100644 index 5bab9f6b1..000000000 --- a/addons/settings/CfgFunctions.hpp +++ /dev/null @@ -1,7 +0,0 @@ -class CfgFunctions { - class CBA { - class Settings { - PATHTO_FNC(addSetting); - }; - }; -}; diff --git a/addons/settings/XEH_PREP.sqf b/addons/settings/XEH_PREP.sqf index 88ba4861d..5374de34d 100644 --- a/addons/settings/XEH_PREP.sqf +++ b/addons/settings/XEH_PREP.sqf @@ -1,3 +1,5 @@ +PREPMAIN(addSetting); + PREP(init); PREP(set); PREP(get); diff --git a/addons/settings/config.cpp b/addons/settings/config.cpp index 99b5d0b58..c307c6ff0 100644 --- a/addons/settings/config.cpp +++ b/addons/settings/config.cpp @@ -15,7 +15,6 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" #include "Cfg3DEN.hpp" #include "Display3DEN.hpp" #include "gui.hpp" From 7ad08118c302b06e3da0187488a80366160fe870 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 21:25:20 +0200 Subject: [PATCH 16/33] fix indentation --- addons/events/XEH_PREP.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/events/XEH_PREP.sqf b/addons/events/XEH_PREP.sqf index c275f0ed4..2789430bf 100644 --- a/addons/events/XEH_PREP.sqf +++ b/addons/events/XEH_PREP.sqf @@ -26,14 +26,14 @@ PREPMAIN(registerChatCommand); PREPMAIN(weaponEvents); if (hasInterface) then { - PREP(playerEvent); + PREP(playerEvent); - // Key Handlers - PREP(keyHandler); - PREP(keyHandlerDown); - PREP(keyHandlerUp); - PREP(mouseHandlerDown); - PREP(mouseHandlerUp); - PREP(mouseWheelHandler); - PREP(userKeyHandler); + // Key Handlers + PREP(keyHandler); + PREP(keyHandlerDown); + PREP(keyHandlerUp); + PREP(mouseHandlerDown); + PREP(mouseHandlerUp); + PREP(mouseWheelHandler); + PREP(userKeyHandler); }; From c4a28048dd0b94b4aeca7563a83a3522e7b55b5e Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 21:31:07 +0200 Subject: [PATCH 17/33] strings move CfgFunctions to PREPMAIN --- addons/strings/CfgEventHandlers.hpp | 5 +++++ addons/strings/CfgFunctions.hpp | 22 ---------------------- addons/strings/XEH_PREP.sqf | 16 ++++++++++++++++ addons/strings/XEH_preInit.sqf | 3 +++ addons/strings/config.cpp | 2 +- 5 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 addons/strings/CfgEventHandlers.hpp delete mode 100644 addons/strings/CfgFunctions.hpp create mode 100644 addons/strings/XEH_PREP.sqf create mode 100644 addons/strings/XEH_preInit.sqf diff --git a/addons/strings/CfgEventHandlers.hpp b/addons/strings/CfgEventHandlers.hpp new file mode 100644 index 000000000..6b32ee79e --- /dev/null +++ b/addons/strings/CfgEventHandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; diff --git a/addons/strings/CfgFunctions.hpp b/addons/strings/CfgFunctions.hpp deleted file mode 100644 index 5afd84a60..000000000 --- a/addons/strings/CfgFunctions.hpp +++ /dev/null @@ -1,22 +0,0 @@ -class CfgFunctions { - class CBA { - class Strings { - PATHTO_FNC(capitalize); - PATHTO_FNC(substring); - PATHTO_FNC(substr); - PATHTO_FNC(find); - PATHTO_FNC(floatToString); - PATHTO_FNC(formatElapsedTime); - PATHTO_FNC(formatNumber); - PATHTO_FNC(leftTrim); - PATHTO_FNC(removeWhitespace); - PATHTO_FNC(replace); - PATHTO_FNC(rightTrim); - PATHTO_FNC(split); - PATHTO_FNC(strLen); - PATHTO_FNC(trim); - PATHTO_FNC(sanitizeHTML); - PATHTO_FNC(decodeURL); - }; - }; -}; diff --git a/addons/strings/XEH_PREP.sqf b/addons/strings/XEH_PREP.sqf new file mode 100644 index 000000000..2e9ae17dc --- /dev/null +++ b/addons/strings/XEH_PREP.sqf @@ -0,0 +1,16 @@ +PREPMAIN(capitalize); +PREPMAIN(substring); +PREPMAIN(substr); +PREPMAIN(find); +PREPMAIN(floatToString); +PREPMAIN(formatElapsedTime); +PREPMAIN(formatNumber); +PREPMAIN(leftTrim); +PREPMAIN(removeWhitespace); +PREPMAIN(replace); +PREPMAIN(rightTrim); +PREPMAIN(split); +PREPMAIN(strLen); +PREPMAIN(trim); +PREPMAIN(sanitizeHTML); +PREPMAIN(decodeURL); diff --git a/addons/strings/XEH_preInit.sqf b/addons/strings/XEH_preInit.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/strings/XEH_preInit.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/strings/config.cpp b/addons/strings/config.cpp index 4aca9c1b1..ad99befdb 100644 --- a/addons/strings/config.cpp +++ b/addons/strings/config.cpp @@ -14,4 +14,4 @@ class CfgPatches { }; }; -#include "CfgFunctions.hpp" +#include "CfgEventHandlers.hpp" From d2b3e79a65b3e414fba66f50f42ee18924694272 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 21:37:02 +0200 Subject: [PATCH 18/33] ui move CfgFunctions to PREPMAIN --- addons/ui/CfgFunctions.hpp | 12 ------------ addons/ui/XEH_PREP.sqf | 11 +++++++++++ addons/ui/XEH_preInit.sqf | 1 + 3 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 addons/ui/XEH_PREP.sqf diff --git a/addons/ui/CfgFunctions.hpp b/addons/ui/CfgFunctions.hpp index db65a40cd..8bbde6ef1 100644 --- a/addons/ui/CfgFunctions.hpp +++ b/addons/ui/CfgFunctions.hpp @@ -43,18 +43,6 @@ class CfgFunctions { class flexiMenu_execute { file = QUOTE(PATHTOF(flexiMenu\fnc_execute.sqf)); }; - - PATHTO_FNC(addPauseMenuOption); - PATHTO_FNC(progressBar); - PATHTO_FNC(getFov); - PATHTO_FNC(getAspectRatio); - PATHTO_FNC(getUISize); - PATHTO_FNC(notify); - }; - - class ItemContextMenu { - PATHTO_FNC(addItemContextMenuOption); - PATHTO_FNC(consumeItem); }; }; }; diff --git a/addons/ui/XEH_PREP.sqf b/addons/ui/XEH_PREP.sqf new file mode 100644 index 000000000..198ee537e --- /dev/null +++ b/addons/ui/XEH_PREP.sqf @@ -0,0 +1,11 @@ +// UI +PREPMAIN(addPauseMenuOption); +PREPMAIN(progressBar); +PREPMAIN(getFov); +PREPMAIN(getAspectRatio); +PREPMAIN(getUISize); +PREPMAIN(notify); + +// ItemContextMenu +PREPMAIN(addItemContextMenuOption); +PREPMAIN(consumeItem); diff --git a/addons/ui/XEH_preInit.sqf b/addons/ui/XEH_preInit.sqf index cee1d51c1..decfb1dc5 100644 --- a/addons/ui/XEH_preInit.sqf +++ b/addons/ui/XEH_preInit.sqf @@ -2,6 +2,7 @@ ADDON = false; +#include "XEH_PREP.sqf" #include "initSettings.sqf" if (hasInterface) then { From 23a567e1e7810bdd84269a060d5a844fa3920dcf Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 21:57:24 +0200 Subject: [PATCH 19/33] xeh move CfgFunctions to PREPMAIN --- addons/xeh/CfgEventHandlers.hpp | 6 +++++- addons/xeh/CfgFunctions.hpp | 10 ---------- addons/xeh/XEH_PREP.sqf | 9 +++++++++ addons/xeh/XEH_preInit.sqf | 7 +++++++ 4 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 addons/xeh/XEH_PREP.sqf create mode 100644 addons/xeh/XEH_preInit.sqf diff --git a/addons/xeh/CfgEventHandlers.hpp b/addons/xeh/CfgEventHandlers.hpp index 4dbeb4ce8..d687fff13 100644 --- a/addons/xeh/CfgEventHandlers.hpp +++ b/addons/xeh/CfgEventHandlers.hpp @@ -14,7 +14,11 @@ class Extended_PreStart_EventHandlers {}; // Class for "pre-init", run-once event handlers. Code in here runs before any // Extended_Init_Eventhandlers code. -class Extended_PreInit_EventHandlers {}; +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; // The PostInit handlers also run once, but after all the extended init EH:s // have run and after all mission.sqm "init lines" have been processed. diff --git a/addons/xeh/CfgFunctions.hpp b/addons/xeh/CfgFunctions.hpp index 041f27a54..905190c25 100644 --- a/addons/xeh/CfgFunctions.hpp +++ b/addons/xeh/CfgFunctions.hpp @@ -1,16 +1,6 @@ class CfgFunctions { class CBA { class XEH { - PATHTO_FNC(isScheduled); - PATHTO_FNC(isRecompileEnabled); - PATHTO_FNC(addClassEventHandler); - PATHTO_FNC(init); - PATHTO_FNC(initEvents); - PATHTO_FNC(supportMonitor); - PATHTO_FNC(compileEventHandlers); - PATHTO_FNC(compileFunction); - PATHTO_FNC(startFallbackLoop); - class preStart { preStart = 1; file = PATHTOF(fnc_preStart.sqf); diff --git a/addons/xeh/XEH_PREP.sqf b/addons/xeh/XEH_PREP.sqf new file mode 100644 index 000000000..d96290301 --- /dev/null +++ b/addons/xeh/XEH_PREP.sqf @@ -0,0 +1,9 @@ +PREPMAIN(isScheduled); +PREPMAIN(isRecompileEnabled); +PREPMAIN(addClassEventHandler); +PREPMAIN(init); +PREPMAIN(initEvents); +PREPMAIN(supportMonitor); +PREPMAIN(compileEventHandlers); +PREPMAIN(compileFunction); +PREPMAIN(startFallbackLoop); diff --git a/addons/xeh/XEH_preInit.sqf b/addons/xeh/XEH_preInit.sqf new file mode 100644 index 000000000..67e2e4d72 --- /dev/null +++ b/addons/xeh/XEH_preInit.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +ADDON = false; + +#include "XEH_PREP.sqf" + +ADDON = true; From b2f57064c702c724523890527347f662edd4abaf Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 22:01:44 +0200 Subject: [PATCH 20/33] vectors move CfgFunctions to PREPMAIN --- addons/vectors/CfgFunctions.hpp | 28 ---------------------------- addons/vectors/XEH_PREP.sqf | 21 +++++++++++++++++++++ addons/vectors/XEH_preInit.sqf | 2 ++ addons/vectors/config.cpp | 1 - 4 files changed, 23 insertions(+), 29 deletions(-) delete mode 100644 addons/vectors/CfgFunctions.hpp create mode 100644 addons/vectors/XEH_PREP.sqf diff --git a/addons/vectors/CfgFunctions.hpp b/addons/vectors/CfgFunctions.hpp deleted file mode 100644 index 68eacff7f..000000000 --- a/addons/vectors/CfgFunctions.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -class CfgFunctions { - class CBA { - class Vectors { - PATHTO_FNC(matrixProduct3D); - PATHTO_FNC(matrixTranspose); - PATHTO_FNC(polar2vect); - PATHTO_FNC(scaleVect); - PATHTO_FNC(scaleVectTo); - PATHTO_FNC(simplifyAngle); - PATHTO_FNC(simplifyAngle180); - PATHTO_FNC(vect2polar); - PATHTO_FNC(vectAdd); - PATHTO_FNC(vectCross); - PATHTO_FNC(vectCross2D); - PATHTO_FNC(vectDir); - PATHTO_FNC(vectDot); - PATHTO_FNC(vectElev); - PATHTO_FNC(vectMagn); - PATHTO_FNC(vectMagn2D); - PATHTO_FNC(vectMap3D); - PATHTO_FNC(vectRotate2D); - PATHTO_FNC(vectRotate3D); - PATHTO_FNC(vectSubtract); - PATHTO_FNC(randomVector3D); - }; - }; -}; diff --git a/addons/vectors/XEH_PREP.sqf b/addons/vectors/XEH_PREP.sqf new file mode 100644 index 000000000..5e8843514 --- /dev/null +++ b/addons/vectors/XEH_PREP.sqf @@ -0,0 +1,21 @@ +PREPMAIN(matrixProduct3D); +PREPMAIN(matrixTranspose); +PREPMAIN(polar2vect); +PREPMAIN(scaleVect); +PREPMAIN(scaleVectTo); +PREPMAIN(simplifyAngle); +PREPMAIN(simplifyAngle180); +PREPMAIN(vect2polar); +PREPMAIN(vectAdd); +PREPMAIN(vectCross); +PREPMAIN(vectCross2D); +PREPMAIN(vectDir); +PREPMAIN(vectDot); +PREPMAIN(vectElev); +PREPMAIN(vectMagn); +PREPMAIN(vectMagn2D); +PREPMAIN(vectMap3D); +PREPMAIN(vectRotate2D); +PREPMAIN(vectRotate3D); +PREPMAIN(vectSubtract); +PREPMAIN(randomVector3D); diff --git a/addons/vectors/XEH_preInit.sqf b/addons/vectors/XEH_preInit.sqf index 0ec9a743c..ce0b5205f 100644 --- a/addons/vectors/XEH_preInit.sqf +++ b/addons/vectors/XEH_preInit.sqf @@ -3,6 +3,8 @@ SCRIPT(XEH_preInit); ADDON = false; +#include "XEH_PREP.sqf" + // Since the following causes RPT spam of "Attempting to Override, we are no longer supporting this method of deprication code. -VM // TODO: Update the existing CBA_vect functions to contain the same code as the their BIS_fnc_ equivalents. -VM // DEPRECATE_SYS(DOUBLES(PREFIX,fnc_vectSubtract),BIS_fnc_vectorDiff); diff --git a/addons/vectors/config.cpp b/addons/vectors/config.cpp index 82ae5e7c3..45306460d 100644 --- a/addons/vectors/config.cpp +++ b/addons/vectors/config.cpp @@ -15,4 +15,3 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" -#include "CfgFunctions.hpp" From 8bc8307bdc2c1d2805329c5c18d0eeac9cae6ba7 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 22:27:53 +0200 Subject: [PATCH 21/33] PREP in preStart --- addons/accessory/XEH_preInit.sqf | 69 ++++++++++++++++------------- addons/ai/CfgEventHandlers.hpp | 6 +++ addons/ai/XEH_preInit.sqf | 4 ++ addons/ai/XEH_preStart.sqf | 3 ++ addons/arrays/CfgEventHandlers.hpp | 6 +++ addons/arrays/XEH_preInit.sqf | 4 ++ addons/arrays/XEH_preStart.sqf | 3 ++ addons/common/XEH_postInit.sqf | 2 - addons/common/XEH_preClientInit.sqf | 2 - addons/common/XEH_preInit.sqf | 3 -- addons/common/XEH_preStart.sqf | 2 + addons/diagnostic/XEH_preInit.sqf | 3 -- addons/events/XEH_preStart.sqf | 11 +---- addons/hashes/CfgEventHandlers.hpp | 6 +++ addons/hashes/XEH_preInit.sqf | 4 ++ addons/hashes/XEH_preStart.sqf | 3 ++ addons/jr/CfgEventHandlers.hpp | 6 +++ addons/jr/XEH_preInit.sqf | 4 ++ addons/jr/XEH_preStart.sqf | 3 ++ addons/keybinding/XEH_preInit.sqf | 33 +++++++------- addons/keybinding/XEH_preStart.sqf | 4 +- addons/modules/CfgEventHandlers.hpp | 6 +++ addons/modules/XEH_preInit.sqf | 4 ++ addons/modules/XEH_preStart.sqf | 3 ++ addons/music/CfgEventHandlers.hpp | 6 +++ addons/music/XEH_preInit.sqf | 4 ++ addons/music/XEH_preStart.sqf | 3 ++ addons/network/CfgEventHandlers.hpp | 6 +++ addons/network/XEH_preInit.sqf | 4 ++ addons/network/XEH_preStart.sqf | 3 ++ addons/strings/CfgEventHandlers.hpp | 6 +++ addons/strings/XEH_preInit.sqf | 4 ++ addons/strings/XEH_preStart.sqf | 3 ++ addons/ui/CfgFunctions.hpp | 2 +- addons/ui/XEH_preStart.sqf | 30 +++++++------ addons/vectors/CfgEventHandlers.hpp | 6 +++ addons/vectors/XEH_preInit.sqf | 1 - addons/vectors/XEH_preStart.sqf | 3 ++ addons/versioning/XEH_PREP.sqf | 1 + addons/versioning/XEH_preInit.sqf | 13 +++--- addons/versioning/XEH_preStart.sqf | 2 +- addons/xeh/CfgEventHandlers.hpp | 6 ++- addons/xeh/XEH_preStart.sqf | 3 ++ 43 files changed, 204 insertions(+), 96 deletions(-) create mode 100644 addons/ai/XEH_preStart.sqf create mode 100644 addons/arrays/XEH_preStart.sqf create mode 100644 addons/hashes/XEH_preStart.sqf create mode 100644 addons/jr/XEH_preStart.sqf create mode 100644 addons/modules/XEH_preStart.sqf create mode 100644 addons/music/XEH_preStart.sqf create mode 100644 addons/network/XEH_preStart.sqf create mode 100644 addons/strings/XEH_preStart.sqf create mode 100644 addons/vectors/XEH_preStart.sqf create mode 100644 addons/versioning/XEH_PREP.sqf create mode 100644 addons/xeh/XEH_preStart.sqf diff --git a/addons/accessory/XEH_preInit.sqf b/addons/accessory/XEH_preInit.sqf index 2b5a2a733..ea6a3b307 100644 --- a/addons/accessory/XEH_preInit.sqf +++ b/addons/accessory/XEH_preInit.sqf @@ -1,39 +1,44 @@ #include "script_component.hpp" -#include "XEH_PREP.sqf" - -if (!hasInterface) exitWith {}; - -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { - [1, "next"] call FUNC(switchAttachment) // return -}, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; +ADDON = false; -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { - [1, "prev"] call FUNC(switchAttachment) // return -}, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; +#include "XEH_PREP.sqf" -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { - [2, "next"] call FUNC(switchAttachment) // return -}, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; +if (hasInterface) then { + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_R", [LSTRING(railNext), LSTRING(railNext_tooltip)], { + [1, "next"] call FUNC(switchAttachment) // return + }, {}, [DIK_L, [false, true, false]]] call CBA_fnc_addKeybind; -[ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { - [2, "prev"] call FUNC(switchAttachment) // return -}, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_R", [LSTRING(railPrev), LSTRING(railPrev_tooltip)], { + [1, "prev"] call FUNC(switchAttachment) // return + }, {}, [DIK_L, [true, false, false]]] call CBA_fnc_addKeybind; -[ - "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { - [1, "next"] call FUNC(switchAttachment) // return - } -] call CBA_fnc_addItemContextMenuOption; - -[ - "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { - params ["", "", "_item"]; - count (_item call CBA_fnc_switchableAttachments) > 1 // return - }, { + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemNextClass_O", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], { [2, "next"] call FUNC(switchAttachment) // return - } -] call CBA_fnc_addItemContextMenuOption; + }, {}, [DIK_SUBTRACT, [false, true, false]]] call CBA_fnc_addKeybind; + + [ELSTRING(common,WeaponsCategory), "MRT_SwitchItemPrevClass_O", [LSTRING(opticPrev), LSTRING(opticPrev_tooltip)], { + [2, "prev"] call FUNC(switchAttachment) // return + }, {}, [DIK_SUBTRACT, [true, false, false]]] call CBA_fnc_addKeybind; + + [ + "##AccessoryPointer", "ALL", [LSTRING(railNext), LSTRING(railNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { + [1, "next"] call FUNC(switchAttachment) // return + } + ] call CBA_fnc_addItemContextMenuOption; + + [ + "##AccessorySights", "ALL", [LSTRING(opticNext), LSTRING(opticNext_tooltip)], nil, nil, { + params ["", "", "_item"]; + count (_item call CBA_fnc_switchableAttachments) > 1 // return + }, { + [2, "next"] call FUNC(switchAttachment) // return + } + ] call CBA_fnc_addItemContextMenuOption; +}; + + +ADDON = true; diff --git a/addons/ai/CfgEventHandlers.hpp b/addons/ai/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/ai/CfgEventHandlers.hpp +++ b/addons/ai/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/ai/XEH_preInit.sqf b/addons/ai/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/ai/XEH_preInit.sqf +++ b/addons/ai/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/ai/XEH_preStart.sqf b/addons/ai/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/ai/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/arrays/CfgEventHandlers.hpp b/addons/arrays/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/arrays/CfgEventHandlers.hpp +++ b/addons/arrays/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/arrays/XEH_preInit.sqf b/addons/arrays/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/arrays/XEH_preInit.sqf +++ b/addons/arrays/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/arrays/XEH_preStart.sqf b/addons/arrays/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/arrays/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index ac24d3ce8..5fd53927c 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -4,8 +4,6 @@ //Install PFEH: addMissionEventHandler ["EachFrame", {call FUNC(onFrame)}]; -LOG(MSG_INIT); - // NOTE: Due to the way the BIS functions initializations work, and the requirement of BIS_functions_mainscope to be a unit (in a group) // the logic is created locally on MP dedicated client, to still allow this early, called precompilation of the functions. // But initialization doesn't officially finish until the official (server created / mission.sqm included) logic is available. diff --git a/addons/common/XEH_preClientInit.sqf b/addons/common/XEH_preClientInit.sqf index d78ed7c3a..bde141ab0 100644 --- a/addons/common/XEH_preClientInit.sqf +++ b/addons/common/XEH_preClientInit.sqf @@ -1,7 +1,5 @@ #include "script_component.hpp" -LOG(MSG_INIT); - if (hasInterface) then { // ArmA - actionmonitor.sqf v1.0 Original by BN880, converted by Sickboy (sb_at_dev-heaven.net), 6th Sense - Share the Spirit GVAR(actionList) = [] call CBA_fnc_hashCreate; diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index 380462a29..3041a3b8e 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -1,8 +1,5 @@ //#define DEBUG_MODE_FULL #include "script_component.hpp" -SCRIPT(XEH_preInit); - -LOG(MSG_INIT); ADDON = false; diff --git a/addons/common/XEH_preStart.sqf b/addons/common/XEH_preStart.sqf index bd17e0236..3af139a98 100644 --- a/addons/common/XEH_preStart.sqf +++ b/addons/common/XEH_preStart.sqf @@ -1,5 +1,7 @@ #include "script_component.hpp" +#include "XEH_PREP.sqf" + //See usage in XEH_preInit private _cfgPatches = configFile >> "CfgPatches"; private _allComponents = "true" configClasses _cfgPatches apply {configName _x}; diff --git a/addons/diagnostic/XEH_preInit.sqf b/addons/diagnostic/XEH_preInit.sqf index 56401bb0e..89e12361d 100644 --- a/addons/diagnostic/XEH_preInit.sqf +++ b/addons/diagnostic/XEH_preInit.sqf @@ -1,7 +1,4 @@ #include "script_component.hpp" -SCRIPT(XEH_preInit); - -LOG(MSG_INIT); ADDON = false; diff --git a/addons/events/XEH_preStart.sqf b/addons/events/XEH_preStart.sqf index 078a7b7c4..fde342f80 100644 --- a/addons/events/XEH_preStart.sqf +++ b/addons/events/XEH_preStart.sqf @@ -1,16 +1,9 @@ #include "script_component.hpp" -if (hasInterface) then { - PREP(playerEvent); +#include "XEH_PREP.sqf" +if (hasInterface) then { PREP(initDisplayMission); PREP(initDisplayMainMap); PREP(initDisplayCurator); - - PREP(keyHandler); - PREP(keyHandlerDown); - PREP(keyHandlerUp); - PREP(mouseHandlerDown); - PREP(mouseHandlerUp); - PREP(mouseWheelHandler); }; diff --git a/addons/hashes/CfgEventHandlers.hpp b/addons/hashes/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/hashes/CfgEventHandlers.hpp +++ b/addons/hashes/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/hashes/XEH_preInit.sqf b/addons/hashes/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/hashes/XEH_preInit.sqf +++ b/addons/hashes/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/hashes/XEH_preStart.sqf b/addons/hashes/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/hashes/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/jr/CfgEventHandlers.hpp b/addons/jr/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/jr/CfgEventHandlers.hpp +++ b/addons/jr/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/jr/XEH_preInit.sqf b/addons/jr/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/jr/XEH_preInit.sqf +++ b/addons/jr/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/jr/XEH_preStart.sqf b/addons/jr/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/jr/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/keybinding/XEH_preInit.sqf b/addons/keybinding/XEH_preInit.sqf index 2321fbfb1..43fd3683c 100644 --- a/addons/keybinding/XEH_preInit.sqf +++ b/addons/keybinding/XEH_preInit.sqf @@ -1,27 +1,26 @@ #include "script_component.hpp" -SCRIPT(XEH_preInit); - -#include "XEH_PREP.sqf" - -if (!hasInterface) exitWith {}; ADDON = false; -// Load DIK to string conversion table. -with uiNamespace do { - GVAR(keyNames) = [GVAR(keyNamesHash)] call CBA_fnc_deserializeNamespace; -}; +#include "XEH_PREP.sqf" -GVAR(keyNames) = uiNamespace getVariable QGVAR(keyNames); -GVAR(forbiddenKeys) = uiNamespace getVariable QGVAR(forbiddenKeys); +if (hasInterface) then { + // Load DIK to string conversion table. + with uiNamespace do { + GVAR(keyNames) = [GVAR(keyNamesHash)] call CBA_fnc_deserializeNamespace; + }; -if (isNil QGVAR(addons)) then { - GVAR(addons) = [] call CBA_fnc_createNamespace; - GVAR(actions) = [] call CBA_fnc_createNamespace; -}; + GVAR(keyNames) = uiNamespace getVariable QGVAR(keyNames); + GVAR(forbiddenKeys) = uiNamespace getVariable QGVAR(forbiddenKeys); + + if (isNil QGVAR(addons)) then { + GVAR(addons) = [] call CBA_fnc_createNamespace; + GVAR(actions) = [] call CBA_fnc_createNamespace; + }; -if (isNil QGVAR(modPrettyNames)) then { - GVAR(modPrettyNames) = [] call CBA_fnc_createNamespace; + if (isNil QGVAR(modPrettyNames)) then { + GVAR(modPrettyNames) = [] call CBA_fnc_createNamespace; + }; }; ADDON = true; diff --git a/addons/keybinding/XEH_preStart.sqf b/addons/keybinding/XEH_preStart.sqf index 67b38dd71..e831b7299 100644 --- a/addons/keybinding/XEH_preStart.sqf +++ b/addons/keybinding/XEH_preStart.sqf @@ -1,9 +1,9 @@ #include "script_component.hpp" -if (!hasInterface) exitWith {}; - #include "XEH_PREP.sqf" +if (!hasInterface) exitWith {}; + private _supportedKeys = [ DIK_ESCAPE, DIK_1, diff --git a/addons/modules/CfgEventHandlers.hpp b/addons/modules/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/modules/CfgEventHandlers.hpp +++ b/addons/modules/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/modules/XEH_preInit.sqf b/addons/modules/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/modules/XEH_preInit.sqf +++ b/addons/modules/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/modules/XEH_preStart.sqf b/addons/modules/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/modules/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/music/CfgEventHandlers.hpp b/addons/music/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/music/CfgEventHandlers.hpp +++ b/addons/music/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/music/XEH_preInit.sqf b/addons/music/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/music/XEH_preInit.sqf +++ b/addons/music/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/music/XEH_preStart.sqf b/addons/music/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/music/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/network/CfgEventHandlers.hpp b/addons/network/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/network/CfgEventHandlers.hpp +++ b/addons/network/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/network/XEH_preInit.sqf b/addons/network/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/network/XEH_preInit.sqf +++ b/addons/network/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/network/XEH_preStart.sqf b/addons/network/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/network/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/strings/CfgEventHandlers.hpp b/addons/strings/CfgEventHandlers.hpp index 6b32ee79e..93e3311cf 100644 --- a/addons/strings/CfgEventHandlers.hpp +++ b/addons/strings/CfgEventHandlers.hpp @@ -3,3 +3,9 @@ class Extended_PreStart_EventHandlers { init = QUOTE(call COMPILE_FILE(XEH_preStart)); }; }; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/strings/XEH_preInit.sqf b/addons/strings/XEH_preInit.sqf index 43f1adee3..67e2e4d72 100644 --- a/addons/strings/XEH_preInit.sqf +++ b/addons/strings/XEH_preInit.sqf @@ -1,3 +1,7 @@ #include "script_component.hpp" +ADDON = false; + #include "XEH_PREP.sqf" + +ADDON = true; diff --git a/addons/strings/XEH_preStart.sqf b/addons/strings/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/strings/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/ui/CfgFunctions.hpp b/addons/ui/CfgFunctions.hpp index 8bbde6ef1..e5ce6f0b3 100644 --- a/addons/ui/CfgFunctions.hpp +++ b/addons/ui/CfgFunctions.hpp @@ -1,6 +1,6 @@ class CfgFunctions { class CBA { - class UI { + class FlexiMenu { class flexiMenu_Add { file = QUOTE(PATHTOF(flexiMenu\fnc_add.sqf)); }; diff --git a/addons/ui/XEH_preStart.sqf b/addons/ui/XEH_preStart.sqf index bfa7f312c..52dc77ebc 100644 --- a/addons/ui/XEH_preStart.sqf +++ b/addons/ui/XEH_preStart.sqf @@ -1,19 +1,21 @@ #include "script_component.hpp" -if (!hasInterface) exitWith {}; +#include "XEH_PREP.sqf" -PREP(initDisplayInterrupt); -PREP(initDisplayMultiplayerSetup); -PREP(initDisplayOptionsLayout); -PREP(initDisplayPassword); -PREP(initDisplayRemoteMissions); -PREP(initDisplayDiary); -PREP(initDisplay3DEN); -PREP(initDisplayCurator); -PREP(initDisplayMessageBox); -PREP(initDisplayInventory); +if (hasInterface) then { + PREP(initDisplayInterrupt); + PREP(initDisplayMultiplayerSetup); + PREP(initDisplayOptionsLayout); + PREP(initDisplayPassword); + PREP(initDisplayRemoteMissions); + PREP(initDisplayDiary); + PREP(initDisplay3DEN); + PREP(initDisplayCurator); + PREP(initDisplayMessageBox); + PREP(initDisplayInventory); -PREP(preload3DEN); -PREP(preloadCurator); + PREP(preload3DEN); + PREP(preloadCurator); -PREP(openItemContextMenu); + PREP(openItemContextMenu); +}; diff --git a/addons/vectors/CfgEventHandlers.hpp b/addons/vectors/CfgEventHandlers.hpp index b928bc2de..93e3311cf 100644 --- a/addons/vectors/CfgEventHandlers.hpp +++ b/addons/vectors/CfgEventHandlers.hpp @@ -1,3 +1,9 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; + class Extended_PreInit_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preInit)); diff --git a/addons/vectors/XEH_preInit.sqf b/addons/vectors/XEH_preInit.sqf index ce0b5205f..ba6794912 100644 --- a/addons/vectors/XEH_preInit.sqf +++ b/addons/vectors/XEH_preInit.sqf @@ -1,5 +1,4 @@ #include "script_component.hpp" -SCRIPT(XEH_preInit); ADDON = false; diff --git a/addons/vectors/XEH_preStart.sqf b/addons/vectors/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/vectors/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" diff --git a/addons/versioning/XEH_PREP.sqf b/addons/versioning/XEH_PREP.sqf new file mode 100644 index 000000000..49c55bd80 --- /dev/null +++ b/addons/versioning/XEH_PREP.sqf @@ -0,0 +1 @@ +PREP(version_check); diff --git a/addons/versioning/XEH_preInit.sqf b/addons/versioning/XEH_preInit.sqf index 47503528d..91c256969 100644 --- a/addons/versioning/XEH_preInit.sqf +++ b/addons/versioning/XEH_preInit.sqf @@ -1,15 +1,13 @@ -// Any registered functions used in the PreINIT phase must use the uiNamespace copies of the variable. -// So uiNamespace getVariable "CBA_fnc_hashCreate" instead of just CBA_fnc_hashCreate -VM - #include "script_component.hpp" -SCRIPT(XEH_preInit); + +ADDON = false; + +#include "XEH_PREP.sqf" + /* Basic, Generic Version Checking System - By Sickboy */ -LOG(MSG_INIT); -ADDON = false; - if (isNil "CBA_display_ingame_warnings") then { CBA_display_ingame_warnings = true }; if (isNil QGVAR(mismatch)) then { GVAR(mismatch) = [] }; @@ -42,7 +40,6 @@ for "_i" from 0 to (count (CFGSETTINGS) - 1) do }; }; -PREP(version_check); FUNC(version_compare) = { params ["_value","_localValue"]; diff --git a/addons/versioning/XEH_preStart.sqf b/addons/versioning/XEH_preStart.sqf index 58ece1b4e..43f1adee3 100644 --- a/addons/versioning/XEH_preStart.sqf +++ b/addons/versioning/XEH_preStart.sqf @@ -1,3 +1,3 @@ #include "script_component.hpp" -PREP(version_check); +#include "XEH_PREP.sqf" diff --git a/addons/xeh/CfgEventHandlers.hpp b/addons/xeh/CfgEventHandlers.hpp index d687fff13..fbb3eb1e1 100644 --- a/addons/xeh/CfgEventHandlers.hpp +++ b/addons/xeh/CfgEventHandlers.hpp @@ -10,7 +10,11 @@ class DefaultEventhandlers { // The PreStart handlers run once when the game is started // this could be used to precompile functions. -class Extended_PreStart_EventHandlers {}; +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; // Class for "pre-init", run-once event handlers. Code in here runs before any // Extended_Init_Eventhandlers code. diff --git a/addons/xeh/XEH_preStart.sqf b/addons/xeh/XEH_preStart.sqf new file mode 100644 index 000000000..43f1adee3 --- /dev/null +++ b/addons/xeh/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.sqf" From 80edb7607323b3836c4c2c5162767986bedf61a0 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 22:58:25 +0200 Subject: [PATCH 22/33] fix some XEH functions being undefined on start --- addons/xeh/CfgEventHandlers.hpp | 12 ++---------- addons/xeh/XEH_preInit.sqf | 7 ------- addons/xeh/XEH_preStart.sqf | 3 --- addons/xeh/fnc_preInit.sqf | 2 ++ addons/xeh/fnc_preStart.sqf | 3 ++- 5 files changed, 6 insertions(+), 21 deletions(-) delete mode 100644 addons/xeh/XEH_preInit.sqf delete mode 100644 addons/xeh/XEH_preStart.sqf diff --git a/addons/xeh/CfgEventHandlers.hpp b/addons/xeh/CfgEventHandlers.hpp index fbb3eb1e1..4dbeb4ce8 100644 --- a/addons/xeh/CfgEventHandlers.hpp +++ b/addons/xeh/CfgEventHandlers.hpp @@ -10,19 +10,11 @@ class DefaultEventhandlers { // The PreStart handlers run once when the game is started // this could be used to precompile functions. -class Extended_PreStart_EventHandlers { - class ADDON { - init = QUOTE(call COMPILE_FILE(XEH_preStart)); - }; -}; +class Extended_PreStart_EventHandlers {}; // Class for "pre-init", run-once event handlers. Code in here runs before any // Extended_Init_Eventhandlers code. -class Extended_PreInit_EventHandlers { - class ADDON { - init = QUOTE(call COMPILE_FILE(XEH_preInit)); - }; -}; +class Extended_PreInit_EventHandlers {}; // The PostInit handlers also run once, but after all the extended init EH:s // have run and after all mission.sqm "init lines" have been processed. diff --git a/addons/xeh/XEH_preInit.sqf b/addons/xeh/XEH_preInit.sqf deleted file mode 100644 index 67e2e4d72..000000000 --- a/addons/xeh/XEH_preInit.sqf +++ /dev/null @@ -1,7 +0,0 @@ -#include "script_component.hpp" - -ADDON = false; - -#include "XEH_PREP.sqf" - -ADDON = true; diff --git a/addons/xeh/XEH_preStart.sqf b/addons/xeh/XEH_preStart.sqf deleted file mode 100644 index 43f1adee3..000000000 --- a/addons/xeh/XEH_preStart.sqf +++ /dev/null @@ -1,3 +0,0 @@ -#include "script_component.hpp" - -#include "XEH_PREP.sqf" diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index 7616aa7b8..e6b14ccd6 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -25,6 +25,8 @@ SLX_XEH_DisableLogging = uiNamespace getVariable ["SLX_XEH_DisableLogging", fals XEH_LOG("PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_common" >> "versionStr")); +#include "XEH_PREP.sqf" + SLX_XEH_STR = ""; // does nothing, never changes, backwards compatibility SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps SLX_XEH_COMPILE_NEW = CBA_fnc_compileFunction; //backwards comp diff --git a/addons/xeh/fnc_preStart.sqf b/addons/xeh/fnc_preStart.sqf index 2fe34bc69..43096b7ca 100644 --- a/addons/xeh/fnc_preStart.sqf +++ b/addons/xeh/fnc_preStart.sqf @@ -24,8 +24,9 @@ with uiNamespace do { XEH_LOG("PreStart started."); SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps - SLX_XEH_COMPILE_NEW = CBA_fnc_compileFunction; //backwards comp + SLX_XEH_COMPILE_NEW = compile preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp + #include "XEH_PREP.sqf" PREP(initDisplay3DEN); // call PreStart events From 814323ce390479826c8609214f76cb173ec02abb Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 23:00:27 +0200 Subject: [PATCH 23/33] fix some XEH functions being undefined on start --- addons/xeh/fnc_preStart.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/xeh/fnc_preStart.sqf b/addons/xeh/fnc_preStart.sqf index 43096b7ca..f1d27e5cf 100644 --- a/addons/xeh/fnc_preStart.sqf +++ b/addons/xeh/fnc_preStart.sqf @@ -24,7 +24,7 @@ with uiNamespace do { XEH_LOG("PreStart started."); SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps - SLX_XEH_COMPILE_NEW = compile preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp + SLX_XEH_COMPILE_NEW = compileFinal preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp #include "XEH_PREP.sqf" PREP(initDisplay3DEN); From 60254472723cdf828b2ff211d0747b729dd1d42a Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 15 May 2020 23:25:03 +0200 Subject: [PATCH 24/33] fix some XEH functions being undefined on preInit --- addons/xeh/fnc_compileFunction.sqf | 4 ++++ addons/xeh/fnc_preInit.sqf | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/xeh/fnc_compileFunction.sqf b/addons/xeh/fnc_compileFunction.sqf index b82d0c57e..9de464d97 100644 --- a/addons/xeh/fnc_compileFunction.sqf +++ b/addons/xeh/fnc_compileFunction.sqf @@ -1,3 +1,4 @@ +#define DEBUG_MODE_FULL #include "script_component.hpp" /* ---------------------------------------------------------------------------- Function: CBA_fnc_compileFunction @@ -27,12 +28,15 @@ params [["_funcFile", "", [""]], ["_funcName", "", [""]]]; private _cachedFunc = uiNamespace getVariable _funcName; if (isNil "_cachedFunc") then { + LOG_1("COMPILE - %1", _funcName); uiNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; } else { if (["compile"] call CBA_fnc_isRecompileEnabled) then { + LOG_1("RECOMPILE - %1", _funcName); missionNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; } else { + LOG_1("COPY CACHE - %1", _funcName); missionNamespace setVariable [_funcName, _cachedFunc]; }; }; diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index e6b14ccd6..d56596fc4 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -25,12 +25,18 @@ SLX_XEH_DisableLogging = uiNamespace getVariable ["SLX_XEH_DisableLogging", fals XEH_LOG("PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_common" >> "versionStr")); -#include "XEH_PREP.sqf" - SLX_XEH_STR = ""; // does nothing, never changes, backwards compatibility -SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps -SLX_XEH_COMPILE_NEW = CBA_fnc_compileFunction; //backwards comp SLX_XEH_DUMMY = "Logic"; // backwards comp +SLX_XEH_COMPILE = uiNamespace getVariable "SLX_XEH_COMPILE"; //backwards comps +SLX_XEH_COMPILE_NEW = uiNamespace getVariable "SLX_XEH_COMPILE_NEW"; //backwards comp + +// @todo fix "Attempt to override final function" +CBA_fnc_isRecompileEnabled = uiNamespace getVariable "CBA_fnc_isRecompileEnabled"; + +#include "XEH_PREP.sqf" + +diag_log ["SLX_XEH_COMPILE", !isNil "SLX_XEH_COMPILE"]; +diag_log ["SLX_XEH_COMPILE_NEW", !isNil "SLX_XEH_COMPILE_NEW"]; SLX_XEH_MACHINE = [ // backwards compatibility, deprecated !isDedicated, // 0 - isClient (and thus has player) From d2417718b27e70542f30766b8768c5fd47b8b21a Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 16 May 2020 12:35:08 +0200 Subject: [PATCH 25/33] fix a loading order thing --- addons/events/config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/config.cpp b/addons/events/config.cpp index 278a9c0bc..d120442e8 100644 --- a/addons/events/config.cpp +++ b/addons/events/config.cpp @@ -6,7 +6,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"cba_common"}; + requiredAddons[] = {"cba_common", "cba_hashes"}; author = "$STR_CBA_Author"; authors[] = {"Spooner", "Sickboy", "Xeno", "commy2"}; url = "$STR_CBA_URL"; From 88187a0b2b17298a116c6b5b8048b82052564a17 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 16 May 2020 13:58:59 +0200 Subject: [PATCH 26/33] move PREP'd functions to mission namespace before preInit runs --- addons/xeh/CfgFunctions.hpp | 2 ++ addons/xeh/XEH_initFunctions.sqf | 14 ++++++++++++++ addons/xeh/fnc_compileFunction.sqf | 7 ++++++- addons/xeh/fnc_isRecompileEnabled.sqf | 2 +- addons/xeh/fnc_preInit.sqf | 7 +++---- addons/xeh/fnc_preStart.sqf | 4 ++++ 6 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 addons/xeh/XEH_initFunctions.sqf diff --git a/addons/xeh/CfgFunctions.hpp b/addons/xeh/CfgFunctions.hpp index 905190c25..405ec2beb 100644 --- a/addons/xeh/CfgFunctions.hpp +++ b/addons/xeh/CfgFunctions.hpp @@ -1,4 +1,6 @@ class CfgFunctions { + init = QPATHTO_R(XEH_initFunctions.sqf); + class CBA { class XEH { class preStart { diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf new file mode 100644 index 000000000..668e47c83 --- /dev/null +++ b/addons/xeh/XEH_initFunctions.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +SLX_XEH_DisableLogging = false; +XEH_LOG("Reading function cache."); + +diag_log [uiNamespace getVariable [QGVAR(PREP_list), []]]; +{ + XEH_LOG(ARR_2(format ["Read - %1", _x])); + missionNamespace setVariable [_x, uiNamespace getVariable _x]; +} forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); + +XEH_LOG("Done reading function cache."); + +#include "\A3\functions_f\initFunctions.sqf" diff --git a/addons/xeh/fnc_compileFunction.sqf b/addons/xeh/fnc_compileFunction.sqf index 9de464d97..21cfa7bac 100644 --- a/addons/xeh/fnc_compileFunction.sqf +++ b/addons/xeh/fnc_compileFunction.sqf @@ -1,4 +1,4 @@ -#define DEBUG_MODE_FULL +//#define DEBUG_MODE_FULL #include "script_component.hpp" /* ---------------------------------------------------------------------------- Function: CBA_fnc_compileFunction @@ -29,8 +29,13 @@ private _cachedFunc = uiNamespace getVariable _funcName; if (isNil "_cachedFunc") then { LOG_1("COMPILE - %1", _funcName); + uiNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; + + if (GVAR(PREP_list) isEqualType []) then { + GVAR(PREP_list) pushBack _funcName; + }; } else { if (["compile"] call CBA_fnc_isRecompileEnabled) then { LOG_1("RECOMPILE - %1", _funcName); diff --git a/addons/xeh/fnc_isRecompileEnabled.sqf b/addons/xeh/fnc_isRecompileEnabled.sqf index 2ced9f14d..73aba91cb 100644 --- a/addons/xeh/fnc_isRecompileEnabled.sqf +++ b/addons/xeh/fnc_isRecompileEnabled.sqf @@ -22,7 +22,7 @@ Author: params ["_compileType"]; -private _return = missionNamespace getVariable (format [QGVAR(isRecompileEnabled_%1), _compileType]); +private _return = missionNamespace getVariable format [QGVAR(isRecompileEnabled_%1), _compileType]; if (isNil "_return") then { private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> _compileType; diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index d56596fc4..c9f869b65 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -1,3 +1,4 @@ +//#define DEBUG_MODE_FULL #include "script_component.hpp" /* ---------------------------------------------------------------------------- Function: CBA_fnc_preInit @@ -28,16 +29,13 @@ XEH_LOG("PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_commo SLX_XEH_STR = ""; // does nothing, never changes, backwards compatibility SLX_XEH_DUMMY = "Logic"; // backwards comp SLX_XEH_COMPILE = uiNamespace getVariable "SLX_XEH_COMPILE"; //backwards comps -SLX_XEH_COMPILE_NEW = uiNamespace getVariable "SLX_XEH_COMPILE_NEW"; //backwards comp +SLX_XEH_COMPILE_NEW = compileFinal preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp // @todo fix "Attempt to override final function" CBA_fnc_isRecompileEnabled = uiNamespace getVariable "CBA_fnc_isRecompileEnabled"; #include "XEH_PREP.sqf" -diag_log ["SLX_XEH_COMPILE", !isNil "SLX_XEH_COMPILE"]; -diag_log ["SLX_XEH_COMPILE_NEW", !isNil "SLX_XEH_COMPILE_NEW"]; - SLX_XEH_MACHINE = [ // backwards compatibility, deprecated !isDedicated, // 0 - isClient (and thus has player) didJIP, // 1 - isJip @@ -133,6 +131,7 @@ GVAR(fallbackRunning) = false; if (_x select 0 == "") then { if (_x select 1 == "preInit") then { (_x select 2) call { + LOG_1("RUN PREINIT - %1", _x); private "_x"; [] call (_this select 0); diff --git a/addons/xeh/fnc_preStart.sqf b/addons/xeh/fnc_preStart.sqf index f1d27e5cf..11260ad68 100644 --- a/addons/xeh/fnc_preStart.sqf +++ b/addons/xeh/fnc_preStart.sqf @@ -23,6 +23,8 @@ with uiNamespace do { XEH_LOG("PreStart started."); + GVAR(PREP_list) = []; + SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps SLX_XEH_COMPILE_NEW = compileFinal preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp @@ -50,6 +52,8 @@ with uiNamespace do { }; } forEach configProperties [configFile >> XEH_FORMAT_CONFIG_NAME("preStart")]; + GVAR(PREP_list) = compileFinal str GVAR(PREP_list); + #ifdef DEBUG_MODE_FULL diag_log text format ["isScheduled = %1", call CBA_fnc_isScheduled]; #endif From 26bddc151446271db207ed802e5d68c60297d010 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 17 May 2020 10:32:48 +0200 Subject: [PATCH 27/33] handle disabling compile cache --- addons/xeh/XEH_initFunctions.sqf | 27 +++++++++++++++++++-------- addons/xeh/fnc_compileFunction.sqf | 18 ++++++++++-------- addons/xeh/fnc_preInit.sqf | 5 +---- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf index 668e47c83..b6a513bca 100644 --- a/addons/xeh/XEH_initFunctions.sqf +++ b/addons/xeh/XEH_initFunctions.sqf @@ -1,14 +1,25 @@ +#define DEBUG_MODE_FULL #include "script_component.hpp" -SLX_XEH_DisableLogging = false; -XEH_LOG("Reading function cache."); +LOG("Compiling PREP'd functions."); -diag_log [uiNamespace getVariable [QGVAR(PREP_list), []]]; -{ - XEH_LOG(ARR_2(format ["Read - %1", _x])); - missionNamespace setVariable [_x, uiNamespace getVariable _x]; -} forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); +private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> _compileType; +private _missionConfig = missionConfigFile >> "CfgSettings" >> "CBA" >> "caching" >> _compileType; -XEH_LOG("Done reading function cache."); +if ((isNumber _config && {getNumber _config == 0}) || {isNumber _missionConfig && {getNumber _missionConfig == 0}}) then { + // Recompile enabled. + { + _x params ["_funcName", "_funcFile"]; + missionNamespace setVariable [_x, compile/*Final*/ preprocessFileLineNumbers _funcFile]; + } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); +} else { + // Recompile disabled. + { + _x params ["_funcName"]; + missionNamespace setVariable [_x, uiNamespace getVariable _x]; + } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); +}; + +LOG("Done compiling PREP'd functions."); #include "\A3\functions_f\initFunctions.sqf" diff --git a/addons/xeh/fnc_compileFunction.sqf b/addons/xeh/fnc_compileFunction.sqf index 21cfa7bac..4ccfa993c 100644 --- a/addons/xeh/fnc_compileFunction.sqf +++ b/addons/xeh/fnc_compileFunction.sqf @@ -1,4 +1,4 @@ -//#define DEBUG_MODE_FULL +#define DEBUG_MODE_FULL #include "script_component.hpp" /* ---------------------------------------------------------------------------- Function: CBA_fnc_compileFunction @@ -34,14 +34,16 @@ if (isNil "_cachedFunc") then { missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; if (GVAR(PREP_list) isEqualType []) then { - GVAR(PREP_list) pushBack _funcName; + GVAR(PREP_list) pushBack [_funcName, _funcFile]; }; } else { - if (["compile"] call CBA_fnc_isRecompileEnabled) then { - LOG_1("RECOMPILE - %1", _funcName); - missionNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; - } else { - LOG_1("COPY CACHE - %1", _funcName); - missionNamespace setVariable [_funcName, _cachedFunc]; + if (isNil {missionNamespace getVariable _funcName}) then { + if (["compile"] call (uiNamespace getVariable "CBA_fnc_isRecompileEnabled")) then { + LOG_1("RECOMPILE - %1", _funcName); + missionNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; + } else { + LOG_1("COPY CACHE - %1", _funcName); + missionNamespace setVariable [_funcName, _cachedFunc]; + }; }; }; diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index c9f869b65..6f339a751 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -29,10 +29,7 @@ XEH_LOG("PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_commo SLX_XEH_STR = ""; // does nothing, never changes, backwards compatibility SLX_XEH_DUMMY = "Logic"; // backwards comp SLX_XEH_COMPILE = uiNamespace getVariable "SLX_XEH_COMPILE"; //backwards comps -SLX_XEH_COMPILE_NEW = compileFinal preprocessFileLineNumbers QPATHTOF(fnc_compileFunction.sqf); //backwards comp - -// @todo fix "Attempt to override final function" -CBA_fnc_isRecompileEnabled = uiNamespace getVariable "CBA_fnc_isRecompileEnabled"; +SLX_XEH_COMPILE_NEW = uiNamespace getVariable "SLX_XEH_COMPILE_NEW"; //backwards comps #include "XEH_PREP.sqf" From 325bbb478bd12071c59dceb6911454ee24ce5677 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 17 May 2020 10:49:46 +0200 Subject: [PATCH 28/33] fix some jumbled variables --- addons/xeh/XEH_initFunctions.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf index b6a513bca..6840bba2b 100644 --- a/addons/xeh/XEH_initFunctions.sqf +++ b/addons/xeh/XEH_initFunctions.sqf @@ -3,20 +3,20 @@ LOG("Compiling PREP'd functions."); -private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> _compileType; -private _missionConfig = missionConfigFile >> "CfgSettings" >> "CBA" >> "caching" >> _compileType; +private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; +private _missionConfig = missionConfigFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; if ((isNumber _config && {getNumber _config == 0}) || {isNumber _missionConfig && {getNumber _missionConfig == 0}}) then { // Recompile enabled. { _x params ["_funcName", "_funcFile"]; - missionNamespace setVariable [_x, compile/*Final*/ preprocessFileLineNumbers _funcFile]; + missionNamespace setVariable [_funcName, compile/*Final*/ preprocessFileLineNumbers _funcFile]; } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); } else { // Recompile disabled. { _x params ["_funcName"]; - missionNamespace setVariable [_x, uiNamespace getVariable _x]; + missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); }; From e8534b06a53ea2a5e89020eaf8ed2c86fd33cb9d Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 29 May 2020 15:53:17 +0200 Subject: [PATCH 29/33] handle initFunctions running multiple times --- addons/xeh/XEH_initFunctions.sqf | 38 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf index 6840bba2b..0a7a77126 100644 --- a/addons/xeh/XEH_initFunctions.sqf +++ b/addons/xeh/XEH_initFunctions.sqf @@ -1,25 +1,29 @@ #define DEBUG_MODE_FULL #include "script_component.hpp" -LOG("Compiling PREP'd functions."); +if (!ISINITIALIZED(missionNamespace)) then { + SETINITIALIZED(missionNamespace); -private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; -private _missionConfig = missionConfigFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; + LOG("Compiling PREP'd functions."); -if ((isNumber _config && {getNumber _config == 0}) || {isNumber _missionConfig && {getNumber _missionConfig == 0}}) then { - // Recompile enabled. - { - _x params ["_funcName", "_funcFile"]; - missionNamespace setVariable [_funcName, compile/*Final*/ preprocessFileLineNumbers _funcFile]; - } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); -} else { - // Recompile disabled. - { - _x params ["_funcName"]; - missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; - } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); -}; + private _config = configFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; + private _missionConfig = missionConfigFile >> "CfgSettings" >> "CBA" >> "caching" >> "compile"; + + if ((isNumber _config && {getNumber _config == 0}) || {isNumber _missionConfig && {getNumber _missionConfig == 0}}) then { + // Recompile enabled. + { + _x params ["_funcName", "_funcFile"]; + missionNamespace setVariable [_funcName, compile/*Final*/ preprocessFileLineNumbers _funcFile]; + } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); + } else { + // Recompile disabled. + { + _x params ["_funcName"]; + missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; + } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); + }; -LOG("Done compiling PREP'd functions."); + LOG("Done compiling PREP'd functions."); +}; #include "\A3\functions_f\initFunctions.sqf" From ed5f0709fd93800666b834cdd88927eb1300c4d9 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 29 May 2020 16:13:59 +0200 Subject: [PATCH 30/33] don't copy PREP macros before preInit (but PREPMAIN) --- addons/main/script_macros_common.hpp | 2 +- addons/xeh/XEH_initFunctions.sqf | 2 ++ addons/xeh/fnc_compileFunction.sqf | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/main/script_macros_common.hpp b/addons/main/script_macros_common.hpp index 8335e10f5..a66b6413e 100644 --- a/addons/main/script_macros_common.hpp +++ b/addons/main/script_macros_common.hpp @@ -964,7 +964,7 @@ Macro: PREP() #define PREPMAIN(var1) TRIPLES(PREFIX,fnc,var1) = compile preProcessFileLineNumbers 'PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))' #else #define PREP(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(ADDON,fnc,var1)'] call SLX_XEH_COMPILE_NEW - #define PREPMAIN(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(PREFIX,fnc,var1)'] call SLX_XEH_COMPILE_NEW + #define PREPMAIN(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(PREFIX,fnc,var1)', true] call SLX_XEH_COMPILE_NEW #endif /* ------------------------------------------- diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf index 0a7a77126..d050a339a 100644 --- a/addons/xeh/XEH_initFunctions.sqf +++ b/addons/xeh/XEH_initFunctions.sqf @@ -13,12 +13,14 @@ if (!ISINITIALIZED(missionNamespace)) then { // Recompile enabled. { _x params ["_funcName", "_funcFile"]; + LOG_1("RECOMPILE - %1", _funcName); missionNamespace setVariable [_funcName, compile/*Final*/ preprocessFileLineNumbers _funcFile]; } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); } else { // Recompile disabled. { _x params ["_funcName"]; + LOG_1("COPY CACHE - %1", _funcName); missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; } forEach call (uiNamespace getVariable [QGVAR(PREP_list), {[]}]); }; diff --git a/addons/xeh/fnc_compileFunction.sqf b/addons/xeh/fnc_compileFunction.sqf index 4ccfa993c..55855ab0c 100644 --- a/addons/xeh/fnc_compileFunction.sqf +++ b/addons/xeh/fnc_compileFunction.sqf @@ -10,6 +10,7 @@ Description: Parameters: 0: _funcFile - Path to function sqf file 1: _funcName - Final function name + 2: _autoPrep - If true, function is read from cache before preInit (Default: false) Returns: None @@ -23,7 +24,7 @@ Author: commy2 ---------------------------------------------------------------------------- */ -params [["_funcFile", "", [""]], ["_funcName", "", [""]]]; +params [["_funcFile", "", [""]], ["_funcName", "", [""]], ["_autoPrep", false, [false]]]; private _cachedFunc = uiNamespace getVariable _funcName; @@ -33,7 +34,7 @@ if (isNil "_cachedFunc") then { uiNamespace setVariable [_funcName, compileFinal preprocessFileLineNumbers _funcFile]; missionNamespace setVariable [_funcName, uiNamespace getVariable _funcName]; - if (GVAR(PREP_list) isEqualType []) then { + if (_autoPrep && {GVAR(PREP_list) isEqualType []}) then { GVAR(PREP_list) pushBack [_funcName, _funcFile]; }; } else { From aeb8fc0617904cd945f39a319dca9e197a79ab63 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 30 May 2020 17:12:46 +0200 Subject: [PATCH 31/33] functions viewer integration --- addons/xeh/CfgEventHandlers.hpp | 3 + addons/xeh/fnc_initDisplayFunctionsViewer.sqf | 178 ++++++++++++++++++ addons/xeh/fnc_preStart.sqf | 1 + 3 files changed, 182 insertions(+) create mode 100644 addons/xeh/fnc_initDisplayFunctionsViewer.sqf diff --git a/addons/xeh/CfgEventHandlers.hpp b/addons/xeh/CfgEventHandlers.hpp index 4dbeb4ce8..49c02ed7b 100644 --- a/addons/xeh/CfgEventHandlers.hpp +++ b/addons/xeh/CfgEventHandlers.hpp @@ -86,5 +86,8 @@ class Extended_DisplayLoad_EventHandlers { class Display3DEN { ADDON = QUOTE(call (uiNamespace getVariable 'FUNC(initDisplay3DEN)')); }; + class RscDisplayFunctionsViewer { + ADDON = QUOTE(call (uiNamespace getVariable 'FUNC(initDisplayFunctionsViewer)')); + }; }; class Extended_DisplayUnload_EventHandlers {}; diff --git a/addons/xeh/fnc_initDisplayFunctionsViewer.sqf b/addons/xeh/fnc_initDisplayFunctionsViewer.sqf new file mode 100644 index 000000000..c34b19e65 --- /dev/null +++ b/addons/xeh/fnc_initDisplayFunctionsViewer.sqf @@ -0,0 +1,178 @@ +#include "script_component.hpp" +#include "\a3\ui_f\hpp\defineResinclDesign.inc" + +params ["_display"]; + +private _listSources = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_SOURCES; +private _listAddons = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_TAGS; +private _listComponents = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_CATEGORIES; +private _listFunctions = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_FUNCTIONS; + +// Add custom category. +private _index = _listSources lbAdd "XEH PREP()"; +_listSources lbSetValue [_index, 3]; +_listSources lbSetData [_index, QGVAR(PREP)]; + +_listSources ctrlAddEventHandler ["LBSelChanged", { + params ["_listSources"]; + private _display = ctrlParent _listSources; + private _listAddons = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_TAGS; + + uiNamespace setVariable [QGVAR(FV_isPREPSelected), _listSources lbValue lbCurSel _listSources isEqualTo 3]; + if (_listSources lbData lbCurSel _listSources != QGVAR(PREP)) exitWith {}; + + lbClear _listAddons; + + private _addons = _display getVariable [QGVAR(addons), []]; + for "_i" from 0 to (count _addons - 1) step 2 do { + private _addon = _addons select _i; + _listAddons lbSetData [_listAddons lbAdd _addon, _addon]; + }; + + lbSort _listAddons; + _listAddons lbSetCurSel 0; + + // Stop BI event from running on this control. + _this set [0, controlNull]; +}]; + +_listAddons ctrlAddEventHandler ["LBSelChanged", { + params ["_listAddons"]; + private _display = ctrlParent _listAddons; + private _listSources = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_SOURCES; + private _listComponents = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_CATEGORIES; + + if (_listSources lbData lbCurSel _listSources != QGVAR(PREP)) exitWith {}; + + private _currentAddon = _listAddons lbData lbCurSel _listAddons; + uiNamespace setVariable [QGVAR(FV_addon), _currentAddon]; + lbClear _listComponents; + + private _addons = _display getVariable [QGVAR(addons), []]; + private _components = _addons select ((_addons find _currentAddon) + 1); + for "_i" from 0 to (count _components - 1) step 2 do { + private _component = _components select _i; + _listComponents lbSetData [_listComponents lbAdd _component, _component]; + }; + + lbSort _listComponents; + _listComponents lbSetCurSel 0; + + // Stop BI event from running on this control. + _this set [0, controlNull]; +}]; + +_listComponents ctrlAddEventHandler ["LBSelChanged", { + params ["_listComponents"]; + private _display = ctrlParent _listComponents; + private _listSources = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_SOURCES; + private _listAddons = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_TAGS; + private _listFunctions = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_FUNCTIONS; + + if (_listSources lbData lbCurSel _listSources != QGVAR(PREP)) exitWith {}; + + private _currentAddon = _listAddons lbData lbCurSel _listAddons; + private _currentComponent = _listComponents lbData lbCurSel _listComponents; + uiNamespace setVariable [QGVAR(FV_component), _currentComponent]; + lbClear _listFunctions; + + private _addons = _display getVariable [QGVAR(addons), []]; + private _components = _addons select ((_addons find _currentAddon) + 1); + private _functions = _components select ((_components find _currentComponent) + 1); + + { + _x params ["_funcName", "_funcFile"]; + _listFunctions lbSetData [_listFunctions lbAdd _funcName, [_funcName, _funcFile] joinString "$"]; + } forEach _functions; + + lbSort _listFunctions; + _listFunctions lbSetCurSel 0; + + // Stop BI event from running on this control. + _this set [0, controlNull]; +}]; + +_listFunctions ctrlAddEventHandler ["LBSelChanged", { + params ["_listFunctions"]; + private _display = ctrlParent _listFunctions; + private _listSources = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_SOURCES; + + if (_listSources lbData lbCurSel _listSources != QGVAR(PREP)) exitWith {}; + + private _textName = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_NAME; + private _textPath = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_AUTHOR; + private _textCode = _display displayCtrl IDC_RSCDISPLAYFUNCTIONSVIEWER_CODE; + + _listFunctions lbData lbCurSel _listFunctions splitString "$" params ["_funcName", "_funcFile"]; + uiNamespace setVariable [QGVAR(FV_function), _funcName]; + + _textName ctrlSetText _funcName; + _textPath ctrlSetText _funcFile; + _textCode ctrlSetText loadFile _funcFile; + _textCodePos = ctrlPosition _textCode; + _textCodePos set [3, ctrlTextHeight _textCode]; + _textCode ctrlSetPosition _textCodePos; + _textCode ctrlCommit 0; + + // Stop BI event from running on this control. + _this set [0, controlNull]; +}]; + +private _addons = []; + +private _functions = uiNamespace getVariable ["cba_xeh_PREP_list", false]; +if !(_functions isEqualType {}) exitWith {}; + +{ + _x params ["_funcName", "_funcFile"]; + _funcFile splitString "\" params ["", ["_addon", ""], "", ["_component", ""]]; + + private _index = _addons pushBackUnique _addon; + + if (_index isEqualTo -1) then { + _index = _addons find _addon; + } else { + _addons pushBack []; + }; + + private _components = _addons select (_index + 1); + _index = _components pushBackUnique _component; + + if (_index isEqualTo -1) then { + _index = _components find _component; + } else { + _components pushBack []; + }; + + private _functions = _components select (_index + 1); + + _functions pushBack [_funcName, _funcFile]; +} forEach call _functions; + +_display setVariable [QGVAR(addons), _addons]; + +if (uiNamespace getVariable [QGVAR(FV_isPREPSelected), false]) then { + private _currentAddon = uiNamespace getVariable [QGVAR(FV_addon), ""]; + private _currentComponent = uiNamespace getVariable [QGVAR(FV_component), ""]; + private _currentFunction = uiNamespace getVariable [QGVAR(FV_function), ""]; + + _listSources lbSetCurSel 3; + + for "_i" from 0 to (lbSize _listAddons - 1) do { + if (_listAddons lbText _i isEqualTo _currentAddon) exitWith { + _listAddons lbSetCurSel _i; + }; + }; + + for "_i" from 0 to (lbSize _listComponents - 1) do { + if (_listComponents lbText _i isEqualTo _currentComponent) exitWith { + _listComponents lbSetCurSel _i; + }; + }; + + for "_i" from 0 to (lbSize _listFunctions - 1) do { + if (_listFunctions lbText _i isEqualTo _currentFunction) exitWith { + _listFunctions lbSetCurSel _i; + }; + }; +}; diff --git a/addons/xeh/fnc_preStart.sqf b/addons/xeh/fnc_preStart.sqf index 11260ad68..603bbc437 100644 --- a/addons/xeh/fnc_preStart.sqf +++ b/addons/xeh/fnc_preStart.sqf @@ -30,6 +30,7 @@ with uiNamespace do { #include "XEH_PREP.sqf" PREP(initDisplay3DEN); + PREP(initDisplayFunctionsViewer); // call PreStart events { From ac37c0bdc5a197526ce97d4e0266a4d3ad695971 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 30 May 2020 17:38:47 +0200 Subject: [PATCH 32/33] add PREP() to prepList in release builds --- addons/main/script_macros_common.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_macros_common.hpp b/addons/main/script_macros_common.hpp index a66b6413e..682cc2583 100644 --- a/addons/main/script_macros_common.hpp +++ b/addons/main/script_macros_common.hpp @@ -963,7 +963,7 @@ Macro: PREP() #define PREP(var1) TRIPLES(ADDON,fnc,var1) = compile preProcessFileLineNumbers 'PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))' #define PREPMAIN(var1) TRIPLES(PREFIX,fnc,var1) = compile preProcessFileLineNumbers 'PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))' #else - #define PREP(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(ADDON,fnc,var1)'] call SLX_XEH_COMPILE_NEW + #define PREP(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(ADDON,fnc,var1)', BUILD != 0] call SLX_XEH_COMPILE_NEW #define PREPMAIN(var1) ['PATHTO_SYS(PREFIX,COMPONENT_F,DOUBLES(fnc,var1))', 'TRIPLES(PREFIX,fnc,var1)', true] call SLX_XEH_COMPILE_NEW #endif From 4a19f66314baf0494cb782a2b5ec1d2157450171 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 30 May 2020 17:40:26 +0200 Subject: [PATCH 33/33] disable debug --- addons/xeh/XEH_initFunctions.sqf | 2 +- addons/xeh/fnc_compileFunction.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/xeh/XEH_initFunctions.sqf b/addons/xeh/XEH_initFunctions.sqf index d050a339a..746183b8b 100644 --- a/addons/xeh/XEH_initFunctions.sqf +++ b/addons/xeh/XEH_initFunctions.sqf @@ -1,4 +1,4 @@ -#define DEBUG_MODE_FULL +//#define DEBUG_MODE_FULL #include "script_component.hpp" if (!ISINITIALIZED(missionNamespace)) then { diff --git a/addons/xeh/fnc_compileFunction.sqf b/addons/xeh/fnc_compileFunction.sqf index 55855ab0c..7150d30d5 100644 --- a/addons/xeh/fnc_compileFunction.sqf +++ b/addons/xeh/fnc_compileFunction.sqf @@ -1,4 +1,4 @@ -#define DEBUG_MODE_FULL +//#define DEBUG_MODE_FULL #include "script_component.hpp" /* ---------------------------------------------------------------------------- Function: CBA_fnc_compileFunction