ACE3/addons/pylons/functions/fnc_onButtonLoad.sqf
Ozan Eğitmen 1b86063ade Add Pylons Component (#5517)
* Initial commit

* Change order

* ace-ify functions

* Add function headers, tweak onPylonMirror function

* Finish localization

* Fix trivial idc collision

* Styling

* Add self as author

* Add interaction for the dialog

* Add settings to enable menu and change behaviour

* Add strings

* Move changes into pylons component

* Progress

* Only one function left!

* Fix issues with overlapping players, Use LINKFUNC

* Add progress bar

* I need to switch branches

* Remove old pylon weapons from aircraft

* Explicitly set new pylon's ammo to 0

* Replace magic numbers with ID list

* Align controls properly

* Remove space before eol

* Add ability to add/remove FRIES

* 🐛 Whoops

* Fix logic errors

* Value of 1 means helicopter has built-in FRIES

* Add pilot/gunner switch button

Working on those buttons also helped me improve both the static and
on-the-fly (pun intended) parts of the dialog.

* Add quick zeus module

* Add a way to retrieve scripted pylon turrets

Not entirely reliable, but if used in both rearm and pylons, missions
that only use ace will work perfectly.

* Use getNumber default

* Use common's getPylonTurret

* Make dialog close on apply for zeus

* Handle UI Scaling better

* Prevent progressBar from failing in zeus

* Remove unnecessary stringtable key
2017-10-11 14:05:54 -05:00

59 lines
1.8 KiB
Plaintext

/*
* Author: 654wak654
* Loads selected pylon configuration from either config or profileNamespace.
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_pylons_fnc_onButtonLoad
*
* Public: No
*/
#include "script_component.hpp"
[false] call FUNC(onPylonMirror);
(CONTROL(ID_DIALOG) ID_CHECKBOX_MIRROR) cbSetChecked false;
private _loadoutName = ctrlText ID_EDIT_LOADOUTNAME;
private _fnc_setSelections = {
params ["_mags", "_turrets"];
{
_x params ["_combo", "_mirroredIndex", "_button"];
private _index = 0;
for "_i" from 1 to ((lbSize _combo) - 1) do {
if ((_combo lbData _i) == (_mags param [_forEachIndex, ""])) exitWith {
_index = _i;
};
};
_combo lbSetCurSel _index;
[_button, false, _turrets select _forEachIndex] call FUNC(onButtonTurret);
} forEach GVAR(comboBoxes);
};
private _pylonComponent = configFile >> "CfgVehicles" >> typeOf GVAR(currentAircraft) >> "Components" >> "TransportPylonsComponent";
private _loadoutFound = {
if (getText (_x >> "displayName") isEqualTo _loadoutName) exitWith {
// Get default turrets from config
private _turrets = ("true" configClasses (_pylonComponent >> "Pylons")) apply {getArray (_x >> "turret")};
[getArray (_x >> "attachment"), _turrets] call _fnc_setSelections;
true
};
false
} forEach ("true" configClasses (_pylonComponent >> "Presets"));
if (_loadoutFound) exitWith {};
private _aircraftLoadouts = profileNamespace getVariable [QGVAR(aircraftLoadouts), []];
{
if ((_x select 0) isEqualTo _loadoutName && {(_x select 3) isEqualTo typeOf GVAR(currentAircraft)}) exitWith {
[_x select 1, _x select 2] call _fnc_setSelections;
};
} forEach _aircraftLoadouts;