ACE3/addons/fortify/functions/fnc_getPlaceableSet.sqf
PabstMirror bcbd762748
Fortify - Categories (#9167)
* Fortify - Categories

* Update fnc_registerObjects.sqf

* Apply suggestions from code review

Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com>

* Apply suggestions from code review

* Update docs/wiki/framework/fortify-framework.md

Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com>

* Update addons/fortify/ACEX_Fortify_Presets.hpp

Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>

* just use flat objects array

* Update fnc_getPlaceableSet.sqf

---------

Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com>
Co-authored-by: Jouni Järvinen <rautamiekka@users.noreply.github.com>
2023-03-18 19:23:20 -05:00

50 lines
1.2 KiB
Plaintext

#include "script_component.hpp"
/*
* Author: Kingsley
* Gets placeable object classnames and values.
*
* Arguments:
* 0: Size <STRING>
*
* Return Value:
* Pairs of classnames and costs <ARRAY>
*
* Example:
* ["small"] call ace_fortify_fnc_getPlaceableSet
*
* Public: No
*/
params ["_preset"];
TRACE_1("getPlaceableSet",_preset);
private _config = missionConfigFile >> "ACEX_Fortify_Presets" >> _preset;
if (!isClass _config) then {
_config = configfile >> "ACEX_Fortify_Presets" >> _preset;
};
if (!isClass _config) exitWith {
private _msg = format ["Could not find [%1]", _preset];
ERROR_WITH_TITLE("Preset not found",_msg);
[]
};
private _objects = getArray (_config >> "objects");
// Attempt to filter bad input
_objects = _objects select {
if ((_x isEqualTypeParams ["", 0]) || {_x isEqualTypeParams ["", 0, ""]}) then {
_x params [["_classname", "#", [""]], ["_cost", -1, [0]]];
if (isClass (configFile >> "CfgVehicles" >> _classname)) then {
true
} else {
ERROR_2("Preset [%1] - Classname does not exist",_preset,_classname);
false
};
} else {
ERROR_2("Preset [%1] - Bad data in objects array %2",_preset,_x);
false
};
};
_objects