mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #2257 from jonpas/parseList
Parse List Common Function
This commit is contained in:
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Makes a list from a string using comma as a delimiter, optionally remove whitespace and check each for object existence.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Text <STRING>
|
||||
* 1: Trim Whitespace <BOOL>
|
||||
* 2: Check Nil <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* Parsed List <ARRAY>
|
||||
*
|
||||
* Example:
|
||||
* ["text", true, false] call ace_slideshow_fnc_makeList
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_splittedList", "_listTrimmedWhitespace", "_nilCheckPassedList"];
|
||||
params ["_list", "_trimWhitespace", "_checkNil"];
|
||||
|
||||
// Split using comma delimiter
|
||||
_splittedList = [_list, ","] call BIS_fnc_splitString;
|
||||
|
||||
// Remove whitespace
|
||||
_listTrimmedWhitespace = [];
|
||||
if (_trimWhitespace) then {
|
||||
{
|
||||
_listTrimmedWhitespace pushBack ([_x] call CBA_fnc_trim);
|
||||
nil
|
||||
} count _splittedList;
|
||||
_list = _listTrimmedWhitespace;
|
||||
};
|
||||
|
||||
// Check for object existence
|
||||
_nilCheckPassedList = "";
|
||||
if (_checkNil) then {
|
||||
{
|
||||
if !(isNil _x) then {
|
||||
if (_nilCheckPassedList == "") then {
|
||||
_nilCheckPassedList = _x;
|
||||
} else {
|
||||
_nilCheckPassedList = _nilCheckPassedList + "," + _x;
|
||||
};
|
||||
};
|
||||
} count _list;
|
||||
|
||||
// Add Array characters and parse into array
|
||||
_list = "[" + _nilCheckPassedList + "]";
|
||||
_list = [] call compile _list;
|
||||
};
|
||||
|
||||
TRACE_4("Lists",_splittedList,_listTrimmedWhitespace,_nilCheckPassedList,_list);
|
||||
|
||||
_list // return
|
@ -24,10 +24,10 @@ if !(_activated) exitWith {};
|
||||
if (isNull _logic) exitWith {};
|
||||
|
||||
// Extract variables from logic
|
||||
_objects = [_logic getVariable ["Objects", ""], true, true] call FUNC(makeList);
|
||||
_controllers = [_logic getVariable ["Controllers", ""], true, true] call FUNC(makeList);
|
||||
_images = [_logic getVariable ["Images", ""], true, false] call FUNC(makeList);
|
||||
_names = [_logic getVariable ["Names", ""], true, false] call FUNC(makeList);
|
||||
_objects = [_logic getVariable ["Objects", ""], true, true] call EFUNC(common,parseList);
|
||||
_controllers = [_logic getVariable ["Controllers", ""], true, true] call EFUNC(common,parseList);
|
||||
_images = [_logic getVariable ["Images", ""], false, false] call EFUNC(common,parseList);
|
||||
_names = [_logic getVariable ["Names", ""], false, false] call EFUNC(common,parseList);
|
||||
_duration = _logic getVariable ["Duration", 0];
|
||||
|
||||
// Objects synced to the module
|
||||
|
Reference in New Issue
Block a user