ACE3/addons/bft/functions/fnc_checkItem.sqf
2016-09-03 09:35:37 +02:00

52 lines
1.6 KiB
Plaintext

/*
* Author: Glowbal
*
*
* Arguments:
* 0: object <OBJECT>
* 1: item <STRING>
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_item"];
private ["_magazine", "_previousMags", "_newMagName", "_newMags", "_magID"];
if !(local _unit) exitwith {};
if (isText (configFile >> "CfgWeapons" >> _item >> QGVAR(deviceType)) && {getText(configFile >> "CfgWeapons" >> _item >> QGVAR(deviceType)) != ""}) then {
if !(isClass (configFile >> "ACE_BFT" >> "Devices" >> (getText(configFile >> "CfgWeapons" >> _item >> QGVAR(deviceType))))) exitwith {};
systemChat format["%1 BFT enabled item %2", _unit, _item];
diag_log format["%1 BFT enabled item %2", _unit, _item];
_magazine = getText (configFile >> "CfgWeapons" >> _item >> QGVAR(magazineItem));
if (_magazine != "") then {
systemChat format["%1 replacing by %2", _item, _magazine];
diag_log format["%1 replacing by %2", _item, _magazine];
_unit removeItem _item;
_previousMags = magazinesDetail _unit;
_unit addMagazine _magazine;
_newMags = (magazinesDetail _unit) - _previousMags;
if ((count _newMags) == 0) exitWith {ERROR("failed to add magazine (inventory full?)");};
_newMagName = _newMags select 0;
_magID = [_newMagName] call FUNC(getMagazineID);
systemChat format["%1 id %2", _item, _magID];
diag_log format["%1 id %2", _item, _magID];
if (_magID != "") then {
GVAR(pendingIdAssignmentList) pushback _magID;
["bft_itemCreated", [_unit, _item, _magazine, _magID]] call EFUNC(common,serverEvent);
};
};
};