ACE3/addons/common/functions/fnc_parseList.sqf
johnb432 8f46ffd8d5
General - Change count to forEach where appropriate (#9890)
count -> forEach

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2024-04-04 08:15:26 -03:00

56 lines
1.2 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: Glowbal, Jonpas
* Makes a list from a string using comma as a delimiter, optionally trim or remove whitespace and check each for object existence.
*
* Arguments:
* 0: List <STRING>
* 1: Remove or Trim Whitespace <BOOL> (default: false (trim))
* 2: Check Nil <BOOL> (default: false)
*
* Return Value:
* Parsed List <ARRAY>
*
* Example:
* ["text", true, false] call ace_common_fnc_parseList
*
* Public: No
*/
params ["_list", ["_removeWhitespace", false], ["_checkNil", false]];
// Split using comma delimiter
_list = _list splitString ",";
TRACE_1("Splitted List",_list);
// Remove or Trim Whitespace
private _whitespaceList = [];
{
if (_removeWhitespace) then {
_whitespaceList pushBack ([_x] call CBA_fnc_removeWhitespace);
} else {
_whitespaceList pushBack ([_x] call CBA_fnc_trim);
};
} forEach _list;
_list = _whitespaceList;
TRACE_1("Whitespace List",_list);
// Check for object existence
if (_checkNil) then {
private _nilCheckedList = [];
{
if (!isNil _x) then {
_nilCheckedList pushBack (missionNamespace getVariable _x);
};
} forEach _list;
_list = _nilCheckedList;
};
TRACE_1("Final List",_list);
_list