mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
043b3907fe
Co-authored-by: Pepijn Holster <pgaholster@gmail.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: LorenLuke <LukeLLL@aol.com> Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
64 lines
2.7 KiB
Plaintext
64 lines
2.7 KiB
Plaintext
#include "script_component.hpp"
|
|
|
|
["CBA_settingsInitialized", {
|
|
TRACE_2("CBA_settingsInitialized",GVAR(advancedCorrections),GVAR(disableArtilleryComputer));
|
|
|
|
if (hasInterface) then {
|
|
// Add hud overlay for actuall azimuth and elevation:
|
|
GVAR(pfID) = -1;
|
|
["turret", LINKFUNC(turretChanged), true] call CBA_fnc_addPlayerEventHandler;
|
|
|
|
// Add ability to dynamically open rangetables:
|
|
["ace_interactMenuOpened", LINKFUNC(interactMenuOpened)] call CBA_fnc_addEventHandler;
|
|
};
|
|
|
|
if (GVAR(advancedCorrections)) then {
|
|
["LandVehicle", "init", {
|
|
params ["_vehicle"];
|
|
private _vehicleCfg = configOf _vehicle;
|
|
// config "ace_artillerytables_applyCorrections" [0 disabled, 1 enabled] falls back to artilleryScanner
|
|
private _applyCorrections = if (isNumber (_vehicleCfg >> QGVAR(applyCorrections))) then {
|
|
getNumber (_vehicleCfg >> QGVAR(applyCorrections))
|
|
} else {
|
|
getNumber (_vehicleCfg >> "artilleryScanner")
|
|
};
|
|
if (_applyCorrections == 1) then {
|
|
TRACE_2("adding firedEH",_vehicle,configName _vehicleCfg);
|
|
_vehicle addEventHandler ["Fired", {call FUNC(firedEH)}];
|
|
};
|
|
}, true, [], true] call CBA_fnc_addClassEventHandler;
|
|
};
|
|
}] call CBA_fnc_addEventHandler;
|
|
|
|
addMissionEventHandler ["ExtensionCallback", {
|
|
params ["_name", "_function", "_data"];
|
|
if (_name == "ace:artillery" && {_function == "calculate_table"}) then {
|
|
(parseSimpleArray _data) params ["_line", "_data"];
|
|
if (_data isEqualType []) then {
|
|
GVAR(tableData) set [_line, _data];
|
|
};
|
|
GVAR(tableSizeReceived) = GVAR(tableSizeReceived) + 1;
|
|
if (GVAR(tableSizeReceived) == GVAR(tableSizeActual)) then {
|
|
private _dialog = uiNamespace getVariable [QGVAR(rangeTableDialog), displayNull];
|
|
private _ctrlRangeTable = _dialog displayCtrl IDC_TABLE;
|
|
if (isNull _dialog) exitWith {true};
|
|
for "_i" from 0 to GVAR(tableSizeActual) do {
|
|
private _row = GVAR(tableData) getOrDefault [_i, []];
|
|
if (count _row == 12) then {
|
|
_ctrlRangeTable lnbAddRow _row;
|
|
};
|
|
};
|
|
private _dialog = uiNamespace getVariable [QGVAR(rangeTableDialog), displayNull];
|
|
private _ctrlRangeTable = _dialog displayCtrl IDC_TABLE;
|
|
if (isNull _dialog) exitWith {TRACE_1("dialog closed",_this);};
|
|
_ctrlRangeTable lnbAddRow ["", "", "", "", "", "", "", "", "", "", ""];
|
|
TRACE_1("table filled",_ctrlRangeTable);
|
|
};
|
|
};
|
|
}];
|
|
|
|
#ifdef DEBUG_MODE_FULL
|
|
#include "dev\showShotInfo.inc.sqf"
|
|
#include "dev\checkConfigs.inc.sqf"
|
|
#endif
|