Skip to content

Commit

Permalink
Interact Menu - Cache config actions for CAManBase (#6818)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
PabstMirror authored Feb 23, 2019
1 parent 11f511d commit 3ee3c5d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
4 changes: 4 additions & 0 deletions addons/interact_menu/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
14 changes: 9 additions & 5 deletions addons/interact_menu/functions/fnc_compileMenu.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [];
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 3ee3c5d

Please sign in to comment.