141 lines
5.3 KiB
Plaintext
141 lines
5.3 KiB
Plaintext
#include "\a3\ui_f_curator\ui\defineResinclDesign.inc"
|
|
|
|
_mode = _this select 0;
|
|
_params = _this select 1;
|
|
_class = _this select 2;
|
|
|
|
switch _mode do {
|
|
case "onLoad": {
|
|
|
|
_display = _params select 0;
|
|
_displayConfig = configfile >> _class;
|
|
|
|
_ctrlBackground = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_BACKGROUND;
|
|
_ctrlTitle = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_TITLE;
|
|
_ctrlContent = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_CONTENT;
|
|
_ctrlButtonOK = _display displayctrl IDC_OK;
|
|
_ctrlButtonCancel = _display displayctrl IDC_CANCEL;
|
|
_ctrlButtonCustom = _display displayctrl IDC_RSCDISPLAYATTRIBUTES_BUTTONCUSTOM;
|
|
|
|
_ctrlBackgroundPos = ctrlposition _ctrlBackground;
|
|
_ctrlTitlePos = ctrlposition _ctrlTitle;
|
|
_ctrlContentPos = ctrlposition _ctrlContent;
|
|
_ctrlButtonOKPos = ctrlposition _ctrlButtonOK;
|
|
_ctrlButtonCancelPos = ctrlposition _ctrlButtonCancel;
|
|
_ctrlButtonCustomPos = ctrlposition _ctrlButtonCustom;
|
|
|
|
_ctrlTitleOffsetY = (_ctrlBackgroundPos select 1) - (_ctrlTitlePos select 1) - (_ctrlTitlePos select 3);
|
|
_ctrlContentOffsetY = (_ctrlContentPos select 1) - (_ctrlBackgroundPos select 1);
|
|
|
|
//--- Show fake map in the background
|
|
_ctrlMap = _display displayctrl IDC_RSCDISPLAYCURATOR_MAINMAP;
|
|
_ctrlMap ctrlenable false;
|
|
if (visiblemap) then {
|
|
_ctrlCuratorMap = (finddisplay IDD_RSCDISPLAYCURATOR) displayctrl IDC_RSCDISPLAYCURATOR_MAINMAP;
|
|
_ctrlMap ctrlmapanimadd [0,ctrlmapscale _ctrlCuratorMap,_ctrlCuratorMap ctrlmapscreentoworld [0.5,0.5]];
|
|
ctrlmapanimcommit _ctrlMap;
|
|
} else {
|
|
_ctrlMap ctrlshow false;
|
|
};
|
|
|
|
//--- Load default attributes
|
|
_attributes = if (getnumber (_displayConfig >> "filterAttributes") > 0) then {missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_attributes",[]]} else {["%ALL"]};
|
|
_allAttributes = "%ALL" in _attributes;
|
|
|
|
//--- Initialize attributes
|
|
_posY = _ctrlContentOffsetY;
|
|
_contentControls = _displayConfig >> "Controls" >> "Content" >> "Controls";
|
|
_enableDebugConsole = ["DebugConsole",getnumber (missionconfigfile >> "enableDebugConsole")] call bis_fnc_getParamValue;
|
|
_enableAdmin = (_enableDebugConsole == 1 && (isserver || serverCommandAvailable "#shutdown")) || _enableDebugConsole == 2;
|
|
for "_i" from 0 to (count _contentControls - 1) do {
|
|
_cfgControl = _contentControls select _i;
|
|
if (isclass _cfgControl) then {
|
|
_idc = getnumber (_cfgControl >> "idc");
|
|
_control = _display displayctrl _idc;
|
|
|
|
//--- Admin specific attribute
|
|
_show = if (getnumber (_cfgControl >> "adminOnly") > 0) then {_enableAdmin} else {true};
|
|
|
|
if ((_allAttributes || {_x == configname _cfgControl} count _attributes > 0) && _show) then {
|
|
_controlPos = ctrlposition _control;
|
|
_controlPos set [0,0];
|
|
_controlPos set [1,_posY];
|
|
_control ctrlsetposition _controlPos;
|
|
_control ctrlcommit 0;
|
|
_posY = _posY + (_controlPos select 3) + 0.005;
|
|
ctrlsetfocus _control;
|
|
} else {
|
|
_control ctrlsetposition [0,0,0,0];
|
|
_control ctrlcommit 0;
|
|
_control ctrlshow false;
|
|
};
|
|
};
|
|
};
|
|
_posH = ((_posY + _ctrlContentOffsetY) min 0.9) * 0.5;
|
|
|
|
_target = missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_target",objnull];
|
|
_name = switch (typename _target) do {
|
|
case (typename objnull): {gettext (configfile >> "cfgvehicles" >> typeof _target >> "displayname")};
|
|
case (typename grpnull): {groupid _target};
|
|
case (typename []): {format ["%1: %3 #%2",groupid (_target select 0),_target select 1,localize "str_a3_cfgmarkers_waypoint_0"]};
|
|
case (typename ""): {markertext _target};
|
|
};
|
|
_ctrlTitle ctrlsettext format [ctrltext _ctrlTitle,toupper _name];
|
|
|
|
_ctrlTitlePos set [1,(0.5 - _posH) - (_ctrlTitlePos select 3) - _ctrlTitleOffsetY];
|
|
_ctrlTitle ctrlsetposition _ctrlTitlePos;
|
|
_ctrlTitle ctrlcommit 0;
|
|
|
|
_ctrlContentPos set [1,0.5 - _posH];
|
|
_ctrlContentPos set [3,_posH * 2];
|
|
_ctrlContent ctrlsetposition _ctrlContentPos;
|
|
_ctrlContent ctrlcommit 0;
|
|
|
|
_ctrlBackgroundPos set [1,0.5 - _posH];
|
|
_ctrlBackgroundPos set [3,_posH * 2];
|
|
_ctrlBackground ctrlsetposition _ctrlBackgroundPos;
|
|
_ctrlBackground ctrlcommit 0;
|
|
|
|
_ctrlButtonOKPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
|
_ctrlButtonOK ctrlsetposition _ctrlButtonOKPos;
|
|
_ctrlButtonOK ctrlcommit 0;
|
|
ctrlsetfocus _ctrlButtonOK;
|
|
|
|
_ctrlButtonCancelPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
|
_ctrlButtonCancel ctrlsetposition _ctrlButtonCancelPos;
|
|
_ctrlButtonCancel ctrlcommit 0;
|
|
|
|
_ctrlButtonCustomPos set [1,0.5 + _posH + _ctrlTitleOffsetY];
|
|
_ctrlButtonCustom ctrlsetposition _ctrlButtonCustomPos;
|
|
_ctrlButtonCustom ctrlcommit 0;
|
|
|
|
//--- Close the display when entity is altered
|
|
[_display] spawn {
|
|
disableserialization;
|
|
_display = _this select 0;
|
|
_target = missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_target",objnull];
|
|
switch (typename _target) do {
|
|
case (typename objnull): {
|
|
_isAlive = alive _target;
|
|
waituntil {isnull _display || (_isAlive && !alive _target)};
|
|
};
|
|
case (typename grpnull): {
|
|
waituntil {isnull _display || isnull _target};
|
|
};
|
|
case (typename []): {
|
|
_grp = _target select 0;
|
|
_wpCount = count waypoints _grp;
|
|
waituntil {isnull _display || (count waypoints _grp != _wpCount)};
|
|
};
|
|
case (typename ""): {
|
|
waituntil {isnull _display || markertype _target == ""};
|
|
};
|
|
};
|
|
_display closedisplay 2;
|
|
};
|
|
};
|
|
case "onUnload": {
|
|
|
|
};
|
|
};
|