Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System - Add Wireless Set No38 radio and 12ft antenna #1323

Open
wants to merge 28 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 22 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
18 changes: 18 additions & 0 deletions addons/sys_antenna/CfgAcreComponents.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,22 @@ class CfgAcreComponents {
binaryGainFile = QPATHTOF(binary\na-701_gain.aba);
compatibleRadios[] = {"ACRE_BF888S"};
};

class ACRE_4FT_AERIAL_ROD: ACRE_BaseAntenna {
name = "4ft Aerial Rod";
shortName = "4ft Aerial Rod";
connector = ACRE_CONNECTOR_ROD;
height = 1.22;
binaryGainFile = QPATHTOF(binary\AerialRod_4ft_gain.aba);
compatibleRadios[] = {"ACRE_WS38"};
};

class ACRE_12FT_AERIAL_ROD: ACRE_BaseAntenna {
name = "12ft Aerial Rod";
shortName = "12ft Aerial Rod";
connector = ACRE_CONNECTOR_ROD;
height = 3.66;
binaryGainFile = QPATHTOF(binary\AerialRod_12ft_gain.aba);
compatibleRadios[] = {"ACRE_WS38"};
};
};
Binary file added addons/sys_antenna/binary/AerialRod_12ft_gain.aba
Binary file not shown.
Binary file added addons/sys_antenna/binary/AerialRod_4ft_gain.aba
Binary file not shown.
2 changes: 2 additions & 0 deletions addons/sys_components/script_acre_component_defines.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@
#define ACRE_CONNECTOR_CONN_MC2127 4
#define ACRE_CONNECTOR_3_8 5
#define ACRE_CONNECTOR_SMA 6
#define ACRE_CONNECTOR_ROD 7

// Racks
#define ACRE_CONNECTOR_CONN_32PIN 6 // 32 Pin is the 152 side connector.
#define ACRE_CONNECTOR_CONN_26PIN 7 // Harris 26 AIC pin - 117F to VRC103
#define ACRE_CONNECTOR_CONN_18PIN 8 // 18pin for the 148 Side connector
#define ACRE_CONNECTOR_CONN_57PIN 9 // 57pin is the SEM70/80/90 interconnecting connector
#define ACRE_CONNECTOR_CONN_14PIN 10 // 14 pin CX-4655
#define ACRE_CONNECTOR_CONN_12PIN 11 // 12 pin for WS-38, interconnecting Wireless Set No. 19 in a vehicle and Wireless Set No. 38
79 changes: 79 additions & 0 deletions addons/sys_gsa/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ class CfgVehicles {
showDisabled = 0;
icon = QPATHTOF(data\vhf30108\ui\icon_antenna_ca.paa);
};

class GVAR(placeAntenna) {
displayName = CSTRING(placeAntenna);
condition = QUOTE([ARR_2(_player,'ACRE_12FT_ANTENNA')] call EFUNC(sys_core,hasItem));
statement = QUOTE([ARR_3(_player,'ACRE_12FT_ANTENNA',false)] call FUNC(deploy));
showDisabled = 0;
icon = QPATHTOF(data\vhf30108\ui\icon_antenna_ca.paa);
};
};
};
};
Expand Down Expand Up @@ -180,4 +188,75 @@ class CfgVehicles {
};
};
};

class ws38_12ft_antenna: House {
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};

scope = 2;
scopeCurator = 2;
scopeArsenal = 2;
displayName = "ACRE WS38 12 feet antenna";
model = QPATHTOEF(sys_ws38,data\Models\ws38_radio_antenna.p3d);
icon = QPATHTOF(data\vhf30108\ui\icon_antenna_ca.paa);
editorPreview = QPATHTOF(data\ws38_antenna\ui\12ft_antenna.jpg);
vehicleClass = "Items";
ace_dragging_canCarry = 1;
ace_dragging_carryPosition[] = {-0.2, 1, 1.3};
ace_dragging_carryDirection = 0;
ace_dragging_ignoreWeightCarry = 1;

class AcreComponents {
componentName = "ACRE_12FT_AERIAL_ROD";
mountedAntenna = "";
mastMount[] = {};
};

class ACE_Actions {
class ACE_MainActions {
selection = "interaction_point";
distance = 10;
condition = "(true)";
position = "[0.2,0.0,-1.5]";

class ACRE_pickup {
selection = "";
displayName = CSTRING(pickUp);
distance = 10;
condition = "true";
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(pickUp));
showDisabled = 0;
exceptions[] = {};
priority = 5;
//icon = "\idi\acre\addons\ace_interact\data\icons\antenna.paa";
};

class ACRE_connect {
selection = "";
displayName = CSTRING(connect);
distance = 10;
condition = QUOTE(!([ARR_2(_player,_target)] call DFUNC(isAntennaConnected)));
statement = QUOTE(true);
insertChildren = QUOTE([ARR_2(_player,_target)] call DFUNC(connectChildrenActions));
showDisabled = 0;
exceptions[] = {};
priority = 5;
icon = "\idi\acre\addons\ace_interact\data\icons\antenna.paa";
};

class ACRE_disconnect {
selection = "";
displayName = CSTRING(disconnect);
distance = 10;
condition = QUOTE([ARR_2(_player,_target)] call DFUNC(isAntennaConnected));
statement = QUOTE([ARR_2(_player,_target)] call DFUNC(disconnect));
showDisabled = 0;
exceptions[] = {};
priority = 5;
icon = "\idi\acre\addons\ace_interact\data\icons\antenna.paa";
};
};
};
};
};
13 changes: 13 additions & 0 deletions addons/sys_gsa/CfgWeapons.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,17 @@ class CfgWeapons {
mass = 100;
};
};

class ACRE_12FT_ANTENNA: CBA_MiscItem {
author[] = {"S. Spartan"};
scope = 2;
displayName = "WS38 12FT Antenna";
descriptionShort = CSTRING(WS3812ftAntenna_description);
model = QPATHTOEF(sys_ws38,data\Models\ws38_aerial_bag.p3d);
picture = QPATHTOF(data\ws38_antenna\ui\icon_bag.paa);

class ItemInfo: CBA_MiscItem_ItemInfo {
mass = 30;
};
};
};
Binary file added addons/sys_gsa/data/ws38_antenna/icon_bag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added addons/sys_gsa/data/ws38_antenna/ui/icon_bag.paa
Binary file not shown.
4 changes: 4 additions & 0 deletions addons/sys_gsa/fnc_deploy.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ switch (_gsaItem) do {
_gsa = "vhf30108spike";
_canDeploy = true;
};
case "ACRE_12FT_ANTENNA" : {
_gsa = "ws38_12ft_antenna";
_canDeploy = true;
};
};

if (_canDeploy) then {
Expand Down
6 changes: 6 additions & 0 deletions addons/sys_gsa/fnc_pickUp.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ switch (_classname) do {
};
};
};
case "ws38_12ft_antenna": {
_item = "ACRE_12FT_ANTENNA";
if (_unit canAdd _item) then {
_canDelete = true;
};
};
};

if (_canDelete) then {
Expand Down
8 changes: 8 additions & 0 deletions addons/sys_gsa/stringtable.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
<Portuguese>Cravar antena com mastro</Portuguese>
<Turkish>Spike'ı Sopa İle Koy</Turkish>
</Key>
<Key ID="STR_ACRE_sys_gsa_placeAntenna">
<English>Place Antenna</English>
<German>Antenne setzen</German>
</Key>
<Key ID="STR_ACRE_sys_gsa_pickup">
<English>Pick up</English>
<Spanish>Recoger</Spanish>
Expand Down Expand Up @@ -183,6 +187,10 @@
<Portuguese>Mastro da antena VHF30108</Portuguese>
<Turkish>VHF30108 Yükseltici Çubuğu</Turkish>
</Key>
<Key ID="STR_ACRE_sys_gsa_WS3812ftAntenna_description">
<English>12ft Antenna for Wireless Set No. 38 Mk. II</English>
<German>12 Fuß Antenne für Wireless Set No. 38 Mk. II</German>
</Key>
<Key ID="STR_ACRE_sys_gsa_inventoryFull">
<English>Inventory full</English>
<Spanish>Inventario lleno</Spanish>
Expand Down
37 changes: 37 additions & 0 deletions addons/sys_rack/CfgAcreRacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,4 +182,41 @@ class CfgAcreComponents {
};
};

class ACRE_WS19 : ACRE_BaseRack {
name = "Wireless Set No. 19";

connectors[] = {
{"Antenna", ACRE_CONNECTOR_ROD},
{"Audio In", ACRE_CONNECTOR_U_283},
{"Audio Out", ACRE_CONNECTOR_U_283},
{"Power In", ACRE_CONNECTOR_U_283},
{"Radio", ACRE_CONNECTOR_CONN_12PIN}
};
defaultComponents[] = {
{0, "ACRE_12FT_AERIAL_ROD"}
};
class Interfaces {
class CfgAcreDataInterface {
getState = QFUNC(getState);
setState = QFUNC(setState);
handleComponentMessage = QEFUNC(sys_data,noApiSystemFunction);

initializeComponent = QFUNC(initializeRack);

attachComponent = QFUNC(attachComponent);
detachComponent = QEFUNC(sys_data,noApiSystemFunction);
mountRadio = QFUNC(ws19MountRadio);
unmountRadio = QFUNC(ws19UnmountRadio);
mountableRadio = QFUNC(ws19MountableRadio);
};
};
class InterfaceClasses {
CfgAcreDataInterface = "DefaultRackInterface";
CfgAcreInteractInterface = "DefaultRadioInterface";
CfgAcreTransmissionInterface = "DefaultRadioInterface";
CfgAcrePhysicalInterface = "DefaultRadioInterface";
};
};


};
5 changes: 5 additions & 0 deletions addons/sys_rack/CfgVehicles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ class CfgVehicles {
};
RADIO_ID_LIST(ACRE_SEM90)

class ACRE_WS19 : ACRE_BaseRack {
displayName = "Wireless Set No. 19";
};
RADIO_ID_LIST(ACRE_WS19)

// Define which vehicles have racks.
class All {
class AcreRacks {};
Expand Down
1 change: 1 addition & 0 deletions addons/sys_rack/XEH_PREP.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,4 @@ PREP_FOLDER(vrc103);
PREP_FOLDER(vrc110);
PREP_FOLDER(vrc111);
PREP_FOLDER(sem90);
PREP_FOLDER(ws19);
7 changes: 7 additions & 0 deletions addons/sys_rack/ws19/__PREP__.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "..\script_component.hpp"

TRACE_1("enter", _this);
Spartan190 marked this conversation as resolved.
Show resolved Hide resolved

PREP_MODULE(ws19,ws19MountRadio);
PREP_MODULE(ws19,ws19UnmountRadio);
PREP_MODULE(ws19,ws19MountableRadio);
27 changes: 27 additions & 0 deletions addons/sys_rack/ws19/fnc_ws19MountRadio.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include "..\script_component.hpp"
/*
* Author: ACRE2Team
* Mount radio classname
*
* Arguments:
* 0: Target Vehicle <OBJECT>
*
* Return Value:
* None
*
* Example:
* [cursorTarget] call acre_sys_rack_fnc_ws19MountRadio
*
* Public: No
*/

params ["_rackId", "", "_eventData", ""];

private _radioId = _eventData;

// 12 Pin Connector
private _attributes = HASH_CREATE;
[_rackId, 4, _radioId, 2, _attributes, false] call EFUNC(sys_components,attachComplexComponent);

//Enable VAA Mode.
[_radioId, "setState", ["powerSource", "VAU"]] call EFUNC(sys_data,dataEvent);
31 changes: 31 additions & 0 deletions addons/sys_rack/ws19/fnc_ws19MountableRadio.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#include "..\script_component.hpp"
/*
* Author: ACRE2Team
* Check if the radio is mountable in the Wireless Set No. 19 rack.
*
* Arguments:
* 0: Unique rack ID <STRING>
* 1: Event type <STRING> (Unused)
* 2: Event data with unique radio ID <STRING>
* 3: Radio data <ARRAY> (Unused)
*
* Return Value:
* Is radio mountable <BOOL>
*
* Example:
* [cursorTarget] call acre_sys_rack_fnc_ws19MountableRadio
*
* Public: No
*/

params ["_rackId", "", "_eventData", ""];

if (([_rackId] call FUNC(getMountedRadio)) != "") exitWith {false}; // If a radio is already mounted we can't mount another.

private _mountable = false;
private _radioId = _eventData;
private _baseClass = toLower (BASE_CLASS_CONFIG(_radioId));

if (_baseClass in ["acre_ws38"]) then { _mountable = true; };

_mountable
26 changes: 26 additions & 0 deletions addons/sys_rack/ws19/fnc_ws19UnmountRadio.sqf
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include "..\script_component.hpp"
/*
* Author: ACRE2Team
* Unmounts the given radio from an Wireless Set No. 19 vehicle rack.
*
* Arguments:
* 0: Unique rack ID <STRING> <Unused>
* 1: Event type <STRING> (Unused)
* 2: Event data with unique radio ID <STRING>
* 3: Radio data <ARRAY> (Unused)
*
* Return Value:
* None
*
* Example:
* [cursorTarget] call acre_sys_rack_fnc_ws19UnmountRadio
*
* Public: No
*/

params ["", "", "_eventData", ""];

private _radioId = _eventData;

//Enable VAA Mode.
[_radioId, "setState", ["powerSource", "BAT"]] call EFUNC(sys_data,dataEvent);
6 changes: 6 additions & 0 deletions addons/sys_radio/stringtable.xml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@
<Key ID="STR_ACRE_sys_radio_ui_CurrentVolume">
<English>Current Volume</English>
</Key>
<Key ID="STR_ACRE_sys_radio_ui_RadioMode">
<English>Radio Mode Selector</English>
</Key>
<Key ID="STR_ACRE_sys_radio_ui_Radiooff">
<English>Radio off</English>
</Key>
Expand All @@ -186,6 +189,9 @@
<Turkish>Şu Anki Kanal</Turkish>
<Portuguese>Canal atual</Portuguese>
</Key>
<Key ID="STR_ACRE_sys_radio_ui_changeFrequency">
<English>Change Frequency</English>
</Key>
<Key ID="STR_ACRE_sys_radio_ui_CurrentChannelBlock">
<English>Current Channel Block</English>
</Key>
Expand Down
9 changes: 9 additions & 0 deletions addons/sys_sounds/CfgAcreSounds.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,5 +111,14 @@ class CfgAcreSounds {
sound = "\idi\acre\addons\sys_sounds\sounds\baofeng\16.b64";
};

class Acre_WS38_start {
sound = QPATHTOF(sounds\WS38\start.b64);
};

class Acre_WS38_end {
sound = QPATHTOF(sounds\WS38\end.b64);
};



};
Loading