Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fe4ed52
count treatment items
BrettMayson Mar 1, 2024
e88afa6
getCountofItem
BrettMayson Mar 2, 2024
d05bb52
getCountofItem fix
BrettMayson Mar 2, 2024
41eafbc
convert painkillers to magazine
BrettMayson Mar 3, 2024
936897e
use isclass
BrettMayson Mar 3, 2024
d8cac46
forget to change variable
BrettMayson Mar 3, 2024
5c15384
Update addons/medical_treatment/functions/fnc_hasItem.sqf
BrettMayson Mar 3, 2024
65dfa6b
better magazine adjustment
BrettMayson Mar 4, 2024
ef251a4
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
BrettMayson Mar 4, 2024
5137885
Update addons/medical_treatment/functions/fnc_medication.sqf
BrettMayson Mar 4, 2024
21a6b5b
Update addons/medical_treatment/functions/fnc_treatmentFailure.sqf
BrettMayson Mar 4, 2024
81be584
Update docs/wiki/framework/arsenal-framework.md
BrettMayson Mar 4, 2024
a343b38
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
BrettMayson Mar 6, 2024
ee070a6
Header
LinkIsGrim Mar 6, 2024
8a0d64f
use switch statement in fnc_useItem
LinkIsGrim Mar 6, 2024
601524d
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
johnb432 Mar 7, 2024
e488e13
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
BrettMayson Mar 10, 2024
a701251
only check adding to mags that are not full
BrettMayson Mar 11, 2024
7709779
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
johnb432 Mar 11, 2024
cbed198
Update fnc_getCountOfItem.sqf
johnb432 Mar 13, 2024
c6ebef8
Optimisations & header fix
johnb432 Mar 13, 2024
f53063d
Update addons/common/functions/fnc_adjustMagazineAmmo.sqf
johnb432 Mar 16, 2024
f5dc797
Fixed vehicle implementation
johnb432 Mar 16, 2024
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
47 changes: 30 additions & 17 deletions addons/common/functions/fnc_adjustMagazineAmmo.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,42 @@

params ["_unit", "_item", ["_count", -1]];

private _lowestCount = 999;
private _lowestIndex = 0;

if (_unit isKindOf "CAManBase") then {
private _magazines = [];
{
// get matching non-loaded mags
private _magazines = (magazinesAmmoFull _unit) select {(_x select 0) == _item && _x select 2 == false};
// use items in uniform first, then vest, then backpack
_magazines = _magazines apply {
_x params ["_class", "_ammo", "_loaded", "", "_location"];
if (_class == _item && !_loaded) then {
_magazines pushBack _x;
if (_ammo < _lowestCount) then {
_lowestCount = _ammo;
_lowestIndex = count _magazines - 1;
[_class, _ammo, switch (_location) do {
case "Uniform": {
0
};
};
} forEach (magazinesAmmoFull _unit);
if (_magazines isEqualTo []) exitWith {};
case "Vest": {
1
};
case "Backpack": {
2
};
}]
};
_magazines sort true;
_unit removeMagazines _item;
Comment thread
BrettMayson marked this conversation as resolved.
Outdated
(_magazines select _lowestIndex) params ["_class", "_ammo", "_loaded", "", "_location"];
_magazines set [_lowestIndex, [_class, _ammo + _count, _loaded, "", /* tolower _location - no command, will always go to first empty container */ ""]];
(_magazines select 0) params ["_class", "_ammo", "_location"];
_magazines set [0, [_class, _ammo + _count, _location]];
{
_x params ["_class", "_ammo", "_loaded", "", "_location"];
_x params ["_class", "_ammo", "_location"];
if (_ammo > 0) then {
[_unit, _class, _location, _ammo] call FUNC(addToInventory);
switch (_location) do {
Comment thread
BrettMayson marked this conversation as resolved.
Outdated
case 0: {
uniformContainer _unit
};
case 1: {
vestContainer _unit
};
case 2: {
backpackContainer _unit
};
} addMagazineAmmoCargo [_class, 1, _ammo];
};
} forEach _magazines;
_ammo + _count <= 0
Expand Down