From db6f30fcc9a6bb8f6ac57e8ecaccd91cb8dc8ff6 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Mon, 12 Jan 2015 23:23:51 +0100 Subject: [PATCH] Added cse_gui source Does not include the Icon pack. When using the UI it may throw up some missing .paa file errors. Replacements will need to be found if we want to use those. --- TO_MERGE/cse/gui/CfgFunctions.h | 61 ++ TO_MERGE/cse/gui/Combat_Space_Enhancement.h | 13 + TO_MERGE/cse/gui/GUI.h | 10 + TO_MERGE/cse/gui/config.cpp | 25 + TO_MERGE/cse/gui/data/background_gradient.paa | Bin 0 -> 39524 bytes TO_MERGE/cse/gui/data/buttonDisabled.paa | Bin 0 -> 1564 bytes .../cse/gui/data/buttonDisabled_gradient.paa | Bin 0 -> 1816 bytes TO_MERGE/cse/gui/data/buttonNormal.paa | Bin 0 -> 1564 bytes .../cse/gui/data/buttonNormal_gradient.paa | Bin 0 -> 1989 bytes .../cse/gui/data/buttonNormal_gradient2.paa | Bin 0 -> 2035 bytes .../cse/gui/data/buttonNormal_gradient3.paa | Bin 0 -> 2044 bytes .../gui/data/buttonNormal_gradient_top.paa | Bin 0 -> 1995 bytes .../gui/data/buttonNormal_gradient_top_w.paa | Bin 0 -> 1856 bytes .../cse/gui/functions/fn_addCatagoryEntry.sqf | 54 ++ .../cse/gui/functions/fn_gui_addCatagory.sqf | 76 ++ .../gui/functions/fn_gui_addCatagoryEntry.sqf | 0 .../cse/gui/functions/fn_gui_addMenuEntry.sqf | 47 ++ .../cse/gui/functions/fn_gui_blurScreen.sqf | 37 + .../fn_gui_createInteractionMenu.sqf | 19 + .../functions/fn_gui_displayEventHandler.sqf | 74 ++ .../cse/gui/functions/fn_gui_displayIcon.sqf | 70 ++ .../functions/fn_gui_displayInformation.sqf | 65 ++ .../gui/functions/fn_gui_displayMessage.sqf | 43 + .../fn_gui_displaySubMenuButtons.sqf | 104 +++ .../gui/functions/fn_gui_getMenuEntries.sqf | 45 + .../functions/fn_gui_hasOptionAvailable.sqf | 48 ++ .../functions/fn_gui_hideSubMenuButtons.sqf | 32 + .../fn_gui_hideSubSubMenuButtons.sqf | 32 + .../cse/gui/functions/fn_gui_keyPressed.sqf | 180 ++++ .../cse/gui/functions/fn_gui_loadingbar.sqf | 46 + .../functions/fn_gui_refreshLastSubMenu.sqf | 19 + .../gui/functions/fn_gui_sortMenuEntries.sqf | 23 + TO_MERGE/cse/gui/gui/RscTitles.h | 50 ++ TO_MERGE/cse/gui/gui/cseLogoPlain.hpp | 31 + TO_MERGE/cse/gui/gui/define.hpp | 797 ++++++++++++++++++ TO_MERGE/cse/gui/gui/dynamicMenu.h | 12 + TO_MERGE/cse/gui/gui/interactionMenu.hpp | 494 +++++++++++ .../cse/gui/gui/interactionMenu_white.hpp | 417 +++++++++ TO_MERGE/cse/gui/gui/radial.h | 648 ++++++++++++++ TO_MERGE/cse/gui/gui/weapon_selector.h | 195 +++++ TO_MERGE/cse/gui/init.sqf | 37 + TO_MERGE/cse/gui/init_action_ui.sqf | 63 ++ TO_MERGE/cse/gui/init_interaction_ui.sqf | 6 + .../data/radial_background_bottom_w.paa | Bin 0 -> 28033 bytes .../data/radial_background_bottomleft_w.paa | Bin 0 -> 28101 bytes .../data/radial_background_bottomright_w.paa | Bin 0 -> 28106 bytes .../data/radial_background_centerleft_w.paa | Bin 0 -> 27817 bytes .../data/radial_background_centerright_w.paa | Bin 0 -> 27979 bytes .../data/radial_background_top_w.paa | Bin 0 -> 27985 bytes .../data/radial_background_topleft_w.paa | Bin 0 -> 28170 bytes .../data/radial_background_topright_w.paa | Bin 0 -> 28149 bytes .../data/radial_center_background.paa | Bin 0 -> 29399 bytes .../data/radial_center_background_512.paa | Bin 0 -> 48214 bytes .../radial_center_background_full_512.paa | Bin 0 -> 33795 bytes .../data/radial_center_info_background.paa | Bin 0 -> 27106 bytes .../gui/radialmenu/data/radial_submenu.paa | Bin 0 -> 63905 bytes .../data/radial_submenu_bottomleft.paa | Bin 0 -> 36301 bytes .../data/radial_submenu_bottomright.paa | Bin 0 -> 36454 bytes .../data/radial_submenu_topleft.paa | Bin 0 -> 35630 bytes .../data/radial_submenu_topright.paa | Bin 0 -> 35912 bytes .../fn_addCategoryEntryRadialMenu_F.sqf | 26 + .../radialmenu/fn_addEntryToMenuSorter_f.sqf | 26 + .../fn_addEntryToRadialInteraction_f.sqf | 30 + ...n_addMultipleEntriesToRadialCategory_f.sqf | 25 + .../fn_categoryHasActionsAvailable_f.sqf | 34 + .../fn_closeRadialSecondRing_gui.sqf | 30 + .../fn_createCategoryRadialMenu_f.sqf | 40 + .../fn_createRadialInteraction_f.sqf | 30 + .../gui/radialmenu/fn_findTargetName_gui.sqf | 20 + .../radialmenu/fn_findTargetOfMenu_gui.sqf | 46 + .../fn_getAllCategoryEntriesRadialMenu_f.sqf | 15 + .../fn_getCurrentRadialTarget_gui.sqf | 23 + .../radialmenu/fn_getEntryToMenuSorter_f.sqf | 31 + TO_MERGE/cse/gui/radialmenu/fn_getIcon_f.sqf | 20 + .../fn_getRadialInteractionEntries_f.sqf | 16 + .../fn_hasEntriesRadialInteraction_f.sqf | 37 + .../radialmenu/fn_isOpenSecondRing_gui.sqf | 35 + .../fn_isRadialOptionSelected_gui.sqf | 18 + .../fn_openRadialInteractionMenu_f.sqf | 37 + .../gui/radialmenu/fn_openRadialMenu_gui.sqf | 22 + .../fn_openRadialSecondRing_gui.sqf | 41 + .../radialmenu/fn_openRadialSubMenu_gui.sqf | 20 + .../gui/radialmenu/fn_radialUsesSorter_f.sqf | 17 + .../fn_returnToPreviousSubMenu_gui.sqf | 29 + .../radialmenu/fn_setRadialMenuName_gui.sqf | 24 + .../fn_setRadialMenuOptions_gui.sqf | 86 ++ .../fn_setRadialMenuTargetName_gui.sqf | 13 + .../fn_setRadialOptionSelected_gui.sqf | 34 + .../radialmenu/fn_setRadialSecondRing_gui.sqf | 180 ++++ TO_MERGE/cse/gui/stringtable.xml | 7 + .../fn_onWeaponSelectorOpened_GUI.sqf | 20 + 91 files changed, 4905 insertions(+) create mode 100644 TO_MERGE/cse/gui/CfgFunctions.h create mode 100644 TO_MERGE/cse/gui/Combat_Space_Enhancement.h create mode 100644 TO_MERGE/cse/gui/GUI.h create mode 100644 TO_MERGE/cse/gui/config.cpp create mode 100644 TO_MERGE/cse/gui/data/background_gradient.paa create mode 100644 TO_MERGE/cse/gui/data/buttonDisabled.paa create mode 100644 TO_MERGE/cse/gui/data/buttonDisabled_gradient.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal_gradient.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal_gradient2.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal_gradient3.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal_gradient_top.paa create mode 100644 TO_MERGE/cse/gui/data/buttonNormal_gradient_top_w.paa create mode 100644 TO_MERGE/cse/gui/functions/fn_addCatagoryEntry.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_addCatagory.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_addCatagoryEntry.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_addMenuEntry.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_blurScreen.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_createInteractionMenu.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_displayEventHandler.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_displayIcon.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_displayInformation.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_displayMessage.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_displaySubMenuButtons.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_getMenuEntries.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_hasOptionAvailable.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_hideSubMenuButtons.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_hideSubSubMenuButtons.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_keyPressed.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_loadingbar.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_refreshLastSubMenu.sqf create mode 100644 TO_MERGE/cse/gui/functions/fn_gui_sortMenuEntries.sqf create mode 100644 TO_MERGE/cse/gui/gui/RscTitles.h create mode 100644 TO_MERGE/cse/gui/gui/cseLogoPlain.hpp create mode 100644 TO_MERGE/cse/gui/gui/define.hpp create mode 100644 TO_MERGE/cse/gui/gui/dynamicMenu.h create mode 100644 TO_MERGE/cse/gui/gui/interactionMenu.hpp create mode 100644 TO_MERGE/cse/gui/gui/interactionMenu_white.hpp create mode 100644 TO_MERGE/cse/gui/gui/radial.h create mode 100644 TO_MERGE/cse/gui/gui/weapon_selector.h create mode 100644 TO_MERGE/cse/gui/init.sqf create mode 100644 TO_MERGE/cse/gui/init_action_ui.sqf create mode 100644 TO_MERGE/cse/gui/init_interaction_ui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_bottom_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomleft_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_bottomright_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_centerleft_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_centerright_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_top_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_topleft_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_background_topright_w.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_center_background.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_center_background_512.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_center_background_full_512.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_center_info_background.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_submenu.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomleft.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_submenu_bottomright.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topleft.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/data/radial_submenu_topright.paa create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_addCategoryEntryRadialMenu_F.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_addEntryToMenuSorter_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_addEntryToRadialInteraction_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_addMultipleEntriesToRadialCategory_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_categoryHasActionsAvailable_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_closeRadialSecondRing_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_createCategoryRadialMenu_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_createRadialInteraction_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_findTargetName_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_findTargetOfMenu_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_getAllCategoryEntriesRadialMenu_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_getCurrentRadialTarget_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_getEntryToMenuSorter_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_getIcon_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_getRadialInteractionEntries_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_hasEntriesRadialInteraction_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_isOpenSecondRing_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_isRadialOptionSelected_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_openRadialInteractionMenu_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_openRadialMenu_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_openRadialSecondRing_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_openRadialSubMenu_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_radialUsesSorter_f.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_returnToPreviousSubMenu_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuName_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuOptions_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_setRadialMenuTargetName_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_setRadialOptionSelected_gui.sqf create mode 100644 TO_MERGE/cse/gui/radialmenu/fn_setRadialSecondRing_gui.sqf create mode 100644 TO_MERGE/cse/gui/stringtable.xml create mode 100644 TO_MERGE/cse/gui/weaponSelector/fn_onWeaponSelectorOpened_GUI.sqf 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 0000000000000000000000000000000000000000..0a56125f7a44bba7835ef83744c3dec92240ebad GIT binary patch literal 39524 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 literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/gui/data/buttonDisabled.paa b/TO_MERGE/cse/gui/data/buttonDisabled.paa new file mode 100644 index 0000000000000000000000000000000000000000..2c2a10856b22386ce5dccdda85c34006259f1086 GIT binary patch literal 1564 zcmWF)b$53Radr=LWMN=n@bvWj59UWW`hxiXfdIr0c60N00P+if_zg&cY%q;MfuWRz zfmw4Y6F&knAea!=r~qn+jE2W(c#P&3SQ;QbH!wDY{rT_BAi$u^I9m1~B_t+(w6Nr3 MTp;@YKcsjE0G`c5>Hq)$ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..43b1b8d100e67efb7e607cc0fdc3e83437268092 GIT binary patch literal 1816 zcmeH|KWI}y9LIn6yZ0w4iMhMHK4T~)EisZKNC+hqDUyFAz8KOV*@}e@x#NEK`~Kj5cYKcf-L1(= zCBIy(tmG8{sMTujU%i^Y*3+)ndirL$d_Cvs4R5?tJ#*~VgcuZ6ph+7;!wy5Y?~Mch z5;+Es+nV39la5KHPbtL}6RR0tz>h&`ghsOM_jeOfi!teZk#;r1tcz!zWYMXbputsE zX3i9W6qsa=L_BNY65HfHi!?YRGJ-j>9lp;WH^>@U=IE?pZQltq!yVV1T?3g_9J z-%yuDfkU09D8o9xC+cKDGzA1OOVjv_Baomw9KLkoA@0&VgU>B67KW1Izr?q(2kkGXhOuHB*a8lK<2HHJO3u%7=?JWWN>xk zz<@-59`pELJf7=a_X;q$K~AEQ#sqA)jtJ^F0}$RmV!}mvBpfS0QLx t{Ys{FsahW$c^NgxkcUvU+Zxyf#gQ0%XRx-+aK$alM4U< literal 0 HcmV?d00001 diff --git a/TO_MERGE/cse/gui/data/buttonNormal.paa b/TO_MERGE/cse/gui/data/buttonNormal.paa new file mode 100644 index 0000000000000000000000000000000000000000..84936d83562e20d2d7bc064e6487a87305e0e4f8 GIT binary patch literal 1564 zcmWF)b$53Radr=LWMN=nU}R+c59UWW`hxiXfdIr0c60N00P+if_zg&cY%q;MfuWRz zftjI!i5~$O5KIVbQ~)(ZM#Ez?JVx^iEDeyJ8yFcDeEaXsAi$u^I9m1~B_t+(w6Nr3 MWLWX{KcsjE04MuGD*ylh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2210f987411ee2a407ba63733091384a6fb00e35 GIT binary patch literal 1989 zcmdT_&ubGw6n^i`>}H#8eh^j&A%;x|A%qxmh@liI-2~c*5iQ10LMW01ky1oTD5XdV zW(tceWsx8rJv350dF)9HfMs1s%Rgz@S6EqX&-6k##14 zoqg<%uDQg!h@x`jT$ZvVP^8AfZX~)Q<)jrU`sF??U2l4Fcy+05DM}( z&Ok(-$1)Y5%6J9aPzb{(o~0I6I6Q#_JY$7J%7?~5p3Z4N9-Au?1Uv~(bAlQvL`y-= z0$k-GjAI%)ZmKdbOOTE#3!t^p2tYAI3z(6UXqD2miYgR!%s{aNum*mR(ZT?}hAgzX z9>(X8r8+FJ#v-l*HdDAjRmjsizCsge2b&?j;y~mm!$NpYlSIB_#BPq(b$70-QEPYZ zqfMZqEdso2mm@4sb}K>&Y^kWEX$s=dN;!L8CND~&1fmAhSaMR@f)Zg8?_pPAZ4i?n ziA63R;tE6{NEIpf7++$yPAz*16AWrtpc<{AO&ZCp0-)12EWswz@CCeQkHEi)%b2DP zi3ze%_Ct*P{GbAd-(x!dpTL_V9g5Po2U~W(*SAIQ(uM*XJ0(s_hs zm{V41B~CIAvph?V=RN;at|wLdKDg#=kusim_6LV*6<1V@RG-Xyi+pa$Io8~AOqNV7 zHJ(Fb5(;q)Qwk#ijEaJJTCCFEkDj9Dd8MW`44=%TGn!_<_Xww4f4SvO ZgP=MCJpJCmus=_!xITRSF&N#$KLJ6wth)dJ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cabe6c7feda6907aca65b3aad4ee27ce6c91f491 GIT binary patch literal 2035 zcmd5-L1^1%6n^jhzkVyR9C@A=jOV$w2__g}JTRflN{Qr=1lBRud07adnAnUG(rz>% zgfdE&sNfAzL@;6Ov_dk%PCM=}#&#P$-uHj+ zz3+eif9a#wW@e05b7s!q0AQNt(Xl^oyyy8x?&bL(PEWr-<@%qwzb)b3{`a*DMMw%@ zZ~aATI3P5AE9*VP5N!HxY(4@gOus;C1Q-zFF{XUnzZbQ{msUYmIC3teI$1+l9m)?Q z(Iu%NtxLa_ZqhBB7i(mZ1(KCx#U6ZuGG0mSyva&dG}qwLzN`USJm@6ElXX6W)POU% ziXZKBUd-4LLuE~+5kph8RPQIjWyvyn#v&MR_sSZSdqxH;{2hgDFmsXGl8xn@fQx8~ z1Du9}n8zz*f;`7sxCUk(9`ZVMvEAZ3P=T-MoBL+(`Pzb&#Q=ptu%>_$SN>u~*qQS> z7|j!_lJ+9?3t4Ou6qD)H$7Zi%(oz*|8G*A5S9lJ`P={ffW9<=Ep&}|QgZ5GeO3fNw z!r! z3hHEChB4??-SaPK1TC5cD-TmR>o&CugnQ$79k*q+2G%54w9Ku~aUBYfrIz#+=Dx@6 zMd~`2vBDM*Oj@AZ=#WN&wV+6F04s2hY4{!d#JfcA!B|FFYPSLq)(Lby#8xkIxnL%p>cs?>YPZ{ZAdM ze^-XPea`OhD=deU7ze8edr;&BR$~p)A1?aDy-JhVWoOrVF?C4$hymS%NKOSCv5X`g#qmSMv;8bQ(4{*>Mc=!4LLaG}> zY5*wA=xge*C=01qO*YWjngnwU^Hg<@=yJ(K_oWpbZnYrPhuv%;z?03Ert+k%u_Ybt z5hiq_V~6n@zIpY*>fxxbBb@6b?A60CRo$Q2l`O}zPOZ{o#Q;}GICfL}*biOLDv-K* Y`1H|}lIQ#qnM*x=^yiI#kNmIpe=FM30RR91 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7da9fbcf8a7bea39e3108f236c4322101bac95a2 GIT binary patch literal 2044 zcmd5--)kF35dLO%Z*`VWKM>atgb-)d2qA=!gD}PoMkf_J(3Fx^5ymwk$fAT0LI}nL zQ-Z12pq3+CgIv-+g%XtzD3p>wDQ#)rO5d6XKjfci9|C=8QCD$Qx#U4$3dtUKyK}qq z%{Q|%yXRk7S@D~Vm6k67%+1XWp2@5Jn?reE+E9LHdHJoHk*}HeGi5%uNV^DcPDz}r!xe1Q@Zo-Xqzf;n-wBPmD;lI|+ zxyW_>6y@dXj<_M}>wM7)D3?}Ppt`zG%gCx#I?Hv~EzzV+)H8S@E8HP8jimt46~oBsRknz%f~hrxXnchY?2}+9hs(CLJ3iBiMYtKM~+C*bkI(rQRWL&Rt5Sv zDDe$)(D0~?26nKGBoqadq90H}ZBu6GE-Ji^E24dw_$D@rbb(u#=bQ8u$u50E8)>;^ zAgWvzNYl}*dWrMu?uh5pbGt5gzJ7WxWH=P+l-&I^%!+vqJ6Xnj0tJj0aJl4(XK5vp`(k?m!*E6wvfe1zSOinq6f6Q&Yf_HkQZxI=QZA@ zkX=>+O?Z4CS8z+X^aXwv-Uqlv*Nwp))(adGR5Hg&IpX>f$8&Px?u@-Kr=r~-g!jUJ zuOI4ndwVwadQ$WqQ7{P<6br4i66;Q!g$ZEL6oRNo)V{qk`E+yF`oB;{8*+MB6m@ z^^d_Drku_b#Fvkb(tdU^#A$Rf{5YPA(~O=RN^hhPwahUXRsEc@y2a@#`HQIkK1&&M z3Zx8Dy*nAJHo`J}tl=ge$mzfp?GgoXYlDI#vnDi?;hZ6i4o7N}6)ujJa;)Eb&O)5T UZ{PpBV#FX$-~Rd6;PCqX8=e`$(*OVf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..904e1a62f7a1cf7e03644d5a965fbe3b177b23b4 GIT binary patch literal 1995 zcmd5--Afxm5TBXdyPWaz!Epr%A)G;u5JK=lg4iOtOHrYg);0}dMZ|<6B2pxXNRiO2 zkd{NPBBgzkVu}cbQV{x3O8Zv&C$#@W9|WIDdeMdi`Vh!Nb(g)}*}3`62Q#w|u1!u_ z`P^i|;s9WpX5*ZmwQe`*hBun@{fUV?S&x3~tu@*E^gLdI0cR4hd*3P4p3pvCoCcbk z;)BWs`47K`i)>qmUov#xGZ9l%j-1QVFo`})_C@_jbVC}EHl(kEYqXBDa+w4P*bxzC z)Zh^+IPC)_2HQ{+>cNyt64?twTn|yu(nETn_DSZ7B&?b>57zZsT!(ng($M5LRkq3O zd0Lblj7MY`MO!|?35dzFI88Pv1(wG$*irbwhpB{+=X+qnD`x+7>yo_dLG2s4FGrvS z%s_FJmMDpif}Ckwg9>ax z7-V!%!_P1b*)osf0SwbTtg@vQq-`iBae)eup>2GRyoMjK7~vZp#0aGsM6fffu5ex* zwCp^csp?eva601>sOSofS6{m^mLazkBNIzu6;m`0Lr_Y3RWFl2h++!F9At6I3#nTI z!UQg3Rbgci{xJ|MTs*-Ih`|6Y=cVU(jMaH6x#I{Xn?sxCXbWA^NoJ4-gN|SocA1WE z;Ttoa!Y;0R3M(W=$wiREaSHR6tyegn-4nOc_QLCmO1z rltL#c718P7dJj~0IJF5Q+?H5(fyLIZ6sYfa*P!_Ne*SJ;yvBb36MwL| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..23dd190afc5bab9aecf46185e74c365abbfd22fb GIT binary patch literal 1856 zcmeHIL1+^}6#f6tB)gR~nVH?hZK$;kwMr;aODUd0616E6QPc*hl0y;6!9(yAq?97+ zp@$xehth+G;?Yyd!7S2?AmT|pxr<0I;>S)!M;#^Vi$B6<8bJ9v{Dv3ve~)??b`x*R}-xa5Dt#)(47p8g$%U z&uUM)*6?=WAM3}&LB)B+!uEYz2gi4P`<~|} z&}%4YM1WrsI@n=MLqQ3$h?~qJw;wn>ARSExIULkxD9Hs~;4h6TLIyb%@G(5YMa;5~ zJ@5vy+8TU~eLA(>vl(wDU^cYQ_45(A!E|^>y#mHW0*R$qANIluSXelrxwHLck>h}EU7_VJyk!9VSPzW@TT$21nbOb zDyn`OR%-fUl$|@>+4B4K920wL9&+RUdx2Qf+HPF~0gn)v^?kn_J5@A_|FnwE?+-}b z?p2@A31fsQ^aQ>(iL)Va(qL!E+04)g1SqHyo^#f-{Ygw}u7D&w_bs%ip+*%Ph6a_v eUZ5;0mS$u43ZcRdM2Q`3Qd3hWqpjBN7x)YODXS;| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5142a62573170713b7aced464b6c53f290eabf8d GIT binary patch literal 28033 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bcc441512b531915f7c4e7193b811642ae214f41 GIT binary patch literal 28101 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 Un8~2Q(weUXLE&dGcw)c*1w(F;X#fBK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bd7746a142af83a3268d5b0edde9f12866f4b287 GIT binary patch literal 28106 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f1695ce4dafab5a0967fa91454acdcf2531df6f2 GIT binary patch literal 27985 zcmeG_349Y(`rn(Q2faeu(3Vm%>6IQJuxgbxX%nsOyci_q9DlSQEa84Pz7{psRc@t%>R3nrl9}z2doOHdB5K@^Ub{D zd*A)NnK$L7QKJmGH;x)--~hnsbcV|C1Va{uB`g#kWf(J(!UPWr-!^h&wjR&R@VKro z!0rfu#_<3xGXPre2KeS4fNN&r&GVNEVAd)i6a=g~3=bay#;SN@6(>mmq9`hZ(`_@G zY=67fP6!Vp?<^%j!|)V9_O(Mo59gNfIAa`&&7&}Y-yEHEH`_Cqkgd`Wa zYUdywV>9`ZjG`dDi}*eg;@iYnYuMaim|`wfEmOE+hTm37VuGC{Wx0k)uO+#9I*Z?# zL+KC0K+u@{-Dw4b>UI*aTXsu3{9SvulMuG~K7VVw$;rdlfyU3DvO*qth~Xe~B|I4~ ztpGD2zu&p5F+~eZb=$5_Tazh`I!V9WU>c{1?4&XG$|+9+MXDdMX(&rEUwW z+?Z_U`0!59&#|1za1j0&Z`^aHe*mIBnaUUD5|g@At*%14S#Nb-+uw3sHlwK} zCKE*$U}Mcd-}o9`r2TCo@?7lXI@`(wi%tofEo|N0!HHTOr})Y?MIXI%$-8`>FB|)D z*)?f9lI&4r(y_9qQtShnH=Pq&4&jMVYaS?6YJqeEqetw>qaBCaQY4?7k20xRHJ9py z?f!$G*3_zfx2dHOhfc1ZOL8X@_EB}+h_C@SC)SMUxBQlh&gNSLiWOw)RNV5{Lc>~K zBdlR^SK5krM;=iU*pbgV9++tF%Hz3VAKJ*B_jD|IlbGw7ac?&HGfCP==G8Vuha`a6 zF;K|QfG>bWk`n9gsJ0ZlA2*^c%sMu^TcZUo@(bHwGWb-SU5MSU4zR@53f4KU9CmQN zxON$_5|Wz>%<_p93C$B_guZncctw$IX0&Zaob`D>o+nXXr@_prdmWC~$o0*U@2A$~ zeKgEB)!EM}>~Q1>P>=y_XDq2^fqDB>e0v5Ggp272H_ggEfur*SKCtN;Ryq`kb|FD4 zB-B1C=E}o-;ZX5Uz}7`(jZWfHeOn*dhARfAsLp_5e~vN!0c6; zF`qBLL*F9^K8}@q9Xzloa_iIfC98P`o^HSKAKMo?u<7H7l{2C&@N32V;S%Ws_iJi0 zdRqCyN}i}~g;UdtSo4b$Bp*KYtM}J9{;;4E+dWXL+J1aG=}@6uegOyOC(hZVd6M7_ zEWY-PbO7Fe>4e};pW;FL|4BZLonF?pP=GVqI$>-&=uUCZlNs5a!Pq!pSb0zr8ia5? z<8GZ;e}K;i<07lky1C>ZM6K2HGus?>(zcLRtT3@w)pll(J%jWA;&|I8b#r`awO+5F zqe52wh`wpJS8h%=ui({R76x~YD;}y~AkqK|Y-$U9KAp?MW8HO)a8aL|jDwZsJ z##I1)nQJSHlC=eVh;72GVOt7c+PHxbB00@~wNmkV+DDd?5gE?yE)p;VFJZaWO=EWM zBZZHpO~0cb7}zm;yLLLZAuX;UhQmuq5)wDEb!A?|lB~wpiNZ~z1<-&dl_~h_4W(MI z=bb*9w%}n)#$%sRCvy;@@=?-uzpj@b&YEi(px;nWEu`g;Jvx9(X3zRyaScC|U^yAEl)0*XDnu zGE9Ijhl-sKJ}V#)iO2P+UYfP9A}G3Jw04nnxpby@wG3^yhK z_2mceje2MFYLvzLQtmC7yB25V6y5wE|v8vb#dd0^28qq`L?SP_UG`08eUL(El4k6Kluj|jZ*VXpvB1HdA4bzE(Ru_B=+LqvE^?Nt#| z(NZPY5A@e>V#l4?Ue{U}33Enl%4zD$WLQpWv?JNDI~PrA+%OO+g&hEVOot@UM_qT| zA>(pvNtB}c>P+;sF6%>F2NIZ1>E22on zcqK6qJ@C?EMh^oOXh^TGQ7w!D43cDzzz4h%mDdoiZKN$fuP+q<{zxDtimfOzK05#^ zs40*J#uW5fqqt4D&K14k+Y!VP8qu)ofxLr6GX9QeYT!?|LDiEOoaLVgA@PI#H4b3M zej!!I$0w!3sHQ>baLd6#I=Dk^nSZD#AW6r}$$`a5r9`@KSx~c+yl4qC2EV4@3=cCx ziuNY1Up;!9A-_jmiHG|)^((LK@i{PBHi+t)zf>lgm-e*-BZh2NOiePcQ0w&DZU?qf zQ#$aqGbN|aXlnmFa?c2I*9{soa2*N2t$VdvV~$~WGf;1nlF*g zoIxv4uOydqPX7*|#u&O`h8PLW^)voojduXzYHCPg zO^pHX-Kxz9D_`l~uWY5e;z-BAd}o#5ublr>7$E_X!uKMfTwWxiA0TrXFgqZSCv@5x^YJ1zB zGY{`+4|V=4m;ZO_V3ZR?6G0AhK{*k`2v%?p1wYJ*5b9D2;*Fv4Qh_Mu{9pq$W@qR@ zs^SyUU(PwF-FZ^ zr$oz6%YyoOeGLmjBMb}9%B+4tVo5<29=&qf=u-JtChGJ(jZm)3J{We+bhHO!Ys!Sg znlghxJH^s!)@y3YxP+Rr9yI~j=TK?vWl<$vVj#zEJ=Qqy%X`_jGeX}4cXmGh<*||VoB~`3zj9Af+2LwvPT>0lJ!6Y zfY}ZOKj3&;(a>?T+KSi-4`R~t=aquh9xPyvd8^^t|HfCRSOyj+T znDlaHI>iyfr@nP^R-EmwJFFIl=atglxvWBf{*Dk_zPaT9rnGg^DNLG}t7oqZYVzZ% zExEZ=y|E<|gt_o$zZZ&FIU82}+gT^QSL_lX340Cg%xK>}#JcZEie!;pm7&e%_KlnM z?UusShgb&rCt=0lbfHepnx$^cV!39xe|`Me6U$yP$;wq>H}QP29C$}hV|lf9D4)~W z)gpD%wAl~G7`j{P^pza-%?zt&VKmwvOG2(})C%oG(zT#2xxLaUD)U5MVpNsPx=O{r zc_OqqLr%Y;!Qnz)8sgYjo)uSu2`C~1<@OM4#D9gEui5y_<|0;o!%%*^bld!_ig@8m z953A=b>dkc_oPU+Qgz%Xn5k4?q$4juTGVJjsW=)ByTi8)*8ha$RB)dyv z&Sv}mb=}~mwRWfa{%ir(nX_xVD}~x_%n(}AxzJg$rKTxOi6th9vok}%M?r*l5zU}I zmbQ?E=1m)s^y}@a=90Q@QK=Lp#44cSXow5BApEP;WN)8FIy80_dx)kHS@F7JJ!WXy z;^mgnRm~Qm%luTLR?h|O+fw*S+Vn)%3jW>L64MyrAJ|RsUa4!8rG2}T@F{k5@z0yH zOGwT-oM^_Gys0g=S_Ftoj|khU zzIyk`!sp{_XA`2unDhyXDsZ%;5eG#Ps~HfIM~E_|tS|*FNuOt?P6dsbaH5#dxFh6m zxGLofV)&O*OGf{@SVtJ=Q@tpwaeYvo(_{+A*-?E*DUV!)(ZO_ z^eQc_a#ug{RCb;%hHSUf?8n?ANtlGz)juZyWR!$w%J*>$m;PG3A{QK20k2eiYOLr7 zjgf#5-dU;zt0fXrVQ6&2O@{re<@jQiBRtYakC*+S0PAel4vpl>?q1$xtcoFJV&rKk z!>fDK75-I`0cDZR<&j(K*WeZ4bqcPf+`ud2ON7w_NqsJ&^j7^R^cF72Xdw~={YrrX zST2wZQJAFACHXP{J#8iz0sqofd^aSUsw)FdlQBx_S>-1_d(d+}vc=(sF~9iOHuJ_E zZp=jj&~Lk~p_PI-6Mt+fOfz-JpnL^jURA+~bK&Aj|Mqj?m?*AwCt(d)@e8vOJJ__LxRDOl!D{fIqaG9*~N@7rp>`1nw$W z;Aky&_E3&^DCnW(WrtnBP@a15A?tTKKB;rmyYbTN={;HmJUn&0@P*T(?}7V@kEazr zN9jp;p1Q%HZ7WtkD0x4Esfr~7E)5nlJK+hAJ+~GAQ0nG_elIOTtVouPq>Ki ztJQZpTTv-ydiZ_0<(uN86qkt19$Yy&aOvX1xKp?`vpQy<%za#Mx>D%zbMu4FH%AcuT2VBBmU}`0&iJ1`jUb`z0yES|Iyp#4C5*$C9c~kG)1%?9(i@B;wQD z9=Q+)(FgRq{@{W6L2Z_{y>AA(^&RwObZ)c=czDL}!dDJG=ud zU+MB3-9qyV<-=6hXvz62zVZ1J@>jq9(e7+Z^<6e^#FXm;1{$073+T~ewX6?L+B}&n;(~Yd`jQUCCXm@_t3ld{l80%k9WMwWB=Xn ze^$!xf96a}SmK5&+?%g2!TZ0^Q@s4YJp8{<`g`s1mCYZo{&@N0ji0HNau=^Yc=f@n z4_{QT8=bT9em^|s$R5E5-)zQ;5*y$7ruAo zJKOFf&xAQvyQ|Cf1CH3T8Z6)X%Keqm9^6I1A5Wk3%9R2K9sAF5=g3(&M?{JcfA_4< z;(D<#ylQC=2x*hIzw0mIwj-I|;*#ENU+!i1^FM|OYOu|^!8W6Jo1XL)<<5m~%USR> z;2b>}YSa2zdOQ{HOEH$;ll@$D&2R<6_49Beus~DdM17$3p3Y;}`rH z15KmUj-L^bKO=#k>Coe_auM+F#f*QY)SrF$zF9Z+Y`Y;rnPTWZOKfBBHXKnL`1RIe z&wcqtdTD8v=f25wxudDQb@Z7IKeI$)3&T{N_nxy=D8oP1yU7oMMz(i4;`>Y@RuCF{_{oJ!=X9E>A738rHRI>2-(dxqhIZf6UUpkz?nDp#{r0ka{tD6_1zidxo>{^x zvY1bqnDF)Fsje->r>K(Se~<}Mo;u>#8DjpF!WXg{Wq_?cW&zE{BvFjLsk~QBOcz16 zckt_{_`UXCwp1XtqWHtnLV1+^$?B5F4J?nk0!0!)d9Odc((pFgW2qU3zv zq<5N`Gv_sD&YXMahLwg5v)Tp^8*7y#ghWw{^47;&N6@+iK`X( zgX;n)`y&y0rZYk-#v}CnOoU1wMCi5I2z?FZKY&8S{2>xWA>wb_h`#S7^z6i-jFq~K zm2yc!$Zof*M?3M(yy!Jp9gf(LA!W1cHYe1SVq0crV3^lj8oSfo>W&iJAuUWsNkyMw zSdykPAqbfc?5h@9B}u^S3G7JJuaym$hXeioyGbL{iRPGO$;@`VPg`L&$kU5)D2q|2 zMg_XR>xYeb7*Awn(vUya;;4z}s9UP-QXHx`BMJ2~B6g-{sj%15G|z*RGqO5vOsFf5 zu-O90$GS9@5-~rHKc`Tmux$o3v+K4sZg!$f-rv3Ncg-0dy<|S)9={O}aA?ec?6~MW zUm>|IKxy>ecSh7CbldePwsGweG~{XGOWY;$BX0K7i5Ls-f7K};tMSAOviSEO7#TzK zj_$awwWXBAJ2Vyx@*t)sptT(CD^%}2zhEAISPG2|5T`S7^Yg`>FDCPALNHPsD@b`O z_kf@m67bVa1e0Dy4e1V@UuzxJ5DZt_t6Bnh+%kP|=pN|iQ z%b1e-1v5J2VU}~tQZK3oHty*mnDKF;S|UcHg=kFZQks!tqxY>7w{AF}*`|immo#k0 z`^#p>mrYA67DLo5PC8?dKYQOcy|4!VMate5A=8n^92(LID7yEmvdQLbehMfGnO+uA zw>Y8J&y&m5fP0qL^OfcMHLD{sx*|Oe) z)1T408n(m?TGXb_VS_kb&KfbPSY+%hD-l8DKgRX$>Z1gu@tQtH#9WXvik?X2x3O2z zS4rmQWtVjo4IEQV*61pk1yrkwbL0Jxq*@VP2$6B^I<#}0C zW%%DjoKQS4#ns>+`=qNOrlhK*TP#=1UhTN^#RXTUb`V5db@kLk_!h(Tzp0Yq3hJ1m3)vrm z3|{0lea)x^spQDYcC1-f)CsIvz&-(ff)K0zpln+1l3D364=_eko3kq#_mmR!hF5#c zj4R5fd8vGZJZxFvh?*x8+PHqzn4KtAz|9dVe--Dyn zgMVus{c6{(@k>|7FB-^3e!$Bm+v^QDh7fexp;75U3H?vJE_70=aAB1!KH8d7r$$;I zl4)iRTceRVt{_jIvM+Y=eRxo*~Og|P*K zA}02DrXgt;6Z__ehd&!22Fs%SJq0 zmb1_>vqv{%l(E=!WqcAr^+GurWk!=4yP_#7%xJqgyK*n-+KleEu7>CsJXxMBlq=LN z%;Rxm&Q0wgZuqkEp~?vaJp`Vr1~F?pGnHC-+~GeTu3C3K$?>{R+L>DrQ;af-`D9Zm z=8$aunT86_ZWTIS(49Cf$elPol3S$0i>pHZP?l)q;;XRTM`|2(+q@@*wSyH}yE+HRdJ5)ZDUJX|dd7 zxuZ3^ym2?U2{enh(50;Nm+Oicx?2FvD2J1DGNXUEmyS`vB#)_fUVTb=FigO5`H)SM>NZFC zB%rQDk(J$<;^L*Nu=mF0+7T%Fjma2rJ~> zQPpc1MPe6J7rLbc+q~2~!ruwnpa%bwrxMvnkhEqJ=#VCj@mua(Olu;;(eme<) z)n++^I=Qs{h@Q_0vD-VGXtfyj&Ek$!VJ^|bjbQXDXt!VANzNoKyU%Nb47|P2Wx@IBPjZzF-u?6@jDcl)qgFOO1Zgl zTjQhyV-Qn>!RI?HJ$Q{gZlAM7weD^pG!v(9%BfR4SSrTYt)Ps1Dl`}k*NexzgUlC> zc?HtlWSEj7+@W1a>=Apk>BNw1F2rp375Q=LsL-|J%%h*Me|2jsh`4-{=fGtt8o!)E zQ0H>ZQO|TNg#a6<*4biPmx({Y@=V-+)9h^q9bdxOh77R*Q4|&n`DCLEsVf=rQ+DDW zrt?ZwZZ2@eD&zwXYAbRK)8p$8Dp+YU_|}-B7d^Fyo2TLBD#Tb{ZUPN^^1FYLC2rVP zC15O1Su{JvoRUe`@jp2<+VZ7Qx`e9!_AZtE;Xi2qdxX(WGfauEKcsEpSiADVgNe@> zrY1Xxf@Qn6wjLF7JL<)k-ivzV^F7K&vP00YbI(cc8Oo-u0%oF|FPQ3JN%UgkW8lxn zGSm}g=!MU{*s4)+QAI{cvat~2jp1MJtZ3XfGsR++OOK5Mx<~3w376*~vNXSN-g&L% zh_fXcaP~Z;y}L#&GjW_vYs#|fOa4W?N&KePO>{ zeZq5je0}dc^3}tkD#lQ*dH?iud{G0wDB}3~qN-Jib|rBWd`_kRUZ{`;%WX4~mZy`_{%SQKaNo(WEif{N=-&{_tu zoTHrQnuY5u>5a#(1I;sWL>FCHor0Y8oY0O2i|Lj_@0-) zM<|*ZH@r~IjBAVMzd?`Mx|%?-wvFv&56o3to?3*|TNkKVpBXNzTo7qp78Pe*Hrj8O z$ipp5$;(~|rESL4cr;-}DJIU}2_a9xN9paG)kfp7L{|YxaTT-==-~9O0(r8lKpmi= zR?z7Af-ZTj_HdbOIHSWWkpsid-pU4AfD)2Tge14?;*hbb?aOP%`}a#&b(4gGWb-0h zTauuWKX(0o$OpH;6j_Z>BoMO*;Y|w2s8k^`0!bWdW5I~XIS92n=pi3cHalsmOa_?} zjJsrEnuqXj(qGC~;=cI{b9#6dDi4Iq@L<(80dfW`BvR5YZvRIkBu37Jus#0uPD0IU zaVrFP7;$ujLWhzK^=D!Dg&}rz#AmQS-`=CK7*AZtNMVm3!l~zwbS1Jl1U9iBbb#ej z^(RRPkuF23puA(DuD&BhlWQi-nygmC)HME&3Kn%aWtg7+Vd)dB)A2!b^~Tl#4kbj3 z@`I50D245a0NbBqbWf2`J0IJ$9HA)g;+3A(_>aTgctY7TCv|)uIYx0GkB7}vSBH{@ zmVI+x? zBi@kByBU^M>(1xrl?!@P#3k~akG?ao*M0@O5{UM`*3Bd8o?Jr{9ks59m?V$+FX6m9 zgk|sev}{JNvCBMy8#j7dO36ZFUz*)u27TFA*qu0>*l>^k>Ic1eho&U2NS7j*+1MRr z(-t>RIa!>?R1)XsYmg8P- z=89NK-h(KPN}im3LEO4ri0*kt4uh1qH1QGcZJ{XHXn{bY^Kr$wlV9%D^Usl^z>ygZ zzC=f09@|KhHZ{=U1tXD1R+r6qQ!!WP=sPsOULY>Wj}Q}bhYCH-NOMg4NTyz>*5zeV zqb$tNROBW(`X(9cL)B_XP;}EmxKGGwumjjE+;L8Oajo-GsRt`y+l8EtWAczwut6ES zyhOybiOT@8S-EoM-4?(oda_q+C#Z?<;7fUoSp+0>Igy(|{Q|ik2(P0qb*dv>EE7J{A z>t10oYnM7sKzk=Gl8X(g4pYUg1@s=2-l~~$=wlxkBMYNdHRf|>DUd?vn=VK8xm?ZAIYOzp*#7>1l1T-Fzs*z$|y?V z)5lw7_K**A=gbrq4_c!6Tw9TznJe=wmYy01JFpJ0-5AM+zVB?RE*(*`nhF|tIR?f( z*Mx9yr;0~+>hlL794?a&Jl5K`*)W}dau6f+oPcDiF?yHsN*d4>a|$A0XVdQO5nP|1 zu94nVdMcHN8O8r0)sZ{#NhbYYyXU5*^67ZcCmRw{OcpS+fez5T4;sP6-l)r0jc6M7 zE~j~jkcAEv4H@$bvI)x1i}9|hZbA30(Huq;S(R59JIG=8?rrLY2i7=YX^aw-@l`hK zk@eo#<0UZ$t61)<&ggwaBjp%lKgch=T~e2^GNG{4?#2FzSrxXjv#bF1;`?bUd(n|T zHL2uB7g@pg%QU(B7^_A$!VZSAGa_3Rt2Yf`tGOxCq+g zFV7wsi!b{1>DSIi?JAr7W<#mh)2K1%cuzG|s~4!Q?>G3T_mN%}k@{(+sE^bOayXzrL&M)x&ESiM1QV z4{5v1%yx%BuE9a^1?xYL{dfE;YXPEh^W)ht?Ew7rySn*!C#_4Iqa@8eHd#1QF9 zMF3w%@1D2NmkP26{Q;FR1p*}?qo1-q>KvWl(~_v(V2_78xMAxJNs7SO*VE_s{=OA4 zl%D|p^mjKW)IBABM)AP&C7JX)3Is}^O|X9Bh`tyNQ-gZ#9`Z&#I_$2*9{Q39R zzt@Yj>o&eYDeQHMSrkwEYH;KDrM5$XKndEDBqcT*W?cl8Q+Z>|fJ~@#+GTUI>+3yI zQ^hs$q5Kd$^t2_RhSCAyVbCA=)boSwmpNIMGr=&^8^6&U-s7I?qtZ|5-+!b%b+}kc zGn@yg{;vrSe=z@k@qMfR=x4$ILH_=`z9;a-ufbnLA2G~5p~#J=^28XcCvBr#E%$qT z%A-#L0bXx*z1P<;va@+>VEnM{&K0#AXM6XDh_l&$?fSXd{3+IMhs3#0z8EF|`b_HE zh!lQ1VC{-?pb1f#9?*y6p%kjx=E9G)k0(XxVhE(WC5g^J#HmUa(YtA0eP`Q%9zPKH z8=!&y>t@#vxu}0o-!k;vEdH6U^u~%$AMoUqeT*<`&SHNZVYR*Mm!K86|KPU+y#FfI z(s%ol-Y~x_oagrjbQx8$DI$PB(>C@OBVTF{qv?F{!_CsitvVjnzZ&Eb_Rjb@69V=D z2GjMZv{%?Z%jdtrV8Y*33bmke+MdhI4CecS_T!bn?LL2k{Qtb`drX3r= z5VVJ&Jp^`l!TAvM2SI-j^anwIKw|?61WM2zZk#>%^6$a?F10NR1j_AfUtW8-h4R1t z`$MCtZYU5ax3hkN{0H?PwEr8o{{7tZiE?7I-+Rm6&!F_d?S4l zZTk=UrviWQ5+5Ib2U*o;Wz){@@)5uX=;K$-E?I6kD|jE>g<}E0pO4FS7x&G&)w5dsOxboUgQGH`K%fL!4O6_2Y13mr)t}NcKg+4A zy!L!ue*KOv(0GA+ly+GiT(jPm&{jvWr$h-cg?(x}G0eNvZUtd1ze!P4G`~~s( zBoLIxkDITzyZpTV+jispl^0*|HjjU`{ptPPAK}oQZR}|4jq-=L+G88no1b+3J_+l8 zfPY%I+w9W<_3QNyejoIoKPKM0S@uI{WGY7i2n^e0E5vkV_xs-NV`s7YOj$(jQV~vP z!Zf(%xP74gH~W9zdi)OhBQv=WTmydk2GQh5in=Xi9@yd(HBzf3Akwb?_BNm&fA_Il z)6h954b#10KZcis4x{JZ#ku_g<8?eJNfu{QC8ZC5GdbH&r`oQ08cnB#yX6oTdt1TB zYw5s`-S)ljmM6ixIN^7eymwm%06z1x?WdnJufb1Xi~x;v%wK!mD_?cHe6PnZZ4Yj{ zO&`~5f3X;$Y2f!klwR;X-DkTuP$zJ4t-NVi0_fY?fAjlaN?k=$f$(cn@0ZPfdFWa1 zOJ88t#NfrvG8_= z52}_)Fi!&YK>zQmZ-W=0!rR>2+7|+~cKdfnm(Sb-hp?^f_`f+VziYfu6iU;gDfLU9 z-Eo(XY^(Qo1AK(}h8@#J#*RCIjQKTfb!#Zp@3q_I;8B6XJ4U`fsm3b}ZD=OUS|5`C E1DIIhr~m)} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..57204f2116e4aa850ecdc4ab770680721a6c660c GIT binary patch literal 28149 zcmeG_30PBC*7qiPYyt^O5Jb!k1R{!x)0U}YRxK(sRf3bJR9i(9rA`&w-=#}J66iMV zKZ;w`7Nyw5>C}EM)25wi*lg?8cI;kM6gS-33W!pHm%RVn7lID+_nS_um3DIM4e!2p z@44rm?VWSqyRQsCe!S5;hyCa2qu5lu*^8mCy-gxIYTE|dm{rBU>WgFnw z4&{{ygqFl2WXVOSv=E`E?n7wh0)*X9yiasB!FTof38dgbirZ&^W|levO9S=lyBZXtbRkwqQy8dg9MI9w2}l>F)^Ec zXy;Wc0%K;jI%kdE*eXYeL5;bkO($wRR*Xlw6hx{)k~cb1TWfe;tsxAju>Pvk9%KN- zsyCfshsEWS1jGUTiz5>1%OiYPvyhSLx6)bgh_f)w`i(r%r5A6AGa)e{v4B*jL3pu2 z{A8*IG3}D#Uv@*bvdKVYd!=ZovdU1R zb~$_~19h9jrz>q08FPoKEfwOsD)TU7Aa?XcU;=z$m zD)qBU6G8ypL%Ss1XfC-7%s}2*xNWy+qzcd=bjp3DVu&Vz*f_;-m}{HI)-se6VdG}; z4zmYldQ6i2iTW$?$0?r5;6dG3KD9b-Px6c|ALu#~$S~UG+!dbvH5^&z6@qB_C28xH zR10BR!isn5a>JhFFcwd7hN<0oK3TrW3A+?w6o;sFyFykfbtGzFk|(c67uJm;@kv$sP05yuK)GD~bKN&Z&Uw#e%ufRp68v2I*#le$*%y% znFfj{+g38MuCm3HqC0^ivyn)KTq9*jfSHeul|SPVoEm2h+wq*vdBGs9hnF2XtkAk?By2b#p z94RnH%^hST&{LsBk7+d|$!0(@Owd{Gc$Hgr)Xf;f#fFk-!=IGad(9F-CoWbgGE~-z zSl43#az=A8ciZXr4-f=u1=D%>9G#Bzc!{=dW7#B%#_k=|r5Fz8H~4QEg+tpHwtxUJ zgZ6z*&-ul1TQ#tuE`af(H&wMu6w0wyXTLbvZ5(P-^h1j+2z_| z(hQdN1QI_f6WQMpACgSkr9MB{{X9dEo_ijoXpBs$uFlCJfD=_Or%ILZ*+=F zFS+AFZnftF(7C^ZvVzGn`mS>=CR;}hhsCnTw+}n~XmXVu6g|%~A zGicP>@X8iAF~p?@@7Ww1V4ova9haByYnEYSNi1zz$<-2i@5TLI%$P&xCt)7=`fLsN zAzakB^jaWtkw@RUOeU%|GI2Y0YU}0Ybtuf(>a z83Yvphm{{za-sUm%Xo}ZQP>u7v}2dq+bdl%M=~8r>?nkQL1VeDH7`-q7<;UCBS9x+9cO8=lN94#;FvKhG%K8Za9?iI_hTVL~Ek zavumwi#SlWSrXO7%9e2HWwrZQnr*s8q=w4~b#cce{ZLk!Bx_SSuY5}%z{Y->Km2se z?82j4ae35mh4eJEdze!U1HbZOr>(`tcc^XlPb8BfN=}G%F?J(d29N;9q-aN3jKhSL zs8!U2n#v9~%-uJV7R}QEQQfGy|<+FT~7##5v3LniB4H z1HSAyz)dUK+PDpWuvSna0`oV;M=w|sOq^6NoaNI z__~q>4P6og8>EZ7?{Knph=Gc7qG6iSwO&y-j|I{smN3ku?#}0SBx+~1OC+L2Az5o( zt~W#wxt!#|DH2rU$=i8(W0%Z>M|=~C@fPWxU=B-^@7bPxKy+V2hZva?3M&yeKCxDZ z8JS~&2b(BnfDBGYvcaw+n&yX(bQVr`RbhrHX-LvKJOpjfk{J)*ruvNs#~uN+YmSpz z4vTJiUwT^|P>;;4D8Uh?)+i{+3(y9oUSFodD!pFL8VN#^`7jasU0B7ws_bYbcbrM@ z%$*Iak9WO;vHX!wk|^QRs`5^3z=J(F{M;CP??JUoCmwkwdq7B3ic2Rk7+yf@d9~X0 zXTXLQTXZwst4Of?o%=E~&Eet+t5UQx=^cEIeqs>HQoHNqcjqucNAeere7taW`96qn zn2pv0Zh{8r$VEQBE+yK7pXo}pTBoUtt)ovWi>>7(#bz}{e3)vniVP;UUlttDp&sMz zDR&=zh0TP@YFBui@phR~JL+A_)L?lID^GUqZ*FQ|SejCm_gT`*c`NkfOtE5DXIim! z>?NhunmyQJm4uwP9eN-NsV!Eq=&|Fs*4qc$tP!YCtx2c&5&AO>v<;(>VHSh9|5^KEOsQ4Qu?7=1JiBC~rUjIQ)l*I|l>1uP)E zIQu-cdpPx~?{dRMc9ga9ML8aem9FE=oG$kP?pV<&@}O4X*?@@$AMKipS4XUr6f+PtqpF{O(uACwVSZ2|YnV=jAuS{8(mNEYkxwusR*Kf!q_wyGw z;9(wI-j-ysg8Ug-E5G{nrd#V80wjhZhf?>{*#~o-*o@Y%PH_)M1W;Y(?n$V7gCsb{ zQ>M0BL!*a*caJ%LUV1uqcG_UK7Lzco!o41=t9AVTrRc@mJlHdFO8Y0dYR(}EZOxkY zKvWt~CQ5vvGQB?4(OQdSuDn5Tb3e8x(D0O zr@;(wX|=6d)1*?nJNE+)@uIDA_ zc=odol&ex2^y28qO{vMXpeMK=nsCwGVK=>r`g=y#q zrA)}*jfw-n%RVJSVHh$<2_$Pm1}SH|-59hGV$y3G_Z&(QO62oYS&=F}k7cQucrW$t z0N6zk?W|HI>;95+4c@=>^!OoZua9=`m|hHbAQUB*lkDOJAPFi>qVsH^M}h~DHrBnLT#+GUTkcCevh@dS|yuR<1#%_bw` zYXL$?))ELli0{monmXU%cbk9$p(M_ptaF&VqbwMn#^GN0?tXoz!8(K@fEowF?*%}F zUx&y<#2XOtQK+GZD#BH)No& zUNSTy4~YkFMW+JPdejIhEQDR5pG0#e$nJ|}p_MaB*SJH=9oTF@Smh?F>QYv~^Z*bL z-UKO5Mp4sTF@wbj)g4H+XjQF5eCdbtKdV=JDdtRdSI4puw7 zN$un+Y4oO6SaN6$kSq6|Ucq%W@}$2@s@EY74RsNbnoHnJsoIezZ4p+HF2yD2%NQ8D z-!bRBQfGe49I^7P5g7AlF&XBPl5iawRh8xs z3+}z!9)qZEGK>Qm%?i7Su4ypI+qU0Rzk(aT7*BJc0OHZes$Pn8CxIV0=9V71+lb%I zdS+mQJAiqu^GYM%!SkfhC57-Dztv%D8Db&KxT@_5^-?a7oYBZ^R!Q)x8U>TdhKVOw zsx|`u5&@A%8rG)N7tL7iNw#DYyGsgLfpeHfCQ`k$GvQ#WMn-B}>DBRNq&l7^buHB+ z0+%G}isp?jAFDJJNwT@KH9TY>kckqR7X2yBmCnR_wrlG*Zrq>38OX~n>Cp`|i9;AN zxPk9wZ?a8Tb;M>SS2QD3+*9P^ z>RUqM6WtqUsexU5gmMv<5V99Y1sI~&+L`RyY$zfBQ!OP~N33Ao zCpaB#mV3ro@ODOiTe&+?U(|{TIqZ^-(4ww1&cWcLa?7p*EmN0a1L*yOmUP!@pjQkc zozOY1x#{dSjy$L-B9Opft6gNLlIeev=7$>(l697JfVGwhwD*f z{fePFf}@hEJ~>>qjoQQm+zyendUyWx3FZPZR@UT(9N+^{?!s61FqrRDnTL`yR%w;$ zwOgazIMlX<2FF+u*p99JS52&xpeHmN$r($42um~a4>ve+9Rci^*7u9R&f;HW zV5yPcPpWjXA?;(aZ2;s5;t41CHuIz0Lt=wDvY`@rl8`|ufh6u}n^evi35w8+Q)(Y7 zb5CcKTsm|6?!85)GV-SbD$MW)iB%{2pewC0Q0#(rW3+dOV+ceRQepb{I$fIJKZbv>MH5DrRe2R z9vpgBiq{MbZFmS$82RVt$Pk-02t5e&5Y%7+#;%7n`Y2+a>1EfDbL+JOWnK`*0+%1*c%~$# zb}=+hfZ!gzr9tJkSTq!+$JgCqJi0{)NH%lPu>l4+jRv4Rg8r&W?_aw+((u8i!&$2m zu$_eqAvD$9rIiJ%wS-BvY;ADFqK?{a1bwEJNg5qSMh>gf6C$DIQ)sN0h9b-Tu_(b% z>8-&%_4_d*4roTm4*!q=`GCLyJZRwkbuS0}{P63;^{|IqIw2lRacF!G#56l-e3(!# z)LDqmy1}n+zYKkAfPnv0)_Mt*FAdb6Yq?TE^@su$bs9W6(+f3kJ^K@<_OO(zpf#!u zao&W%oBpz_iT0sDpwMpgm;!;~ulGHEjDE+t@XYRJ52XykHINaN)>T>kOWlJ+*Iv*3 z%;7#jvlQrOfD8MnKENY6T4(#Pzwpw>n(1695Gel*`WaC`{rRlX!u;iOIiHB(iOSWv z)AJO3y!cP+np2RO@@=%cfXVy~j0gFuFrL|D5Rk(Uf#PdJ&)ujxU7iz`+JG9loXw$Q zQK0mgS(f$IZru2N4gatYowL7MTEx-$GhpyuDP5Jt^{)5Uhq%3<4?BJOV7_7Z3px*0 z&Sv%%{(o6T{h|CP*SBCn|5pk3ca~i%k3CCQzbdHd0f)SH;Qjm4)Wq$M9X4lG8(*SL#1u zy;uAoZ+|`E;0W#jr30461ls5ifzlWFM`@uzp!}TZ$@yREZ&*3uU>*9xHo@ORcn5Q! zv$;B#n_VAz-quoaO}ud1OG3PGn9{|XZ`}QXT*Cv(k6%h%1n<1icSkAz;Atc~qV4^n z7H5ILPq^c=!ZM*qCi3a>&6fYK&QnTwnU5aHMOYlx84TC$e(+PvH@;E0-#o!5PrArg@UUF(G(g9k0nSzdi$p?RN5ABJtFPGikJaBn zXHFNLYM<+sC%k&6ykZ-0)m}~Pphdq-dnLd)s@Ol4fBybn4iNa`=ciwv{Py6t2g(5g z#qSUN{($NN1p>vd4}N{1xHpOZd#*Wdg8`VZwT z1p?*g#NVGAy@Ec#0vNDa00O@^liyzby!t-G&8Ejc{>{|~KmYywznT8%dg~vJoXqT9 zea7GRo*$(T9(Vn0pKtb_PhYE3{${Sd`o2{+zkA;Q>udD->A5lf*ZclwneaYDPC@co zZ@omQ`|Xcfg%|$Y_0R8*Z;bu<^~-Nxlmi6HFDbtC&&MxMzdrlp2XJcw5cu`$!;RMm z1Kl;^`?|r;=eDAK6W(!kR@HjL%${9Ozu4R2s6EaF)19+V()rSD#oJDFv{Lh+K{3rZNn+?lS^8frX z#n_!xzprj9E%^9K1s#_HrK9(J|6M)#jKh71hn=L*8@2&Z6aovf=x^T%U)tI+On5C9cE$8Kkn27FH({IN z=Q&fSQtBxXC_jYX1tmv|PC93MUn34qmh-zPwrltiMC*@^>cRaw&(D+l^u)k6qGPLl zuZ`1vy0kR~0;Q+Vb*N|k*1JsxPzgZb_j=;@;R`n|Tay?%N9l=@2j0c*~@ZuThP^FQVhVgTwRZnQn$5AlzAN{*3^ zMS(#1G5X_;AAdgnnZ^-K*TiqM4!h6_C@&}wC_jcD{{DXc^#%PQRFfs3%w8by=em$( zhjim3y898#2EL9G@mGl1UU%0Db@uA#33`ubeu<_{1xtVo0jS$IUlX>zJQA+|KVSdA z+H2A#RxY1;<{v9~x?>iAA{y|ikQ4UQBZM@-ddO?m-#-obY8oB?y?=27(_V!SW_E|A za)xCSTVOZvS-KlompCA^#TaDE!KROuTJ3L zTKNe2`90+EUHyCGyIFM^T?)iLD$%Qgn$PN)_B-(PQJ7_pY_)UNS4$TPW(|u``0?$K zO|NjjBbd=O%L~1yv1b(Y&zZ^&8+W1T%r%>&qmJ?sySmjB_B{8ny?1}__&Gh-OMqII z{qE@UsmWj_kRAFaB&f~z5K|Be5>}16`w3)Qmat#p)~I7E%Y}Cxj0nMhUJ$M?sqY!a f2+26SD#gP8aDno3^qoudUl3-e3}V0vy`BCKvR#yy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9f468feee7eb4e60c7854d6e75d803cd9de8ffbc GIT binary patch literal 29399 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

&!x|maVtA&3JL=q>`Tuwggd`f6<;)OOB8Yi^6 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..de28c44dadd3117c938d1d052557b404477caae9 GIT binary patch literal 48214 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

e?!$JD$OX`!cG6%E4zHK2y)_hWQYW4wmM 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..af1c2f97cca45f365b7f641b84d09c6d806da293 GIT binary patch literal 33795 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..51e5ea0e18e81fa190e9ae1588a914da3f67b6e8 GIT binary patch literal 27106 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 B7RUeq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b1dcf3687585b7bbb7268d599290a571b03a702b GIT binary patch literal 36301 zcmeHw4_p-2wg0{I2aq7UC@Y}A&cecqLP7gPQx|4djY6M>O=PW2VnonrOogVO#H4j$ zckxe?*R+t-BqkC6Bx!BhF0f3HE-|7ac73P=brOD=bn4+xp!w-Y1S-5@$^~q3=BfZ>-FB_yPj{DL#`z#h!74T973Hzwt)~1Asj*@19xW_ffCpV)1tzcw1qFlOALK7!e}f42|sTwV8*Dr_>cOlp8ew^<0BzKjv`9fyTEJio@la$ZK}q5wME*PZ$Qv4K+){>FV8(s1`uMP-8|!h( z6<*UGGo4zWbbs9#fo1fmRlBMD0OcVWz5)^6K!vZbDSRa^B~PzHh{jIOg;t3h<8X52 zAj65l!rpPv2JPJHUY`NrC=S~5nzo9&v}Qr`>GY>H{EV=~y_>Mfa69!qKz(x8p5-|+ zE6(biP7ls8Q`|O@=M(_D=EPR_+rTt?lPzq{e`t7t2fI=vt9SLiKsiY3*}&oWo~;#mjl)9!2QEQO4mTi^eCL7!NHR0}M~cx!H;H9L zowE;jopb;AX>3}6Cu%E&{$$}kKe<~5xBDm*u`{K?Sq@Tndk04Ac@7N|EgZ+A?phj* z4r||}-y>-9=j~api|$v`s|02BXd6=(i>3$Z4OsoBV}aA8o-jp!X=Ast)@tE;fW!}t z^mEWRGOi}YcP}rwnKc8B|o^wSe(-JFvkkTM=9QrpvGnq%O%N8Z$n#SfH+UQ;?-E@kWPDJit|2AH&q;R$MpMoCED}sM*11=OJ+=3gbk~s*hU+jN22Ncj0hBh>YDa zyb~N3JQq|mGfid>=rBob^A+7+Y*(UEE6-H`b{&WjGDMzfMqS_4&G{^~(IWVph2hCz z@zy2|!Im*?O zL@YmX%NYJ4JUpquzG95M?2VC4yb3HpcMQDLekHo%;@OF(w8H*{BcFKie6 z#&2N{wM#I<_NhVnlV4by)NWf4BocrFIv|^Oz!GwBX317xR(@2^)<=9WUqYfaR>BP;%CYCg&0*b~%{}jgr!IVGsiP%K{X+1w~GP z{uho4swJY%uiJ(>hTjqPS?2GR!I!wmJt$ALxR{MmN=nE`{iN84EPR zs368r@RHWUn}P=5;^oS~B-D`jq$Y*V!wW?Ja+&y}020rWN8}Qe?H1d=#SZWAyYc7- za@{7%X&(ZB*{t)~Vw9pc3iQgL``^@pTAs$mLx|jB8(?7f6@Ycw%f_Tb&C_3rt|CZ)lpTXaJ8)>;hV5H@zqItEGM(B%pLVhj;EwY6o`^3=02N04mX5 zw#vS!Gfm{fOjG}~ug2Tm<4LQVf;r>@HX7P|{fzMU0y3xQmQ|-iBs+vg_LhKsK$eht z+yh;_0Ht_j7eWXe>XmxcQeT`aoSh)8&TD_UuH!agh&R!-o#;6iR+i}#;X5!Q#IE1& zIjRt&d|e*-%6Ezbjnx8ltx9@=lFpLdk2H3}>Phoy=#4?@0ek%%s1N_`y3)7oPy8iS z;#rl7Lx+H~nJ#K9igp1?qkOKWS_hF#pc2^d4695E+$!@upId!A&fr?7Ngt2~!HEb~ z_SZWhT9*1?^k&PDnbQ53(gmGg03uK_l?&Z}RXimKwDk!1pnc%fL1$+@7PsU=X3R`H zy#_p3(okJNZuvMQX`}1+_Qa#J0wS0U#%x(VNl9l8J?Xb9g5bq)O>K0qQsDXy~_G)bCIj3GyCzy*{t= z{iMz`y(=Ec#cOrRWXO1vei(-3++`2LsKHJ{(pz&WMu~v~y_LQ9$l9dlcf^*b@h$#j zd~HC5R;axgee&WXg`2cse2j^|w7*r{3q$2Jw6H&_3h(24pMhCNFF$ESwQF|u=IJI= zvD`2yC%`}9Vce0u+r4ba^PhipW88Ff0CAX7`V^X_M@+`$ zR=3e|UA6&Rbdz-5 zGpKTB`f@5gsB5brOAi)BOPs0;Z;MBLRs_wmpo#+FEj-IcZih}evpgr| z{mFP5>h&@d7A4}PI`jg)3Q;Z;0cg=t2klwy>l1O)(CC1gzf=hg%>RDS(bq~8+x5(t|T-eU64=!zjuKU4dWn8&_@~sRm_KfVpXT+m!F$g zG0BWmrdcKLQw-RSRUrKY_o!-zU34plutPFI2S}paH>&J+_NA+|dKdVDGai@&4|3>> zeAk343D>Na8#=v}&RPZY^j&c-zop+|aK8Zxy4gObO*%!GX>`x0t>Pu(wl9c$YTk3g zSYRMZicQ@6$wp%`HpB##f($Yfe*{tP>pW3$ZeCfO70lxlOu)f*euZc&gyLST*qSiC zX-!>|HqSZ~sv#^_ChbS=*;D#f?()^CB0svx`pI01B7N?nhrgj@T>?9-G0iVeR6=*R^1cUy?My zPpJH-ApVex*8!}P@;e~pMm@E0&%ZcdyK*uMKBQOg%F0LSy`yt&*PUJ*{MKtI15vH}vb&8HeQC#FYH&qwjSmwH%+l+Y-ffbka}+S#f7H+ET$>ad=op~U zDSrN6h3e@IxfR*DkBx!u8piIB3P02SYqgd`gL-QWZsK5aN~yXox_=N)Roh0CX)LZk zCbb9EDqzmX#tRrJ6KLCqg&Px*Ey0CYbaB74`=RK5;0Yd%M7A8WE7NRcbIzonScXD1tQaS&Hzlj*GmzD}dT+PQ_VzMTvnsqf~XQ-Y^dzCKUwyG&9w0M4i@ z^>aEjVzkygDf(Uam?WMh%H@<8|L8V^`Eha}nJ9=xa^-bSYv*sy0Hm6RYx z01>$+F?qpH1Q}jGLy}4TdpY+X15<>C?itG zAWxWa*sDP&tSAYn{1J>UGKi{;`{d<~$&{gEFy*nyH6nDuM*gE4kKsNtDa`D(T#J4! zE6u@&3C4R6M7}=PF=T@<6-T6i0Z{n+_EI{Y5}MdaSN6kbQqvFq$-{4f8FnV{Wx8CX zYF}vpD;;TmTg})J=HNefx>miG@2<8B;nX-EJZSS66;pWiqy!^ZmmtfG8lOA)h zr?#nDEB;*bGfQ#UZOru1Xv}*vM;mMp$2D2EBsiaCYB7hN_wc;tVID=mw3UwjLrrZ* zeOe=L9Kyov#{z{>2rI#jSlO74OEsQ(6EzF}W7CRJ~Z04F|ab3iQh>b=PZgEbyaHyFGzyYe#{`AO%)=P&K41z0K7uM;vm zZ^HtWV3ey21D7bJsN7gXVxxoxzIOvwTl3f%pG!AqWk1q!k`bs!GaC3IFoL{10}Qy) zPhWiYlQ+(4A*5m1m1m^Qk{FLhOf#JKfT6(zlnwt%y7}XGW;gA^j39(fg!GGw3Y#(1 zp@jf4#M2~PT>h*6u(DsIotTQx#rz(LQv7KH_HMwse2cVuC1S>c>5dbNUW-oBtEW}6 z-yQp(at2NpD@^v%QOGt7VhGiPpLv{OSH;=!mHLSIL)Ce8{Ytjk6Z>w=(^UyTVJKpB z!LaQspM%w>{$Wq)DiyM6rVFZn>(*4cJT*!eW&6dcOb1U-XjeSlyjo2)6py?e*{dK* z)cai(=hl_3R?#;0@b#3ldgaz;w0JOPw@13E1Unnu(yDCU33et7rF4YK0IhHe4Vw}l zW;HNv`?q@^Ezca~LTMh6;TGgMt-5?P<=iw3gRz6hvkxg|$2EC|h*MXv<+;k=Dthp)`B210%E)NR4fu zU!IfuSS&JxA*_1$3hcY^C?_Q&WHSjk#gvB8*lXyz%d#3dmm@!uT$d)w<&`}WtLd>!t8$*zO2#|(9w5OC#GxH3_CR6xAn+|-1 zF@V-B(sthxT8B=3h82QD?q4AsLO9&A3iJ=1LIfNGC{`otktoeyBMSj) z=#)Sa!a+8Ozr*1qnTN|u`pgpA1XC>)odlCzSY zmc{Bz@3?)d_Y50;rarGp(GRQl#hOXnh7>1PMCEHMxnQig&CIbAPtL6Hbk~TF(HQ@T za?oG0**tpINW-!>tKV0j)NHvSrB`vW=QWbBvo2a|;RM8{RvD_bjj#=XlbJ`4In-=| zkt`l9nYytzLZxD7pB;dFvLsD*s5wPGI*!JhIV$;;wVqiSdIOvKF{CI|;?j)@O)eLf zliIK-xQ=o^Fs15-h5l>hR~OTo4;Er9c`=s+bdq5zJF6{0{CNgEGwPZ>ul=HX8!$KF z*FZeLiq5f!E$>@dadzHi?-Ckw4?;y)q{Gvcv;cEqCQ__Fj*G6R>Z?E2b}~{*j1kc}+)sf(G_<^J5K^8QqQFkvU+syOU>8FbH|qq{U+pn& zRBLS2QJHzw0c=0=suMrfSe*7JQkT#wSdnH=^$%<&yI5h}T%8a6T=Gi2g&2}$OvEP| z(WOgF&08b{K?~JHs7~U|2kQyXI0WKu@QxFTuY<6?aUI~r*kZ1RPVy#?y!oh zGs{)NX6_KsDtB-9kY!8%6URMj?E});G?C{Hi)x&3<+ZvDQSFaDFAH0_lU}u=%P5_Y zf+6F_jsSUBtW^8y{C`f}9`&WU(u;K+f%QOi#B(xrlT^{i9r3DHTv;gDJVyiUcqQeA zI;n>{0<2EI7>53NgbOjkEZFn{A{+t%rg1tg$ggE1mC8) zL;5Y@nH>soAMXj5q3NVEtl>W4tsY3c=A+0i4PT-bn_)@E&r6HBi)Aul zK?@wER=*|8WRf1Db0BHTwdY%P?v$#o-lgN-W&BS!iN4;EFJ7+bo(GG&pabS(Sn%N? z=_XF6NAhya zp40|c0LO#VPO<-*Rpo-kUr22Ax&(OE(3SF}^`W41-vN=~_QcG3#*@kzfdDjR5GuY-( z=kqAP>$0xWij+qw4f>$Y6Y)95!jye4`qlKA&z-VcMj(yOVl~Ad(&Py@xp#oY$^ofw zR!w5N=)uZuwiTjhejw@426TaArF&kv+g`eA4L!nk%KJ2}lkQmFjC~gr@+YTA*UA zuPKVVXfJ&u!`n5t_W{boeZR8gc&0 zTm>uCRhC?Nismw^O8(-NQ;Tf+Af~zj&|5JEd^SzbX$D+jrfhMrRlERAHmY-uXTs$Bp7X7>O*>Zv zTBwl)QuJRdU7glo#hPi{Xi>wTnjJCXOO{UAt4M6GKNbMG-QnR{c|@la=o&mifW!|S zfmBo|Xhgp9k={4OupvC0y%VPxbHNbl_efN@bn0SymQt}gc3$V;Mv(e$6_ft{yoY5W3}DJq~RP%HmR!Zx##!IyTze$5*%Zjzf_L(vQ0VE9}yBh3Jk+8u;_MkhJCDadgPyj+5N?yaKDv#O&uf1V;P%o*qwkPikWk#@quS zN{a}& zMa8o_G)}&Lc;{xze0j^yVNn75YhV`;(mIMryQD1iz_Q>EpuJ~4g&}2ElGahd!EF;P z^sd@>fQ1%!9ZBu4dOFCTAMzF{I*^3Pjwz^J!H&7GjqHTjx6vZkwy-(Z zaw~cus?mxyP<=D2?&Cd2EN)A>xSc%mAeeyRsJ-kj_N8MsS~Om#bc6WV0^sq3Yf|qx z{VDn*RCq-@J6-Pse@0$TR8%J>YpZoDR2o5|rSDKV5T_Q31P7M8{AwjIa9Ar3w#E7! z_MSs672Y<&px($xBVibYAP821tRn=hHJ8K)m@qP3&#^hpxfN$%k4ajdpn`q63K9bi zzh12NFU!X9FX9#|3|4B#s0`66&2(=NpbT!A%c&A#KdP&QU4oSE z4EWb$mGdjf;Qg>bhG{0tEU@405o^Q~71z1AhLYto!m$J+gM?pxyCx3h5R#8Md|k*5 zLFU`XY#OQ76fJ5hbHpi)#>w&s>~20r(E^^Uc%)tDP!RHuz_u)~WoF`qndO)4OE>;h z^B1FP{ht?B^20mCO1uX>dnMh&8OfsytVLW&J{p#BOj=Os8}vVd9tVFQ>*?i#1=^5;0W16$R3C-kix+cvWJj85L+OHgCk@Q zA$uUUKne%P-Cz%S$H|tv6^n`HOeO;!A%E9aD_@(6i7cdWaNG^@5MD{);0W>i_5HDE z%Yh!rw`~u;u>zQ7?8+8-0vr^$M6)i*tJyw#Faoa6`L<}b`|Shn$c2NCKpk=?bbV*y zk-mX!R(O0W(Vq&+Nsqi|GoU+J>qET%{dL|IzE^^8+XSAE{-HgovwlS*Ox!y4oTh@joXJ-IBt=5z==6y*n3=1?zHQ z>v;Kj!YQc#8|z=c&LSRmin~dD0Sc(yS2*}Tr2ji#|7e{MeHQ-xqxwgB*nLelV2AX7 zSK9l1>sFRuzgB+cAJu=sJ3QI>{&7hEcc;J8T*)n;YJcJlS^p{(`6MOayT9&w{-6bv z53i+wBG;7v=Wd}v?u4#~FujxTpdW|5p74bRqCE)zO>aRYKwgR#&}Tra|K;^1L=kxc ze~;J&-yzvi*+J?-{2!VR5^$h!a0D>Aldl!;-K>!g^mt^w!xs_1p+87_ce`h|MO;Yg z!F%U|g@d!ZLH+>4|5y24>0U{;e?Lt02V1tk@pvG${jEP>KdWERxf#AKM*M+s$Rhr) z;(Mptmr8zTn=jw1g14&wP%3;=TVCqB2HwBcA4KhuBp$v!<@X!H5!n0=-&63_H^SFI z?sWM>{K*J#@Im}FXJ1)<#=g`SA7FSjRGk-Y-Vz@?_%qPAWcKBMp^A~Nv61xy-}51T z`+ETZ6TlNreT9Sn@5b>k`|{vXf=( zyFab@{%$+`uwL0zA`jW-OFm`!2Em;8FI|4ROG z4N~tyX^_8FR)WCYDlg%k6b=p|6Hb@k5h}|MZwbwZKfy0f2IQ4){Oz*sGiP9%|Bg!E zvJULx_||RXc<}QB6&_gG@>x5)n=D}U0X)X`D#Ro3N=$MeLh5gw{Bb*m>;Zm{#FTJc z`gQoYANiK;K;j3|Ld!a&`vm)s?;>;^!UJp|;3J4laChi6M>u1EIk|A~aW}B-XZMbU z^_%iHVjB5&+#+AtWiqK$3FqsN?I literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..de5763a4bfb6ff9ce8e2eb3d30f2a64c947a65fb GIT binary patch literal 36454 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 literal 0 HcmV?d00001 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