Skip to content

Commit

Permalink
Merge pull request #1485 from 10Dozen/dzn_disposalsInBackpack
Browse files Browse the repository at this point in the history
  • Loading branch information
commy2 committed Dec 18, 2021
2 parents 45e8d9b + 54a5907 commit ac0895b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
6 changes: 6 additions & 0 deletions addons/disposable/XEH_preInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ GVAR(NormalLaunchers) = [] call CBA_fnc_createNamespace;
GVAR(LoadedLaunchers) = [] call CBA_fnc_createNamespace;
GVAR(UsedLaunchers) = [] call CBA_fnc_createNamespace;
GVAR(magazines) = [];
GVAR(BackpackLaunchers) = createHashMap;
GVAR(MagazineLaunchers) = [] call CBA_fnc_createNamespace;

private _cfgWeapons = configFile >> "CfgWeapons";
Expand All @@ -36,6 +37,7 @@ private _cfgMagazines = configFile >> "CfgMagazines";
private _launcher = configName _x;
private _magazine = configName (_cfgMagazines >> (getArray (_cfgWeapons >> _launcher >> "magazines") select 0));
getArray _x params ["_loadedLauncher", "_usedLauncher"];
private _fitsInBackpacks = TYPE_BACKPACK in getArray (configFile >> "CfgWeapons" >> _loadedLauncher >> "WeaponSlotsInfo" >> "allowedSlots");

GVAR(LoadedLaunchers) setVariable [_launcher, _loadedLauncher];
GVAR(UsedLaunchers) setVariable [_launcher, _usedLauncher];
Expand All @@ -48,6 +50,10 @@ private _cfgMagazines = configFile >> "CfgMagazines";
GVAR(MagazineLaunchers) setVariable [_magazine, _loadedLauncher];
};

if (_fitsInBackpacks) then {
GVAR(BackpackLaunchers) set [_loadedLauncher, true];
};

// check if mass entries add up
private _massLauncher = getNumber (_cfgWeapons >> _launcher >> "WeaponSlotsInfo" >> "mass");
private _massMagazine = getNumber (_cfgMagazines >> _magazine >> "mass");
Expand Down
5 changes: 3 additions & 2 deletions addons/disposable/fnc_replaceMagazineCargo.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ private _isBackpack = getNumber (configOf _box >> "isBackpack") != -1;
_x params ["_magazine", "_ammo"];

if (_magazine in GVAR(magazines)) then {
if !(_isBackpack) then {
_box addWeaponCargoGlobal [GVAR(MagazineLaunchers) getVariable _magazine, 1];
private _loadedLauncher = GVAR(MagazineLaunchers) getVariable _magazine;
if (!_isBackpack || {_loadedLauncher in GVAR(BackpackLaunchers)}) then {
_box addWeaponCargoGlobal [_loadedLauncher, 1];
};
} else {
_box addMagazineAmmoCargo [_magazine, 1, _ammo];
Expand Down
4 changes: 4 additions & 0 deletions addons/disposable/script_component.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@
#include "\a3\ui_f\hpp\defineResincl.inc"

#define WEAPON_MAGAZINES(unit,weapon) (weaponsItems (unit) select {_x select 0 == (weapon)} param [0, []] select {_x isEqualType []})

#define TYPE_VEST 701
#define TYPE_UNIFORM 801
#define TYPE_BACKPACK 901

0 comments on commit ac0895b

Please sign in to comment.