diff --git a/addons/ace_interact/stringtable.xml b/addons/ace_interact/stringtable.xml
index ac35f7049..05b662d6a 100644
--- a/addons/ace_interact/stringtable.xml
+++ b/addons/ace_interact/stringtable.xml
@@ -23,7 +23,7 @@
%1 Kanal: %2
%1 チャンネル: %2
%1 Chn: %2
- %1 Chn: %2
+ %1 Canale: %2
%1 Canal: %2
%1 채널: %2
%1 Kanał: %2
@@ -33,6 +33,16 @@
%1 Cnl: %2
%1 Kanal:%2
+
+ %1 Bk %2 Ch %3
+ %1 Bk %2 Kn %3
+ %1 Bc %2 Cn %3
+
+
+ Chn %1 NetID %2
+ SP %1 FK-Nr %2
+ Cn %1 Rete %2
+
Lower Headset
Bajar auriculares
diff --git a/addons/sys_core/fnc_getDescriptiveName.sqf b/addons/sys_core/fnc_getDescriptiveName.sqf
index 69d8dc0de..4471baca8 100644
--- a/addons/sys_core/fnc_getDescriptiveName.sqf
+++ b/addons/sys_core/fnc_getDescriptiveName.sqf
@@ -24,8 +24,8 @@ _radioId = toLower _radioId;
// Get the radio's name
private _name = if (_radioId in ACRE_ACCESSIBLE_RACK_RADIOS || {_radioId in ACRE_HEARABLE_RACK_RADIOS}) then {
private _radioRack = [_radioId] call EFUNC(sys_rack,getRackFromRadio);
- private _radioClass = [_radioRack] call EFUNC(sys_rack,getRackBaseClassname);
- getText (configFile >> "CfgAcreComponents" >> _radioClass >> "name")
+ private _rackClass = [_radioRack] call EFUNC(sys_rack,getRackBaseClassname);
+ getText (configFile >> "CfgAcreComponents" >> _rackClass >> "name")
} else {
// Include the owner's name for external radios
private _owner = if (_radioId in ACRE_ACTIVE_EXTERNAL_RADIOS) then {
@@ -38,15 +38,45 @@ private _name = if (_radioId in ACRE_ACCESSIBLE_RACK_RADIOS || {_radioId in ACRE
};
// Display current radio channel
-private _maxChannels = [_radioId, "getState", "channels"] call EFUNC(sys_data,dataEvent);
+private _radioClass = [_radioId] call EFUNC(sys_radio,getRadioBaseClassname);
-private _text = if (isNil "_maxChannels") then {
- // Display frequency for single-channel radios (e.g. AN/PRC-77)
- private _txData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,dataEvent);
- private _currentFreq = HASH_GET(_txData,"frequencyTX");
- format ["%1 %2 MHz", _name, _currentFreq];
-} else {
- format [LELSTRING(ace_interact,channelShort), _name, _radioId call EFUNC(api,getRadioChannel)]
+private _text = switch (_radioClass) do {
+ case "ACRE_PRC77": {
+ // Display frequency for single-channel radios (e.g. AN/PRC-77)
+ private _txData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,dataEvent);
+ private _currentFreq = HASH_GET(_txData,"frequencyTX");
+ format ["%1 %2 MHz", _name, [_currentFreq, 1, 2] call CBA_fnc_formatNumber]
+ };
+ case "ACRE_PRC343": {
+ private _channelRaw = [_radioId, "getCurrentChannel"] call EFUNC(sys_data,dataEvent);
+ private _block = floor (_channelRaw / 16) + 1;
+ private _channel = (_channelRaw % 16) + 1;
+ format [LELSTRING(ace_interact,channelBlockShort), _name, _block, _channel]
+ };
+ case "ACRE_SEM52SL": {
+ private _channel = _radioId call EFUNC(api,getRadioChannel);
+ _channel = switch (_channel) do {
+ case 13: { "H" };
+ case 14: { "P" };
+ default { _channel };
+ };
+ format [LELSTRING(ace_interact,channelShort), _name, _channel]
+ };
+ case "ACRE_SEM70": {
+ private _hashData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,dataEvent);
+ private _description = if (HASH_GET(_hashData,"mode") == "singleChannel") then {
+ // HW (Manual Channel) Mode
+ format ["%1 MHz", [HASH_GET(_hashData,"frequencyTX"), 1, 3] call CBA_fnc_formatNumber]
+ } else {
+ // AKW (Automatic Channel) Mode
+ private _channelNumber = [_radioId, "getCurrentChannel"] call EFUNC(sys_data,dataEvent);
+ format [LELSTRING(ace_interact,channelNetIDShort), (_channelNumber), HASH_GET(_hashData,"networkID")]
+ };
+ format ["%1 %2", _name, _description]
+ };
+ default {
+ format [LELSTRING(ace_interact,channelShort), _name, _radioId call EFUNC(api,getRadioChannel)]
+ };
};
// Display radio keys in front of those which are bound
diff --git a/addons/sys_external/fnc_listChildrenActions.sqf b/addons/sys_external/fnc_listChildrenActions.sqf
index 88c8291e4..f2cb33b35 100644
--- a/addons/sys_external/fnc_listChildrenActions.sqf
+++ b/addons/sys_external/fnc_listChildrenActions.sqf
@@ -43,9 +43,7 @@ private _ownSharedRadios = [acre_player] call FUNC(getSharedExternalRadios);
private _baseRadio = [_x] call EFUNC(api,getBaseRadio);
private _item = configFile >> "CfgWeapons" >> _baseRadio;
- private _displayName = getText (_item >> "displayName") + _owner;
- private _currentChannel = [_x] call EFUNC(api,getRadioChannel);
- _displayName = format [localize ELSTRING(ace_interact,channelShort), _displayName, _currentChannel];
+ private _displayName = [_x] call EFUNC(sys_core,getDescriptiveName);
private _picture = getText (_item >> "picture");
if ([_x, acre_player] call FUNC(checkListChildrenActions)) then {
diff --git a/addons/sys_gsa/fnc_connectChildrenActions.sqf b/addons/sys_gsa/fnc_connectChildrenActions.sqf
index 6376af741..bd58ec500 100644
--- a/addons/sys_gsa/fnc_connectChildrenActions.sqf
+++ b/addons/sys_gsa/fnc_connectChildrenActions.sqf
@@ -31,17 +31,7 @@ private _actions = [];
private _baseRadio = [_x] call EFUNC(api,getBaseRadio);
private _item = configFile >> "CfgWeapons" >> _baseRadio;
- private "_displayName";
- if (_x in ACRE_ACCESSIBLE_RACK_RADIOS || {_x in ACRE_HEARABLE_RACK_RADIOS}) then {
- private _radioRack = [_x] call EFUNC(sys_rack,getRackFromRadio);
- private _radioClass = [_radioRack] call EFUNC(sys_rack,getRackBaseClassname);
- _displayName = getText (configFile >> "CfgAcreComponents" >> _radioClass >> "name");
- } else {
- _displayName = format ["%1%2", getText (_item >> "displayName"), _owner];
- };
-
- private _currentChannel = [_x] call EFUNC(api,getRadioChannel);
- _displayName = format [localize ELSTRING(ace_interact,channelShort), _displayName, _currentChannel];
+ private _displayName = [_x] call EFUNC(sys_core,getDescriptiveName);
private _picture = getText (_item >> "picture");
private _action = [
diff --git a/addons/sys_prc77/radio/fnc_getChannelDescription.sqf b/addons/sys_prc77/radio/fnc_getChannelDescription.sqf
index 18cf463de..40fa259fe 100644
--- a/addons/sys_prc77/radio/fnc_getChannelDescription.sqf
+++ b/addons/sys_prc77/radio/fnc_getChannelDescription.sqf
@@ -11,7 +11,7 @@
* 4: Remote (Unused)
*
* Return Value:
- * Description of the channel in the form "Block x - Channel y"
+ * Description of the channel in the form "Frequency: x.y MHz"
*
* Example:
* ["ACRE_PRC77_ID_1", "getChannelDescription", [], [], false] call acre_sys_prc77_fnc_getChannelDescription
@@ -23,6 +23,6 @@ params ["_radioId", "", "", "", ""];
private _hashData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,dataEvent);
-private _description = format["Frequency: %1 MHz", HASH_GET(_hashData,"frequencyTX")];
+private _description = format["Frequency: %1 MHz", [HASH_GET(_hashData,"frequencyTX"), 1, 2] call CBA_fnc_formatNumber];
_description
diff --git a/addons/sys_rack/fnc_generateMountableRadioActions.sqf b/addons/sys_rack/fnc_generateMountableRadioActions.sqf
index 59f5e6477..9dfe9e97a 100644
--- a/addons/sys_rack/fnc_generateMountableRadioActions.sqf
+++ b/addons/sys_rack/fnc_generateMountableRadioActions.sqf
@@ -28,9 +28,8 @@ _radioList = [_rackClassName, _radioList] call FUNC(getMountableRadios);
{
private _baseRadio = [_x] call EFUNC(api,getBaseRadio);
private _item = configFile >> "CfgWeapons" >> _baseRadio;
- private _displayName = getText (_item >> "displayName");
+ private _displayName = [_x] call EFUNC(sys_core,getDescriptiveName);
private _currentChannel = [_x] call EFUNC(api,getRadioChannel);
- _displayName = format [localize ELSTRING(ace_interact,channelShort), _displayName, _currentChannel];
private _picture = getText (_item >> "picture");
//private _isActive = _x isEqualTo _currentRadio;
diff --git a/addons/sys_sem52sl/radio/fnc_getChannelDescription.sqf b/addons/sys_sem52sl/radio/fnc_getChannelDescription.sqf
index e1d62356d..ce5397b7a 100644
--- a/addons/sys_sem52sl/radio/fnc_getChannelDescription.sqf
+++ b/addons/sys_sem52sl/radio/fnc_getChannelDescription.sqf
@@ -40,7 +40,11 @@
params ["_radioId", "", "", ""];
-private _channelNumber = [_radioId, "getCurrentChannel"] call EFUNC(sys_data,dataEvent);
-private _description = format ["Channel %1", ([(_channelNumber+1), 2] call CBA_fnc_formatNumber)];
+private _channelNumber = ([_radioId, "getCurrentChannel"] call EFUNC(sys_data,dataEvent)) + 1;
+private _description = switch (_channelNumber) do {
+ case 13: { "Channel H" };
+ case 14: { "Channel P" };
+ default { format ["Channel %1", ([_channelNumber, 2] call CBA_fnc_formatNumber)] };
+};
_description
diff --git a/addons/sys_sem70/radio/fnc_getChannelDescription.sqf b/addons/sys_sem70/radio/fnc_getChannelDescription.sqf
index d786d245f..b8f4d27ac 100644
--- a/addons/sys_sem70/radio/fnc_getChannelDescription.sqf
+++ b/addons/sys_sem70/radio/fnc_getChannelDescription.sqf
@@ -45,10 +45,10 @@ private _hashData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,data
private _description = "";
if (_manualChannel isEqualTo 1) then {
//private _hashData = [_radioId, "getCurrentChannelData"] call EFUNC(sys_data,dataEvent);
- _description = format["Frequency: %1 MHz", HASH_GET(_hashData,"frequencyTX")];
+ _description = format["Frequency: %1 MHz", [HASH_GET(_hashData,"frequencyTX"), 1, 3] call CBA_fnc_formatNumber];
} else {
private _channelNumber = [_radioId, "getCurrentChannel"] call EFUNC(sys_data,dataEvent);
- _description = format["Channel %1 -- Network ID %2", ([(_channelNumber), 1] call CBA_fnc_formatNumber), HASH_GET(_hashData,"networkID")];
+ _description = format["Channel %1 -- Network ID %2", (_channelNumber), HASH_GET(_hashData,"networkID")];
};
_description