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