get markers to work

This commit is contained in:
commy2 2015-01-19 16:59:00 +01:00
parent 1c37c76cc6
commit e55a85cc26
4 changed files with 193 additions and 193 deletions

View File

@ -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 {

View File

@ -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);

View File

@ -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);
}, },

View File

@ -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);