diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp
index 17900c2f6b..830e58df82 100644
--- a/addons/interact_menu/config.cpp
+++ b/addons/interact_menu/config.cpp
@@ -23,4 +23,10 @@ class ACE_Settings {
isClientSetable = 1;
displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction";
};
+ class GVAR(UseListMenu) {
+ value = 0;
+ typeName = "BOOL";
+ isClientSetable = 1;
+ displayName = "$STR_ACE_Interact_Menu_UseListMenu";
+ };
};
diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf
index f26e4a5ca8..3da1777bed 100644
--- a/addons/interact_menu/functions/fnc_renderIcon.sqf
+++ b/addons/interact_menu/functions/fnc_renderIcon.sqf
@@ -36,10 +36,17 @@ if(_icon == "") then {
_icon = DEFAULT_ICON;
};
-_text = format ["%4", _icon, _color, _color, _text];
-//_text = format ["
%4", _icon, _color, _color, "ace_breakLine" callExtension _text];
+_text = if (GVAR(UseListMenu)) then {
+ format ["%4", _icon, _color, _color, _text]
+} else {
+ format ["
%4", _icon, _color, _color, "ace_breakLine" callExtension _text];
+};
_ctrl ctrlSetStructuredText (parseText _text);
-_ctrl ctrlSetPosition [(_sPos select 0)-(0.0095*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.10*SafeZoneW, 0.035*SafeZoneW];
+_text = if (GVAR(UseListMenu)) then {
+ _ctrl ctrlSetPosition [(_sPos select 0)-(0.0095*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.20*SafeZoneW, 0.035*SafeZoneW];
+} else {
+ _ctrl ctrlSetPosition [(_sPos select 0)-(0.0750*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.15*SafeZoneW, 0.100*SafeZoneW];
+};
//_ctrl ctrlSetBackgroundColor [0, 1, 0, 0.1];
_ctrl ctrlCommit 0;
diff --git a/addons/interact_menu/functions/fnc_renderMenu.sqf b/addons/interact_menu/functions/fnc_renderMenu.sqf
index b3e3d3b401..b46740921e 100644
--- a/addons/interact_menu/functions/fnc_renderMenu.sqf
+++ b/addons/interact_menu/functions/fnc_renderMenu.sqf
@@ -92,7 +92,12 @@ if (_numChildren == 1) then {
};
// Scale menu based on the amount of children
-_scale = 0.17;
+_scale = if (GVAR(UseListMenu)) then {
+ 0.17
+} else {
+ 0.17 * (((0.8 * (0.46 / sin (0.5 * _angleInterval))) min 1.1) max 0.5)
+};
+
// Animate menu scale
if (_menuInSelectedPath && (_menuDepth == count _path)) then {
_scale = _scale * (0.3 + 0.7 * (((diag_tickTime - GVAR(expandedTime)) * 8) min 1));
@@ -106,8 +111,13 @@ _angle = _centerAngle - _angleSpan / 2;
{
//BEGIN_COUNTER(children);
private ["_offset","_newPos"];
- _newPos = [(_sPos select 0) + _scale * 1.10,
- (_sPos select 1) + _scale * 0.30 * 4/3 * (_foreachindex - _numChildren/2 + 0.5)];
+ _newPos = if (GVAR(UseListMenu)) then {
+ [(_sPos select 0) + _scale * 1.10,
+ (_sPos select 1) + _scale * 0.30 * 4/3 * (_foreachindex - _numChildren/2 + 0.5)];
+ } else {
+ [(_sPos select 0) -_scale * cos _angle,
+ (_sPos select 1) +_scale * (sin _angle) * 4/3];
+ };
//drawLine3D [_pos, _newPos, [1,0,0,0.8]];
//END_COUNTER(children);
diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf
index 099d917c0f..5afcf63cc6 100644
--- a/addons/interact_menu/functions/fnc_renderSelector.sqf
+++ b/addons/interact_menu/functions/fnc_renderSelector.sqf
@@ -24,7 +24,12 @@ private "_ctrl";
_ctrl = GVAR(iconCtrls) select GVAR(iconCount);
GVAR(iconCount) = GVAR(iconCount) + 1;
-_ctrl ctrlSetStructuredText (parseText format ["", _icon]);
-_ctrl ctrlSetPosition [(_sPos select 0)-(0.014*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.05*SafeZoneW, 0.035*SafeZoneW];
+if (GVAR(UseListMenu)) then {
+ _ctrl ctrlSetStructuredText (parseText format ["", _icon]);
+ _ctrl ctrlSetPosition [(_sPos select 0)-(0.014*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.05*SafeZoneW, 0.035*SafeZoneW];
+} else {
+ _ctrl ctrlSetStructuredText (parseText format ["", _icon]);
+ _ctrl ctrlSetPosition [(_sPos select 0)-(0.050*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW];
+};
//_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1];
_ctrl ctrlCommit 0;
diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml
index e0f2c4967e..6b6b001c90 100644
--- a/addons/interact_menu/stringtable.xml
+++ b/addons/interact_menu/stringtable.xml
@@ -7,6 +7,9 @@
Immer den Cursor für Selbst-Interaktionen anzeigen.
Mostrar siempre el cursor para la interacción propia
+