From cc3bad3c5685468870a7ea3fde3e321abcd2f990 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 1 Sep 2022 13:44:19 -0500 Subject: [PATCH] XM157 (NGSW-FC Smart Scope) Framework (#8897) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * XM157 (NGSW-FC Smart Scope) * Update addons/common/functions/fnc_rscObjectHelper.sqf Co-authored-by: Jouni Järvinen * Update addons/xm157/functions/fnc_weaponInfo_draw.sqf Co-authored-by: Jouni Järvinen * Headers * Handle prone-deploy weapon bank * Disable Reticle picker for now * some localizations * Change font looks like CUP modifies EtelkaMonospaceProBold for some reason?? * Create xm157-framework.md * Formating Co-authored-by: Jouni Järvinen --- addons/common/XEH_PREP.hpp | 1 + .../common/functions/fnc_rscObjectHelper.sqf | 64 +++++++ addons/xm157/$PBOPREFIX$ | 1 + addons/xm157/CfgEventHandlers.hpp | 15 ++ addons/xm157/CfgSounds.hpp | 6 + addons/xm157/CfgWeapons.hpp | 48 +++++ addons/xm157/README.md | 2 + addons/xm157/RscInGameUI.hpp | 79 ++++++++ addons/xm157/XEH_PREP.hpp | 8 + addons/xm157/XEH_postInit.sqf | 66 +++++++ addons/xm157/XEH_preInit.sqf | 9 + addons/xm157/XEH_preStart.sqf | 3 + addons/xm157/config.cpp | 27 +++ addons/xm157/data/ace_vector_body_co.paa | Bin 0 -> 140807 bytes addons/xm157/data/mrad_10_ca.paa | Bin 0 -> 148198 bytes addons/xm157/data/mrad_20_ca.paa | Bin 0 -> 151351 bytes addons/xm157/data/mrad_40_ca.paa | Bin 0 -> 157051 bytes addons/xm157/dev/generate_reticle.py | 178 ++++++++++++++++++ .../functions/fnc_ballistics_calculator.sqf | 101 ++++++++++ .../functions/fnc_ballistics_getData.sqf | 62 ++++++ addons/xm157/functions/fnc_keyPress.sqf | 67 +++++++ .../xm157/functions/fnc_weaponInfo_draw.sqf | 144 ++++++++++++++ .../functions/fnc_weaponInfo_drawMenu.sqf | 81 ++++++++ .../xm157/functions/fnc_weaponInfo_onLoad.sqf | 83 ++++++++ addons/xm157/functions/script_component.hpp | 1 + addons/xm157/script_component.hpp | 24 +++ addons/xm157/sounds/click.wav | Bin 0 -> 35864 bytes addons/xm157/stringtable.xml | 5 + docs/wiki/framework/xm157-framework.md | 56 ++++++ 29 files changed, 1131 insertions(+) create mode 100644 addons/common/functions/fnc_rscObjectHelper.sqf create mode 100644 addons/xm157/$PBOPREFIX$ create mode 100644 addons/xm157/CfgEventHandlers.hpp create mode 100644 addons/xm157/CfgSounds.hpp create mode 100644 addons/xm157/CfgWeapons.hpp create mode 100644 addons/xm157/README.md create mode 100644 addons/xm157/RscInGameUI.hpp create mode 100644 addons/xm157/XEH_PREP.hpp create mode 100644 addons/xm157/XEH_postInit.sqf create mode 100644 addons/xm157/XEH_preInit.sqf create mode 100644 addons/xm157/XEH_preStart.sqf create mode 100644 addons/xm157/config.cpp create mode 100644 addons/xm157/data/ace_vector_body_co.paa create mode 100644 addons/xm157/data/mrad_10_ca.paa create mode 100644 addons/xm157/data/mrad_20_ca.paa create mode 100644 addons/xm157/data/mrad_40_ca.paa create mode 100644 addons/xm157/dev/generate_reticle.py create mode 100644 addons/xm157/functions/fnc_ballistics_calculator.sqf create mode 100644 addons/xm157/functions/fnc_ballistics_getData.sqf create mode 100644 addons/xm157/functions/fnc_keyPress.sqf create mode 100644 addons/xm157/functions/fnc_weaponInfo_draw.sqf create mode 100644 addons/xm157/functions/fnc_weaponInfo_drawMenu.sqf create mode 100644 addons/xm157/functions/fnc_weaponInfo_onLoad.sqf create mode 100644 addons/xm157/functions/script_component.hpp create mode 100644 addons/xm157/script_component.hpp create mode 100644 addons/xm157/sounds/click.wav create mode 100644 addons/xm157/stringtable.xml create mode 100644 docs/wiki/framework/xm157-framework.md diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index ab9756c95e..02eca6d441 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -143,6 +143,7 @@ PREP(removeSpecificMagazine); PREP(requestCallback); PREP(resetAllDefaults); PREP(restoreVariablesJIP); +PREP(rscObjectHelper); PREP(runAfterSettingsInit); PREP(runTests); PREP(sanitizeString); diff --git a/addons/common/functions/fnc_rscObjectHelper.sqf b/addons/common/functions/fnc_rscObjectHelper.sqf new file mode 100644 index 0000000000..81eb707b3a --- /dev/null +++ b/addons/common/functions/fnc_rscObjectHelper.sqf @@ -0,0 +1,64 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Convert between screen and 3d object coordinates + * + * Arguments: + * 0: Function + * 1: Input array + * 2: Scale (optional: 1) + * + * Return Value: + * Value + * + * Example: + * ["2d", [0,0,0], 1] call ace_common_fnc_rscObjectHelper + * + * Public: Maybe + */ + +params ["_func", "_array", ["_scale", 1]]; + +private _adjustCam = 1; +private _topFOV = getResolution # 6; +private _leftFOV = getResolution # 7; + +private _topLeftX = (_leftFOV-1)*0.5/_leftFOV; +private _bottomRightX = 1-_topLeftX; +private _topLeftY = 0; +private _bottomRightY = 1; + +private _return = []; + +switch (toLower _func) do { + case ("2d"): { + _array params ["_pointX", "_z", "_pointY"]; + + private _scrX = _pointX * (_bottomRightX - _topLeftX) + _topLeftX; + private _vX = _leftFOV * (_scrX - 0.5) * _adjustCam * _z; + + private _scrY = _pointY * (_bottomRightY - _topLeftY) + _topLeftY; + private _vY = _topFOV * (0.5 - _scrY) * _adjustCam * _z; + + _vX = _vX / _scale; + _vY = _vY / _scale; + + _return = [_vX, _vY, _z]; + }; + case ("3d"): { + _array params ["_vX", "_vY", "_z"]; // z is distance from screen + + _vX = _vX * _scale; + _vY = _vY * _scale; + + private _scrX = _vX / (_leftFOV * _adjustCam * _z) + 0.5; + private _pointX = (_scrX - _topLeftX) / (_bottomRightX - _topLeftX); + + private _scrY = 0.5 - _vY / (_topFOV * _adjustCam * _z); + private _pointY = (_scrY - _topLeftY) / (_bottomRightY - _topLeftY); + + _return = [_pointX, _z, _pointY]; + }; +}; + +_return diff --git a/addons/xm157/$PBOPREFIX$ b/addons/xm157/$PBOPREFIX$ new file mode 100644 index 0000000000..2bddd0ac4e --- /dev/null +++ b/addons/xm157/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\xm157 \ No newline at end of file diff --git a/addons/xm157/CfgEventHandlers.hpp b/addons/xm157/CfgEventHandlers.hpp new file mode 100644 index 0000000000..2a3f71f852 --- /dev/null +++ b/addons/xm157/CfgEventHandlers.hpp @@ -0,0 +1,15 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_preStart)); + }; +}; +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_preInit)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_postInit)); + }; +}; diff --git a/addons/xm157/CfgSounds.hpp b/addons/xm157/CfgSounds.hpp new file mode 100644 index 0000000000..907e710bba --- /dev/null +++ b/addons/xm157/CfgSounds.hpp @@ -0,0 +1,6 @@ +class CfgSounds { + class GVAR(click) { + sound[] = {QPATHTOF(sounds\click.wav), db-30, 3}; + titles[] = {}; + }; +}; diff --git a/addons/xm157/CfgWeapons.hpp b/addons/xm157/CfgWeapons.hpp new file mode 100644 index 0000000000..69abc30bf0 --- /dev/null +++ b/addons/xm157/CfgWeapons.hpp @@ -0,0 +1,48 @@ +class CfgWeapons { + class ItemCore; + class InventoryOpticsItem_Base_F; + + class ace_xm157_prototype: ItemCore { + author = ECSTRING(common,ACETeam); + scope = 1; // hidden + displayName = "XM157 Prototype"; + descriptionShort = ""; + picture = "\a3\Weapons_F\acc\Data\UI\icon_optic_tws_ca.paa"; + model = "\A3\weapons_f\acc\acco_tws_F"; + inertia = 0.3; + + class CBA_ScriptedOptic { + bodyTexture = QPATHTOF(data\ace_vector_body_co.paa); + // bodyTextureNight = ".paa"; // optional + bodyTextureSize = 1; + hideMagnification = 1; // no point, and it flickers at 1x + disableTilt = 0; + }; + + weaponInfoType = QGVAR(info); + class ItemInfo: InventoryOpticsItem_Base_F { + mass = 14; + optics = 1; + modelOptics = "\x\cba\addons\optics\cba_optic_big_100.p3d"; + class OpticsModes { + class lpvo { + opticsID = 1; + useModelOptics = 1; + opticsPPEffects[] = { "OpticsCHAbera1", "OpticsBlur1" }; + opticsZoomMin = "8 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + opticsZoomMax = "1 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + opticsZoomInit = "1 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + discreteDistance[] = {100}; + discreteDistanceInitIndex = 0; + distanceZoomMin = 100; + distanceZoomMax = 100; + memoryPointCamera = "opticView"; + visionMode[] = {"Normal"}; + opticsFlare = 1; + opticsDisablePeripherialVision = 1; + cameraDir = ""; + }; + }; + }; + }; +}; diff --git a/addons/xm157/README.md b/addons/xm157/README.md new file mode 100644 index 0000000000..55a0696216 --- /dev/null +++ b/addons/xm157/README.md @@ -0,0 +1,2 @@ +ace_xm157 +========== diff --git a/addons/xm157/RscInGameUI.hpp b/addons/xm157/RscInGameUI.hpp new file mode 100644 index 0000000000..4e43e1581a --- /dev/null +++ b/addons/xm157/RscInGameUI.hpp @@ -0,0 +1,79 @@ +class RscObject; +class RscControlsGroupNoScrollbars; + +class RscText; +class GVAR(text): RscText { + font = "EtelkaMonospacePro"; + SizeEx = 0.04; + colorText[]={1,0.1,0.05,0.95}; + shadow = 0; +}; +class GVAR(textMenu): GVAR(text) { + SizeEx = 0.09; + style = 2+16; +}; + +class RscInGameUI { + class CBA_ScriptedOptic_zooming; + class GVAR(info): CBA_ScriptedOptic_zooming { + onLoad = QUOTE(call FUNC(weaponInfo_onLoad)); + class objects { + class Optic: RscObject { // first focal plane + idc = IDC_SCOPE_OBJECT; + type = 82; + model = "\A3\Misc_F\Helpers\UserTexture1m.p3d"; + x = 0; + y = 0; + z = 0; + xBack = 0.9; + yBack = 0.9; + zBack = 0.3; + inBack = 0; + enableZoom = 1; + zoomDuration = 0.001; + class Areas { + class usertexture { + selection = "usertexture"; + class controls { + class test: RscControlsGroupNoScrollbars { + idc = IDC_SCOPE_GROUP; + x = 0; + y = 0; + w = 1; + h = 4/3; + }; + }; + }; + }; + }; + class Screen: RscObject { + idc = IDC_SCREEN_OBJECT; + type = 82; + model = "\A3\Misc_F\Helpers\UserTexture1m.p3d"; + x = 0; + y = 0; + z = 0; + xBack = 0.9; + yBack = 0.9; + zBack = 0.3; + inBack = 1; + enableZoom = 1; + zoomDuration = 0.001; + class Areas { + class usertexture { + selection = "usertexture"; + class controls { + class test: RscControlsGroupNoScrollbars { + idc = IDC_SCREEN_GROUP; + x = 0; + y = 0; + w = 1; + h = 4/3; + }; + }; + }; + }; + }; + }; + }; +}; diff --git a/addons/xm157/XEH_PREP.hpp b/addons/xm157/XEH_PREP.hpp new file mode 100644 index 0000000000..56613ffe34 --- /dev/null +++ b/addons/xm157/XEH_PREP.hpp @@ -0,0 +1,8 @@ +LOG("prep"); + +PREP(ballistics_calculator); +PREP(ballistics_getData); +PREP(keyPress); +PREP(weaponInfo_draw); +PREP(weaponInfo_drawMenu); +PREP(weaponInfo_onLoad); diff --git a/addons/xm157/XEH_postInit.sqf b/addons/xm157/XEH_postInit.sqf new file mode 100644 index 0000000000..5f00e3209f --- /dev/null +++ b/addons/xm157/XEH_postInit.sqf @@ -0,0 +1,66 @@ +#include "script_component.hpp" +#include "\a3\ui_f\hpp\defineDIKCodes.inc" + +GVAR(shown) = false; +GVAR(data) = createHashMap; +([worldName] call EFUNC(common,getMapData)) params ["_latitude"]; +GVAR(data) set ["latitude", _latitude]; + + +// Add Keybinds +["ACE3 Equipment", QGVAR(range), [format ["XM157 - %1", localize "str_a3_rscdisplayarsenal_stat_range"]], { + ["range", true] call FUNC(keyPress); +}, { + ["range", false] call FUNC(keyPress); +}, [DIK_TAB, [false, false, false]], false, 0] call CBA_fnc_addKeybind; + +["ACE3 Equipment", QGVAR(left), [format ["XM157 - %1", localize "str_a3_left"]], { + ["right", true] call FUNC(keyPress); +}, { + ["right", false] call FUNC(keyPress); +}, [DIK_END, [false, false, false]], false, 0] call CBA_fnc_addKeybind; + +["ACE3 Equipment", QGVAR(right), [format ["XM157 - %1", localize "str_a3_right"]], { + ["left", true] call FUNC(keyPress); +}, { + ["left", false] call FUNC(keyPress); +}, [DIK_DELETE, [false, false, false]], false, 0] call CBA_fnc_addKeybind; + +["ACE3 Equipment", QGVAR(up), [format ["XM157 - %1", localize "str_a3_rscattributetargetstate_up"]], { + ["up", true] call FUNC(keyPress); +}, { + ["up", false] call FUNC(keyPress); +}, [DIK_PGUP, [false, false, false]], false, 0] call CBA_fnc_addKeybind; + +["ACE3 Equipment", QGVAR(down), [format ["XM157 - %1", localize "str_a3_rscattributetargetstate_down"]], { + ["down", true] call FUNC(keyPress); +}, { + ["down", false] call FUNC(keyPress); +}, [DIK_PGDN, [false, false, false]], false, 0] call CBA_fnc_addKeybind; + + + +#ifdef ENABLE_QUICK_TESTING +player addPrimaryWeaponItem "ace_xm157_prototype"; +[player] call CBA_fnc_addUnitTrackProjectiles; +player addItem "ACE_ATragMX"; +player addItem "ace_rangecard"; + +["recompile", "recompile", "recompile", { + private _start = diag_tickTime; + [] call ACE_PREP_RECOMPILE; + [] call ace_common_fnc_dumpPerformanceCounters; + private _end = diag_tickTime; + systemChat format ["recompile took [%1 ms]", (1000 * (_end - _start)) toFixed 1]; + + if (productVersion #4 == "Diag") then { + call compile "diag_mergeConfigFile ['P:\z\ace\addons\xm157\config.cpp']"; + }; + + private _windSpd = vectorMagnitude wind; + private _windDir = (wind select 0) atan2 (wind select 1); + systemChat format ["Wind %1 @ %2", _windSpd, _windDir + 180]; + + false +}, {false}, [0x21, [false, false, false]], false] call CBA_fnc_addKeybind; // F Key +#endif diff --git a/addons/xm157/XEH_preInit.sqf b/addons/xm157/XEH_preInit.sqf new file mode 100644 index 0000000000..b47cf6628d --- /dev/null +++ b/addons/xm157/XEH_preInit.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP_RECOMPILE_START; +#include "XEH_PREP.hpp" +PREP_RECOMPILE_END; + +ADDON = true; diff --git a/addons/xm157/XEH_preStart.sqf b/addons/xm157/XEH_preStart.sqf new file mode 100644 index 0000000000..022888575e --- /dev/null +++ b/addons/xm157/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.hpp" diff --git a/addons/xm157/config.cpp b/addons/xm157/config.cpp new file mode 100644 index 0000000000..2689764b19 --- /dev/null +++ b/addons/xm157/config.cpp @@ -0,0 +1,27 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {"ace_xm157_prototype"}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_advanced_ballistics", "ace_scopes"}; + author = ECSTRING(common,ACETeam); + authors[] = {"PabstMirror"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "CfgSounds.hpp" +#include "CfgWeapons.hpp" +#include "RscInGameUI.hpp" + +class asdg_OpticRail; +class asdg_OpticRail1913: asdg_OpticRail { + class compatibleItems { + ace_xm157_prototype = 1; + }; +}; diff --git a/addons/xm157/data/ace_vector_body_co.paa b/addons/xm157/data/ace_vector_body_co.paa new file mode 100644 index 0000000000000000000000000000000000000000..71e1984c6e5d4d2dadd226bf390b3c7b8ce739b3 GIT binary patch literal 140807 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 z�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

L(&;xb~>is}kw&G&`l>`jT+!Uh_(J5K-0V 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 literal 0 HcmV?d00001 diff --git a/addons/xm157/data/mrad_10_ca.paa b/addons/xm157/data/mrad_10_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..293a29debece61fad90b701591edda7bc3823393 GIT binary patch literal 148198 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 Bj~4&{ literal 0 HcmV?d00001 diff --git a/addons/xm157/data/mrad_40_ca.paa b/addons/xm157/data/mrad_40_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..9e097adff19726c818958c558baf3cbf3ac4481b GIT binary patch literal 157051 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 K@F&C6c>I4Erh_d2 literal 0 HcmV?d00001 diff --git a/addons/xm157/dev/generate_reticle.py b/addons/xm157/dev/generate_reticle.py new file mode 100644 index 0000000000..119b547ab4 --- /dev/null +++ b/addons/xm157/dev/generate_reticle.py @@ -0,0 +1,178 @@ +from PIL import Image, ImageDraw, ImageFont, ImageFilter +import math + +# based on vortex razor hd + +final_scale = 10 + +supersample = 4 +# supersampling helps make rounded circles, does slighly blur text and straight lines +pixels_per_mrad = supersample * final_scale +image_size = supersample * 4096 +image_center = image_size / 2 + +# create an image +out = Image.new("RGBA", (image_size, image_size), (255, 255, 255, 0)) +# get a drawing context +d = ImageDraw.Draw(out) + +line_thin = math.floor(0.07 * pixels_per_mrad) +line_thick = math.floor(0.15 * pixels_per_mrad) +font_size = math.floor(0.55 * pixels_per_mrad) +# source https://fonts.google.com/specimen/Electrolize (Open Font License) +fnt = ImageFont.truetype("Electrolize-Regular.ttf", font_size) + +# draw center dot +d.ellipse([ + (image_center - 0.1 * pixels_per_mrad, image_center - 0.1 * pixels_per_mrad), + (image_center + 0.1 * pixels_per_mrad, image_center + 0.1 * pixels_per_mrad) +], fill=(0, 0, 0)) + +# draw 3 main axis lines +d.line([ + (image_center - 8 * pixels_per_mrad, image_center), + (image_center - 0.5 * pixels_per_mrad, image_center) +], fill=(0, 0, 0), width=line_thin) +d.line([ + (0, image_center), + (image_center - 8.5 * pixels_per_mrad, image_center) +], fill=(0, 0, 0), width=line_thick) +d.line([ + (image_center + 0.5 * pixels_per_mrad, image_center), + (image_center + 8 * pixels_per_mrad, image_center) +], fill=(0, 0, 0), width=line_thin) +d.line([ + (image_center + 8.5 * pixels_per_mrad, image_center), + (image_size, image_center) +], fill=(0, 0, 0), width=line_thick) +d.line([ + (image_center, image_center + 0.5 * pixels_per_mrad), + (image_center, image_center + 11 * pixels_per_mrad) +], fill=(0, 0, 0), width=line_thin) +d.line([ + (image_center, image_center + 11.5 * pixels_per_mrad), + (image_center, image_size) +], fill=(0, 0, 0), width=line_thick) + +# draw big triangle bar things +if (image_center - 15 * pixels_per_mrad > 0): + d.polygon([ + (0, image_center + 2 * pixels_per_mrad), + (image_center - 20 * pixels_per_mrad, image_center + 2 * pixels_per_mrad), + (image_center - 15 * pixels_per_mrad, image_center), + (image_center - 20 * pixels_per_mrad, image_center - 2 * pixels_per_mrad), + (0, image_center - 2 * pixels_per_mrad), + ], fill=(0, 0, 0)) + d.polygon([ + (image_size, image_center + 2 * pixels_per_mrad), + (image_center + 20 * pixels_per_mrad, image_center + 2 * pixels_per_mrad), + (image_center + 15 * pixels_per_mrad, image_center), + (image_center + 20 * pixels_per_mrad, image_center - 2 * pixels_per_mrad), + (image_size, image_center - 2 * pixels_per_mrad), + ], fill=(0, 0, 0)) + d.polygon([ + (image_center - 2 * pixels_per_mrad, image_size), + (image_center - 2 * pixels_per_mrad, image_center + 20 * pixels_per_mrad), + (image_center, image_center + 15 * pixels_per_mrad), + (image_center + 2 * pixels_per_mrad, image_center + 20 * pixels_per_mrad), + (image_center + 2 * pixels_per_mrad, image_size), + ], fill=(0, 0, 0)) + + +# draw windage hash marks and text +for x in range(1, 9): + if (x % 2 == 0): + text = f"{abs(x)}" + # windage odd numbers + d.text((image_center + (x - 0.15) * pixels_per_mrad, image_center - 1.2 * pixels_per_mrad), text, font=fnt, fill=(0, 0, 0)) + d.text((image_center - (x + 0.15) * pixels_per_mrad, image_center - 1.2 * pixels_per_mrad), text, font=fnt, fill=(0, 0, 0)) + # windage mrad hashs + d.line([ + (image_center + x * pixels_per_mrad, image_center + line_thin / 2), + (image_center + x * pixels_per_mrad, image_center - 0.5 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thin) + d.line([ + (image_center - x * pixels_per_mrad, image_center + line_thin / 2), + (image_center - x * pixels_per_mrad, image_center - 0.5 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thin) + if (x % 2 == 0): + d.line([ + (image_center - x * pixels_per_mrad, image_center + 0.2 * pixels_per_mrad), + (image_center - x * pixels_per_mrad, image_center + 0.7 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thick) + d.line([ + (image_center + x * pixels_per_mrad, image_center + 0.2 * pixels_per_mrad), + (image_center + x * pixels_per_mrad, image_center + 0.7 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thick) + else: + d.line([ + (image_center - x * pixels_per_mrad, image_center + 0.2 * pixels_per_mrad), + (image_center - x * pixels_per_mrad, image_center + 0.55 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thick) + d.line([ + (image_center + x * pixels_per_mrad, image_center + 0.2 * pixels_per_mrad), + (image_center + x * pixels_per_mrad, image_center + 0.55 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thick) + + if (x < 8): + # windage half mrad marks + d.line([ + (image_center + (x + .5) * pixels_per_mrad, image_center), + (image_center + (x + .5) * pixels_per_mrad, image_center - 0.25 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thin) + d.line([ + (image_center - (x + .5) * pixels_per_mrad, image_center), + (image_center - (x + .5) * pixels_per_mrad, image_center - 0.25 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thin) + +# handle 10 mrad thick line +d.multiline_text((image_center + (10 - 0.4) * pixels_per_mrad, image_center - 1.2 * pixels_per_mrad), "10", font=fnt, fill=(0, 0, 0)) +d.line([ + (image_center + 10 * pixels_per_mrad, image_center - 0.5 * pixels_per_mrad), + (image_center + 10 * pixels_per_mrad, image_center + 0.5 * pixels_per_mrad) +], fill=(0, 0, 0), width=line_thick) +d.multiline_text((image_center + (-10 - 0.4) * pixels_per_mrad, image_center - 1.2 * pixels_per_mrad), "10", font=fnt, fill=(0, 0, 0)) +d.line([ + (image_center - 10 * pixels_per_mrad, image_center - 0.5 * pixels_per_mrad), + (image_center - 10 * pixels_per_mrad, image_center + 0.5 * pixels_per_mrad) +], fill=(0, 0, 0), width=line_thick) + +for y in range(1, 12): + line_y = image_center + y * pixels_per_mrad + # elev hash marks + d.line([ + (image_center - 0.5 * pixels_per_mrad, line_y), + (image_center + 0.5 * pixels_per_mrad, line_y) + ], fill=(0, 0, 0), width=line_thin) + if (y < 11): # half marks + d.line([ + (image_center - 0.1 * pixels_per_mrad, line_y + 0.5 * pixels_per_mrad), + (image_center + 0.1 * pixels_per_mrad, line_y + 0.5 * pixels_per_mrad) + ], fill=(0, 0, 0), width=line_thin) + + dot_count = 2 + if (y > 2): dot_count = 3 + if (y > 4): dot_count = 4 + if (y > 6): dot_count = 5 + for dot in range(1, dot_count + 1): + d.ellipse([ + (image_center + (dot - 0.1) * pixels_per_mrad, line_y - 0.1 * pixels_per_mrad), + (image_center + (dot + 0.1) * pixels_per_mrad, line_y + 0.1 * pixels_per_mrad) + ], fill=(0, 0, 0)) + d.ellipse([ + (image_center + (-dot - 0.1) * pixels_per_mrad, line_y - 0.1 * pixels_per_mrad), + (image_center + (-dot + 0.1) * pixels_per_mrad, line_y + 0.1 * pixels_per_mrad) + ], fill=(0, 0, 0)) + if (y % 2 == 0): + d.text((image_center + (dot_count + 0.85) * pixels_per_mrad, line_y - 0.3 * pixels_per_mrad), f"{y}", font=fnt, fill=(0, 0, 0)) + if (y >= 10): dot_count += 0.2 + d.text((image_center - (dot_count + 1.15) * pixels_per_mrad, line_y - 0.3 * pixels_per_mrad), f"{y}", font=fnt, fill=(0, 0, 0)) + +if (supersample > 1): + out = out.resize((4096, 4096)) + + +output_filename = f"mrad_{final_scale}_ca.png" +out.show() +out.save(output_filename) +print(f"written to {output_filename}") diff --git a/addons/xm157/functions/fnc_ballistics_calculator.sqf b/addons/xm157/functions/fnc_ballistics_calculator.sqf new file mode 100644 index 0000000000..41dfbcc530 --- /dev/null +++ b/addons/xm157/functions/fnc_ballistics_calculator.sqf @@ -0,0 +1,101 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror, Ruthberg (Based on ace_atragmx_fnc_calculate_solution) + * Calculates elevation and windage + * + * Arguments: + * 0: Range + * 1: Direction of Fire (deg) - Yaw + * 2: Inlination (deg) - Pitch + * 3: Bank (deg) - Roll + * + * Return Value: + * Elevation and Windage in MRAD + * + * Example: + * [500, 90, 0, 0] call ace_xm157_fnc_ballistics_calculator + * + * Public: No + */ + +params ["_targetRange", "_directionOfFire", "_inclinationAngle", "_bank"]; + +private _weaponInfo = [] call FUNC(ballistics_getData); +if (_weaponInfo isEqualTo []) exitWith { [0,0] }; +_weaponInfo params ["_scopeBaseAngle","_boreHeight","_airFriction","_muzzleVelocity","_bc", + "_dragModel","_atmosphereModel","_barrelTwist","_twistDirection","_caliber","_bulletLength","_bulletMass"]; + +private _latitude = GVAR(data) getOrDefault ["latitude", 0]; + +// Get Wind +private _windSpeed = GVAR(data) getOrDefault ["wind_speed", 0]; +private _windDirection = 22.5 * (GVAR(data) getOrDefault ["wind_dir", 0]); +private _wind = [sin (_directionOfFire-_windDirection) * _windSpeed, -cos (_directionOfFire-_windDirection) * _windSpeed, 0]; + +// Get atmosphere +private _altitude = (getPosASL ace_player) select 2; +private _relativeHumidity = EGVAR(weather,currentHumidity); +private _temperature = _altitude call EFUNC(weather,calculateTemperatureAtHeight); +private _barometricPressure = _altitude call EFUNC(weather,calculateBarometricPressure); + + +private _bulletPos = [0,0,-(_boreHeight / 100)]; +private _lastBulletPos = +_bulletPos; +private _bulletVelocity = [0,Cos(_scopeBaseAngle) * _muzzleVelocity,Sin(_scopeBaseAngle) * _muzzleVelocity]; +private _gravity = [-sin (_bank) * cos(_scopeBaseAngle + _inclinationAngle) * -GRAVITY, + sin(_scopeBaseAngle + _inclinationAngle) * -GRAVITY, + cos (_bank) * cos(_scopeBaseAngle + _inclinationAngle) * -GRAVITY]; + +private _useAB = missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]; +if (_useAB) then { + _bc = parseNumber(("ace_advanced_ballistics" callExtension format["atmosphericCorrection:%1:%2:%3:%4:%5", _bc, _temperature, _barometricPressure, _relativeHumidity, _atmosphereModel])); +}; + +private _deltaT = 1 / 60; +private _TOF = 0; // Limit TOF to 5 seconds! +while {(_TOF < 5) && {(_bulletPos # 1) < _targetRange}} do { + private _trueVelocity = _bulletVelocity vectorDiff _wind; + private _trueSpeed = vectorMagnitude _trueVelocity; + + private _bulletAccel = if (_useAB) then { + private _drag = parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3:%4", _dragModel, _bc, _trueSpeed, _temperature])); + (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag); + } else { + _trueVelocity vectorMultiply (_trueSpeed * _airFriction); + }; + _bulletAccel = _bulletAccel vectorAdd _gravity; + _lastBulletPos = _bulletPos; + _bulletPos = _bulletPos vectorAdd (_bulletVelocity vectorMultiply (_deltaT * 0.5)); + _bulletVelocity = _bulletVelocity vectorAdd (_bulletAccel vectorMultiply _deltaT); + _bulletPos = _bulletPos vectorAdd (_bulletVelocity vectorMultiply (_deltaT * 0.5)); + + _TOF = _TOF + _deltaT; +}; + +private _tx = (_lastBulletPos select 0) + (_targetRange - (_lastBulletPos select 1)) * ((_bulletPos select 0) - (_lastBulletPos select 0)) / ((_bulletPos select 1) - (_lastBulletPos select 1)); +private _tz = (_lastBulletPos select 2) + (_targetRange - (_lastBulletPos select 1)) * ((_bulletPos select 2) - (_lastBulletPos select 2)) / ((_bulletPos select 1) - (_lastBulletPos select 1)); +private _elevation = - atan(_tz / _targetRange); +private _windage = - atan(_tx / _targetRange); + + +if (_useAB && {(_bulletPos select 1) > 0}) then { + // Coriolis + private _horizontalDeflection = 0.0000729 * (_bulletPos select 1) * _TOF * sin(_latitude); + private _horizontalCoriolis = - atan(_horizontalDeflection / (_bulletPos select 1)); + _windage = _windage + _horizontalCoriolis; + // Eoetvoes + private _eoetvoesMultiplier = 2 * (0.0000729 * _muzzleVelocity / -GRAVITY) * cos(_latitude) * sin(_directionOfFire); + private _verticalDeflection = (_bulletPos select 2) * _eoetvoesMultiplier; + private _verticalCoriolis = - atan(_verticalDeflection / (_bulletPos select 1)); + _elevation = _elevation + _verticalCoriolis; + // Spin drift + private _stabilityFactor = 1.5; + if (_caliber * _bulletLength * _bulletMass * _barrelTwist > 0) then { + _stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor); + }; + private _spinDeflection = _twistDirection * 0.0254 * 1.25 * (_stabilityFactor + 1.2) * _TOF ^ 1.83; + private _spinDrift = - atan(_spinDeflection / (_bulletPos select 1)); + private _windage = _windage + _spinDrift; +}; + +[17.453*_elevation, 17.453*_windage] // Convert to MRAD and return diff --git a/addons/xm157/functions/fnc_ballistics_getData.sqf b/addons/xm157/functions/fnc_ballistics_getData.sqf new file mode 100644 index 0000000000..c0d1eed3bf --- /dev/null +++ b/addons/xm157/functions/fnc_ballistics_getData.sqf @@ -0,0 +1,62 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror, Ruthberg (Based on ace_atragmx) + * Gets ballistic info for a weapon, mag and ammo + * + * Arguments: + * None + * + * Return Value: + * Weapon Info + * + * Example: + * [] call ace_xm157_fnc_ballistics_getData + * + * Public: No + */ + +private _unit = ace_player; +private _weaponClass = primaryWeapon _unit; +private _magazineClass = (primaryWeaponMagazine _unit) param [0, ""]; +private _ammoClass = getText (configFile >> "CfgMagazines" >> _magazineClass >> "ammo"); + +private _key = format ["weaponInfoCache-%1-%2-%3",_weaponClass,_magazineClass,_ammoClass]; +private _weaponInfo = GVAR(data) getOrDefault [_key, []]; +if ((_weaponInfo isEqualTo []) && {_magazineClass != ""}) then { + TRACE_3("new weapon/mag",_weaponClass,_magazineClass,_ammoClass); + private _useABConfig = (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]); + + private _zeroRange = 100; + private _boreHeight = [_unit, 0] call EFUNC(scopes,getBoreHeight); + + private _ammoConfig = _ammoClass call EFUNC(advanced_ballistics,readAmmoDataFromConfig); + _ammoConfig params ["_airFriction","_caliber","_bulletLength","_bulletMass","","_dragModel","_ballisticCoefficients","","_atmosphereModel","","_muzzleVelocityTable","_barrelLengthTable"]; + private _weaponConfig = _weaponClass call EFUNC(advanced_ballistics,readWeaponDataFromConfig); + _weaponConfig params ["_barrelTwist", "_twistDirection", "_barrelLength"]; + private _bc = if (_ballisticCoefficients isEqualTo []) then { 0 } else { _ballisticCoefficients # 0 }; + + // Get Muzzle Velocity + private _muzzleVelocity = if (_barrelLength > 0 && _useABConfig && {_bc != 0}) then { + [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, 0] call EFUNC(advanced_ballistics,calculateBarrelLengthVelocityShift) + } else { + private _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineClass >> "initSpeed"); + private _initSpeedCoef = getNumber (configFile >> "CfgWeapons" >> _weaponClass >> "initSpeed"); + if (_initSpeedCoef < 0) then { + _initSpeed = _initSpeed * -_initSpeedCoef; + }; + if (_initSpeedCoef > 0) then { + _initSpeed = _initSpeedCoef; + }; + _initSpeed + }; + + // Scope Base Angle + private _zeroAngle = "ace_advanced_ballistics" callExtension format ["calcZero:%1:%2:%3:%4", _zeroRange, _muzzleVelocity, _airFriction, _boreHeight]; + private _scopeBaseAngle = parseNumber _zeroAngle; + + _weaponInfo = [_scopeBaseAngle,_boreHeight,_airFriction,_muzzleVelocity,_bc,_dragModel,_atmosphereModel,_barrelTwist,_twistDirection,_caliber,_bulletLength,_bulletMass]; + GVAR(data) set [_key, _weaponInfo]; + TRACE_1("setting cache",_weaponInfo); +}; + +_weaponInfo diff --git a/addons/xm157/functions/fnc_keyPress.sqf b/addons/xm157/functions/fnc_keyPress.sqf new file mode 100644 index 0000000000..36220f493c --- /dev/null +++ b/addons/xm157/functions/fnc_keyPress.sqf @@ -0,0 +1,67 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Handles key presses + * + * Arguments: + * 0: Type + * 1: IsKeyDown + * + * Return Value: + * Handled + * + * Example: + * ["range", true] call ace_xm157_fnc_keyPress + * + * Public: No + */ + +params ["_func", "_keyDown"]; + +if (!GVAR(shown)) exitWith { false }; // fast exit if not shown +if (!([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith { false }; +if (!(ACE_player call CBA_fnc_canUseWeapon)) exitWith { false }; + +private _display = uinamespace getVariable [QGVAR(display), displayNull]; +if (isNull _display) exitWith { ERROR("keyPress-no display"); false }; + +if (_keyDown) then { playSound QGVAR(click); }; +GVAR(data) set ["lastInputTime", CBA_missionTime]; + +call { + if (_func == "range") exitWith { + if (_keyDown) then { + GVAR(data) set ["range_keyDownStart", CBA_missionTime]; + } else { + private _holdTime = CBA_missionTime - (GVAR(data) getOrDefault ["range_keyDownStart", 0]); + private _range = 0; + if (_holdTime < 0.5) then { + private _distance = round parseNumber ctrlText (_display displayCtrl 151); + if (_distance > 10 && {_distance < RANGEFINDER_MAX}) then { + _range = _distance; + } else { + _range = -1; // bad return + }; + }; + TRACE_1("Updating range",_range); + GVAR(data) set ["range", _range]; + }; + }; + if (!_keyDown) exitWith {}; + + GVAR(data) set ["menu_updated", true]; + private _index = GVAR(data) getOrDefault ["menu_index", 0]; + if (_func in ["left", "right"]) exitWith { + _index = (_index + ([-1, 1] select (_func == "right")) + count GVAR(menu)) % count GVAR(menu); + GVAR(data) set ["menu_index", _index]; + }; + (GVAR(menu) # _index) params ["", "_var", "_thing", ["_upAction", {}], ["_downAction", {}]]; + if (_func == "up") exitWith { + [_index, _var, _thing] call _upAction; + }; + if (_func == "down") exitWith { + [_index, _var, _thing] call _downAction; + }; +}; + +true diff --git a/addons/xm157/functions/fnc_weaponInfo_draw.sqf b/addons/xm157/functions/fnc_weaponInfo_draw.sqf new file mode 100644 index 0000000000..c6b89712d4 --- /dev/null +++ b/addons/xm157/functions/fnc_weaponInfo_draw.sqf @@ -0,0 +1,144 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Draw3D event handler when scope is active + * + * Arguments: + * None (implicit vars from missionEventHandler) + * + * Return Value: + * None + * + * Example: + * [] call ace_xm157_fnc_weaponInfo_draw + * + * Public: No + */ + +//IGNORE_PRIVATE_WARNING ["_thisArgs", "_thisEventHandler"]; // from missionEventHandler +_thisArgs params ["_display"]; +if (isNull _display) exitWith { + TRACE_1("cleaning up display",_thisEventHandler); + GVAR(shown) = false; + removeMissionEventHandler ["Draw3D", _thisEventHandler]; +}; +private _ctrlScopeObject = _display displayCtrl IDC_SCOPE_OBJECT; +private _ctrlScreenObject = _display displayCtrl IDC_SCREEN_OBJECT; + + +// Hide everything when not in scope +private _isUsingOptic = ctrlShown (_display displayCtrl 154); +if (!_isUsingOptic) exitWith { + _ctrlScopeObject ctrlShow false; + _ctrlScreenObject ctrlShow false; +}; +_ctrlScopeObject ctrlShow true; +_ctrlScreenObject ctrlShow true; +BEGIN_COUNTER(draw); + +// Get common info +private _weaponVec = ace_player weaponDirection currentWeapon ace_player; +(_weaponVec call CBA_fnc_vect2Polar) params ["", "_weaponDir", "_weaponPitch"]; +private _weaponBank = call cba_optics_fnc_gunBank; +private _viewBank = _weaponBank; +if (isWeaponDeployed [player, true]) then { // prone deploy tilting is special (screen doesn't tilt, but player does) + _weaponBank = (((vectorUp ace_player) vectorCrossProduct _weaponVec) call CBA_fnc_vect2Polar) # 2; // I think this is right? +}; + +(0.25 call CBA_fnc_getFov) params ["_fov", "_zoom"]; +private _fovMRAD = 1000 * _fov; // Real MRAD (not mils) +private _nonMagnified = _zoom < 1.1; +private _range = GVAR(data) getOrDefault ["range", 0]; +private _needsUpdate = GVAR(data) getOrDefault ["menu_updated", true]; // Updated when a menu item changed +private _timeSinceLastInput = CBA_missionTime - (GVAR(data) getOrDefault ["lastInputTime", 0]); + + +// Bank-tilt display objects +_ctrlScopeObject ctrlSetModelDirAndUp [[0,1,0],[sin _viewBank,0,cos _viewBank]]; +_ctrlScreenObject ctrlSetModelDirAndUp [[0,1,0],[sin _viewBank,0,cos _viewBank]]; + + +// Scope - Handle etched reticle +private _retTex = QPATHTOF(data\mrad_10_ca.paa); +private _retScale = 4096/10; // texureResolution / (px/MRAD) +switch (true) do { + case (_fovMRAD < 4096/40): { + _retTex = QPATHTOF(data\mrad_40_ca.paa); + _retScale = 4096/40; + }; + case (_fovMRAD < 4096/20): { + _retTex = QPATHTOF(data\mrad_20_ca.paa); + _retScale = 4096/20; + }; +}; +private _scale = 1 / (getResolution # 5); +_scale = 2 * _scale * _retScale / _fovMRAD; +_ctrlScopeObject ctrlSetModelScale _scale; +private _ctrlScopeReticle = _display displayCtrl IDC_SCOPE_RETICLE; +if (_retTex != ctrlText _ctrlScopeReticle) then { _ctrlScopeReticle ctrlSetText _retTex; }; + + +// Screen - Draw menu +[_display, _needsUpdate] call FUNC(weaponInfo_drawMenu); + + +// Screen - Show range info +private _rangeInfo = _range call { + if (_range == 0) exitWith { "" }; + if (_range < 0) exitWith { // range error - blink if recent + if ((_timeSinceLastInput < 3) && {(floor (4*_timeSinceLastInput)) % 2 == 1}) then { "----" } else { "" }; + }; + format ["%1 m", _range toFixed 0] +}; +private _ctrl = _display displayCtrl IDC_SCREEN_TEXT_UPPER_RIGHT; +_ctrl ctrlSetText _rangeInfo; + + +// Screen - Show bearing info +private _bearingInfo = call { + private _bearingSetting = GVAR(data) getOrDefault ["bearing_show", 0]; + if ((_bearingSetting == 2) && {_timeSinceLastInput > 2}) exitWith { "" }; + if ((_bearingSetting == 1)) exitWith { format ["%1", floor (17.777777 * _weaponDir)]; }; // (6400 Mils, not MRAD) + format ["%1°", floor _weaponDir]; +}; +private _ctrl = _display displayCtrl IDC_SCREEN_TEXT_UPPER_LEFT; +_ctrl ctrlSetText _bearingInfo; + + +// Screen - update reticle type based on settings and zoom level +private _ctrl = _display displayCtrl IDC_SCREEN_RETICLE; +private _lastMagnified = GVAR(data) getOrDefault ["reticle_cache_lastMag", true]; +private _size = GVAR(data) getOrDefault ["reticle_cache_size", 1]; +if (_needsUpdate || {_nonMagnified isNotEqualTo _lastMagnified}) then { + private _tex = ""; + if (_nonMagnified) then { + switch (GVAR(data) getOrDefault ["reticle_cqb", 0]) do { + case (0): { _tex = "\a3\weapons_f\acc\data\collimdot_dot_red_ca.paa"; _size = 1; }; + case (1): { _tex = "\a3\weapons_f\acc\data\collimdot_dot_red_ca.paa"; _size = 2; }; + case (2): { _tex = "\a3\weapons_f\acc\data\collimdot_circle_red_ca.paa"; _size = 1; }; + case (3): { _tex = "\a3\weapons_f\acc\data\collimdot_dot_green_ca.paa"; _size = 1; }; + case (4): { _size = 0; }; + }; + } else { + _tex = "\a3\weapons_f\acc\data\collimdot_dot_red_ca.paa"; _size = 1; + }; + _ctrl ctrlSetText _tex; + GVAR(data) set ["reticle_cache_lastMag", _nonMagnified]; + GVAR(data) set ["reticle_cache_size", _size]; +}; + + +// Screen - update reticle position based on ballistics computer +if (_range > 0 && {_size > 0}) then { + BEGIN_COUNTER(ballistics_calculator); + ([_range, _weaponDir, _weaponPitch, _weaponBank] call FUNC(ballistics_calculator)) params ["_elevMRAD", "_windMRAD"]; + END_COUNTER(ballistics_calculator); + _ctrl ctrlSetPosition [-_windMRAD / _fovMRAD + 0.5 - _size / 2, + 4/3 * (_elevMRAD / _fovMRAD + 0.5 - _size/2), _size, _size*4/3]; + _ctrl ctrlCommit 0; +} else { + _ctrl ctrlSetPosition [0.5 - _size / 2, + 4/3 * (0.5 - _size/2), _size, _size*4/3]; + _ctrl ctrlCommit 0; +}; + + +END_COUNTER(draw); diff --git a/addons/xm157/functions/fnc_weaponInfo_drawMenu.sqf b/addons/xm157/functions/fnc_weaponInfo_drawMenu.sqf new file mode 100644 index 0000000000..63ebe540ef --- /dev/null +++ b/addons/xm157/functions/fnc_weaponInfo_drawMenu.sqf @@ -0,0 +1,81 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Updates the menu display + * + * Arguments: + * 0: Display + * 1: Menu Item Needs Updating + * + * Return Value: + * None + * + * Example: + * [display, true] call ace_xm157_fnc_weaponInfo_drawMenu + * + * Public: No + */ + +params ["_display", "_needsUpdate"]; + +if (isNil QGVAR(menu)) then { + private _arrayUp = { + params ["", "_var", "_thing"]; + private _value = GVAR(data) getOrDefault [_var, 0]; + private _value = (_value + 1 + count _thing) % count _thing; + GVAR(data) set [_var, _value]; + }; + private _arrayDown = { + params ["", "_var", "_thing"]; + private _value = GVAR(data) getOrDefault [_var, 0]; + _value = (_value - 1 + count _thing) % count _thing; + GVAR(data) set [_var, _value]; + }; + private _rangeUp = { + private _range = GVAR(data) getOrDefault ["range", -1]; + if (_range < 0) then { _range = 0; }; + _range = RANGEFINDER_MAX min (100 + 100 * floor (_range/100)); + GVAR(data) set ["range", _range]; + }; + private _rangeDown = { + private _range = GVAR(data) getOrDefault ["range", -1]; + if (_range < 0) then { _range = 0; }; + _range = 0 max (-100 + 100 * ceil (_range/100)); + GVAR(data) set ["range", _range]; + }; + private _atmosphereInfo = { + private _altitude = (getPosASL ace_player) select 2; + private _relativeHumidity = EGVAR(weather,currentHumidity); + private _temperature = _altitude call EFUNC(weather,calculateTemperatureAtHeight); + private _barometricPressure = _altitude call EFUNC(weather,calculateBarometricPressure); // hPA + format ["%1%2 %3%4 %5hPA", _temperature toFixed 1, "°C", _relativeHumidity toFixed 1, "%", _barometricPressure toFixed 0] + }; + GVAR(menu) = [ + ["", "", [""], _rangeUp, _rangeDown], + ["Wind Speed (m/s)", "wind_speed", ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"], _arrayUp, _arrayDown], + ["Wind Direction", "wind_dir", ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"], _arrayUp, _arrayDown], + // ["CQB Reticle", "reticle_cqb", ["2 MOA Red Dot", "4 MOA Red Dot", "Off"], _arrayUp, _arrayDown], + ["Bearing Display", "bearing_show", ["Degrees", "Mils", "Off"], _arrayUp, _arrayDown], + ["Atmosphere", "", _atmosphereInfo, {}, {}] + ]; +}; + + +private _index = GVAR(data) getOrDefault ["menu_index", 0]; +(GVAR(menu) # _index) params ["_title", "_var", "_thing"]; +if ((!_needsUpdate) && {_thing isEqualType []}) exitWith {}; + +private _ctrlMenuText = _display displayCtrl IDC_SCREEN_MENU_TEXT; +private _text = ""; +if (_index != 0) then { + if (_thing isEqualType []) then { + GVAR(data) set ["menu_updated", false]; + private _value = GVAR(data) getOrDefault [_var, 0]; + _text = _title + "\n" + "<" + (_thing param [_value, "#BadIndex"]) + ">"; + } else { + _text = _title + "\n" + ([_var] call _thing); + }; +}; +_ctrlMenuText ctrlSetText _text; + +GVAR(data) set ["menu_updated", false]; diff --git a/addons/xm157/functions/fnc_weaponInfo_onLoad.sqf b/addons/xm157/functions/fnc_weaponInfo_onLoad.sqf new file mode 100644 index 0000000000..3fb82c756e --- /dev/null +++ b/addons/xm157/functions/fnc_weaponInfo_onLoad.sqf @@ -0,0 +1,83 @@ +#include "script_component.hpp" +/* + * Author: PabstMirror + * Creates UI + * + * Arguments: + * 0: Display + * + * Return Value: + * None + * + * Example: + * [display] call ace_xm157_fnc_weaponInfo_onLoad + * + * Public: No + */ + +params ["_display"]; +TRACE_1("weaponInfo_onLoad",_display); + +uinamespace setVariable [QGVAR(display), _display]; +[_display, true] call cba_optics_fnc_loadScriptedOptic; // pass thru to cba + + +// Setup the scope object +private _ctrlScopeObject = _display displayCtrl IDC_SCOPE_OBJECT; +private _scale = 1 / (getResolution # 5); // keep object the same size for any interface size +private _distance = 2.0 * 4/3; +if ((getResolution # 4) < (4/3)) then { _distance = _distance * (getResolution # 7); }; // eg 5x4 +private _base = ["3d", [0,0,_distance], _scale] call EFUNC(common,rscObjectHelper); +_ctrlScopeObject ctrlSetPosition _base; +_ctrlScopeObject ctrlSetModelScale _scale; +_ctrlScopeObject ctrlSetModelDirAndUp [[0,1,0],[0,0,1]]; +_ctrlScopeObject ctrlShow true; + +private _ctrlScopeGroup = _display displayCtrl IDC_SCOPE_GROUP; +// Add reticle +private _ctrlScopeReticle = _display ctrlCreate ["RscPicture", IDC_SCOPE_RETICLE, _ctrlScopeGroup]; +_ctrlScopeReticle ctrlSetPosition [0, 0, 1, 4/3]; +_ctrlScopeReticle ctrlCommit 0; + + +// Setup the screen object +private _ctrlScreenObject = _display displayCtrl IDC_SCREEN_OBJECT; +private _scale = 1 / (getResolution # 5); // keep object the same size for any interface size +private _distance = 4/3; +if ((getResolution # 4) < (4/3)) then { _distance = _distance * (getResolution # 7); }; // eg 5x4 +private _base = ["3d", [0,0,_distance], _scale] call EFUNC(common,rscObjectHelper); +_ctrlScreenObject ctrlSetPosition _base; +_ctrlScreenObject ctrlSetModelScale _scale; +_ctrlScreenObject ctrlSetModelDirAndUp [[0,1,0],[0,0,1]]; +_ctrlScreenObject ctrlShow true; + +private _ctrlScreenGroup = _display displayCtrl IDC_SCREEN_GROUP; +// Info display +private _ctrl = _display ctrlCreate [QGVAR(text), IDC_SCREEN_TEXT_UPPER_LEFT, _ctrlScreenGroup]; +_ctrl ctrlSetPosition [0.3, 0.2, 0.25, 0.25]; +_ctrl ctrlCommit 0; +private _ctrl = _display ctrlCreate [QGVAR(text), IDC_SCREEN_TEXT_UPPER_RIGHT, _ctrlScreenGroup]; +_ctrl ctrlSetPosition [0.7, 0.2, 0.25, 0.25]; +_ctrl ctrlCommit 0; +// Menu +private _ctrlMenuText = _display ctrlCreate [QGVAR(textMenu), IDC_SCREEN_MENU_TEXT, _ctrlScreenGroup]; +_ctrlMenuText ctrlSetPosition [0.1, 0.45, 0.8, 0.7]; +_ctrlMenuText ctrlCommit 0; + + +// Add screen reticle +private _ctrl = _display ctrlCreate ["RscPicture", IDC_SCREEN_RETICLE, _ctrlScreenGroup]; + + +// Add dummy idcs for dist/angle from engine +// 151=Dist, 156=Heading, 182=Pitch, +private _ctrl = _display ctrlCreate ["RscText", 151]; // IDC_IGUI_WEAPON_DISTANCE +_ctrl ctrlSetPosition [-1, -1, 0, 0]; +_ctrl ctrlCommit 0; +private _ctrl = _display displayCtrl 168; // hide ca_zeroing (from cba) +_ctrl ctrlShow false; + + +GVAR(shown) = true; +GVAR(data) set ["menu_updated", true]; +addMissionEventHandler ["Draw3D", LINKFUNC(weaponInfo_draw), [_display]]; diff --git a/addons/xm157/functions/script_component.hpp b/addons/xm157/functions/script_component.hpp new file mode 100644 index 0000000000..3c08948f71 --- /dev/null +++ b/addons/xm157/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\xm157\script_component.hpp" diff --git a/addons/xm157/script_component.hpp b/addons/xm157/script_component.hpp new file mode 100644 index 0000000000..432fb05830 --- /dev/null +++ b/addons/xm157/script_component.hpp @@ -0,0 +1,24 @@ +#define COMPONENT xm157 +#define COMPONENT_BEAUTIFIED XM157 Fire Control Scope +#include "\z\ace\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE +// #define ENABLE_PERFORMANCE_COUNTERS +// #define ENABLE_QUICK_TESTING + +#include "\z\ace\addons\main\script_macros.hpp" + +#define RANGEFINDER_MAX 5000 + +#define IDC_SCOPE_OBJECT 7000 +#define IDC_SCOPE_GROUP 7001 +#define IDC_SCOPE_RETICLE 7201 + +#define IDC_SCREEN_OBJECT 8000 +#define IDC_SCREEN_GROUP 8001 +#define IDC_SCREEN_MENU_TEXT 8201 +#define IDC_SCREEN_TEXT_UPPER_LEFT 8202 +#define IDC_SCREEN_TEXT_UPPER_RIGHT 8203 +#define IDC_SCREEN_RETICLE 8204 + diff --git a/addons/xm157/sounds/click.wav b/addons/xm157/sounds/click.wav new file mode 100644 index 0000000000000000000000000000000000000000..efc08e62d1187af84d6043662f8d3904a872315b GIT binary patch literal 35864 zcmaK#2fQ6swg30I_a?b%Bryquga9FdP(u?CCG=iJP*4FueKg_Ocs>!8rr;AnKoq4) zRf@C#Qltt}1ZklrgdRvCA-$Y4GymWB{8(?#4Zi=G&pmTyX79Dv`mNtud+mKr;0t@~ zy6fOyrF75^U)tr!<4;&~a7w9>I?~QJrZo80j?|R~r*9r{!V$C2O6k(-(&~}w@73Ma zz154=3)S+fs6MP_RDad=JJlQ2SJT(hCFu`o_q0cPu6n+DyLz)aD19Z}o9;@tq}$Su z(@E)I9bZTX>h3}5fb^v_A+4XDR@XxNX+#>9KAk?Bu1{B`A&n7@UX3d4t!GzAzYD8BRD;uyv}@WiO|D+4K2vR3 z4X6fI2UiDGFX{NSdLASlCZvth+tTp$YHGE4+A{qtotlnH$E4NLs5B<6nf^0T~zH-?OYA7MpOq@`&Cz0*X!=zsyl?r z)78JK(P?D*mZY7hLTpvbwCgyt<-&yi`rDR!eK7 z&C({R((9S(S&jIL#+oaMQ>vG%SF5Eu(B)G?V}$;`mX1gdrH9kq>94};0QFuo9hweF zzfTvXucyP)hw6Jnb)Dp2S)Ey(Q5{nq+t&Bd>L1l}8sUoSDxr8`HM5!{4jq)fpMH?O zt>X;o`j>QTx+YyA?;e=uRI}vaE5wZNSHG;zuHF;t#-?$SKSy`ITYb6uimZRP`jxD{ zMg6`Zy++ETD~m7KgdcYh!rb3j7Tzwl9aeo!BVX9YYC_sHEvpt+_sfHKR+FUjO+xfM zjrm87^{#9lEjeT4v31hP(ydBG8rvAtn4V^&Ur5_e%U|~k&yA~1s*lRK<=WNw>Q~iS zV)QM-_wqJZ?h!XWkeAky-akzLoo?1~eY#G)&lCqwmxoT3ZX2Yl#IL=pJ*xGp4Xe53 zhvix2+2xPQ|1RGxr5e9lzD_Jsp42F|skTv7L^&=_5rQk#|Qr zQT~2G-usX0i0a1b=IXQJ)b8Teht)iJb3yeRd26f2ryB?ASgA3nabNnI_;PaEE^U+M ziBD*MaCK<)b>T&9j;uyi`<8o`Czq#}`!)7%Y}I?K-e2$c&3;q*z1(lxK0Eap*wL@! z)aumgoX&GQzcJ{DLF=rs&Kmn~c)*57Y<}40J8rehR_jh&XX1!mM((n7_r<%PwBwI= zoV3ZLO$Myef0ZYeJ+*9|*T=rz`Dm|4m)*AXwp*{hUO4&E$;VDVa{5E_ADMq#^O)xNUhDUIbjZU)E*X9K=sm~o zHul6dPg-;EDl4sWPXBZJ@6owi=jS>mc6`12i0&T_`N5FWMw~I?gHi8{dTsO@qrWuf z3uAsZ{(r__H{q%YuW$CwW~XlQqfK@nzu)+uj5=}DZ-!hjWOCn^`YuTe(zh3Vf6+!W z*Pr>Px37Eq-D&SmJ8kM|QzySR`L#`_Y&>PlX`h{T>)SWJeb@WfF53iha#hlCLUOIQBd4uO2v*73jlNR5;c)R7> zF5k1*v-q9Zb!Fq4#@(HFc3#=*>RwX2&!*iIx)*mhyI<;luKV+S4(zkMYiZX;ofA5L z+3|~xV>^!PXf>LR4I2|02P>~1Ca#o4qx?bZ`>ms!$2B)>uG>7I`NihpIzH7L(%f?S z*2`aB`ux&0mW*5SmqphtdT`+*3-?^O>%!p+M=acC;noYMEqrU?f<^NeZMbBEC5J6N zZ0T*wCM`R&`Sa$8a#ZSHwI1{c*%fE2VBv*c;wT?GB{?d7U=h|K4yAJC7V&_ARhZ;94hm2FsD9WmQv-L*nj^%eO|L(HyF1vf_ z-Ah+pI&$efOYT~-)6!j+Ub*b@W#4U{&^)F1NpX>~#pfIQG)8ue?wHWAQAgD%8&@^1 z)+{xm@mI}*FQjMF(8kJ*1&Ynd>E(2J&ML>H8*Ik-<;Uo zuDN$}ujZKMTFo7s+c#fszS=ysb#m+G)~&6xTfb`E(7L{LeDUpK=W@sL(DJa7&pWlY zZ9S)!Ye~{xk~gP0t9e^v0H8YK=##Q^2dzJ4M?-fs%&z6U49@w(+xyE{pag9Bc zC)Vm%vtzm>Ozn78jQMuQ1|8!&o@zYXn33K~FKVXQquNQCWlZ(Y^09W#d%c`e{zBRQ zVa>KDSEpC^RrgevYd+Y%v2Ekc^p<9!)f0302bvouDX)FCI=uR!W`lof_GP}=Oxbv^ zYJcUs&C)cD@kV-08S;94o|-;Pb5)D%r@H0})iE=x`DtM~s_`FK*cHZJhj3Q)f=a#pKDG!LGylR zdPQ}>c+GT2t16nH;~CA<|J2bp_0^m@Dt(~ZG%&6N*IzbTsG=Tr^NMPuZTjU{uO zX4}=(ZZn~`YuY*OrrBl->AId|uB>B*JofkMQPqGP)QxhJZ}Rhhn^Ic=Hhz?EbRHEfbD zV>SLJX^_x*Lo%OHuPMS6yKbv)*PQsL>Mvr@Et>T&(QJ3GjydA=0Lf@p&9;3?1Jz2Z zhf7_*FMU2xP4G|Eco%9O{+5o@bWlb8UU$w`-SCv^n|^A)u=+?@;WE{R*H*n%TaQp3 zahqz3^Qzxen@A^WvjwW!HY(RIA8-A$b!O}5t^aBLvNgQ5a_jcyt<8N~`?oGFE-tPr zuP%pFL#qF(PLLn^i2+|p<8?HvmTHqVRVQwnW=pT1%eS}b*j<=ksCoU{>3G#V|B+^< z57M6-H#CNK4DFcKnASM7aaiM-^t7ZLB7e+K_4MWHrt;?UE9IBVzvwttHvL^*`J!s) z8_Mg-b96jjK3U$V&(9Yx6^mO7TDQ0EXcaoPD7Gj@>sY%OSDae>tXNrG+qvAc>{oV` zw-C^l#jyYH}-i zY@BMX^V7L$ep-|U>3%;|C#yDwH$K#zLsZBAS@rg|)x>Ifxvczgc}jU-ahEh$R}opZ z)+;tBjw_BW?kVmoHZC`i-nW*YRzA2>k%u2TQy=mA={CdQ%XQ+wpUWGhaVmeHYU>Iy zps9LCm6gTD zrgbHMke(4s?})w2RQJuU=8MDsP-eSM$F<6!w<->(5N}q5Jg=Be>M=MikuHm6%}~Yk z{#tDvqgBm5I**gwA*!#*BYWuBMjTA3B~2$QGM-RmzooU}WXZf)+4yovpCqZz>Tj~1 zys4P(Qq{e&w4Tt`bFjwRLI?SR_0J$(6MrA*cucWgI7mpi=v{WZ_h;Rh}1)4=YF9FDAdKi0@Y1tR`I6X}8=+BWUHqiKsp|vxnft@xU1^s!?lJuN9&AB(xu9qr|J4otu1zIuhdqReAZyI zHLG-JHO+do(pq^+d$l=5n0Cn4VbWxPa!E^hYN(=jHR0Bo9?*DK$`5~6UY#b5Uz7#6 zDW5+nEXjTwi6N_~_q*+t-aGAlyn{yGLwKz#+q)!#9Qj#U@=dM2zN8o#l~&cdrd18n zc*GO7y(Y}wQ2rXHk@roX7jo;j*TYX}oY!@HBwm2u6T*OX)+p%*Hd_j-b#$z&O#V5o z$=BAoAuC={E}btfj?)O_|CW3(NqKdWw4bJ<&|30M$$k7|dF!d)&O&leVTO+9=(tWZ z+nHKP?W{E#&v($A_az;>sU7*PU+OO`$>78EzLKu{>F!!-FIj)I4)zwdkcR84?>@5X zSRK@&s|tZ7V()S>zC+k7kacg$rls=HFlA%bu*@fKY5r)c%?3hwqO9Fq^VQ~J=R~c7 z4o+W8UzU&ek~V8=gl_pTN!BXTW)01H19ez_m#$aS{gKMWGc^Z1Ex%9E%u$G=ecQ1; zR95UE4S%fl-#4V=7UKSB*|Cc(K2q20j0}}lA8M9qN#hNb1GY)qtJg|tX1fBJUg761 zjsLc^en<=_Uo5VcXq2XAzZVsM{}ONKR?NpErO{mF_b0`rsd`$d_fW~|E&S$)qvViM ztQ^(WnpqpfR&Dnipe)0@${5edmUkrQE!p#^m_Zz`A=w8An@xn-TjCS>v`d<;rg2%@ ze^0g8u{!>$T7fuvQhNQKwT0IF?<=N9e>@ug`AB*Uk!L4J+6MCBbUnXURmQ`La`0YV z+yaw}lt<3g`u9)DSVZ=bYuD2Vh1l?l z_|1L+`F5eQDmBF0`dcVX7wUN*jX6O2fGP9*)v5sR(RkC;?^z*!xhy$Xwmhe2eS}j> z9Dh+)uL|W=6{GNGa~;Ekc5fYB`Wq+?bm*^BS?%36mTzdJ<%%0J(im~5C6s1W#P~!V z6n|-oAdU`gL`Va6X~>vydpIL$~BVAxYz8?h&3Z%koaKmq_aVIAahqdyCyOH1@RewelCm*~MF}sjXf`-{R=vsN(qITg4&8 z;l;dSPBE@pNA>h)w3Bs3dN4hZR&K1)xVv#zV^GJSj`teV8{cevy)ji4_IFfyY^Vd? zzb_rmk(UN)H}0q9No7%Vls_s?C>FGutqWVfZXM7%xHYadrq$i**ZOMfkk-WFvjyv& z(ba0IsIC$o!xe*HY0oo%(QLA}>gL_FR@kTdf>sNo+x7EK+J{?3Xm>Tb8`n3kZ7ggo zY4q>t*19xxENXnzc&70}<8akH?3bLY>TAPlgKBpjn`)JCrYhyXsZRK{?4DkHPz)^l zmzNfo7t2~pTUYA1sC9Ac&eo*Xi>+5%n-vp^J5^PDtvsY$RXZW%wQPe;q=tLn}rVmNkJWzuSD zZP~etDzW3W`Z-nF?onM^{;BL$c9ye>*~PZy#PVC^aat9xR-RCNznI^erwa1v*0^G= zVp4H?v3j|BIa~*8xwXo*%0kCgm-f)eGf|mn5ebqoN`uqk0N_Z&F^a{^F1zB-=>*@x_U$9+i}8Rsj?J%ag~r< zro2WSzmB5eb3$~ibYG-<jXsnwz5QXQwO;(NV#t@vB< zVDYcw$zs3q0IkuMmfz5>+WtbVzp#8)wc$rv%XMkJH@{p^c4~EZeD$C0{J)K|IC*iT za{Hk=&eoi_pGHQ{EpKNAYuvcEh*UuJ}|{ z(c6|gl-C#66-VmWU&r=3HY+yOZqug4a2+qTCQIW#ww`D`*5dhK)#EqIFMYJWT)7%n zty`_%&Kp|`i8Ipw2)p&uDOxuiTpgf%`>1f*UdVhy^U+b-p}Zwc(9X_J8b58EuH!JR z9L6^`XgsQw%eLb81Ij7eDfVtsg}q+6ZaG(3VthHSJW9+wNtN{B<&otV%l*oIh1Zw$ z>4NgYa=du`u(DdWa^gbyi#6a!?HTJM-G5lQ^)hAJ2b39?X-*g_&n;9Id{5b#e7(H- zlqy_wr{-K=$8vFJfsSFiKTIr`F1*OqkINSFDQn4o%0nBAUx#QW|Gf5-cT;`wHCcJC zJaLMuxHXl3S&7b)9^@N1P3`)Sj`wsZWokxgXe_?@DBEk)IntUvcl3W&5&ozS<{#?f zUBxwK9`;Y+72h3DJ9WzAPpj=D9d{~2v!{=4)bOKpEYe)`p^o9QB-r>T4xpcA6S}a_c-v?-n5n|wYwH+;MJ5-f27u>5| zm1~t_FVn2dcLCJscj#bkJy|mvYy0p*|LXW=^))`4$IQcDb3 zRoIMGMp~|H^OENAhct)2toE}s;zHFEGuxWYYRB?Wak8)KQFu9{{hV*Y=C<44FMD2< zgoVR#%%Ty`uFZrH>6 zfgFerS;O_$(O1|vb=MvkD36j|#>nEq?fK?WVas=Q=u*i4)OW)*!{DGfnz0s;G^-g!B7C@NL;jB|b>{({{P+Ba+rpqMr zC9mk9c70o302B7qx^*lOywB~ItGZTgpZ@|+m!% z3LEx;rU{MtYKwp2%@EnqTYvb1^&j6mt|{&f6TU6!JVVid7iNmj*v^^gdq@@&NAq-- zJqz*@IciFK-1l{UO)c(Ib$FxL{&<^TtF|p4Dy#ao`M#!D&YFtcv4>_(zJnzntS&8J z&_dz-qR=%BWxu8q2wyF=B2>W5X`GWlnTdbiqU@v%A+R?BOF`qDqH-WC;EgXu1#Y zSy#Oyecq8)vvn-ifzMduu`kEo%t+z5x<+RI2v0Zkx02-bZ!>6se2&+Lwe^7Sj95tq zvE{rlU!RuhGjYI52DB^PTi&*nIgsbfRbU0y>@|QdIxy-0y<;7706CMk>^CvLzVvQGJY(Vmv~9FkOI2Gg{wBT($%1*T zrA7%IW@u_RB8WK~|1wK0(%<}#{mEzM0Oo)6Bo2_C-oTn7fUoYwI|ouNKe{f=Q2sgSL7Ic z!`PtDUKQiAcc%ireGm)8D%R2$|2FjmZ?eAk83wncB}`zY=uC=jecQ~zBC-YA^lobe zCay@THiFie?1o%s4D|3H_<|(*q932oO9G^~dBbNk<_gY%Q7?V!-@YOm7_q;`Mpt%y z7=>MVn28TqDT5R&;U2RpZG46sTsQQD{kzr{d1%uHQYZ!?r=q@A<<++3g?9E5qywnPZM?B_a`;m5$*EC{^tko^byh%h1- zsoY17y;J7}5`ArMfJWeFoX`xP7!7m7nDmS?#~)APK4)GrDt&zq$-xKM7`EbdKY`nh zOR#jb1QWTF+5bttFp6~uR$2>2bbR%cN4&GA$vL9dQH~t^Cm$=NIC7yMw90>O|Pm>?~rf&(mbo*-Y49USR(Iq(2q8fjmdV_}Ec zW$f%3aDkO%=Vh|Kw=BRv*y6}AyBN>@;0*70cf4b(mJ!|t&w7p_+j%y?a@yJl zj!}C8{@ZgAkJjIFq+^Dh!>R-{I9e)bHK z`40}3oX=r}5sCZAGdr-~tC!%Tbq?L(uxFG!>mjS20i=}V1%L3NXKZwhO2AB|rSXI- zJ!e2m2^)+^&J^aI^)_Fe)m^RNC2WJQc_wnSaTjzwp5wqRBk$JP1iG=FbT;ED_Mvx< zNc+(DoK1}gZFuFp=~)k%#u}+c75%`)dBHu6W1x_)kO?oMR&gx^nwjZ&OlMBeLIUr> zIggTYve%6sE&1e}YJbBLu!9fI24DGe4=NV@l>y$ZW&iguBV+ML=aD+Shozd)X?!)fj6&zwl zVHbnl3945zMEHWUBiD1jvDD4~ec7teGtMBvECCbZ9Qn-H2F4i;#sY6%ft6#he$Uy# zl~&KX8D0d-EF=7ml*oi;T%crBoLL-)&UaopX#~^;lqRkB*&WO-5uN zhn*vK;EaWzSqsl79yer}bs1kjMW#97yn_C&EkK(1G=7X4ezGLq$$74uV3gy)s0Na@ z(qoukynBDaSeOmr3G=|Zcy7=672V7vGu=8_$MBf5jU~GpK{7g_f3!6VxNqhKyPczR zwQO{pPdvjR*+_d<#&e9|{K|-7an88mKhE|>wl?Q>BE^_T99tXuWJcLP=6%Ek(gJUD z6Mg*2QGi|^-QIzl$hG}O%jklm?ZNwbm2ZUT?HDy~J-KD<@ezn2HSnb!Tv;(!(*wyN zHxME&%n_sPc_QM^Hbmb#HqIN26q;EFYfnqGr>Dma2I$tun(%}xHPk0#;y5+`!3}h& zWJy=?yTgfpQGD0fNzdOGcE3ThX`~)%rbd~HRKZSD5Fat!6@kC zKcX5`d#SZo+~AFk^_s_fS@spZ(Tgj6)Vn=rT=KnW9cQ^oa+Zy?q7@hN*OG7&Op!C%Cd&)EjE(0dQA!yIE-HofCzEF+S#EXSic8ai21 zqX+JIsb}3ye@hRP?H@;YjvC9b&%NtKW$ZeOF_D6g0##5(YlH^bF4v^>n5Cat%1B|Yd*vL%lepK@PBipLv@k=lxSrn} z%|tbP^_NN^k+^y>g?+&tm$^O1Ach=Mmy%-VQv$w))zE4}*mhaoE?d}@cS%ZA+ zwTZJ342m3Vv^`rm#*xKS^QnFh#Qc;`F_Qh~+0{%jZ?TzYZtK>cMBMVCU-$w2jU4EQ z6yG(%<^`=BrJlE94-O5`6}cYSlHK0#p-aA^Ps{`!)lBBDIs5ox2$(do!_l_O6VwWv;(pdv} zhBkLV!;uP3j1ksF9*8r#1t!iQ#)e)TF(SFt`*{(`mg`aL%&?b(m!On$hx_zoVKC2r z@J#Kw(>8gQtLOQcTf?LFMXZC!H{>hW>A4*VmL6z0nnO-r)!HAlGGdXvI5SFMSoP)VDXXIWqB9v}`WgS)OQ7g1ku9~qJp)DdU>q!Vp7oV^XD`{7$T#-4BLb|9 zDDQlBj0L`+XGH6`o43whmX<5|>@PnL+v#t_kZlXO6JvT#Gh*h3y_ahY?yjf>5<B<2cxHrE>VQnn!b z%lwTvvj20tup{^vc33O$L}T0JSg@|n9dIn$70=C=x=q+)R-uRO?Rn3b#U4GsSMu)` z;8XUmKbZypZiX?-7$GtvD_B>1M1*m56b1gq$BcG9&y4t_XR=lFFshMDaxRF-Vcuk2 z>~G?o)onK#=3Q6Ei#75Hj2xdB2c1AW{9{Y7RPg9UTUccs=wUv_GxMP*M|;|7)auwc zQoNSU-=`zlmgih)mUu3596EaOf_-9tkmpyl+H)zoAeGk68?LFa$w)*E05bg1)-#0B zGgt9QtO(3b`vL?(C@`WY*Y<+z0W`4vJo9**Bd66PA?{|0jEZgOU;j3c7_~Hf6fg4) z-6DpKP1s~sqM?1s**N%)>?_{qY|eleYE`a&z{iRcOR0bws$2b&d|pi1v{KVjUKG z8b^ADB{?gjDPuT;*b8yba?#NGMD&|^w$Ye+1nY{W{QX~^%&izX?6XH)*O?jU1d1LN zUBdI3`B^vX?6&njMwb0K>TPFl*w1gD$hpim>{~_U;2prIts)ZQY<=O6S;u}NIVeXY zNZ4}cf9nMO_%t8pykSPvnrr%NfMqBKkKX*2q>mUKy*WK49w@VhoR5 z-vjqu@aM&QWRl1eSjo#a)$OL2<=c8jj;!jP(j1TVIB~nY6YEH}ETaViW-3~EJ&7;F zN+7?*etjV;kW> zK7NXAp#w5$YkM6p%)R^u5P!$MrhAwjFgy^1b6zRsDmEDDh+onBi~-k-8{ZG z=*wLYH!7|-9m~k`IGI`8Lx$@OpSeaa`@ynfZQ%QH&-`#aXa2(qkhKIfh~FN$HuWrJ zEWj(r0dp_x&Rz-c7^mSAE8=b&R&0w*GmgCBb*CeQah#{ni;>aM zzZ3LKXltEW^2#hY=`0i&@Eoj=jgM?^#9PmJG6O(J5H(K9O&b3Ub!f9JHNS9efF2$M_!E{Z>TRu>fC;ZR7@H zX}?iB+gsr`7)DF;&^vI>DaPJf=eW0SmQknUs`8x@)bAFK%{`bY0ct3h_4z2vmNRXN1cShd(@QfQw4r^V@u*&COs(Iz%Y--f( zV`nzkE_ItcA31ycJ1$0)Ip)k;w=CUU9znbCqteyeE z+qyHpvn(}w%(X63vm z5E|B{FtTOUxf3-QI@#OaMPQ8^ztixj=n}2{$#RUE^@><>kI^RGY{TXF{0x!=enGN9PF*0{u z@qs#0LDk;y*>@bpXq{(F$AP_&8Ee0o;r4mXK#cBKB&WbO`wh$di81Tr+fGLccIJE* zxR@D{4IB$RLyGM-K9Lc#jlme6peZlkvz;sIg8z8gpTVAdg(f}!b&FXKnsvFh)_yQT z!9iaIf<1k)B8SMo{2FGNG$&e+TDKREfksb^?Z14_o{pAq(=5wYA`|@_Nvwd3v9&Xr zpkl54)J(z}T6qln!_vHtB8M4qx4~!bZ~f>?3v|wQ(8|3m-%;gx#cM{#J-M54f(!J* z)6Naf6?i557n(4t=e+!H{C-W;K+nZz9=hvl>~ig7m5Jvo%y*L@uojYl!c zuAjgrk7G@cVH_iy6R+Wi@TBiKH+VMpngc65>w~Ag9^S@&B-=JVn-i`NBgVlAUq#-H z*7d&Dudai~B)aRP(WkDty#QwJ>-mW~&^3^~>0TLad&GKWA9L5f@ECaTllY?zD_#FW zHonuctng%39sGP-1<-+K+zR1qjN*TVL@av+>9x0Whq)2jAcGm) zV^|I{EX^22PBD8JncpeIchtGwsK19z1;A7N&wjk@5W8Tpga}nAzzB$Pi*PcVnFh8}8XoO6AFuq-Pb_5kr zf+I$^zS^{f_C&4#jGnb70%9K2M`?jJwmJJbEOJ|Hv5Yu_w7*p#rd&TbbD@>zGoP`< z;}}1_t>C*eXERrTWFdHO?>YL75M0V=BL_WV9tJ}rYqoOb?BjQk!q#XXJ~8J&9G%E{ zSc4tx%=I|+x&iq>`d#B5O$fz zAYg9e1!r*j+7>=VRP?kLP2AHMnpgg1Z+wGusgmZQx4%cRBX4`}>_cNb?hO+R@<|G<2+^5IKW!Lld*k zjJMtPhATYl%^0-9Z?LD1Ow<`sX*s^ao3@B|V`WJZ*OpnI3+!v-;mnJNot=mh^!5n# zGxqS5Oy#{D^TJlz20c<6T4v0A52?(}c}Iq8bfl-*ZVjxrE#XOIJnl0V9PGKuH*3Qx zYacp9f6lz@N%)d|k{M$Q!HQAsZ=xVr76@}Ti`_Ro=L{R!;FJDAgXm`*BTE@k=RhNB z?l}5_Egm<#($gB}MWaa$0|B>WL|!~YZ@1)AokxBWkw{i2qvCO_$LF3Mz$GMRYw);H zWt?E3k#nrrl3+J=bN%<~8l>H;uAMy&%g~@F_bd~gji-G@8{dn*+=+-|c4VgT_u9rM zYwJ0*-j@7LHU>9d_K3NPRIk*`K6FGAYh&J;k^XE>a0hOY3#nN1%z%{8)s{v~!gZuO zdteurz! z3k^N%cgD09^*Dx4&OG*`<+!>u;#nu7&X|mvZL~$!!x3YQt+R19bHK0eEw0f!pRo}C z)5`y%kNpSR375@EpWQ0*vr$=b1jnCyMLuE#@U{1R=FW=ubA|1ZY$2`8MB8dv(VJ)g zcMb{*+=q5OEw`S?%65jP&XV}c`H&Xo1Gxh(TVEvRJP~U>|Cdh8UU*wa)FXH|2>$px zFIRq84u-bLb56)N@?nFc!#2?#{lY?Xz%z{JRBC+xtD~5G=wVy}OHg(eaIOmefJW8~*OrvT%Ja0Rb#%eG!oh2LhIs?!XRE)HJ&d9Wcjn46~ z2?_QKcg-ocjQ$zX(Av+rpAo@IYv6mH@q&j~7dZ0Co`^nh)wv=n6z))~)Yp9Erp!QF zlJE7D8F|SzMSffHOgvEmF+;H9;gv&RgLc7yp8f;JV5irB*u!0CG%)7MQE$rwbLR$s z%j`Ga+YkQ_on*KFa=b%;lNYKA<1ojfe}+Sb`%1 zEXj8DUkx*&^A(;5u5s5^M&#O7A~tY0lJ-wT9zJ*6SQ}R(UV+A*OIR6g(Y*dSqsu4f z2wR5C_>{FUr|m1tvOS(pu*ANwtjH(MSfE~??a;%1j!ctt4P)nwg%iB08+UdmKHdk=){T%W-mg*iW?vvaO7@kp6R_MDMHSFzv}8ecKGI8OC-_Lx)`0{DbY$zQ(uYLgXT0^ z`#R@+^oZyq>wywTUNxEqi6WkxdHvmX6KQp66$(@m-$kURCF*( zJk45r4EMoHVHs!FmS7O*h7I8<^x@^4!i?ff+S9X)R%aMJ%mwU21Fp>7(A}K3wV{i5 z=zIPfNV5rF2->iHfSfWEdD3qcoM$r}E>yT4~N>oY>&fV^ObvxL#- znLp8D#deH97Wd8<`H2x(MVQl`CoH!vpMK^7@8ORaA&@mQV^p^fUIh1YMw7^oZFl8? z)a*OFj5c5kgTucuHs?>yo`E@%{PHNa$lO5|OmtgXIlj1SrZ{@=KcDD}6noj3+P=c3 zY`fWotbg~){xYt{)7E&Tx}DtTE;jbeg!W+1ssjD22MqMLU-oLwi1wR#jV-ns3&_%B zIx;*Sw6(^B_TYqcTGq1)xx`ZJV_M=b;)-+Z&sipz&_3n^M zPGg@v7|*~mxQ0aY-*MXLIk?%0j1DA#sN!u8#BhHg*|45a>s1*r<{8nC40to zP+k`}f7rLygYmP+9bNgJtwXn*7lQxMFEIBg-o^L#ulT@L(ubGj@yQ%Rt|QIa7i_V| zSNOsFum(B9_q-0&h+fZB%vkm=W8wdh7~^Cf7**P2%;=rx>G)>C(Te8Q-W-E#NV6{) z&(Fiw`nmorv<3mkNzXG~NTMBi+q)CAvJ88~z7DC*Z}zlpcjf|t_%1BZA0U={ zz+|JssE%j+8^4BP9|=qBG4q~r;gVU9&*p+rLtn7WaYnm5|GOrRDg$JkJ2>Nk`jg;u Kv@oKU{{H~Ay^}ov literal 0 HcmV?d00001 diff --git a/addons/xm157/stringtable.xml b/addons/xm157/stringtable.xml new file mode 100644 index 0000000000..761d11def9 --- /dev/null +++ b/addons/xm157/stringtable.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/docs/wiki/framework/xm157-framework.md b/docs/wiki/framework/xm157-framework.md new file mode 100644 index 0000000000..350dc55ed7 --- /dev/null +++ b/docs/wiki/framework/xm157-framework.md @@ -0,0 +1,56 @@ +--- +layout: wiki +title: XM157 Framework +description: Explains how to add the XM157 scope framework +group: framework +order: 5 +parent: wiki +mod: ace +version: + major: 5 + minor: 1 + patch: 0 +--- + +## 1. Config Values + + +```cpp +class CfgWeapons { + class ItemCore; + class InventoryOpticsItem_Base_F; + + class your_XM157: ItemCore { + class CBA_ScriptedOptic { + bodyTexture = "\z\ace\addons\xm157\data\ace_vector_body_co.paa"; + bodyTextureSize = 1; + hideMagnification = 1; + disableTilt = 0; + }; + weaponInfoType = "ace_xm157_info"; + class ItemInfo: InventoryOpticsItem_Base_F { + modelOptics = "\x\cba\addons\optics\cba_optic_big_100.p3d"; + class OpticsModes { + class optic { + opticsID=1; + useModelOptics=1; + opticsPPEffects[]={ "OpticsCHAbera1", "OpticsBlur1" }; + opticsZoomMin = "8 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + opticsZoomMax = "1 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + opticsZoomInit = "1 call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')"; + discreteDistance[] = {100}; + discreteDistanceInitIndex = 0; + distanceZoomMin=100; + distanceZoomMax=100; + memoryPointCamera="opticView"; + visionMode[] = {"Normal"}; + opticsFlare=1; + opticsDisablePeripherialVision=1; + cameraDir=""; + }; + }; + }; + }; +}; + +```