summaryrefslogtreecommitdiffstats
path: root/Common/Functions/Common_GetTurretsMags.sqf
blob: f22656773b9b48c16dfcfe5b3330bde34ffa2243 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* Adapted from BIS turret's function. */
private ['_entry','_turrets','_turretIndex'];
_entry = _this select 0;

_turrets = [];
_turretIndex = 0;

//Explore all turrets and sub-turrets recursively.
for '_i' from 0 to ((count _entry) - 1) do
{
	private ['_subEntry'];
	_subEntry = _entry select _i;
	
	if (isClass _subEntry) then
	{
		private ['_hasGunner'];
		_hasGunner = [_subEntry, 'hasGunner'] call BIS_fnc_returnConfigEntry;

		//Make sure the entry was found.
		if !(isNil '_hasGunner') then 
		{
			if (_hasGunner == 1) then 
			{
				_turrets = _turrets + [[_turretIndex],getArray(_subEntry >> 'magazines')];
				
				//Include sub-turrets, if present.
				if (isClass (_subEntry >> 'Turrets')) then 
				{
					_turrets = _turrets + [[_subEntry >> 'Turrets'] call GetTurretsMags];
				} 
				else 
				{
					_turrets = _turrets + [[]];
				};
			};
		};

		_turretIndex = _turretIndex + 1;
	};
};

_turrets