mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
get markers to work
This commit is contained in:
parent
1c37c76cc6
commit
e55a85cc26
@ -2,10 +2,10 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
// recieve remote marker data
|
// 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
|
// 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
|
// request marker data for JIP
|
||||||
if (isMultiplayer && {!isServer} && {hasInterface}) then {
|
if (isMultiplayer && {!isServer} && {hasInterface}) then {
|
||||||
|
@ -4,198 +4,196 @@
|
|||||||
#define BORDER 0.005
|
#define BORDER 0.005
|
||||||
|
|
||||||
[{
|
[{
|
||||||
with uinamespace do {
|
disableserialization;
|
||||||
|
_display = _this select 0;
|
||||||
|
|
||||||
disableserialization;
|
//Prevent Captive Players from placing markers
|
||||||
_display = _this select 0;
|
/*if (ACE_player getVariable ["ACE_isCaptive", false]) exitWith {
|
||||||
|
_display closeDisplay 2; //emulate "Cancel" button
|
||||||
|
};*/
|
||||||
|
|
||||||
//Prevent Captive Players from placing markers
|
// prevent vanilla key input
|
||||||
/*if (ACE_player getVariable ["ACE_isCaptive", false]) exitWith {
|
_display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}];
|
||||||
_display closeDisplay 2; //emulate "Cancel" button
|
|
||||||
};*/
|
|
||||||
|
|
||||||
// prevent vanilla key input
|
_text = _display displayctrl 101;
|
||||||
_display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}];
|
_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;
|
ctrlSetFocus _text;
|
||||||
_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;
|
//Change ok button's text based on current channel
|
||||||
|
//if (isNull _buttonOK) exitWith {true};
|
||||||
|
|
||||||
//Change ok button's text based on current channel
|
_channel = "";
|
||||||
if (isNull _buttonOK) exitWith {true};
|
_textColor = [1,1,1,1];
|
||||||
|
switch (call EFUNC(common,currentChannel)) do {
|
||||||
_textColor = [1,1,1,1];
|
case ("global"): {
|
||||||
switch (call EFUNC(common,currentChannel)) do {
|
_channel = localize "str_channel_global";
|
||||||
case ("global"): {
|
_textColor = [(216/255),(216/255),(216/255),1];
|
||||||
_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];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
case ("side"): {
|
||||||
//If localization not found, then don't touch anything (default is RscButtonMenuOK's localized text)
|
_channel = localize "str_channel_side";
|
||||||
if (_channel != "") then {
|
_textColor = [(70/255),(211/255),(252/255),1];
|
||||||
_buttonOK ctrlSetTextColor _textColor;
|
|
||||||
_buttonOK ctrlSetText format [localize "STR_ACE_Markers_PlaceIn", _channel];
|
|
||||||
};
|
};
|
||||||
|
case ("group"): {
|
||||||
//--- Background
|
_channel = localize "str_channel_group";
|
||||||
_pos = ctrlposition _text;
|
_textColor = [(181/255),(248/255),(98/255),1];
|
||||||
_posX = (_pos select 0) + 0.01;
|
};
|
||||||
_posY = _pos select 1;
|
case ("vehicle"): {
|
||||||
_posW = _pos select 2;
|
_channel = localize "str_channel_vehicle";
|
||||||
_posH = _pos select 3;
|
_textColor = [(255/255),(208/255),(0/255),1];
|
||||||
_posY = _posY min ((safeZoneH + safeZoneY) - (6 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen
|
};
|
||||||
_pos set [0,_posX];
|
case ("direct"): {
|
||||||
_pos set [1,_posY];
|
_channel = localize "str_channel_direct";
|
||||||
_text ctrlsetposition _pos;
|
_textColor = [(255/255),(255/255),(255/255),1];
|
||||||
_text ctrlcommit 0;
|
};
|
||||||
|
case ("command"): {
|
||||||
//--- Title
|
_channel = localize "str_channel_command";
|
||||||
_pos set [1,_posY - 2*_posH - BORDER];
|
_textColor = [(255/255),(255/255),(70/255),1];
|
||||||
_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 ["<t size='0.8'>%1</t>","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;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_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 ["<t size='0.8'>%1</t>","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);
|
}, _this] call EFUNC(common,execNextFrame);
|
||||||
|
@ -30,11 +30,13 @@ if (_this select 1 == 1) then {
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
|
||||||
["setMarkerNetwork", [
|
[QGVAR(setMarkerNetwork), [
|
||||||
GETMVAR(currentMarkerShape,0),
|
allMapMarkers select (count allMapMarkers - 1), [
|
||||||
GETMVAR(currentMarkerColor,0),
|
GETGVAR(currentMarkerShape,0),
|
||||||
_this,
|
GETGVAR(currentMarkerColor,0),
|
||||||
GETMVAR(currentMarkerAngle,0)
|
_this,
|
||||||
|
GETGVAR(currentMarkerAngle,0)
|
||||||
|
]
|
||||||
]] call EFUNC(common,globalEvent);
|
]] call EFUNC(common,globalEvent);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -6,8 +6,8 @@ private "_logic";
|
|||||||
_logic = _this;
|
_logic = _this;
|
||||||
|
|
||||||
[QGVAR(setMarkerJIP), _logic, [
|
[QGVAR(setMarkerJIP), _logic, [
|
||||||
GETMVAR(allMapMarkers,[]),
|
GETGVAR(allMapMarkers,[]),
|
||||||
GETMVAR(allMapMarkersProperties,[]),
|
GETGVAR(allMapMarkersProperties,[]),
|
||||||
_logic
|
_logic
|
||||||
]
|
]
|
||||||
] call EFUNC(common,targetEvent);
|
] call EFUNC(common,targetEvent);
|
||||||
|
Loading…
Reference in New Issue
Block a user