diff --git a/AntistasiOfficial.Altis/AI/hasRadio.sqf b/AntistasiOfficial.Altis/AI/hasRadio.sqf index 082764b2..4f94fbe7 100644 --- a/AntistasiOfficial.Altis/AI/hasRadio.sqf +++ b/AntistasiOfficial.Altis/AI/hasRadio.sqf @@ -5,6 +5,8 @@ private _result = false; call { if ("ItemRadio" in assignedItems _unit) exitWith {_result = true}; + if (activeACRE) exitWith {_result = _unit call acre_api_fnc_hasRadio}; + if (activeTFAR) exitWith { if (count (_unit call TFAR_fnc_radiosList) > 0) then { _result = true; diff --git a/AntistasiOfficial.Altis/Functions/fn_detectACRE.sqf b/AntistasiOfficial.Altis/Functions/fn_detectACRE.sqf new file mode 100644 index 00000000..c915ef98 --- /dev/null +++ b/AntistasiOfficial.Altis/Functions/fn_detectACRE.sqf @@ -0,0 +1,5 @@ +activeACRE = false; + +if (isClass (configFile >> "CfgPatches" >> "acre_main")) then { + activeACRE = true; +}; diff --git a/AntistasiOfficial.Altis/Functions/functionList.hpp b/AntistasiOfficial.Altis/Functions/functionList.hpp index 1d8a068d..e7ff5351 100644 --- a/AntistasiOfficial.Altis/Functions/functionList.hpp +++ b/AntistasiOfficial.Altis/Functions/functionList.hpp @@ -138,6 +138,7 @@ class AS { class initialiseFIAUnit {}; class initialiseFIAGarrisonUnit {}; class detectTFAR {}; + class detectACRE {}; class spawnBunker {}; class respawnRoadblock {}; class createPatrolMarker {}; diff --git a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal.sqf b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal.sqf index 631c1ece..7efb30a7 100644 --- a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal.sqf +++ b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal.sqf @@ -820,6 +820,11 @@ switch _mode do { _radioName = getText(configfile >> "CfgWeapons" >> _return1 >> "tf_parent"); if!(_radioName isEqualTo "")then{_return1 = _radioName;}; + // ACRE get base class + if ([_return1] call acre_api_fnc_isRadio) then { + _return1 = [_return1] call acre_api_fnc_getBaseRadio; + }; + _return1; }; case IDC_RSCDISPLAYARSENAL_TAB_MAP; @@ -1682,13 +1687,18 @@ switch _mode do { }; }foreach assignedItems player; - //TFAR FIX _OldItemUnequal = _oldItem; if(_index == IDC_RSCDISPLAYARSENAL_TAB_COMPASS)then{ + //TFAR FIX _radioName = getText(configfile >> "CfgWeapons" >> _oldItem >> "tf_parent"); if!(_radioName isEqualTo "")exitWith{ _OldItemUnequal = _radioName; }; + + // ACRE get base class + if ([_oldItem] call acre_api_fnc_isRadio) then { + _OldItemUnequal = [_oldItem] call acre_api_fnc_getBaseRadio; + }; }; if (_oldItem != _item) then { diff --git a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_addItem.sqf b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_addItem.sqf index a281847a..a3a75924 100644 --- a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_addItem.sqf +++ b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_addItem.sqf @@ -26,6 +26,12 @@ if(typeName (_this select 0) isEqualTo "SCALAR")then{//[_index, _item] and [_ind private _radioName = getText(configfile >> "CfgWeapons" >> _item >> "tf_parent"); if!(_radioName isEqualTo "")then{_item = _radioName}; + // ACRE get base class + if ([_item] call acre_api_fnc_isRadio) then { + _item = [_item] call acre_api_fnc_getBaseRadio; + }; + + //update private _playersInArsenal = +(server getVariable ["jna_playersInArsenal",[]]); if!(0 in _playersInArsenal)then{_playersInArsenal pushBackUnique 2;}; diff --git a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_itemType.sqf b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_itemType.sqf index 1b06abe7..a3a3309e 100644 --- a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_itemType.sqf +++ b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_itemType.sqf @@ -54,6 +54,7 @@ _return = -1; private ["_weaponType","_weaponTypeCategory"]; _weaponType = (_item call bis_fnc_itemType); _weaponTypeCategory = _weaponType select 0; +private _configCfgWeapons = configFile >> "CfgWeapons"; private ["_weaponTypeSpecific"]; _weaponTypeSpecific = _weaponType select 1; @@ -68,6 +69,12 @@ if (activeACE) then { if (_item in aceItems) then {_weaponTypeSpecific = "FirstAidKit"}; }; }; + +if (activeACRE) then { + if (_item isKindOf ["CBA_MiscItem", (_configCfgWeapons)]) then { + _weaponTypeSpecific = "FirstAidKit"; + }; +}; INITTYPES { diff --git a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_loadInventory.sqf b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_loadInventory.sqf index 95e54136..832a4a05 100644 --- a/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_loadInventory.sqf +++ b/AntistasiOfficial.Altis/JeroenArsenal/JNA/fn_arsenal_loadInventory.sqf @@ -176,6 +176,11 @@ _assignedItems = ((_inventory select 9) + [_inventory select 3] + [_inventory se _item =_radioName; }; + // ACRE get base class + if ([_item] call acre_api_fnc_isRadio) then { + _item = [_item] call acre_api_fnc_getBaseRadio; + }; + call { if ([_itemCounts select _index, _item] call jn_fnc_arsenal_itemCount == -1) exitWith { player linkItem _item; diff --git a/AntistasiOfficial.Altis/Municion/accionArsenal.sqf b/AntistasiOfficial.Altis/Municion/accionArsenal.sqf index fc65c0be..fc9f8f03 100644 --- a/AntistasiOfficial.Altis/Municion/accionArsenal.sqf +++ b/AntistasiOfficial.Altis/Municion/accionArsenal.sqf @@ -45,12 +45,22 @@ if (activeTFAR) then { } forEach ((items _unit) + (assignedItems _unit) - (weapons _unit)); } else { - { - if (!(_x in unlockedItems)) then { - _items pushBack _x; + if (activeACRE) then { + if (!(_x in unlockedItems)) then { + if !([_x] call acre_api_fnc_isRadio) then { + _items pushBack _x; + }; }; - } forEach ((items _unit) + (assignedItems _unit) - (weapons _unit)); + } + else + { + { + if (!(_x in unlockedItems)) then { + _items pushBack _x; + }; + } forEach ((items _unit) + (assignedItems _unit) - (weapons _unit)); }; +}; { _ameter = false; diff --git a/AntistasiOfficial.Altis/initVar.sqf b/AntistasiOfficial.Altis/initVar.sqf index 4c43d46b..03dcacd1 100644 --- a/AntistasiOfficial.Altis/initVar.sqf +++ b/AntistasiOfficial.Altis/initVar.sqf @@ -195,6 +195,7 @@ if !(isnil "XLA_fnc_addVirtualItemCargo") then { }; [] call AS_fnc_detectTFAR; +[] call AS_fnc_detectACRE; FIA_texturedVehicles = []; FIA_texturedVehicleConfigs = []; @@ -225,6 +226,7 @@ publicVariable "membersPool"; publicVariable "vehInGarage"; publicVariable "reportedVehs"; publicVariable "activeACE"; +publicVariable "activeACRE"; publicVariable "activeTFAR"; publicVariable "activeXLA"; publicVariable "activeACEhearing"; diff --git a/AntistasiOfficial.Altis/onPlayerRespawn.sqf b/AntistasiOfficial.Altis/onPlayerRespawn.sqf index df65ff77..62bce44e 100644 --- a/AntistasiOfficial.Altis/onPlayerRespawn.sqf +++ b/AntistasiOfficial.Altis/onPlayerRespawn.sqf @@ -52,7 +52,7 @@ removeAllItemsWithMagazines _newUnit; removeBackpackGlobal _newUnit; removeVest _newUnit; //if (!("ItemGPS" in unlockedItems) AND ("ItemGPS" in (assignedItems _newUnit))) then {_newUnit unlinkItem "ItemGPS"}; Stef disabled because no unlock and giving an annoying error message clientside sometime -if ((!activeTFAR) AND ("ItemRadio" in (assignedItems player)) AND !("ItemRadio" in unlockedItems)) then {player unlinkItem "ItemRadio"}; +if (!(activeTFAR OR activeACRE) AND ("ItemRadio" in (assignedItems player)) AND !("ItemRadio" in unlockedItems)) then {player unlinkItem "ItemRadio"}; if (!isPlayer (leader group player)) then {(group player) selectLeader player}; call AS_fnc_initPlayerEH; diff --git a/README.md b/README.md index 06291bde..cd2ffa53 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ We're looking for more coders, every contribution is appreciated! # Mods The mission has no dependencies, however it can detect the following mods. -* **CBA**, **TFAR**, RHS-**AFRF**+**GREF**(replace AAF, CSAT), RHS-**USAF**(replace NATO), **ACE**, **inidibi2**(multiple saves). +* **CBA**, **ACRE**, **TFAR**, RHS-**AFRF**+**GREF**(replace AAF, CSAT), RHS-**USAF**(replace NATO), **ACE**, **inidibi2**(multiple saves). Client side mods, as long they don't affect AI, are generally ok. Here's some suggestions * Dusty retexture project, JSRS, Enhanced Movement, Blastcore