From e55a85cc26e38315d6f0e40695fce8fa5fded0f7 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 19 Jan 2015 16:59:00 +0100 Subject: [PATCH] get markers to work --- addons/markers/XEH_postInit.sqf | 4 +- .../functions/fnc_initInsertMarker.sqf | 366 +++++++++--------- addons/markers/functions/fnc_placeMarker.sqf | 12 +- .../markers/functions/fnc_sendMarkersJIP.sqf | 4 +- 4 files changed, 193 insertions(+), 193 deletions(-) diff --git a/addons/markers/XEH_postInit.sqf b/addons/markers/XEH_postInit.sqf index 31d5ffc7a5..eea149f294 100644 --- a/addons/markers/XEH_postInit.sqf +++ b/addons/markers/XEH_postInit.sqf @@ -2,10 +2,10 @@ #include "script_component.hpp" // recieve remote marker data -[QGVAR(setMarkerNetwork), FUNC(setMarkerNetwork)] call EFUNC(common,addEventHandler); +[QGVAR(setMarkerNetwork), {_this call DFUNC(setMarkerNetwork)}] call EFUNC(common,addEventHandler); // recieve marker data for JIP -[QGVAR(setMarkerJIP), FUNC(setMarkerJIP)] call EFUNC(common,addEventHandler); +[QGVAR(setMarkerJIP), {_this call DFUNC(setMarkerJIP)}] call EFUNC(common,addEventHandler); // request marker data for JIP if (isMultiplayer && {!isServer} && {hasInterface}) then { diff --git a/addons/markers/functions/fnc_initInsertMarker.sqf b/addons/markers/functions/fnc_initInsertMarker.sqf index efc974cef4..d172c6a532 100644 --- a/addons/markers/functions/fnc_initInsertMarker.sqf +++ b/addons/markers/functions/fnc_initInsertMarker.sqf @@ -4,198 +4,196 @@ #define BORDER 0.005 [{ - with uinamespace do { + disableserialization; + _display = _this select 0; - disableserialization; - _display = _this select 0; + //Prevent Captive Players from placing markers + /*if (ACE_player getVariable ["ACE_isCaptive", false]) exitWith { + _display closeDisplay 2; //emulate "Cancel" button + };*/ - //Prevent Captive Players from placing markers - /*if (ACE_player getVariable ["ACE_isCaptive", false]) exitWith { - _display closeDisplay 2; //emulate "Cancel" button - };*/ + // prevent vanilla key input + _display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}]; - // prevent vanilla key input - _display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}]; + _text = _display displayctrl 101; + _picture = _display displayctrl 102; + _buttonOK = _display displayctrl 1; + _buttonCancel = _display displayctrl 2; + _description = _display displayctrl 1100; + _title = _display displayctrl 1001; + _sizeX = _display displayctrl 1200; + _sizeY = _display displayctrl 1201; + _shape = _display displayctrl 1210; + _color = _display displayctrl 1211; + _angle = _display displayctrl 1220; + _angleText = _display displayctrl 1221; - _text = _display displayctrl 101; - _picture = _display displayctrl 102; - _buttonOK = _display displayctrl 1; - _buttonCancel = _display displayctrl 2; - _description = _display displayctrl 1100; - _title = _display displayctrl 1001; - _sizeX = _display displayctrl 1200; - _sizeY = _display displayctrl 1201; - _shape = _display displayctrl 1210; - _color = _display displayctrl 1211; - _angle = _display displayctrl 1220; - _angleText = _display displayctrl 1221; + ctrlSetFocus _text; - ctrlSetFocus _text; + //Change ok button's text based on current channel + //if (isNull _buttonOK) exitWith {true}; - //Change ok button's text based on current channel - if (isNull _buttonOK) exitWith {true}; - - _textColor = [1,1,1,1]; - switch (call EFUNC(common,currentChannel)) do { - case ("global"): { - _channel = localize "str_channel_global"; - _textColor = [(216/255),(216/255),(216/255),1]; - }; - case ("side"): { - _channel = localize "str_channel_side"; - _textColor = [(70/255),(211/255),(252/255),1]; - }; - case ("group"): { - _channel = localize "str_channel_group"; - _textColor = [(181/255),(248/255),(98/255),1]; - }; - case ("vehicle"): { - _channel = localize "str_channel_vehicle"; - _textColor = [(255/255),(208/255),(0/255),1]; - }; - case ("direct"): { - _channel = localize "str_channel_direct"; - _textColor = [(255/255),(255/255),(255/255),1]; - }; - case ("command"): { - _channel = localize "str_channel_command"; - _textColor = [(255/255),(255/255),(70/255),1]; - }; + _channel = ""; + _textColor = [1,1,1,1]; + switch (call EFUNC(common,currentChannel)) do { + case ("global"): { + _channel = localize "str_channel_global"; + _textColor = [(216/255),(216/255),(216/255),1]; }; - - //If localization not found, then don't touch anything (default is RscButtonMenuOK's localized text) - if (_channel != "") then { - _buttonOK ctrlSetTextColor _textColor; - _buttonOK ctrlSetText format [localize "STR_ACE_Markers_PlaceIn", _channel]; + case ("side"): { + _channel = localize "str_channel_side"; + _textColor = [(70/255),(211/255),(252/255),1]; }; - - //--- Background - _pos = ctrlposition _text; - _posX = (_pos select 0) + 0.01; - _posY = _pos select 1; - _posW = _pos select 2; - _posH = _pos select 3; - _posY = _posY min ((safeZoneH + safeZoneY) - (6 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen - _pos set [0,_posX]; - _pos set [1,_posY]; - _text ctrlsetposition _pos; - _text ctrlcommit 0; - - //--- Title - _pos set [1,_posY - 2*_posH - BORDER]; - _pos set [3,_posH]; - _title ctrlsetposition _pos; - _title ctrlcommit 0; - - //--- Description - _pos set [1,_posY - 1*_posH]; - _pos set [3,6*_posH + 6 * BORDER]; - _description ctrlsetposition _pos; - _description ctrlsetstructuredtext parsetext format ["%1","Description:"]; //--- ToDo: Localze - _description ctrlcommit 0; - - _activeColor = (["IGUI","WARNING_RGB"] call bis_fnc_displaycolorget) call bis_fnc_colorRGBtoHTML; - - //--- Shape - _pos set [1,_posY + 1 * _posH + 2 * BORDER]; - _pos set [2,_posW]; - _pos set [3,_posH]; - _shape ctrlsetposition _pos; - _shape ctrlcommit 0; - - //--- Color - _pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _pos set [2,_posW]; - _color ctrlsetposition _pos; - _color ctrlcommit 0; - - //--- Angle - _pos set [1,_posY + 3 * _posH + 4 * BORDER]; - _pos set [2,_posW]; - _angle ctrlsetposition _pos; - _angle ctrlcommit 0; - - //--- Angle Text - _pos set [1,_posY + 4 * _posH + 5 * BORDER]; - _pos set [2,_posW]; - _angleText ctrlsetposition _pos; - _angleText ctrlcommit 0; - - //--- ButtonOK - _pos set [1,_posY + 5 * _posH + 7 * BORDER]; - _pos set [2,_posW * (8.9/10) - BORDER]; - _buttonOk ctrlsetposition _pos; - _buttonOk ctrlcommit 0; - - //--- ButtonCancel - _pos set [0,_posX + _posW * (8.9 / 10)]; - _pos set [2,_posW * (1.1 / 10)]; - _buttonCancel ctrlsetposition _pos; - _buttonCancel ctrlcommit 0; - - //--- PositionX - /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _sizeX ctrlsetposition _pos; - _sizeX ctrlcommit 0;*/ - - //--- PositionY - /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; - _sizeY ctrlsetposition _pos; - _sizeY ctrlcommit 0;*/ - - - // init marker shape lb - { - _shape lbAdd (_x select 0); - _shape lbSetValue [_forEachIndex, _x select 1]; - _shape lbSetPicture [_forEachIndex, _x select 2]; - } forEach GVAR(MarkersCache); - - _shape ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedShape)}]; - - _curSelShape = GETMVAR(curSelMarkerShape,0); - _shape lbSetCurSel _curSelShape; - _data = _shape lbValue _curSelShape; - _config = (configfile >> "CfgMarkers") select _data; - _icon = getText (_config >> "icon"); - _picture ctrlSetText _icon; - - - // init marker color lb - { - _color lbAdd (_x select 0); - _color lbSetValue [_forEachIndex, _x select 1]; - _color lbSetPicture [_forEachIndex, _x select 2]; - } forEach GVAR(MarkerColorsCache); - - _color ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedColor)}]; - - _curSelColor = GETMVAR(curSelMarkerColor,0); - _color lbSetCurSel _curSelColor; - _data = _color lbValue _curSelColor; - _config = (configfile >> "CfgMarkerColors") select _data; - _rgba = getArray (_config >> "color"); - { - if (typeName _x != "SCALAR") then { - _rgba set [_forEachIndex, call compile _x]; - }; - } forEach _rgba; - _picture ctrlSetTextColor _rgba; - - - // init marker angle slider - _angle sliderSetRange [-180, 180]; - _angle ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedAngle)}]; - - _curSelAngle = GETMVAR(curSelMarkerAngle,0); - _angle sliderSetPosition _curSelAngle; - - _curSelAngle = round _curSelAngle; - if (_curSelAngle < 0) then { - _curSelAngle = _curSelAngle + 360; + case ("group"): { + _channel = localize "str_channel_group"; + _textColor = [(181/255),(248/255),(98/255),1]; + }; + case ("vehicle"): { + _channel = localize "str_channel_vehicle"; + _textColor = [(255/255),(208/255),(0/255),1]; + }; + case ("direct"): { + _channel = localize "str_channel_direct"; + _textColor = [(255/255),(255/255),(255/255),1]; + }; + case ("command"): { + _channel = localize "str_channel_command"; + _textColor = [(255/255),(255/255),(70/255),1]; }; - - _angleText ctrlSetText format [localize "STR_ACE_Markers_MarkerDirection", _curSelAngle]; - }; + + //If localization not found, then don't touch anything (default is RscButtonMenuOK's localized text) + if (_channel != "") then { + _buttonOK ctrlSetTextColor _textColor; + _buttonOK ctrlSetText format [localize "STR_ACE_Markers_PlaceIn", _channel]; + }; + + //--- Background + _pos = ctrlposition _text; + _posX = (_pos select 0) + 0.01; + _posY = _pos select 1; + _posW = _pos select 2; + _posH = _pos select 3; + _posY = _posY min ((safeZoneH + safeZoneY) - (6 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen + _pos set [0,_posX]; + _pos set [1,_posY]; + _text ctrlsetposition _pos; + _text ctrlcommit 0; + + //--- Title + _pos set [1,_posY - 2*_posH - BORDER]; + _pos set [3,_posH]; + _title ctrlsetposition _pos; + _title ctrlcommit 0; + + //--- Description + _pos set [1,_posY - 1*_posH]; + _pos set [3,6*_posH + 6 * BORDER]; + _description ctrlsetposition _pos; + _description ctrlsetstructuredtext parsetext format ["%1","Description:"]; //--- ToDo: Localze + _description ctrlcommit 0; + + _activeColor = (["IGUI","WARNING_RGB"] call bis_fnc_displaycolorget) call bis_fnc_colorRGBtoHTML; + + //--- Shape + _pos set [1,_posY + 1 * _posH + 2 * BORDER]; + _pos set [2,_posW]; + _pos set [3,_posH]; + _shape ctrlsetposition _pos; + _shape ctrlcommit 0; + + //--- Color + _pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _pos set [2,_posW]; + _color ctrlsetposition _pos; + _color ctrlcommit 0; + + //--- Angle + _pos set [1,_posY + 3 * _posH + 4 * BORDER]; + _pos set [2,_posW]; + _angle ctrlsetposition _pos; + _angle ctrlcommit 0; + + //--- Angle Text + _pos set [1,_posY + 4 * _posH + 5 * BORDER]; + _pos set [2,_posW]; + _angleText ctrlsetposition _pos; + _angleText ctrlcommit 0; + + //--- ButtonOK + _pos set [1,_posY + 5 * _posH + 7 * BORDER]; + _pos set [2,_posW * (8.9/10) - BORDER]; + _buttonOk ctrlsetposition _pos; + _buttonOk ctrlcommit 0; + + //--- ButtonCancel + _pos set [0,_posX + _posW * (8.9 / 10)]; + _pos set [2,_posW * (1.1 / 10)]; + _buttonCancel ctrlsetposition _pos; + _buttonCancel ctrlcommit 0; + + //--- PositionX + /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _sizeX ctrlsetposition _pos; + _sizeX ctrlcommit 0;*/ + + //--- PositionY + /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _sizeY ctrlsetposition _pos; + _sizeY ctrlcommit 0;*/ + + + // init marker shape lb + { + _shape lbAdd (_x select 0); + _shape lbSetValue [_forEachIndex, _x select 1]; + _shape lbSetPicture [_forEachIndex, _x select 2]; + } forEach GVAR(MarkersCache); + + _shape ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedShape)}]; + + _curSelShape = GETGVAR(curSelMarkerShape,0); + _shape lbSetCurSel _curSelShape; + _data = _shape lbValue _curSelShape; + _config = (configfile >> "CfgMarkers") select _data; + _icon = getText (_config >> "icon"); + _picture ctrlSetText _icon; + + + // init marker color lb + { + _color lbAdd (_x select 0); + _color lbSetValue [_forEachIndex, _x select 1]; + _color lbSetPicture [_forEachIndex, _x select 2]; + } forEach GVAR(MarkerColorsCache); + + _color ctrlAddEventHandler ["LBSelChanged", {_this call FUNC(onLBSelChangedColor)}]; + + _curSelColor = GETGVAR(curSelMarkerColor,0); + _color lbSetCurSel _curSelColor; + _data = _color lbValue _curSelColor; + _config = (configfile >> "CfgMarkerColors") select _data; + _rgba = getArray (_config >> "color"); + { + if (typeName _x != "SCALAR") then { + _rgba set [_forEachIndex, call compile _x]; + }; + } forEach _rgba; + _picture ctrlSetTextColor _rgba; + + + // init marker angle slider + _angle sliderSetRange [-180, 180]; + _angle ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedAngle)}]; + + _curSelAngle = GETGVAR(curSelMarkerAngle,0); + _angle sliderSetPosition _curSelAngle; + + _curSelAngle = round _curSelAngle; + if (_curSelAngle < 0) then { + _curSelAngle = _curSelAngle + 360; + }; + + _angleText ctrlSetText format [localize "STR_ACE_Markers_MarkerDirection", _curSelAngle]; + }, _this] call EFUNC(common,execNextFrame); diff --git a/addons/markers/functions/fnc_placeMarker.sqf b/addons/markers/functions/fnc_placeMarker.sqf index 904b5d91cb..56fe16700a 100644 --- a/addons/markers/functions/fnc_placeMarker.sqf +++ b/addons/markers/functions/fnc_placeMarker.sqf @@ -30,11 +30,13 @@ if (_this select 1 == 1) then { [ { - ["setMarkerNetwork", [ - GETMVAR(currentMarkerShape,0), - GETMVAR(currentMarkerColor,0), - _this, - GETMVAR(currentMarkerAngle,0) + [QGVAR(setMarkerNetwork), [ + allMapMarkers select (count allMapMarkers - 1), [ + GETGVAR(currentMarkerShape,0), + GETGVAR(currentMarkerColor,0), + _this, + GETGVAR(currentMarkerAngle,0) + ] ]] call EFUNC(common,globalEvent); }, diff --git a/addons/markers/functions/fnc_sendMarkersJIP.sqf b/addons/markers/functions/fnc_sendMarkersJIP.sqf index 10c534ab65..9915820d72 100644 --- a/addons/markers/functions/fnc_sendMarkersJIP.sqf +++ b/addons/markers/functions/fnc_sendMarkersJIP.sqf @@ -6,8 +6,8 @@ private "_logic"; _logic = _this; [QGVAR(setMarkerJIP), _logic, [ - GETMVAR(allMapMarkers,[]), - GETMVAR(allMapMarkersProperties,[]), + GETGVAR(allMapMarkers,[]), + GETGVAR(allMapMarkersProperties,[]), _logic ] ] call EFUNC(common,targetEvent);