2015-04-13 16:03:19 +00:00
|
|
|
//#define DEBUG_MODE_FULL
|
2015-04-04 23:55:53 +00:00
|
|
|
#include "script_component.hpp"
|
2015-04-12 23:18:39 +00:00
|
|
|
TRACE_1("enter", _this);
|
2015-04-04 23:55:53 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
#define __TRACKINTERVAL 0 // how frequent the check should be.
|
2015-04-14 17:25:08 +00:00
|
|
|
#define __LOCKONTIME 3 // Lock on won't occur sooner
|
2015-04-14 18:18:16 +00:00
|
|
|
|
2015-04-18 17:50:22 +00:00
|
|
|
private["_apos", "_aposX", "_aposY", "_args", "_boundsInput", "_bpos", "_canFire", "_constraintBottom"];
|
|
|
|
private["_constraintLeft", "_constraintRight", "_constraintTop", "_currentTarget", "_fireDisabledEH"];
|
2015-06-04 18:08:01 +00:00
|
|
|
private["_firedEH", "_fov", "_lastTick", "_lockTime", "_maxX", "_maxY", "_minX", "_minY", "_newTarget"];
|
2015-04-18 17:50:22 +00:00
|
|
|
private["_offsetX", "_offsetY", "_pos", "_randomLockInterval", "_randomPosWithinBounds", "_range"];
|
2015-04-22 15:07:58 +00:00
|
|
|
private["_runTime", "_soundTime", "_targetArray", "_zamerny", "_currentShooter"];
|
|
|
|
|
|
|
|
_currentShooter = (vehicle ACE_player);
|
2015-04-04 23:55:53 +00:00
|
|
|
|
2015-04-11 17:44:13 +00:00
|
|
|
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
|
|
|
|
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
|
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
// Reset arguments if we havnt rendered in over a second
|
|
|
|
_args = uiNamespace getVariable[QGVAR(arguments), [] ];
|
|
|
|
if( (count _args) > 0) then {
|
|
|
|
_lastTick = _args select 0;
|
2015-05-21 16:42:44 +00:00
|
|
|
if(ACE_diagTime - _lastTick > 1) then {
|
2015-04-04 23:55:53 +00:00
|
|
|
[] call FUNC(onOpticLoad);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2015-04-12 23:18:39 +00:00
|
|
|
TRACE_1("Running", "Running");
|
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
// Pull the arguments
|
|
|
|
_currentTarget = _args select 1;
|
2015-04-05 18:51:39 +00:00
|
|
|
_runTime = _args select 2;
|
|
|
|
_lockTime = _args select 3;
|
|
|
|
_soundTime = _args select 4;
|
2015-04-14 18:18:16 +00:00
|
|
|
_randomLockInterval = _args select 5;
|
2015-04-15 16:10:00 +00:00
|
|
|
_fireDisabledEH = _args select 6;
|
|
|
|
|
2015-05-25 10:38:45 +00:00
|
|
|
private["_ammo", "_magazineConfig", "_weaponConfig"];
|
|
|
|
_weaponConfig = configProperties [configFile >> "CfgWeapons" >> (currentWeapon _currentShooter), QUOTE(configName _x == QUOTE(QGVAR(enabled))), false];
|
|
|
|
_magazineConfig = if ((currentMagazine _currentShooter) != "") then {
|
|
|
|
_ammo = getText (configFile >> "CfgMagazines" >> (currentMagazine _currentShooter) >> "ammo");
|
|
|
|
configProperties [(configFile >> "CfgAmmo" >> _ammo), "(configName _x) == 'ace_missileguidance'", false];
|
|
|
|
} else {
|
|
|
|
[]
|
|
|
|
};
|
|
|
|
|
2015-06-03 07:32:53 +00:00
|
|
|
//If weapon does not have "javelin enabled", then exit PFEH
|
|
|
|
if (((count _weaponConfig) < 1) || {(getNumber (_weaponConfig select 0)) != 1}) exitWith {
|
2015-04-15 16:10:00 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow false;
|
|
|
|
__JavelinIGUITargetingGate ctrlShow false;
|
|
|
|
__JavelinIGUITargetingLines ctrlShow false;
|
|
|
|
__JavelinIGUITargetingConstraints ctrlShow false;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-18 17:18:33 +00:00
|
|
|
if(!isNil "_fireDisabledEH") then {
|
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
|
|
|
|
};
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-11-30 15:45:20 +00:00
|
|
|
[(_this select 1)] call CBA_fnc_removePerFrameHandler;
|
2015-07-05 04:14:44 +00:00
|
|
|
GVAR(pfehID) = -1;
|
2015-04-15 16:10:00 +00:00
|
|
|
};
|
2015-04-04 23:55:53 +00:00
|
|
|
|
|
|
|
// Find a target within the optic range
|
|
|
|
_newTarget = objNull;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-05 18:51:39 +00:00
|
|
|
// Bail on fast movement
|
2015-04-06 16:22:43 +00:00
|
|
|
if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} && {cameraOn == ACE_player}) exitWith { // keep it steady.
|
2015-04-05 18:51:39 +00:00
|
|
|
ACE_player switchCamera "INTERNAL";
|
2016-01-17 18:12:05 +00:00
|
|
|
if (player != ACE_player) then {
|
|
|
|
TRACE_2("Zeus, manually reseting RC after switchCamera",player,ACE_player);
|
2016-01-18 06:27:19 +00:00
|
|
|
player remoteControl ACE_player;
|
2016-01-17 18:12:05 +00:00
|
|
|
};
|
2015-04-05 18:51:39 +00:00
|
|
|
};
|
|
|
|
|
2015-04-10 17:42:02 +00:00
|
|
|
// Refresh the firemode
|
|
|
|
[] call FUNC(showFireMode);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
|
|
|
_ammo = _currentShooter ammo (currentWeapon _currentShooter);
|
2015-06-03 07:32:53 +00:00
|
|
|
// not loaded or not "javelin enabled" for magazine, hide targeting and enable firing
|
2015-06-04 18:08:01 +00:00
|
|
|
if ((_ammo == 0) || {(count _magazineConfig) < 1} || {(getNumber ((_magazineConfig select 0) >> "enabled")) != 1}) exitWith {
|
2015-06-03 07:32:53 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow false;
|
|
|
|
__JavelinIGUITargetingGate ctrlShow false;
|
|
|
|
__JavelinIGUITargetingLines ctrlShow false;
|
|
|
|
__JavelinIGUITargetingConstraints ctrlShow false;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-06-03 07:32:53 +00:00
|
|
|
if(!isNil "_fireDisabledEH") then {
|
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
|
2015-04-16 18:32:47 +00:00
|
|
|
};
|
|
|
|
};
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
_range = parseNumber (ctrlText __JavelinIGUIRangefinder);
|
2015-04-13 15:59:36 +00:00
|
|
|
TRACE_1("Viewing range", _range);
|
2015-04-04 23:55:53 +00:00
|
|
|
if (_range > 50 && {_range < 2500}) then {
|
|
|
|
_pos = positionCameraToWorld [0,0,_range];
|
2015-04-18 16:40:46 +00:00
|
|
|
_targetArray = _pos nearEntities ["AllVehicles", _range/100];
|
2015-04-13 15:59:36 +00:00
|
|
|
TRACE_1("Searching at range", _targetArray);
|
2015-04-04 23:55:53 +00:00
|
|
|
if (count (_targetArray) > 0) then {
|
|
|
|
_newTarget = _targetArray select 0;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
if (isNull _newTarget) then {
|
|
|
|
_newTarget = cursorTarget;
|
|
|
|
};
|
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
// Create constants
|
|
|
|
_constraintTop = __ConstraintTop;
|
|
|
|
_constraintLeft = __ConstraintLeft;
|
|
|
|
_constraintBottom = __ConstraintBottom;
|
|
|
|
_constraintRight = __ConstraintRight;
|
|
|
|
|
|
|
|
_offsetX = __OffsetX;
|
|
|
|
_offsetY = __OffsetY;
|
|
|
|
|
|
|
|
__JavelinIGUITargeting ctrlShow true;
|
|
|
|
__JavelinIGUITargetingConstrains ctrlShow true;
|
|
|
|
|
2015-04-13 15:59:36 +00:00
|
|
|
_zamerny = if (_currentTarget isKindOf "CAManBase") then {_currentTarget selectionPosition "body"} else {_currentTarget selectionPosition "zamerny"};
|
|
|
|
_randomPosWithinBounds = [(_zamerny select 0) + 1 - (random 2.0),(_zamerny select 1) + 1 - (random 2.0),(_zamerny select 2) + 0.5 - (random 1.0)];
|
|
|
|
|
|
|
|
_apos = worldToScreen (_currentTarget modelToWorld _randomPosWithinBounds);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-13 15:59:36 +00:00
|
|
|
_aposX = 0;
|
|
|
|
_aposY = 0;
|
|
|
|
if (count _apos < 2) then {
|
|
|
|
_aposX = 1;
|
|
|
|
_aposY = 0;
|
|
|
|
} else {
|
|
|
|
_aposX = (_apos select 0) + _offsetX;
|
|
|
|
_aposY = (_apos select 1) + _offsetY;
|
|
|
|
};
|
|
|
|
|
2015-06-04 18:08:01 +00:00
|
|
|
if((call CBA_fnc_getFoV) select 1 > 9) then {
|
2015-04-13 16:01:18 +00:00
|
|
|
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
|
|
|
|
__JavelinIGUIWFOV ctrlSetTextColor __ColorGray;
|
|
|
|
} else {
|
|
|
|
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
|
|
|
|
__JavelinIGUIWFOV ctrlSetTextColor __ColorGreen;
|
|
|
|
};
|
|
|
|
|
2015-04-15 16:10:00 +00:00
|
|
|
FUNC(disableFire) = {
|
|
|
|
_firedEH = _this select 0;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-15 17:11:13 +00:00
|
|
|
if(_firedEH < 0 && difficulty > 0) then {
|
2015-06-04 18:08:01 +00:00
|
|
|
_firedEH = [ACE_player, "DefaultAction", {true}, {
|
2015-05-01 13:57:49 +00:00
|
|
|
_canFire = (_this select 1) getVariable["ace_missileguidance_target", nil];
|
2015-04-15 16:10:00 +00:00
|
|
|
if(!isNil "_canFire") exitWith { false };
|
|
|
|
true
|
|
|
|
}] call EFUNC(common,addActionEventHandler);
|
|
|
|
};
|
|
|
|
_firedEH
|
|
|
|
};
|
|
|
|
FUNC(enableFire) = {
|
|
|
|
_firedEH = _this select 0;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-15 17:11:13 +00:00
|
|
|
if(_firedEH > 0 && difficulty > 0) then {
|
2015-04-15 16:10:00 +00:00
|
|
|
[ACE_player, "DefaultAction", _firedEH] call EFUNC(common,removeActionEventHandler);
|
|
|
|
};
|
|
|
|
-1
|
|
|
|
};
|
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
if (isNull _newTarget) then {
|
|
|
|
// No targets found
|
|
|
|
_currentTarget = objNull;
|
2015-04-05 18:51:39 +00:00
|
|
|
_lockTime = 0;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
|
2015-04-12 23:18:39 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow false;
|
2015-04-04 23:55:53 +00:00
|
|
|
__JavelinIGUITargetingGate ctrlShow false;
|
|
|
|
__JavelinIGUITargetingLines ctrlShow false;
|
2015-04-12 23:18:39 +00:00
|
|
|
__JavelinIGUITargetingConstraints ctrlShow false;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
|
|
|
_currentShooter setVariable ["ace_missileguidance_target",nil, false];
|
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
// Disallow fire
|
2015-04-15 16:10:00 +00:00
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
|
2015-04-04 23:55:53 +00:00
|
|
|
} else {
|
2015-04-16 18:32:47 +00:00
|
|
|
_fov = [] call CBA_fnc_getFoV;
|
|
|
|
TRACE_1("FOV", _fov);
|
2015-04-05 18:51:39 +00:00
|
|
|
if (_newTarget distance ACE_player < 2500
|
2015-06-04 18:08:01 +00:00
|
|
|
&& {(call CBA_fnc_getFoV) select 1 > 9}
|
|
|
|
&& { (currentVisionMode ACE_player == 2)}
|
|
|
|
&& GVAR(isLockKeyDown)
|
|
|
|
) then {
|
2015-04-05 18:51:39 +00:00
|
|
|
// Lock on after 3 seconds
|
2015-06-04 18:08:01 +00:00
|
|
|
if(_currentTarget != _newTarget) then {
|
2015-04-05 18:51:39 +00:00
|
|
|
TRACE_1("New Target, reseting locking", _newTarget);
|
2015-05-21 16:42:44 +00:00
|
|
|
_lockTime = ACE_diagTime;
|
2015-04-05 18:51:39 +00:00
|
|
|
_currentTarget = _newTarget;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-05 18:51:39 +00:00
|
|
|
playSound "ACE_Javelin_Locking";
|
|
|
|
} else {
|
2015-05-21 16:42:44 +00:00
|
|
|
if(ACE_diagTime - _lockTime > __LOCKONTIME + _randomLockInterval) then {
|
2015-04-05 18:51:39 +00:00
|
|
|
TRACE_2("LOCKED!", _currentTarget, _lockTime);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-05 18:51:39 +00:00
|
|
|
__JavelinIGUISeek ctrlSetTextColor __ColorGreen;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 18:17:34 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow true;
|
2015-04-12 23:18:39 +00:00
|
|
|
__JavelinIGUITargetingConstrains ctrlShow false;
|
2015-04-10 21:20:06 +00:00
|
|
|
__JavelinIGUITargetingGate ctrlShow true;
|
|
|
|
__JavelinIGUITargetingLines ctrlShow true;
|
2015-04-13 15:59:36 +00:00
|
|
|
|
2015-04-10 21:20:06 +00:00
|
|
|
// Move target marker to coords.
|
2015-04-13 15:59:36 +00:00
|
|
|
//__JavelinIGUITargetingLineV ctrlSetPosition [_aposX,ctrlPosition __JavelinIGUITargetingLineV select 1];
|
|
|
|
//__JavelinIGUITargetingLineH ctrlSetPosition [ctrlPosition __JavelinIGUITargetingLineH select 0,_aposY];
|
|
|
|
//{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingLineH,__JavelinIGUITargetingLineV];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-10 21:20:06 +00:00
|
|
|
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
|
|
|
|
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
|
|
|
|
} else {
|
|
|
|
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "zamerny"];
|
|
|
|
};
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 17:44:13 +00:00
|
|
|
_bpos = _boundsInput call EFUNC(common,worldToScreenBounds);
|
|
|
|
|
2015-04-10 21:20:06 +00:00
|
|
|
_minX = ((_bpos select 0) + _offsetX) max _constraintLeft;
|
|
|
|
_minY = ((_bpos select 1) + _offsetY) max _constraintTop;
|
|
|
|
_maxX = ((_bpos select 2) + _offsetX) min (_constraintRight - 0.025*(3/4)*SafezoneH);
|
|
|
|
_maxY = ((_bpos select 3) + _offsetY) min (_constraintBottom - 0.025*SafezoneH);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 17:44:13 +00:00
|
|
|
TRACE_4("", _boundsInput, _bpos, _minX, _minY);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-10 21:20:06 +00:00
|
|
|
__JavelinIGUITargetingGateTL ctrlSetPosition [_minX,_minY];
|
|
|
|
__JavelinIGUITargetingGateTR ctrlSetPosition [_maxX,_minY];
|
|
|
|
__JavelinIGUITargetingGateBL ctrlSetPosition [_minX,_maxY];
|
|
|
|
__JavelinIGUITargetingGateBR ctrlSetPosition [_maxX,_maxY];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-10 21:20:06 +00:00
|
|
|
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingGateTL,__JavelinIGUITargetingGateTR,__JavelinIGUITargetingGateBL,__JavelinIGUITargetingGateBR];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-22 15:07:58 +00:00
|
|
|
_currentShooter setVariable["ace_missileguidance_target", _currentTarget, false];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-14 17:25:08 +00:00
|
|
|
// Allow fire
|
2015-04-15 16:10:00 +00:00
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-05-21 16:42:44 +00:00
|
|
|
if(ACE_diagTime > _soundTime) then {
|
2015-04-05 18:51:39 +00:00
|
|
|
playSound "ACE_Javelin_Locked";
|
2015-05-21 16:42:44 +00:00
|
|
|
_soundTime = ACE_diagTime + 0.25;
|
2015-04-05 18:51:39 +00:00
|
|
|
};
|
|
|
|
} else {
|
2015-04-11 20:37:55 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow true;
|
|
|
|
__JavelinIGUITargetingGate ctrlShow true;
|
2015-06-04 18:08:01 +00:00
|
|
|
__JavelinIGUITargetingConstrains ctrlShow true;
|
2015-04-11 20:37:55 +00:00
|
|
|
__JavelinIGUITargetingLines ctrlShow false;
|
|
|
|
|
2015-04-22 15:07:58 +00:00
|
|
|
_currentShooter setVariable["ace_missileguidance_target", nil, false];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
|
|
|
|
[_newTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
|
|
|
|
} else {
|
|
|
|
[_newTarget,[-1,-1,-1],_currentTarget selectionPosition "zamerny"];
|
|
|
|
};
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
_bpos = _boundsInput call EFUNC(common,worldToScreenBounds);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
_minX = ((_bpos select 0) + _offsetX) max _constraintLeft;
|
|
|
|
_minY = ((_bpos select 1) + _offsetY) max _constraintTop;
|
|
|
|
_maxX = ((_bpos select 2) + _offsetX) min (_constraintRight - 0.025*(3/4)*SafezoneH);
|
|
|
|
_maxY = ((_bpos select 3) + _offsetY) min (_constraintBottom - 0.025*SafezoneH);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-13 15:59:36 +00:00
|
|
|
TRACE_4("", _boundsInput, _bpos, _minX, _minY);
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
__JavelinIGUITargetingGateTL ctrlSetPosition [_minX,_minY];
|
|
|
|
__JavelinIGUITargetingGateTR ctrlSetPosition [_maxX,_minY];
|
|
|
|
__JavelinIGUITargetingGateBL ctrlSetPosition [_minX,_maxY];
|
|
|
|
__JavelinIGUITargetingGateBR ctrlSetPosition [_maxX,_maxY];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-11 20:37:55 +00:00
|
|
|
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingGateTL,__JavelinIGUITargetingGateTR,__JavelinIGUITargetingGateBL,__JavelinIGUITargetingGateBR];
|
|
|
|
|
2015-05-21 16:42:44 +00:00
|
|
|
if(ACE_diagTime > _soundTime) then {
|
2015-04-05 18:51:39 +00:00
|
|
|
playSound "ACE_Javelin_Locking";
|
2015-05-21 16:42:44 +00:00
|
|
|
_soundTime = ACE_diagTime + 0.25;
|
2015-04-05 18:51:39 +00:00
|
|
|
};
|
2015-04-14 17:25:08 +00:00
|
|
|
// Disallow fire
|
2015-06-04 18:08:01 +00:00
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
|
2015-04-05 18:51:39 +00:00
|
|
|
};
|
|
|
|
};
|
2015-06-04 18:08:01 +00:00
|
|
|
} else {
|
2015-04-14 17:25:08 +00:00
|
|
|
// No targets found
|
2015-04-04 23:55:53 +00:00
|
|
|
_currentTarget = objNull;
|
2015-04-14 17:25:08 +00:00
|
|
|
_lockTime = 0;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-04 23:55:53 +00:00
|
|
|
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
|
2015-04-12 23:18:39 +00:00
|
|
|
__JavelinIGUITargeting ctrlShow false;
|
2015-04-04 23:55:53 +00:00
|
|
|
__JavelinIGUITargetingGate ctrlShow false;
|
|
|
|
__JavelinIGUITargetingLines ctrlShow false;
|
2015-04-14 17:25:08 +00:00
|
|
|
__JavelinIGUITargetingConstraints ctrlShow false;
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-22 15:07:58 +00:00
|
|
|
_currentShooter setVariable ["ace_missileguidance_target",nil, false];
|
2015-06-04 18:08:01 +00:00
|
|
|
|
2015-04-14 17:25:08 +00:00
|
|
|
// Disallow fire
|
2015-04-15 16:10:00 +00:00
|
|
|
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
|
2015-06-04 18:08:01 +00:00
|
|
|
};
|
2015-04-04 23:55:53 +00:00
|
|
|
};
|
|
|
|
|
2015-04-05 18:51:39 +00:00
|
|
|
//TRACE_2("", _newTarget, _currentTarget);
|
2015-04-04 23:55:53 +00:00
|
|
|
|
2015-04-05 00:15:59 +00:00
|
|
|
// Save arguments for next run
|
2015-05-21 16:42:44 +00:00
|
|
|
_args set[0, ACE_diagTime];
|
2015-04-04 23:55:53 +00:00
|
|
|
_args set[1, _currentTarget];
|
2015-04-05 18:51:39 +00:00
|
|
|
_args set[2, _runTime];
|
|
|
|
_args set[3, _lockTime];
|
|
|
|
_args set[4, _soundTime];
|
2015-04-15 16:10:00 +00:00
|
|
|
_args set[6, _fireDisabledEH];
|
2015-04-04 23:55:53 +00:00
|
|
|
|
2015-04-24 18:03:04 +00:00
|
|
|
uiNamespace setVariable[QGVAR(arguments), _args ];
|