Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions addons/ace_interact/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
### Attribution

Some icons were taken (and modified) from Font Awesome Free 6.7.2 by https://fontawesome.com.
License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.

- [accent.paa](data/icons/accent.paa) - user, volume-high, circle-exclamation (modified)
- [active.paa](data/icons/active.paa) - star
- [antenna.paa](data/icons/antenna.paa) - tower-cell
- [bend_antenna.paa](data/icons/bend_antenna.paa) - tower-broadcast (modified)
- [both_ears.paa](data/icons/both_ears.paa) - headset (modified)
- [broadcast.paa](data/icons/broadcast.paa) - user, volume-high, volume-xmark (modified)
- [connect.paa](data/icons/connect.paa) - link
- [disconnect.paa](data/icons/disconnect.paa) - link, slash (modified)
- [give_headset.paa](data/icons/give_headset.paa) - headset (modified)
- [give_phone.paa](data/icons/give_phone.paa) - phone (modified)
- [headset.paa](data/icons/headset.paa) - headset
- [left_ear.paa](data/icons/left_ear.paa) - volume-high (modified)
- [lower_headset.paa](data/icons/lower_headset.paa) - headset (modified)
- [no_antenna.paa](data/icons/no_antenna.paa) - tower-cell, slash (modified)
- [open.paa](data/icons/open.paa) - arrow-up-right-from-square
- [phone_call.paa](data/icons/phone_call.paa) - phone-volume
- [ppt.paa](data/icons/ptt.paa) - microphone
- [ppt_1.paa](data/icons/ptt_1.paa) - microphone (modified)
- [ppt_2.paa](data/icons/ptt_2.paa) - microphone (modified)
- [ppt_3.paa](data/icons/ptt_3.paa) - microphone (modified)
- [raise_headset.paa](data/icons/raise_headset.paa) - headset (modified)
- [return_headset.paa](data/icons/return_headset.paa) - headset, slash (modified)
- [return_phone.paa](data/icons/return_phone.paa) - phone, slash (modified)
- [right_ear.paa](data/icons/right_ear.paa) - volume-high (modified)
- [share.paa](data/icons/share.paa) - share
- [stop_accent.paa](data/icons/stop_accent.paa) - user, volume-high, circle-exclamation, slash (modified)
- [stop_broadcast.paa](data/icons/stop_broadcast.paa) - user, volume-high (modified)
- [stop_phone_call.paa](data/icons/stop_phone_call.paa) - phone-volume, slash (modified)
- [straighten_antenna.paa](data/icons/straighten_antenna.paa) - tower-broadcast (modified)
- [unshare.paa](data/icons/unshare.paa) - share, slash (modified)
- [voice.paa](data/icons/voice.paa) - user, volume-high (modified)
Binary file added addons/ace_interact/data/icons/accent.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/active.paa
Binary file not shown.
Binary file modified addons/ace_interact/data/icons/antenna.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/bend_antenna.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/both_ears.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/broadcast.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/connect.paa
Binary file not shown.
Binary file not shown.
Binary file added addons/ace_interact/data/icons/disconnect.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/give_headset.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/give_phone.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/headset.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/left_ear.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/lower_headset.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/no_antenna.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/open.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/phone.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/phone_call.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/ptt.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/ptt_1.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/ptt_2.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/ptt_3.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/raise_headset.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/return_headset.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/return_phone.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/right_ear.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/share.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/stop_accent.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/stop_broadcast.paa
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added addons/ace_interact/data/icons/unshare.paa
Binary file not shown.
Binary file added addons/ace_interact/data/icons/voice.paa
Binary file not shown.
4 changes: 2 additions & 2 deletions addons/ace_interact/fnc_actionSetMTT.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
* Public: No
*/

params ["_target", "_player", "_params", "_desiredIdx"];
_params params ["_radio", "", "_pttAssign", ""];
params ["_target", "_player", "_args"];
_args params ["_radio", "_pttAssign", "_desiredIdx"];

if (count _pttAssign > 3) then {
_pttAssign resize 3;
Expand Down
2 changes: 1 addition & 1 deletion addons/ace_interact/fnc_generateConnectorActions.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ switch (_connectorType) do {

if (_connectorRackIdx != -1) then {
private _name = format ["Connect to %1",getText (configFile >> "CfgAcreComponents" >> _baseClass >> "name")];
private _icon = "\idi\acre\addons\ace_interact\data\icons\rack.paa";
private _icon = QPATHTOF(data\icons\rack.paa);
private _action = [format ["acre_con_radio_%1_action", _forEachIndex], _name, _icon, {
params ["_target","","_params"];
_params params ["_parentComponent","_connectorIndex","_rackId","_connectorRackIdx"];
Expand Down
2 changes: 1 addition & 1 deletion addons/ace_interact/fnc_generateConnectorList.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ private _connectors = getArray (_componentClass >> "connectors");

private _connectorData = _connectedComponents select _connectorIndex;

if (!isNil "_connectorData") then { // Comomponent attached.
if (!isNil "_connectorData") then { // Component attached.
//private _connectorConfigData = _connectors select _connectorIndex;
_connectorData params ["_connectorIndex","_connectorChildData"];
_connectorChildData params ["_childComponentName"];
Expand Down
6 changes: 3 additions & 3 deletions addons/ace_interact/fnc_generateConnectors.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ private _parentType = getNumber (_componentClass >> "type");
private _connectorData = _connectedComponents select _forEachIndex;
private _icon = "";

if (!isNil "_connectorData") then { // Comomponent attached.
if (!isNil "_connectorData") then { // Component attached.
_connectorData params ["_childComponentName"];
private _config = configFile >> "CfgAcreComponents" >> _childComponentName;
if (isNull _config) then {
Expand All @@ -44,8 +44,8 @@ private _parentType = getNumber (_componentClass >> "type");
if (_childDisplayName == "") then { _childDisplayName = getText (_config >> "name"); };
private _type = getNumber (_config >> "type");
call {
if (_type == ACRE_COMPONENT_ANTENNA) exitWith {_icon = "\idi\acre\addons\ace_interact\data\icons\antenna.paa";};
if (_type == ACRE_COMPONENT_RACK) exitWith {_icon = "\idi\acre\addons\ace_interact\data\icons\racks.paa";};
if (_type == ACRE_COMPONENT_ANTENNA) exitWith {_icon = QPATHTOF(data\icons\antenna.paa);};
if (_type == ACRE_COMPONENT_RACK) exitWith {_icon = QPATHTOF(data\icons\racks.paa);};
if (_type == ACRE_COMPONENT_RADIO) exitWith {_icon = getText (configFile >> "CfgWeapons" >> configName (_config) >> "picture");};
};
_childParams append [_type, _childDisplayName];
Expand Down
30 changes: 27 additions & 3 deletions addons/ace_interact/fnc_generateSpatialChildrenActions.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,39 @@ _params params ["_radioID", "", "", "_spatial"];
private _actions = [];

if (_spatial != "RIGHT") then {
private _action = [QGVAR(audioRight), localize ELSTRING(sys_core,switchRadioEarRight), "", {(_this select 2) call EFUNC(sys_core,switchRadioEar)}, {true}, {}, [1, _radioID]] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(audioRight),
LELSTRING(sys_core,switchRadioEarRight),
QPATHTOF(data\icons\right_ear.paa),
{(_this select 2) call EFUNC(sys_core,switchRadioEar)},
{true},
{},
[1, _radioID]
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};
if (_spatial != "CENTER") then {
private _action = [QGVAR(audioCenter), localize ELSTRING(sys_core,switchRadioEarBoth), "", {(_this select 2) call EFUNC(sys_core,switchRadioEar)}, {true}, {}, [0, _radioID]] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(audioCenter),
LELSTRING(sys_core,switchRadioEarBoth),
QPATHTOF(data\icons\both_ears.paa),
{(_this select 2) call EFUNC(sys_core,switchRadioEar)},
{true},
{},
[0, _radioID]
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};
if (_spatial != "LEFT") then {
private _action = [QGVAR(audioLeft), localize ELSTRING(sys_core,switchRadioEarLeft), "", {(_this select 2) call EFUNC(sys_core,switchRadioEar)}, {true}, {}, [-1, _radioID]] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(audioLeft),
LELSTRING(sys_core,switchRadioEarLeft),
QPATHTOF(data\icons\left_ear.paa),
{(_this select 2) call EFUNC(sys_core,switchRadioEar)},
{true},
{},
[-1, _radioID]
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

Expand Down
104 changes: 87 additions & 17 deletions addons/ace_interact/fnc_radioChildrenActions.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*
* Arguments:
* 0: Unit with ACRE2 radios <OBJECT>
* 1: Active <BOOL>
* 1: Player <OBJECT>
* 2: Array with additional parameters <ARRAY>
* 0: Unique radio ID <STRING>
* 1: Is Active <BOOL>
Expand All @@ -15,61 +15,131 @@
* Array of actions <ARRAY>
*
* Example:
* [acre_player, "", ["ACRE_PRC343_ID_1"]] call acre_ace_interact_fnc_radioChildrenActions
* [acre_player, acre_player, ["ACRE_PRC343_ID_1"]] call acre_ace_interact_fnc_radioChildrenActions
*
* Public: No
*/

params ["_target","","_params"];
params ["_target", "", "_params"];
_params params ["_radio", "_active", "_pttAssign"];

private _actions = [];

if (!(_radio in ACRE_EXTERNALLY_USED_PERSONAL_RADIOS)) then {
private _spatial = [_radio] call EFUNC(api,getRadioSpatial);
private _txt = localize LSTRING(bothEars);
private _text = LLSTRING(bothEars);
private _icon = QPATHTOF(data\icons\both_ears.paa);
if (_spatial == "LEFT") then {
_txt = localize LSTRING(leftEar);
_text = LLSTRING(leftEar);
_icon = QPATHTOF(data\icons\left_ear.paa);
};
if (_spatial == "RIGHT") then {
_txt = localize LSTRING(rightEar);
_text = LLSTRING(rightEar);
_icon = QPATHTOF(data\icons\right_ear.paa);
};

private _action = [QGVAR(spatialRadio), _txt, "", {}, {true}, {_this call FUNC(generateSpatialChildrenActions);}, _params + [_spatial]] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(spatialRadio),
_text,
_icon,
{},
{true},
LINKFUNC(generateSpatialChildrenActions),
_params + [_spatial]
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];

if (!((_radio in ACRE_ACCESSIBLE_RACK_RADIOS && {isTurnedOut acre_player}) || _radio in ACRE_HEARABLE_RACK_RADIOS)) then {
_action = [QGVAR(openRadio), localize ELSTRING(sys_gui,Open), "", {[((_this select 2) select 0)] call EFUNC(sys_radio,openRadio)}, {true}, {}, _params] call ace_interact_menu_fnc_createAction;
_action = [
QGVAR(openRadio),
LELSTRING(sys_gui,Open),
QPATHTOF(data\icons\open.paa),
{[((_this select 2) select 0)] call EFUNC(sys_radio,openRadio)},
{true},
{},
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

_action = [QGVAR(makeActive), localize LSTRING(setAsActive), "", {[(_this select 2) select 0] call EFUNC(api,setCurrentRadio)}, {!((_this select 2) select 1)}, {}, [_radio, _active]] call ace_interact_menu_fnc_createAction;
_action = [
QGVAR(makeActive),
LLSTRING(setAsActive),
QPATHTOF(data\icons\active.paa),
{[(_this select 2) select 0] call EFUNC(api,setCurrentRadio)},
{!((_this select 2) select 1)},
{},
[_radio, _active]
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];

// External radios. Show only options to share/stop sharing the radio if you are the actual owner and not an external user.
if (!(_radio in ACRE_ACTIVE_EXTERNAL_RADIOS || {_radio in ACRE_HEARABLE_RACK_RADIOS})) then {
_action = [QGVAR(shareRadio), localize ELSTRING(sys_external,shareRadio), "", {[(_this select 2) select 0, true] call EFUNC(sys_external,allowExternalUse)}, {!([(_this select 2) select 0] call EFUNC(sys_external,isRadioShared))}, {}, _params] call ace_interact_menu_fnc_createAction;
_action = [
QGVAR(shareRadio),
LELSTRING(sys_external,shareRadio),
QPATHTOF(data\icons\share.paa),
{[(_this select 2) select 0, true] call EFUNC(sys_external,allowExternalUse)},
{!([(_this select 2) select 0] call EFUNC(sys_external,isRadioShared))},
{},
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
_action = [QGVAR(retrieveRadio), localize ELSTRING(sys_external,unshareRadio), "", {[(_this select 2) select 0, false] call EFUNC(sys_external,allowExternalUse)}, {[(_this select 2) select 0] call EFUNC(sys_external,isRadioShared)}, {}, _params] call ace_interact_menu_fnc_createAction;

_action = [
QGVAR(retrieveRadio),
LELSTRING(sys_external,unshareRadio),
QPATHTOF(data\icons\unshare.paa),
{[(_this select 2) select 0, false] call EFUNC(sys_external,allowExternalUse)},
{[(_this select 2) select 0] call EFUNC(sys_external,isRadioShared)},
{},
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

private _idx = _pttAssign find _radio;
_txt = localize LSTRING(bindMultiPushToTalk);
_text = LLSTRING(bindMultiPushToTalk);
_icon = QPATHTOF(data\icons\ptt.paa);
if ((_idx > -1) && (_idx < 3)) then {
_txt = format [localize LSTRING(multiPushToTalk), (_idx + 1)];
_text = format [LLSTRING(multiPushToTalk), _idx + 1];
_icon = format [QPATHTOF(data\icons\ptt_%1.paa), _idx + 1];
};

_action = [QGVAR(mpttAssign), _txt, "", {}, {true}, {_this call FUNC(radioPTTChildrenActions);}, _params] call ace_interact_menu_fnc_createAction;
_action = [
QGVAR(mpttAssign),
_text,
_icon,
{},
{true},
LINKFUNC(radioPTTChildrenActions),
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
} else {
private _action = [QGVAR(openRadio), localize ELSTRING(sys_gui,Open), "", {[((_this select 2) select 0)] call EFUNC(sys_radio,openRadio)}, {true}, {}, _params] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(openRadio),
LELSTRING(sys_gui,Open),
QPATHTOF(data\icons\open.paa),
{[((_this select 2) select 0)] call EFUNC(sys_radio,openRadio)},
{true},
{},
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

if (GVAR(connectorsEnabled)) then {
private _action = [QGVAR(connectors), "Connectors", "\idi\acre\addons\ace_interact\data\icons\connector4.paa", {}, {true}, {_this call FUNC(generateConnectors);}, _params] call ace_interact_menu_fnc_createAction;
private _action = [
QGVAR(connectors),
LLSTRING(connectors),
QPATHTOF(data\icons\connector4.paa),
{},
{true},
LINKFUNC(generateConnectors),
_params
] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

_actions;
_actions
20 changes: 10 additions & 10 deletions addons/ace_interact/fnc_radioListChildrenActions.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -34,26 +34,26 @@ private _pttAssign = [] call EFUNC(api,getMultiPushToTalkAssignment);
_x,
_name,
_picture,
{
[(_this select 2) select 0] call EFUNC(sys_radio,openRadio)
},
{[(_this select 2) select 0] call EFUNC(sys_radio,openRadio)},
{true},
{_this call FUNC(radioChildrenActions)},
LINKFUNC(radioChildrenActions),
[_x, _isActive, _pttAssign]
] call ace_interact_menu_fnc_createAction;

_actions pushBack [_action, [], _target];
} forEach _radioList;

private _text = localize LSTRING(lowerHeadset);
if (EGVAR(sys_core,lowered)) then { _text = localize LSTRING(raiseHeadset); };
private _action = [QGVAR(toggleHeadset), _text, "", {[] call EFUNC(sys_core,toggleHeadset)}, {true}, {}, []] call ace_interact_menu_fnc_createAction;
private _text = [LLSTRING(lowerHeadset), LLSTRING(raiseHeadset)] select EGVAR(sys_core,lowered);
private _icon = [QPATHTOF(data\icons\lower_headset.paa), QPATHTOF(data\icons\raise_headset.paa)] select EGVAR(sys_core,lowered);
private _action = [QGVAR(toggleHeadset), _text, _icon, {[] call EFUNC(sys_core,toggleHeadset)}, {true}, {}, []] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];

if (!EGVAR(sys_core,automaticAntennaDirection)) then {
_text = localize LSTRING(bendAntenna);
private _dir = acre_player getVariable [QEGVAR(sys_core,antennaDirUp), false];
if (_dir) then { _text = localize LSTRING(straightenAntenna);};
_action = [QGVAR(antennaDirUp), _text, "", {[] call EFUNC(sys_components,toggleAntennaDir)}, {true}, {}, []] call ace_interact_menu_fnc_createAction;
private _text = [LLSTRING(bendAntenna), LLSTRING(straightenAntenna)] select _dir;
private _icon = [QPATHTOF(data\icons\bend_antenna.paa), QPATHTOF(data\icons\straighten_antenna.paa)] select _dir;

_action = [QGVAR(antennaDirUp), _text, _icon, {[] call EFUNC(sys_components,toggleAntennaDir)}, {true}, {}, []] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};

Expand Down
32 changes: 16 additions & 16 deletions addons/ace_interact/fnc_radioPTTChildrenActions.sqf
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
#include "script_component.hpp"
/*
* Author: ACRE2Team
* SHORT DESCRIPTION
* Create and return ace actions for assigning Push-To-Talk buttons.
*
* Arguments:
* 0: ARGUMENT ONE <TYPE>
* 1: ARGUMENT TWO <TYPE>
* 0: Target (Player) <OBJECT>
* 1: Player <OBJECT>
* 2: Arguments <ARRAY>
* 0: Radio ID <STRING>
* 1: Unused <ANY>
* 2: The array of radio ID’s which are assigned to each PTT key. These are returned in order, from key 1-3 <ARRAY>
*
* Return Value:
* RETURN VALUE <TYPE>
* ACE actions <ARRAY>
*
* Example:
* [ARGUMENTS] call acre_ace_interact_fnc_radioPTTChildrenActions
* _this call acre_ace_interact_fnc_radioPTTChildrenActions
*
* Public: No
*/
Expand All @@ -22,17 +26,13 @@ _params params ["_radio", "", "_pttAssign"];
private _actions = [];
private _idx = _pttAssign find _radio;

if (_idx != 0) then {
private _action = [QGVAR(mpttAssign1), format [localize LSTRING(setAsMultiPTT), 1], "", {(_this + [0]) call FUNC(actionSetMTT)}, {true}, {}, _params] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};
if (count _pttAssign > 1 and _idx != 1) then {
private _action = [QGVAR(mpttAssign2), format [localize LSTRING(setAsMultiPTT), 2], "", {(_this + [1]) call FUNC(actionSetMTT)}, {true}, {}, _params] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};
if (count _pttAssign > 2 and _idx != 2) then {
private _action = [QGVAR(mpttAssign3), format [localize LSTRING(setAsMultiPTT), 3], "", {(_this + [2]) call FUNC(actionSetMTT)}, {true}, {}, _params] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
for "_i" from 1 to 3 do {
if (count _pttAssign > (_i - 1) && _idx isNotEqualTo (_i - 1)) then {
private _text = format [LLSTRING(setAsMultiPTT), _i];
private _icon = format [QPATHTOF(data\icons\ptt_%1.paa), _i];
private _action = [format [QGVAR(mpttAssign%1), _i], _text, _icon, LINKFUNC(actionSetMTT), {true}, {}, [_radio, _pttAssign, _i]] call ace_interact_menu_fnc_createAction;
_actions pushBack [_action, [], _target];
};
};

_actions
3 changes: 3 additions & 0 deletions addons/main/script_macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,9 @@ SQF equivalent of extensions/src/ACRE2Shared/Types.h

// Icons
#define ICON_RADIO_CALL "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\call_ca.paa"
#define ICON_INTERCOM_CREW "\a3\ui_f\data\IGUI\Cfg\Actions\getindriver_ca.paa"
#define ICON_INTERCOM_AIRCREW "\a3\ui_f\data\IGUI\Cfg\Actions\getinpilot_ca.paa"
#define ICON_INTERCOM_PAX "\a3\ui_f\data\IGUI\Cfg\Actions\getincargo_ca.paa"

#define BASE_CLASS_CONFIG(configName) call { private _baseClass = getText(configFile >> "CfgWeapons" >> configName >> "acre_baseClass"); if (_baseClass == "") then { _baseClass = getText(configFile >> "CfgVehicles" >> configName >> "acre_baseClass"); }; _baseClass }

Expand Down
Loading