Interact Menu - Cache config actions for CAManBase (#6818)

* Interact Menu - Cache config actions for CaManBase

* Update addons/interact_menu/functions/fnc_compileMenu.sqf

Co-Authored-By: PabstMirror <pabstmirror@gmail.com>

* Update addons/interact_menu/XEH_preInit.sqf

Co-Authored-By: PabstMirror <pabstmirror@gmail.com>

* Apply suggestions from code review

Co-Authored-By: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
PabstMirror 2019-02-22 18:54:07 -06:00 committed by GitHub
parent 11f511d660
commit 3ee3c5de5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 5 deletions

View File

@ -15,6 +15,10 @@ if (!hasInterface) exitWith { ADDON = true; };
GVAR(ActNamespace) = [] call CBA_fnc_createNamespace;
GVAR(ActSelfNamespace) = [] call CBA_fnc_createNamespace;
// Compile actions for CAManBase now and use for all mans types
["CAManBase"] call FUNC(compileMenu);
GVAR(cacheManActions) = +(GVAR(ActNamespace) getVariable ["CAManBase", []]); // copy
// Event handlers for all interact menu controls
DFUNC(handleMouseMovement) = {
if (GVAR(cursorKeepCentered)) then {

View File

@ -26,6 +26,15 @@ private _namespace = GVAR(ActNamespace);
// Exit if the action menu is already compiled for this class
if !(isNil {_namespace getVariable _objectType}) exitWith {};
if ((_objectType isKindOf "CAManBase") && {!isNil QGVAR(cacheManActions)}) exitWith {
_namespace setVariable [_objectType, +GVAR(cacheManActions)]; // copy
};
if ((getNumber (configFile >> "CfgVehicles" >> _objectType >> "isPlayableLogic")) == 1) exitWith {
TRACE_1("skipping playable logic",_objectType);
_namespace setVariable [_objectType, []];
};
private _recurseFnc = {
params ["_actionsCfg", "_parentDistance"];
private _actions = [];
@ -106,11 +115,6 @@ private _recurseFnc = {
_actions
};
if ((getNumber (configFile >> "CfgVehicles" >> _objectType >> "isPlayableLogic")) == 1) exitWith {
TRACE_1("skipping playable logic",_objectType);
_namespace setVariable [_objectType, []];
};
private _actionsCfg = configFile >> "CfgVehicles" >> _objectType >> "ACE_Actions";
TRACE_1("Building ACE_Actions",_objectType);