disableSerialization; _display = _this select 0; _lastRange = artyRange; _lastUpdate = 0; _listBox = 17019; sliderSetRange[17005,10,'WFBE_MAXARTILLERYAREA' Call GetNamespace]; sliderSetPosition[17005,artyRange]; ctrlSetText [17025,localize "STR_WF_TACTICAL_ArtilleryOverview" + ":"]; _markers = []; _FTLocations = []; _checks = []; _fireTime = 0; _status = 0; _canFT = false; _forceReload = true; _ft = 'WFBE_FASTTRAVEL' Call GetNamespace; _ftr = 'WFBE_FASTTRAVELRANGE' Call GetNamespace; _startPoint = objNull; _marker = "artilleryMarker"; createMarkerLocal [_marker,artyPos]; _marker setMarkerTypeLocal "mil_destroy"; _marker setMarkerColorLocal "ColorRed"; _marker setMarkerSizeLocal [1,1]; _area = "artilleryAreaMarker"; createMarkerLocal [_area,artyPos]; _area setMarkerShapeLocal "Ellipse"; _area setMarkerColorLocal "ColorRed"; _area setMarkerSizeLocal [artyRange,artyRange]; _map = _display DisplayCtrl 17002; _listboxControl = _display DisplayCtrl _listBox; _pard = 'WFBE_PARADELAY' Call GetNamespace; {lbAdd[17008,_x]} forEach (Format ["WFBE_%1_ARTILLERY_DESC",sideJoinedText] Call GetNamespace); lbSetCurSel[17008,0]; _IDCS = [17005,17006,17007,17008]; if !(paramArty) then {{ctrlEnable [_x,false]} forEach _IDCS}; {ctrlEnable [_x, false]} forEach [17010,17011,17012,17013,17014,17015,17017,17018,17020]; MenuAction = -1; mouseButtonUp = -1; _currentValue = -1; _currentFee = -1; _currentSpecial = ""; _currentFee = -1; //--- Support List. _lastSel = -1; _addToList = [localize 'STR_WF_TACTICAL_FastTravel',localize 'STR_WF_ICBM',localize 'STR_WF_TACTICAL_ParadropAmmo',localize 'STR_WF_TACTICAL_ParadropVehicle',localize 'STR_WF_TACTICAL_Paratroop',localize 'STR_WF_TACTICAL_UnitCam',localize 'STR_WF_TACTICAL_UAV',localize 'STR_WF_TACTICAL_UAVDestroy',localize 'STR_WF_TACTICAL_UAVRemoteControl']; _addToListID = ["Fast_Travel","ICBM","Paradrop_Ammo","Paradrop_Vehicle","Paratroopers","Units_Camera","UAV","UAV_Destroy","UAV_Remote_Control"]; _addToListFee = [0,150000,9500,3500,8500,0,12500,0,0]; _addToListInterval = [0,1000,800,600,900,0,0,0,0]; for '_i' from 0 to count(_addToList)-1 do { lbAdd [_listBox,_addToList select _i]; lbSetValue [_listBox, _i, _i]; }; lbSort _listboxControl; //--- Artillery Mode. _mode = 'WFBE_V_ARTILLERYMINMAP' Call GetNamespace; if (isNil '_mode') then {_mode = 2;['WFBE_V_ARTILLERYMINMAP',_mode,true] Call SetNamespace}; _trackingArray = []; _trackingArrayID = []; _lastArtyUpdate = -60; _minRange = 100; _maxRange = 200; _requestMarkerTransition = false; _requestRangedList = true; _startLoad = true; //--- Startup coloration. with uinamespace do { currentBEDialog = _display; switch (_mode) do { case 0: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [1,1,1,1]}; case 1: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [0,0.635294,0.909803,1]}; case 2: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [0.6,0.850980,0.917647,1]}; }; }; lbSetCurSel[_listbox, 0]; if (!paramArty) then { (_display displayCtrl 17016) ctrlSetStructuredText (parseText Format['%1',localize 'STR_WF_Disabled']); }; _textAnimHandler = [] spawn {}; while {alive player && dialog} do { if (side player != sideJoined) exitWith {deleteMarkerLocal _marker;deleteMarkerLocal _area;{deleteMarkerLocal _x} forEach _markers;closeDialog 0}; if (!dialog) exitWith {deleteMarkerLocal _marker;deleteMarkerLocal _area;{deleteMarkerLocal _x} forEach _markers}; _currentUpgrades = (sideJoinedText) Call GetSideUpgrades; if (_ft > 0) then { //--- TODO: Travel fee, mod parameter > FT free or pay, do a clt fct. _currentLevel = _currentUpgrades select 12; if (time - _lastUpdate > 15 && _currentLevel > 0) then { {deleteMarkerLocal _x} forEach _markers; _markers = []; _FTLocations = []; _canFT = false; _startPoint = objNull; _lastUpdate = time; _base = (sideJoinedText) Call GetSideHQ; _isDeployed = (sideJoinedText) Call GetSideHQDeployed; if (player distance _base < _ftr && alive _base && vehicle player != _base && _isDeployed) then { _canFT = true; _startPoint = _base; } else { _sorted = [player,towns] Call SortByDistance; _closest = _sorted select 0; _sideID = _closest getVariable "sideID"; _camps = [_closest,sideJoined] Call GetFriendlyCamps; _allCamps = _closest getVariable "camps"; if (_sideID == sideID && player distance _closest < _ftr && (count _camps == count _allCamps)) then {_canFT = true;_startPoint = _closest} else { _buildings = (sideJoinedText) Call GetSideStructures; _checks = [sideJoined,Format ["WFBE_%1COMMANDCENTERTYPE",sideJoinedText] Call GetNamespace,_buildings] Call GetFactories; if (count _checks > 0) then { _sorted = [player,_checks] Call SortByDistance; _closest = _sorted select 0; if (player distance _closest < _ftr) then { _canFT = true; _closest = _sorted select 0; _startPoint = _closest; }; }; }; }; if (!canMove (vehicle player)) then {_canFT = false}; if (_canFT) then { _buildings = (sideJoinedText) Call GetSideStructures; _checks = [sideJoined,Format ["WFBE_%1COMMANDCENTERTYPE",sideJoinedText] Call GetNamespace,_buildings] Call GetFactories; _locations = towns + _checks; if (alive _base && _isDeployed) then {_locations = _locations + [_base]}; _i = 0; _fee = 0; _funds = if (_ft == 2) then {Call GetPlayerFunds} else {0}; { if (_x distance player <= ('WFBE_FASTTRAVELMAXRANGE' Call GetNamespace) && _x distance player > _ftr) then { _skip = false; if (_x in towns) then { _sideID = _x getVariable "sideID"; _camps = [_x,sideJoined] Call GetFriendlyCamps; _allCamps = _x getVariable "camps"; if (_sideID != sideID || (count _camps != count _allCamps)) then {_skip = true}; if (_ft == 2) then { _fee = round(((_x distance player)/1000) * ('WFBE_FASTTRAVELPRICEKM' Call GetNamespace)); if (_funds < _fee) then {_skip = true}; }; }; if !(_skip) then { _FTLocations = _FTLocations + [_x]; _markerName = Format ["FTMarker%1",_i]; _markers = _markers + [_markerName]; createMarkerLocal [_markerName,getPos _x]; _markerName setMarkerTypeLocal "mil_circle"; _markerName setMarkerColorLocal "ColorYellow"; _markerName setMarkerSizeLocal [1,1]; //--- Fee, Cheap marker stuff, TBD: Add prompt or something. if (_ft == 2) then { _markerName = Format ["FTMarker%1%1",_i]; _markers = _markers + [_markerName]; createMarkerLocal [_markerName,[(getPos _x select 0)-5,(getPos _x select 1)+75]]; _markerName setMarkerTypeLocal "mil_circle"; _markerName setMarkerColorLocal "ColorYellow"; _markerName setMarkerSizeLocal [0,0]; _markerName setMarkerTextLocal Format ["$%1",_fee]; }; _i = _i + 1; }; }; } forEach _locations; }; }; }; _currentSel = lbCurSel(_listBox); //--- Special changed or a reload is requested. if (_currentSel != _lastSel || _forceReload) then { _currentValue = lbValue[_listBox, _currentSel]; _currentSpecial = _addToListID select _currentValue; _currentFee = _addToListFee select _currentValue; _currentInterval = _addToListInterval select _currentValue; _forceReload = false; _controlEnable = false; _funds = Call GetPlayerFunds; //ctrlSetText[17021,Format ["%1: $%2",localize 'STR_WF_Price',_currentFee]]; //---old ctrlSetText[17021,Format ["$%1",_currentFee]]; //---added-MrNiceGuy //--- Enabled or disabled? switch (_currentSpecial) do { case "Fast_Travel": { if (_ft > 0) then { _currentLevel = _currentUpgrades select 12; _controlEnable = if (count _FTLocations > 0 && _currentLevel > 0) then {true} else {false}; }; }; case "ICBM": { if (paramICBM) then { _commander = false; if (!isNull(commanderTeam)) then { if (commanderTeam == group player) then {_commander = true}; }; _currentLevel = _currentUpgrades select 11; _controlEnable = if (_currentLevel > 0 && _commander && _funds >= _currentFee) then {true} else {false}; }; }; case "Paratroopers": { _currentLevel = _currentUpgrades select 4; _controlEnable = if (_funds >= _currentFee && _currentLevel > 0 && time - lastParaCall > _currentInterval) then {true} else {false}; }; case "Paradrop_Ammo": { _currentLevel = _currentUpgrades select 16; _controlEnable = if (_funds >= _currentFee && _currentLevel > 0 && time - lastSupplyCall > _currentInterval) then {true} else {false}; }; case "Paradrop_Vehicle": { _currentLevel = _currentUpgrades select 16; _controlEnable = if (_funds >= _currentFee && _currentLevel > 0 && time - lastSupplyCall > _currentInterval) then {true} else {false}; }; case "UAV": { _currentLevel = _currentUpgrades select 5; _controlEnable = if (_funds >= _currentFee && _currentLevel > 0 && !(alive playerUAV)) then {true} else {false}; }; case "UAV_Destroy": { _controlEnable = if (alive playerUAV) then {true} else {false}; }; case "UAV_Remote_Control": { _controlEnable = if (alive playerUAV) then {true} else {false}; }; case "Units_Camera": { _controlEnable = commandInRange; }; }; ctrlEnable[17020, _controlEnable]; }; //--- Action triggered. if (MenuAction == 20) then { MenuAction = -1; //--- Output. switch (_currentSpecial) do { case "Fast_Travel": { MenuAction = 7; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ClickOnMap',10,"ff9900"] spawn SetControlFadeAnim; }; case "ICBM": { MenuAction = 8; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ClickOnMap',10,"ff9900"] spawn SetControlFadeAnim; }; case "Paratroopers": { MenuAction = 3; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ClickOnMap',10,"ff9900"] spawn SetControlFadeAnim; }; case "Paradrop_Ammo": { MenuAction = 10; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ClickOnMap',10,"ff9900"] spawn SetControlFadeAnim; }; case "Paradrop_Vehicle": { MenuAction = 9; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ClickOnMap',10,"ff9900"] spawn SetControlFadeAnim; }; case "UAV": { closeDialog 0; ExecVM "Client\Module\UAV\uav.sqf"; }; case "UAV_Destroy": { if !(isNull playerUAV) then { {_x setDammage 1} forEach (crew playerUAV); playerUAV setDammage 1; playerUAV = objNull; }; }; case "UAV_Remote_Control": { closeDialog 0; ExecVM "Client\Module\UAV\uav.sqf"; }; case "Units_Camera": { closeDialog 0; createDialog "RscMenu_UnitCamera"; }; }; _forceReload = true; }; artyRange = floor (sliderPosition 17005); if (_lastRange != artyRange) then {_area setMarkerSizeLocal [artyRange,artyRange];}; if (mouseButtonUp == 0) then { mouseButtonUp = -1; //--- Set Artillery Marker on map. if (MenuAction == 1) then { MenuAction = -1; artyPos = _map posScreenToWorld[mouseX,mouseY]; _marker setMarkerPosLocal artyPos; _area setMarkerPosLocal artyPos; _requestRangedList = true; }; //--- Paratroops. if (MenuAction == 3) then { MenuAction = -1; _forceReload = true; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; [17022] Call SetControlFadeAnimStop; _callPos = _map posScreenToWorld[mouseX,mouseY]; if (!surfaceIsWater _callPos) then { lastParaCall = time; -(_currentFee) Call ChangePlayerFunds; WFBE_RequestSpecial = ['SRVFNCREQUESTSPECIAL',["Paratroops",sideJoined,_callPos,clientTeam]]; publicVariable 'WFBE_RequestSpecial'; if (isHostedServer) then {['SRVFNCREQUESTSPECIAL',["Paratroops",sideJoined,_callPos,clientTeam]] Spawn HandleSPVF}; hint (localize "STR_WF_INFO_Paratroop_Info"); }; }; //--- Fast Travel. if (MenuAction == 7) then { MenuAction = -1; _forceReload = true; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; [17022] Call SetControlFadeAnimStop; _callPos = _map PosScreenToWorld[mouseX,mouseY]; _sorted = [_callPos,_FTLocations] Call SortByDistance; if (_callPos distance (_sorted select 0) < 500) then { closeDialog 0; deleteMarkerLocal _marker; deleteMarkerLocal _area; _destination = _sorted select 0; if (_ft == 2) then { _fee = round(((player distance _destination)/1000) * ('WFBE_FASTTRAVELPRICEKM' Call GetNamespace)); -(_fee) Call ChangePlayerFunds; }; _travelingWith = []; {if (_x distance _startPoint < _ftr && !(_x in _travelingWith) && canMove _x && !(vehicle _x isKindOf "StaticWeapon") && !stopped _x && !((currentCommand _x) in ["WAIT","STOP"])) then {_travelingWith = _travelingWith + [vehicle _x]}} forEach units (group player); ForceMap true; _compass = shownCompass; _GPS = shownGPS; _pad = shownPad; _radio = shownRadio; _watch = shownWatch; showCompass false; showGPS false; showPad false; showRadio false; showWatch false; mapAnimClear; mapAnimCommit; _locationPosition = getPos _destination; _camera = "camera" camCreate _locationPosition; _camera camSetDir 0; _camera camSetFov 1; _camera cameraEffect["Internal","TOP"]; _camera camSetTarget _locationPosition; _camera camSetPos [_locationPosition select 0,(_locationPosition select 1) + 2,100]; _camera camCommit 0; mapAnimAdd [0,0.05,GetPos _startPoint]; mapAnimCommit; _delay = ((_startPoint distance _destination) / 50) * ('WFBE_FASTTRAVELTIMECOEF' Call GetNamespace); mapAnimAdd [_delay,.18,getPos _destination]; mapAnimCommit; waitUntil {mapAnimDone || !alive player}; _skip = false; if (!alive player) then {_skip = true}; if (!_skip) then { {[_x,_locationPosition,120] Call PlaceSafe} forEach _travelingWith; }; sleep 1; ForceMap false; showCompass _compass; showGPS _GPS; showPad _pad; showRadio _radio; showWatch _watch; _camera cameraEffect["TERMINATE","BACK"]; camDestroy _camera; }; }; //--- ICBM Strike. if (MenuAction == 8) then { _forceReload = true; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; [17022] Call SetControlFadeAnimStop; MenuAction = -1; -_currentFee Call ChangePlayerFunds; _callPos = _map PosScreenToWorld[mouseX,mouseY]; _obj = "HeliHEmpty" createVehicle _callPos; _nukeMarker = createMarkerLocal ["icbmstrike", position _obj]; _nukeMarker setMarkerTypeLocal "mil_warning"; _nukeMarker setMarkerTextLocal "ICBM"; _nukeMarker setMarkerColorLocal "ColorRed"; [_obj,_nukeMarker] Spawn NukeIncomming; }; //--- Vehicle Paradrop. if (MenuAction == 9) then { _forceReload = true; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; [17022] Call SetControlFadeAnimStop; MenuAction = -1; lastSupplyCall = time; -_currentFee Call ChangePlayerFunds; _callPos = _map PosScreenToWorld[mouseX,mouseY]; WFBE_RequestSpecial = ['SRVFNCREQUESTSPECIAL',["ParaVehi",sideJoined,_callPos,clientTeam]]; publicVariable 'WFBE_RequestSpecial'; if (isHostedServer) then {['SRVFNCREQUESTSPECIAL',["ParaVehi",sideJoined,_callPos,clientTeam]] Spawn HandleSPVF}; }; //--- Ammo Paradrop. if (MenuAction == 10) then { _forceReload = true; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; [17022] Call SetControlFadeAnimStop; MenuAction = -1; lastSupplyCall = time; -_currentFee Call ChangePlayerFunds; _callPos = _map PosScreenToWorld[mouseX,mouseY]; WFBE_RequestSpecial = ['SRVFNCREQUESTSPECIAL',["ParaAmmo",sideJoined,_callPos,clientTeam]]; publicVariable 'WFBE_RequestSpecial'; if (isHostedServer) then {['SRVFNCREQUESTSPECIAL',["ParaAmmo",sideJoined,_callPos,clientTeam]] Spawn HandleSPVF}; }; }; //--- Update the Artillery Status. if (paramArty) then { _fireTime = (Format["WFBE_FIREMISSIONTIMEOUT%1",(_currentUpgrades select 10)] Call GetNamespace); _status = round(_fireTime - (time - fireMissionTime)); _txt = if (time - fireMissionTime > _fireTime) then {Format['%1',localize 'STR_WF_TACTICAL_Available']} else {Format ['%1 %2',_status,localize 'STR_WF_Seconds']}; (_display displayCtrl 17016) ctrlSetStructuredText (parseText _txt); _enable = if (_status > 0) then {false} else {true}; ctrlEnable [17007,_enable]; }; //--- Request Fire Mission. if (MenuAction == 2) then { MenuAction = -1; _units = [Group player,false,lbCurSel(17008),sideJoinedText] Call GetTeamArtillery; if (Count _units > 0) then { fireMissionTime = time; [GetMarkerPos "artilleryMarker",lbCurSel(17008)] Spawn RequestFireMission; } else { hint (localize "STR_WF_INFO_NoArty"); }; }; //--- Arty Combo Change or Script init. if (MenuAction == 200 || _startLoad) then { MenuAction = -1; _index = lbCurSel(17008); _minRange = (Format ["WFBE_%1_ARTILLERY_MINRANGES",sideJoined] Call GetNamespace) select _index; _maxRange = (Format ["WFBE_%1_ARTILLERY_MAXRANGES",sideJoined] Call GetNamespace) select _index; _trackingArray = [group player,true,lbCurSel(17008),sideJoined] Call GetTeamArtillery; _requestMarkerTransition = true; _requestRangedList = true; _startLoad = false; }; //--- Focus on an artillery cannon. if (MenuAction == 60) then { MenuAction = -1; ctrlMapAnimClear _map; _map ctrlMapAnimAdd [1,.475,getPos(_trackingArray select (lnbCurSelRow 17024))]; ctrlMapAnimCommit _map; }; //--- Flush on change. if (_requestMarkerTransition) then { _requestMarkerTransition = false; { _track = (_x select 0); _vehicle = (_x select 1); _vehicle setVariable ['WFBE_A_Tracked', nil]; deleteMarkerLocal Format ["WFBE_A_Large%1",_track]; deleteMarkerLocal Format ["WFBE_A_Small%1",_track]; } forEach _trackingArrayID; _trackingArrayID = []; }; //--- Artillery List. if (paramArty && (_requestRangedList || time - _lastArtyUpdate > 3)) then { _requestRangedList = false; //--- No need to update the list all the time. if (time - _lastArtyUpdate > 5) then { _lastArtyUpdate = time; _trackingArray = [group player,true,lbCurSel(17008),sideJoined] Call GetTeamArtillery; }; //--- Clear & Fill; lnbClear 17024; _i = 0; { _distance = _x distance (getMarkerPos _marker); _color = [0, 0.875, 0, 0.8]; _text = localize 'STR_WF_TACTICAL_ArtilleryInRange'; //---changed-MrNiceGuy //"In Range"; if (_distance > _maxRange) then {_color = [0.875, 0, 0, 0.8];_text = localize 'STR_WF_TACTICAL_ArtilleryOutOfRange'}; //---changed-MrNiceGuy //"Out of Range"}; if (_distance <= _minRange) then {_color = [0.875, 0.5, 0, 0.8];_text = localize 'STR_WF_TACTICAL_ArtilleryRangeTooClose'}; //---changed-MrNiceGuy //"Too close"}; lnbAddRow [17024,[[typeOf _x, 'displayName'] Call GetConfigInfo,_text]]; lnbSetPicture [17024,[_i,0],[typeOf _x, 'picture'] Call GetConfigInfo]; lnbSetColor [17024,[_i,0],_color]; lnbSetColor [17024,[_i,1],_color]; _i = _i + 1; } forEach _trackingArray; }; //--- Artillery map toggle. if (MenuAction == 40) then { MenuAction = -1; if (_mode == -1) then {_mode = 0}; _mode = if (_mode == 2) then {0} else {_mode + 1}; with uinamespace do { switch (_mode) do { case 0: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [1,1,1,1]}; case 1: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [0,0.635294,0.909803,1]}; case 2: {(currentBEDialog displayCtrl 17023) ctrlSetTextColor [0.6,0.850980,0.917647,1]}; }; }; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; _textAnimHandler = [17022,localize 'STR_WF_TACTICAL_ArtilleryMinimapInfo',7,"ff9900"] spawn SetControlFadeAnim; ['WFBE_V_ARTILLERYMINMAP',_mode,true] Call SetNamespace; _requestMarkerTransition = true; }; //--- Update artillery display. if (_mode != -1) then { //--- Nothing. if (_mode == 0) then { _requestMarkerTransition = true; _mode = -1; }; //--- Filled Content. if (_mode == 1 || _mode == 2) then { //--- Remove if dead or null or sel changed. { _track = (_x select 0); _vehicle = (_x select 1); if !(alive _vehicle) then { deleteMarkerLocal Format ["WFBE_A_Large%1",_track]; deleteMarkerLocal Format ["WFBE_A_Small%1",_track]; }; } forEach _trackingArrayID; //--- No need to update the marker all the time. if (time - _lastArtyUpdate > 5) then { _lastArtyUpdate = time; _trackingArray = [group player,true,lbCurSel(17008),sideJoined] Call GetTeamArtillery; }; //--- Live Feed. _trackingArrayID = []; { _track = _x getVariable 'WFBE_A_Tracked'; if (isNil '_track') then { _track = buildingMarker; buildingMarker = buildingMarker + 1; _x setVariable ['WFBE_A_Tracked', _track]; _dmarker = Format ["WFBE_A_Large%1",_track]; createMarkerLocal [_dmarker, getPos _x]; _dmarker setMarkerColorLocal "ColorBlue"; _dmarker setMarkerShapeLocal "ELLIPSE"; _brush = "SOLID"; if (_mode == 1) then {_brush = "SOLID"}; if (_mode == 2) then {_brush = "BORDER"}; _dmarker setMarkerBrushLocal _brush; _dmarker setMarkerAlphaLocal 0.4; _dmarker setMarkerSizeLocal [_maxRange,_maxRange]; _dmarker = Format ["WFBE_A_Small%1",_track]; createMarkerLocal [_dmarker, getPos _x]; _dmarker setMarkerColorLocal "ColorBlack"; _dmarker setMarkerShapeLocal "ELLIPSE"; _dmarker setMarkerBrushLocal "SOLID"; _dmarker setMarkerAlphaLocal 0.4; _dmarker setMarkerSizeLocal [_minRange,_minRange]; } else { _dmarker = Format ["WFBE_A_Large%1",_track]; _dmarker setMarkerPosLocal (getPos _x); _dmarker = Format ["WFBE_A_Small%1",_track]; _dmarker setMarkerPosLocal (getPos _x); }; _trackingArrayID = _trackingArrayID + [[_track,_x]]; } forEach _trackingArray; }; }; _lastRange = artyRange; _lastSel = lbCurSel(_listbox); sleep 0.1; //--- Back Button. if (MenuAction == 30) exitWith { //---added-MrNiceGuy MenuAction = -1; closeDialog 0; createDialog "WF_Menu"; }; }; deleteMarkerLocal _marker; deleteMarkerLocal _area; {deleteMarkerLocal _x} forEach _markers; if !(scriptDone _textAnimHandler) then {terminate _textAnimHandler}; //--- Remove Markers. { _track = (_x select 0); _vehicle = (_x select 1); _vehicle setVariable ['WFBE_A_Tracked', nil]; deleteMarkerLocal Format ["WFBE_A_Large%1",_track]; deleteMarkerLocal Format ["WFBE_A_Small%1",_track]; } forEach _trackingArrayID;