ACE3/addons/fortify/functions/fnc_setupModule.sqf

73 lines
1.9 KiB
Plaintext
Raw Normal View History

#include "script_component.hpp"
/*
* Author: PabstMirror
* Handles setup module.
*
* Arguments:
* 0: The module logic <OBJECT>
* 1: Synchronized units <ARRAY>
* 2: Activated <BOOL>
*
* Return Value:
* None
*
* Example:
* [logic, [], true] call ace_fortify_fnc_setupModule
*
* Public: No
*/
params ["_logic", "", "_activated"];
TRACE_2("setupModule",_logic,_activated);
// Note: no changes needed here for cba-setting switch
if (!isServer) exitWith {};
if (!_activated) exitWith {};
private _side = _logic getVariable ["Side", 1];
_side = switch (_side) do {
case (1): {west};
case (2): {east};
case (3): {resistance};
case (4): {civilian};
default {sideUnknown};
};
private _preset = _logic getVariable ["Preset", "small"];
if IS_NUMBER(_preset) then { // Legacy support
_preset = switch (_preset) do {
case 1: {"small"};
case 2: {"medium"};
case 3: {"big"};
case 4: {"smallGreen"};
case 5: {"mediumGreen"};
case 6: {"bigGreen"};
default {"?"};
};
};
private _budget = _logic getVariable ["Budget", -1];
if (!(_budget isEqualType 0)) then {_budget = -1};
private _addToolItem = _logic getVariable ["AddToolItem", false];
if (!(_addToolItem isEqualType false)) then {_addToolItem = false};
private _objects = [_preset] call FUNC(getPlaceableSet);
[QGVAR(registerObjects), [_side, _budget, _objects]] call CBA_fnc_serverEvent;
if (_addToolItem) then {
[{
params ["_side"];
TRACE_1("Adding tool",_side);
{
if (((side group _x) == _side) && {!("ACE_Fortify" in (_x call EFUNC(common,uniqueItems)))}) then {
_x addItem "ACE_Fortify";
};
} forEach allUnits;
}, [_side], 3] call CBA_fnc_waitAndExecute;
};
INFO_4("Fortify Module Actived [Side: %1][Preset: %2][Budget: %3][AutoAdd: %4]",_side,_preset,_budget,_addToolItem);