diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c90bc92 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.pbo +*.bak +*.lnk +*.bikey +*.txt +*.md +*.p3d +*.paa +*.png +*.ogg diff --git a/CustomControlClasses.h b/CustomControlClasses.h deleted file mode 100644 index 958841b..0000000 --- a/CustomControlClasses.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef HG_CustomControlClassesh -#define HG_CustomControlClassesh 1 -//Create a header guard to prevent duplicate include. - -class tun_default_text -{ - style = 2; - colorBackground[] = {0,0.102,0.502,1}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - tooltipColorBox[] = {0.6,0.6,0.6,1}; - tooltipColorText[] = {0.702,0.102,0.102,1}; - -}; -class tun_firesupport_coordinate_preset -{ - style = 0+2; - text = "000"; - autocomplete = ""; - colorBackground[] = {0.2,0.2,0.2,1}; - colorDisabled[] = {0,0,0,0}; - colorSelection[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - access = 0; - canModify = true; - maxChars = 5; - shadow = 0; - tooltip = "Only Numbers"; - tooltipColorBox[] = {0.6,0,0,1}; - tooltipColorShade[] = {0,0,0,0}; - tooltipColorText[] = {1,1,1,1}; - -}; -#endif diff --git a/Data/afilogo.paa b/Data/afilogo.paa new file mode 100644 index 0000000..f14831f Binary files /dev/null and b/Data/afilogo.paa differ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..de47048 --- /dev/null +++ b/LICENSE @@ -0,0 +1,5 @@ +Arma Public License Share Alike (APL-SA) +https://www.bohemia.net/community/licenses/arma-public-license-share-alike + + +Can be re-uploaded to workshop if original content is credited and linked. diff --git a/README.md b/README.md deleted file mode 100644 index f53e065..0000000 --- a/README.md +++ /dev/null @@ -1,17 +0,0 @@ -Wiki is here https://github.com/tuntematonjr/Tun-Firesupport/wiki - -Put following line to Description.ext -#include "Tun_Firesupport_Dialog.h" - -In firesupport.sqf you can define what artillery pieces are avaible and ammo counts. - -// Define globa lvariable with following syntax [name what shown in UI (must be string), array of artillery units, array of arrays which have ammo classname (string) and ammo count -tun_battery1 = ["tykit", [tykki1, tykki2, tykki3], [["32Rnd_155mm_Mo_shells", 20]]]; -tun_battery2 = ["morkulat", [mor1, mor2, mor3], [["8Rnd_82mm_Mo_shells",30], ["8Rnd_82mm_Mo_Flare_white",40]]]; - -//For following globa lvariable. Collect all off your earlier defined globa lvariables in single array. -GVAR(batteries) = [tun_battery1, tun_battery2, tun_battery3]; - - -//Put following line in unit init line. Currently only one Forward Observer is supported. -[this] call compile preprocessFileLineNumbers "scriptit/firesupport.sqf"; diff --git a/Tun_Firesupport_Dialog.h b/Tun_Firesupport_Dialog.h deleted file mode 100644 index d763108..0000000 --- a/Tun_Firesupport_Dialog.h +++ /dev/null @@ -1,269 +0,0 @@ -//Exported via Arma Dialog Creator (https://github.com/kayler-renslow/arma-dialog-creator) - -#include "CustomControlClasses.h" -class Tun_Firesupport_Dialog -{ - idd = -1; - - class ControlsBackground - { - - }; - class Controls - { - class tun_firesupport_tausta - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.18125; - y = safeZoneY + safeZoneH * 0.07444445; - w = safeZoneW * 0.6375; - h = safeZoneH * 0.85; - style = 48; - text = "tablet.jpg"; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - - }; - class tun_firesupport_header - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.251875; - y = safeZoneY + safeZoneH * 0.15222223; - w = safeZoneW * 0.4775; - h = safeZoneH * 0.05666667; - style = 2; - text = "Mobile Supreme Indirect Fire Support Request System For Blahh. A.K.A WIP"; - colorBackground[] = {0,0.102,0.502,1}; - colorText[] = {0.6118,0.949,0.7961,1}; - font = "PuristaSemiBold"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - shadow = 2; - - }; - class tun_firesupport_avaible_batteries - { - type = 5; - idc = 2200; - x = safeZoneX + safeZoneW * 0.25875; - y = safeZoneY + safeZoneH * 0.22444445; - w = safeZoneW * 0.1475; - h = safeZoneH * 0.47555556; - style = 16; - colorBackground[] = {0.2,0.2,0.2,1}; - colorDisabled[] = {0.2,0.2,0.2,1}; - colorSelect[] = {1,0,0,1}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - maxHistoryDelay = 0; - rowHeight = 0; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1.0}; - onLBSelChanged = "[] call tun_firesupport_fnc_add_AmmoTypes; [] call Tun_firesupport_fnc_eta;"; - class ListScrollBar - { - color[] = {1,1,1,1}; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - - }; - - }; - class tun_firesupport_avaible_ammo - { - type = 5; - idc = 2201; - x = safeZoneX + safeZoneW * 0.41375; - y = safeZoneY + safeZoneH * 0.22555556; - w = safeZoneW * 0.1625; - h = safeZoneH * 0.47555556; - style = 16; - colorBackground[] = {0.2,0.2,0.2,1}; - colorDisabled[] = {0.2,0.2,0.2,1}; - colorSelect[] = {1,0,0,1}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - maxHistoryDelay = 0; - rowHeight = 0; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1.0}; - onLBSelChanged = "[] call Tun_firesupport_fnc_eta; [] call tun_firesupport_fnc_dialog_slider_max_ammo;"; - onMouseEnter = "[] call Tun_firesupport_fnc_eta;"; - onMouseExit = ""; - class ListScrollBar - { - color[] = {1,1,1,1}; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - - }; - - }; - class tun_firesupport_eta - { - type = 0; - idc = 2202; - x = safeZoneX + safeZoneW * 0.60875; - y = safeZoneY + safeZoneH * 0.69; - w = safeZoneW * 0.0925; - h = safeZoneH * 0.04; - style = 2; - text = "CANT FIRE"; - colorBackground[] = {0,0.102,0.502,1}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - - }; - class tun_firesupport_call_fire - { - type = 1; - idc = 2207; - x = safeZoneX + safeZoneW * 0.59; - y = safeZoneY + safeZoneH * 0.75222223; - w = safeZoneW * 0.1325; - h = safeZoneH * 0.05888889; - style = 0+2; - text = "FIRE!"; - borderSize = 0; - colorBackground[] = {0.6,0,0,1}; - colorBackgroundActive[] = {1,0,0,1}; - colorBackgroundDisabled[] = {0.2,0.2,0.2,1}; - colorBorder[] = {0.302,0,0.102,1}; - colorDisabled[] = {0.2,0.2,0.2,1}; - colorFocused[] = {0.2,0.2,0.2,1}; - colorShadow[] = {0,0,0,1}; - colorText[] = {0.9255,0.8824,0.1725,1}; - font = "PuristaMedium"; - offsetPressedX = 0.01; - offsetPressedY = 0.01; - offsetX = 0.01; - offsetY = 0.01; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0}; - soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0}; - soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0}; - soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0}; - action = "[] call tun_firesupport_fnc_call_support;"; - onButtonClick = ""; - onMouseEnter = "[] call Tun_firesupport_fnc_eta;"; - shadow = 1; - - }; - class tun_firesupport_amount_baground - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.41375; - y = safeZoneY + safeZoneH * 0.78; - w = safeZoneW * 0.146875; - h = safeZoneH * 0.04; - style = 0; - text = ""; - colorBackground[] = {0.302,0.302,0.302,1}; - colorText[] = {0,0,0,0}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - - }; - class tun_firesupport_amount - { - type = 43; - idc = 2205; - x = safeZoneX + safeZoneW * 0.415625; - y = safeZoneY + safeZoneH * 0.78777778; - w = safeZoneW * 0.1425; - h = safeZoneH * 0.02666667; - style = 1024; - arrowEmpty = "\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa"; - border = "\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa"; - color[] = {0.498,0.6549,0.102,1}; - colorActive[] = {1,1,1,1}; - thumb = "\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa"; - onSliderPosChanged = "[] call tun_firesupport_fnc_slider_update; [] call Tun_firesupport_fnc_eta;"; - - }; - class tun_firesupport_text_amount - { - type = 0; - idc = 2206; - x = safeZoneX + safeZoneW * 0.44125; - y = safeZoneY + safeZoneH * 0.73222223; - w = safeZoneW * 0.0875; - h = safeZoneH * 0.04; - style = 2; - text = "1"; - colorBackground[] = {0.1333,0.3294,0.6667,1}; - colorText[] = {0.8667,0.6706,0.3333,1}; - font = "PuristaMedium"; - sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); - - }; - class tun_firesupport_easting : tun_firesupport_coordinate_preset - { - type = 2; - idc = 2203; - x = safeZoneX + safeZoneW * 0.59375; - y = safeZoneY + safeZoneH * 0.33444445; - w = safeZoneW * 0.0625; - h = safeZoneH * 0.04; - onDestroy = "[] call tun_firesupport_fnc_save_coordinates;"; - onKeyUp = "[] call Tun_firesupport_fnc_eta;"; - - }; - class tun_firesupport_northing : tun_firesupport_coordinate_preset - { - type = 2; - idc = 2204; - x = safeZoneX + safeZoneW * 0.59375; - y = safeZoneY + safeZoneH * 0.45444445; - w = safeZoneW * 0.0625; - h = safeZoneH * 0.04; - onKeyUp = "[] call Tun_firesupport_fnc_eta;"; - - }; - class tun_firesupport_text_easting : tun_default_text - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.59375; - y = safeZoneY + safeZoneH * 0.27444445; - w = safeZoneW * 0.0625; - h = safeZoneH * 0.04; - text = "Easting"; - - }; - class tun_firesupport_text_northing : tun_default_text - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.59375; - y = safeZoneY + safeZoneH * 0.40444445; - w = safeZoneW * 0.0625; - h = safeZoneH * 0.04; - text = "Northing"; - - }; - class tun_firesupport_text_eta : tun_default_text - { - type = 0; - idc = -1; - x = safeZoneX + safeZoneW * 0.62875; - y = safeZoneY + safeZoneH * 0.63444445; - w = safeZoneW * 0.0525; - h = safeZoneH * 0.04; - text = "ETA"; - - }; - - }; - -}; diff --git a/addons/artycomputer_models/$PREFIX$ b/addons/artycomputer_models/$PREFIX$ new file mode 100644 index 0000000..618f576 --- /dev/null +++ b/addons/artycomputer_models/$PREFIX$ @@ -0,0 +1 @@ +x\tun\addons\artycomputer_models \ No newline at end of file diff --git a/addons/artycomputer_models/config.cpp b/addons/artycomputer_models/config.cpp new file mode 100644 index 0000000..93d9337 --- /dev/null +++ b/addons/artycomputer_models/config.cpp @@ -0,0 +1,35 @@ +#include "script_component.hpp" + +class CfgPatches +{ + class tun_artycomputer_models + { + requiredVersion = 1.94; + requiredAddons[] = {"A3_Weapons_F","cba_main","cba_xeh","cba_settings"}; + units[]={}; + weapons[]={"tun_tablet"}; + author = "Immonen & Nurmi"; + authorUrl = "https://armafinland.fi/"; + }; +}; + +class CfgWeapons { + class CBA_MiscItem; + class CBA_MiscItem_ItemInfo; + + + class tun_tablet: CBA_MiscItem + { + displayName="Military Tablet"; + scope=2; + author="Immonen & Nurmi"; + picture= "\x\Tun\addons\artycomputer_models\data\tablet_icon.paa"; + model= "\x\Tun\addons\artycomputer_models\tablet.p3d"; + icon= "\x\Tun\addons\artycomputer_models\data\tablet_icon.paa"; + descriptionShort="Tablet used to run AFI (Advanced Firesupport Interface)"; + class ItemInfo: CBA_MiscItem_ItemInfo { + mass = 2; + }; + }; +}; + diff --git a/addons/artycomputer_models/script_component.hpp b/addons/artycomputer_models/script_component.hpp new file mode 100644 index 0000000..6ac8676 --- /dev/null +++ b/addons/artycomputer_models/script_component.hpp @@ -0,0 +1,32 @@ +#define COMPONENT artycomputer_models +#define PREFIX Tun + +#define MAJOR 0 +#define MINOR 4 +#define PATCHLVL 1 +#define BUILD 24012021 + +#define VERSION MAJOR.MINOR.PATCHLVL.BUILD +#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD + +// MINIMAL required version for the Mod. Components can specify others.. +#define REQUIRED_VERSION 1.94 + +/* + #define DEBUG_ENABLED_SYS_MAIN +*/ + +#define DEBUG_MODE_FULL + +#ifdef DEBUG_ENABLED_MAIN + #define DEBUG_MODE_FULL +#endif + +#include "\x\cba\addons\main\script_macros_common.hpp" + + +// Default versioning level +#define DEFAULT_VERSIONING_LEVEL 2 + +//AAR update macro +#define AAR_UPDATE(OBJ,VARNAME,VALUE) if ( !isnil "afi_aar2" ) then { [OBJ, VARNAME, VALUE] call afi_aar2_fnc_addcustomdata; }; \ No newline at end of file diff --git a/addons/firesupport/$PREFIX$ b/addons/firesupport/$PREFIX$ new file mode 100644 index 0000000..9920076 --- /dev/null +++ b/addons/firesupport/$PREFIX$ @@ -0,0 +1 @@ +x\tun\addons\firesupport \ No newline at end of file diff --git a/addons/firesupport/CfgSounds.hpp b/addons/firesupport/CfgSounds.hpp new file mode 100644 index 0000000..5f193b4 --- /dev/null +++ b/addons/firesupport/CfgSounds.hpp @@ -0,0 +1,46 @@ +class CfgSounds +{ + sounds[] = {}; + class tun_firemissionDone + { + + name = "completed"; + sound[] = {QPATHTOF(sounds\completed.ogg), 1, 1}; + titles[] = {}; + }; + class tun_targetlocation + { + + name = "targetlocation"; + sound[] = {QPATHTOF(sounds\targetlocation.ogg), 1, 1}; + titles[] = {}; + }; + class tun_lostContact + { + + name = "lostContact"; + sound[] = {QPATHTOF(sounds\lost_Contact.ogg), 1, 1}; + titles[] = {}; + }; + class tun_outOfAmmo + { + + name = "outOfAmmo"; + sound[] = {QPATHTOF(sounds\out_Of_Ammo.ogg), 1, 1}; + titles[] = {}; + }; + class tun_splash + { + + name = "splash"; + sound[] = {QPATHTOF(sounds\splash.ogg), 1, 1}; + titles[] = {}; + }; + class tun_resuply + { + + name = "resuply"; + sound[] = {QPATHTOF(sounds\resuply.ogg), 1, 1}; + titles[] = {}; + }; +}; \ No newline at end of file diff --git a/addons/firesupport/CustomControlClasses.hpp b/addons/firesupport/CustomControlClasses.hpp new file mode 100644 index 0000000..e4627ff --- /dev/null +++ b/addons/firesupport/CustomControlClasses.hpp @@ -0,0 +1,82 @@ +//Exported via Arma Dialog Creator (https://github.com/kayler-renslow/arma-dialog-creator) +#ifndef HG_CustomControlClasseshpp +#define HG_CustomControlClasseshpp 1 +//Create a header guard to prevent duplicate include. + +#include "GUIBaseClasses.hpp" +#include "Firesupport_idc.hpp" + +class tun_default_text +{ + style = 2; + colorBackground[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 1 + }; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); + tooltipColorBox[] = {0.6,0.6,0.6,1}; + tooltipColorText[] = {0.702,0.102,0.102,1}; + +}; +class tun_firesupport_coordinate_preset +{ + style = 0+2; + text = "000"; + autocomplete = ""; + colorBackground[] = {0.2,0.2,0.2,1}; + colorDisabled[] = {0,0,0,0}; + colorSelection[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); + canModify = true; + maxChars = 5; + shadow = 0; + tooltipColorBox[] = {0.6,0,0,1}; + tooltipColorShade[] = {0,0,0,0}; + tooltipColorText[] = {1,1,1,1}; + +}; +class tun_firesupport_default_combo +{ + style = 16; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + colorBackground[] = {0.4,0.4,0.4,1}; + colorDisabled[] = {0,0,0,1}; + colorSelect[] = {1,1,1,1}; + colorSelectBackground[] = {0.8,0.502,0.2,1}; + colorText[] = {1,1,1,1}; + font = "PuristaSemiBold"; + maxHistoryDelay = 0; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); + soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1.0}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1.0}; + soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1.0}; + wholeHeight = 0.3; + shadow = 0; + tooltipColorBox[] = {0.2,0.2,0.2,1}; + tooltipColorShade[] = {0.2,0.2,0.2,1}; + tooltipColorText[] = {1,1,1,1}; + class ComboScrollBar + { + + }; + +}; + +class tun_firesupport_button_base : RscButton +{ + +}; + +class tun_firesupport_listbox : RscListBox +{ + +}; +#endif diff --git a/addons/firesupport/Firesupport_dialog.hpp b/addons/firesupport/Firesupport_dialog.hpp new file mode 100644 index 0000000..2e139c1 --- /dev/null +++ b/addons/firesupport/Firesupport_dialog.hpp @@ -0,0 +1,503 @@ +//Exported via Arma Dialog Creator (https://github.com/kayler-renslow/arma-dialog-creator) + +#include "CustomControlClasses.hpp" +//"Default" call BIS_fnc_exportGUIBaseClasses; + +class Firesupport_dialog +{ + idd = MAIN_IDD; + movingEnable = true; + + class ControlsBackground + { + class tun_firesupport_baground + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.04980469; + y = safeZoneY + safeZoneH * -0.17; + w = safeZoneW * 0.90039063; + h = safeZoneH * 1.4; + style = ST_PICTURE + ST_CENTER; + text = "\x\Tun\addons\artycomputer_models\data\ui\tablet_ui.paa"; + colorBackground[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); + moving = true; + onDestroy = "$STR_tun_firesupport_on_close_action"; + + }; + + }; + class Controls + { + class tun_firesupport_remaining_ammo_bar + { + type = 8; + idc = REMAINIG_AMMO_PROGRESBAR_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.725; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + style = 0; + colorBar[] = {1,0,0,1}; + colorFrame[] = {0.4471,0.2471,0.3804,1}; + texture = "#(argb,8,8,3)color(1,1,1,1)"; + + }; + + class tun_firesupport_minimap : RscMapControl + { + idc = MINIMAP_IDC; + x = safeZoneX + safeZoneW * 0.53808594; + y = safeZoneY + safeZoneH * 0.44444445; + w = safeZoneW * 0.14355469; + h = safeZoneH * 0.23263889; + }; + + class tun_firesupport_fire + { + type = 1; + idc = FIRE_IDC; + x = safeZoneX + safeZoneW * 0.61875; + y = safeZoneY + safeZoneH * 0.7; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.05; + style = 0+2; + text = "Fire!"; + borderSize = 0.01; + colorBackground[] = {0.6,0,0,1}; + colorBackgroundActive[] = {0.702,0.102,0.102,1}; + colorBackgroundDisabled[] = {0.2,0.2,0.2,1}; + colorBorder[] = {1,1,1,1}; + colorDisabled[] = {0.2,0.2,0.2,1}; + colorFocused[] = {0.6,0,0,1}; + colorShadow[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + offsetPressedX = 0.01; + offsetPressedY = 0.01; + offsetX = 0.01; + offsetY = 0.01; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1); + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0}; + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0}; + action = "$STR_tun_firesupport_fire_action"; + colorFocused2[] = {0.6,0,0,1}; + default = false; + onMouseEnter = "$STR_tun_firesupport_update_everything"; + shadow = 1; + + }; + class tun_firesupport_artylist : tun_firesupport_default_combo + { + type = 4; + idc = ARTY_LIST_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.325; + w = safeZoneW * 0.1125; + h = safeZoneH * 0.02962963; + onLBSelChanged = "$STR_tun_firesupport_artylist_selection_action"; + class ComboScrollBar + { + color[] = {1,1,1,1}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + + }; + + }; + class tun_firesupport_firing_type : tun_firesupport_default_combo + { + type = 4; + idc = FIRING_TYPE_IDC; + x = safeZoneX + safeZoneW * 0.56875; + y = safeZoneY + safeZoneH * 0.325; + w = safeZoneW * 0.1125; + h = safeZoneH * 0.02962963; + onLBSelChanged = "$STR_tun_firesupport_firemode_changed_action"; + class ComboScrollBar + { + color[] = {1,1,1,1}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + + }; + + }; + class tun_firesupport_ammo_type : tun_firesupport_default_combo + { + type = 4; + idc = AMMO_TYPE_IDC; + x = safeZoneX + safeZoneW * 0.44375; + y = safeZoneY + safeZoneH * 0.325; + w = safeZoneW * 0.1125; + h = safeZoneH * 0.02962963; + onLBSelChanged = "$STR_tun_firesupport_ammotype_lb_change_action"; + class ComboScrollBar + { + color[] = {1,1,1,1}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + + }; + + }; + class tun_firesupport_easting_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = EASTING_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.4; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + tooltip = "$STR_tun_firesupport_coordinates_tooltip_easting"; + + }; + class tun_firesupport_easting_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.375; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_easting"; + + }; + class tun_firesupport_northing_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = 22202; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.4; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + tooltip = "$STR_tun_firesupport_coordinates_tooltip_northing"; + + }; + class tun_firesupport_northing_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.375; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_northing"; + + }; + class tun_firesupport_ammo_count : tun_firesupport_coordinate_preset + { + type = 2; + idc = COUNT_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.4; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "0"; + onKillFocus = "$STR_tun_firesupport_check_min_values_ammo"; + tooltip = "$STR_tun_firesupport_ammocount_tooltip"; + + }; + class tun_firesupport_ammo_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.37592593; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_ammocount"; + + }; + class tun_firesupport_radius_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.54375; + y = safeZoneY + safeZoneH * 0.375; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_radius"; + + }; + class tun_firesupport_radius_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = RANGE_IDC; + x = safeZoneX + safeZoneW * 0.54375; + y = safeZoneY + safeZoneH * 0.4; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "0"; + onKillFocus = "$STR_tun_firesupport_check_min_values_radius"; + tooltip = "$STR_tun_firesupport_radius_tooltip"; + + }; + class tun_firesupport_delay_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.61875; + y = safeZoneY + safeZoneH * 0.375; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_delay"; + + }; + class tun_firesupport_delay_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = DELAY_IDC; + x = safeZoneX + safeZoneW * 0.61875; + y = safeZoneY + safeZoneH * 0.4; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "1"; + onKillFocus = "$STR_tun_firesupport_check_min_values_delay"; + onMouseEnter = "$STR_tun_firesupport_check_min_values_delay"; + onMouseExit = "$STR_tun_firesupport_check_min_values_delay"; + tooltip = "$STR_tun_firesupport_delay_tooltip"; + + }; + class tun_firesupport_remaining_ammo_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.675; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_remainign_ammo"; + sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75); + + }; + class tun_firesupport_remaining_ammo_value : tun_firesupport_coordinate_preset + { + type = 0; + idc = REMAINIG_AMMO_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.7; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + style = 2; + text = "0"; + tooltip = "$STR_tun_firesupport_remaining_ammo_tooltip"; + + }; + class tun_firesupport_eta_text : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.675; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_eta"; + + }; + class tun_firesupport_eta_value : tun_firesupport_coordinate_preset + { + type = 0; + idc = ETA_IDC; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.7; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + style = 2; + text = "Value"; + tooltip = "$STR_tun_firesupport_eta_tooltip"; + + }; + class tun_firesupport_header : tun_default_text + { + type = 0; + idc = -1; + x = safeZoneX + safeZoneW * 0.29375; + y = safeZoneY + safeZoneH * 0.25; + w = safeZoneW * 0.4125; + h = safeZoneH * 0.05; + style = 32+2; + text = "$STR_tun_firesupport_Header"; + shadow = 2; + + }; + class tun_firesupport_easting_end_point_text : tun_default_text + { + type = 0; + idc = EASTING_END_TEXT_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.45; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_easting_end_point"; + + }; + class tun_firesupport_easting_end_point_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = EASTING_END_IDC; + x = safeZoneX + safeZoneW * 0.31875; + y = safeZoneY + safeZoneH * 0.475; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + tooltip = "$STR_tun_firesupport_coordinates_tooltip_easting"; + + }; + class tun_firesupport_northing_end_point_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = NORTHING_END_IDC; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.475; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + tooltip = "$STR_tun_firesupport_coordinates_tooltip_northing"; + + }; + class tun_firesupport_northing_end_point_text : tun_default_text + { + type = 0; + idc = NORTHING_END_TEXT_IDC; + x = safeZoneX + safeZoneW * 0.39375; + y = safeZoneY + safeZoneH * 0.45; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_northing_end_point"; + + }; + class tun_firesupport_status : tun_default_text + { + type = 0; + idc = STATUS_IDC; + x = safeZoneX + safeZoneW * 0.54375; + y = safeZoneY + safeZoneH * 0.7; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.05; + text = "Status"; + + }; + class tun_firesupport_bookmark_list : tun_firesupport_listbox + { + type = 5; + idc = BOOKMARK_LIST_IDC; + x = safeZoneX + safeZoneW * 0.54375; + y = safeZoneY + safeZoneH * 0.45; + w = safeZoneW * 0.1375; + h = safeZoneH * 0.2; + onLBSelChanged = "$STR_tun_firesupport_bookmark_list_change"; + }; + class tun_firesupport_name_bookmark_text : tun_default_text + { + type = 0; + idc = BOOKMARK_NAME_TEXT_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.45; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "$STR_tun_firesupport_name_bookmark_text"; + tooltip = "$STR_tun_firesupport_name_text_tooltip"; + + }; + class tun_firesupport_name_bookmark_value : tun_firesupport_coordinate_preset + { + type = 2; + idc = BOOKMARK_NAME_VALUE_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.475; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.025; + text = "Name"; + maxChars = 20; + tooltip = "$STR_tun_firesupport_name_text_tooltip"; + + }; + class tun_firesupport_bookmark_editbox : RscEdit + { + type = 2; + idc = BOOKMARK_EDITBOX_IDC; + x = safeZoneX + safeZoneW * 0.29375; + y = safeZoneY + safeZoneH * 0.525; + w = safeZoneW * 0.1125; + h = safeZoneH * 0.125; + style = 16; + text = ""; + tooltip = "$STR_tun_firesupport_editbox_tooltip"; + + }; + class tun_firesupport_bookmark_button : tun_firesupport_button_base + { + type = 1; + idc = BOOKMARK_OPEN_BUTTON_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.7; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.05; + text = "$STR_tun_firesupport_bookmark"; + action = "$STR_tun_firesupport_open_bookmark"; + + }; + class tun_firesupport_add_bookmark_button : tun_firesupport_button_base + { + type = 1; + idc = BOOKMARK_ADD_BOOKMARK_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.525; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.05; + text = "$STR_tun_firesupport_bookmark_add"; + action = "$STR_tun_firesupport_add_bookmark_action"; + tooltip = "$STR_tun_firesupport_bookmark_add_tooltip"; + + }; + class tun_firesupport_remove_bookmark_button : tun_firesupport_button_base + { + type = 1; + idc = BOOKMARK_REMOVE_BOOKMARK_IDC; + x = safeZoneX + safeZoneW * 0.46875; + y = safeZoneY + safeZoneH * 0.6; + w = safeZoneW * 0.0625; + h = safeZoneH * 0.05; + text = "$STR_tun_firesupport_remove_bookmark"; + action = "$STR_tun_firesupport_remove_bookmark_action"; + tooltip = "$STR_tun_firesupport_bookmark_remove_tooltip"; + + }; + class tun_firesupport_export_bookmark_button : tun_firesupport_button_base + { + type = 1; + idc = BOOKMARK_EXPORT_BOOKMARK_IDC; + x = safeZoneX + safeZoneW * 0.409375; + y = safeZoneY + safeZoneH * 0.6; + w = safeZoneW * 0.05260417; + h = safeZoneH * 0.05; + text = "$STR_tun_firesupport_bookmark_export"; + action = "$STR_tun_firesupport_export_bookmark_action"; + tooltip = "$STR_tun_firesupport_bookmark_export_tooltip"; + + }; + class tun_firesupport_import_bookmark_button : tun_firesupport_button_base + { + type = 1; + idc = BOOKMARK_IMPORT_BOOKMARK_IDC; + x = safeZoneX + safeZoneW * 0.409375; + y = safeZoneY + safeZoneH * 0.525; + w = safeZoneW * 0.05260417; + h = safeZoneH * 0.05; + text = "$STR_tun_firesupport_bookmark_import"; + action = "$STR_tun_firesupport_import_bookmark_action"; + tooltip = "$STR_tun_firesupport_bookmark_import_tooltip"; + + }; + }; +}; diff --git a/addons/firesupport/Firesupport_idc.hpp b/addons/firesupport/Firesupport_idc.hpp new file mode 100644 index 0000000..1ef0f5e --- /dev/null +++ b/addons/firesupport/Firesupport_idc.hpp @@ -0,0 +1,29 @@ +#define MAIN_IDD 22200 +#define EASTING_IDC 22201 +#define NORTHING_IDC 22202 +#define COUNT_IDC 22203 +#define RANGE_IDC 22204 +#define DELAY_IDC 22205 +#define EASTING_END_IDC 22206 +#define NORTHING_END_IDC 22207 +#define REMAINIG_AMMO_IDC 22208 +#define REMAINIG_AMMO_PROGRESBAR_IDC 22209 +#define ETA_IDC 22210 +#define STATUS_IDC 22211 +#define FIRE_IDC 22212 +#define ARTY_LIST_IDC 22213 +#define AMMO_TYPE_IDC 22214 +#define FIRING_TYPE_IDC 22215 +#define EASTING_END_TEXT_IDC 22216 +#define NORTHING_END_TEXT_IDC 22217 +#define MINIMAP_IDC 22218 +#define BOOKMARK_OPEN_BUTTON_IDC 22219 +#define BOOKMARK_LIST_IDC 22220 +#define BOOKMARK_ADD_BOOKMARK_IDC 22221 +#define BOOKMARK_NAME_TEXT_IDC 22222 +#define BOOKMARK_NAME_VALUE_IDC 22223 +#define BOOKMARK_REMOVE_BOOKMARK_IDC 22224 +#define BOOKMARK_EDITBOX_IDC 22225 +#define BOOKMARK_IMPORT_BOOKMARK_IDC 22226 +#define BOOKMARK_EXPORT_BOOKMARK_IDC 22227 + diff --git a/addons/firesupport/GUIBaseClasses.hpp b/addons/firesupport/GUIBaseClasses.hpp new file mode 100644 index 0000000..6003361 --- /dev/null +++ b/addons/firesupport/GUIBaseClasses.hpp @@ -0,0 +1,1820 @@ +// Generated by: "Default" call BIS_fnc_exportGUIBaseClasses; + +// Control types +#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_HITZONES 17 +#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_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 +#define CT_ITEMSLOT 103 +#define CT_CHECKBOX 77 + +// 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 0x00 +#define ST_MULTI 0x10 +#define ST_TITLE_BAR 0x20 +#define ST_PICTURE 0x30 +#define ST_FRAME 0x40 +#define ST_BACKGROUND 0x50 +#define ST_GROUP_BOX 0x60 +#define ST_GROUP_BOX2 0x70 +#define ST_HUD_BACKGROUND 0x80 +#define ST_TILE_PICTURE 0x90 +#define ST_WITH_RECT 0xA0 +#define ST_LINE 0xB0 +#define ST_UPPERCASE 0xC0 +#define ST_LOWERCASE 0xD0 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// progress bar +#define ST_VERTICAL 0x01 +#define ST_HORIZONTAL 0 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + +// Tree styles +#define TR_SHOWROOT 1 +#define TR_AUTOCOLLAPSE 2 + +// Default grid +#define GUI_GRID_WAbs ((safezoneW / safezoneH) min 1.2) +#define GUI_GRID_HAbs (GUI_GRID_WAbs / 1.2) +#define GUI_GRID_W (GUI_GRID_WAbs / 40) +#define GUI_GRID_H (GUI_GRID_HAbs / 25) +#define GUI_GRID_X (safezoneX) +#define GUI_GRID_Y (safezoneY + safezoneH - GUI_GRID_HAbs) + +// Default text sizes +#define GUI_TEXT_SIZE_SMALL (GUI_GRID_H * 0.8) +#define GUI_TEXT_SIZE_MEDIUM (GUI_GRID_H * 1) +#define GUI_TEXT_SIZE_LARGE (GUI_GRID_H * 1.2) + +// Pixel grid +#define pixelScale 0.50 +#define GRID_W (pixelW * pixelGrid * pixelScale) +#define GRID_H (pixelH * pixelGrid * pixelScale) + + +class ScrollBar +{ + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,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 = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + shadow = 0; + scrollSpeed = 0.06; + width = 0; + height = 0; + autoScrollEnabled = 0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; +}; +class RscObject +{ + access = 0; + type = CT_OBJECT; + scale = 1; + direction[] = {0,0,1}; + up[] = {0,1,0}; + shadow = 0; +}; +class RscText +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_STATIC; + idc = -1; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + text = ""; + fixedWidth = 0; + x = 0; + y = 0; + h = 0.037; + w = 0.3; + style = ST_LEFT; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + font = "RobotoCondensed"; + SizeEx = GUI_TEXT_SIZE_MEDIUM; + linespacing = 1; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; +class RscFrame +{ + type = CT_STATIC; + idc = -1; + deletable = 0; + style = ST_FRAME; + shadow = 2; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "RobotoCondensed"; + sizeEx = 0.02; + text = ""; + x = 0; + y = 0; + w = 0.3; + h = 0.3; +}; +class RscLine: RscText +{ + idc = -1; + style = ST_MULTI + ST_TITLE_BAR + ST_HUD_BACKGROUND; + x = 0.17; + y = 0.48; + w = 0.66; + h = 0; + text = ""; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; +}; +class RscProgress +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_PROGRESS; + style = ST_HORIZONTAL; + colorFrame[] = {0,0,0,0}; + colorBar[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])" + }; + x = 0.344; + y = 0.619; + w = 0.313726; + h = 0.0261438; + shadow = 2; + texture = "#(argb,8,8,3)color(1,1,1,1)"; +}; +class RscPicture +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_STATIC; + idc = -1; + style = ST_MULTI + ST_TITLE_BAR; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "TahomaB"; + sizeEx = 0; + lineSpacing = 0; + text = ""; + fixedWidth = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.2; + h = 0.15; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; +class RscPictureKeepAspect: RscPicture +{ + style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO; +}; +class RscVideo: RscPicture +{ + autoplay = 1; + loops = 1; +}; +class RscHTML +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_HTML; + idc = -1; + style = ST_LEFT; + filename = ""; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + colorBold[] = {1,1,1,1}; + colorLink[] = {1,1,1,0.75}; + colorLinkActive[] = {1,1,1,1}; + colorPicture[] = {1,1,1,1}; + colorPictureLink[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureBorder[] = {0,0,0,0}; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + class H1 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_LARGE; + align = "left"; + }; + class H2 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "right"; + }; + class H3 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "left"; + }; + class H4 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "left"; + }; + class H5 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "left"; + }; + class H6 + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "left"; + }; + class P + { + font = "RobotoCondensed"; + fontBold = "RobotoCondensedBold"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + align = "left"; + }; + x = 0; + y = 0; + w = 0.1; + h = 0.1; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + prevPage = "\A3\ui_f\data\gui\rsccommon\rschtml\arrow_left_ca.paa"; + nextPage = "\A3\ui_f\data\gui\rsccommon\rschtml\arrow_right_ca.paa"; + shadow = 2; +}; +class RscButton +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_BUTTON; + text = ""; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + colorBackground[] = {0,0,0,0.5}; + colorBackgroundDisabled[] = {0,0,0,0.5}; + colorBackgroundActive[] = {0,0,0,1}; + colorFocused[] = {0,0,0,1}; + colorShadow[] = {0,0,0,0}; + colorBorder[] = {0,0,0,1}; + soundEnter[] = + { + "\A3\ui_f\data\sound\RscButton\soundEnter", + 0.09, + 1 + }; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButton\soundPush", + 0.09, + 1 + }; + soundClick[] = + { + "\A3\ui_f\data\sound\RscButton\soundClick", + 0.09, + 1 + }; + soundEscape[] = + { + "\A3\ui_f\data\sound\RscButton\soundEscape", + 0.09, + 1 + }; + idc = -1; + style = ST_CENTER; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + shadow = 2; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + url = ""; + offsetX = 0; + offsetY = 0; + offsetPressedX = 0; + offsetPressedY = 0; + borderSize = 0; +}; +class RscShortcutButton +{ + deletable = 0; + fade = 0; + type = CT_SHORTCUTBUTTON; + x = 0.1; + y = 0.1; + class HitZone + { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; + class ShortcutPos + { + left = 0; + top = ((GUI_GRID_HAbs / 20) - GUI_TEXT_SIZE_MEDIUM) / 2; + w = GUI_TEXT_SIZE_MEDIUM * (3/4); + h = GUI_TEXT_SIZE_MEDIUM; + }; + class TextPos + { + left = GUI_TEXT_SIZE_MEDIUM * (3/4); + top = ((GUI_GRID_HAbs / 20) - GUI_TEXT_SIZE_MEDIUM) / 2; + right = 0.005; + bottom = 0; + }; + shortcuts[] = {}; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {1,1,1,1}; + colorFocused[] = {1,1,1,1}; + color2[] = {0.95,0.95,0.95,1}; + colorDisabled[] = {1,1,1,0.25}; + colorBackground[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 1 + }; + colorBackgroundFocused[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 1 + }; + colorBackground2[] = {1,1,1,1}; + soundEnter[] = + { + "\A3\ui_f\data\sound\RscButton\soundEnter", + 0.09, + 1 + }; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButton\soundPush", + 0.09, + 1 + }; + soundClick[] = + { + "\A3\ui_f\data\sound\RscButton\soundClick", + 0.09, + 1 + }; + soundEscape[] = + { + "\A3\ui_f\data\sound\RscButton\soundEscape", + 0.09, + 1 + }; + class Attributes + { + font = "RobotoCondensed"; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; + idc = -1; + style = ST_LEFT; + default = 0; + shadow = 1; + w = 0.183825; + h = (GUI_GRID_HAbs / 20); + textSecondary = ""; + colorSecondary[] = {1,1,1,1}; + colorFocusedSecondary[] = {1,1,1,1}; + color2Secondary[] = {0.95,0.95,0.95,1}; + colorDisabledSecondary[] = {1,1,1,0.25}; + sizeExSecondary = GUI_TEXT_SIZE_MEDIUM; + fontSecondary = "RobotoCondensed"; + animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa"; + animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa"; + animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa"; + periodFocus = 1.2; + periodOver = 0.8; + period = 0.4; + font = "RobotoCondensed"; + size = GUI_TEXT_SIZE_MEDIUM; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + text = ""; + url = ""; + action = ""; + class AttributesImage + { + font = "RobotoCondensed"; + color = "#E5E5E5"; + align = "left"; + }; +}; +class RscEdit +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_EDIT; + x = 0; + y = 0; + h = 0.04; + w = 0.2; + colorBackground[] = {0,0,0,0}; + colorText[] = {0.95,0.95,0.95,1}; + colorDisabled[] = {1,1,1,0.25}; + colorSelection[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 1 + }; + autocomplete = ""; + text = ""; + size = 0.2; + style = ST_FRAME; + font = "RobotoCondensed"; + shadow = 2; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + canModify = 1; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; +class RscCombo +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_COMBO; + colorSelect[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,1}; + colorScrollbar[] = {1,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureDisabled[] = {1,1,1,0.25}; + colorPictureRight[] = {1,1,1,1}; + colorPictureRightSelected[] = {1,1,1,1}; + colorPictureRightDisabled[] = {1,1,1,0.25}; + colorTextRight[] = {1,1,1,1}; + colorSelectRight[] = {0,0,0,1}; + colorSelect2Right[] = {0,0,0,1}; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + 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; + class ComboScrollBar: ScrollBar + { + color[] = {1,1,1,1}; + }; + style = ST_MULTI + ST_NO_RECT; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + shadow = 0; + x = 0; + y = 0; + w = 0.12; + h = 0.035; + colorSelectBackground[] = {1,1,1,0.7}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + colorActive[] = {1,0,0,1}; +}; +class RscListBox +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_LISTBOX; + rowHeight = 0; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + colorScrollbar[] = {1,0,0,0}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorSelectBackground[] = {0.95,0.95,0.95,1}; + colorSelectBackground2[] = {1,1,1,0.5}; + colorBackground[] = {0,0,0,0.3}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscListbox\soundSelect", + 0.09, + 1 + }; + 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)"; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureDisabled[] = {1,1,1,0.25}; + colorPictureRight[] = {1,1,1,1}; + colorPictureRightSelected[] = {1,1,1,1}; + colorPictureRightDisabled[] = {1,1,1,0.25}; + colorTextRight[] = {1,1,1,1}; + colorSelectRight[] = {0,0,0,1}; + colorSelect2Right[] = {0,0,0,1}; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + class ListScrollBar: ScrollBar + { + color[] = {1,1,1,1}; + autoScrollEnabled = 1; + }; + x = 0; + y = 0; + w = 0.3; + h = 0.3; + style = LB_TEXTURES; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + shadow = 0; + colorShadow[] = {0,0,0,0.5}; + period = 1.2; + maxHistoryDelay = 1; +}; +class RscListNBox +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_LISTNBOX; + rowHeight = 0; + colorText[] = {1,1,1,1}; + colorScrollbar[] = {0.95,0.95,0.95,1}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorSelectBackground[] = {0.95,0.95,0.95,1}; + colorSelectBackground2[] = {1,1,1,0.5}; + colorBackground[] = {0,0,0,1}; + maxHistoryDelay = 1; + soundSelect[] = + { + "", + 0.1, + 1 + }; + 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)"; + drawSideArrows = 0; + columns[] = {0.3,0.6,0.7}; + idcLeft = -1; + idcRight = -1; + class ListScrollBar: ScrollBar + { + }; + style = ST_MULTI; + shadow = 0; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + color[] = {0.95,0.95,0.95,1}; + colorDisabled[] = {1,1,1,0.25}; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureDisabled[] = {1,1,1,1}; + period = 1.2; + x = 0; + y = 0; + w = 0.3; + h = 0.3; + class ScrollBar: ScrollBar + { + }; +}; +class RscXListBox +{ + deletable = 0; + fade = 0; + idc = -1; + type = CT_XLISTBOX; + x = 0.1; + y = 0.1; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + colorSelect[] = {0.95,0.95,0.95,1}; + colorText[] = {1,1,1,1}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscListbox\soundSelect", + 0.09, + 1 + }; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureDisabled[] = {1,1,1,0.25}; + colorPictureRight[] = {1,1,1,1}; + colorPictureRightSelected[] = {1,1,1,1}; + colorPictureRightDisabled[] = {1,1,1,0.25}; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + style = ST_CENTER + LB_TEXTURES + SL_HORZ; + shadow = 2; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + w = 0.14706; + h = 0.039216; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; +}; +class RscTree +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_TREE; + colorBackground[] = {0,0,0,0}; + colorSelect[] = {1,1,1,0.7}; + colorDisabled[] = {1,1,1,0.25}; + colorText[] = {1,1,1,1}; + colorSelectText[] = {0,0,0,1}; + colorBorder[] = {0,0,0,0}; + colorSearch[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])" + }; + colorMarked[] = {0.2,0.3,0.7,1}; + colorMarkedText[] = {0,0,0,1}; + colorMarkedSelected[] = {0,0.5,0.5,1}; + multiselectEnabled = 0; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {0,0,0,1}; + colorPictureDisabled[] = {1,1,1,0.25}; + colorPictureRight[] = {1,1,1,1}; + colorPictureRightSelected[] = {0,0,0,1}; + colorPictureRightDisabled[] = {1,1,1,0.25}; + colorArrow[] = {1,1,1,1}; + maxHistoryDelay = 1; + shadow = 0; + style = ST_LEFT; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa"; + hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa"; + x = 0; + y = 0; + w = 0.1; + h = 0.2; + rowHeight = 0.0439091; + colorSelectBackground[] = {0,0,0,0.5}; + colorLines[] = {0,0,0,0}; + borderSize = 0; + expandOnDoubleclick = 1; + class ScrollBar: ScrollBar + { + }; +}; +class RscSlider +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_SLIDER; + style = SL_HORZ; + color[] = {1,1,1,0.8}; + colorActive[] = {1,1,1,1}; + shadow = 0; + x = 0; + y = 0; + w = 0.3; + h = 0.025; +}; +class RscXSliderH +{ + deletable = 0; + fade = 0; + type = CT_XSLIDER; + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisable[] = {1,1,1,0.4}; + style = SL_TEXTURES + SL_HORZ; + shadow = 0; + x = 0; + y = 0; + h = 0.029412; + w = 0.4; + colorDisabled[] = {1,1,1,0.2}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; +class RscActiveText +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_ACTIVETEXT; + style = ST_CENTER; + color[] = {0,0,0,1}; + colorActive[] = {0.3,0.4,0,1}; + colorDisabled[] = {1,1,1,0.25}; + soundEnter[] = + { + "", + 0.1, + 1 + }; + soundPush[] = + { + "", + 0.1, + 1 + }; + soundClick[] = + { + "", + 0.1, + 1 + }; + soundEscape[] = + { + "", + 0.1, + 1 + }; + text = ""; + default = 0; + idc = -1; + x = 0; + y = 0; + h = 0.035; + w = 0.035; + font = "RobotoCondensed"; + shadow = 2; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + url = ""; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; +class RscActivePicture: RscActiveText +{ + style = ST_MULTI + ST_TITLE_BAR; + color[] = {1,1,1,0.5}; + colorActive[] = {1,1,1,1}; +}; +class RscActivePictureKeepAspect: RscActivePicture +{ + style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO; +}; +class RscStructuredText +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_STRUCTURED_TEXT; + idc = -1; + style = ST_LEFT; + colorText[] = {1,1,1,1}; + class Attributes + { + font = "RobotoCondensed"; + color = "#ffffff"; + colorLink = "#D09B43"; + align = "left"; + shadow = 1; + }; + x = 0; + y = 0; + h = 0.035; + w = 0.1; + text = ""; + size = GUI_TEXT_SIZE_MEDIUM; + shadow = 1; +}; +class RscToolbox +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_TOOLBOX; + style = ST_CENTER; + colorText[] = {0.95,0.95,0.95,1}; + color[] = {0.95,0.95,0.95,1}; + colorTextSelect[] = {0.95,0.95,0.95,1}; + colorSelect[] = {0.95,0.95,0.95,1}; + colorTextDisable[] = {0.4,0.4,0.4,1}; + colorDisable[] = {0.4,0.4,0.4,1}; + colorSelectedBg[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])", + 0.5 + }; + shadow = 0; + strings[] = + { + "", + "" + }; + x = 0; + y = 0; + w = 0.3; + h = 0.025; + rows = 1; + columns = 2; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_SMALL; +}; +class RscControlsGroup +{ + deletable = 0; + fade = 0; + class VScrollbar: ScrollBar + { + color[] = {1,1,1,1}; + width = 0.021; + autoScrollEnabled = 1; + }; + class HScrollbar: ScrollBar + { + color[] = {1,1,1,1}; + height = 0.028; + }; + class Controls + { + }; + type = CT_CONTROLS_GROUP; + idc = -1; + x = 0; + y = 0; + w = 1; + h = 1; + shadow = 0; + style = ST_MULTI; +}; +class RscControlsGroupNoScrollbars: RscControlsGroup +{ + class VScrollbar: VScrollbar + { + width = 0; + }; + class HScrollbar: HScrollbar + { + height = 0; + }; +}; +class RscControlsGroupNoHScrollbars: RscControlsGroup +{ + class HScrollbar: HScrollbar + { + height = 0; + }; +}; +class RscControlsGroupNoVScrollbars: RscControlsGroup +{ + class VScrollbar: VScrollbar + { + width = 0; + }; +}; +class RscButtonTextOnly: RscButton +{ + SizeEx = GUI_TEXT_SIZE_SMALL; + colorBackground[] = {1,1,1,0}; + colorBackgroundActive[] = {1,1,1,0}; + colorBackgroundDisabled[] = {1,1,1,0}; + colorFocused[] = {1,1,1,0}; + colorShadow[] = {1,1,1,0}; + borderSize = 0; +}; +class RscButtonMenu: RscShortcutButton +{ + idc = -1; + type = CT_SHORTCUTBUTTON; + style = ST_CENTER + ST_FRAME + ST_HUD_BACKGROUND; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + colorBackground[] = {0,0,0,0.8}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground2[] = {0.75,0.75,0.75,1}; + color[] = {1,1,1,1}; + colorFocused[] = {0,0,0,1}; + color2[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + textSecondary = ""; + colorSecondary[] = {1,1,1,1}; + colorFocusedSecondary[] = {0,0,0,1}; + color2Secondary[] = {0,0,0,1}; + colorDisabledSecondary[] = {1,1,1,0.25}; + sizeExSecondary = GUI_TEXT_SIZE_MEDIUM; + fontSecondary = "PuristaLight"; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = GUI_TEXT_SIZE_MEDIUM; + sizeEx = GUI_TEXT_SIZE_MEDIUM; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + class TextPos + { + left = 0.25 * GUI_GRID_W; + top = (GUI_GRID_H - GUI_TEXT_SIZE_MEDIUM) / 2; + right = 0.005; + bottom = 0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = 5.25 * GUI_GRID_W; + top = 0; + w = 1 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + soundEnter[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEnter", + 0.09, + 1 + }; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundPush", + 0.09, + 1 + }; + soundClick[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundClick", + 0.09, + 1 + }; + soundEscape[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEscape", + 0.09, + 1 + }; +}; +class RscButtonMenuOK: RscButtonMenu +{ + idc = 1; + shortcuts[] = + { + "0x00050000 + 0", + 28, + 57, + 156 + }; + default = 1; + text = "OK"; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButtonMenuOK\soundPush", + 0.09, + 1 + }; +}; +class RscButtonMenuCancel: RscButtonMenu +{ + idc = 2; + shortcuts[] = + { + "0x00050000 + 1" + }; + text = "Cancel"; +}; +class RscButtonMenuSteam: RscButtonMenu +{ + colorBackground[] = {0.0313726,0.721569,0.917647,1}; + textureNoShortcut = "\A3\Ui_f\data\GUI\RscCommon\RscButtonMenuSteam\steam_ca.paa"; + class TextPos + { + left = 0.0325; + top = (GUI_GRID_H - GUI_TEXT_SIZE_MEDIUM) / 2; + right = 0.005; + bottom = 0; + }; + class ShortcutPos + { + left = 0.005; + top = 0.005; + w = 0.0225; + h = 0.03; + }; +}; +class RscMapControl +{ + deletable = 0; + fade = 0; + access = 0; + type = CT_MAP_MAIN; + idc = 51; + style = ST_MULTI + ST_TITLE_BAR; + colorBackground[] = {0.929412,0.929412,0.929412,1}; + colorOutside[] = {0.929412,0.929412,0.929412,1}; + colorText[] = {0,0,0,1}; + font = "TahomaB"; + sizeEx = 0.04; + colorSea[] = {0.467,0.631,0.851,0.5}; + colorForest[] = {0.6,0.8,0.2,0.25}; + colorRocks[] = {0.5,0.5,0.5,0.5}; + colorCountlines[] = {0.647059,0.533333,0.286275,1}; + colorMainCountlines[] = {0.858824,0,0,1}; + colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; + colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; + colorForestBorder[] = {0,0,0,0}; + colorRocksBorder[] = {0,0,0,0}; + colorPowerLines[] = {0.1,0.1,0.1,1}; + colorRailWay[] = {0.8,0.2,0,1}; + colorNames[] = {0.1,0.1,0.1,0.9}; + colorInactive[] = {1,1,1,0.5}; + colorLevels[] = {0,0,0,1}; + colorTracks[] = {0.2,0.13,0,1}; + colorRoads[] = {0.2,0.13,0,1}; + colorMainRoads[] = {0,0,0,1}; + colorTracksFill[] = {1,0.88,0.65,0.3}; + colorRoadsFill[] = {1,0.88,0.65,1}; + colorMainRoadsFill[] = {0.94,0.69,0.2,1}; + colorGrid[] = {0.05,0.1,0,0.6}; + colorGridMap[] = {0.05,0.1,0,0.4}; + stickX[] = {0.2,["Gamma",1,1.5]}; + stickY[] = {0.2,["Gamma",1,1.5]}; + class Legend + { + colorBackground[] = {1,1,1,0.5}; + color[] = {0,0,0,1}; + x = SafeZoneX + GUI_GRID_W; + y = SafeZoneY + safezoneH - 4.5 * GUI_GRID_H; + w = 10 * GUI_GRID_W; + h = 3.5 * GUI_GRID_H; + font = "RobotoCondensed"; + sizeEx = GUI_TEXT_SIZE_SMALL; + }; + class ActiveMarker + { + color[] = {0.3,0.1,0.9,1}; + size = 50; + }; + class Command + { + color[] = {1,1,1,1}; + icon = "\a3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Task + { + taskNone = "#(argb,8,8,3)color(0,0,0,0)"; + taskCreated = "#(argb,8,8,3)color(0,0,0,1)"; + taskAssigned = "#(argb,8,8,3)color(1,1,1,1)"; + taskSucceeded = "#(argb,8,8,3)color(0,1,0,1)"; + taskFailed = "#(argb,8,8,3)color(1,0,0,1)"; + taskCanceled = "#(argb,8,8,3)color(1,0.5,0,1)"; + 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}; + 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])" + }; + 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"; + size = 27; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class CustomMark + { + color[] = {1,1,1,1}; + icon = "\a3\ui_f\data\map\mapcontrol\custommark_ca.paa"; + size = 18; + importance = 1; + coefMin = 1; + coefMax = 1; + }; + class Tree + { + color[] = {0.45,0.64,0.33,0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = 12; + importance = "0.9 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class SmallTree + { + color[] = {0.45,0.64,0.33,0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = 12; + importance = "0.6 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Bush + { + color[] = {0.45,0.64,0.33,0.4}; + icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; + size = "14/2"; + importance = "0.2 * 14 * 0.05 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Church + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Chapel + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Cross + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Rock + { + color[] = {0.1,0.1,0.1,0.8}; + icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; + size = 12; + importance = "0.5 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Bunker + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 14; + importance = "1.5 * 14 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Fortress + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class Fountain + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; + size = 11; + importance = "1 * 12 * 0.05"; + coefMin = 0.25; + coefMax = 4; + }; + class ViewTower + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; + size = 16; + importance = "2.5 * 16 * 0.05"; + coefMin = 0.5; + coefMax = 4; + }; + class Lighthouse + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Quay + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Fuelstation + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Hospital + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class BusStop + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class LineMarker + { + textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)"; + lineWidthThin = 0.008; + lineWidthThick = 0.014; + lineDistanceMin = 3e-005; + lineLengthMin = 5; + }; + class Transmitter + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Stack + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; + size = 16; + importance = "2 * 16 * 0.05"; + coefMin = 0.4; + coefMax = 2; + }; + class Ruin + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; + size = 16; + importance = "1.2 * 16 * 0.05"; + coefMin = 1; + coefMax = 4; + }; + class Tourism + { + color[] = {0,0,0,1}; + icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; + size = 16; + importance = "1 * 16 * 0.05"; + coefMin = 0.7; + coefMax = 4; + }; + class Watertower + { + color[] = {1,1,1,1}; + icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + }; + class Waypoint + { + color[] = {1,1,1,1}; + importance = 1; + coefMin = 1; + coefMax = 1; + icon = "\a3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; + size = 18; + }; + class WaypointCompleted + { + color[] = {1,1,1,1}; + importance = 1; + coefMin = 1; + coefMax = 1; + icon = "\a3\ui_f\data\map\mapcontrol\waypointcompleted_ca.paa"; + size = 18; + }; + moveOnEdges = 1; + x = "SafeZoneXAbs"; + y = SafeZoneY + 1.5 * GUI_GRID_H; + w = "SafeZoneWAbs"; + h = SafeZoneH - 1.5 * GUI_GRID_H; + shadow = 0; + ptsPerSquareSea = 5; + ptsPerSquareTxt = 20; + ptsPerSquareCLn = 10; + ptsPerSquareExp = 10; + ptsPerSquareCost = 10; + ptsPerSquareFor = 9; + ptsPerSquareForEdge = 9; + ptsPerSquareRoad = 6; + ptsPerSquareObj = 9; + scaleMin = 0.001; + scaleMax = 1; + scaleDefault = 0.16; + alphaFadeStartScale = 2; + alphaFadeEndScale = 2; + colorTrails[] = {0.84,0.76,0.65,0.15}; + colorTrailsFill[] = {0.84,0.76,0.65,0.65}; + widthRailWay = 4; + fontLabel = "RobotoCondensed"; + sizeExLabel = GUI_TEXT_SIZE_SMALL; + fontGrid = "TahomaB"; + fontUnits = "TahomaB"; + sizeExUnits = GUI_TEXT_SIZE_SMALL; + fontNames = "RobotoCondensed"; + sizeExNames = GUI_TEXT_SIZE_SMALL * 2; + fontInfo = "RobotoCondensed"; + sizeExInfo = GUI_TEXT_SIZE_SMALL; + fontLevel = "TahomaB"; + text = "#(argb,8,8,3)color(1,1,1,1)"; + idcMarkerColor = -1; + idcMarkerIcon = -1; + textureComboBoxColor = "#(argb,8,8,3)color(1,1,1,1)"; + showMarkers = 1; + class power + { + icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; + size = 24; + importance = 1; + coefMin = 0.85; + coefMax = 1; + 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; + 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; + 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; + 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; + color[] = {0,0,0,1}; + }; + maxSatelliteAlpha = 0.5; + sizeExLevel = 0.03; + showCountourInterval = 1; + sizeExGrid = 0.032; +}; +class RscMapControlEmpty: RscMapControl +{ + type = CT_MAP_MAIN; + ptsPerSquareSea = 1000; + ptsPerSquareTxt = 1000; + ptsPerSquareCLn = 1000; + ptsPerSquareExp = 1000; + ptsPerSquareCost = 1000; + ptsPerSquareFor = 1000; + ptsPerSquareForEdge = 1000; + ptsPerSquareRoad = 1000; + ptsPerSquareObj = 1000; + alphaFadeStartScale = 0; + alphaFadeEndScale = 0; + colorBackground[] = {1,1,1,1}; + colorOutside[] = {1,1,1,1}; + colorSea[] = {0,0,0,0}; + colorForest[] = {0,0,0,0}; + colorForestBorder[] = {0,0,0,0}; + colorRocks[] = {0,0,0,0}; + colorRocksBorder[] = {0,0,0,0}; + colorLevels[] = {0,0,0,0}; + colorMainCountlines[] = {0,0,0,0}; + colorCountlines[] = {0,0,0,0}; + colorMainCountlinesWater[] = {0,0,0,0}; + colorCountlinesWater[] = {0,0,0,0}; + colorPowerLines[] = {0,0,0,0}; + colorRailWay[] = {0,0,0,0}; + colorNames[] = {0,0,0,0}; + colorInactive[] = {0,0,0,0}; + colorGrid[] = {0,0,0,0}; + colorGridMap[] = {0,0,0,0}; + class Task: Task + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + iconCreated = "#(argb,8,8,3)color(0,0,0,0)"; + iconCanceled = "#(argb,8,8,3)color(0,0,0,0)"; + iconDone = "#(argb,8,8,3)color(0,0,0,0)"; + iconFailed = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + colorCreated[] = {0,0,0,0}; + colorCanceled[] = {0,0,0,0}; + colorDone[] = {0,0,0,0}; + colorFailed[] = {0,0,0,0}; + size = 0; + }; + class Waypoint: Waypoint + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class WaypointCompleted: WaypointCompleted + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class CustomMark: CustomMark + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Command: Command + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Bush: Bush + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Rock: Rock + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class SmallTree: SmallTree + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Tree: Tree + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class busstop: BusStop + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class fuelstation: Fuelstation + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class hospital: Hospital + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class church: Church + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class lighthouse: Lighthouse + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class power: power + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class powersolar: powersolar + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class powerwave: powerwave + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class powerwind: powerwind + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class quay: Quay + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class shipwreck: Shipwreck + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class transmitter: Transmitter + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class watertower: Watertower + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Bunker: Bunker + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Cross: Cross + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Fortress: Fortress + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Fountain: Fountain + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Chapel: Chapel + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Ruin: Ruin + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Stack: Stack + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class Tourism: Tourism + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; + class ViewTower: ViewTower + { + icon = "#(argb,8,8,3)color(0,0,0,0)"; + color[] = {0,0,0,0}; + size = 0; + }; +}; +class RscCheckBox +{ + idc = -1; + type = CT_CHECKBOX; + deletable = 0; + style = ST_LEFT; + checked = 0; + x = "0.375 * safezoneW + safezoneX"; + y = "0.36 * safezoneH + safezoneY"; + w = "0.025 * safezoneW"; + h = "0.04 * safezoneH"; + color[] = {1,1,1,0.7}; + colorFocused[] = {1,1,1,1}; + colorHover[] = {1,1,1,1}; + colorPressed[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.2}; + colorBackground[] = {0,0,0,0}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackgroundHover[] = {0,0,0,0}; + colorBackgroundPressed[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + textureChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureFocusedChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureFocusedUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureHoverChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureHoverUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + texturePressedChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + texturePressedUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureDisabledChecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureDisabledUnchecked = "A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + soundEnter[] = + { + "", + 0.1, + 1 + }; + soundPush[] = + { + "", + 0.1, + 1 + }; + soundClick[] = + { + "", + 0.1, + 1 + }; + soundEscape[] = + { + "", + 0.1, + 1 + }; +}; diff --git a/addons/firesupport/Stringtable.xml b/addons/firesupport/Stringtable.xml new file mode 100644 index 0000000..7c72d59 --- /dev/null +++ b/addons/firesupport/Stringtable.xml @@ -0,0 +1,991 @@ + + + + + + EASTING + EASTING + EASTING + EASTING + EASTING + EASTING + EASTING + EASTING + EASTING + EASTING + + + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + NORTHING + + + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + Rounds to Fire + + + Radius + Radius + Radius + Radius + Radius + Radius + Radius + Radius + Radius + Radius + + + Delay + Delay + Delay + Delay + Delay + Delay + Delay + Delay + Delay + Delay + + + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + 2nd EASTING + + + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + 2nd NORTHING + + + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + Remaining Ammo + + + ETA + ETA + ETA + ETA + ETA + ETA + ETA + ETA + ETA + ETA + + + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + A.F.I: Advanced Firesupport Interface + + + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + Bookmarks + + + Name + Name + Name + Name + Name + Name + Name + Name + Name + Name + + + Remove + Remove + Remove + Remove + Remove + Remove + Remove + Remove + Remove + Remove + + + Add + Add + Add + Add + Add + Add + Add + Add + Add + Add + + + Import + Import + Import + Import + Import + Import + Import + Import + Import + Import + + + Export + Export + Export + Export + Export + Export + Export + Export + Export + Export + + + Minimap + Minimap + Minimap + Minimap + Minimap + Minimap + Minimap + Minimap + Minimap + Minimap + + + + + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + [] call tun_firesupport_fnc_fire; + + + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + [] call tun_firesupport_fnc_gun_ammo_dialog + + + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + [] call tun_firesupport_fnc_dialog_close + + + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + [] call tun_firesupport_fnc_update_ammo_count + + + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + ["ammo"] call tun_firesupport_fnc_check_min_values + + + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + ["delay"] call tun_firesupport_fnc_check_min_values + + + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + ["radius"] call tun_firesupport_fnc_check_min_values + + + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + [] call tun_firesupport_fnc_update_everything + + + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + [] call tun_firesupport_fnc_update_firemode + + + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + [] call tun_firesupport_fnc_toggle_bookmarks; + + + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + [] call tun_firesupport_fnc_selected_bookmark; + + + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + [false] call tun_firesupport_fnc_save_bookmarks; + + + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + [true] call tun_firesupport_fnc_save_bookmarks; + + + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + [true] call tun_firesupport_fnc_modify_bookmarks; + + + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + [false] call tun_firesupport_fnc_modify_bookmarks; + + + + + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + Only Numbers. How many rounds will be shot. + + + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + Only numbers. Spread for fire mission (meters) + + + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + Only numbers. Delay between splashes. + + + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + Only numbers. Northing is y (vertical) axis (read from left or right side of map). + + + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + Only numbers. Easting is x (horizontal) axis (read from top or bottom side of map). + + + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + Remaining ammo + + + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + Estimated time to splash + + + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + Give name for firemission to bookmark + + + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + To export, copy and save this array somwhere, like desktop text file. To import bookmarks, copy your array of values here. + + + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + Copy paste array of values to editbox at left and press this + + + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + After pressing this button. Copy paste array from editbox at left somewhere else, like text file at your desktop and save it. + + + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + Remove currently selected bookmark + + + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + Save currently added settings as bookmakr + + + + + Is item required + Is item required + Is item required + Is item required + Is item required + Is item required + Is item required + Is item required + Is item required + Is item required + + + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + Is specifig item required + + + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + TUN Firesupport + + + Required items + Required items + Required items + Required items + Required items + Required items + Required items + Required items + Required items + Required items + + + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + Required items classnames. Must be strings, seperated by comas + + + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + Debug mode + + + + + Standard + Standard + Standard + Standard + Standard + Standard + Standard + Standard + Standard + Standard + + + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + Creeping barrage + + + The Wall + The Wall + The Wall + The Wall + The Wall + The Wall + The Wall + The Wall + The Wall + The Wall + + + + + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + Tun firesupport ammo + + + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + Tun Firesupport + + + Ammo + Ammo + Ammo + Ammo + Ammo + Ammo + Ammo + Ammo + Ammo + Ammo + + + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + Put ammo classname here + + + Amount + Amount + Amount + Amount + Amount + Amount + Amount + Amount + Amount + Amount + + + Amount + Count + Count + Count + Count + Count + Count + Count + Count + Count + + + WIP + WIP + WIP + WIP + WIP + WIP + WIP + WIP + WIP + WIP + + + + + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + + + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + Gun Classname + + + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + Tun Firesupport Gun + + + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + Give classname for gun which will be used. + + + Displayname + Displayname + Displayname + Displayname + Displayname + Displayname + Displayname + Displayname + Displayname + Displayname + + + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + Unique name wich is shown in arty list. MUST BE UNIQUE + + + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + Countdown (Seconds) + + + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + Delay until rounds are fired (calculation delay. Seconds) + + + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + Min Delay + + + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + Min delay between shots (Seconds) + + + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + Min Spread + + + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + Min spread for rounds. default:100m + + + Side + Side + Side + Side + Side + Side + Side + Side + Side + Side + + + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + Which sides gun is this: west, east, resistance, civilian + + + Min Range + Min Range + Min Range + Min Range + Min Range + Min Range + Min Range + Min Range + Min Range + Min Range + + + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + Minium range where this artillery unit can shoot + + + Max Range + Max Range + Max Range + Max Range + Max Range + Max Range + Max Range + Max Range + Max Range + Max Range + + + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + Max Range where this artillery can shoot. + + + Create marker + Create marker + Create marker + Create marker + Create marker + Create marker + Create marker + Create marker + Create marker + Create marker + + + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + Create marker to map. + + + + \ No newline at end of file diff --git a/addons/firesupport/XEH_postInit.sqf b/addons/firesupport/XEH_postInit.sqf new file mode 100644 index 0000000..84f2529 --- /dev/null +++ b/addons/firesupport/XEH_postInit.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" \ No newline at end of file diff --git a/addons/firesupport/XEH_preInit.sqf b/addons/firesupport/XEH_preInit.sqf new file mode 100644 index 0000000..9ba6943 --- /dev/null +++ b/addons/firesupport/XEH_preInit.sqf @@ -0,0 +1,40 @@ +#include "script_component.hpp" +#include "XEH_prep.sqf" + +ISNILS(GVAR(guns_west),[]); +ISNILS(GVAR(guns_east),[]); +ISNILS(GVAR(guns_resistance),[]); +ISNILS(GVAR(guns_civilian),[]); +ISNILS(GVAR(bookmarkValues),[]); +ISNILS(GVAR(bookmarkOpen),false); +ISNILS(GVAR(BookmarkSkip),false); + +if (isServer) then { + GVAR(namespace) = true call CBA_fnc_createNamespace; + publicVariable QGVAR(namespace); +}; + + +//Main settings +[ + QGVAR(is_required), // Unique setting name. Matches resulting variable name + "CHECKBOX", // Type of setting. Can be "CHECKBOX", "EDITBOX", "LIST", "SLIDER" or "COLOR" + [localize "STR_tun_firesupport_cba_is_required", localize "STR_tun_firesupport_cba_is_required_tooltip"], // Display name or display name + tooltip (optional, default: same as setting name) + localize "STR_tun_firesupport_cba_Category_main", // Category for the settings menu + optional sub-category + true, // Extra properties of the setting depending of _settingType. + 1, // 1: all clients share the same setting, 2: setting can't be overwritten (optional, default: 0) + {}, // Script to execute when setting is changed. (optional) + true //Setting will be marked as needing mission restart after being changed. (optional, default false) +] call CBA_Settings_fnc_init; + + +[ + QGVAR(debug), // Unique setting name. Matches resulting variable name + "CHECKBOX", // Type of setting. Can be "CHECKBOX", "EDITBOX", "LIST", "SLIDER" or "COLOR" + [localize "STR_tun_firesupport_cba_debug", localize "STR_tun_firesupport_cba_debug"], // Display name or display name + tooltip (optional, default: same as setting name) + localize "STR_tun_firesupport_cba_Category_main", // Category for the settings menu + optional sub-category + false, // Extra properties of the setting depending of _settingType. + 0, // 1: all clients share the same setting, 2: setting can't be overwritten (optional, default: 0) + {}, // Script to execute when setting is changed. (optional) + false //Setting will be marked as needing mission restart after being changed. (optional, default false) +] call CBA_Settings_fnc_init; diff --git a/addons/firesupport/XEH_prep.sqf b/addons/firesupport/XEH_prep.sqf new file mode 100644 index 0000000..fd3f1c2 --- /dev/null +++ b/addons/firesupport/XEH_prep.sqf @@ -0,0 +1,21 @@ +#include "script_component.hpp" + +#undef PREP +#define PREP(fncName) [QPATHTOF(functions\DOUBLES(fnc,fncName).sqf), QFUNC(fncName)] call CBA_fnc_compileFunction + +PREP(calculate_eta); +PREP(check_min_values); +PREP(dialog_close); +PREP(fire); +PREP(get_realpos); +PREP(gun_ammo_dialog); +PREP(modify_bookmarks); +PREP(module_gun); +PREP(open_dialog); +PREP(save_bookmarks); +PREP(selected_bookmark); +PREP(toggle_bookmarks); +PREP(update_ammo_count); +PREP(update_bookmarks); +PREP(update_everything); +PREP(update_firemode); \ No newline at end of file diff --git a/addons/firesupport/config.cpp b/addons/firesupport/config.cpp new file mode 100644 index 0000000..82c2413 --- /dev/null +++ b/addons/firesupport/config.cpp @@ -0,0 +1,168 @@ +#include "script_component.hpp" + +class CfgPatches +{ + class Tun_Firesupport + { + units[] = { QGVAR(gun_classname) }; + weapons[] = {}; + requiredVersion = 1.94; + requiredAddons[] = {"A3_Modules_F","3DEN","cba_main","cba_xeh","cba_settings","ace_common","ace_interaction","ace_interact_menu"}; + author = "Tuntematon"; + authorUrl = "https://armafinland.fi/"; + }; +}; + +#include "Firesupport_dialog.hpp" +#include "CfgSounds.hpp" + +class CfgFactionClasses +{ + class NO_CATEGORY; + class GVAR(category) : NO_CATEGORY + { + displayName = $STR_tun_firesupport_module_category; + }; +}; + + + +class Extended_PostInit_EventHandlers { + class Tun_Firesupport { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; + +class Extended_PreInit_EventHandlers { + class Tun_Firesupport { + init = QUOTE( call COMPILE_FILE(XEH_preInit) ); + }; +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class ACE_SelfActions { + class ACE_Equipment { + class GVAR(openDialog) { + displayName = "Firesupport"; + condition = QUOTE('tun_tablet' in items _player); + statement = QUOTE([] call FUNC(open_dialog)); + exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; + icon = "\x\Tun\addons\artycomputer_models\data\tablet_icon.paa"; + }; + }; + }; + }; + + + class ACE_Module; + class GVAR(gun_classname): ACE_Module { + author = "Tuntematon"; + category = QGVAR(category); + displayName = $STR_tun_firesupport_module_gun; + function = QFUNC(module_gun); + scope = 2;// Editor visibility; 2 will show it in the menu, 1 will hide it. + isGlobal = 1; // 0 for server only execution, 1 for global execution, 2 for persistent global execution + isTriggerActivated = 0; + isDisposable = 0; // 1 if modules is to be disabled once it's activated (i.e., repeated trigger activation won't work) + //icon = QPATHTOF(UI\Icon_Module_Slideshow_ca.paa); + class Arguments { + class className { + displayName = $STR_tun_firesupport_module_gun_class_displayname; + description = $STR_tun_firesupport_module_gun_class_description; + typeName = "STRING"; + defaultValue = "B_Mortar_01_F"; + }; + + class displayName { + displayName = $STR_tun_firesupport_module_gun_name_displayname; + description = $STR_tun_firesupport_module_gun_name_description; + typeName = "STRING"; + defaultValue = ""; + }; + + class countDown { + displayName = $STR_tun_firesupport_module_gun_countDown_displayname; + description = $STR_tun_firesupport_module_gun_countDown_description; + typeName = "NUMBER"; + defaultValue = 60; + }; + + class delayMin { + displayName = $STR_tun_firesupport_module_gun_delayMin_displayname; + description = $STR_tun_firesupport_module_gun_delayMin_description; + typeName = "NUMBER"; + defaultValue = 2; + }; + + class spreadMin { + displayName = $STR_tun_firesupport_module_gun_spreadMin_displayname; + description = $STR_tun_firesupport_module_gun_spreadMin_description; + typeName = "NUMBER"; + defaultValue = 50; + }; + + class side { + displayName = $STR_tun_firesupport_module_gun_side_displayname; + description = $STR_tun_firesupport_module_gun_side_description; + typeName = "STRING"; + defaultValue = ""; + }; + + class minRange { + displayName = $STR_tun_firesupport_module_gun_minRange_displayname; + description = $STR_tun_firesupport_module_gun_minRange_description; + typeName = "NUMBER"; + defaultValue = 0; + }; + + class maxRange { + displayName = $STR_tun_firesupport_module_gun_maxRange_displayname; + description = $STR_tun_firesupport_module_gun_maxRange_description; + typeName = "NUMBER"; + defaultValue = 10000; + }; + + class marker { + displayName = $STR_tun_firesupport_module_gun_markerToggle_displayname; + description = $STR_tun_firesupport_module_gun_markerToggle_description; + typeName = "BOOL"; + defaultValue = true; + }; + + }; + class ModuleDescription { + description = $STR_tun_firesupport_module_description_gun; + }; + }; + + class GVAR(gun_ammo): ACE_Module { + author = "Tuntematon"; + category = QGVAR(category); + displayName = $STR_tun_firesupport_module_ammo; + function = ""; + scope = 2;// Editor visibility; 2 will show it in the menu, 1 will hide it. + isGlobal = 1; // 0 for server only execution, 1 for global execution, 2 for persistent global execution + isTriggerActivated = 0; + isDisposable = 0; // 1 if modules is to be disabled once it's activated (i.e., repeated trigger activation won't work) + //icon = QPATHTOF(UI\Icon_Module_Slideshow_ca.paa); + class Arguments { + class Ammo { + displayName = $STR_tun_firesupport_module_ammo_displayname; + description = $STR_tun_firesupport_module_ammo_description; + typeName = "STRING"; + defaultValue = "8Rnd_82mm_Mo_shells"; + }; + class Count { + displayName = $STR_tun_firesupport_module_ammo_count_displayName; + description = $STR_tun_firesupport_module_ammo_count_description; + typeName = "NUMBER"; + defaultValue = 0; + }; + }; + class ModuleDescription { + description = $STR_tun_firesupport_module_descriptio_ammo; + }; + }; +}; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_calculate_eta.sqf b/addons/firesupport/functions/fnc_calculate_eta.sqf new file mode 100644 index 0000000..5a3366e --- /dev/null +++ b/addons/firesupport/functions/fnc_calculate_eta.sqf @@ -0,0 +1,94 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_calculate_eta + */ +#include "script_component.hpp" + +private _arty_index = lbCurSel ARTY_LIST_IDC; +private _ammo_index = lbCurSel AMMO_TYPE_IDC; +private _easting = ctrlText EASTING_IDC; +private _northing = ctrlText NORTHING_IDC; +private _eta = "NONE"; +private _eta_number = -1; +if ( _arty_index != -1 && _ammo_index != -1 ) then { + +private _variables = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; + }; + + private _index = lbCurSel ARTY_LIST_IDC; + private _gun_module = _variables select _index; + + private _magazine = lbData [AMMO_TYPE_IDC, lbCurSel AMMO_TYPE_IDC]; + private _initSpeed = getNumber (configfile >> "CfgMagazines" >> _magazine >> "initSpeed"); + + private _pos = [_easting, _northing] call FUNC(get_realpos); + private _countdown = _gun_module getVariable ["countDown", 60]; + + private _distance = _gun_module distance _pos; + + private _minRange= _gun_module getVariable ["minRange", 0]; + private _maxRange = _gun_module getVariable ["maxRange", 10000]; + + _eta = 10 + (_distance / _initSpeed) * 2; + _eta_number = _eta + _countdown; + + _eta = if (_eta == -1) then { + "CANT FIRE"; + } else { + ((str round (_eta + _countdown)) + " s"); + }; + + if (_distance < _minRange || _distance > _maxRange ) then { + _eta = "Out of Range"; + }; + + if (ctrlText REMAINIG_AMMO_IDC == "0") then { + _eta = "Out of Ammo"; + }; + + if (_gun_module getVariable [QGVAR(is_firing), false]) then { + _eta = "Busy"; + }; +}; + +if (GVAR(debug)) then { + _eta = 5; + _eta_number = 5; +}; + +[_eta_number,_eta] \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_check_min_values.sqf b/addons/firesupport/functions/fnc_check_min_values.sqf new file mode 100644 index 0000000..e969b2c --- /dev/null +++ b/addons/firesupport/functions/fnc_check_min_values.sqf @@ -0,0 +1,102 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_check_min_values + */ +#include "script_component.hpp" + +params ["_dialog", ["_force", false, [false]]]; + +if (GVAR(BookmarkSkip)) then { + _force = false; + GVAR(BookmarkSkip) = false; +}; + +private _variables = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; +}; + + +private _index = lbCurSel ARTY_LIST_IDC; +if (_index == -1 ) exitWith { }; + +private _gun_module= _variables select _index; + +private _classname = _gun_module getVariable ["className", "Missing classname"]; +private _name = _gun_module getVariable ["displayName", "Missing name"]; +private _countdown = _gun_module getVariable ["countDown", 60]; +private _side = _gun_module getVariable ["side", sideLogic]; +private _min_spread = _gun_module getVariable ["spreadMin", 100]; +private _min_delay = _gun_module getVariable ["delayMin", 1]; + +switch (_dialog) do { + case "radius": { + private _min_spread = _gun_module getVariable ["spreadMin", 100]; + private _range = parseNumber ctrlText RANGE_IDC; + if (_min_spread > _range || _force) then { + ctrlSetText [RANGE_IDC, str _min_spread]; + }; + }; + + case "delay": { + private _min_delay = _gun_module getVariable ["delayMin", 1]; + private _delay = parseNumber ctrlText DELAY_IDC; + if (_min_delay > _delay || _force) then { + ctrlSetText [DELAY_IDC, str _min_delay]; + }; + }; + + + case "ammo": { + private _index = lbCurSel AMMO_TYPE_IDC; + if (_index != -1 ) then { + private _ammo_module = (synchronizedObjects _gun_module) select lbCurSel AMMO_TYPE_IDC; + private _count_remaining = _ammo_module getVariable "currentCount"; + private _count = parseNumber ctrlText COUNT_IDC; + + if (_count > _count_remaining || _force) then { + ctrlSetText [COUNT_IDC, str _count_remaining]; + }; + } else { + ctrlSetText [COUNT_IDC, " "]; + }; + }; + + default { + /* STATEMENT */ + }; +}; + diff --git a/addons/firesupport/functions/fnc_dialog_close.sqf b/addons/firesupport/functions/fnc_dialog_close.sqf new file mode 100644 index 0000000..390d1d5 --- /dev/null +++ b/addons/firesupport/functions/fnc_dialog_close.sqf @@ -0,0 +1,33 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_dialog_close + */ +#include "script_component.hpp" + + + +player setVariable [QGVAR(easting), ctrlText EASTING_IDC]; + +player setVariable [QGVAR(northing), ctrlText NORTHING_IDC]; + +player setVariable [QGVAR(easting_end), ctrlText EASTING_END_IDC]; + +player setVariable [QGVAR(northing_end), ctrlText NORTHING_END_IDC]; + + + +[GVAR(dialog_PFH)] call CBA_fnc_removePerFrameHandler; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_fire.sqf b/addons/firesupport/functions/fnc_fire.sqf new file mode 100644 index 0000000..a2ea58e --- /dev/null +++ b/addons/firesupport/functions/fnc_fire.sqf @@ -0,0 +1,194 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_fire + */ +#include "script_component.hpp" + +//params [["_easting", nil, [0]], ["_northing", nil, [0]], ["_count", nil, [0]], ["_range", nil, [0]], ["_delay", nil, [0]], ["_easting_end", 0, [0]], ["_northing_end", 0, [0]]]; + +if ( (ctrlText STATUS_IDC) in ["CANT FIRE", "Out of Range", "Out of Ammo", "Busy"] ) exitWith { + hintSilent (ctrlText STATUS_IDC); + playSound "zoom_fail"; +}; + +private _variables = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; +}; + +private _index = lbCurSel ARTY_LIST_IDC; +private _gun_module = _variables select _index; + + +private _easting = ctrlText EASTING_IDC; +private _northing = ctrlText NORTHING_IDC; +private _type = lbData [AMMO_TYPE_IDC, lbCurSel AMMO_TYPE_IDC]; +private _count = parseNumber ctrlText COUNT_IDC; +private _range = parseNumber ctrlText RANGE_IDC; +private _delay = parseNumber ctrlText DELAY_IDC; +private _easting_end = ctrlText EASTING_END_IDC; +private _northing_end = ctrlText NORTHING_END_IDC; +private _firing_style = lbText [FIRING_TYPE_IDC,lbCurSel FIRING_TYPE_IDC]; + +if ( _count <= 0 ) exitWith { + playSound "3DEN_notificationWarning"; +}; + +_gun_module setVariable [QGVAR(is_firing), true]; + +private _ammo = getText (configFile >> "CfgMagazines" >> _type >> "ammo"); + +if (_delay < 1) then { + _delay = 1; +}; + +if (_range < 10) then { + _range = 10; +}; + +private _offset = (100 + (1 / (_delay / 10)^2))/100 * _delay * 1.1 - _delay; +private _delay_min = _delay - _offset; +private _delay_max = _delay + _offset; + +if (_delay < 2) then { + _delay_min = _delay - _delay * 0.7; + _delay_max = _delay + _delay * 1.3; +}; + + + +private _eta = ([] call FUNC(calculate_eta)) select 0; +private _eta_when_done = _eta + (_count * _delay) + 10; + +private _pos = [_easting, _northing] call FUNC(get_realpos); +private _pos_end = [_easting_end, _northing_end] call FUNC(get_realpos); + +switch (_firing_style) do { + + case (localize "STR_tun_firesupport_firemode_standard"): { + + playSound "tun_targetlocation"; + + [{ + playSound "tun_splash"; + //Real positions + _this remoteExec ["BIS_fnc_fireSupportVirtual", 2]; + + }, [_pos, _ammo, _range, _count, [_delay_min, _delay_max], {false}, nil, 300], _eta] call CBA_fnc_waitAndExecute; + }; + + case (localize "STR_tun_firesupport_firemode_creeping_barrage"): { + + private _dir = _pos getDir _pos_end; + private _distance = _pos distance2D _pos_end; + private _distance_steps = _distance / _count; + private _delay_time = 0; + private _distance_start = 0; + private _first = true; + playSound "tun_targetlocation"; + + for "_i" from 1 to _count step 1 do { + private _step_pos = _pos getPos [_distance_start, _dir]; + _wait = _eta + (_delay_time - _offset) + ( random (_offset * 2) ); + ADD(_delay_time, _delay); + ADD(_distance_start, _distance_steps); + + [{ + _this remoteExec ["BIS_fnc_fireSupportVirtual", 2]; + }, [_step_pos, _ammo, _range, 1, 1, {false}, nil, 300], _wait] call CBA_fnc_waitAndExecute; + + if (_first) then { + _first = false; + [{ + playSound "tun_splash"; + }, [], _wait] call CBA_fnc_waitAndExecute; + }; + }; + }; + + case (localize "STR_tun_firesupport_firemode_wall"): { + + private _dir = _pos getDir _pos_end; + private _distance = _pos distance2D _pos_end; + private _delay_time = 0; + private _first = true; + playSound "tun_targetlocation"; + + for "_i" from 1 to _count step 1 do { + private _step_pos = _pos getPos [random _distance, _dir]; + _wait = _eta + (_delay_time - _offset) + ( random (_offset * 2) ); + ADD(_delay_time, _delay); + + [{ + _this remoteExec ["BIS_fnc_fireSupportVirtual", 2]; + }, [_step_pos, _ammo, _range, 1, 1, {false}, nil, 300], _wait] call CBA_fnc_waitAndExecute; + + if (_first) then { + _first = false; + [{ + playSound "tun_splash"; + }, [], _wait] call CBA_fnc_waitAndExecute; + }; + }; + }; + + default { + hint "failed to chose firemode"; + }; +}; + + +private _ammoModule = (synchronizedObjects _gun_module) select lbCurSel AMMO_TYPE_IDC; + +[{ + private _gun_module = _this select 0; + private _count = _this select 1; + private _ammoModule = _this select 2; + + private _count_original = _ammoModule getVariable "currentCount"; + _count = _count_original - _count; + _gun_module setVariable [QGVAR(is_firing), false]; + _ammoModule setVariable ["currentCount", _count, true]; + + [] call FUNC(update_ammo_count); + + playSound "tun_firemissionDone"; + if (_count == 0) then { + [{ + playSound "tun_outOfAmmo"; + }, [], 10] call CBA_fnc_waitAndExecute; + }; +}, [_gun_module, _count, _ammoModule], _eta_when_done] call CBA_fnc_waitAndExecute; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_get_realpos.sqf b/addons/firesupport/functions/fnc_get_realpos.sqf new file mode 100644 index 0000000..33539bd --- /dev/null +++ b/addons/firesupport/functions/fnc_get_realpos.sqf @@ -0,0 +1,24 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [_easting, _northing] call tun_firesupport_fnc_get_realpos + */ +#include "script_component.hpp" +params [["_easting", nil, [""]], ["_northing", nil, [""]]]; + +private _pos = [[_easting, _northing], true] call CBA_fnc_mapGridToPos; + +_pos \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_gun_ammo_dialog.sqf b/addons/firesupport/functions/fnc_gun_ammo_dialog.sqf new file mode 100644 index 0000000..a69ba1a --- /dev/null +++ b/addons/firesupport/functions/fnc_gun_ammo_dialog.sqf @@ -0,0 +1,61 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_gun_ammo_dialog + */ +#include "script_component.hpp" + +["radius", true] call FUNC(check_min_values); +["ammo", true] call FUNC(check_min_values); + +private _modules = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; +}; + +lbClear AMMO_TYPE_IDC; +lbSetCurSel [AMMO_TYPE_IDC, -1]; + +private _index = lbCurSel ARTY_LIST_IDC; +private _gun_module = _modules select _index; + +{ + private _obj = _x; + private _ammo = _obj getVariable "Ammo"; + private _count = _obj getVariable "currentCount"; + private _name = getText (configFile >> "CfgMagazines" >> _ammo >> "displayName"); + _index = lbAdd [AMMO_TYPE_IDC, _name]; + lbSetData [AMMO_TYPE_IDC, _index, _ammo]; +} forEach synchronizedObjects _gun_module; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_modify_bookmarks.sqf b/addons/firesupport/functions/fnc_modify_bookmarks.sqf new file mode 100644 index 0000000..2dcd54e --- /dev/null +++ b/addons/firesupport/functions/fnc_modify_bookmarks.sqf @@ -0,0 +1,45 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [] call tun_firesupport_fnc_modify_bookmarks + */ +#include "script_component.hpp" +params ["_value"]; +if (_value) then { + //ADD bookmark + private _name = ctrlText BOOKMARK_NAME_VALUE_IDC; + private _easting = ctrlText EASTING_IDC; + private _northing = ctrlText NORTHING_IDC; + private _easting2 = ctrlText EASTING_END_IDC; + private _northing2 = ctrlText NORTHING_END_IDC; + private _gun = lbCurSel ARTY_LIST_IDC; + private _gunText = lbText [ARTY_LIST_IDC, _gun]; + private _ammo = lbCurSel AMMO_TYPE_IDC; + private _ammoText = lbText [AMMO_TYPE_IDC, _ammo]; + private _mode = lbCurSel FIRING_TYPE_IDC; + private _modeText = lbText [FIRING_TYPE_IDC,_mode]; + private _count = ctrlText COUNT_IDC; + private _radius = ctrlText RANGE_IDC; + private _delay = ctrlText DELAY_IDC; + + _name = format["%1 [%2:%3]",_name, _easting, _northing]; + GVAR(bookmarkValues) pushBackUnique [_name, _easting, _northing, _easting2, _northing2, _gun, _gunText, _ammo, _ammoText, _mode, _modeText, _count, _radius, _delay]; +} else { + //Remove bookmark + GVAR(bookmarkValues) deleteAt lbCurSel BOOKMARK_LIST_IDC; +}; + +[] call FUNC(update_bookmarks); \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_module_gun.sqf b/addons/firesupport/functions/fnc_module_gun.sqf new file mode 100644 index 0000000..0afaa5c --- /dev/null +++ b/addons/firesupport/functions/fnc_module_gun.sqf @@ -0,0 +1,93 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_module_gun + */ +if (!isServer) exitWith { }; +#include "script_component.hpp" + +private _gun_module = param [0,objNull,[objNull]]; + + +//TODO lisää conffiin että voi muuttaa +private _classname = _gun_module getVariable ["className", "Missing classname"]; +private _name = _gun_module getVariable ["displayName", "Missing name"]; +private _countdown = _gun_module getVariable ["countDown", 60]; +private _side = _gun_module getVariable ["side", sideLogic]; +private _min_spread = _gun_module getVariable ["spreadMin", 100]; +private _min_delay = _gun_module getVariable ["delayMin", 1]; +private _minRange= _gun_module getVariable ["minRange", 0]; +private _maxRange = _gun_module getVariable ["maxRange", 10000]; +private _markerConditio = _gun_module getVariable ["marker", true]; +private _icon = "n_art"; +private _color = "colorCivilian"; + + +//tun_firesupport_ammo_type "Sh_82mm_AMOS", +//tun_firesupport_ammo_count + +{ + private _obj = _x; + private _ammo = _obj getVariable "Ammo"; + private _count = _obj getVariable "Count"; + _obj setVariable ["currentCount", _count, true]; +} forEach synchronizedObjects _gun_module; + + +_gun_module setVariable [QGVAR(is_firing), false]; + +switch ( toLower _side) do { + case "west": { + GVAR(guns_west) pushBack _gun_module; + publicVariable QGVAR(guns_west); + _side = west; + _icon = "b_art"; + _color = "colorBLUFOR"; + }; + + case "east": { + GVAR(guns_east) pushBack _gun_module; + publicVariable QGVAR(guns_east); + _side = east; + _icon = "o_art"; + _color = "colorOPFOR"; + }; + + case "resistance": { + GVAR(guns_resistance) pushBack _gun_module; + publicVariable QGVAR(guns_resistance); + _side = resistance; + _icon = "n_art"; + _color = "colorIndependent"; + }; + + case "civilian": { + GVAR(guns_civilian) pushBack _gun_module; + publicVariable QGVAR(guns_civilian); + _side = civilian; + _icon = "n_art"; + _color = "colorCivilian"; + }; + + default { + /* STATEMENT */ + }; +}; + +if (_markerConditio) then { + private _pos = getpos _gun_module; + [_name, _pos, "ICON", [1, 1], "TYPE:", _icon, "COLOR:", _color, "TEXT:", _name] remoteExecCall ["CBA_fnc_createMarker", _side, true]; +}; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_open_dialog.sqf b/addons/firesupport/functions/fnc_open_dialog.sqf new file mode 100644 index 0000000..f66f1bf --- /dev/null +++ b/addons/firesupport/functions/fnc_open_dialog.sqf @@ -0,0 +1,114 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_open_dialog + */ +#include "script_component.hpp" + +if (GVAR(debug)) then { + hint "debug mode enabled"; +}; + + +createDialog "Firesupport_dialog"; +waitUntil {!isnull (findDisplay MAIN_IDD)}; +findDisplay MAIN_IDD displayCtrl REMAINIG_AMMO_PROGRESBAR_IDC progressSetPosition 0.5; + +private _easting = player getVariable [QGVAR(easting), "00000"]; +private _northing = player getVariable [QGVAR(northing), "00000"]; +private _easting_end = player getVariable [QGVAR(easting_end), "00000"]; +private _northing_end = player getVariable [QGVAR(northing_end), "00000"]; + +ctrlSetText [EASTING_IDC, _easting]; +ctrlSetText [NORTHING_IDC, _northing]; +ctrlSetText [EASTING_END_IDC, _easting_end]; +ctrlSetText [NORTHING_END_IDC, _northing_end]; + + +private _variables = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; +}; + +//Add batteries +{ + private _module = _x; + + private _gun_name = _module getVariable ["displayName", "Missing name"];; + private _gun_classname = _module getVariable ["className", "Missing classname"]; + + private _index = lbAdd [ARTY_LIST_IDC, _gun_name]; + + private _gunicon = getText (configFile >> "CfgVehicles" >> _gun_classname >> "picture"); + lbSetPicture [ARTY_LIST_IDC, _index, _gunicon]; + + private _min_spread = _module getVariable ["spreadMin", 100]; + lbSetValue [ARTY_LIST_IDC, _index, _min_spread]; +} forEach _variables; + + +//Fire types +lbAdd [FIRING_TYPE_IDC, localize "STR_tun_firesupport_firemode_standard"]; +lbAdd [FIRING_TYPE_IDC, localize "STR_tun_firesupport_firemode_creeping_barrage"]; +lbAdd [FIRING_TYPE_IDC, localize "STR_tun_firesupport_firemode_wall"]; + + + +lbSetCurSel [FIRING_TYPE_IDC, 0]; + + +GVAR(dialog_PFH) = [{ + private _eta = [] call tun_firesupport_fnc_calculate_eta; + ctrlSetText [ETA_IDC, _eta select 1]; +}, 0.25] call CBA_fnc_addPerFrameHandler; + + +[] call FUNC(update_firemode); + +ctrlShow [REMAINIG_AMMO_PROGRESBAR_IDC, false]; +ctrlShow [STATUS_IDC, false]; + + +//BOOKMARK STUFF +GVAR(bookmarkOpen) = false; + +ctrlShow [BOOKMARK_LIST_IDC, false]; +ctrlShow [BOOKMARK_ADD_BOOKMARK_IDC, false]; +ctrlShow [BOOKMARK_NAME_TEXT_IDC, false]; +ctrlShow [BOOKMARK_NAME_VALUE_IDC, false]; +ctrlShow [BOOKMARK_REMOVE_BOOKMARK_IDC, false]; +ctrlShow [BOOKMARK_EDITBOX_IDC, false]; +ctrlShow [BOOKMARK_IMPORT_BOOKMARK_IDC, false]; +ctrlShow [BOOKMARK_EXPORT_BOOKMARK_IDC, false]; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_save_bookmarks.sqf b/addons/firesupport/functions/fnc_save_bookmarks.sqf new file mode 100644 index 0000000..da04212 --- /dev/null +++ b/addons/firesupport/functions/fnc_save_bookmarks.sqf @@ -0,0 +1,33 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [] call tun_firesupport_fnc_save_bookmarks + */ +#include "script_component.hpp" + +params ["_value"]; + +if (_value) then { + //export + ctrlSetText [BOOKMARK_EDITBOX_IDC, str GVAR(bookmarkValues)]; +} else { + //import + { + GVAR(bookmarkValues) pushBackUnique _x; + } forEach (call compile ctrlText BOOKMARK_EDITBOX_IDC); + + [] call FUNC(update_bookmarks); +}; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_selected_bookmark.sqf b/addons/firesupport/functions/fnc_selected_bookmark.sqf new file mode 100644 index 0000000..ad0527b --- /dev/null +++ b/addons/firesupport/functions/fnc_selected_bookmark.sqf @@ -0,0 +1,64 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [] call tun_firesupport_fnc_selected_bookmark + */ +#include "script_component.hpp" + +GVAR(BookmarkSkip) = true; + +private _values = GVAR(bookmarkValues) select lbCurSel BOOKMARK_LIST_IDC; + + +_values params ["_name", "_eastin", "_northing", "_eastin2", "_northing2", "_gun", "_gunText", "_ammo", "_ammoText", "_mode", "_modeText", "_count", "_radius", "_delay"]; + +ctrlSetText [EASTING_IDC, _eastin]; +ctrlSetText [NORTHING_IDC, _northing]; +ctrlSetText [EASTING_END_IDC, _eastin2]; +ctrlSetText [NORTHING_END_IDC, _northing2]; + +private _errorText = ""; + +if (_gunText == lbText [ARTY_LIST_IDC, _gun]) then { + lbSetCurSel [ARTY_LIST_IDC, _gun]; +} else { + _errorText = "Bookmark gun is missing!\n"; +}; + +if (_ammoText == lbText [AMMO_TYPE_IDC, _ammo]) then { + lbSetCurSel [AMMO_TYPE_IDC, _ammo]; +} else { + _errorText = _errorText + "Bookmark ammo type is missing!\n"; +}; + +if (_modeText == lbText [FIRING_TYPE_IDC, _mode]) then { + lbSetCurSel [FIRING_TYPE_IDC, _mode]; +} else { + _errorText = _errorText + "Bookmark firemode is missing!"; +}; + +if (count _errorText > 0) then { + hint _errorText; +}; + +ctrlSetText [RANGE_IDC, _radius]; +ctrlSetText [DELAY_IDC, _delay]; +ctrlSetText [COUNT_IDC, _count]; + + +/* + +[["Name [041:049]","041","049","00000","00000",0,"Mortart 1",0,"HE Mortar Shells",0,"Standard","11","51","1"]] \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_toggle_bookmarks.sqf b/addons/firesupport/functions/fnc_toggle_bookmarks.sqf new file mode 100644 index 0000000..f354c41 --- /dev/null +++ b/addons/firesupport/functions/fnc_toggle_bookmarks.sqf @@ -0,0 +1,54 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [] call tun_firesupport_fnc_toggle_bookmarks + */ +#include "script_component.hpp" + +if !(GVAR(bookmarkOpen)) then { + GVAR(bookmarkOpen) = true; + + ctrlShow [MINIMAP_IDC, false]; + + ctrlShow [BOOKMARK_LIST_IDC, true]; + ctrlShow [BOOKMARK_ADD_BOOKMARK_IDC, true]; + ctrlShow [BOOKMARK_NAME_TEXT_IDC, true]; + ctrlShow [BOOKMARK_NAME_VALUE_IDC, true]; + ctrlShow [BOOKMARK_REMOVE_BOOKMARK_IDC, true]; + ctrlShow [BOOKMARK_EDITBOX_IDC, true]; + ctrlShow [BOOKMARK_IMPORT_BOOKMARK_IDC, true]; + ctrlShow [BOOKMARK_EXPORT_BOOKMARK_IDC, true]; + + ctrlSetText [BOOKMARK_OPEN_BUTTON_IDC, localize "STR_tun_firesupport_minimap"]; + + [] call FUNC(update_bookmarks); + +} else { + GVAR(bookmarkOpen) = false; + + ctrlShow [MINIMAP_IDC, true]; + + ctrlShow [BOOKMARK_LIST_IDC, false]; + ctrlShow [BOOKMARK_ADD_BOOKMARK_IDC, false]; + ctrlShow [BOOKMARK_NAME_TEXT_IDC, false]; + ctrlShow [BOOKMARK_NAME_VALUE_IDC, false]; + ctrlShow [BOOKMARK_REMOVE_BOOKMARK_IDC, false]; + ctrlShow [BOOKMARK_EDITBOX_IDC, false]; + ctrlShow [BOOKMARK_IMPORT_BOOKMARK_IDC, false]; + ctrlShow [BOOKMARK_EXPORT_BOOKMARK_IDC, false]; + + ctrlSetText [BOOKMARK_OPEN_BUTTON_IDC, localize "STR_tun_firesupport_bookmark"]; +}; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_update_ammo_count.sqf b/addons/firesupport/functions/fnc_update_ammo_count.sqf new file mode 100644 index 0000000..70360f4 --- /dev/null +++ b/addons/firesupport/functions/fnc_update_ammo_count.sqf @@ -0,0 +1,59 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_update_ammo_count + */ +#include "script_component.hpp" + +private _index = lbCurSel AMMO_TYPE_IDC; +if (isnull (findDisplay MAIN_IDD) || _index == -1 ) exitWith { }; + +if (GVAR(BookmarkSkip)) then { + GVAR(BookmarkSkip) = false; +} else { + ctrlSetText [COUNT_IDC, "0"]; +}; + +private _variables = switch (playerSide) do { + + case west: { + GVAR(guns_west) + }; + + case east: { + GVAR(guns_east) + }; + + case resistance: { + GVAR(guns_resistance) + }; + + case civilian: { + GVAR(guns_civilian) + }; + + default + { + /* STATEMENT */ + }; +}; + +private _index = lbCurSel ARTY_LIST_IDC; +private _gun_module = _variables select _index; +private _ammoModule = (synchronizedObjects _gun_module) select lbCurSel AMMO_TYPE_IDC; + +private _count = _ammoModule getVariable ["currentCount", 0]; +ctrlSetText [REMAINIG_AMMO_IDC, str _count]; \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_update_bookmarks.sqf b/addons/firesupport/functions/fnc_update_bookmarks.sqf new file mode 100644 index 0000000..9069312 --- /dev/null +++ b/addons/firesupport/functions/fnc_update_bookmarks.sqf @@ -0,0 +1,26 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * [] call tun_firesupport_fnc_update_bookmarks + */ +#include "script_component.hpp" + +lbClear BOOKMARK_LIST_IDC; + +{ + private _name = _x select 0; + lbAdd [BOOKMARK_LIST_IDC, _name]; +} forEach GVAR(bookmarkValues); \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_update_everything.sqf b/addons/firesupport/functions/fnc_update_everything.sqf new file mode 100644 index 0000000..086092d --- /dev/null +++ b/addons/firesupport/functions/fnc_update_everything.sqf @@ -0,0 +1,26 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_update_everything + */ +#include "script_component.hpp" + + + +["ammo"] call FUNC(check_min_values); +["radius"] call FUNC(check_min_values); +["delay"] call FUNC(check_min_values); +[] call FUNC(calculate_eta); \ No newline at end of file diff --git a/addons/firesupport/functions/fnc_update_firemode.sqf b/addons/firesupport/functions/fnc_update_firemode.sqf new file mode 100644 index 0000000..fd48333 --- /dev/null +++ b/addons/firesupport/functions/fnc_update_firemode.sqf @@ -0,0 +1,43 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_update_firemode + */ +#include "script_component.hpp" +if (isnull (findDisplay MAIN_IDD)) exitWith { }; +private _firing_style = lbText [FIRING_TYPE_IDC,lbCurSel FIRING_TYPE_IDC]; + +switch (_firing_style) do { + + case (localize "STR_tun_firesupport_firemode_standard"): { + ctrlShow [EASTING_END_IDC, false]; + ctrlShow [NORTHING_END_IDC, false]; + ctrlShow [EASTING_END_TEXT_IDC, false]; + ctrlShow [NORTHING_END_TEXT_IDC, false]; + }; + + case (localize "STR_tun_firesupport_firemode_creeping_barrage"); + case (localize "STR_tun_firesupport_firemode_wall"): { + ctrlShow [EASTING_END_IDC, true]; + ctrlShow [NORTHING_END_IDC, true]; + ctrlShow [EASTING_END_TEXT_IDC, true]; + ctrlShow [NORTHING_END_TEXT_IDC, true]; + }; + + default { + hint "Missing Update firemode"; + }; +}; \ No newline at end of file diff --git a/addons/firesupport/functions/pohja.sqf b/addons/firesupport/functions/pohja.sqf new file mode 100644 index 0000000..730180f --- /dev/null +++ b/addons/firesupport/functions/pohja.sqf @@ -0,0 +1,19 @@ +/* + * Author: [Tuntematon] + * [Description] + * + * Arguments: + * 0: The first argument + * 1: The second argument + * 2: Multiple input types + * 3: Optional input (default: true) + * 4: Optional input with multiple types (default: {true}) + * 5: Not mandatory input (default: nil) + * + * Return Value: + * The return value + * + * Example: + * ["something", player] call tun_firesupport_fnc_imanexample + */ +#include "script_component.hpp" diff --git a/addons/firesupport/functions/script_component.hpp b/addons/firesupport/functions/script_component.hpp new file mode 100644 index 0000000..4e2d473 --- /dev/null +++ b/addons/firesupport/functions/script_component.hpp @@ -0,0 +1 @@ +#include "..\script_component.hpp" \ No newline at end of file diff --git a/script_component_firesupport.hpp b/addons/firesupport/script_component.hpp similarity index 58% rename from script_component_firesupport.hpp rename to addons/firesupport/script_component.hpp index c314538..64fd398 100644 --- a/script_component_firesupport.hpp +++ b/addons/firesupport/script_component.hpp @@ -1,29 +1,33 @@ #define COMPONENT firesupport #define PREFIX Tun -#define MAJOR 1 -#define MINOR 0 -#define PATCHLVL 0 -#define BUILD 25102018 +#define MAJOR 0 +#define MINOR 4 +#define PATCHLVL 1 +#define BUILD 24012021 #define VERSION MAJOR.MINOR.PATCHLVL.BUILD #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.56 +#define REQUIRED_VERSION 1.94 /* #define DEBUG_ENABLED_SYS_MAIN */ - #define DEBUG_MODE_FULL +#define DEBUG_MODE_FULL #ifdef DEBUG_ENABLED_MAIN #define DEBUG_MODE_FULL #endif #include "\x\cba\addons\main\script_macros_common.hpp" +#include "Firesupport_idc.hpp" + // Default versioning level #define DEFAULT_VERSIONING_LEVEL 2 +//AAR update macro +#define AAR_UPDATE(OBJ,VARNAME,VALUE) if ( !isnil "afi_aar2" ) then { [OBJ, VARNAME, VALUE] call afi_aar2_fnc_addcustomdata; }; \ No newline at end of file diff --git a/addons/firesupport/sounds/completed.ogg b/addons/firesupport/sounds/completed.ogg new file mode 100644 index 0000000..fdfbba3 Binary files /dev/null and b/addons/firesupport/sounds/completed.ogg differ diff --git a/addons/firesupport/sounds/lost_contact.ogg b/addons/firesupport/sounds/lost_contact.ogg new file mode 100644 index 0000000..66bad7d Binary files /dev/null and b/addons/firesupport/sounds/lost_contact.ogg differ diff --git a/addons/firesupport/sounds/out_of_ammo.ogg b/addons/firesupport/sounds/out_of_ammo.ogg new file mode 100644 index 0000000..459549e Binary files /dev/null and b/addons/firesupport/sounds/out_of_ammo.ogg differ diff --git a/addons/firesupport/sounds/resuply.ogg b/addons/firesupport/sounds/resuply.ogg new file mode 100644 index 0000000..b192d7a Binary files /dev/null and b/addons/firesupport/sounds/resuply.ogg differ diff --git a/addons/firesupport/sounds/splash.ogg b/addons/firesupport/sounds/splash.ogg new file mode 100644 index 0000000..b5c5801 Binary files /dev/null and b/addons/firesupport/sounds/splash.ogg differ diff --git a/addons/firesupport/sounds/targetlocation.ogg b/addons/firesupport/sounds/targetlocation.ogg new file mode 100644 index 0000000..96cf8f3 Binary files /dev/null and b/addons/firesupport/sounds/targetlocation.ogg differ diff --git a/mod.cpp b/mod.cpp new file mode 100644 index 0000000..6777a48 --- /dev/null +++ b/mod.cpp @@ -0,0 +1,15 @@ +name = "Tun Advanced Firesupport Interface v0.1.0"; +picture = "Data\afilogo.paa"; +actionName = "Community Website"; +action = "https://armafinland.fi/"; +description = "Firesupport system"; +logo = "Data\afilogo.paa"; +logoOver = "Data\afilogo.paa"; +logoSmall = "Data\afilogo.paa"; +tooltip = "Firesupport system"; +tooltipOwned = "Tun Advanced Firesupport Interface"; +overview = "Tun Advanced Firesupport Interface v0.1.0"; +author = "Tuntematon, Immonen & Nurmi"; +//overviewPicture = ""; +overviewText = "Tun Advanced Firesupport Interface v0.1.0"; +//overviewFootnote = "

Teksti"; \ No newline at end of file diff --git a/scriptit/firesupport.sqf b/scriptit/firesupport.sqf deleted file mode 100644 index 74b5a33..0000000 --- a/scriptit/firesupport.sqf +++ /dev/null @@ -1,273 +0,0 @@ -#include "script_component_firesupport.hpp" -params ["_unit"]; -if (!hasInterface) exitWith { }; -[{ - (!isNull player && time > 2) -}, -{ - params ["_unit"]; - if !(local _unit) exitWith { }; - -tun_battery1 = ["122 H63", [tykki1, tykki2, tykki3], [["32Rnd_155mm_Mo_shells", 54], ["6Rnd_155mm_Mo_smoke", 18]]]; -tun_battery2 = ["Mortar", [mor1, mor2, mor3], [["8Rnd_82mm_Mo_shells",72], ["8Rnd_82mm_Mo_Flare_white",72], ["8Rnd_82mm_Mo_Smoke_white",36]]]; - -GVAR(batteries) = [tun_battery1, tun_battery2]; - -GVAR(namespace) = call CBA_fnc_createNamespace; - -//Do not change -GVAR(cooldowntime) = 20; //Minium cooldown time -GVAR(cooldownmultiplier) = 5; //How much time each round increase cooldown - -GVAR(namespace) setVariable ["easting", "000"]; -GVAR(namespace) setVariable ["northing", "000"]; -{ - _x params ["_name", "_guns", "_ammos"]; - - //Remove all maingun magazines - { - private _gun = _x; - { - //_gun removeMagazinesTurret [_x, [0]]; - [_gun, [_x, [0]]] remoteExec ["removeMagazinesTurret", _gun]; - } forEach (_gun magazinesTurret [0]); - } forEach _guns; - - //Save ammocount - { - _ammo = _x select 0; - _count = _x select 1; - GVAR(namespace) setVariable [format ["%1_%2", _name, _ammo], _count]; - - //add empty mag for ETA - { - //_x addMagazineTurret [_ammo, [0], 0]; - [_x, [_ammo, [0], 0]] remoteExec ["addMagazineTurret", _x]; - } forEach _guns; - - } forEach _ammos; - - -} forEach GVAR(batteries); - - - -FUNC(call_support) = { - - - if ( (ctrlText 2202) in ["CANT FIRE", "Out of Range", "Out of Ammo", "Busy"] ) exitWith { - hintSilent (ctrlText 2202); - playSound "zoom_fail"; - }; - - _artillery = GVAR(batteries) select (lbCurSel 2200); - private _pos = [] call FUNC(get_realpos); - private _type = ((_artillery select 2 ) select (lbCurSel 2201)) select 0; - private _amount = sliderPosition 2205; - _guns = _artillery select 1; - private _gun_count = count _guns; - - if ( _amount == 0 ) exitWith { - playSound "zoom_fail"; - }; - - //cooldown - (_guns select 0) setVariable [QGVAR(doing_firemission), (time + (_amount * GVAR(cooldownmultiplier)) + GVAR(cooldowntime))]; - - - //update ammocount - _var_name = [] call FUNC(get_shell_varname); - - _original_count = GVAR(namespace) getVariable _var_name; - _new_count = _original_count - _amount; - - GVAR(namespace) setVariable [_var_name, _new_count]; - [] call FUNC(dialog_slider_max_ammo); - - //Finaly firing some shit - { - private _gun = _x; - { - //_gun removeMagazinesTurret [_x, [0]]; - [_gun, [_x, [0]]] remoteExec ["removeMagazinesTurret", _gun]; - } forEach (_gun magazinesTurret [0]); - - _splitted_amount = floor (_amount / _gun_count); - - DEC(_gun_count); - SUB(_amount,_splitted_amount); - - if (_splitted_amount > 0) then { - //_gun addMagazineTurret [_type, [0], _splitted_amount]; - [_gun, [_type, [0], _splitted_amount]] remoteExec ["addMagazineTurret", _gun]; - //_gun commandArtilleryFire [_pos, _type, _splitted_amount]; - [_gun, [_pos, _type, _splitted_amount]] remoteExec ["commandArtilleryFire", _gun]; - }; - } forEach _guns; - - _eta_number = [] call FUNC(eta); - - - - - /*_eta = [_eta, "M:SS"] call CBA_fnc_formatElapsedTime; - - ok = [_eta, _eta_number];*/ - - playSound selectRandom ["RadioAmbient2", "RadioAmbient6", "RadioAmbient8"]; - //_marker = [format ["Tun_firesupport_marker_%1", _eta_number], [(_pos select 0), (_pos select 1)], "ICON", [1, 1],"TEXT:", format ["Fired at %2, ETA to splash %1s", round _eta_number, daytime toFixed 2],"TYPE:", "mil_dot"] call CBA_fnc_createMarker; - //[{ deleteMarker _this }, _marker, (_eta_number + 30)] call CBA_fnc_waitAndExecute; -}; - - -FUNC(get_shell_varname) = { - - _name_idc = lbCurSel 2200; - _ammo_idc = lbCurSel 2201; - - _name =( GVAR(batteries) select _name_idc) select 0; - _ammo = (((GVAR(batteries) select _name_idc) select 2) select _ammo_idc) select 0; - - _var_name = format ["%1_%2", _name, _ammo]; - - _var_name - -}; - -FUNC(save_coordinates) = { - - GVAR(namespace) setVariable ["easting", ctrlText 2203]; - GVAR(namespace) setVariable ["northing", ctrlText 2204]; - -}; - -FUNC(eta) = { - //params ["_pos", "_artillery", "_type"]; - - if ( lbCurSel 2200 != -1 && lbCurSel 2201 != -1 ) then { - - _pos = [] call FUNC(get_realpos); - _artillery = GVAR(batteries) select (lbCurSel 2200); - _type = ((_artillery select 2 ) select (lbCurSel 2201)) select 0; - _guns = (_artillery select 1) ; - _gun = _guns select 0; - _eta = _gun getArtilleryETA [_pos, _type]; - _eta_number = _eta; - if !(_type in getArtilleryAmmo _guns) then { - { - [_x, [_type, [0], 0]] remoteExec ["addMagazineTurret", _x]; - } forEach _guns; - }; - - _eta = if (_eta == -1) then { - "CANT FIRE"; - } else { - ((str round _eta) + " s"); - }; - - if !(_pos inRangeOfArtillery [(_artillery select 1), _type]) then { - _eta = "Out of Range"; - }; - - _remainingshels = GVAR(namespace) getVariable ([] call FUNC(get_shell_varname)); - - if (_remainingshels == 0) then { - _eta = "Out of Ammo"; - }; - - - if (_gun getVariable [QGVAR(doing_firemission), 0] > time) then { - _eta = "Busy"; - }; - - ctrlSetText [2202, _eta]; - - _eta_number - }; -}; - -FUNC(get_realpos) = { - _easting = ctrlText 2203; - _northing = ctrlText 2204; - _pos = [[_easting, _northing], true] call CBA_fnc_mapGridToPos; - - _pos -}; - - -FUNC(add_AmmoTypes) = { - lbClear 2201; - _ammos = (GVAR(batteries) select lbCurSel 2200) select 2; - { - _ammoDisplayname = getText (configFile >> "CfgMagazines" >> (_x select 0) >> "displayName"); - //_text = format ["%1 (%2)", _ammoDisplayname, _x select 1]; Vanhentunut mutta jätetty muistiin jos tarvii. - lbAdd [2201, _ammoDisplayname]; - } forEach _ammos ; - lbSetCurSel [2201, 0]; -}; - - -FUNC(slider_update) = { - - - _amount = sliderPosition 2205; - - _amount = round _amount; - - ctrlSetText [2206, str _amount]; - sliderSetPosition [2205, _amount]; -}; - -FUNC(dialog_slider_max_ammo) = { - - _var_name = [] call FUNC(get_shell_varname); - - _count = GVAR(namespace) getVariable _var_name; - - sliderSetRange [2205, 0, _count]; - sliderSetPosition [2205, 0]; - - if (_count == 0) then { - _count = "Out of Ammo" - } else { - _count = str _count; - }; - ctrlSetText [2206, _count]; - -}; - -FUNC(open_dialog) = { - createDialog "Tun_Firesupport_Dialog"; - sliderSetRange [2205, 0, 50]; - sliderSetSpeed [2205, 1, 1]; - - _easting = GVAR(namespace) getVariable ["easting", 00000]; - if ( _easting == "" ) then { _easting = "00000"; }; - - _northing = GVAR(namespace) getVariable ["northing", 00000]; - if ( _northing == "" ) then { _easting = "00000"; }; - - ctrlSetText [2203, _easting]; - ctrlSetText [2204, _northing]; - - //Add batteries - { - _name = _x select 0; - _count = count (_x select 1); - _name = format ["%1 - %2 Guns", _name, _count]; - _index = lbAdd [2200, _name]; - - _gun = (_x select 1) select 0; - _gunicon = getText (configFile >> "CfgVehicles" >> typeOf _gun >> "picture"); - lbSetPicture [2200, _index, _gunicon]; - } forEach GVAR(batteries); -}; - -//player addAction ["a useless action that does nothing", {[] call FUNC(open_dialog);}]; - - -_action = ["Open Firesupport","Open Firesupport","", { [] call tun_firesupport_fnc_open_dialog; }, {("ItemGPS" in assignedItems player || "ACE_microDAGR" in items player)}] call ace_interact_menu_fnc_createAction; -[(typeOf _unit), 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToClass; - - -}, [_unit]] call CBA_fnc_waitUntilAndExecute; diff --git a/tablet.jpg b/tablet.jpg deleted file mode 100644 index 108f9d9..0000000 Binary files a/tablet.jpg and /dev/null differ