diff --git a/TO_MERGE/cse/gui/CfgFunctions.h b/TO_MERGE/cse/gui/CfgFunctions.h new file mode 100644 index 0000000000..ef4e5c25b2 --- /dev/null +++ b/TO_MERGE/cse/gui/CfgFunctions.h @@ -0,0 +1,61 @@ +class CfgFunctions { + class CSE + { + class GUI + { + file = "cse\cse_gui\functions"; + class gui_keyPressed { recompile = 1; }; + class gui_createInteractionMenu { recompile = 1; }; + class gui_addMenuEntry { recompile = 1; }; + class gui_getMenuEntries { recompile = 1; }; + class gui_displaySubMenuButtons { recompile = 1; }; + class gui_hideSubMenuButtons { recompile = 1; }; + class gui_hideSubSubMenuButtons { recompile = 1; }; + class gui_sortMenuEntries { recompile = 1; }; + class gui_refreshLastSubMenu { recompile = 1; }; + class gui_displayEventHandler { recompile = 1; }; + class gui_loadingBar { recompile = 1; }; + class gui_hasOptionAvailable { recompile = 1; }; + class gui_displayInformation { recompile = 1; }; + class gui_displayMessage { recompile = 1; }; + class gui_blurScreen { recompile = 1; }; + class gui_displayIcon { recompile = 1; }; + }; + class RadialMenu { + file = "cse\cse_gui\radialmenu"; + class findTargetOfMenu_GUI { recompile = 1; }; + class openRadialMenu_GUI {recompile = 1; }; + class openRadialSubMenu_GUI {recompile = 1; }; + class setRadialMenuOptions_GUI {recompile = 1; }; + class setRadialMenuName_GUI { recompile = 1; }; + class getcurrentRadialTarget_GUI { recompile = 1; }; + class returnToPreviousSubMenu_GUI { recompile = 1; }; + class setRadialSecondRing_GUI { recompile = 1; }; + class openRadialSecondRing_GUI { recompile = 1; }; + class closeRadialSecondRing_GUI { recompile = 1; }; + class setRadialMenuTargetName_GUI { recompile = 1; }; + class findtargetName_GUI { recompile = 1;}; + class setRadialOptionSelected_GUI { recompile = 1; }; + class isRadialOptionSelected_GUI { recompile = 1; }; + class isOpenSecondRing_GUI { recompile = 1; }; + class addEntryToRadialInteraction_F { recompile = 1; }; + class createRadialInteraction_F { recompile = 1; }; + class getRadialInteractionEntries_F { recompile = 1; }; + class openRadialInteractionMenu_F { recompile = 1; }; + class radialUsesSorter_F { recompile = 1; }; + class getEntryToMenuSorter_F { recompile = 1; }; + class addEntryToMenuSorter_F { recompile = 1; }; + class createCategoryRadialMenu_F { recompile = 1; }; + class getAllCategoryEntriesRadialMenu_F { recompile = 1; }; + class addCategoryEntryRadialMenu_F { recompile = 1; }; + class hasEntriesRadialInteraction_F { recompile = 1; }; + class addMultipleEntriesToRadialCategory_F { recompile = 1; }; + class getIcon_F { recompile = 1; }; + class categoryHasActionsAvailable_F { recompile = 1; }; + }; + class WeaponSelector { + file = "cse\cse_gui\WeaponSelector"; + class onWeaponSelectorOpened_GUI { recompile = 1; }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/Combat_Space_Enhancement.h b/TO_MERGE/cse/gui/Combat_Space_Enhancement.h new file mode 100644 index 0000000000..62d1708f5c --- /dev/null +++ b/TO_MERGE/cse/gui/Combat_Space_Enhancement.h @@ -0,0 +1,13 @@ +class Combat_Space_Enhancement { + class EventHandlers { + class PostInit_EventHandlers { + class cse_gui { + init = " call compile preprocessFile 'cse\cse_gui\init.sqf';"; + }; + }; + }; + + class CustomEventHandlers { + class openRadialMenu {}; // [_menuName, _entries, _target] + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/GUI.h b/TO_MERGE/cse/gui/GUI.h new file mode 100644 index 0000000000..4e22d8ae32 --- /dev/null +++ b/TO_MERGE/cse/gui/GUI.h @@ -0,0 +1,10 @@ +#include "gui\define.hpp" +#include "gui\interactionMenu.hpp" +#include "gui\interactionMenu_white.hpp" +#include "gui\radial.h" +#include "gui\cseLogoPlain.hpp" +#include "gui\dynamicMenu.h" +#include "gui\RscTitles.h" + + +// #include "gui\weapon_selector.h" \ No newline at end of file diff --git a/TO_MERGE/cse/gui/config.cpp b/TO_MERGE/cse/gui/config.cpp new file mode 100644 index 0000000000..918a9208b3 --- /dev/null +++ b/TO_MERGE/cse/gui/config.cpp @@ -0,0 +1,25 @@ +#define _ARMA_ +class CfgPatches +{ + class cse_gui + { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.1; + requiredAddons[] = {"a3_ui_f", "cse_main"}; + version = "0.10.0_rc"; + author[] = {"Combat Space Enhancement"}; + authorUrl = "http://csemod.com"; + }; +}; +class CfgAddons { + class PreloadAddons { + class cse_gui { + list[] = {"cse_gui"}; + }; + }; +}; + +#include "CfgFunctions.h" +#include "Combat_Space_Enhancement.h" +#include "GUI.h" \ No newline at end of file diff --git a/TO_MERGE/cse/gui/data/background_gradient.paa b/TO_MERGE/cse/gui/data/background_gradient.paa new file mode 100644 index 0000000000..0a56125f7a Binary files /dev/null and b/TO_MERGE/cse/gui/data/background_gradient.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonDisabled.paa b/TO_MERGE/cse/gui/data/buttonDisabled.paa new file mode 100644 index 0000000000..2c2a10856b Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonDisabled.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonDisabled_gradient.paa b/TO_MERGE/cse/gui/data/buttonDisabled_gradient.paa new file mode 100644 index 0000000000..43b1b8d100 Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonDisabled_gradient.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal.paa b/TO_MERGE/cse/gui/data/buttonNormal.paa new file mode 100644 index 0000000000..84936d8356 Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal_gradient.paa b/TO_MERGE/cse/gui/data/buttonNormal_gradient.paa new file mode 100644 index 0000000000..2210f98741 Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal_gradient.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal_gradient2.paa b/TO_MERGE/cse/gui/data/buttonNormal_gradient2.paa new file mode 100644 index 0000000000..cabe6c7fed Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal_gradient2.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal_gradient3.paa b/TO_MERGE/cse/gui/data/buttonNormal_gradient3.paa new file mode 100644 index 0000000000..7da9fbcf8a Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal_gradient3.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal_gradient_top.paa b/TO_MERGE/cse/gui/data/buttonNormal_gradient_top.paa new file mode 100644 index 0000000000..904e1a62f7 Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal_gradient_top.paa differ diff --git a/TO_MERGE/cse/gui/data/buttonNormal_gradient_top_w.paa b/TO_MERGE/cse/gui/data/buttonNormal_gradient_top_w.paa new file mode 100644 index 0000000000..23dd190afc Binary files /dev/null and b/TO_MERGE/cse/gui/data/buttonNormal_gradient_top_w.paa differ diff --git a/TO_MERGE/cse/gui/functions/fn_addCatagoryEntry.sqf b/TO_MERGE/cse/gui/functions/fn_addCatagoryEntry.sqf new file mode 100644 index 0000000000..5c45c5f466 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_addCatagoryEntry.sqf @@ -0,0 +1,54 @@ +/** + * fn_addCatagoryEntry.sqf + * @Descr: Add a Catagory entry to a menu + * @Author: Glowbal + * + * @Arguments: [menuName STRING, categoryName STRING, code CODE, condition CODE] + * @Return: void + * @PublicAPI: true + */ + +private ["_menuName","_catagoryName","_code","_condition","_foundMenuName","_foundEntryName","_counter","_onPosMenu","_onPosCatagory","_catagoryCounter","_entryCollection","_entry"]; +_menuName = [_this,0,"",[""]] call BIS_fnc_Param; +_catagoryName = [_this,1, "",[""]] call BIS_fnc_Param; +_code = [_this,2,{},[{}]] call BIS_fnc_Param; +_condition = [_this,3,{},[{}]] call BIS_fnc_Param; + + +if (isnil "CSE_CATAGORY_LIST_ENTRIES") then { + CSE_CATAGORY_LIST_ENTRIES = []; +}; + +_foundMenuName = false; +_foundEntryName = false; +_onPosMenu = 0; +_onPosCatagory = 0; +_counter = 0; +{ + if ((_x select 0) == _menuName) exitwith { + // found entry + _foundMenuName = true; + _onPosMenu = _counter; + _catagoryCounter = 0; + { + if ((_x select 0) == _catagoryName) exitwith { + _foundEntryName = true; + _onPosCatagory = _catagoryCounter; + }; + _catagoryCounter = _catagoryCounter + 1; + }foreach (_x select 1); + }; + _counter = _counter + 1; +}foreach CSE_CATAGORY_LIST_ENTRIES; + + +if (!_foundMenuName) then { +} else { + if (!_foundEntryName) then { + } else { + _entry = [_catagoryName,_condition,_code]; + _arrayOfCatagories = CSE_CATAGORY_LIST_ENTRIES select _onPosMenu; + _entryCollection = _arrayOfCatagories select _onPosCatagory; + _entryCollection pushback _entry; + }; +}; diff --git a/TO_MERGE/cse/gui/functions/fn_gui_addCatagory.sqf b/TO_MERGE/cse/gui/functions/fn_gui_addCatagory.sqf new file mode 100644 index 0000000000..0d4e91bc19 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_addCatagory.sqf @@ -0,0 +1,76 @@ +/** + * fn_gui_addCatagory.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_catagoryCounter","_catagoryName","_condition","_priority","_foundEntryName","_foundMenuName", "_counter","_onPosCatagory","_onPosMenu","_catagoryCounter","_arrayOfCatagories"]; +_menuName = _this select 0; +_catagoryName = _this select 1; +_condition = _this select 2; +_priority = _this select 3; + + +if (isnil "CSE_CATAGORY_LIST_ENTRIES") then { + CSE_CATAGORY_LIST_ENTRIES = []; + CSE_CATAGORY_LIST_ENTRIES pushback [_menuName,[_catagoryName, [] ] ]; +}; + +_foundMenuName = false; +_foundEntryName = false; +_onPosMenu = 0; +_onPosCatagory = 0; +{ + if ((_x select 0) == _menuName) exitwith { + _foundMenuName = true; + _onPosMenu = _foreachIndex; + _catagoryCounter = 0; + { + if ((_x select 0) == _catagoryName) exitwith { + _foundEntryName = true; + _onPosCatagory = _catagoryCounter; + }; + _catagoryCounter = _catagoryCounter + 1; + }foreach (_x select 1); + }; +}foreach CSE_CATAGORY_LIST_ENTRIES; + +if (!_foundMenuName) then { + CSE_CATAGORY_LIST_ENTRIES pushback [_menuName,[_catagoryName, [] ] ]; +} else { + if (!_foundEntryName) then { + _arrayOfCatagories = CSE_CATAGORY_LIST_ENTRIES select _onPosMenu; + _arrayOfCatagories pushback [_catagoryName, [] ]; + }; +}; + + + cse_fnc_gui_getCatagoryEntries = { + + if (isnil "CSE_CATAGORY_LIST_ENTRIES") { + CSE_CATAGORY_LIST_ENTRIES = []; + }; + _return = []; + + { + if ((_x select 0) == (_this select 0)) exitwith { + { + if ((_x select 0) == (_this select 1)) exitwith { + _return = _x select 1; + }; + }foreach (_x select 1); + }; + }foreach CSE_CATAGORY_LIST_ENTRIES + + _return + }; + + [_menuName,_catagoryName + " >",_condition,{ + [_catagoryName,_this select 2,[_menuName,_catagoryName] call cse_fnc_gui_getCatagoryEntries] call cse_fnc_gui_displaySubMenuButtons; + },_priority] call cse_fnc_gui_addMenuEntry; + + diff --git a/TO_MERGE/cse/gui/functions/fn_gui_addCatagoryEntry.sqf b/TO_MERGE/cse/gui/functions/fn_gui_addCatagoryEntry.sqf new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/cse/gui/functions/fn_gui_addMenuEntry.sqf b/TO_MERGE/cse/gui/functions/fn_gui_addMenuEntry.sqf new file mode 100644 index 0000000000..6cd4b22d01 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_addMenuEntry.sqf @@ -0,0 +1,47 @@ +/** + * fn_gui_addMenuEntry.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +if (isDedicated) exitwith { [format["GUI - fnc_gui_addMenuEntry EXIT ON DEDICATED"],2] call cse_fnc_debug;}; + +if (isnil "cse_gui_availableMenuOptions") then { + cse_gui_availableMenuOptions = []; +}; +private ["_menuName","_optionName","_menuCondition","_menuAction","_priority"]; + _menuName = _this select 0; + _optionName = _this select 1; + _menuCondition = _this select 2; + _menuAction = _this select 3; + _priority = _this select 4; + +_MENU_VAR = format["CSE_GUI_MENU_OPTIONS_%1", _menuName]; +if (isnil _MENU_VAR) then { + call compile format["%1 = [];",_MENU_VAR]; +}; + +//[format["GUI - fnc_gui_addMenuEntry %1",_this, _MENU_VAR],2] call cse_fnc_debug; + +[_menuName,_optionName,_menuCondition,_menuAction,_priority] call compile format["%1 pushback _this;",_MENU_VAR]; + + //cse_gui_availableMenuOptions = cse_gui_availableMenuOptions + [[_menuName,_optionName,_menuCondition,_menuAction,_priority]]; + +/* +CSE_CONDITION_COMPARE_ARRAY_conditionCompareArray = []; +if (isnil 'CSE_CONDITION_COMPARE_CACHE') then { + CSE_CONDITION_COMPARE_CACHE = []; +}; +{ + _condition = _x select 2; + if !(_condition in CSE_CONDITION_COMPARE_CACHE) then { + CSE_CONDITION_COMPARE_CACHE set [ count CSE_CONDITION_COMPARE_CACHE , _condition ]; + } else { + player sidechat format["CACHING CONDITION: %1",_x]; + _x set [ 2 , CSE_CONDITION_COMPARE_CACHE find _condition]; + }; +}foreach (call compile (format["%1",_MENU_VAR]));*/ \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_blurScreen.sqf b/TO_MERGE/cse/gui/functions/fn_gui_blurScreen.sqf new file mode 100644 index 0000000000..9c9a901dd4 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_blurScreen.sqf @@ -0,0 +1,37 @@ +/** + * fn_gui_blurScreen.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + */ + +private ["_id", "_show"]; +_id = [_this, 0, "", [""]] call BIS_fnc_Param; +_show = [_this, 1, false, [false]] call BIS_fnc_Param; + +if (isnil "CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION") then { + CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION = []; +}; + +if (_show) then { + CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION pushback _id; + // show blur + if (isnil 'CSE_MENU_ppHandle_GUI_BLUR_SCREEN') then { + CSE_MENU_ppHandle_GUI_BLUR_SCREEN = ppEffectCreate ["DynamicBlur", 102]; + CSE_MENU_ppHandle_GUI_BLUR_SCREEN ppEffectAdjust [0.9]; + CSE_MENU_ppHandle_GUI_BLUR_SCREEN ppEffectEnable true; + CSE_MENU_ppHandle_GUI_BLUR_SCREEN ppEffectCommit 0; + }; +} else { + CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION = CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION - [_id]; + if (CSE_GUI_SHOW_BLUR_SCREEN_COLLECTION isEqualTo []) then { + // hide blur + if (!isnil 'CSE_MENU_ppHandle_GUI_BLUR_SCREEN') then { + ppEffectDestroy CSE_MENU_ppHandle_GUI_BLUR_SCREEN; + CSE_MENU_ppHandle_GUI_BLUR_SCREEN = nil; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_createInteractionMenu.sqf b/TO_MERGE/cse/gui/functions/fn_gui_createInteractionMenu.sqf new file mode 100644 index 0000000000..859aaf04c8 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_createInteractionMenu.sqf @@ -0,0 +1,19 @@ +/** + * fn_gui_createInteractionMenu.sqf + * @Descr: Creates a interaction menu + * @Author: Glowbal + * + * @Arguments: [name STRINg, keybinding ARRAY, idd NUMBER, condition CODE, type NUMBER] + * @Return: void + * @PublicAPI: true + */ + +private ["_name","_condition","_keyBinding","_idd","_type","_codeToExecute"]; +_name = _this select 0; +_keyBinding = _this select 1; +_idd = _this select 2; +_condition = _this select 3; +_type = _this select 4; + +_codeToExecute = compile format[ "%1 call cse_fnc_gui_keyPressed;", [_name,_condition,_type] ]; +[_name, _keyBinding, _codeToExecute, _idd] call cse_fnc_addKeyBindingForMenu_F; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_displayEventHandler.sqf b/TO_MERGE/cse/gui/functions/fn_gui_displayEventHandler.sqf new file mode 100644 index 0000000000..083a12ed26 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_displayEventHandler.sqf @@ -0,0 +1,74 @@ +/** + * fn_gui_displayEventHandler.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +[] spawn { + waitUntil {!isNull player && (player == player) && !(isNull (findDisplay 46))}; + CSE_KEY_COUNTER = 0; + CSE_DISPLAY_MENU = false; + CSE_MENU_ONRELEASE = false; + + + CSE_KEY_PRESSED_HANDLER = { + // state of Shift, Ctrl and Alt + //if (!(_this select 2)) then { + if !([player] call cse_fnc_isAwake) exitwith{}; + _MENU_VAR = format['CSE_GUI_MENU_%1', (_this select 1)]; + if (isnil _MENU_VAR) exitwith {}; + + _menu = (call compile _MENU_VAR) select 0; + + _states = _menu select 4; + if (((_states select 1) == 0) && (_this select 2)) exitwith {}; + if (((_states select 1) == 1) && !(_this select 2)) exitwith {}; + + if (((_states select 2) == 0) && (_this select 3)) exitwith {}; + if (((_states select 2) == 1) && !(_this select 3)) exitwith {}; + + if (((_states select 3) == 0) && (_this select 4)) exitwith {}; + if (((_states select 3) == 1) && !(_this select 4)) exitwith {}; + + if (CSE_DISPLAY_MENU && !CSE_KEY_RELEASED) exitwith {}; + if (CSE_DISPLAY_MENU && CSE_KEY_RELEASED) exitwith { closeDialog 145201;}; + if (dialog) exitwith { closeDialog 0; }; + + _STARTINGTIME = time; + CSE_DISPLAY_MENU = true; + CSE_KEY_RELEASED = false; + //null = [_this,_STARTINGTIME,(call compile _MENU_VAR) select 0] spawn { + _handle = [_this,_STARTINGTIME] spawn { + waituntil{CSE_KEY_RELEASED || (time - ((_this select 1)) > 0.25)}; + if (!CSE_KEY_RELEASED) then { + + CSE_MENU_ONRELEASE = true; + waituntil {CSE_KEY_RELEASED}; + CSE_MENU_ONRELEASE = false; + closeDialog 145201; + } else { + CSE_KEY_RELEASED = true; + }; + waituntil {!dialog}; + CSE_DISPLAY_MENU = false; + }; + [(_menu select 0),(_menu select 1),(_menu select 3)] call cse_fnc_gui_keyPressed; + //}; + false; + }; +/* + + cse_displayEventHandler_Dialog = findDisplay 46 displayAddEventHandler ["keyDown", CSE_KEY_PRESSED_HANDLER]; + cse_displayEventHandler_DialogReleased = findDisplay 46 displayAddEventHandler ["keyUp", { + _MENU_VAR = format['CSE_GUI_MENU_%1', (_this select 1)]; + if (CSE_DISPLAY_MENU) then { + if (!isnil _MENU_VAR) then { + CSE_KEY_RELEASED = true; + }; + }; + }];*/ +}; diff --git a/TO_MERGE/cse/gui/functions/fn_gui_displayIcon.sqf b/TO_MERGE/cse/gui/functions/fn_gui_displayIcon.sqf new file mode 100644 index 0000000000..1634228f9c --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_displayIcon.sqf @@ -0,0 +1,70 @@ +/** + * fn_gui_displayIcon.sqf + * @Descr: + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: true + * + * @Example ["myID", true, CSE_ICON_PATH + "icon_group.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + */ + +#define MAX_N_ICONS 6 + +private ["_iconId", "_show", "_icon", "_spot", "_idc", "_display","_next_IDC", "_nextText"]; +_iconId = _this select 0; +_show = _this select 1; +_icon = _this select 2; +_color = _this select 3; + +disableSerialization; +_list = missionNamespace getvariable ["cse_gui_displayIconList",[]]; +_display = uiNamespace getvariable "cse_gui_iconsDisplay"; +if (_show) then { + if ({(_x select 0 == _iconId)} count _list == 0) then { + _list pushback [_iconId, _icon, _color]; + } else { + { + if (_x select 0 == _iconId) exitwith { + _list set [_foreachIndex, [_iconId, _icon, _color]]; + }; + }foreach _list; + }; + + missionNamespace setvariable ["cse_gui_displayIconList", _list]; + + { + if (_x select 0 == _iconId) exitwith { + _idc = 10501 + _foreachIndex; + _ctrl = _display displayCtrl _idc; + _ctrl ctrlsetText _icon; + _ctrl ctrlSetTextColor _color; + }; + }foreach _list; +} else { + if ({(_x select 0 == _iconId)} count _list == 1) then { + _newList = []; + { + if (_x select 0 != _iconId) then { + _newList pushback _x; + }; + }foreach _list; + + missionNamespace setvariable ["cse_gui_displayIconList", _newList]; + + for "_i" from 0 to (MAX_N_ICONS - 1) /* step +1 */ do { + _idc = 10501 + _i; + _ctrl = _display displayCtrl _idc; + _ctrl ctrlsetText ""; + _ctrl ctrlSetTextColor [1,1,1,1]; + }; + + { + _idc = 10501 + _foreachIndex; + _ctrl = _display displayCtrl _idc; + _ctrl ctrlsetText (_x select 1); + _ctrl ctrlSetTextColor (_x select 2); + }foreach _newList; + }; +}; diff --git a/TO_MERGE/cse/gui/functions/fn_gui_displayInformation.sqf b/TO_MERGE/cse/gui/functions/fn_gui_displayInformation.sqf new file mode 100644 index 0000000000..44f675769f --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_displayInformation.sqf @@ -0,0 +1,65 @@ +/** + * fn_gui_displayInformation.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DISPLAY_LAYER 32547 + +private["_title", "_content","_type","_display","_headerCtrl","_contentCtrl","_contentAmountOfChars","_pos","_icon","_iconCtrl"]; +_title = [_this, 0, "",[""]] call BIS_fnc_Param; +_content = [_this, 1, [""],[[""]]] call BIS_fnc_Param; +_type = [_this, 2, 0, [0]] call BIS_fnc_Param; +_icon = [_this, 3, "",[""]] call BIS_fnc_Param; + +if (_title != "") then { + DISPLAY_LAYER cutRsc ["CSE_DISPLAY_INFORMATION","PLAIN"]; + + disableSerialization; + _display = uiNamespace getvariable "CSE_DISPLAY_INFORMATION"; + if (!isnil "_display") then { + _headerCtrl = _display displayCtrl 1; + _headerCtrl ctrlSetText _title; + _iconCtrl = _display displayCtrl 10; + _iconCtrl ctrlSetText _icon; + + _idc = 2; + { + _text = _x; + if (_text != "") then { + _contentCtrl = _display displayCtrl _idc; + _contentCtrl ctrlSetText _text; + + _contentAmountOfChars = count (toArray _text); + _pos = ctrlPosition _contentCtrl; + _pos set [2, _contentAmountOfChars * ((((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)/ 3.3) max (safeZoneW / 11)]; + _contentCtrl ctrlSetPosition _pos; + _contentCtrl ctrlCommit 0; + + + if (_type >0) then { + if (_type == 1) then { + _contentCtrl ctrlSetBackgroundColor [0.7,0.2,0.2,0.8]; + _contentCtrl ctrlSetTextColor [1,1,1,0.9]; + }; + }; + _idc = _idc + 1; + }; + }foreach _content; + + while {(_idc < 7)} do { + _contentCtrl = _display displayCtrl _idc; + _contentCtrl ctrlSetPosition [0,0,0,0]; + _contentCtrl ctrlCommit 0; + + _idc = _idc + 1; + }; + }; +} else { + + DISPLAY_LAYER cutText ["","PLAIN"]; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_displayMessage.sqf b/TO_MERGE/cse/gui/functions/fn_gui_displayMessage.sqf new file mode 100644 index 0000000000..1816bdfad5 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_displayMessage.sqf @@ -0,0 +1,43 @@ +/** + * fn_gui_displayMessage.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DISPLAY_LAYER 546 + +private["_title", "_content","_type","_display","_headerCtrl","_contentCtrl","_contentAmountOfChars","_pos"]; +_title = [_this, 0, "",[""]] call BIS_fnc_Param; +_content = [_this, 1, "",[""]] call BIS_fnc_Param; +_type = [_this, 2, 0, [0]] call BIS_fnc_Param; + +if (_title != "" && _content != "") then { + DISPLAY_LAYER cutRsc ["CSE_DISPLAY_MESSAGE","PLAIN"]; + + disableSerialization; + _display = uiNamespace getvariable "CSE_DISPLAY_MESSAGE"; + if (!isnil "_display") then { + _headerCtrl = _display displayCtrl 1; + _contentCtrl = _display displayCtrl 2; + + _headerCtrl ctrlSetText _title; + _contentCtrl ctrlSetText _content; + + _contentAmountOfChars = count (toArray _content); + _pos = ctrlPosition _contentCtrl; + _pos set [2, _contentAmountOfChars * ((((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)/ 3.3) max (safeZoneW / 11)]; + _contentCtrl ctrlSetPosition _pos; + _contentCtrl ctrlCommit 0; + + if (_type >0) then { + if (_type == 1) then { + _contentCtrl ctrlSetBackgroundColor [0.7,0.2,0.2,0.8]; + _contentCtrl ctrlSetTextColor [1,1,1,0.9]; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_displaySubMenuButtons.sqf b/TO_MERGE/cse/gui/functions/fn_gui_displaySubMenuButtons.sqf new file mode 100644 index 0000000000..51b31d8873 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_displaySubMenuButtons.sqf @@ -0,0 +1,104 @@ +/** + * fn_gui_displaySubMenuButtons.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_rootButton","_allMenuEntries","_allAvailableMainButtons","_selectedMainMenuButton","_interactionDialog","_position","_placeEntry"]; +disableSerialization; +_interactionDialog = uiNamespace getvariable "cse_interactionGUI"; +_rootButton = (_interactionDialog displayCtrl (_this select 1)); +_allMenuEntries = _this select 2; + +_headerNumber = 112; +_selectedMainMenuButton = 201; +_maxCtrlNumber = 215; +if ((_this select 1) > 200 && (_this select 1) < 300) then { + _headerNumber = 113; + _selectedMainMenuButton = 301; + _maxCtrlNumber = 315; +}; +_allAvailableMainButtons = 15; + +//hint format ["ROOTBUTTON: %1",_rootButton]; +_position = ctrlPosition _rootButton; +//_position = [(_position select 0) + 0.26, (_position select 1)]; +_position = [(_position select 0) + 0.31, (_position select 1)]; + +CMS_GUI_LATEST_SUBMENU = _this; + + (_interactionDialog displayCtrl _headerNumber) ctrlSetText (_this select 0); + (_interactionDialog displayCtrl _headerNumber) ctrlSetPosition [_position select 0,(_position select 1) - 0.040]; + //(_interactionDialog displayCtrl _headerNumber) ctrlSetBackgroundColor [0, 0, 0.6, 0.75]; + (_interactionDialog displayCtrl _headerNumber) ctrlSetBackgroundColor [(profilenamespace getvariable ['IGUI_BCG_RGB_R',0]),(profilenamespace getvariable ['IGUI_BCG_RGB_G',1]),(profilenamespace getvariable ['IGUI_BCG_RGB_B',1]), 0.75]; + (_interactionDialog displayCtrl _headerNumber) ctrlSetBackgroundColor [(profilenamespace getvariable ['GUI_BCG_RGB_R',0]),(profilenamespace getvariable ['GUI_BCG_RGB_G',1]),(profilenamespace getvariable ['GUI_BCG_RGB_B',1]), 0.75]; + (_interactionDialog displayCtrl _headerNumber) ctrlCommit 0; + + +CSE_UI_EFFECT = true; // temp enabled + _placeEntry = { + private ["_entry"]; + _entry = (_interactionDialog displayCtrl _selectedMainMenuButton); + _entry ctrlSetText ( (_x select 0)); + _entry ctrlSetPosition _position; + if (_selectedMainMenuButton < 300) then { + _entry ctrlSetEventHandler ["ButtonClick", format["call cse_fnc_gui_hideSubSubMenuButtons;[player,CSE_interactionTarget,%2] call %1; call cse_fnc_gui_refreshLastSubMenu;",(_x select 2),_selectedMainMenuButton]]; + } else { + _entry ctrlSetEventHandler ["ButtonClick", format["[player,CSE_interactionTarget,%2] call %1; call cse_fnc_gui_refreshLastSubMenu;",(_x select 2),_selectedMainMenuButton]]; + }; + if (isnil "CSE_UI_EFFECT") then { + _entry ctrlCommit 0; + } else { + if (CSE_UI_EFFECT) then { + _entry ctrlCommit 0.2; + } else { + _entry ctrlCommit 0; + }; + }; + // updating new information + _position = [(_position select 0), (_position select 1) + 0.040]; + _selectedMainMenuButton = _selectedMainMenuButton + 1; + }; + + _returningEntries = []; + { + if ((typeName (_x select 1)) == "CODE") then { + if ([player,CSE_interactionTarget] call (_x select 1)) then { + _returningEntries set[count _returningEntries,_x]; + }; + } else { + if ((typeName (_x select 1)) == "BOOL") then { + if (_x select 1) then { + _returningEntries set[count _returningEntries,_x]; + }; + }; + }; + }foreach _allMenuEntries; + + + // for effects + { + + _entry = (_interactionDialog displayCtrl _selectedMainMenuButton); + _entry ctrlSetPosition _position; + _entry ctrlCommit 0; + _selectedMainMenuButton = _selectedMainMenuButton + 1; + + if (_selectedMainMenuButton >= _maxCtrlNumber + _allAvailableMainButtons) exitwith{}; + }foreach _returningEntries; + + + + _selectedMainMenuButton = 201; + if ((_this select 1) > 200 && (_this select 1) < 300) then { + _headerNumber = 113; + _selectedMainMenuButton = 301; + }; + { + call _placeEntry; + if (_selectedMainMenuButton >= _maxCtrlNumber + _allAvailableMainButtons) exitwith{}; + }foreach _returningEntries; diff --git a/TO_MERGE/cse/gui/functions/fn_gui_getMenuEntries.sqf b/TO_MERGE/cse/gui/functions/fn_gui_getMenuEntries.sqf new file mode 100644 index 0000000000..655dcf91e2 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_getMenuEntries.sqf @@ -0,0 +1,45 @@ +/** + * fn_gui_getMenuEntries.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_returningEntries","_MENU_VAR","_cond"]; +_menuName = _this select 0; + +//[_menuName] call cse_fnc_gui_sortMenuEntries; +// in futute, look into splitting this all up into multiple threads + _returningEntries = []; + + _MENU_VAR = format["CSE_GUI_MENU_OPTIONS_%1", _menuName]; + if (isnil _MENU_VAR) then { + call compile format["%1 = [];",_MENU_VAR]; + }; + + { + + _cond = (_x select 2); + + if ((typeName _cond) == "CODE") then { + _passing = ([player,CSE_interactionTarget] call (_x select 2)); + if (typeName _passing != "BOOL") then { + _passing = false; + } else { + }; + if (_passing) then { + _returningEntries set[count _returningEntries,_x]; + }; + } else { + if ((typeName _cond) == "BOOL") then { + if (_cond) then { + _returningEntries set[count _returningEntries,_x]; + }; + }; + }; + }foreach (call compile _MENU_VAR); + +_returningEntries \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_hasOptionAvailable.sqf b/TO_MERGE/cse/gui/functions/fn_gui_hasOptionAvailable.sqf new file mode 100644 index 0000000000..898a377fcc --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_hasOptionAvailable.sqf @@ -0,0 +1,48 @@ +/** + * fn_gui_hasOptionAvailable.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_returningEntries","_MENU_VAR","_cond","_return","_target"]; +_menuName = _this select 0; +_target = _this select 1; +//[_menuName] call cse_fnc_gui_sortMenuEntries; +// in futute, look into splitting this all up into multiple threads + _returningEntries = []; + + _MENU_VAR = format["CSE_GUI_MENU_OPTIONS_%1", _menuName]; + if (isnil _MENU_VAR) then { + call compile format["%1 = [];",_MENU_VAR]; + }; + _return = false; + { + + _cond = (_x select 2); + + if ((typeName _cond) == "CODE") then { + _passing = ([player,_target] call (_x select 2)); + if (typeName _passing != "BOOL") then { + _passing = false; + } else { + }; + if (_passing) then { + _returningEntries set[count _returningEntries,_x]; + }; + } else { + if ((typeName _cond) == "BOOL") then { + if (_cond) then { + _returningEntries set[count _returningEntries,_x]; + }; + }; + }; + if (count _returningEntries > 0) exitwith { + _return = true; + }; + }foreach (call compile _MENU_VAR); + +_return \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_hideSubMenuButtons.sqf b/TO_MERGE/cse/gui/functions/fn_gui_hideSubMenuButtons.sqf new file mode 100644 index 0000000000..afce751b5a --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_hideSubMenuButtons.sqf @@ -0,0 +1,32 @@ +/** + * fn_gui_hideSubMenuButtons.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_allAvailableMainButtons","_selectedMainMenuButton","_interactionDialog","_position","_placeEntry"]; +disableSerialization; +_interactionDialog = uiNamespace getvariable "cse_interactionGUI"; + +_allAvailableMainButtons = 20; +_selectedMainMenuButton = 201; + +_position = [100,100]; +(_interactionDialog displayCtrl 112) ctrlSetPosition [_position select 0,(_position select 1) - 0.045]; +(_interactionDialog displayCtrl 112) ctrlCommit 0; + for [{_x=0},{_x < _allAvailableMainButtons},{_x=_x+1}] do + { + private ["_entry"]; + _entry = (_interactionDialog displayCtrl _selectedMainMenuButton); + _entry ctrlSetPosition _position; + _entry ctrlRemoveAllEventHandlers "ButtonClick"; + _entry ctrlCommit 0; + _selectedMainMenuButton = _selectedMainMenuButton +1; + }; + + +call cse_fnc_gui_hideSubSubMenuButtons; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_hideSubSubMenuButtons.sqf b/TO_MERGE/cse/gui/functions/fn_gui_hideSubSubMenuButtons.sqf new file mode 100644 index 0000000000..b73f70e5c5 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_hideSubSubMenuButtons.sqf @@ -0,0 +1,32 @@ +/** + * fn_gui_hideSubSubMenuButtons.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_rootButton","_allMenuEntries","_allAvailableMainButtons","_selectedMainMenuButton","_interactionDialog","_position","_placeEntry"]; +disableSerialization; +_interactionDialog = uiNamespace getvariable "cse_interactionGUI"; + +_allAvailableMainButtons = 20; +_selectedMainMenuButton = 301; + +//if (((ctrlPosition (_interactionDialog displayCtrl _selectedMainMenuButton))select 0) == (0.4 + 0.26)) then { + + _position = [100,100]; + (_interactionDialog displayCtrl 113) ctrlSetPosition [_position select 0,(_position select 1) - 0.045]; + (_interactionDialog displayCtrl 113) ctrlCommit 0; + for [{_x=0},{_x < _allAvailableMainButtons},{_x=_x+1}] do + { + private ["_entry"]; + _entry = (_interactionDialog displayCtrl _selectedMainMenuButton); + _entry ctrlSetPosition _position; + _entry ctrlRemoveAllEventHandlers "ButtonClick"; + _entry ctrlCommit 0; + _selectedMainMenuButton = _selectedMainMenuButton +1; + }; +//}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_keyPressed.sqf b/TO_MERGE/cse/gui/functions/fn_gui_keyPressed.sqf new file mode 100644 index 0000000000..324a504485 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_keyPressed.sqf @@ -0,0 +1,180 @@ +/** + * fn_gui_keyPressed.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menu","_condition","_target","_type","_allAvailableMainButtons","_selectedMainMenuButton","_menuName","_carriedObj", "_allMenuEntries"]; +_menu = _this select 0; +_condition = _this select 1; +_type = _this select 2; +if (isDedicated) exitwith{}; +if (! call _condition) exitwith {}; + +//if (cursortarget iskindof "MAN") then { +//}; +CMS_GUI_LATEST_SUBMENU = []; +_allAvailableMainButtons = 10; +_selectedMainMenuButton = 150; +_menuName = ""; +if (isnil "_type") then { + _type = 0; +}; + + +_target = switch (_type) do { + case 2: {if (isNull cursortarget) then {player} else{cursortarget};}; + case 1: {cursortarget}; + case 0: {player}; + default {player}; +}; +if ((_target distance player) > 10 && {(_type == 2)}) then { + _target = player; +}; +if (_target == player) then { + _menuName = "Your Person"; + if (_type == 2) then { + _menu = "SelfInteraction"; + }; + _targetName = [_target] call cse_fnc_getName; + +} else { + _carriedObj = [player] call cse_fnc_getCarriedObj; + if (!isNull _carriedObj) then { + _target = _carriedObj; + }; + + _menuName = switch (true) do { + case (_target isKindOf "CaManBase"): {([_target] call cse_fnc_getName)}; + case ((_target isKindOf "All")): {(getText(configFile >> "Cfgvehicles" >> typeof _target >> "displayName"))}; + default {"Object"}; + }; + if (_type == 2) then { + _menu = "InteractionMenu"; + }; +}; + +//_allMenuEntries = [_menu] call cse_fnc_gui_getMenuEntries; +if (!([_menu,_target] call cse_fnc_gui_hasOptionAvailable) && _type == 2 && (_menu != "SelfInteraction")) then { + //_allMenuEntries = ["SelfInteraction"] call cse_fnc_gui_getMenuEntries; + _menu = "SelfInteraction"; + _menuName = "Your Person"; + _target = player; + _targetName = [_target] call cse_fnc_getName; +}; +if (!([_menu,_target] call cse_fnc_gui_hasOptionAvailable)) exitwith {}; +//if (count _allMenuEntries <1) exitwith { [format["GUI - FAILED TO OPEN MENU: NO ENTRIES PASSED CONDITION TEST"],2] call cse_fnc_debug; }; + + +CSE_interactionTarget = _target; +//[format["GUI - MENU OPENING %1",_menu],3] call cse_fnc_debug; +[player,_target] call cse_fnc_registerInteractingWith; +if (isnil "cse_use_white_menu") then { + createDialog "cse_interactionGUI"; +} else { + createDialog "cse_interactionGUI_w"; +}; +setMousePosition [0.45, 0.55]; + +disableSerialization; +_interactionDialog = uiNamespace getvariable "cse_interactionGUI"; + +//_position = [0.46,0.5]; +_position = [safezoneX + (safezoneW / 1.9), safezoneY + (safezoneH / 1.9) ]; +//_position = [0.4 * safezoneW + safezoneX, 0.55 * safezoneH + safezoneY]; + +ctrlSetFocus (_interactionDialog displayCtrl 210) ; +(_interactionDialog displayCtrl 111) ctrlSetText _menuName; +(_interactionDialog displayCtrl 111) ctrlSetPosition [_position select 0,(_position select 1) - 0.040]; +//(_interactionDialog displayCtrl 111) ctrlSetBackgroundColor [0, 0, 0.6, 0.75]; +//(_interactionDialog displayCtrl 111) ctrlSetBackgroundColor [(profilenamespace getvariable ['IGUI_BCG_RGB_R',0]),(profilenamespace getvariable ['IGUI_BCG_RGB_G',1]),(profilenamespace getvariable ['IGUI_BCG_RGB_B',1]), 0.75]; +(_interactionDialog displayCtrl 111) ctrlSetBackgroundColor [(profilenamespace getvariable ['GUI_BCG_RGB_R',0]),(profilenamespace getvariable ['GUI_BCG_RGB_G',1]),(profilenamespace getvariable ['GUI_BCG_RGB_B',1]), 0.75]; +(_interactionDialog displayCtrl 111) ctrlCommit 0; + +_allMenuEntries = [_menu] call cse_fnc_gui_getMenuEntries; +{ + private ["_entry"]; + _entry = (_interactionDialog displayCtrl _selectedMainMenuButton); + _entry ctrlSetText ((_x select 1)); + _entry ctrlSetPosition _position; + _entry ctrlSetEventHandler ["ButtonClick", format["[] call cse_fnc_gui_hideSubMenuButtons; [player,CSE_interactionTarget,%2] spawn %1",(_x select 3),_selectedMainMenuButton]]; + _entry ctrlCommit 0; + + // updating new information + _position = [(_position select 0), (_position select 1) + 0.040]; + _selectedMainMenuButton = _selectedMainMenuButton + 1; + if (_selectedMainMenuButton >= 164 + _allAvailableMainButtons) exitwith{}; +}foreach _allMenuEntries; + +[] spawn { + waituntil {!dialog}; + [player,CSE_interactionTarget] call cse_fnc_unregisterInteractingWith; + //[format["GUI - MENU CLOSED"]] call cse_fnc_debug; +}; + +// ICONS SUPPORT + +// cse\cse_gui\data\icon_tags.paa + +_IDC_OF_ICON_OPTION = 400; +(_interactionDialog displayCtrl _IDC_OF_ICON_OPTION) ctrlSetText "cse\cse_gui\data\icon_settings.paa"; +(_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetEventHandler ["ButtonClick", " + CloseDialog 0; createDialog 'cse_settingsMenu'; +"]; +(_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetTooltip "Open the Settings Menu"; +_IDC_OF_ICON_OPTION = _IDC_OF_ICON_OPTION + 1; + + +if (["cse_sys_tags"] call cse_fnc_isModuleEnabled_F) then { + (_interactionDialog displayCtrl _IDC_OF_ICON_OPTION) ctrlSetText "cse\cse_gui\data\icon_tags.paa"; + (_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetEventHandler ["ButtonClick", " + if (isnil 'CSE_DRAW_TAG_ICONS_TAGS') then { + CSE_DRAW_TAG_ICONS_TAGS = false; + }; + CSE_DRAW_TAG_ICONS_TAGS = !CSE_DRAW_TAG_ICONS_TAGS; + if (CSE_DRAW_TAG_ICONS_TAGS) then { + hintSilent 'Enabled Tags'; + } else { + hintSilent 'Disabled Tags'; + }; + "]; + + (_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetTooltip "Toggle CSE Tag System ON/OFF"; + _IDC_OF_ICON_OPTION = _IDC_OF_ICON_OPTION + 1; +}; + +if (isnil "CSE_DEBUG_ALLOW_RESET_MODE_ENABLED") then { + CSE_DEBUG_ALLOW_RESET_MODE_ENABLED = false; +}; +if (CSE_DEBUG_ALLOW_RESET_MODE_ENABLED) then { + (_interactionDialog displayCtrl _IDC_OF_ICON_OPTION) ctrlSetText "cse\cse_gui\data\icon_reset_small.paa"; + (_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetEventHandler ["ButtonClick", " + [CSE_interactionTarget] spawn cse_fnc_resetAllDefaults; + "]; + + (_interactionDialog displayCtrl (_IDC_OF_ICON_OPTION + 100)) ctrlSetTooltip "Full CSE reset off target"; + _IDC_OF_ICON_OPTION = _IDC_OF_ICON_OPTION + 1; +}; + +while {(_IDC_OF_ICON_OPTION < 403)} do { + ctrlEnable[_IDC_OF_ICON_OPTION+100,false]; + _IDC_OF_ICON_OPTION = _IDC_OF_ICON_OPTION + 1; +}; + +/* +if (["cse_sys_medical"] call cse_fnc_isModuleEnabled_F) then { + if (CSE_interactionTarget isKindOf "CAManBase") then { + [] spawn { + while {(dialog)} do { + _status = [CSE_interactionTarget] call cse_fnc_getTriageStatus_CMS; + [[CSE_interactionTarget] call cse_fnc_getName,["Triage status: "+ (_status select 0)],0] call cse_fnc_gui_displayInformation; + sleep 0.1; + }; + ["",[""],0] call cse_fnc_gui_displayInformation; + }; + }; +};*/ \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_loadingbar.sqf b/TO_MERGE/cse/gui/functions/fn_gui_loadingbar.sqf new file mode 100644 index 0000000000..d17321ba94 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_loadingbar.sqf @@ -0,0 +1,46 @@ +/** + * fn_gui_loadingbar.sqf + * @Descr: Displays a loading bar and halts script until loading bar has finished + * @Author: Glowbal + * + * @Arguments: [timeToWait NUMBER, condition CODE (Optional), onSuccess CODE (Optional), onFailure CODE (Optional), arguments ARRAY (Optional)] + * @Return: BOOl Returns true if loading bar has fully finished. Otherwise false + * @PublicAPI: true + */ + +private ["_timeToWait","_cond","_onfailure","_onSuccess","_args","_dialog","_ctrl","_newStatus","_start","_return"]; +_timeToWait = _this select 0; +_cond = [_this, 1, {true}, [{true}]] call BIS_fnc_Param; +_onSuccess = [_this, 2, {}, [{}]] call BIS_fnc_Param; +_onfailure = [_this, 3, {}, [{}]] call BIS_fnc_Param; +_args = [_this, 4, [], [[]]] call BIS_fnc_Param; + +if (_timeToWait > 0) then { + disableSerialization; + 1534 cutRsc ["cse_progressBar_Sample","plain"]; + _dialog = uiNamespace getvariable "cse_progressBar_Sample"; + _ctrl = _dialog displayCtrl 6; + _newStatus = 0; + _start = diag_tickTime; + while {(_newStatus <= 1.00 && (call _cond))} do { + uisleep 0.01; + _ctrl progressSetPosition _newStatus; + _newStatus = (diag_tickTime - _start) / _timeToWait; + }; + 1534 cutText ["","plain"]; + _return = false; + if (_newStatus >= 1.00) then { + _return = true; + _args call _onSuccess; + } else { + _args call _onfailure; + }; +} else { + if ((call _cond)) then { + _return = true; + _args call _onSuccess; + } else { + _args call _onfailure; + }; +}; +_return \ No newline at end of file diff --git a/TO_MERGE/cse/gui/functions/fn_gui_refreshLastSubMenu.sqf b/TO_MERGE/cse/gui/functions/fn_gui_refreshLastSubMenu.sqf new file mode 100644 index 0000000000..9c1db43f91 --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_refreshLastSubMenu.sqf @@ -0,0 +1,19 @@ +/** + * fn_gui_refreshLastSubMenu.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_lastMenu"]; +_lastMenu = CMS_GUI_LATEST_SUBMENU; + +if ((_lastMenu select 1) > 200 && (_lastMenu select 1) < 300) then { + call cse_fnc_gui_hideSubSubMenuButtons; +} else { + call cse_fnc_gui_hideSubMenuButtons; +}; +_lastMenu call cse_fnc_gui_displaySubMenuButtons; diff --git a/TO_MERGE/cse/gui/functions/fn_gui_sortMenuEntries.sqf b/TO_MERGE/cse/gui/functions/fn_gui_sortMenuEntries.sqf new file mode 100644 index 0000000000..373cd980bf --- /dev/null +++ b/TO_MERGE/cse/gui/functions/fn_gui_sortMenuEntries.sqf @@ -0,0 +1,23 @@ +/** + * fn_gui_sortMenuEntries.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + + +private ["_menuName"]; +_menuName = _this select 0; + +_MENU_VAR = format["CSE_GUI_MENU_OPTIONS_%1", _menuName]; +if (isnil _MENU_VAR) then { + call compile format["%1 = [];",_MENU_VAR]; +}; + +if (count (call compile _MENU_VAR) > 1) then { + format["%1 = [%1,[],{_x}] call BIS_fnc_sortBy;",_MENU_VAR]; +}; +true \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/RscTitles.h b/TO_MERGE/cse/gui/gui/RscTitles.h new file mode 100644 index 0000000000..f4e8b8a5cf --- /dev/null +++ b/TO_MERGE/cse/gui/gui/RscTitles.h @@ -0,0 +1,50 @@ + +#define RIGHT_SIDE (safezoneW + safezoneX) +#define LEFT_SIDE safezoneX +#define TOP_SIDE safeZoneY +#define BOTTOM_SIDE (safeZoneH + safezoneY) + +#define ICON_WIDTH (1.75 * (((safezoneW / safezoneH) min 1.2) / 40)) +#define X_POS_ICONS RIGHT_SIDE - (1.1 * ICON_WIDTH) +#define Y_POS_ICONS TOP_SIDE + (2.2 * ICON_WIDTH) +#define DIFFERENCE_ICONS (1.1 * ICON_WIDTH) + +class RscTitles { + class cse_gui_iconsDisplay { + duration = 1e+011; + idd = 1111; + movingenable = 0; + onLoad = "uiNamespace setVariable ['cse_gui_iconsDisplay', _this select 0];"; + class controlsBackground { + class icon_1: cse_gui_backgroundBase { + text = ""; + colorText[] = {0.0,1.0,0.0,0.4}; + idc = 10501; + x = X_POS_ICONS; + y = Y_POS_ICONS + (0 * DIFFERENCE_ICONS); + w = ICON_WIDTH; + h = ICON_WIDTH; + }; + class icon_2: icon_1 { + idc = 10502; + y = Y_POS_ICONS + (1 * DIFFERENCE_ICONS); + }; + class icon_3: icon_1 { + idc = 10503; + y = Y_POS_ICONS + (2 * DIFFERENCE_ICONS); + }; + class icon_4: icon_1 { + idc = 10504; + y = Y_POS_ICONS + (3 * DIFFERENCE_ICONS); + }; + class icon_5: icon_1 { + idc = 10505; + y = Y_POS_ICONS + (4 * DIFFERENCE_ICONS); + }; + class icon_6: icon_1 { + idc = 10506; + y = Y_POS_ICONS + (5 * DIFFERENCE_ICONS); + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/cseLogoPlain.hpp b/TO_MERGE/cse/gui/gui/cseLogoPlain.hpp new file mode 100644 index 0000000000..248556fedc --- /dev/null +++ b/TO_MERGE/cse/gui/gui/cseLogoPlain.hpp @@ -0,0 +1,31 @@ + +class CSE_LogoPlain { + idd = 432350; + movingenable = 0; + fadein = 1; + fadeout = 1; + onLoad = "uiNamespace setVariable ['CSE_LogoPlain', _this select 0];"; + onUnload = "uiNamespace setVariable ['CSE_LogoPlain', nil];"; + onMouseButtonClick = "closeDialog 432350;"; + class controlsBackground { + class backgroundTop: cse_gui_backgroundBase{ + idc = 1; + type = CT_STATIC; + x = "safezoneX"; + y = "safezoneY"; + w = "safezoneW"; + h = "safezoneH"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + text = "cse\cse_gui\data\logo_black_background.paa"; + onMouseButtonClick = "closeDialog 432350;"; + }; + + }; + + class controls { + + }; +}; diff --git a/TO_MERGE/cse/gui/gui/define.hpp b/TO_MERGE/cse/gui/gui/define.hpp new file mode 100644 index 0000000000..c521de470f --- /dev/null +++ b/TO_MERGE/cse/gui/gui/define.hpp @@ -0,0 +1,797 @@ + +#ifndef CSE_DEFINE_H +#define CSE_DEFINE_H +// define.hpp + +#define true 1 +#define false 0 + +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_ANIMATED_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 +#define FontCSE "PuristaMedium" + +class cse_gui_backgroundBase { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1, 1, 1, 1}; + font = FontCSE; + text = ""; + sizeEx = 0.032; +}; +class cse_gui_editBase +{ + access = 0; + type = 2; + x = 0; + y = 0; + h = 0.04; + w = 0.2; + colorBackground[] = + { + 0, + 0, + 0, + 1 + }; + colorText[] = + { + 0.95, + 0.95, + 0.95, + 1 + }; + colorSelection[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", + 1 + }; + autocomplete = ""; + text = ""; + size = 0.2; + style = "0x00 + 0x40"; + font = "PuristaMedium"; + shadow = 2; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorDisabled[] = + { + 1, + 1, + 1, + 0.25 + }; +}; + + + +class cse_gui_buttonBase { + idc = -1; + type = 16; + style = ST_LEFT; + text = ""; + action = ""; + x = 0.0; + y = 0.0; + w = 0.25; + h = 0.04; + size = 0.03921; + sizeEx = 0.03921; + color[] = {1.0, 1.0, 1.0, 1}; + color2[] = {1.0, 1.0, 1.0, 1}; + /*colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.5])"}; + colorbackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.4}; + colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; + colorFocused[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])", 0.8}; + colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.8}; + */ + + colorBackground[] = {1,1,1,0.95}; + colorbackground2[] = {1,1,1,0.95}; + colorDisabled[] = {1,1,1,0.6}; + colorFocused[] = {1,1,1,1}; + colorBackgroundFocused[] = {1,1,1,1}; + periodFocus = 1.2; + periodOver = 0.8; + default = false; + class HitZone { + left = 0.00; + top = 0.00; + right = 0.00; + bottom = 0.00; + }; + + class ShortcutPos { + left = 0.00; + top = 0.00; + w = 0.00; + h = 0.00; + }; + + class TextPos { + left = 0.002; + top = 0.0004; + right = 0.0; + bottom = 0.00; + }; + textureNoShortcut = ""; + animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa"; + animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + period = 0.5; + font = FontCSE; + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.0,0}; + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; + class Attributes { + font = FontCSE; + color = "#E5E5E5"; + align = "center"; + shadow = "true"; + }; + class AttributesImage { + font = FontCSE; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; +}; + +class cse_gui_RscProgress { + type = 8; + style = 0; + colorFrame[] = {1,1,1,0.7}; + colorBar[] = {1,1,1,0.7}; + texture = "#(argb,8,8,3)color(1,1,1,0.7)"; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; +}; + + +class cse_gui_staticBase { + idc = -1; + type = CT_STATIC; + x = 0.0; + y = 0.0; + w = 0.183825; + h = 0.104575; + style = ST_LEFT; + font = FontCSE; + sizeEx = 0.03921; + colorText[] = {0.95, 0.95, 0.95, 1.0}; + colorBackground[] = {0, 0, 0, 0}; + text = ""; +}; + +class RscListBox; +class cse_gui_listBoxBase : RscListBox{ + type = CT_LISTBOX; + style = ST_MULTI; + font = FontCSE; + sizeEx = 0.03921; + color[] = {1, 1, 1, 1}; + colorText[] = {0.543, 0.5742, 0.4102, 1.0}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorSelect2[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0, 0, 0, 1}; + colorSelectBackground2[] = {0.543, 0.5742, 0.4102, 1.0}; + colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; + period = 1.2; + rowHeight = 0.03; + colorBackground[] = {0, 0, 0, 1}; + maxHistoryDelay = 1.0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"",0.1,1}; + soundExpand[] = {"",0.1,1}; + soundCollapse[] = {"",0.1,1}; + class ListScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; + class ScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = ""; + arrowFull = ""; + arrowEmpty = ""; + border = ""; + }; +}; + + +class cse_gui_listNBox { + access = 0; + type = CT_LISTNBOX;// 102; + style =ST_MULTI; + w = 0.4; + h = 0.4; + font = FontCSE; + sizeEx = 0.031; + + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + columns[] = {0.0}; + color[] = {1, 1, 1, 1}; + + rowHeight = 0.03; + colorBackground[] = {0, 0, 0, 0.2}; + colorText[] = {1,1, 1, 1.0}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorSelect2[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0, 0, 0, 0.0}; + colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5}; + colorActive[] = {0,0,0,1}; + colorDisabled[] = {0,0,0,0.3}; + rows = 1; + + drawSideArrows = 0; + idcLeft = -1; + idcRight = -1; + maxHistoryDelay = 1; + soundSelect[] = {"", 0.1, 1}; + period = 1; + shadow = 2; + class ScrollBar { + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + border = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "#(argb,8,8,3)color(1,1,1,1)"; + }; + class ListScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; +}; + + +class RscCombo; +class cse_gui_comboBoxBase: RscCombo { + idc = -1; + type = 4; + style = "0x10 + 0x200"; + x = 0; + y = 0; + w = 0.3; + h = 0.035; + color[] = {0,0,0,0.6}; + colorActive[] = {1,0,0,1}; + colorBackground[] = {0,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + colorScrollbar[] = {1,0,0,1}; + colorSelect[] = {0,0,0,1}; + colorSelectBackground[] = {1,1,1,0.7}; + colorText[] = {1,1,1,1}; + + arrowEmpty = ""; + arrowFull = ""; + wholeHeight = 0.45; + font = FontCSE; + sizeEx = 0.031; + soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; + soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; + maxHistoryDelay = 1.0; + class ScrollBar + { + color[] = {0.3,0.3,0.3,0.6}; + colorActive[] = {0.3,0.3,0.3,1}; + colorDisabled[] = {0.3,0.3,0.3,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + border = ""; + }; + class ComboScrollBar { + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + autoScrollDelay = 5; + autoScrollEnabled = 0; + autoScrollRewind = 0; + autoScrollSpeed = -1; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + color[] = {0.3,0.3,0.3,0.6}; + colorActive[] = {0.3,0.3,0.3,1}; + colorDisabled[] = {0.3,0.3,0.3,0.3}; + height = 0; + scrollSpeed = 0.06; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + width = 0; + }; +}; + + + +class cse_gui_mapBase { + moveOnEdges = 1; + x = "SafeZoneXAbs"; + y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "SafeZoneWAbs"; + h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + type = 100; // Use 100 to hide markers + style = 48; + shadow = 0; + + ptsPerSquareSea = 5; + ptsPerSquareTxt = 3; + ptsPerSquareCLn = 10; + ptsPerSquareExp = 10; + ptsPerSquareCost = 10; + ptsPerSquareFor = 9; + ptsPerSquareForEdge = 9; + ptsPerSquareRoad = 6; + ptsPerSquareObj = 9; + showCountourInterval = 0; + scaleMin = 0.001; + scaleMax = 1.0; + scaleDefault = 0.16; + maxSatelliteAlpha = 0.85; + alphaFadeStartScale = 0.35; + alphaFadeEndScale = 0.4; + colorBackground[] = {0.969,0.957,0.949,1.0}; + colorSea[] = {0.467,0.631,0.851,0.5}; + colorForest[] = {0.624,0.78,0.388,0.5}; + colorForestBorder[] = {0.0,0.0,0.0,0.0}; + colorRocks[] = {0.0,0.0,0.0,0.3}; + colorRocksBorder[] = {0.0,0.0,0.0,0.0}; + colorLevels[] = {0.286,0.177,0.094,0.5}; + colorMainCountlines[] = {0.572,0.354,0.188,0.5}; + colorCountlines[] = {0.572,0.354,0.188,0.25}; + colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; + colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; + colorPowerLines[] = {0.1,0.1,0.1,1.0}; + colorRailWay[] = {0.8,0.2,0.0,1.0}; + colorNames[] = {0.1,0.1,0.1,0.9}; + colorInactive[] = {1.0,1.0,1.0,0.5}; + colorOutside[] = {0.0,0.0,0.0,1.0}; + colorTracks[] = {0.84,0.76,0.65,0.15}; + colorTracksFill[] = {0.84,0.76,0.65,1.0}; + colorRoads[] = {0.7,0.7,0.7,1.0}; + colorRoadsFill[] = {1.0,1.0,1.0,1.0}; + colorMainRoads[] = {0.9,0.5,0.3,1.0}; + colorMainRoadsFill[] = {1.0,0.6,0.4,1.0}; + colorGrid[] = {0.1,0.1,0.1,0.6}; + colorGridMap[] = {0.1,0.1,0.1,0.6}; + colorText[] = {1, 1, 1, 0.85}; +font = "PuristaMedium"; +sizeEx = 0.0270000; +stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; +stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; +onMouseButtonClick = ""; +onMouseButtonDblClick = ""; + + fontLabel = "PuristaMedium"; + sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontGrid = "TahomaB"; + sizeExGrid = 0.02; + fontUnits = "TahomaB"; + sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontNames = "PuristaMedium"; + sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2"; + fontInfo = "PuristaMedium"; + sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + fontLevel = "TahomaB"; + sizeExLevel = 0.02; + text = "#(argb,8,8,3)color(1,1,1,1)"; + class ActiveMarker { + color[] = {0.30, 0.10, 0.90, 1.00}; + size = 50; + }; + class Legend + { + x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)"; + y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + colorBackground[] = {1,1,1,0.5}; + color[] = {0,0,0,1}; + }; + class Task + { + icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; + iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; + iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; + iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; + iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; + color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"}; + colorCreated[] = {1,1,1,1}; + colorCanceled[] = {0.7,0.7,0.7,1}; + colorDone[] = {0.7,1,0.3,1}; + colorFailed[] = {1,0.3,0.2,1}; + size = 27; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Waypoint + { + icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + color[] = {0,0,0,1}; + size = 20; + importance = "1.2 * 16 * 0.05"; + coefMin = 0.900000; + coefMax = 4; + }; + class WaypointCompleted + { + icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa"; + color[] = {0,0,0,1}; + size = 20; + importance = "1.2 * 16 * 0.05"; + coefMin = 0.900000; + coefMax = 4; + }; + class CustomMark + { + icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; + size = 24; + importance = 1; + coefMin = 1; + coefMax = 1; + color[] = {0,0,0,1}; + }; + class Command + { + icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + color[] = {1,1,1,1}; + }; + class Bush + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = "14/2"; + importance = "0.2 * 14 * 0.05 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Rock + { + icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; + color[] = {0.1,0.1,0.1,0.8}; + size = 12; + importance = "0.5 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class SmallTree + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = 12; + importance = "0.6 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Tree + { + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + color[] = {0.45,0.64,0.33,0.4}; + size = 12; + importance = "0.9 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class busstop + { + icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class fuelstation + { + icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class hospital + { + icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class church + { + icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class lighthouse + { + icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class power + { + icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powersolar + { + icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powerwave + { + icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class powerwind + { + icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class quay + { + icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class shipwreck + { + icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class transmitter + { + icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class watertower + { + icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {1,1,1,1}; + }; + class Cross + { + icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {0,0,0,1}; + }; + class Chapel + { + icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1.0; + color[] = {0,0,0,1}; + }; + class Bunker + { + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 14; + importance = "1.5 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Fortress + { + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Fountain + { + icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; + size = 11; + importance = "1 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Ruin + { + icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; + size = 16; + importance = "1.2 * 16 * 0.05"; + coefMin = 1; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Stack + { + icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; + size = 20; + importance = "2 * 16 * 0.05"; + coefMin = 0.9; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class Tourism + { + icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; + size = 16; + importance = "1 * 16 * 0.05"; + coefMin = 0.7; + coefMax = 4; + color[] = {0,0,0,1}; + }; + class ViewTower + { + icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; + size = 16; + importance = "2.5 * 16 * 0.05"; + coefMin = 0.5; + coefMax = 4; + color[] = {0,0,0,1}; + }; +}; + +#endif \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/dynamicMenu.h b/TO_MERGE/cse/gui/gui/dynamicMenu.h new file mode 100644 index 0000000000..1ae5206fe2 --- /dev/null +++ b/TO_MERGE/cse/gui/gui/dynamicMenu.h @@ -0,0 +1,12 @@ +class cse_dynamicMenuGUI { + idd = 176890; + movingEnable = false; + onLoad = "uiNamespace setVariable ['cse_dynamicMenuGUI', _this select 0];"; + + class controlsBackground { + }; + + class controls { + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/interactionMenu.hpp b/TO_MERGE/cse/gui/gui/interactionMenu.hpp new file mode 100644 index 0000000000..b93918c407 --- /dev/null +++ b/TO_MERGE/cse/gui/gui/interactionMenu.hpp @@ -0,0 +1,494 @@ +class cse_interactionGUI { + idd = 145201; + movingEnable = false; + onLoad = "uiNamespace setVariable ['cse_interactionGUI', _this select 0];"; + + + class controlsBackground { + class cse_background : cse_gui_backgroundBase { + idc = -1; + x = 0.138; + y = 0.17; + w = 1.2549; + h = 0.836601; + text = ""; + }; + }; + + class controls { + + class cse_interactionName { + idc = 111; + type = CT_STATIC; + x = 10.44; + y = 10.75; + w = 0.3; + h = 0.04; + style = ST_CENTER + ST_SHADOW; + font = "PuristaMedium"; + sizeEx = 0.0406536; + colorText[] = {0.95, 0.95, 0.95, 1}; + //colorBackground[] = {1, 1, 1, 0}; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.9}; + text = ""; + }; + class cse_subMenuName: cse_interactionName { + idc = 112; + }; + class cse_subSubMenuName: cse_interactionName { + idc = 113; + }; + + class cse_option1 : cse_gui_buttonBase { + + idc = 150; + text = ""; + onButtonClick = ""; + x = 10.4; // add 5 to each + y = 10.45; + w = 0.3; + h = 0.04; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorText[] = {1, 1, 1,1}; + colorBackground[] = {1,1,1,0.95}; + colorbackground2[] = {1,1,1,0.95}; + colorDisabled[] = {1,1,1,0.6}; + colorFocused[] = {0,0,0,1}; + colorBackgroundFocused[] = {1,1,1,1}; + animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa"; + animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top_w.paa"; + animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top_w.paa"; + animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top_w.paa"; + animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + + /* animTextureNormal = ""; + animTextureDisabled = ""; + animTextureOver = ""; + animTextureFocused = ""; + animTexturePressed = ""; + animTextureDefault = ""; */ + }; + class cse_option2 : cse_option1 { + idc = 151; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.5; + }; + class cse_option3 : cse_option1 { + idc = 152; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.55; + }; + class cse_option4 : cse_option1 { + idc = 153; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.6; + }; + class cse_option5 : cse_option1 { + idc = 154; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.65; + }; + class cse_option6 : cse_option1 { + idc = 155; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.7; + }; + class cse_option7 : cse_option1 { + idc = 156; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.75; + }; + class cse_option8 : cse_option1 { + idc = 157; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.8; + }; + class cse_option9 : cse_option1 { + idc = 158; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.85; + }; + class cse_option10 : cse_option1 { + idc = 159; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option11 : cse_option1 { + idc = 160; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option12 : cse_option1 { + idc = 161; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option13 : cse_option1 { + idc = 162; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option14 : cse_option1 { + idc = 163; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option15 : cse_option1 { + idc = 164; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + + + // Sub menu Options + class cse_subMenuButton1 : cse_option1 { + idc = 201; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.75; + }; + class cse_subMenuButton2 : cse_option1 { + idc = 202; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.8; + }; + class cse_subMenuButton3 : cse_option1 { + idc = 203; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.85; + }; + class cse_subMenuButton4 : cse_option1 { + idc = 204; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.9; + }; + class cse_subMenuButton5 : cse_option1 { + idc = 205; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.95; + }; + class cse_subMenuButton6 : cse_option1 { + idc = 206; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton7 : cse_option1 { + idc = 207; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton8 : cse_option1 { + idc = 208; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton9 : cse_option1 { + idc = 209; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton10 : cse_option1 { + idc = 210; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton11 : cse_option1 { + idc = 211; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton12 : cse_option1 { + idc = 212; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton13 : cse_option1 { + idc = 213; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton14 : cse_option1 { + idc = 214; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton15 : cse_option1 { + idc = 215; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + + + class cse_subMenuSub1 : cse_option1 { + idc = 301; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.75; + }; + class cse_subMenuSub2 : cse_option1 { + idc = 302; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.8; + }; + class cse_subMenuSub3 : cse_option1 { + idc = 303; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.85; + }; + class cse_subMenuSub4 : cse_option1 { + idc = 304; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.9; + }; + class cse_subMenuSub5 : cse_option1 { + idc = 305; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.95; + }; + class cse_subMenuSub6 : cse_option1 { + idc = 306; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub7 : cse_option1 { + idc = 307; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub8 : cse_option1 { + idc = 308; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub9 : cse_option1 { + idc = 309; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub10 : cse_option1 { + idc = 310; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub11 : cse_option1 { + idc = 311; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub12 : cse_option1 { + idc = 312; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub13 : cse_option1 { + idc = 313; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub14 : cse_option1 { + idc = 314; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub15 : cse_option1 { + idc = 315; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + + class iconImg1: cse_gui_backgroundBase { + idc = 400; + x = (safezoneX + (safeZoneW - 0.1)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + size = 0.1; + SizeEx = 0.1; + colorBackground[] = {0,0,0,1}; + colorPicture[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + text = ""; + }; + + class option_tags : cse_gui_buttonBase { + idc = 500; + text = ""; + onButtonClick = ""; + x = (safezoneX + (safeZoneW - 0.1)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + class TextPos { + left = 0; + top = 0; + right = 0.0; + bottom = 0.00; + }; + animTextureNormal = ""; + animTextureDisabled = ""; + animTextureOver = ""; + animTextureFocused = ""; + animTexturePressed = ""; + animTextureDefault = ""; + }; + + class iconImg2: iconImg1 { + idc = 401; + x = (safezoneX + (safeZoneW - 0.15)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + size = 0.1; + SizeEx = 0.1; + colorBackground[] = {0,0,0,1}; + colorPicture[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + text = ""; + }; + class iconImg3: iconImg1 { + idc = 402; + x = (safezoneX + (safeZoneW - 0.2)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + size = 0.1; + SizeEx = 0.1; + colorBackground[] = {0,0,0,1}; + colorPicture[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + text = ""; + }; + + class option_icon2 : option_tags { + idc = 501; + text = ""; + onButtonClick = ""; + x = (safezoneX + (safeZoneW - 0.15)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + class TextPos { + left = 0; + top = 0; + right = 0.0; + bottom = 0.00; + }; + animTextureNormal = ""; + animTextureDisabled = ""; + animTextureOver = ""; + animTextureFocused = ""; + animTexturePressed = ""; + animTextureDefault = ""; + }; + + class option_icon3 : option_tags { + idc = 502; + text = ""; + onButtonClick = ""; + x = (safezoneX + (safeZoneW - 0.2)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.05; + h = 0.05; + class TextPos { + left = 0; + top = 0; + right = 0.0; + bottom = 0.00; + }; + animTextureNormal = ""; + animTextureDisabled = ""; + animTextureOver = ""; + animTextureFocused = ""; + animTexturePressed = ""; + animTextureDefault = ""; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/interactionMenu_white.hpp b/TO_MERGE/cse/gui/gui/interactionMenu_white.hpp new file mode 100644 index 0000000000..d32752f42d --- /dev/null +++ b/TO_MERGE/cse/gui/gui/interactionMenu_white.hpp @@ -0,0 +1,417 @@ +class cse_interactionGUI_w { + idd = 145201; + movingEnable = false; + onLoad = "uiNamespace setVariable ['cse_interactionGUI', _this select 0];"; + + + class controlsBackground { + class cse_background : cse_gui_backgroundBase { + idc = -1; + x = 0.138; + y = 0.17; + w = 1.2549; + h = 0.836601; + text = ""; + }; + }; + + class controls { + + class cse_interactionName { + idc = 111; + type = CT_STATIC; + x = 10.44; + y = 10.75; + w = 0.3; + h = 0.04; + style = ST_CENTER + ST_SHADOW; + font = "PuristaMedium"; + sizeEx = 0.0406536; + colorText[] = {0.95, 0.95, 0.95, 1}; + //colorBackground[] = {1, 1, 1, 0}; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.9}; + text = ""; + }; + class cse_subMenuName: cse_interactionName { + idc = 112; + }; + class cse_subSubMenuName: cse_interactionName { + idc = 113; + }; + + class cse_option1 : cse_gui_buttonBase { + + idc = 150; + text = ""; + onButtonClick = ""; + x = 10.4; // add 5 to each + y = 10.45; + w = 0.3; + h = 0.04; + color[] = {0,0,0, 1}; + color2[] = {1,1,1, 1}; + colorText[] = {0,0,0,1}; + colorBackground[] = {1,1,1,0.95}; + colorbackground2[] = {1,1,1,0.95}; + colorDisabled[] = {1,1,1,0.6}; + colorFocused[] = {0,0,0,1}; + colorBackgroundFocused[] = {1,1,1,1}; + animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top_w.paa"; + animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa"; + animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; + animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top_w.paa"; + }; + class cse_option2 : cse_option1 { + idc = 151; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.5; + }; + class cse_option3 : cse_option1 { + idc = 152; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.55; + }; + class cse_option4 : cse_option1 { + idc = 153; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.6; + }; + class cse_option5 : cse_option1 { + idc = 154; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.65; + }; + class cse_option6 : cse_option1 { + idc = 155; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.7; + }; + class cse_option7 : cse_option1 { + idc = 156; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.75; + }; + class cse_option8 : cse_option1 { + idc = 157; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.8; + }; + class cse_option9 : cse_option1 { + idc = 158; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.85; + }; + class cse_option10 : cse_option1 { + idc = 159; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option11 : cse_option1 { + idc = 160; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option12 : cse_option1 { + idc = 161; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option13 : cse_option1 { + idc = 162; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option14 : cse_option1 { + idc = 163; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + class cse_option15 : cse_option1 { + idc = 164; + text = ""; + onButtonClick = ""; + x = 10.4; + y = 10.9; + }; + + + // Sub menu Options + class cse_subMenuButton1 : cse_option1 { + idc = 201; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.75; + }; + class cse_subMenuButton2 : cse_option1 { + idc = 202; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.8; + }; + class cse_subMenuButton3 : cse_option1 { + idc = 203; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.85; + }; + class cse_subMenuButton4 : cse_option1 { + idc = 204; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.9; + }; + class cse_subMenuButton5 : cse_option1 { + idc = 205; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.95; + }; + class cse_subMenuButton6 : cse_option1 { + idc = 206; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton7 : cse_option1 { + idc = 207; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton8 : cse_option1 { + idc = 208; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton9 : cse_option1 { + idc = 209; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuButton10 : cse_option1 { + idc = 210; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton11 : cse_option1 { + idc = 211; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton12 : cse_option1 { + idc = 212; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton13 : cse_option1 { + idc = 213; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton14 : cse_option1 { + idc = 214; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuButton15 : cse_option1 { + idc = 215; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + + + class cse_subMenuSub1 : cse_option1 { + idc = 301; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.75; + }; + class cse_subMenuSub2 : cse_option1 { + idc = 302; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.8; + }; + class cse_subMenuSub3 : cse_option1 { + idc = 303; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.85; + }; + class cse_subMenuSub4 : cse_option1 { + idc = 304; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.9; + }; + class cse_subMenuSub5 : cse_option1 { + idc = 305; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.95; + }; + class cse_subMenuSub6 : cse_option1 { + idc = 306; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub7 : cse_option1 { + idc = 307; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub8 : cse_option1 { + idc = 308; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub9 : cse_option1 { + idc = 309; + text = ""; + onButtonClick = ""; + x = 10.88; + y = 10.0; + }; + class cse_subMenuSub10 : cse_option1 { + idc = 310; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub11 : cse_option1 { + idc = 311; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub12 : cse_option1 { + idc = 312; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub13 : cse_option1 { + idc = 313; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub14 : cse_option1 { + idc = 314; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + class cse_subMenuSub15 : cse_option1 { + idc = 315; + text = ""; + onButtonClick = ""; + x = 100.88; + y = 100.0; + }; + + class iconImg1: cse_gui_backgroundBase { + idc = 400; + x = (safezoneX + (safeZoneW - 0.1)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.1; + h = 0.1; + size = 0.1; + SizeEx = 0.1; + colorBackground[] = {0,0,0,1}; + colorPicture[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + text = ""; + }; + + class option_tags : cse_gui_buttonBase { + idc = 500; + text = ""; + onButtonClick = ""; + x = (safezoneX + (safeZoneW - 0.1)); + y = (safezoneY + (safeZoneH - 0.1)); + w = 0.1; + h = 0.1; + class TextPos { + left = 0; + top = 0; + right = 0.0; + bottom = 0.00; + }; + animTextureNormal = ""; + animTextureDisabled = ""; + animTextureOver = ""; + animTextureFocused = ""; + animTexturePressed = ""; + animTextureDefault = ""; + }; + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/gui/radial.h b/TO_MERGE/cse/gui/gui/radial.h new file mode 100644 index 0000000000..2b56b40a14 --- /dev/null +++ b/TO_MERGE/cse/gui/gui/radial.h @@ -0,0 +1,648 @@ + +class CSE_RADIAL_MENU { + idd = 432341; + movingenable = 0; + fadein = 0; + fadeout = 0; + onLoad = "uiNamespace setVariable ['CSE_RADIAL_MENU', _this select 0]; ['CSE_RADIAL_MENU', true] call cse_fnc_gui_blurScreen;"; + onUnload = "['CSE_RADIAL_MENU', false] call cse_fnc_gui_blurScreen; "; + class controlsBackground { + class backgroundTop: cse_gui_backgroundBase{ + idc = 800; + type = CT_STATIC; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "15 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0, 0, 0, 0.66}; + colorBackground[] = {0, 0, 0, 0.66}; + text = "cse\cse_gui\radialmenu\data\radial_background_top_w.paa"; + }; + class backgroundTopLeft: backgroundTop{ + idc = 801; + text = "cse\cse_gui\radialmenu\data\radial_background_topleft_w.paa"; + }; + class backgroundTopRight: backgroundTop{ + idc = 802; + text = "cse\cse_gui\radialmenu\data\radial_background_topright_w.paa"; + }; + class backgroundCenterLeft: backgroundTop{ + idc = 803; + text = "cse\cse_gui\radialmenu\data\radial_background_centerleft_w.paa"; + }; + class backgroundCenterRight: backgroundTop{ + idc = 804; + text = "cse\cse_gui\radialmenu\data\radial_background_centerright_w.paa"; + }; + + class backgroundBottomLeft: backgroundTop{ + idc = 805; + text = "cse\cse_gui\radialmenu\data\radial_background_bottomleft_w.paa"; + }; + class backgroundBottomRight: backgroundTop{ + idc = 806; + text = "cse\cse_gui\radialmenu\data\radial_background_bottomright_w.paa"; + }; + class backgroundBottom: backgroundTop{ + idc = 807; + text = "cse\cse_gui\radialmenu\data\radial_background_bottom_w.paa"; + }; + class backgroundCenter: backgroundTop{ + idc = 808; + text = "cse\cse_gui\radialmenu\data\radial_center_info_background.paa"; + }; + class submenu_background_topleft: cse_gui_backgroundBase{ + idc = 700; + type = CT_STATIC; + x = "5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "-1.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "30 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "30 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0, 0, 0, 0.0}; + colorBackground[] = {0, 0, 0, 0.66}; + text = "cse\cse_gui\radialmenu\data\radial_submenu_topleft.paa"; + }; + class submenu_background_topright: submenu_background_topleft{ + idc = 701; + text = "cse\cse_gui\radialmenu\data\radial_submenu_topright.paa"; + }; + class submenu_background_bottomleft: submenu_background_topleft{ + idc = 702; + text = "cse\cse_gui\radialmenu\data\radial_submenu_bottomleft.paa"; + }; + class submenu_background_bottomright: submenu_background_topleft{ + idc = 703; + text = "cse\cse_gui\radialmenu\data\radial_submenu_bottomright.paa"; + }; + + + class iconCenter: cse_gui_backgroundBase{ + idc = 710; + type = CT_STATIC; + x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.4}; + colorBackground[] = {1,1,1, 0.0}; + text = ""; + }; + class iconCenter_return: cse_gui_backgroundBase{ + idc = 711; + type = CT_STATIC; + x = "19.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "16.7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.4}; + colorBackground[] = {1,1,1, 0.0}; + text = "cse\cse_gui\radialmenu\data\icons\icon_return.paa"; + }; + + }; + class controls { + class LabelmenuName: cse_gui_staticBase{ + idc = 1; + x = "17 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + colorText[] = {0.97,0.97,0.97,1}; + colorBackground[] = {0,0,0, 0.0}; + text = ""; + style = ST_CENTER; + }; + + class LabeltargetName: LabelmenuName{ + idc = 2; + y = "14 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.6)"; + }; + class actionToPrevious : cse_gui_buttonBase { + idc = 2315; + text = ""; + /*x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "23.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";*/ + x = "19.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "16.7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.0)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0.0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0.0)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0.0)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = "[] call cse_fnc_returnToPreviousSubMenu_GUI;"; + }; + + /** ICONS FOR INNER CYCIRLE */ + class InnerCycle_iconTop: cse_gui_backgroundBase{ + idc = 100; + type = CT_STATIC; + x = "19 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.75 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.66}; + text = ""; + }; + class InnerCycle_iconTopLeft : InnerCycle_iconTop { + idc = 101; + x = "15 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + + }; + class InnerCycle_iconTopRight : InnerCycle_iconTop { + idc = 102; + x = "23.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconCenterLeft : InnerCycle_iconTop { + idc = 103; + x = "13.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconCenterRight : InnerCycle_iconTop { + idc = 104; + x = "24.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconBottomLeft : InnerCycle_iconTop { + idc = 105; + x = "15 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconBottomRight : InnerCycle_iconTop { + idc = 106; + x = "23.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + class InnerCycle_iconBottom : InnerCycle_iconTop { + idc = 107; + x = "19 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + /** TEXT */ + class InnerCycle_TextTop: cse_gui_staticBase{ + idc = 200; + x = "18 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.0}; + text = ""; + style = ST_CENTER; + }; + class InnerCycle_TextTopLeft : InnerCycle_TextTop { + idc = 201; + x = "14.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + + }; + class InnerCycle_TextTopRight : InnerCycle_TextTop { + idc = 202; + x = "22.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_TextCenterLeft : InnerCycle_TextTop { + idc = 203; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "15.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_TextCenterRight : InnerCycle_TextTop { + idc = 204; + x = "23.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "15.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_TextBottomLeft : InnerCycle_TextTop { + idc = 205; + x = "14.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "19.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_TextBottomRight : InnerCycle_TextTop { + idc = 206; + x = "22.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "19.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + class InnerCycle_TextBottom : InnerCycle_TextTop { + idc = 207; + x = "18 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "20.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + +class InnerCycle_actionTop : cse_gui_buttonBase { + idc = 10; + text = ""; + x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "2.7 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + /*animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.6)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0.5)";*/ + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = ""; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_10;"; + }; + + class InnerCycle_actionTopLeft : InnerCycle_actionTop { + idc = 11; + text = ""; + x = "14.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_11;"; + }; + class InnerCycle_actionTopRight : InnerCycle_actionTop { + idc = 12; + text = ""; + x = "22.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_12;"; + }; + + + + class InnerCycle_actionCenterLeft : InnerCycle_actionTop { + idc = 13; + text = ""; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_13;"; + }; + class InnerCycle_actionCenterRight : InnerCycle_actionTop { + idc = 14; + text = ""; + x = "23.3 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_14;"; + }; + + + class InnerCycle_actionBottomLeft : InnerCycle_actionTop { + idc = 15; + text = ""; + x = "14.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_15;"; + }; + class InnerCycle_actionBottomRight : InnerCycle_actionTop { + idc = 16; + text = ""; + x = "22.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "17.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_16;"; + }; + + class InnerCycle_actionBottom : InnerCycle_actionTop { + idc = 17; + text = ""; + x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "2.7 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "[] call compile CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_17;"; + }; + + + + + class secondCycle_iconBottomLeft: cse_gui_backgroundBase{ + idc = 350; + type = CT_STATIC; + x = "10.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "1.75 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.66}; + text = ""; + }; + class secondCycle_iconBottomLeftTwo : secondCycle_iconBottomLeft { + idc = 351; + x = "9.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "14.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconBottomLeftThree : secondCycle_iconBottomLeft { + idc = 352; + x = "9.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopLeftOne : secondCycle_iconBottomLeft { + idc = 353; + x = "10.75 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "8.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopLeftTwo : secondCycle_iconBottomLeft { + idc = 354; + text = ""; + x = "13.75 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopLeftThree : secondCycle_iconBottomLeft { + idc = 355; + x = "17.25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopRightOne : secondCycle_iconBottomLeft { + idc = 356; + x = "21.35 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopRightTwo : secondCycle_iconBottomLeft { + idc = 357; + x = "24.84 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconTopRightThree : secondCycle_iconBottomLeft { + idc = 358; + x = "27.48 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "8.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconBottomRightOne : secondCycle_iconBottomLeft { + idc = 359; + x = "29.65 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconBottomRightTwo : secondCycle_iconBottomLeft { + idc = 360; + x = "29.65 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "14.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_iconBottomRightThree : secondCycle_iconBottomLeft { + idc = 361; + x = "28.65 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + + class secondCycle_TextBottomLeft: cse_gui_staticBase{ + idc = 400; + x = "8.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "20 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4.6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.0}; + text = ""; + style = ST_CENTER; + }; + + + class secondCycle_textBottomLeftTwo : secondCycle_TextBottomLeft { + idc = 401; + x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "16.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textBottomLeftThree : secondCycle_TextBottomLeft { + idc = 402; + x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopLeftOne : secondCycle_TextBottomLeft { + idc = 403; + x = "9 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopLeftTwo : secondCycle_TextBottomLeft { + idc = 404; + text = ""; + x = "12 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopLeftThree : secondCycle_TextBottomLeft { + idc = 405; + x = "15.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopRightOne : secondCycle_TextBottomLeft { + idc = 406; + x = "19.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopRightTwo : secondCycle_TextBottomLeft { + idc = 407; + x = "22.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textTopRightThree : secondCycle_TextBottomLeft { + idc = 408; + x = "25.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textBottomRightOne : secondCycle_TextBottomLeft { + idc = 409; + x = "27.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textBottomRightTwo : secondCycle_TextBottomLeft { + idc = 410; + x = "27.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "16.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class secondCycle_textBottomRightThree : secondCycle_TextBottomLeft { + idc = 411; + x = "26.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "20 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + class secondCycle_actionBottomLeft : cse_gui_buttonBase { + idc = 300; + text = ""; + x = "9.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + /*animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.6)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0.5)";*/ + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = ""; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 350) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 350) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + class secondCycle_actionBottomLeftTwo : secondCycle_actionBottomLeft { + idc = 301; + x = "8.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "14.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 351) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 351) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionBottomLeftThree : secondCycle_actionBottomLeft { + idc = 302; + x = "8.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 352) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 352) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + class secondCycle_actionTopLeftOne : secondCycle_actionBottomLeft { + idc = 303; + x = "10 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 353) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 353) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionTopLeftTwo : secondCycle_actionBottomLeft { + idc = 304; + text = ""; + x = "13 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 354) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 354) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionTopLeftThree : secondCycle_actionBottomLeft { + idc = 305; + x = "16.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 355) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 355) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionTopRightOne : secondCycle_actionBottomLeft { + idc = 306; + x = "20.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 356) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 356) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionTopRightTwo : secondCycle_actionBottomLeft { + idc = 307; + x = "23.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 357) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 357) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionTopRightThree : secondCycle_actionBottomLeft { + idc = 308; + x = "26.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 358) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 358) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionBottomRightOne : secondCycle_actionBottomLeft { + idc = 309; + x = "28.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "11.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 359) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 359) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionBottomRightTwo : secondCycle_actionBottomLeft { + idc = 310; + x = "28.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "14.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 360) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 360) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class secondCycle_actionBottomRightThree : secondCycle_actionBottomLeft { + idc = 311; + x = "27.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 361) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RADIAL_MENU') displayCtrl 361) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + }; +}; diff --git a/TO_MERGE/cse/gui/gui/weapon_selector.h b/TO_MERGE/cse/gui/gui/weapon_selector.h new file mode 100644 index 0000000000..ec1e7c3451 --- /dev/null +++ b/TO_MERGE/cse/gui/gui/weapon_selector.h @@ -0,0 +1,195 @@ + +class CSE_RscWeaponSelector { + idd = 432342; + movingenable = 0; + fadein = 0; + fadeout = 0; + onLoad = "uiNamespace setVariable ['CSE_RscWeaponSelector', _this select 0]; _this call cse_fnc_onWeaponSelectorOpened_GUI;"; + + class controlsBackground { + class backgroundTop: cse_gui_backgroundBase{ + idc = 800; + type = CT_STATIC; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "15 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0.5, 0.2, 0.1, 0.4}; + colorBackground[] = {0, 0, 0, 0.4}; + text = "cse\cse_gui\radialmenu\data\radial_center_background_full_512.paa"; + }; + class backgroundCenter: backgroundTop{ + idc = 808; + text = "cse\cse_gui\radialmenu\data\radial_center_info_background.paa"; + }; + class iconCenter: cse_gui_backgroundBase{ + idc = 710; + type = CT_STATIC; + x = "17 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "12 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.4}; + colorBackground[] = {1,1,1, 0.0}; + text = ""; + }; + }; + + class controls { + class LabelmenuName: cse_gui_staticBase{ + idc = 1; + x = "17 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; + colorText[] = {1,1,1, 1}; + colorBackground[] = {0,0,0, 0.2}; + text = ""; + style = ST_CENTER; + }; + + class labelCurrentSelectedName: LabelmenuName{ + idc = 2; + y = "14 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.6)"; + }; + + /** ICONS FOR INNER CYCIRLE */ + class InnerCycle_iconTop: cse_gui_backgroundBase{ + idc = 100; + type = CT_STATIC; + x = "17.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.66}; + text = ""; + }; + + class InnerCycle_iconCenterLeft : InnerCycle_iconTop { + idc = 103; + x = "13.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconCenterRight : InnerCycle_iconTop { + idc = 104; + x = "24.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_iconBottom : InnerCycle_iconTop { + idc = 107; + x = "17.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + /** TEXT */ + class InnerCycle_TextTop: cse_gui_staticBase{ + idc = 200; + x = "18 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "3.6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)"; + colorText[] = {1,1,1, 0.66}; + colorBackground[] = {1,1,1, 0.0}; + text = ""; + style = ST_CENTER; + }; + + class InnerCycle_TextCenterLeft : InnerCycle_TextTop { + idc = 203; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "15.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + class InnerCycle_TextCenterRight : InnerCycle_TextTop { + idc = 204; + x = "23.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "15.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + class InnerCycle_TextBottom : InnerCycle_TextTop { + idc = 207; + x = "18 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "20.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + }; + + class InnerCycle_actionTop : cse_gui_buttonBase { + idc = 10; + text = ""; + x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "2.7 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + /*animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.6)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0.5)";*/ + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,0)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = ""; + onMouseEnter = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 100) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 100) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + + class InnerCycle_actionCenterLeft : InnerCycle_actionTop { + idc = 13; + text = ""; + x = "12.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 103) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 103) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + class InnerCycle_actionCenterRight : InnerCycle_actionTop { + idc = 14; + text = ""; + x = "23.3 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "13.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "4 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 104) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 104) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + + class InnerCycle_actionBottom : InnerCycle_actionTop { + idc = 17; + text = ""; + x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "2.7 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "3.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onMouseEnter = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 107) ctrlSetTextColor [1, 1, 1, 1];"; + onMouseExit = "((uiNamespace getvariable 'CSE_RscWeaponSelector') displayCtrl 107) ctrlSetTextColor [1, 1, 1, 0.66];"; + }; + + + }; +}; diff --git a/TO_MERGE/cse/gui/init.sqf b/TO_MERGE/cse/gui/init.sqf new file mode 100644 index 0000000000..96dfd03389 --- /dev/null +++ b/TO_MERGE/cse/gui/init.sqf @@ -0,0 +1,37 @@ +CSE_ALLOW_ON_MOUSE_OVER_OPEN_RADIALMENU = false; +CSE_ICON_PATH = "cse\cse_gui\radialmenu\data\icons\"; + +if (!isDedicated) then { + call cse_fnc_gui_displayEventHandler; + [format["GUI - REGISTERING INTERACTION MENUS"],3] call cse_fnc_debug; + #include "init_action_ui.sqf" // radis menu + action keybindings + + if ((((["CombinedInteractionMenu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F) select 0) != 0) && (((["radius_menu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F) select 0) == 0)) then { + ["radius_menu", (["CombinedInteractionMenu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F)] call cse_fnc_updateMenuKeyBinding_f; + ["CombinedInteractionMenu", [0,0,0,0]] call cse_fnc_updateMenuKeyBinding_f; + }; +}; +cse_gui = true; + +[format["GUI - INIT COMPLETE"],3] call cse_fnc_debug; + + +["cse_gui_radialMenu_AllowOnMouseOver", ["Enable", "Disable"], (["cse_gui_radialMenu_AllowOnMouseOver", 0] call cse_fnc_getClientSideOptionFromProfile_F), { + CSE_ALLOW_ON_MOUSE_OVER_OPEN_RADIALMENU = (_this select 1) == 0; +}] call cse_fnc_addClientSideOptions_f; + +["cse_gui_radialMenu_AllowOnMouseOver","option","Radial Menu (Hover)","Open the radial menu category when you hover your mouse over the button."] call cse_fnc_settingsDefineDetails_F; + + +cse_fnc_interactWithVehicle_Crew_Condition = { +private ["_return"]; + _return = false; + if (((_this select 0) distance (_this select 1) < 10)) then { + if (((_this select 1) isKindOf "Car") || ((_this select 1) isKindOf "Air") || ((_this select 1) isKindOf "Tank")) then { + if (count (crew (_this select 1)) > 0) then { + _return = true; + }; + }; + }; + _return +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/init_action_ui.sqf b/TO_MERGE/cse/gui/init_action_ui.sqf new file mode 100644 index 0000000000..f86d1ec9fc --- /dev/null +++ b/TO_MERGE/cse/gui/init_action_ui.sqf @@ -0,0 +1,63 @@ +#define ACTION_MENU "ActionMenu" + + +[ACTION_MENU, "Action Menu", {[player] call cse_fnc_isAwake && vehicle player == cameraOn}, 2, "", {}, false] call cse_fnc_createRadialInteraction_F; +cse_fnc_openActionMenu_GUI = { + + ["ActionMenu"] call cse_fnc_openRadialInteractionMenu_F; + if ([player] call cse_fnc_canInteract && {animationState player == 'deadState' || animationState player == 'unconscious'} && {(vehicle player == player)}) then { + [player, 'amovppnemstpsnonwnondnon'] call cse_fnc_broadcastAnim; + }; +}; + +["radius_menu", (["radius_menu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F), cse_fnc_openActionMenu_GUI, 800] call cse_fnc_addKeyBindingForMenu_F; +["radius_menu","menu","Open Action Menu","Opens the CSE Radial Action Menu"] call cse_fnc_settingsDefineDetails_F; + + +cse_fnc_playerCanInteractWithPerson = { + private ["_person","_modify"]; + _person = _this select 0; + _modify = _this select 1; + _return = false; + if (_person isKindOf "CAManBase") then { + _return = switch (_modify) do { + case 0: {([_person] call cse_fnc_isAwake)}; + case 1: {true}; + default {false}; + }; + }; + _return +}; + +// CATEGORIES +[ACTION_MENU,"interaction", "Interact", {["ActionMenu", "interaction", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_interact.paa", 0, "Interact with"] call cse_fnc_createCategoryRadialMenu_F; +[ACTION_MENU,"equipment", "Equipment", {["ActionMenu", "equipment", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_backpack_radio.paa", 1, "Equipment & Gear"] call cse_fnc_createCategoryRadialMenu_F; +[ACTION_MENU,"medical_menu", "Medical", {["ActionMenu", "medical_menu", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_examine_patient.paa", 2, "Medical Interaction"] call cse_fnc_createCategoryRadialMenu_F; +[ACTION_MENU,"group_actions", "Group", {["ActionMenu", "group_actions", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_group.paa", 3, "Your Group"] call cse_fnc_createCategoryRadialMenu_F; +[ACTION_MENU,"survival", "Survival", {["ActionMenu", "survival", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_survival.paa", 4, "Survival actions"] call cse_fnc_createCategoryRadialMenu_F; + +if ([] call cse_fnc_isLoaded_ALiVE_Mod) then { + [ACTION_MENU,"alive_actions", "ALiVE", {["ActionMenu", "alive_actions", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_alive_mod.paa", 5, "ALiVE actions"] call cse_fnc_createCategoryRadialMenu_F; +}; + +[ACTION_MENU,"custom_actions", "Custom", {["ActionMenu", "custom_actions", _this select 1] call cse_fnc_categoryHasActionsAvailable_F}, CSE_ICON_PATH + "icon_lines_horizontal_s.paa", 6, "Custom actions"] call cse_fnc_createCategoryRadialMenu_F; + +// Entries +[ACTION_MENU,"custom_actions", [["Curator", {getAssignedCuratorLogic player in allCurators}, CSE_ICON_PATH + "icon_curator.paa", {closeDialog 0; openCuratorInterface; }, "Open Curator Interface"]] ] call cse_fnc_addMultipleEntriesToRadialCategory_F; + + + + +/* +["myID_1", true, CSE_ICON_PATH + "icon_group.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_2", true, CSE_ICON_PATH + "icon_backpack_radio.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_3", true, CSE_ICON_PATH + "icon_interact.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_4", true, CSE_ICON_PATH + "icon_survival.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + + +["myID_1", false, CSE_ICON_PATH + "icon_group.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_2", false, CSE_ICON_PATH + "icon_backpack_radio.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_3", false, CSE_ICON_PATH + "icon_interact.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; +["myID_4", false, CSE_ICON_PATH + "icon_survival.paa", [1,1,1,1]] call cse_fnc_gui_displayIcon; + +*/ \ No newline at end of file diff --git a/TO_MERGE/cse/gui/init_interaction_ui.sqf b/TO_MERGE/cse/gui/init_interaction_ui.sqf new file mode 100644 index 0000000000..b7354a0e24 --- /dev/null +++ b/TO_MERGE/cse/gui/init_interaction_ui.sqf @@ -0,0 +1,6 @@ + + if ((((["CombinedInteractionMenu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F) select 0) != 0) && (((["radius_menu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F) select 0) == 0)) then { + ["radius_menu", (["CombinedInteractionMenu","menu",[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F)] call cse_fnc_updateMenuKeyBinding_f; + ["CombinedInteractionMenu", [0,0,0,0]] call cse_fnc_updateMenuKeyBinding_f; + }; + diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottom_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottom_w.paa new file mode 100644 index 0000000000..5142a62573 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottom_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomleft_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomleft_w.paa new file mode 100644 index 0000000000..bcc441512b Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomleft_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomright_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomright_w.paa new file mode 100644 index 0000000000..bd7746a142 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomright_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerleft_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerleft_w.paa new file mode 100644 index 0000000000..ab4dea1e5f Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerleft_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerright_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerright_w.paa new file mode 100644 index 0000000000..9f36be9c30 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_centerright_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_top_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_top_w.paa new file mode 100644 index 0000000000..f1695ce4da Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_top_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_topleft_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_topleft_w.paa new file mode 100644 index 0000000000..ac8e507323 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_topleft_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_background_topright_w.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_background_topright_w.paa new file mode 100644 index 0000000000..57204f2116 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_background_topright_w.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_center_background.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background.paa new file mode 100644 index 0000000000..9f468feee7 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_512.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_512.paa new file mode 100644 index 0000000000..de28c44dad Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_512.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_full_512.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_full_512.paa new file mode 100644 index 0000000000..af1c2f97cc Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_center_background_full_512.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_center_info_background.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_center_info_background.paa new file mode 100644 index 0000000000..51e5ea0e18 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_center_info_background.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_submenu.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu.paa new file mode 100644 index 0000000000..1fe76a1086 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomleft.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomleft.paa new file mode 100644 index 0000000000..b1dcf36875 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomleft.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomright.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomright.paa new file mode 100644 index 0000000000..de5763a4bf Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomright.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topleft.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topleft.paa new file mode 100644 index 0000000000..a888959e5a Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topleft.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topright.paa b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topright.paa new file mode 100644 index 0000000000..b612277b25 Binary files /dev/null and b/TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topright.paa differ diff --git a/TO_MERGE/cse/gui/radialmenu/fn_addCategoryEntryRadialMenu_F.sqf b/TO_MERGE/cse/gui/radialmenu/fn_addCategoryEntryRadialMenu_F.sqf new file mode 100644 index 0000000000..38f901cb8d --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_addCategoryEntryRadialMenu_F.sqf @@ -0,0 +1,26 @@ +/** + * fn_addCategoryEntryRadialMenu_F.sqf + * @Descr: Addes a new category entry to a radial menu + * @Author: Glowbal + * + * @Arguments: [menuName STRING, categoryName STRING, displayName STRING, condition CODE, icon STRING, onPressed CODE, toolTip STRING] + * @Return: BOOL True if succesfully added + * @PublicAPI: true + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + +private ["_menuName","_condition","_icon","_onOpened", "_position","_toolTip","_currentEntries", "_categoryName"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_categoryName = [_this, 1, "",[""]] call BIS_fnc_Param; +_displayNameEntry = [_this, 2, "",[""]] call BIS_fnc_Param; +_condition = [_this, 3, {true;}, [{}]] call BIS_fnc_Param; +_icon = [_this, 4, "", [""]] call BIS_fnc_Param; +_onOpened = [_this, 5, {}, [{}]] call BIS_fnc_Param; +_toolTip = [_this, 6, _displayNameEntry, [""]] call BIS_fnc_Param; + + // TODO parse menu name for correct value + _currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_category_entries_"+_menuName + _categoryName, []]; + _currentEntries pushback [_displayNameEntry,_icon,_onOpened,_condition, _toolTip]; + missionNamespace setvariable ["cse_radiusInteraction_f_category_entries_"+_menuName + _categoryName, _currentEntries]; + true; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_addEntryToMenuSorter_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_addEntryToMenuSorter_f.sqf new file mode 100644 index 0000000000..8ab6e03f9a --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_addEntryToMenuSorter_f.sqf @@ -0,0 +1,26 @@ +/** + * fn_addEntryToMenuSorter_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_condition","_icon","_onOpened", "_priority","_toolTip","_currentEntries"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_displayNameEntry = [_this, 1, "",[""]] call BIS_fnc_Param; +_condition = [_this, 2, {true;}, [{}]] call BIS_fnc_Param; +_icon = [_this, 3, "", [""]] call BIS_fnc_Param; +_onOpened = [_this, 4, {}, [{}]] call BIS_fnc_Param; +_priority = [_this, 5, 0, [0]] call BIS_fnc_Param; +_toolTip = [_this, 6, _displayNameEntry, [""]] call BIS_fnc_Param; + + + +_currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_sorter_"+_menuName, []]; +_currentEntries pushback [_displayNameEntry,_icon,_onOpened,_condition, _toolTip]; +missionNamespace setvariable ["cse_radiusInteraction_f_entries_sorter_"+_menuName, _currentEntries]; + +// [[1,-80,0,480,15,-40],[],{_x},"ASCEND"] call BIS_fnc_sortBy; diff --git a/TO_MERGE/cse/gui/radialmenu/fn_addEntryToRadialInteraction_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_addEntryToRadialInteraction_f.sqf new file mode 100644 index 0000000000..5f98b2664a --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_addEntryToRadialInteraction_f.sqf @@ -0,0 +1,30 @@ +/** + * fn_addEntryToRadialInteraction_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + +private ["_menuName","_condition","_icon","_onOpened", "_position","_toolTip","_currentEntries"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_displayNameEntry = [_this, 1, "",[""]] call BIS_fnc_Param; +_condition = [_this, 2, {true;}, [{}]] call BIS_fnc_Param; +_icon = [_this, 3, "", [""]] call BIS_fnc_Param; +_onOpened = [_this, 4, {}, [{}]] call BIS_fnc_Param; +_position = [_this, 5, 0, [0]] call BIS_fnc_Param; +_toolTip = [_this, 6, _displayNameEntry, [""]] call BIS_fnc_Param; + +if (_position < 8) then { + // TODO parse menu name for correct value + _currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_"+_menuName, [DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY , DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY]]; + _currentEntries set [ _position, [_displayNameEntry,_icon,_onOpened,_condition, _toolTip]]; + missionNamespace setvariable ["cse_radiusInteraction_f_entries_"+_menuName, _currentEntries]; + true; +} else { + false; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_addMultipleEntriesToRadialCategory_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_addMultipleEntriesToRadialCategory_f.sqf new file mode 100644 index 0000000000..4dadd9e205 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_addMultipleEntriesToRadialCategory_f.sqf @@ -0,0 +1,25 @@ +/** + * fn_addMultipleEntriesToRadialCategory_f.sqf + * @Descr: Addes multiple entries to a specific category for a radial menu + * @Author: Glowbal + * + * @Arguments: [menuName STRING, categoryName STRING, entries ARRAY (Format in [menuName STRING, categoryName STRING, displayName STRING, condition CODE, icon STRING, onPressed CODE, toolTip STRING])] + * @Return: void + * @PublicAPI: true + */ + +private ["_menuName","_condition","_icon","_onOpened", "_position","_toolTip","_currentEntries", "_categoryName", "_entries"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_categoryName = [_this, 1, "",[""]] call BIS_fnc_Param; +_entries = [ _this, 2, [], [[]]] call BIS_fnc_Param; + +{ + if (typeName _x == typeName []) then { + _displayNameEntry = [_x, 0, "",[""]] call BIS_fnc_Param; + _condition = [_x, 1, {false;}, [{}]] call BIS_fnc_Param; + _icon = [_x, 2, "", [""]] call BIS_fnc_Param; + _onOpened = [_x, 3, {}, [{}]] call BIS_fnc_Param; + _toolTip = [_x, 4, _displayNameEntry, [""]] call BIS_fnc_Param; + [_menuName,_categoryName, _displayNameEntry, _condition,_icon,_onOpened,_toolTip] call cse_fnc_addCategoryEntryRadialMenu_F; + }; +}foreach _entries; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_categoryHasActionsAvailable_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_categoryHasActionsAvailable_f.sqf new file mode 100644 index 0000000000..acf99521d1 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_categoryHasActionsAvailable_f.sqf @@ -0,0 +1,34 @@ +/** + * fn_categoryHasActionsAvailable_f.sqf + * @Descr: Checks if a category has any actions available. + * @Author: Glowbal + * + * @Arguments: [menuName STRING, categoryName STRING, target OBJECT (The target object for which conditions will be parsed)] + * @Return: BOOL True if actions are available + * @PublicAPI: true + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + + +private ["_menuName","_categoryName", "_entries", "_entriesAvailable", "_entry", "_target"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_categoryName = [_this, 1, "",[""]] call BIS_fnc_Param; +_target = [_this, 2, objNull, [objNull]] call BIS_fnc_Param; +_entriesAvailable = false; +_entries = [_menuName, _categoryName] call cse_fnc_getAllCategoryEntriesRadialMenu_f; + { + _entry = + ([_entries, _foreachIndex, DEFAULT_ENTRY,[[]],[4,5]] call BIS_fnc_Param); + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _entriesAvailable = true; + }; + } else { + if (_entry select 3) then { + _entriesAvailable = true; + }; + }; + if (_entriesAvailable) exitwith {}; + }foreach _entries; + +_entriesAvailable \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_closeRadialSecondRing_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_closeRadialSecondRing_gui.sqf new file mode 100644 index 0000000000..e17517788d --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_closeRadialSecondRing_gui.sqf @@ -0,0 +1,30 @@ +/** + * fn_closeRadialSecondRing_gui.sqf + * @Descr: Closes the second ring from the radial menu + * @Author: Glowbal + * + * @Arguments: [] + * @Return: void + * @PublicAPI: true + */ + +private ["_numberOf","_target","_menuName","_entryToSwitchTo", "_entries"]; + +[ObjNull, []] call cse_fnc_setRadialSecondRing_GUI; + +private ["_numberOf","_entries","_entryToSwitchTo","_target","_menuName"]; +if (isnil "CSE_RADIAL_SUB_MENU_GUI") then { + CSE_RADIAL_SUB_MENU_GUI = []; +}; +_numberOf = count CSE_RADIAL_SUB_MENU_GUI - 1; +if (_numberOf < 0) then { + _numberOf = 0; +}; +if (count CSE_RADIAL_SUB_MENU_GUI == 0) exitwith {}; +_entryToSwitchTo = CSE_RADIAL_SUB_MENU_GUI select _numberOf; +_target = _entryToSwitchTo select 0; +_menuName = _entryToSwitchTo select 1; +_entries = _entryToSwitchTo select 2; +[_target, _entries] call cse_fnc_setRadialMenuOptions_GUI; +[_menuName] call cse_fnc_setRadialMenuName_GUI; +[-1, false] call cse_fnc_setRadialOptionSelected_GUI; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_createCategoryRadialMenu_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_createCategoryRadialMenu_f.sqf new file mode 100644 index 0000000000..501839ca07 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_createCategoryRadialMenu_f.sqf @@ -0,0 +1,40 @@ +/** + * fn_createCategoryRadialMenu_f.sqf + * @Descr: Creates a category for a radial menu (Inner cycle) + * @Author: Glowbal + * + * @Arguments: [menuName STRING, categoryName STRING, displayName STRING, condition CODE, icon STRING, position NUMBER (0 to 7), toolTip STRING] + * @Return: BOOL True if succesfully created + * @PublicAPI: true + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + + +private ["_menuName","_condition","_icon","_onOpened", "_position","_toolTip","_currentEntries", "_categorycode", "_displayNameEntry","_categoryName","_icon"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_categoryName = [_this, 1, "",[""]] call BIS_fnc_Param; +_displayNameEntry = [_this, 2, "",[""]] call BIS_fnc_Param; +_condition = [_this, 3, {true;}, [{}]] call BIS_fnc_Param; +_icon = [_this, 4, "", [""]] call BIS_fnc_Param; +_position = [_this, 5, 0, [0]] call BIS_fnc_Param; +_toolTip = [_this, 6, _displayNameEntry, [""]] call BIS_fnc_Param; + +if (_position < 8) then { + _onOpened = compile format[" + [ _this select 3, + ['%1', '%2'] call cse_fnc_getAllCategoryEntriesRadialMenu_f, + _this select 1, _this select 2 + ] call cse_fnc_openRadialSecondRing_GUI;",_menuName, _categoryName]; + + // TODO parse menu name for correct value + _currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_"+_menuName, [DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY , DEFAULT_ENTRY, DEFAULT_ENTRY, DEFAULT_ENTRY]]; + _currentEntries set [ _position, [_displayNameEntry, _icon,_onOpened,_condition, _toolTip]]; + missionNamespace setvariable ["cse_radiusInteraction_f_entries_"+_menuName, _currentEntries]; + + missionNamespace setvariable ["cse_radiusInteraction_f_category_entries_"+_menuName+_categoryName, []]; + + true; +} else { + false; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_createRadialInteraction_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_createRadialInteraction_f.sqf new file mode 100644 index 0000000000..0ec48b353b --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_createRadialInteraction_f.sqf @@ -0,0 +1,30 @@ +/** + * fn_createRadialInteraction_f.sqf + * @Descr: Creates a radial interaction menu + * @Author: Glowbal + * + * @Arguments: [menuName STRING, displayName STRING, condition CODE, type NUMBER (0 = self, 1 = other, 2 = combined), icon STRING, onOpened CODE] + * @Return: BOOL. True if menu has succesfully been created + * @PublicAPI: true + */ + + +private ["_menuName","_condition","_typeOfMenu","_icon","_onOpened", "_currentEntries" , "_useSorter"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_displayName = [_this, 1, "",[""]] call BIS_fnc_Param; +_condition = [_this, 2, {false},[{}]] call BIS_fnc_Param; +_typeOfMenu = [_this, 3, 0, [0]] call BIS_fnc_Param; +_icon = [_this, 4, "", [""]] call BIS_fnc_Param; +_onOpened = [_this, 5, {}, [{}]] call BIS_fnc_Param; +_useSorter = [_this, 6, false, [false]] call BIS_fnc_Param; + +_currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_allMenuNames", []]; +missionNamespace setvariable ["cse_radiusInteraction_f_"+_menuName, [_menuName,_displayName,_condition,_typeOfMenu,_icon,_onOpened, _useSorter]]; // if it exist, we want to overwrite it with new values + +if (!(_menuName in _currentEntries)) then { + _currentEntries pushback _menuName; + missionNamespace setvariable ["cse_radiusInteraction_f_allMenuNames", _currentEntries]; + true; +} else { + false; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_findTargetName_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_findTargetName_gui.sqf new file mode 100644 index 0000000000..dc5386a09e --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_findTargetName_gui.sqf @@ -0,0 +1,20 @@ +/** + * fn_findTargetName_gui.sqf + * @Descr: Get the target name + * @Author: Glowbal + * + * @Arguments: [target OBJECT] + * @Return: STRING name of Target + * @PublicAPI: true + */ + +private ["_target","_targetName"]; +_target = [_this, 0, ObjNull, [ObjNull]] call BIS_fnc_Param; + +_targetName = switch (true) do { + case (_target isKindOf "CaManBase"): {([_target] call cse_fnc_getName)}; + case ((_target isKindOf "All")): {(getText(configFile >> "Cfgvehicles" >> typeof _target >> "displayName"))}; + default {"Object"}; +}; + +_targetName \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_findTargetOfMenu_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_findTargetOfMenu_gui.sqf new file mode 100644 index 0000000000..9a5ca534ef --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_findTargetOfMenu_gui.sqf @@ -0,0 +1,46 @@ +/** + * fn_findTargetOfMenu_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_type", "_target","_carriedObj","_allowed"]; +_type = [_this, 0, 0,[0]] call BIS_fnc_Param; +_allowedClasses = [_this, 1, ["all"],[[]]] call BIS_fnc_Param; + +if (vehicle player != player) exitwith { + vehicle player; +}; + +_target = switch (_type) do { + case 2: {if (isNull cursortarget) then {player} else{cursortarget};}; + case 1: {cursortarget}; + case 0: {player}; + default {ObjNull}; +}; + + + +if ((_target distance player) > 10 && {(_type == 2)}) then { + _target = player; +}; +if (_target != player) then { + _carriedObj = [player] call cse_fnc_getCarriedObj; + if (!isNull _carriedObj) then { + _target = _carriedObj; + }; +}; +_allowed = false; +{ + if (_target isKindOf _x) exitwith { + _allowed = true; + }; +}foreach _allowedClasses; +if (!_allowed) then { + _target = ObjNull; +}; +_target \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_getAllCategoryEntriesRadialMenu_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_getAllCategoryEntriesRadialMenu_f.sqf new file mode 100644 index 0000000000..d9cb1763d7 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_getAllCategoryEntriesRadialMenu_f.sqf @@ -0,0 +1,15 @@ +/** + * fn_getAllCategoryEntriesRadialMenu_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_categoryName"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_categoryName = [_this, 1, "",[""]] call BIS_fnc_Param; + +(missionNamespace getvariable ["cse_radiusInteraction_f_category_entries_"+_menuName+_categoryName, []]) \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_getCurrentRadialTarget_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_getCurrentRadialTarget_gui.sqf new file mode 100644 index 0000000000..47e8e6fb60 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_getCurrentRadialTarget_gui.sqf @@ -0,0 +1,23 @@ +/** + * fn_getCurrentRadialTarget_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_target"]; +if (isnil "CSE_interactionTarget") then { + _target = objNull; +} else { + disableSerialization; + + if (isNull (uiNamespace getvariable "CSE_RADIAL_MENU")) then { + _target = objNull; + } else { + _target = CSE_interactionTarget; + }; +}; +_target \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_getEntryToMenuSorter_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_getEntryToMenuSorter_f.sqf new file mode 100644 index 0000000000..175520ffd5 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_getEntryToMenuSorter_f.sqf @@ -0,0 +1,31 @@ +/** + * fn_getEntryToMenuSorter_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_currentEntries", "_returnEntries", "_target", "_toAddEntry"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_target = [_this, 1, ObjNull, [ObjNull]] call BIS_fnc_Param; + +_currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_sorter_"+_menuName, []]; +_returnEntries = []; +{ + _entry = _x; + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _toAddEntry = +_entry; + _toAddEntry set [ 3, true]; + _returnEntries pushback _toAddEntry; + }; + } else { + if (_entry select 3) then { + _returnEntries pushback (+ _x); + }; + }; +}foreach _currentEntries; +_returnEntries; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_getIcon_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_getIcon_f.sqf new file mode 100644 index 0000000000..03236d36b8 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_getIcon_f.sqf @@ -0,0 +1,20 @@ +/** + * fn_getIcon_f.sqf + * @Descr: Grab an icon from the CSE Icon collection + * @Author: Glowbal + * + * @Arguments: [name STRING] + * @Return: STRING Path to icon. Returns empty path if icon does not exist + * @PublicAPI: true + */ + +#define CSE_ICON_PATH "cse\cse_gui\radialmenu\data\icons\" + +private ["_iconName","_return"]; +_iconName = [_this, 0, "",[""]] call bis_fnc_param; +if (_iconName == "") then { + _iconName = "icon_cse"; +}; +_return = CSE_ICON_PATH + _iconName + ".paa"; + +_return \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_getRadialInteractionEntries_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_getRadialInteractionEntries_f.sqf new file mode 100644 index 0000000000..02d295621b --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_getRadialInteractionEntries_f.sqf @@ -0,0 +1,16 @@ +/** + * fn_getRadialInteractionEntries_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_currentEntries"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; + +_currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_"+_menuName, []]; + +_currentEntries; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_hasEntriesRadialInteraction_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_hasEntriesRadialInteraction_f.sqf new file mode 100644 index 0000000000..7813a497d1 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_hasEntriesRadialInteraction_f.sqf @@ -0,0 +1,37 @@ +/** + * fn_hasEntriesRadialInteraction_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + + +private ["_menuName","_entries", "_hasEntriesAvailable", "_target"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +_target = [_this, 1, ObjNull, [ObjNull]] call BIS_fnc_Param; + +if ([_menuName, _target] call cse_fnc_radialUsesSorter_F) then { + _entries = missionNamespace getvariable ["cse_radiusInteraction_f_entries_sorter_"+_menuName, []]; // getting the direct list, otherwise it will call the conditions first +} else { + _entries = [_menuName] call cse_fnc_getRadialInteractionEntries_F; // FORMAT [ [_menuName,_icon,_onOpened,_condition] , .. ] +}; +_hasEntriesAvailable = false; +{ + _entry = _x; + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _hasEntriesAvailable = true; + }; + } else { + if (_entry select 3) then { + _hasEntriesAvailable = true; + }; + }; + + if (_hasEntriesAvailable) exitwith {}; +}count _entries; + +_hasEntriesAvailable; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_isOpenSecondRing_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_isOpenSecondRing_gui.sqf new file mode 100644 index 0000000000..9907647f16 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_isOpenSecondRing_gui.sqf @@ -0,0 +1,35 @@ +/** + * fn_isOpenSecondRing_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define OPTION_BOTTOM_LEFT_ONE 300 +#define OPTION_BOTTOM_LEFT_TWO 301 +#define OPTION_BOTTOM_LEFT_THREE 302 +#define OPTION_TOP_LEFT_ONE 303 +#define OPTION_TOP_LEFT_TWO 304 +#define OPTION_TOP_LEFT_THREE 305 +#define OPTION_TOP_RIGHT_ONE 306 +#define OPTION_TOP_RIGHT_TWO 307 +#define OPTION_TOP_RIGHT_THREE 308 +#define OPTION_BOTTOM_RIGHT_ONE 309 +#define OPTION_BOTTOM_RIGHT_TWO 310 +#define OPTION_BOTTOM_RIGHT_THREE 311 + + +private ["_return", "_availableOptionSpots"]; +_availableOptionSpots = [OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE]; + +_return = false; +{ + if (ctrlEnabled _x) exitwith { + _return = true; + }; +}foreach _availableOptionSpots; + +_return \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_isRadialOptionSelected_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_isRadialOptionSelected_gui.sqf new file mode 100644 index 0000000000..b8dcc39bc1 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_isRadialOptionSelected_gui.sqf @@ -0,0 +1,18 @@ +/** + * fn_isRadialOptionSelected_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_number","_return"]; +_number = [_this, 0, 0, [0]] call BIS_fnc_Param; +if (isnil "CSE_SELECTED_RADIAL_OPTION_N_GUI") then { + _return = false; +} else { + _return = (CSE_SELECTED_RADIAL_OPTION_N_GUI == _number); +}; +_return \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_openRadialInteractionMenu_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_openRadialInteractionMenu_f.sqf new file mode 100644 index 0000000000..3536bc929f --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_openRadialInteractionMenu_f.sqf @@ -0,0 +1,37 @@ +/** + * fn_openRadialInteractionMenu_f.sqf + * @Descr: Opens a radial menu that has been registered if condition is met + * @Author: Glowbal + * + * @Arguments: [menuName STRING] + * @Return: void + * @PublicAPI: true + */ + + +#define DEFAULT_ENTRY ["","",{}, false, ""] + +private ["_menuName", "_entries", "_menu", "_target"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; + +_menu = missionNamespace getvariable "cse_radiusInteraction_f_"+_menuName; // [ _menuName, _displayNameMenu, _condition,_typeOfMenu,_icon,_onOpened ] +if (!isnil "_menu") then { + _menuName = _menu select 0; + _displayNameMenu = _menu select 1; + _conditionOfMenu = _menu select 2; + _typeOfMenu = _menu select 3; + _icon = _menu select 4; + _onOpened = _menu select 5; + _target = [_typeOfMenu] call cse_fnc_findTargetOfMenu_GUI; + if (isNull _target) exitwith {}; + if (!([player, _target, _menuName] call _conditionOfMenu)) exitwith {}; + if (!([_menuName,_target] call cse_fnc_hasEntriesRadialInteraction_F) && (_target != player)) then {_target = player;}; + if (isNull _target) exitwith {}; + if !([_menuName,_target] call cse_fnc_hasEntriesRadialInteraction_F) exitwith {}; + if ([_menuName, _target] call cse_fnc_radialUsesSorter_F) then { + _entries = [_menuName] call cse_fnc_getEntryToMenuSorter_F; + } else { + _entries = [_menuName] call cse_fnc_getRadialInteractionEntries_F; // FORMAT [ [_menuName,_icon,_onOpened,_condition] , .. ] + }; + [_displayNameMenu, _entries, _target] call cse_fnc_openRadialMenu_GUI; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_openRadialMenu_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_openRadialMenu_gui.sqf new file mode 100644 index 0000000000..b62bf87e68 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_openRadialMenu_gui.sqf @@ -0,0 +1,22 @@ +/** + * fn_openRadialMenu_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_entries", "_menuName","_target"]; +disableSerialization; +createDialog "CSE_RADIAL_MENU"; +CSE_RADIAL_SUB_MENU_GUI = []; + +_menuName = [_this, 0, "Main Menu", [""]] call BIS_fnc_Param; +_entries = [_this, 1, [], [[]]] call BIS_fnc_Param; +_target = [_this, 2, ObjNull, [ObjNull]] call BIS_fnc_Param; +setMousePosition [ 0.5, 0.6 ]; +[_menuName,_entries, _target] call cse_fnc_openRadialSubMenu_GUI; + +[[_menuName, _entries, _target],"openRadialMenu"] call cse_fnc_customEventHandler_F; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_openRadialSecondRing_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_openRadialSecondRing_gui.sqf new file mode 100644 index 0000000000..c5f1577a57 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_openRadialSecondRing_gui.sqf @@ -0,0 +1,41 @@ +/** + * fn_openRadialSecondRing_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + + +private ["_entries","_menuName", "_target", "_from", "_passEntries", "_force"]; +_menuName = [_this, 0, "Main Menu",[""]] call BIS_fnc_Param; +_entries = [_this, 1, [],[[]]] call BIS_fnc_Param; +_target = [_this, 2, ObjNull, [ObjNull]] call BIS_fnc_Param; +_from = [_this, 3, 10, [0]] call BIS_fnc_Param; +_force = [_This, 4, false, [false]] call BIS_fnc_Param; + +if (([_from] call cse_fnc_isRadialOptionSelected_GUI) && !_force) then { + [] call cse_fnc_closeRadialSecondRing_GUI; +} else { + _passEntries = []; + + { + _entry = + ([_entries, _foreachIndex, DEFAULT_ENTRY,[[]],[4,5]] call BIS_fnc_Param); + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _entry set [ 3, true]; + _passEntries pushback _entry; + }; + } else { + if (_entry select 3) then { + _passEntries pushback _entry; + }; + }; + }foreach _entries; + [_target, _passEntries, _from] call cse_fnc_setRadialSecondRing_GUI; + [_from, true] call cse_fnc_setRadialOptionSelected_GUI; +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_openRadialSubMenu_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_openRadialSubMenu_gui.sqf new file mode 100644 index 0000000000..245cdf00a5 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_openRadialSubMenu_gui.sqf @@ -0,0 +1,20 @@ +/** + * fn_openRadialSubMenu_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_entries","_menuName", "_target"]; +_menuName = [_this, 0, "Main Menu",[""]] call BIS_fnc_Param; +_entries = [_this, 1, [],[[]]] call BIS_fnc_Param; +_target = [_this, 2, ObjNull, [ObjNull]] call BIS_fnc_Param; +[] call cse_fnc_closeRadialSecondRing_GUI; +CSE_RADIAL_SUB_MENU_GUI pushback [_target, _menuName, _entries]; +[_target, _entries] call cse_fnc_setRadialMenuOptions_GUI; +[_menuName] call cse_fnc_setRadialMenuName_GUI; +[-1, false] call cse_fnc_setRadialOptionSelected_GUI; +[ ([_target] call cse_fnc_findTargetName_GUI) ] call cse_fnc_setRadialMenuTargetName_GUI; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_radialUsesSorter_f.sqf b/TO_MERGE/cse/gui/radialmenu/fn_radialUsesSorter_f.sqf new file mode 100644 index 0000000000..8ae3b84e7b --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_radialUsesSorter_f.sqf @@ -0,0 +1,17 @@ +/** + * fn_radialUsesSorter_f.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName","_currentEntries"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; + +_currentEntries = missionNamespace getvariable ["cse_radiusInteraction_f_"+_menuName, []]; +if (_currentEntries isEqualTo []) exitwith { false }; + +(_currentEntries select 6); \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_returnToPreviousSubMenu_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_returnToPreviousSubMenu_gui.sqf new file mode 100644 index 0000000000..b7166aff2f --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_returnToPreviousSubMenu_gui.sqf @@ -0,0 +1,29 @@ +/** + * fn_returnToPreviousSubMenu_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_numberOf","_entries","_entryToSwitchTo","_target","_menuName"]; +if (isnil "CSE_RADIAL_SUB_MENU_GUI") then { + CSE_RADIAL_SUB_MENU_GUI = []; +}; +_numberOf = count CSE_RADIAL_SUB_MENU_GUI - 1; +if (_numberOf < 0) then { + _numberOf = 0; +}; +if (count CSE_RADIAL_SUB_MENU_GUI == 0 || ((_numberOf - 1) < 0)) exitwith { + closedialog 432341; +}; +_entryToSwitchTo = CSE_RADIAL_SUB_MENU_GUI select (_numberOf - 1); +CSE_RADIAL_SUB_MENU_GUI resize _numberOf; +_target = _entryToSwitchTo select 0; +_menuName = _entryToSwitchTo select 1; +_entries = _entryToSwitchTo select 2; + +[_target, _entries] call cse_fnc_setRadialMenuOptions_GUI; +[_menuName] call cse_fnc_setRadialMenuName_GUI; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuName_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuName_gui.sqf new file mode 100644 index 0000000000..7ac2cf648b --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuName_gui.sqf @@ -0,0 +1,24 @@ +/** + * fn_setRadialMenuName_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName", "_buttonName", "_display", "_countOf"]; +_menuName = [_this, 0, "Main Menu",[""]] call BIS_fnc_Param; +ctrlSetText [1, _menuName]; + +if (count CSE_RADIAL_SUB_MENU_GUI > 1) then { + _countOf = (count CSE_RADIAL_SUB_MENU_GUI) - 2; + _buttonName = "Return to " + ((CSE_RADIAL_SUB_MENU_GUI select _countOf) select 1); +} else { + _buttonName = "Close Menu"; +}; + +disableSerialization; +_display = uiNamespace getvariable "CSE_RADIAL_MENU"; +(_display displayCtrl 2315) ctrlSetTooltip _buttonName; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuOptions_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuOptions_gui.sqf new file mode 100644 index 0000000000..dc151cc954 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuOptions_gui.sqf @@ -0,0 +1,86 @@ +/** + * fn_setRadialMenuOptions_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + +private ["_display","_availableOptions","_buttonCtrl","_iconCtrl","_textCtrl","_entry","_textCtrl", "_entries", "_target", "_title", "_backgroundCtrl"]; + +_target = [_this, 0, ObjNull, [ObjNull]] call BIS_fnc_Param; +_entries = [_this, 1, [], [[]]] call BIS_fnc_Param; +CSE_interactionTarget = _target; + + +disableSerialization; +_display = uiNamespace getvariable "CSE_RADIAL_MENU"; +_availableOptions = [10, 11, 12, 13, 14, 15, 16, 17]; +{ + _buttonCtrl = _display displayCtrl _x; + _iconCtrl = _display displayCtrl (_x + 90); + _textCtrl = _display displayCtrl (_x + 190); + _backgroundCtrl = _display displayCtrl (_x + 790); + _buttonCtrl ctrlEnable true; + _entry = [_entries, _foreachIndex, DEFAULT_ENTRY,[[]],[4,5]] call BIS_fnc_Param; + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + _title = _entry select 4; + if (isnil "_title") then { + _title = _entry select 0; + }; + missionnamespace setvariable ["CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_"+ str _x, format["if (!([] call cse_fnc_isOpenSecondRing_GUI) && CSE_ALLOW_ON_MOUSE_OVER_OPEN_RADIALMENU) then {[player,CSE_interactionTarget, %1, '%3'] call %2; }; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetEventHandler ["ButtonClick", format["[player,CSE_interactionTarget, %1, '%3'] call %2; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetTooltip (_entry select 4); + _backgroundCtrl ctrlSetTextColor [0,0,0,0.66]; + _iconCtrl ctrlSetTextColor [1,1,1,0.66]; + _textCtrl ctrlSetTextColor [1,1,1,0.66]; + } else { + _buttonCtrl ctrlEnable false; + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + _iconCtrl ctrlSetTextColor [1,1,1,0.2]; + _textCtrl ctrlSetTextColor [1,1,1,0.2]; + _buttonCtrl ctrlSetTooltip ""; + _backgroundCtrl ctrlSetTextColor [0,0,0,0.66]; + + missionnamespace setvariable ["CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_"+ str _x, ""]; + }; + } else { + if (_entry select 3) then { + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + + _iconCtrl ctrlSetTextColor [1,1,1,0.66]; + _textCtrl ctrlSetTextColor [1,1,1,0.66]; + _title = _entry select 4; + if (isnil "_title") then { + _title = _entry select 0; + }; + missionnamespace setvariable ["CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_"+ str _x, format["if (!([] call cse_fnc_isOpenSecondRing_GUI) && CSE_ALLOW_ON_MOUSE_OVER_OPEN_RADIALMENU) then {[player,CSE_interactionTarget, %1, '%3'] call %2; }; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetEventHandler ["ButtonClick", format["[player,CSE_interactionTarget,%1 , '%3'] call %2; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetTooltip (_entry select 4); + _backgroundCtrl ctrlSetTextColor [0,0,0,0.66]; + } else { + _buttonCtrl ctrlEnable false; + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + _iconCtrl ctrlSetTextColor [1,1,1,0.2]; + _textCtrl ctrlSetTextColor [1,1,1,0.2]; + missionnamespace setvariable ["CSE_RADIAL_MENU_CODE_ON_MOUSE_IN_BUTTON_"+ str _x, ""]; + _buttonCtrl ctrlSetTooltip ""; + _backgroundCtrl ctrlSetTextColor [0,0,0,0.66]; + }; + }; + + _textCtrl ctrlCommit 0; + _iconCtrl ctrlCommit 0; + _backgroundCtrl ctrlCommit 0; + _buttonCtrl ctrlCommit 0; +}foreach _availableOptions; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuTargetName_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuTargetName_gui.sqf new file mode 100644 index 0000000000..9eb7cc903e --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuTargetName_gui.sqf @@ -0,0 +1,13 @@ +/** + * fn_setRadialMenuTargetName_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_menuName"]; +_menuName = [_this, 0, "",[""]] call BIS_fnc_Param; +ctrlSetText [2, _menuName]; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_setRadialOptionSelected_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_setRadialOptionSelected_gui.sqf new file mode 100644 index 0000000000..5cf550a48b --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_setRadialOptionSelected_gui.sqf @@ -0,0 +1,34 @@ +/** + * fn_setRadialOptionSelected_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +private ["_number","_selected","_display","_backgroundCtrl"]; +_number = [_this, 0, 10, [0]] call BIS_fnc_Param; +_selected = [_this, 1, false, [false]] call BIS_fnc_Param; + +if (_number > 9 && _number < 18 || _number == -1) then { + disableSerialization; + _display = uiNamespace getvariable "CSE_RADIAL_MENU"; + + for "_i" from 800 to 808 do { + _backgroundCtrl = _display displayCtrl _i; + _backgroundCtrl ctrlSetTextColor [ 0, 0, 0, 0.66]; + }; + CSE_SELECTED_RADIAL_OPTION_N_GUI = _number; + if (_number != -1) then { + _backgroundCtrl = _display displayCtrl (_number + 790); + if (_selected) then { + _backgroundCtrl ctrlSetTextColor [ 0.77, 0.5, 0.0, 0.66]; + } else { + _backgroundCtrl ctrlSetTextColor [ 0, 0, 0, 0.66]; + }; + _backgroundCtrl ctrlCommit 0; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/cse/gui/radialmenu/fn_setRadialSecondRing_gui.sqf b/TO_MERGE/cse/gui/radialmenu/fn_setRadialSecondRing_gui.sqf new file mode 100644 index 0000000000..64694cde61 --- /dev/null +++ b/TO_MERGE/cse/gui/radialmenu/fn_setRadialSecondRing_gui.sqf @@ -0,0 +1,180 @@ +/** + * fn_setRadialSecondRing_gui.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ + +#define DEFAULT_ENTRY ["","",{}, false, ""] + +#define ACTION_TOP 10 +#define ACTION_TOP_LEFT 11 +#define ACTION_TOP_RIGHT 12 +#define ACTION_CENTER_LEFT 13 +#define ACTION_CENTER_RIGHT 14 +#define ACTION_BOTTOM_LEFT 15 +#define ACTION_BOTTOM_RIGHT 16 +#define ACTION_BOTTOM 17 + +#define OPTION_BOTTOM_LEFT_ONE 300 +#define OPTION_BOTTOM_LEFT_TWO 301 +#define OPTION_BOTTOM_LEFT_THREE 302 +#define OPTION_TOP_LEFT_ONE 303 +#define OPTION_TOP_LEFT_TWO 304 +#define OPTION_TOP_LEFT_THREE 305 +#define OPTION_TOP_RIGHT_ONE 306 +#define OPTION_TOP_RIGHT_TWO 307 +#define OPTION_TOP_RIGHT_THREE 308 +#define OPTION_BOTTOM_RIGHT_ONE 309 +#define OPTION_BOTTOM_RIGHT_TWO 310 +#define OPTION_BOTTOM_RIGHT_THREE 311 + +private ["_entries","_fromInnerRing","_display","_entry","_actionFillOrder","_availableSpots","_availableOptionSpots","_buttonCtrl","_iconCtrl", "_textCtrl","_title"]; +_target = [_this, 0, ObjNull, [ObjNull]] call BIS_fnc_Param; +_entries = [_this, 1, [], [[]]] call BIS_fnc_Param; +_fromInnerRing = [_this, 2, ACTION_TOP, [0]] call BIS_fnc_Param; + +_availableOptionSpots = [OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE]; + +_bottomLeftCollection = [OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE]; +_topLeftCollection = [OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE]; +_bottomRightCollection = [OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE]; +_topRightCollection = [OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE]; + +_actionFillOrder = switch (_fromInnerRing) do { + case ACTION_TOP: { [ OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE , OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO , OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE]}; + + case ACTION_TOP_LEFT: {[OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE, OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO , OPTION_BOTTOM_LEFT_ONE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE ]}; + + case ACTION_TOP_RIGHT: { [OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE, OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO , OPTION_BOTTOM_LEFT_ONE ]}; + + case ACTION_CENTER_LEFT: {[OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO , OPTION_BOTTOM_LEFT_ONE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE]}; + + case ACTION_CENTER_RIGHT: {[OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_RIGHT_THREE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_ONE, OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE, OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_ONE]}; + + case ACTION_BOTTOM_LEFT: {[OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE]}; + + case ACTION_BOTTOM_RIGHT: {[OPTION_BOTTOM_RIGHT_THREE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_ONE, OPTION_TOP_RIGHT_THREE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_ONE, OPTION_TOP_LEFT_THREE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_ONE, OPTION_BOTTOM_LEFT_THREE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_ONE ] }; + + case ACTION_BOTTOM: {[OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE]}; + + default {[OPTION_BOTTOM_LEFT_ONE, OPTION_BOTTOM_LEFT_TWO, OPTION_BOTTOM_LEFT_THREE, OPTION_TOP_LEFT_ONE, OPTION_TOP_LEFT_TWO, OPTION_TOP_LEFT_THREE, OPTION_BOTTOM_RIGHT_ONE, OPTION_BOTTOM_RIGHT_TWO, OPTION_BOTTOM_RIGHT_THREE, OPTION_TOP_RIGHT_ONE, OPTION_TOP_RIGHT_TWO, OPTION_TOP_RIGHT_THREE]}; +}; + +_showBottomLeft = false; +_showTopLeft = false; +_showTopRight = false; +_showBottomRight = false; + +_determineShowBackGroundVariables = { + private ["_idc"]; + _idc = (_this select 0); + if (_idc in _bottomLeftCollection) then { + _showBottomLeft = true; + } else { + if (_idc in _topLeftCollection) then { + _showTopLeft = true; + } else { + if (_idc in _topRightCollection) then { + _showTopRight = true; + } else { + if (_idc in _bottomRightCollection) then { + _showBottomRight = true; + }; + }; + }; + }; +}; + + + + +disableSerialization; +_display = uiNamespace getvariable "CSE_RADIAL_MENU"; + +{ + _buttonCtrl = _display displayCtrl _x; + _iconCtrl = _display displayCtrl (_x + 50); + _textCtrl = _display displayCtrl (_x + 100); + _buttonCtrl ctrlEnable true; + _entry = [_entries, _foreachIndex, DEFAULT_ENTRY,[[]],[4,5]] call BIS_fnc_Param; + if (typeName (_entry select 3) == typeName {}) then { + if ([player, _target] call (_entry select 3)) then { + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + if (count _entry < 5) then { + _title = _entry select 0; + } else { + _title = _entry select 4; + }; + _buttonCtrl ctrlSetEventHandler ["ButtonClick", format["[player,CSE_interactionTarget,%1 , '%3'] call %2; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetTooltip _title; + + [_x] call _determineShowBackGroundVariables; + } else { + _buttonCtrl ctrlEnable false; + _iconCtrl ctrlSetText ""; + _textCtrl ctrlSetText ""; + _buttonCtrl ctrlSetTooltip ""; + }; + } else { + if (_entry select 3) then { + _textCtrl ctrlSetText (_entry select 0); + _iconCtrl ctrlSetText (_entry select 1); + + if (count _entry < 5) then { + _title = _entry select 0; + } else { + _title = _entry select 4; + }; + _buttonCtrl ctrlSetEventHandler ["ButtonClick", format["[player,CSE_interactionTarget,%1 , '%3'] call %2; true;",_x, _entry select 2, _title]]; + _buttonCtrl ctrlSetTooltip _title; + [_x] call _determineShowBackGroundVariables; + } else { + _buttonCtrl ctrlEnable false; + _iconCtrl ctrlSetText ""; + _textCtrl ctrlSetText ""; + _buttonCtrl ctrlSetTooltip ""; + }; + }; + + _textCtrl ctrlCommit 0; + _iconCtrl ctrlCommit 0; + _buttonCtrl ctrlCommit 0; +}foreach _actionFillOrder; + + +if (_showBottomLeft) then { + (_display displayCtrl 702) ctrlSetTextColor [0,0,0,0.66]; +} else { + (_display displayCtrl 702) ctrlSetTextColor [0,0,0,0.0]; +}; +(_display displayCtrl 702) ctrlCommit 0; + + +if (_showTopLeft) then { + (_display displayCtrl 700) ctrlSetTextColor [0,0,0,0.66]; +} else { + (_display displayCtrl 700) ctrlSetTextColor [0,0,0,0.0]; +}; +(_display displayCtrl 700) ctrlCommit 0; + + +if (_showTopRight) then { + (_display displayCtrl 701) ctrlSetTextColor [0,0,0,0.66]; +} else { + (_display displayCtrl 701) ctrlSetTextColor [0,0,0,0.0]; +}; +(_display displayCtrl 701) ctrlCommit 0; + + +if (_showBottomRight) then { + (_display displayCtrl 703) ctrlSetTextColor [0,0,0,0.66]; +} else { + (_display displayCtrl 703) ctrlSetTextColor [0,0,0,0.0]; +}; +(_display displayCtrl 703) ctrlCommit 0; + diff --git a/TO_MERGE/cse/gui/stringtable.xml b/TO_MERGE/cse/gui/stringtable.xml new file mode 100644 index 0000000000..9a22f46ff3 --- /dev/null +++ b/TO_MERGE/cse/gui/stringtable.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/TO_MERGE/cse/gui/weaponSelector/fn_onWeaponSelectorOpened_GUI.sqf b/TO_MERGE/cse/gui/weaponSelector/fn_onWeaponSelectorOpened_GUI.sqf new file mode 100644 index 0000000000..e7ad59a6ee --- /dev/null +++ b/TO_MERGE/cse/gui/weaponSelector/fn_onWeaponSelectorOpened_GUI.sqf @@ -0,0 +1,20 @@ +private ["_display", "_currentWeapon", "_primaryWeapon", "_secondairyWeapon", "_pistol"]; +_display = _this select 0; + +_currentWeapon = currentWeapon player; +_primaryWeapon = primaryWeapon player; +_secondairyWeapon = secondaryWeapon player; +_pistol = handgunWeapon player; + +// getText(configFile >> "CfgMagazines" >> "%1" >> "displayName"), getText(configFile >> "CfgMagazines" >> "%1" >> "picture"); + + +(_display displayCtrl 710) ctrlSetText (getText(configFile >> "CfgWeapons" >> _currentWeapon >> "picture")); + +(_display displayCtrl 100) ctrlSetText (getText(configFile >> "CfgWeapons" >> _currentWeapon >> "picture")); + +(_display displayCtrl 103) ctrlSetText (getText(configFile >> "CfgWeapons" >> _secondairyWeapon >> "picture")); + +(_display displayCtrl 104) ctrlSetText (getText(configFile >> "CfgWeapons" >> _pistol >> "picture")); + +// (_display displayCtrl 107) ctrlSetText (getText(configFile >> "CfgWeapons" >> _currentWeapon >> "picture")); \ No newline at end of file