mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
|
#include "script_component.hpp"
|
||
|
/*
|
||
|
* Author: mharis001
|
||
|
* Handles the player loadout changed event.
|
||
|
*
|
||
|
* Arguments:
|
||
|
* 0: Player <OBJECT>
|
||
|
*
|
||
|
* Return Value:
|
||
|
* None
|
||
|
*
|
||
|
* Example:
|
||
|
* [player] call ace_intelitems_fnc_handleLoadout
|
||
|
*
|
||
|
* Public: No
|
||
|
*/
|
||
|
|
||
|
params ["_player"];
|
||
|
|
||
|
private _allIndices = [];
|
||
|
|
||
|
// Handle magazine ids with missing index assignments
|
||
|
private _cfgMagazines = configFile >> "CfgMagazines";
|
||
|
private _magazines = magazines _player;
|
||
|
|
||
|
{
|
||
|
if (getNumber (_cfgMagazines >> _x >> QGVAR(intel)) == 1) then {
|
||
|
private _magazineIds = [_player, _x] call CBA_fnc_getMagazineIndex;
|
||
|
|
||
|
{
|
||
|
private _index = GVAR(intelMap) getVariable _x;
|
||
|
|
||
|
if (isNil "_index") then {
|
||
|
// Need new intel index from server
|
||
|
[QGVAR(handleMagIndex), _x] call CBA_fnc_serverEvent;
|
||
|
} else {
|
||
|
// Add valid index to array of all indices
|
||
|
_allIndices pushBack _index;
|
||
|
};
|
||
|
} forEach _magazineIds;
|
||
|
};
|
||
|
} forEach (_magazines arrayIntersect _magazines);
|
||
|
|
||
|
// Close any open controls if player no longer has needed magazine
|
||
|
{
|
||
|
private _index = _x getVariable QGVAR(index);
|
||
|
|
||
|
if !(_index in _allIndices) then {
|
||
|
[_x] call FUNC(deleteControl);
|
||
|
};
|
||
|
} forEach +GVAR(controlsGroups);
|