2015-02-20 05:45:17 +00:00
|
|
|
/*
|
2015-03-24 04:18:00 +00:00
|
|
|
* Author: esteldunedain
|
2015-02-20 05:45:17 +00:00
|
|
|
* Removes a magazine from the unit that has an specific ammo count
|
|
|
|
*
|
2015-09-19 17:26:45 +00:00
|
|
|
* Arguments:
|
|
|
|
* 0: Unit <OBJECT>
|
2015-02-20 05:45:17 +00:00
|
|
|
* 1: Magazine <STRING>
|
|
|
|
* 2: Ammo count <NUMBER>
|
|
|
|
*
|
2015-09-19 17:26:45 +00:00
|
|
|
* Return Value:
|
2015-02-20 05:45:17 +00:00
|
|
|
* None
|
2015-09-19 17:26:45 +00:00
|
|
|
*
|
|
|
|
* Public: No
|
2015-02-20 05:45:17 +00:00
|
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
|
2015-12-14 12:08:19 +00:00
|
|
|
params [["_unit", objNull, [objNull]], ["_magazineType", "", [""]], ["_ammoCount", 0, [0]]];
|
2015-09-19 17:26:45 +00:00
|
|
|
|
2015-12-14 12:08:19 +00:00
|
|
|
private _isRemoved = false;
|
2015-02-20 05:45:17 +00:00
|
|
|
|
|
|
|
// Check uniform
|
2016-02-06 10:42:35 +00:00
|
|
|
private _magazines = magazinesAmmoCargo uniformContainer _unit select {_x select 0 == _magazineType};
|
2015-12-14 12:08:19 +00:00
|
|
|
private _index = _magazines find [_magazineType, _ammoCount];
|
|
|
|
|
2015-02-20 05:45:17 +00:00
|
|
|
if (_index > -1) exitWith {
|
|
|
|
{
|
2015-09-19 17:26:45 +00:00
|
|
|
_unit removeItemFromUniform (_x select 0);
|
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
|
|
|
|
{
|
|
|
|
if (!_isRemoved && (_x isEqualTo [_magazineType,_ammoCount])) then {
|
|
|
|
_isRemoved = true;
|
|
|
|
} else {
|
2015-09-19 17:26:45 +00:00
|
|
|
(uniformContainer _unit) addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|
2015-09-19 17:26:45 +00:00
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
// Check vest
|
2016-02-06 10:42:35 +00:00
|
|
|
_magazines = magazinesAmmoCargo vestContainer _unit select {_x select 0 == _magazineType};
|
2015-12-14 12:08:19 +00:00
|
|
|
_index = _magazines find [_magazineType, _ammoCount];
|
|
|
|
|
2015-02-20 05:45:17 +00:00
|
|
|
if (_index > -1) exitWith {
|
|
|
|
{
|
2015-09-19 17:26:45 +00:00
|
|
|
_unit removeItemFromVest (_x select 0);
|
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
|
|
|
|
{
|
|
|
|
if (!_isRemoved && (_x isEqualTo [_magazineType,_ammoCount])) then {
|
|
|
|
_isRemoved = true;
|
|
|
|
} else {
|
2015-09-19 17:26:45 +00:00
|
|
|
(vestContainer _unit) addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|
2015-09-19 17:26:45 +00:00
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
// Check backpack
|
2016-02-06 10:42:35 +00:00
|
|
|
_magazines = magazinesAmmoCargo backpackContainer _unit select {_x select 0 == _magazineType};
|
2015-12-14 12:08:19 +00:00
|
|
|
_index = _magazines find [_magazineType, _ammoCount];
|
|
|
|
|
2015-02-20 05:45:17 +00:00
|
|
|
if (_index > -1) exitWith {
|
|
|
|
{
|
2015-09-19 17:26:45 +00:00
|
|
|
_unit removeItemFromBackpack (_x select 0);
|
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
|
|
|
|
{
|
|
|
|
if (!_isRemoved && (_x isEqualTo [_magazineType,_ammoCount])) then {
|
|
|
|
_isRemoved = true;
|
|
|
|
} else {
|
2015-09-19 17:26:45 +00:00
|
|
|
(backpackContainer _unit) addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|
2015-09-19 17:26:45 +00:00
|
|
|
false
|
|
|
|
} count _magazines;
|
2015-02-20 05:45:17 +00:00
|
|
|
};
|